下载此文档

EZW举例如何对256256灰度图象进行ezw编码.doc


文档分类:通信/电子 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
EZW举例如何对256256灰度图象进行ezw编码
EZW举例如何对256*256灰度图象进行ezw编码
该源代码包含有6个文件:
EZW编码器头文件 ,
, EZW编码器文件
, 编码器数据结果定义和数据操作 , 扫描方式定义:先入先出原则
, 零树结构定义和操作
, EZW解码器
这里,,充分理解零树的概念。 ,,,,,,,,,,,,,,
EZW编码器
#define debug
#include ""
#include ""
#include ""
#include ""
#include <>
#include <>
#include <>
//工作矩阵matrix_2d *M;
//误差值char error;
//用于统计某一数据流中1和0的个数int zeroes, ones; //编码数据流的输出文件FILE *ezw_file;
//输出字节及编码标志位unsigned char output_byte, mask;
//建立一个数据流输出的文件头ezw_file_header header; void load_data(matrix_2d *m) { int row, col;
for (row=0; row<8; row++)
{for (col=0; col<8; col++)
{//进行工作矩阵的赋值m->m[row][col] = example[row][col];
}}}
/* * Puts a bit in the output stream.*/ void put_bit(char bit)
{//如果放入的比特为是1,统计1的个数;反之统计0的个数
if (bit=='1')
{output_byte |= mask;
ones++;}
else zeroes++; mask >>= 1;
if (mask==0)
{fwrite(&output_byte,sizeof(output_byte),1,ezw_file);
output_byte = 0; mask = 0x80; }} /* * Puts dominant-pass and subordinate-pass codes in the output stream. */
void output_code(int code)
{//对于一个已经量化且编码后的数据,来判断它的类型。其类型有6种,正如在头文件中定
义的那样
switch (code)
{case ZERO:
put_bit('0'); //如果是二进制数0,则输出一个比特位,值不变 #ifdef debug printf("0");
#endif break;
case ONE:
put_bit('1'); //如果是二进制数1, 则输出一个比特位,值不变 #ifdef debug printf("1");
#endif break;
case POS:
put_bit('0'); //如果是正大系数,则按顺序输出两个比特位,值依次为0,1
put_bit('1');
#ifdef debug printf("p"); #endif
break;
case NEG:
put_bit('1'); //如果是负大系数,则按顺序输出两个比特位,值依次为1,1
put_bit('1');
#ifdef debug printf("n"); #endif break;
case ZTR:
put_bit('0'); //如果是零树根,则按顺序输出两个比特位,值依次为0,0
put_bit('0');#ifdef debug
printf("t");
#endif
break;
case IZ:
put_bit('1'); //如果是孤独零,则按顺序输出两个比特位,值依次为1,0
put_bit('0');
#ifdef debug printf("z"); #endif break; }}
/* * Returns the largest value in a descendance tree. */
element_type

EZW举例如何对256256灰度图象进行ezw编码 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人274030239
  • 文件大小47 KB
  • 时间2021-02-22