数字图像处理 第十章 图像编码讲解

上传人:我** 文档编号:112815024 上传时间:2019-11-07 格式:PPT 页数:76 大小:2.70MB
返回 下载 相关 举报
数字图像处理 第十章 图像编码讲解_第1页
第1页 / 共76页
数字图像处理 第十章 图像编码讲解_第2页
第2页 / 共76页
数字图像处理 第十章 图像编码讲解_第3页
第3页 / 共76页
数字图像处理 第十章 图像编码讲解_第4页
第4页 / 共76页
数字图像处理 第十章 图像编码讲解_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《数字图像处理 第十章 图像编码讲解》由会员分享,可在线阅读,更多相关《数字图像处理 第十章 图像编码讲解(76页珍藏版)》请在金锄头文库上搜索。

1、第十章 图像编码,10.1 图像编码概述 10.2 哈夫曼编码 10.3 香农-范诺编码 10.4 行程编码 10.5 LZW编码 10.6 算术编码 10.7 JPEG编码,10.1 图像编码概述,10.1.1 图像编码基本原理 表示图像需要大量的数据,但图像数据存在冗余 (Redundancy)信息,去掉这些冗余信息后可以有效压缩图像。 数字图像的冗余主要表现在: 空间冗余:图像内部相邻像素之间的相关性所造成的冗余。 时间冗余: 视频图像不同帧之间的相关性所造成的冗余。 视觉冗余: 人眼不能感知或不敏感的那部分图像信息。,信息熵冗余: 也称编码冗余,如果图像中平均每个像素使用的比特数大于该

2、图像的信息熵,则图像中存在冗余。 结构冗余: 图像中存在很强的纹理结构或自相似性。 知识冗余: 有些图像中还包含与某些先验知识有关的信息。,图像编码的目的就是充分利用图像中存在的各种冗余信息,特别是空间冗余、时间冗余以及视觉冗余,以尽量少的比特数来表示图像。,10.1.2 图像编码的方法 图像编码分为有损压缩和无损压缩。无损压缩无信息损失,解压缩时能够从压缩数据精确地恢复原始图像;有损压缩不能精确重建原始图像,存在一定程度的失真。 根据编码原理将图像编码分为: (1)熵编码:无损编码,给出现概率较大的符号赋予一个短码字,而给出现概率较小的符号赋予一个长码字, 从而使得最终的平均码长很小。常见的

3、熵编码方法有行程编码(Run Length Encoding)、哈夫曼编码和算术编码。,(2) 预测编码。基于图像数据的空间或时间冗余特性,用相邻的已知像素(或像素块)来预测当前像素(或像素块)的取值,然后再对预测误差进行量化和编码。预测编码可分为帧内预测和帧间预测,常用的预测编码有差分脉码调制(Differential Pulse Code Modulation, DPCM)和运动补偿法。 (3)变换编码。将空间域上的图像经过正交变换映射到另一变换域上,变换后图像的大部分能量只集中到少数几个变换系数上,采用适当的量化和熵编码就可以有效地压缩图像。,(4) 混合编码:综合了熵编码、变换编码或预

4、测编码的编码方法,如JPEG标准和MPEG标准。 根据对压缩编码后的图像进行重建的准确程度, 可将常用的图像编码方法分为三类: (1) 信息保持编码: 也称无失真编码, 在编解码过程中保证图像信息不丢失,可以完整地重建图像。但压缩率比较低。,(2) 保真度编码: 利用人眼的视觉特性,在允许的失真条件下,最大限度地压缩图像。可以实现较大的压缩比。 (3) 特征提取:对感兴趣的部分特征信息进行编码即可压缩数据。,10.1.3 图像编码新技术 利用人工神经网络(Artificial Neural Network, ANN)的压缩编码、 分形编码(Fractal Coding)、 小波编码(Wavel

5、et Coding)、基于对象的压缩编码(Object Based Coding)和基于模型的压缩编码(Model Based Coding)等等。,10.1.4 图像编码评价 评价图像压缩算法的优劣主要有以下4个参数: 1) 算法的编码效率 2) 编码图像的质量 3) 算法的适用范围 4) 算法的复杂度,10.2 哈夫曼编码,2:0 4:10 3:111 1:1101 0:1100,111110110 01011000 11010111111 010100,10.3 香农-范诺编码,香农-范诺编码的理论基础是符号的码字长度Ni完全由该符号出现的概率来决定,即,式中,D为编码所用的数制。,2(

6、0.375),4(0.25),3(0.1875),1(0.125),0(0.0625),N 2 2 3 3 4 0 0.375 0.625 0.8125 0.9375 00 01 101 110 1111,香农-范诺编码,二分法香农-范诺编码,10.4 行 程 编 码,10.4.1 行程编码基本方法 行程编码又称行程长度编码(Run Length Encoding, RLE), 是一种熵编码,其编码原理是将具有相同值的连续串用其串长和一个代表值来代替, 该连续串就称为行程,串长称为行程长度。 例如:aabbbcddddd的行程长度编码为2a3b1c5d。,行程编码分为定长和不定长编码两种。定长

7、编码是 指编码的行程长度所用的二进制位数固定,而变长行程 编码是指对不同范围的行程长度使用不同位数的二进制 位数进行编码。使用变长行程编码需要增加标志位来表 明所使用的二进制位数。,对于二值图,可用如下行程编码表示图像。,3 12 4 9 1 11 1100 100 1001 1 11110010010101 (不知道各行程应在何处分断) 可以这样定义:可表示行程长度值 编码 编码长度 1-4 0? 3 5-8 10? 5 9-16 110? 7 17-32 1110? 9 33-64 11110? 11 65-128 111110? 13 如:1100的编码为:1100-1=1011 (十进

8、制11) 行程编码为:1101011,01011010110111101000000,3 12 4 9 1 11 1100 100 1001 1 10 1011 11 1000 0 010 1101011 011 1101000 000,还原方法:从符号串左端开始往右搜索,遇到第一个0时 停下来,计算这个0的前面有几个1。设1的个数为K,则在 0后面读K+2个符号,这K+2个符号所表示的二进制数加上 1的值就是第1个行程的长度。,10.4.2 PCX文件中的行程编码 PCX文件分为文件头和图像压缩数据两个部分。如果是256色图像,则还有一个256色调色板存于文件尾部。文件头全长128字节,包含

9、了图像的大小和颜色以及PCX文件的版本标识等信息,图像压缩数据紧跟在文件头之后。如果没有使用调色板, 那么图像压缩数据存储的是实际像素值;否则,存储的是调色板的索引值。,Typedef struct char manufacturer; /always 0xa0 char version; char encoding; /always 1 char bits_per_pixel; /color bits int xmin,ymin; /image origin int xmax,ymax; /image dimensions int hres,vres; /resolution values

10、char palette48; /color palette char reserved; char colour_planes; /color planes char bytes_per_line; /line buffersize int palette_type; /grey or color palette char filler58; PCXHEAD;,在256色PCX文件中,每个像素占一字节, 压缩数据以字节 为单位逐行进行编码,行程长度和行程的代表值分别占一字节, 对于长度大于1的行程,编码时先存入其行程长度(长度L加上192即0xC0),再存入该行程的代表值。 对于长度为1的行

11、程,即单个像素, 如果该像素的值小于或等于0xC0, 则编码时直接存入该像素值, 而不存储长度信息;否则,先存入0xC1,再存入该像素值,这样做的目的是为了避免该像素值被误认为长度信息。如果行程长度大于63,则必须分多次存储。,PCX文件规定编码时的最大行程长度为63。例如,连续100个灰度值为0x80的像素, 其编码(以十六进制表示)应为FF 80 E5 80。(0xFF=63+0xC0)。 解码时,从压缩数据部分读取一个字节,判断该值是否大于0xC0,如果是,则表明该字节是行程长度信息, 取其低六位(相当于减去0xC0)作为行程长度L,读取下一个字节作为像素值并重复L次存入图像数据缓冲区;

12、否则, 直接将该字节存入图像数据缓冲区。,经过压缩后,将变为下列数据: 0xC9 0x19 0x54 0x35 0x1C 0xFF 0x27 0xC7 0x27 0xC1 0xD7 0xC1 0xD5 0xC1 0xE7,例子: 0x19 0x19 0x19 0x19 0x19 0x19 0x19 0x19 0x19 0x54 0x35 0x1C 0x27(连续重复70个0x27) 0xD7 0xD5 0xE7,10.5 LZW编码,10.5.1 LZW编码方法 LZW(Lempel-Ziv & Welch)编码又称字串表编码, 属于一种无损编码,LZW编码与行程编码类似, 也是对字符串进行编

13、码从而实现压缩,但它在编码的同时还生成了特定字符串以及与之对应的索引字符串表。,初始化字符串表,10.5.2 LZW编码实例 aabcabbbbd,GIF-LZW编码过程,b,GIF-LZW解码过程,例子:abbcbdabeca 初始化字符串表,编码过程: 结果为:501121374206,解码过程:,10.6 算 术 编 码,算术编码有两种模式:一种是基于信源概率统计特性的固定编码模式,另一种是针对未知信源概率模型的自适应模式。自适应模式中各个符号的概率初始值都相同, 它们依据出现的符号而相应地改变。只要编码器和解码器都使用相同的初始值和相同的改变值的方法,那么它们的概率模型将保持一致。,设

14、待编码的数据序列为“dacab”, 信源中各符号出现的概率依次为P(a)=0.4,P(b)=0.2,P(c)=0.2, P(d)=0.2。 数据序列中的各数据符号在区间0, 1内的间隔(赋值范围)设定为a=0, 0.4), b=0.4, 0.6), c=0.6, 0.8), d0.8, 1.0),新间隔的起始位置和结束位置,表示前一间隔的起始位置,前一间隔的长度,当前编码符号的初始区间的左端和右端,第一个被压缩的符号为“d”,其初始间隔为0.8, 1.0); 第二个被压缩的符号为“a”,由于前面的符号“d”的取值区间被限制在0.8, 1.0)范围内,所以“a”的取值范围应在前一符号间隔0.8, 1.0)的0, 0.4)子区间内, 根据上式可知,StartN=0.8+0(1.0-0.8)=0.8 EndN=0.8+0.4(1.0-0.8)=0.88,“a”的实际编码区间在0.8, 0.88)之间。,第三个被压缩的符号为“c”, 其编码取值范围应在0.8, 0.88)区间的0.6, 0.8)的子区间内.,第四个被压缩的符号为“a”,,StartN=0.848+0(0.864-0.848)=0.848 EndN=0.848+0.4(0.864-0.848)=0.8544,第五个被压缩的符号为“b”,StartN=0.848+0.4(0.8544-0.848)=0.848 5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号