网站大量收购独家精品文档,联系QQ:2885784924

基于DCT的图像压缩编码算法的MATLAB实现毕业论文设计.doc

基于DCT的图像压缩编码算法的MATLAB实现毕业论文设计.doc

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE II 目 录 TOC \o 1-3 \h \u 游程编码,常用RLE(Run-Length Encoding)表示。该压缩编码技术相当直观和经济,运算也相当简单,因此解压缩速度很快。RLE压缩编码尤其适用于计算机生成的图形图像,对减少存储容量很有效果[11]。 63个AC系数采用行程编码的方式进行编码的格式如图2-8所示。也即在AC01到AC63中,找出每一个非零的AC值,将其表示成(NN/SS)VV的形式,其中:NN表示该AC值前的0的个数。而SS、VV与DC的定义一样。如果连续的非0超过15个时,增加一个扩展字节:(15/0)表示连续16个0。另外若有一串0延伸到AC63,一律用(0/0)表示结束。 7 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 第一字节 第二字节 两个非零值 之间的连续 零的个数 下一个非零 值所占的比 特数 下一个非零系数的实际值 图2-8 AC编码格式 对于AC系数,有两个符号。符号1为行程和尺寸,即上面的(RunLength,Size)。(0,0)和(15,0)是两个比较特殊的情况。(0,0)表示块结束标志(EOB), PAGE 17 (15,0)表示ZRL,当行程长度超过15时,用增加ZRL的个数来解决,所以最多有三个ZRL(3×16+15=63)。符号2为幅度值(Amplitude)。 对于DC系数,也有两个符号。符号1为尺寸(Size);符号2为幅度值(Amplitude)。 对于AC系数,符号1和符号2分别进行编码。零行程长度超过15个时,有一个符号(15,0),块结束时只有一个符号(0,0)。 对符号1进行Huffman编码(亮度,色差的Huffman码表不同)。对符号2进行变长整数VLI编码。举例来说:Size=6时,Amplitude的范围是-63~-32,以及32~63,对绝对值相同,符号相反的码字之间为反码关系。所以AC系数为32的码字为100000,33的码字为100001,-32的码字为011111,-33的码字为011110。符号2的码字紧接于符号1的码字之后。 对于DC系数,Y和UV的Huffman码表也不同。 2.2.7 组成位数据流 JPEG编码的最后一个步骤是把各种标记代码和编码后的图像数据组成一帧一帧的数据,这样做的目的是为了便于传输、存储和译码器进行译码,这样的组织的数据通常称为JPEG位数据流(JPEG bit stream)[12]。 举个例子来说明上述过程。下面为8×8的亮度(Y)图像子块经过量化后的系数,如表2-3所示。 表2-3 亮度量化后的系数 15 0 -1 0 0 0 0 0 -2 -1 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PAGE 28 可见量化后只有左上角的几个点(低频分量)不为零,这样采用行程编码就会很有效。 第一步,熵编码的中间格式表示。 先看DC系数。假设前一个8×8子块DC系数的量化值为12,则本块DC系数与它的差为3,根据下表 表2-4 DC系数表 Size Amplitude 0 0 1 –1,1 2 –3,-2,2,3 3 –7~-4,4~7 4 –15~-8,8~15 5 –31~-16,16~31 6 –63~-32,32~63 7 –127~-64,64~127 8 –255~-128,128~255 9 –511~-256,256~511 10 –1023~512,512~1023 11 –2047~-1024,1024~2047 查表得Size=2,Amplitude=3,所以DC中间格式为(2)(3)。 下面对AC系数编码。经过Zig-Zag扫描后,遇到的第一个非零系数为-2,其中遇到零的个数为1(即RunLength),根据下面这张AC系数表: 表2-5 AC系数表 Size Amplitude 1 –1,1 2 –3,-2,2,3 3 –7~-4,4~7 4 –15~-8,8~15 5 –31~-16,16~31 6 –63~-32,32~63 7 –127~-64,64~127 8 –255~-128,128~255 9 –511~-256,256~511 10 –1023~512,512~1023 查表得Size=2。所以RunLength=1,Size=2,Amplitude=3,所以AC中间格式为(1,2)(-2)。 其余的点类似,可以求得这个8×8子块熵编码的中间格式为 (DC)(2)(3),(1,2)(-2),(0,1)(

文档评论(0)

weidameili + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档