《大容量彩色图片压缩设计与实现毕业设计论文.doc》由会员分享,可在线阅读,更多相关《大容量彩色图片压缩设计与实现毕业设计论文.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、郑州大学毕业设计(论文)题 目:大容量彩色图片压缩设计与实现 指导教师: 职称: 教授 学生姓名: 学号: 20097650228 专 业: 通信工程 院(系): 2010级通信工程一班 完成时间: 2014年 5 月 3 日30 摘要本论文主要介绍了JPEG的编码和解码过程。该程序的编码部分能把一张图象进行JEPG编码,压缩成以二进制形式保存的文件;通过相应的解码程序又可以把图象解压缩出来。在图象传送过程中,我们经常采用JPEG格式对静态图象进行编码。JPEG基本系统是一种有损编码,无法完全恢复出原图象,信息有一定的丢失,称为有损压缩。尽管我们希望能够无损压缩,但是通常有损压缩的压缩比(即原
2、图象占的字节数与压缩后图象占的字节数之比,压缩比越大,说明压缩效率越高)比无损压缩的高。JPEG编码先把图象色彩RBG变成亮度Y和色度Cr、Cb,它利用人的视觉对色度不敏感的特点,减少一部分色度数据,以达到压缩。JPEG采取多种编码方式,包含有行程编码(Run Length Coding)和哈夫曼(Huffman)编码,有很高的压缩比。在编码前,先对数据进行分块,离散余弦变换(DCT)及量化,保留能量大的低频信号,丢弃高频信号以达到压缩。解码时,进行熵解码,反量化,反离散余弦变换(IDCT)。关键字:JPEG;有损压缩;行程编码;哈夫曼编码 AbstractThis paper introdu
3、ces the encoding and decoding of JPEG and the specific realization of program on vc+ platform. The encoding part of this program can encode a picture and save relevant data as binary system. The decoding program can decode the compression data and reconstruct the origin image. While conveying pictur
4、es we often encode still pictures into the style of JPEG. JPEG is of lossy compression which can not recover all the image data, some data are losed. Although we refer to non-lossy compression, however, the compression ratio of lossy compression( the times that data bytes before compression to that
5、after compression )is bigger than that of non-lossy compression. JPEG encoding translate image color from RBG to luminance Y and chroma Cr、Cb. Because people eyes are less sensitive to chroma comparing with luminance , some of chroma data are abandoned to reduce data size.JPEG envolves some kinds of
6、 ways of encoding including Run Length Coding and Huffman Coding, so it has high compression ratio. Before Coding ,we divide data into blocks , DCT and quantify each block. The low-frequency signals that have more energy are maintained and others are rejected . While decoding , data stream are reade
7、d , decoded , inverse-quantified and then IDCT .Keywords: JPEG;lossy compression;Run Length Coding;Huffman Code1. 引言1.1 图像压缩技术信息时代,人们对使用计算机获取信息、处理信息的依赖性越来越高。计算机系统面临的是数值、文字、语言、音乐、图形、动画、静图像、电视视频图像等多种媒体。而大数据量的图像信息会给存储器的存储容量,通信干线信道的带宽,以及计算机的处理速度增加极大的压力。单纯靠增加存储器容量,提高信道带宽以及计算机的处理速度等方法来解决这个问题是不现实的,这时就要考虑压缩
8、。图像数据之所以能被压缩,就是因为数据中存在着冗余。图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。图像压缩是数据压缩技术在数字图像上的应用,它的目的是减少图像数据中的冗余信息从而用更加高效的格式存储和传输数据。1.2 图像压缩方法研究现状 图像压缩已研究了几十年, 提出了诸如DPCM、DCT 、VQ 等压缩方法, 并已出台了基于DCT
9、等技术的国际压缩标准, 如JPEG、MPEG、H. 261 等。人们逐渐发现了这些方法的许多缺点: 比如高压缩比时图像出现严重的方块效应、人眼视觉系统的特性不易被引入到压缩算法中等等。目前, 许多人正在致力于第二代图像编码技术的研究。第一代图像编码技术( 以JPEG为代表) 是指以信息论和数字信号处理技术为理论基础, 旨在去除图像数据中的线性相关性的一类编码技术。这类技术去除客观和视觉的冗余信息的能力已接近极限, 其压缩比不高( 20: 1 左右) 。而第二代图像编码技术是指不局限于SHANNON 信息论的框架, 要求充分利用人的视觉生理心理特性和图像信源的各种特性, 能获得高压缩比的一类编码
10、技术。这其中以小波变换编码、分形编码和模型基编码最具有代表性, 也很有可能成为新一代国际图像压缩标准的核心理论。2. 压缩方法简介2.1 压缩方法的分类 研究图像压缩方法实际是研究图像压缩的算法( 或者称为“编码), 随着研究的不断深入, 出现了多种压缩( “编码”)方法。显然, 各种编码方法的并存是十分必要的。图像压缩编码可以有多种分类方法:1、以恢复的图像与原图像关系分: 无失真编码和限失真编码。2、以使用方法的原理分: 基于图像统计特性、基于人眼视觉特性和基于图像特性提取编码。3、以图像的光学特性分: 静止图像、慢速图像和实时图像编码。4、以采用的基本理论不同分: 变换法和分形法编码。2
11、.2 常见图像的压缩方法2.2.1 RLE(Run Length Encoding) 压缩算法RLE 通常称为行程编码。这种压缩法使用于PCX,TIFF ,BMP 等图像格式中,其压缩原理很简单。将一行中颜色值相同的相邻像素用一个记数值和该颜色值来代替。例如, abbbccccddd 经行程压缩处理后可表示为1a3b4c3d。当图像中存在很多块颜色相同的大面积区域,则RLE 编码产生的压缩率是很高的。但如果图像中很少有两个相邻的像素的灰度值相同时,则RLE 编码非但不能压缩,还会造成处理后的图像数据量大于处理前的情况。2.2.2哈夫曼(Huffman) 编码哈夫曼压缩方法使用于TIFF ,JP
12、EG 等图像格式中。该编码是Huffman 为压缩文本文件而建立的,其压缩原理是先统计需要编码的字符的出现概率,然后将短的码赋予出现频率高的字符,而将长的码赋予出现频率低的字符。因为哈夫曼编码较为简单有效,所以得到了广泛的应用。但是产生哈夫曼编码要对原始数据扫描两遍:第一遍扫描要精确地统计出原始数据中每个值出现的频率;第二遍扫描是建立哈夫曼树并进行编码。由于需要建立二叉树并遍历二叉树生成编码,因此数据压缩和还原速度都较慢。另外哈夫曼编码对于位的增减都反应敏感。由于哈夫曼编码时所有位都集中在一起,而不考虑字节分界,译码程序判断码结束的惟一方法是达到二叉树的一个分支,因此,如果增加或减少位,译码程
13、序将无法正确译出后面的数据。2.2.3 LZW压缩算法 LZW用于GIF ,TIFF 等图像文件中,属于字典压缩法。LZW压缩算法不需要在编码之前构造码表,而是在压缩过程中逐步建立字典的。其基本思想是将每一个字节的值都要与下一个字节的值配成一个字符对,并为每一个字符设置一个代码。当同样的一个字符对再度出现时就用代号代替这一字符对,然后再用这个代号与下一个字符配对。在配对过程中,必须建立三个表格,分别为:字首表、字符表和代号表。所有字符对和代号都分别存入这三个表格中。LZW不仅可以与RLE 压缩算法一样对连续出现的相同字符进行压缩,而且可以对经常出现的由不同字符组成的字符串进行压缩。因此在压缩处
14、理不同值数据串方面,LZW压缩方法优于RLE 压缩算法。但是如果原始图像数据值中带有随机变化的“噪音图像”,则很难利用LZW算法来压缩。2.2.4 Discrete Co sine Transform (DCT ,离散余弦变换) DCT属于变换编码,可用于图像处理的二维离散余弦变换。将预先已分成小块的原始图像进行DCT 变换后,高频部分包含了锐利的边缘信息,而低频部分包含了图像的主要信息,因此低频比高频更重要,可以通过量化步骤有选择性地消除或较粗糙地量化高频部分。需要注意的是,压缩不是在变换步骤取得的,而是在量化时取得的,并且是有损压缩,不可恢复。 与DFT(离散傅里叶变换) 和WHT(沃尔什
15、2哈德玛变换) 相比,DCT 具有更强的信息集中能力。虽然KL 变换是所有变换中信息集中能力最好的变换,但是如果对每个子图都运用KL 变换,所需的计算量很大,所以KL 变换不实用。近年来,因为DCT 的信息集中能力和计算复杂性综合得比较好而得到了较多的应用。在JPEG中就使用了DCT。3.JPEG图像压缩算法随着多媒体技术的快速发展,静止图像的应用越来越广泛。它的应用主要集中在图像的存储和图像的传输两方面,从具体应用中我们可以发现静止图像占用了越来越多的资源。在这样的背景条件下,静止图像的压缩成为了一个研究的热点。目前静止图像的压缩算法以JPEG(JointPhotographicExpert
16、sGroup)和JPEG2000为主。JPEG是第一个被广泛接受的单色和彩色静止图像压缩标准,它的名字源于“Joint Photographic Experts Group(联合图像专家组)”,它是由ISO/和CCITT协同工作的机构,这个机构的工作成果是ISO的国际标准ISO/IEC10918-1(连续色调静止图像的数字压缩和编码,digital compression and coding of continuous tone still images)和ITU-T的建议T.81。JPEG标准草案于1991年公布,1992年正式批准为国际标准,以后这个工作组的进一步增强和扩展形成了ISO
17、10918-3和ITU-T建议T.81。JPEG是一种采用预测编码(DPCM)、离散余弦变换(DCT)以及熵编码,以去除冗余的图像和彩色数据的有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,也即可以用最少的磁盘空间得到较好的图像品质。而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文
18、件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。比如可以把137Mb的BMP位图文件压缩至203KB。当然也可以在图像质量和文件尺寸之间找到平衡点。JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。 JPEG的核心算法是DCT变换编码,其压缩性能基本反映了20世纪80年代末图像压缩的技术水平。但自从JPEG制定后的近10年,许多更有效的图像压缩技术已经得到发展,如小波变换方法、分形方法、区域划分方法等。其中,发展最成
19、熟和性能及通用性最好的静止图像压缩方法是小波变换方法。正因如此,制定了第二代静止图像压缩标准,即JPEG2000,它的核心技术正是小波变换编码。其核心编解码器采用小波变换、算术编码及嵌入式分层组织,较以往的静止图像压缩标准复杂,它在同一个码流中实现了无损和有损压缩、分辨率和信噪比的累进性以及随机访问等优良特性。JPEG2000作为JPEG的升级版,其压缩率比JPEG高约30左右,同时支持有损和无损压缩。JPEG2000格式有一个极其重要的特征在于它能实现渐进传输,即先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示。此外,JPEG2000还支持所谓的感兴趣区域 特性,
20、可以任意指定影像上感兴趣区域的压缩质量,还可以选择指定的部分先解压缩。 3.1 研究内容JPEG压缩格式是目前图像处理领域里面用得最广泛的一种图像压缩方式,本毕业设计将进行就JPEG标准对图像进行编、解码的研究。主要内容包括:1)要求能读出jpg文件,并显示在界面上其中,JPEG的压缩实现主要分成四个步骤:1)颜色模式转换及采样;2)DCT变换(离散余弦变换); 3)量化; 4)编码(这里采用哈夫曼编码)。3.2 系统原理3.2.1 色彩模型 JPEG 的图片使用的是 YCrCb 颜色模型,而不是计算机上最常用的 RGB。 关于色彩模型, 这里不多阐述。 只是说明, YCrCb 模型更适合图形
21、压缩。 因为人眼对图片上的亮度 Y 的变化远比色度 C 的变化敏感。 我们完全可以每个点保存一个 8bit 的亮度值, 每 2x2 个点保存一个 Cr Cb 值, 而图象在肉眼中的感觉不会起太大的变化。 所以, 原来用 RGB 模型, 4 个点需要 4x3=12 字节。 而现在仅需要 4+2=6 字节; 平均每个点占 12bit。 当然 JPEG 格式里允许每个点的 C 值都记录下来; 不过 MPEG 里都是按 12bit 一个点来存放的, 我们简写为 YUV12。R G B - Y Cb Cr 转换-(R,G,B 都是 8bit unsigned) | Y | = | 0.299 0.587
22、 0.114 | | R | | 0 | | Cb | = |- 0.1687 - 0.3313 0.5 | * | G | + |128| | Cr | = | 0.5 - 0.4187 - 0.0813| | B | |128|Y = 0.299*R + 0.587*G + 0.114*B (亮度)Cb = - 0.1687*R 0.3313*G + 0.5*B +128Cr = 0.5*R 0.4187*G 0.0813*B +128Y,Cb,Cr - R,G,B 转换R = Y + 1.402 *(Cr-128)G = Y 0.34414*(Cb-128) 0.71414*(Cr-12
23、8)B = Y + 1.772 *(Cb-128) 一般, C 值 (包括 Cb Cr) 应该是一个有符号的数字, 但这里被处理过了, 方法是加上了 128。JPEG 里的数据都是无符号 8bit 的。3.2.2 DCT (离散余弦变换) JPEG 里要对数据压缩,先要做一次DCT变换,DCT变换的原理涉及到数学知识,这里我们不必深究,反正和傅立叶变换(学过高数的都知道)是差不多的。经过这个变换,就把图片里点和点间的规律呈现出来了,更方便压缩。JPEG里是对每8x8个点为一个单位处理的。所以如果原始图片的长宽不是8的倍数,都需要先补成8的倍数,好一块块的处理。另外,记得刚才我说的Cr Cb都是
24、2x2记录一次吗?所以大多数情况,是要补成16x16的整数块。按从左到右,从上到下的次序排列(和我们写字的次序一样)。JPEG里是对Y Cr Cb分别做DCT变换的。这里进行 DCT 变换的Y,Cr,Cb值的范围都是-128127 (Y被减去128) JPEG 编码时使用的是 Forward DCT (FDCT),解码时使用的 Inverse DCT (IDCT)下面给出其二维公式:2D-FDCT: 2D-IDCT:3.2.3 排列 DCT 结果 DCT 将一个 8x8 的数组变换成另一个 8x8 的数组。 但是内存里所有数据都是线 形存放的, 如果我们一行行的存放这 64 个数字, 每行的结
25、尾的点和下行开始的点就 没有什么关系, 所以 JPEG 规定按如下次序整理 64 个数字。 0, 1, 5, 6,14,15,27,28, 2, 4, 7,13,16,26,29,42, 3, 8,12,17,25,30,41,43, 9,11,18,24,31,40,44,53, 10,19,23,32,39,45,52,54, 20,22,33,38,46,51,55,60, 21,34,37,47,50,56,59,61, 35,36,48,49,57,58,62,63这样数列里的相邻点在图片上也是相邻的了。3.2.4 量化对于前面得到的 64 个空间频率振幅值, 我们将对它们作幅度分层
26、量化,操作方法就是分别除以量化表里对应值并四舍五入。for i=1:64 dc(i)=round(B(i)/q(i); end其中B(i)为经过余弦变换后的系数,q(i)为量化表数据;round()是进行四舍五入的数学函数。表1-1 亮度量化表 表1-2色度量化表 下面两张 JPEG 标准量化表。 (按上面同样的弯曲次序排列) 这两张表依据心理视觉阀制作, 对 8bit 的亮度和色度的图象的处理效果不错。当然我们可以使用任意的量化表。 量化表是定义在 jpeg 的 DQT 标记后。 一般为 Y 值定义一个, 为 C 值定义一个。 量化表是控制 JPEG 压缩比的关键。 这个步骤除掉了一些高频量
27、, 损失了很高细节。 但事实上人眼对高空间频率远没有低频敏感。所以处理后的视觉损失很小。另一个重要原因是所有的图片的点与点之间会有一个色彩过渡的过程。 大量的图象信息被包含在低空间频率中。 经过量化处理后, 在高空间频率段, 将出现大量连续的零。 注意, 量化后的数据有可能超过 2 byte 有符号整数的处理范围。1.4.5 huffman 编码 为了提高储存效率, JPEG 里并不直接保存数值, 而是将数值按位数分成 16 组: 数值 组 实际保存值 0 0 - -1,1 1 0,1 -3,-2,2,3 2 00,01,10,11-7,-6,-5,-4,4,5,6,7 3 000,001,0
28、10,011,100,101,110,111 -15,.,-8,8,.,15 4 0000,.,0111,1000,.,1111-31,.,-16,16,.,31 5 00000,.,01111,10000,.,11111-63,.,-32,32,.,63 6 -127,.,-64,64,.,127 7 -255,.,-128,128,.,255 8 -511,.,-256,256,.,511 9 -1023,.,-512,512,.,1023 10 -2047,.,-1024,1024,.,2047 11 -4095,.,-2048,2048,.,4095 12 -8191,.,-4096,
29、4096,.,8191 13 -16383,.,-8192,8192,.,16383 14 -32767,.,-16384,16384,.,32767 15 DC 的编码例如: (0,57) ; (0,45) ; (4,23) ; (1,-30) ; (0,-8) ; (2,1) ; (0,0)只处理每对数右边的那个: 57 是第 6 组的, 实际保存值为 111001 , 所以被编码为 (6,111001) 45 , 同样的操作, 编码为 (6,101101) 23 - (5,10111) -30 - (5,00001) -8 - (4,0111) 1 - (1,1)前面的那串数字就变成了:
30、 (0,6), 111001 ; (0,6), 101101 ; (4,5), 10111; (1,5), 00001; (0,4) , 0111 ; (2,1), 1 ; (0,0)括号里的数值正好合成一个字节。 后面被编码的数字表示范围是 -3276732767。合成的字节里, 高 4 位是前续 0 的个数, 低 4 位描述了后面数字的位数。继续刚才的例子, 如果 06 的 huffman 编码为 111000 69 = (4,5) - 1111111110011001 21 = (1,5) - 11111110110 4 = (0,4) - 1011 33 = (2,1) - 11011
31、 0 = EOB = (0,0) - 1010等号左边的是表示相应中间符号在huffman表中的位置。那么最后对于前面的例子表示的 63 个系数按位流写入 JPEG 文件中就是这样的:111000 111001 111000 101101 1111111110011001 10111 11111110110 000011011 0111 11011 1 1010记得刚才我们跳过了每组 64 个数据的第一个吧, DC 就是指的这个数字 (后面 63 个简称 AC) 代入前面的 FDCT 公式可以得到即一块图象样本的平均值。 就是说, 它包含了原始 8x8 图象块里的很多能量。 (通常会得到一个很
32、大的数值) JPEG 的作者指出连续块的 DC 率之间有很紧密的联系,因此他们决定对 8x8 块的DC 值的差别进行编码(Y, Cb, Cr 分别有自己的 DC)。Diff = DC(i) - DC(i-1)所以这一块的 DC(i) 就是: DC(i) = DC(i-1) + Diff JPEG从 0 开始对 DC 编码, 所以 DC(0)=0。 然后再将当前 Diff 值加在上一个值上得到当前值。 1.5 可行性研究1.5.1经济可行性软件编码的耗费主要是人力和时间。最终的软件是个人或者团队的智慧结晶。智力成本的凝聚产生的无形资产是巨大的。图像在当今信息社会中扮演着举足轻重的角色,而其占用的
33、资源又是海量的。在追求时间和空间的今天,研究图像压缩是切实可行的。1.5.2 技术可行性基于对图像编,解码的研究,对图像重新编码后,达到对数据的压缩,是完全可以实现的。本设计采用Vc+平台,通过颜色转换及采样、量化、游程编码,ZIGZAG扫描, 哈夫曼编码几个过程 实现对 图像的压缩。1.5.3 运行可行性本设计的最终编译成果是脱离Vc+环境的,可独立执行的exe 文档。第二章 图像压缩理论基础及开发流程2.1图像压缩压缩的理论基础是信息论。从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述。这个本
34、质的东西就是信息量(即不确定因素)。 压缩可分为两大类:第一类压缩过程是可逆的,也就是说,从压缩后的图象能够完全恢复出原来的图象,信息没有任何丢失,称为无损压缩;第二类压缩过程是不可逆的,无法完全恢复出原图象,信息有一定的丢失,称为有损压缩。选择哪一类压缩,要折中考虑,尽管我们希望能够无损压缩,但是通常有损压缩的压缩比(即原图象占的字节数与压缩后图象占的字节数之比,压缩比越大,说明压缩效率越高)比无损压缩的高。 图象压缩一般通过改变图象的表示方式来达到,因此压缩和编码是分不开的。图象压缩的主要应用是图象信息的传输和存储,可广泛地应用于广播电视、电视会议、计算机通讯、传真、多媒体系统、医学图象、
35、卫星图象等领域。 压缩编码的方法有很多,主要分成以下四大类:(1)象素编码;(2)预测编码;(3)变换编码;(4)其它方法。 所谓象素编码是指,编码时对每个象素单独处理,不考虑象素之间的相关性。在象素编码中常用的几种方法有:(1)脉冲编码调制(Pulse Code Modulation,简称PCM);(2)熵编码(Entropy Coding);(3)行程编码(Run Length Coding);(4)位平面编码(Bit Plane Coding)。其中我们要介绍的是熵编码中的哈夫曼(Huffman)编码和行程编码(以读取.PCX文件为例)。 所谓预测编码是指,去除相邻象素之间的相关性和冗余
36、性,只对新的信息进行编码。举个简单的例子,因为象素的灰度是连续的,所以在一片区域中,相邻象素之间灰度值的差别可能很小。如果我们只记录第一个象素的灰度,其它象素的灰度都用它与前一个象素灰度之差来表示,就能起到压缩的目的。如248,2,1,0,1,3,实际上这6个象素的灰度是248,250,251,251,252,255。表示250需要8个比特,而表示2只需要两个比特,这样就实现了压缩。 常用的预测编码有调制(Delta Modulation,简称DM);微分预测编码(Differential Pulse Code Modulation,DPCM),具体的细节在此就不详述了。 所谓变换编码是指将给
37、定的图象变换到另一个数据域(如频域)上,使得大量的信息能用较少的数据来表示,从而达到压缩的目的。变换编码有很多,如(1)离散傅立叶变换(Discrete Fourier Transform,简称DFT);(2)离散余弦变换(Discrete Cosine Transform,简称DCT);(3)离散哈达玛变换(Discrete Hadamard Transform,简称DHT)。 其它的编码方法也有很多,如混合编码(Hybird Coding)、矢量量化(Vector Quantize,VQ) 、LZW算法。在这里,我们只介绍LZW算法的大体思想。2.2 JPEGJPEG是第一个被广泛接受的单
38、色和彩色静止图像压缩标准,它的名字源于“Joint Photographic Experts Group(联合图像专家组)”,它是由ISO/和CCITT协同工作的机构,这个机构的工作成果是ISO的国际标准ISO/IEC10918-1(连续色调静止图像的数字压缩和编码,digital compression and coding of continuous tone still images)和ITU-T的建议T.81。JPEG标准草案于1991年公布,1992年正式批准为国际标准,以后这个工作组的进一步增强和扩展形成了ISO 10918-3和ITU-T建议T.81。JPEG是一种采用预测编码(
39、DPCM)、离散余弦变换(DCT)以及熵编码,以去除冗余的图像和彩色数据的有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,也即可以用最少的磁盘空间得到较好的图像品质。而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,
40、压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。比如可以把137Mb的BMP位图文件压缩至203KB。当然也可以在图像质量和文件尺寸之间找到平衡点。JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。 2.3 离散余弦变换Ahmed 等人于70年代提出的离散余弦变换(DCT-Discrete Cosine Transform)压缩算法,降低视频信号的空间冗余度。DCT将运动补偿误差或原画面信息块转换成代表不同频率分量的系数集,这有两个优点:其一,信号常将其能量的大部分集中于频率域的1个
41、小范围内,这样一来,描述不重要的分量只需要很少的比特数;其二,频率域分解映射了人类视觉系统的处理过程,并允许后继的 量化过程满足其灵敏度的要求。视频信号的频谱线在0-6MHz范围内,而且1幅视频图像内包含的大多数为低频频谱线,只在占图像区域比例很低的图像边缘的视频信号中才含有高频的谱线。因此,在视频信号数字处理时,可根据频谱因素分配比特数:对包含信息量大的低频谱区域分配较多的比特数,对包含信息量低的高频 谱区域分配较少的比特数,而图像质量并没有可察觉的损伤,达到码率压缩的目的。然而,这一切要在低熵(Entropy)值的情况下,才能达到有效的编码。能否对一串数据进行有效的编码,取决于每个数据出现
42、的概率。每个数据出现的概率差别大,就表明熵值低, 可以对该串数据进行高效编码。反之,出现的概率差别小,熵值高,则不能进行高效编码。视频信号的数字化是在规定的取样频率下由A/D转换器对视频电平转换而来的,每个像素的视频信号幅度随着每层的时间而周期性地变化。每个像素的平均信息量的总和为总平均信息量,即熵值。由于每个视频电平发生几乎具有相等的概率,所以视频信号的熵值很高。 熵值是一个定义码率压缩率的参数,视频图像的压缩率依赖于视频信号的熵值,在多数情况下视频信号为高熵值,要进行高效编码,就要将高熵值变为低熵值。怎样变成低熵值呢?这就需要分析视频频谱的特点。大多数情况下,视频频谱的幅度随着频率的升高而
43、降低。其中 低频频谱在几乎相等的概率下获得0到最高的电平。与此相对照,高频频谱通常得到的是低电平及稀少的高电平。显然,低频频谱具有较高的熵值,高频频谱具有较低的熵值。据此,可对视频的低频分量和高频分量分别处理,获得高频的压缩值。由上可见,码率压缩基于变换编码和熵值编码两种算法。前者用于降低熵值,后者将数据变为可降低比特数的有效编码方式。在MPEG标准中,变换编码采用的是DCT,变换过程本身虽然并不产生码率压缩作用,但是变换后的频率系数却非常有利于码率压缩。 实际上压缩数字视频信号的整个过程分为块取样、DCT、量化、编码4个主要过程进行-首先在时间域将原始图像分成N(水平)N(垂直)取样块,根据
44、需要可选择44、48、88、816、1616等块,这些取样的像素块代表了原图像帧各像素的灰度值,其范围在139-163之间,并依序送入DCT编码器,以便将取样块由时间域转换为频率域的DCT系数块。DCT系统的转换分别在每个取样块中进行,这些块中每个取样是数字化后的值,表示一场中对应像素的视频信号幅度值。离散余弦变换DCT(Discrete Cosine Transform)是数码率压缩需要常用的一个变换编码方法。任何连续的实对称函数的付立叶变换中只含余弦项,因此余弦变换与付立叶变换一样有明确的物理意义。DCT是先将整体图像分成N*N像素块,然后对N*N像素块逐一进行DCT变换。由于大多数图像的高频分量较小,相应于图像高频分量的系数经常为零,加上人眼对高频成分的失真不太敏感,所以可用更粗的量化。因此,传送变换系数的数码率要大大小于传送图像像素所用的数码率。到达接收端后通过反离散余弦变换回到样值,虽然会有一定的失真,但人眼是可以接受的。2.4 图像的量化 图像的量化就是将取样后图像的每个