压缩编码Word下载.docx
《压缩编码Word下载.docx》由会员分享,可在线阅读,更多相关《压缩编码Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
1969年美国召开第一届“图像编码会议”标志着图像编码作为一门独立的学科诞生。
近十年来,图像编码技术得到了迅速的发展和广泛的应用,并日臻成熟,其标志就是几个关于图像编码的国际标准的制定,即ISO/IEC关于静止图像的编码标准JPEG,CCITT关于电视电话/会议电视的视频编码标准H.261和ISO/IEC关于活动图像的编码标准MPEG-1,MPEG-2。
这些标准图像编码算法融合了各种性能优良的传统图像编码方法,是对传统编码技术的总结,代表了当前图像编码的发展水平。
二.原理
1.概念
在满足一定保真度的要求下,对图像数据的进行变换、编码和压缩,去除多余数据减少表示数字图像时需要的数据量,以便于图像的存储和传输。
即以较少的数据量有损或无损地表示原来的像素矩阵的技术,也称图像编码.
2.分类
根据压缩后的图像能否完全恢复将图像压缩方分为两种:
一种是无损压缩;
另一种是有损压缩。
(1)无损压缩
利用无损压缩方法消除或减少的各种形式的冗余可以重新插入到数据中,因此,无损压缩是可逆过程,也称无失真压缩。
为了消除或减少数据中的冗余度,常常要用信源的统计特性或建立信源的统计模型,因此许多实用的无损压缩技术均可归结为统计编码方法。
统计编码方法中常用的有Huffman编码、算术编码、RLE(RunLengthEncoding)编码等。
此外统计编码技术在各种有损压缩方法中也有广泛的应用。
(2)有损压缩
有损压缩法压缩了熵,信息量会减少,而损失的信息量不能再恢复,因此有损压缩是不可逆过程。
有损压缩主要有两大类:
特征提取和量化方法。
特征提取的编码方法如模型基编码、分形编码等。
量化是有损压缩最基本的形式,其优点是可以得到比无损压缩高得多的压缩比。
有损压缩只能用于允许一定程度失真的情况,比如对图像、声音、视频等数据的压缩。
无损压缩和有损压缩结合形成了混合编码技术,它融合了各种不同的压缩编码技术,很多国际标准都是采用混合编码技术,如JPEG,MPEG等标准。
利用混合编码对自然景物的灰度图像进行压缩一般可压缩几倍到十几倍,而对于自然景物的彩色图像压缩比将达到几十甚至上百倍。
3.原理
数字图像压缩系统无论采用什么具体结构和技术,其基本过程是一致的,一般可以概括成图所示的基本框图。
压缩过程从原理上讲有三个基本环节:
变换、量化、编码这三个环节都有数据压缩的任务。
首先对原始图像进行映射变换,这里的变换是广义的,变换的作用是将原始图像在一个新的域中用另一种新的形式表述。
对变换器的要求是:
有效地压缩数据,同时信息保真度要高,还要求是广义可逆的,还要方法简单,经济实用。
经过映射变换,如时域预测、频域变换或其它变换,原始图像数据特性被改变,变得更利于压缩编码。
接下来,变换后形成的参数进入熵减阶段,这个阶段就是量化过程。
量化器的引入是图像编码产生失真的根源。
对量化器的要求是:
在一定程度的客观或主观误差允许下,总的量化级数要尽量的少,同时也应便于实现。
最后,对量化后的符号进行熵编码。
熵编码器是用来消除符号编码冗余度的,它一般不产生失真,常用的熵编码方法有分组码、行程码、变长码和算术码等。
编码器的编码方式应和信号或符号流的分布特性相适应以求得较大的压缩比。
熵编码后的信息码流被送入存储设备或通过信道传输。
以上三个步骤既相互联系又相互制约,对不同的编码技术来说,其图像变换的模型、量化器的设计、熵编码所采取的措施都是不同的。
图像压缩的解码是编码的逆过程,这里不再赘述。
图像编码的基本过程
三.常用的图像压缩编码方法
1.Huffman编码
Huffman是一种基于统计的压缩编码方法。
在对数据进行编码时,对于出现频率较高的字符,采用较短的编码;
对于出现频率较低的字符,则采用较长的字符,从而实现数据的压缩。
例如:
假设信源符号为(a、b、c、d、e、f、g),其出现的概率相应的为(0.25、0.025、0.025、0.05、0.35、0.25、0.05),共7个字符。
对其进行huffman编码,算法为:
按照每个字符出现的频率大小从左到右排列:
0.35、0.25、0.25、0.05、0.05、0.025、0.025。
选出最小的两个值作为叶子节点构成一棵二叉树,值较大的叶子节点在左,两个叶子节点对应的频率之和作为根节点。
把原排列中最小的两个节点删除,新的根节点插入排列保持大小从左到右的排列顺序不变;
重复执行,直到最后得到值为1的根节点。
得到一棵huffman树,如图所示
huffman编码示意图
2.LZ77压缩算法
LZ77压缩采用基于窗口的词典方式。
它用已经看到的文本作为词典,用词典中的指针代替输入文本中的短语以达到压缩效果。
该算法的主要数据结构是一个固定大小的窗口,窗口分为两部分,最近被编码的正文构成的字典和刚刚输入尚未编码的字符构成超前缓冲区。
窗口的大小通常为几千个字符,超前缓冲区通常比较小,一般为几十个字符。
LZ77编码算法的核心是在文本窗口中查找与超前缓冲区中输入数据串匹配的最长匹配串。
LZ77压缩算法的具体算法为:
(1)初始化字典。
(2)把编码位置设置到超前缓冲区,输入数据流的开始位置。
(3)查找待编码数据在文本窗口中的最长的匹配串。
(4)以“(Pointer,Length)Characters”的格式输出,其中Pointer是指向文本窗口中匹配串的指针,length表示匹配串的长度,characters是超前缓冲区中的不匹配的第一个字符。
(5)如果编码还没有遇到结束符,需要把文本窗口中的数据向前移(Length+1)个字符,向空的超前缓冲区尾部读入(Length+1)个字符,然后转到
(2)。
3.离散余弦变换(DCT)
离散余弦变换公式为
其中,
公式表明:
DCT对一个N×
N的方阵P进行处理,得到一个N×
N的频率系数方阵F。
DCT的算法实现步骤:
(1)为了避免大矩阵的运算困难,DCT的实现常常将图像分成一些更小更易处理的输入块,一般选择8×
8的块作为DCT计算的大小,如表1所示。
表1一个像素矩阵的输入块
(2)一幅灰度图像的输入块经DCT产生输出矩
阵,如表2所示。
表2DCT变换后输出的频率系数矩阵
输出矩阵表明应建立谱压缩特有的DCT。
为此,把矩阵左上角的(0,0)处值称为“DCT系数”,它表示输入矩阵所有模的平均值,这是因为它表示了在x和y轴上的DCT分量。
DCT系数基本上是模的阶,它大于DCT矩阵中的其他值。
(3)采用量化矩阵来实现量化。
量化矩阵(i,j)=1+(1+i+j)/质量因子。
对DCT矩阵中每一个元素,在量化矩阵中的同一位置都有一个相应的量化值(如表3所示)。
量化值表明在已压缩的图像中该元素的阶跃量是多大,这个量的范围是0到255。
量化的实际公式十分简单,其量化值(i,j)=〔f(i,j)/量化矩阵(i,j)。
表3质量因子为2的量化矩阵
(4)对量化后的图像进行编码。
第一,将(0,0)点的DCT系数由绝对值变成相对值;
第二,对图像系数进行曲徊排序(如表4所示);
第三,将排序结果对0值用游程编码。
(5)按曲徊序列记录后,用熵编码方案输出结果。
输出编码中以RLE作为主要部分,基本上包括3种记录,这3种记录不断重复构成一个完整序列。
3种记录:
一是游程长度,DCT输出矩阵中当前元素之前连续0的个数;
二是比特数,表示下一幅值所用的比特数;
三是幅值,DCT系数的大小。
4.RLE编码
RLE的基本原理就是把一系列的重复值用一个重复计数值加上重复的字符值来取代。
例如,对于字符序列aaaadcfffffggggseee,利用BIAN编码后得到*4adc*5f*4gs*3e,其中*代表控制字符。
这些控制字符用来标示其后是重复计数和重复的字符。
表4曲徊排序
四.各压缩编码方法的优缺点
1.预测编码
在预测编码方案中,图像被当成一个随机过程,即当成Markov模型。
编码时通过已知像素的灰度值预测当前像素的灰度值,也就是通过预测消除相邻像素间的相关性,从而得到熵值比原图像小的预测误差,并达到压缩的目的。
预测编码分为线性预测和非线性预测两类。
线性预测编码按扫描顺序来进行预测,而非线性预测根据当前预测像素的周围位置像素进行预测。
这些预测编码方法的优点是算法简单,易于硬件实现;
其缺点是对信息噪声及误差很敏感,会产生误码扩散,压缩率低。
预测编码一般很少独立使用,而要结合别的编码方法混合使用。
2.熵编码
熵编码是纯粹基于信号统计特性的编码技术,它是一种无损编码方法,根据像素灰度值的出现概率大小进行编码。
常用的熵编码方法有游长编码、Huffman编码、算术编码和Lempel-Ziv字典编码。
这种编码方法目前一般不单独使用,常常作最后一级编码使用,以进一步提高编码压缩率。
3.传统的变换编码
变换编码是指通过正交变换将图像变为系数之间的相关性降低的一组变换系数。
变换后的系数应满足:
①所有的系数独立;
②能量集中于少数几个系数上,保留少数重要的系数就可达到图像压缩的目的。
常用的正交变换有KL变换、DFT变换、WHT变换和DCT变换。
其中最有效的变换是KL变换,但是KL变换的计算复杂,不同的图像有不同的向量基,更不存在快速算法,只作理论分析。
其他三种变换的向量基是固定的,都有快速算法。
其中,只有DCT变换最接近KL变换,因此DCT变换在编码中应用最广泛,JPEG算法就是以DCT变换为核心的算法。
这些方法可以获得较高的压缩比和较好的恢复图像质量,一般在保证较清晰的恢复图像质量前提下压缩比都在20倍以下,但是,一旦超过此压缩比值,就会出现方块效应和振铃现象,使得恢复图像质量迅速恶化。
4.矢量量化
矢量量化基于Shannon信息论的信源编码理论,通过对符号序列的编码可以获得高于对单个符号的编码效率,用输出图像矢量码本的索引号方式获得好的压缩效果。
结束语
经过数十年的研究和探索,人们在图像压缩编码方面已取得很大进展,国际的静止图像压缩标准算法也不断更新,已有的方法和思想不断丰富发展,新的算法或理论不断涌现。
总而言之,图像压缩与编码技术是一个非常有发展前途的研究领域,这一领域的突破对于我们的信息生活和通信事业的发展具有深远的影响总的来说。
无论目前还是将来,研究新的、高质量的压缩编码技术,并将其应用于低或极低比特率的情况,仍将是图像压缩编码的前沿课题与研究方。
参考文献:
[1]沙磊,叶霞.利用离散余弦变换进行图像压缩的方法[J].成都理工学院学报,1997,(3):
108-114.
[2]黄伟,龚沛曾.图像压缩中的几种编码方法[J].计算机应用研究,2003,(8):
67-69.
[3]陈海东.多媒体技术及应用系统制作[M].北京:
北京师范大学出版社,1994.
[4]朱学芳,智文广.计算机图像处理导论[M].北京:
科学文献出版社,2003.
[5]丁鹭飞,耿富录.雷达原理[M].西安:
电子科技大学出版社,2002.6:
195-230.
[6]潘云鹤.计算机图形学原理、方法及应用[M].北京:
高等教育出版社,2002.
[7]孙家广.计算机图形学(第3版)[M].北京:
清华大学出版社,2003.
[8]杨旭,沈大林,沈昕等.VisualC++6.0编程篇[M].北京:
电子工业出版社,2004.
[9]朱晴婷,黄海鹰,陈莲君.VisualC++程序设计[M].北京:
清华大学出版社,2005