您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 变换编码与JPEG标准
变换编码与JPEG标准变换编码的思想JPEG的变换编码与压缩思想变换编码思想:–映射变换:函数变换,常用的又称为正交变换。例如FourierHotellingDCT:DiscreteCosineTransform–量化–编码例子:单一频率的正弦波在时域中:采样、量化、编码在频域中:频率、波幅、初相角Fourier,DCT都是利用正交变换将一个函数从时域描写变成频域描写,突显函数的某些特征,使量化与编码简化。例2:X(t)为模拟输入信号,取样后成为样本序列{Xk}现在以n=8为例,即对(x0,…,x7)进行正交变换,可得到YL的8个输出值(y0,…,y8).在该坐标系中,信息集中在y0,y1,y2三个值上。正交变换的讨论相邻的n个信号样本看作在n维线性空间中的一个列向量YAXYXAIAAAAAXYAAXY),...,,(XTTT21号可以唯一的得到复原信对于正交变换,反变换的变换为正交变换到为正交矩阵,从则称具有性质:如果矩阵的一个线性变换。是为变换矩阵,称对它进行线性变换Tnxxx变化压缩物理本质多位坐标系适当的旋转与变换。散布在各坐标轴上的变化幅度较大的数据,在新的坐标系中,集中在几个少数的坐标轴上。对变化较小、对图像显示、视觉影响不大的轴上的分量分配较少的编码位。关键:如何找A矩阵。一维向量正交变换矩阵例如,以{x(m)}表示M个其值有限的史书信号序列的集合,m=0,1,..,M-1,择其一维DCT矩阵A为:1-M,...,2,11021)(1M,...,1,01M,...,1,0M2)12(cos)(M2AMMkkkCmmkkkmkc为列号,为行号,可以验证,A是一个正交矩阵,根据正交矩阵的性质有1-M,...,2,11021)(1M,...,1,01M,...,1,0M2)12(cos)(M2AAMMT1-kkkCmkkmkmkc为列号,为行号,JPEG1.JPEG简介ISO与IEC联合成立的专家组负责制定静态图像(彩色与灰度图像)的压缩算法2.标准建议的算法要点基本系统(baselinesystem)–恢复后,图像质量达到“很好以上”–8*8DCT变换编码–根据视觉特性设计的自适应量化器、huffman编码扩展系统(extendedsystem)无损压缩loseless:预测编码与huffman编码JPEG算法与压缩编码步骤JPEG算法:图5-9压缩编码步骤(JPEG基本系统)–FDCT–使用加权函数对变换系数量化,加权函数根据人的视觉系统确定。–编码顺序Zigzag:使系数为0的值更集中。–使用DPCM对直流系数编码–使用RLE对交流系数进行编码–Huffman熵编码。离散余弦变换DCT分块:把整个图像分成多个8*8的图象块。变换:对每个块的64数据(为简单起见,可把图像理解成灰度图像,每个点只有亮度值,0-255)DCT的变换与逆变换DCT变换DCT逆变换707016)12(cos16)12(cos),()()(41v)F(u,ijvjuijifvcuc其他当,1)(),(0vu,,2/1)(),(16)12(cos16)12(cos),(F)()(41j)f(i,7070vcucvcucvjuivuvcucuv变换系数的量化量化:从集合论的角度—多对一的映射–为提高压缩效率,希望把系数的幅值缩小Fq(u,v)=integerround(F(u,v)/Q(u,v))–对于不同位置的系数,取不同的Q(u,v),见表5-6。对于低频的系数F(u,v),即u+v较小者,Q(u,v)较小,即幅值缩小的倍数较小。通过心理视觉试验,对视觉效果影响不大的信息尽量丢掉高频部分有较多的0值,即Fq(u,v)为零编码顺序Zigzag量化后,64个系数的意义与位置015624738910DC值AC01AC63DC直流值的编码DC值:量化后,坐标u=v=0时的取值。它是整个块能量的主要部分,它有两个特点:–该值比较大–相邻的两个图像块之间的DC值变化不大对ΔDCi=DCi-DCi-1进行编码(DPCM)DCi-1DCiAC交流系数的编码对于量化后的AC系数,它是一个稀疏矩阵:矩阵中许多位置上的值为零。–采用RLE编码–用EOB(特殊的码字表示块的结束例如下面的量化后的亮度快,按Z字形排列:下标:0123456789—303132—63系数:125-20200010-10熵编码—huffman编码JPEG建议中用Huffman或自适应二进制算术编码。基本系统中用Huffman编码–对出现频率较高的符号,设计较短的码字。反之,用较长的码字。–Huffman编码表事先定义好。对DC,AC的Huffman编码方法不同DC系数差值幅度范围、分类与huffman编码表DC系数差值幅度范围分类编码0000-1,11010-3,-2,2,32011-7,…,-4,4,…,73100-15,…,-8,8,…,154101-31,…,-16,16,…,315110-63,…,-32,32,…,63611107111108111110911111101011111110-2047,…,-1024;1024…204711111111110DC系数差值(ZZ(0))的Huffman编码–先把DC系数差值进行分类,0—11类–对每一类,给出huffman编码。–编码时,由zz(0)值找到对应的类。由类值,确定编码,并由类值确定幅度值的位数例如,ZZ(0)=28,–类为5,编码为110,幅值28用5位二进制表示例如,ZZ(0)=-13,–类为4,编码为101,幅值-13用4位二进制表示,取-13-1(即ZZ(0)-1)补码的后4位。量化后AC系数编码对每一个非零ZZ(i),都表示成如下形式:“NNNN/SSSS”“SSSS”:幅值范围所属分类“NNNN”:当前这个非零系数与前一个非零系数间的位置之差(即非零系数间零系数行程长度ZRL)。ZRL可能超过15。每16个连续的零用一个“1111/0000”,然后用ZRL-16再进行编码。EOB用“0000/0000”AC的幅值与对应的分类SSSSAC系数分类SSSS-1,11-3,-2,2,32-7,…,-4,4,…,73-15,…,-8,8,…,154-31,…,-16,16,…,315-63,…,-32,32,…,636789-1023,…,-512,512,…,102310-32767,…,16384;16384,…,3276715AC系数(NNNN/SSSS)对应的huffman编码NNNN/SSSS行程/幅值类Huffman编码0/0(EOB)10100/1000/2010/31000/410110/5110100/611110000/7111110000/811111101100/911111111100000100/A11111111100000101/111001/2110111/311110011/41111101101/5111111101101/611111111100001001/711111111100001011/811111111100001101/911111111100001111/A11111111100010002/1111002/2111110012/311111101112/4111111110100…F/011111111001F/11111111111110101…F/91111111111111101F/A1111111111111110举例1.前文介绍的的量化后的亮度块,按Z字形排列:下标:0123456789—303132—63系数:125-20200010-102.对于DC值12,最后编码,10111003.zz(1)=5,它与zz(0)之间无零系数,NNNN=0,幅值5落入第3类,ssss=3,即NNNN/ssss=0/3。查AChuffman编码为100。幅值5的编码为101。zz(1)的编码为100101。4.zz(2)=-2,NNNN/ssss=0/2,查AChuffman编码为01。幅值-2落入第2类,zz(2)-1=-3,-3永补码表示并取后两位,01。zz(2)的编码为0101。5.zz(3)=0,zz(4)=2,NNNN/SSSS=1/2,……,最后编码11011106.zz(5)~zz(7)=0,zz(8)=1,NNNN/SSSS=3/1,……,最后编码11101017.zz(9)~zz(30)=0,zz(31)=-1。由于NNNN=2215,故先编一个F/0,hufman编码为11111111001。然后NNNN=22-16=6,这时NNNN/SSSS=6/1,huffman编码为1111011。-1在第1类,取(-1-1=-2)补码的最后一位“0”。最后编码111101108.zz(32)~zz(63)=0,直接用一个EOB(0/0)结束,huffman编码为1010
本文标题:变换编码与JPEG标准
链接地址:https://www.777doc.com/doc-3142118 .html