图像压缩编码3-4节.ppt
数字图像处理研究生课程,第六章 图像压缩编码李俊山 主讲第二炮兵工程学院,6.3变换编码,变换编码的理论根据:(1)正交变换可保证变换前后信号的能量保持不变;(2)正交变换具有减少原始信号中各分量的相关性及将信号的能量集中到少数系数上的功能。,6.3变换编码,变换编码的概念:是指以某种可逆的正交变换把给定的图像变换到另一个数据/频率域,从而利用新的数据域的特点,用一组非相关数据(系数)来表示原图像,并以此来去除或减小图像在空间域中的相关性,将尽可能多的信息集中到尽可能少的变换系数上,使多数系数只携带尽可能少的信息,实现用较少的数据表示较大的图像数据信息,进而达到压缩数据的目的。,变换编码的过程,变换编码过程由以下四步组成:(1)将待编码的NN的图像分解成(N/n)2个大小为nn的子图像。通常选取的子图像大小为88或1616,即n等于或16。(2)对每个子图像进行正交变换(如DCT变换等),得到各子图像的变换系数。这一步的实质是把空间域表示的图像转换成频率域表示的图像。(3)对变换系数进行量化。(4)使用霍夫曼编变长变码或游程编码等无损编码器对量化的系数进行编码,得到压缩后的图像(数据)。,图6.14 变换编码系统框图,变换编码的过程,变换编码系统的实现:,子图像尺寸的选择,子图像的大小与变换编码的误差和变换所需的计算量等有关。在大多数应用中,把图像进一步分割成子图像块要求满足以下两个条件:一是相邻子图像块之间的相关性(冗余)要减少到某种可接受的程度;二是子图的长和宽应是2的整数次幂。最常采用的子图像尺寸为88和1616。,变换的选择,其中,g(x,y,u,v)和h(x,y,u,v)分别称为正变换核函数和反变换核函数,也称为基函数或基图像;式(6.20)中的T(u,v)称为变换系数。,变换的选择,1.变换系数(续1)用n替换式(6.20)中的N,则一幅大小为nn的子图像f(x,y)可以表示成它的二维变换的函数:,(6.21),其中,反变换核函数h(x,y,u,v)只依赖于参数x,y,u,v;与f(x,y)和T(u,v)的值无关。所以,h(x,y,u,v)可看作是由式(6.21)定义的子图像序列的一组基函数或基图像。,(6.22),变换的选择,1.变换系数(续2)进一步将式(6.21)表示成:,变换的选择,2.图像的均方差 如果把变换系数的模板函数定义为:,(6.24),变换的选择,2.图像的均方差(续1)且子图像F和它的近似 之间的均方误差为:,(6.26),也即有:,变换的选择,2.图像的均方差(续2),(6.26),其中,,是变换系数在(u,v)处的方差。,由式(6.24)和式(6.26)可知,当T(u,v)满足指定的截断准则时,的值为1,否则其值为0。所以总的均方差近似误差是所有截断的变换系数的方差之和。一个能把最多的信息集中到最少的系数上去的变换提供了最好的子图近似,因此所产生的重建误差最小。,变换的选择,由于DCT在信息集中能力和计算复杂性方面的综合优势已经取得了较多的应用。对于大多数自然图像来说,DCT能将最多的信息分配在最少的系数之中,还能使被称为“分块噪声”的子图边缘可见的块效应达到最小。,变换编码通常采用的变换包括:DCT(离散余弦变换)、DFT(离散傅里叶变换)、WHT(沃尔什-哈达玛变换)和KLT(卡-洛变换)等实现。,3.几种变换的性能,变换系数的量化和编码,图6.15 典型的区域模板,变换系数的量化和编码,典型的区域编码模板:,1.区域编码(续1),变换系数的量化和编码,当给量化结果分配相同的比特数(都为8位)时,对变换系数的量化有两种方式:(1)均匀量化方案:即对每一个系数都用同样大小的一个值量化;(2)非均匀量化方案:比如,用表6.7的亮度量化值或表6.8的色度量化值作为量化器,也即对各子图像的变换系数中的每个系数用量化表中对应的值进行量化。,1.区域编码(续2),变换系数的量化和编码,表6.7 亮度量化值,表6.8 色度量化值,1.区域编码(续3),变换系数的量化和编码,当给量化结果分配不相同的比特数时,被量化的系数编码的二进制位数有时被描绘成如图6.16的比特数。,图6.16 一种典型的区 域比特分配,1.区域编码(续4),变换系数的量化和编码,例 区域变换编码说明示例。编码过程:(1)子图像尺寸选为88。(2)采用DCT变换,得到变换系数。每一个子图像经过正向DCT变换转换为一组(64个)DCT系数。(3)对变换系数进行量化。采用四种截断方式,分别是取子图像的DCT系数结果方阵的左上角的1个分量、6个分量、15个分量和28个分量,其余分量为零。量化方案采用如表的色度量化值表的非均匀量化方案。量化过程即是分别用DCT系数方阵左上角的1个分量值、6个分量值、15个分量值和28个分量值,除以表的色度量化值表中相应位置上的值。,(a)原图像(b)仅由DC系数重构的图像(c)(a)与(b)的误差图像,(d)最低6个系数的重构图像(e)最低15个系数的重构图像(f)最低28个系数的重构图像,变换系数的量化和编码,一种常用的门限编码方法是用门限可以随子图像中每个系数位置的变化而变化的方法生成式子图像门限模板函数,并且通过用:,2.门限编码,代替式(6.25)中的 实现门限处理和量化过程的结合:,(6.27),(6.25),对变换系数的量化:可采用亮度量化值表(表6.7)量化,或采用色差量化值表(表6.8)量化。,变换系数的量化和编码,2.门限编码(续1),表6.7 亮度量化值,表6.8 色度量化值,对量化结果进行编码:首先,将量化后的系数顺序编排成一个具有n2个元素的1n2的系数序列(矢量)。,变换系数的量化和编码,2.门限编码(续2),图6.18 门限量化系数的编排顺序,对量化结果进行编码:由于量化后的规格化系数中的大多数为0值,所以一般采用一维游程编码或其它变长变码方法对其进行编码。,变换系数的量化和编码,2.门限编码(续3),例 门限变换编码过程说明示例。,2 子图像块各像素减去128后的阵列数据,3 对子图像数据进行DCT变换得到的DCT系数,1 子图像块的像素阵列数据,4 量化值表(色度量化值表),5 对DCT系数进行量化取整后的系数,6 量化取整系数,7 量化值表(色度量化值表),8 逆量化后的DCT系数,这里略去了压缩编码过程和解压缩过程的描述,10 反变换数据加128后重构子图像阵列数据,9 反变换后的子图像阵列数据,图6.19 一个88子图像块的门限变换编码的过程示例,(a)原图像,图6.20 图像的门限变换编码示例,(b)门限编码的重构图像,变换系数的量化和编码,2.门限编码(续4),例 门限变换编码结果说明示例。,变换解码,解码是编码的逆过程。变换解码过程为:(1)对压缩的图像数据进行解码,得到用量化系数表示的图像数据。(2)用与编码时相同的量化函数或量化值表对用量化系数表示的图像数据进行逆量化,得到每个子图像的变换系数。(3)对逆量化得到的每个子图像的变换系数进行反向正交变换(如反向DCT变换等),得到(N/n)2个大小为nn的子图像。(4)将(N/n)2个大小为nn的子图像重构成一个NN的图像。,图6.21 变换解码系统框图,变换解码,6.4基于图像小波变换的嵌入式零树编码,6.4.1 基于小波变换的图像压缩基本思想 小波变换编码的基本思想是将原始图像经二维小波变换后,转换成小波域上的小波系数。由于小波变换后能使原始图像的能量集中在少数的小波系数上,因此最简单的系数量化方法就是只保留那些能量较大的小波系数,而将小于某一阈值的系数略去,或者将其表示为恒定常数,从而达到数据压缩的目的。因此,基于小波变换的图像压缩过程是由量化过程和编码过程实现的。,图6.22 小波图像编解码示意图,基于小波变换的图像压缩基本思想,基于图像小波变换的嵌入式零树编码,1.嵌入式编码的概念 所谓嵌入式编码,就是编码器将待编码的比特流按重要性的不同进行排序,根据目标码率或失真度的大小要求确定编码的长度或迭代次数,并可据此随时结束编码;同样,对于给定码流,解码器也可据此随时结束解码,并可以得到相应码流截断处的目标码率的恢复图像。,基于图像小波变换的嵌入式零树编码,2.零树的概念,图6.23 三级分解子带树及其系数的关联关系,基于图像小波变换的嵌入式零树编码,2.零树的概念(续1)对于最低分辨率子带,其中的每个系数都与其同尺度的水平方向子带、垂直方向子带、对角线方向子带的相同空间位置的共3个小波系数相关联。比如在图6.23中,LL3是最低分辨率子带,它的同尺度的水平方向子带、垂直方向子带、对角线方向的子带分别分别是HL3、LH3、HH3;LL3中的每一个系数都与这三个子带的相同空间位置上的那个系数相关联。,基于图像小波变换的嵌入式零树编码,2.零树的概念(续2)对于其他非最高分辨率的子带,其中的每个系数都与下一级细尺度的相同方向、相同空间位置的4个小波系数相关联。比如在图6.23中,最高分辨率子带是HL1、LH1、HH1;除最低分辨率子带LL3之外的其它非最高分辨率的子带是HL3、LH3、HH3、HL2、LH2、HH2,这些子带中的每个系数都与下一级细尺度的相同方向、相同空间位置的4个小波系数相关联的概念如图6.23中的HH3到HH2再到HH1的树枝箭头和小四方框结构所示。,基于图像小波变换的嵌入式零树编码,2.零树的概念(续3)粗尺度上的系数称为与其关联的下一级细尺度系数的父亲(父系数);细尺度上的系数称为与其关联的上一级粗尺度系数的孩子。与其对应地也把比当前子带尺度大的上一级子带称为父子带;把比当前子带尺度小的下一级子带称为子子带。对于某个给定的父系数,把相同方向、相同空间位置的所有细尺度上的系数称为子孙;对于某个给定的孩子,相同方向、对应于相同空间位置的所有粗尺度上的系数称为祖先。以上所描述的这种关联关系就可形成一系列根在最低分辨率的树型结构,如图6.23所示。,基于图像小波变换的嵌入式零树编码,2.零树的概念(续4)零树则是指当前系数和他的所有后代都为零(或都小于某个阈值)的树。,基于图像小波变换的嵌入式零树编码,3.重要的小波系数和不重要的小波系数 在基于小波变换的嵌入式零树编码中,用一个给定的阈值T来决定小波系数x是否是重要的。如果一个小波系数x的绝对值不小于给定的阈值T,即当abs(x)T时,称该小波系数x是重要的;反之,当abs(x)T 时,称该小波系数x是不重要的。,基于图像小波变换的嵌入式零树编码,3.重要的小波系数和不重要的小波系数(续1)如果一个在粗尺度子带上的小波系数x关于给定的阈值T是不重要的,并且与其关联的较细尺度子带上相同方向、相同空间位置的所有小波系数也关于给定的阈值T是不重要的,这时就称从粗尺度子带的小波系数到细尺度子带上的所有小波系数构成了一棵零树(由于这些系数不重要,当把这些系数值都置为零值时就和上面的零树概念相同了)。零树中粗尺度上的那个小波系数就称为零树根。,基于图像小波变换的嵌入式零树编码,3.重要的小波系数和不重要的小波系数(续2)如果一个在粗尺度上的小波系数x关于给定阈值T是不重要的,但它在较细尺度子带上相同方向、相同空间位置的小波系数关于给定的阈值T至少存在一个重要的子孙,则粗尺度子带上的这个系数就称为孤立零点。,基于图像小波变换的嵌入式零树编码,3.重要的小波系数和不重要的小波系数(续3)根据重要系数的判别方式abs(x)T,说明x可能为正或可能为负,所以,图像的小波分解子带树中的小波系数可以用4种符号表示成一串符号流:正的重要系数(POS),有时简写为P;负的重要系数(NEG),有时简写为N;孤立零点(IZ),有时简写为Z;零树根(ZTR),有时简写为T。,基于图像小波变换的嵌入式零树编码,3.重要的小波系数和不重要的小波系数(续4)基于小波变换的零树编码的理论基础主要是统计概率。该方法假设,如果小波系数x是不重要的,那么x对应的子孙为不重要系数的概率非常大。记住零树根的位置(只对零树根编码),就可以忽略零树根以下的零点,从而达到压缩的目的。形成零树的棵数越多,零树根出现越早,编码效率就越高。,基于图像小波变换的嵌入式零树编码,4.小波变换系数的扫描方法 采用主扫描和精细扫描二次扫描来完成对零树和重要系数的判定。,主扫描是对小波小波系数的扫描,遵循先父结点,后孩子结点的原则。对于一个M级尺度的变换来说,扫描从标注为LLM的最低频子带开始,依次扫描HLM、LHM和HHM,接下来依次扫描M-1层、M2层等。,图6.24 对小波分解子带树中子带的扫描顺序,基于图像小波变换的嵌入式零树编码,4.小波变换系数的扫描方法(续1),基于图像小波变换的嵌入式零树编码,4.小波变换系数的扫描方法(续2)每一个子带的扫描:按zig-zag顺序,或下图顺序(水平子带为按列,垂直子带为按行,对角子带为Z字形。),图6.25 三级分解各子带中小波变换系数的扫描顺序,基于图像小波变换的嵌入式零树编码,5.嵌入式零树编码方法 嵌入式零树编码通过逐次使用阈值序列T1,T2,TN来决定重要系数的逼近量化过程完成嵌入式编码,量化层数N(也即逼近量化的循环次数)一般按照压缩比和失真率折中的原则来事先确定。整个逐次逼近量化过程包括主扫描、精细扫描和符号编码三个子过程。编码过程中一般假设在编码前已经知道或已经获得了子带树中具有最大值的小波系数。,基于图像小波变换的嵌入式零树编码,5.嵌入式零树编码方法(续1)编码过程的步骤:设置初始阈值T 初始阈值T1(k=1,Tk=T1)的选取要同时满足:对于所有的小波系数x应有abs(x)2T1;T1是一个2的整次幂的整数;2abs(T1)的值应不小于且最接近于最大小波系数max(abs(x)。并设T_up=2abs(T1),T_up为区间上限,在精细扫描中区间的分割中要用到。,基于图像小波变换的嵌入式零树编码,基于图像小波变换的嵌入式零树编码,获取重要系数(主扫描)按照前面给出的扫描方法和顺序,逐子带地扫描小波系数。如果abs(x)T,则认为小波系数x是重要的,输出x的 符号;如果abs(x)T,则:如果x位于子带树的最低尺度子带(即位于 HL1,HL1,HH1),则输出IZ;否则在结点为x的四叉树上搜索:如果该四叉树是零树,则输出ZTR;否则输出IZ(子孙中至少存在一个重要系数)。,基于图像小波变换的嵌入式零树编码,基于图像小波变换的嵌入式零树编码,更新阈值Tk 令kk1,Tk=Tk-1/2。,基于图像小波变换的嵌入式零树编码,基于图像小波变换的嵌入式零树编码,精细扫描(次扫描)如果Tk=0.5,则结束精细扫描;否则:首先把总区间Tk+1,T_up划分成宽度为Tk-1且相互不重叠的若干个区间,再把每个区间按宽度Tk分别划分成两个子区间,比如有Tk-1+1,Tk-1+Tk和Tk-1+Tk+1,Tk-1+2Tk,前者称为下半区间,后者称为上半区间。然后依次根据每一个重要系数x的取值选取其对应的区间(也即选取的区间应包含x的值),并且对于该重要系数x:如果abs(x)Tk-1+1,Tk-1+Tk,则输出bit 0;否则,当abs(x)Tk-1+Tk+1,Tk-1+2Tk,则输出bit 1。,基于图像小波变换的嵌入式零树编码,基于图像小波变换的嵌入式零树编码,判别结束条件或循环 重复至,直到N次循环完或Tk=0.5为止。其中,量化层数N一般按照压缩比和失真率折中的原则来事先确定。,基于图像小波变换的嵌入式零树编码,基于图像小波变换的嵌入式零树编码,编码过程的步骤:符号编码 符号编码过程主要完成对主扫描和精细扫描所产生的输出符号的熵编码。对主扫描过程中产生的符号采用一种简单的方法进行编码,比如P=11,N=10,Z=01,T00。精细扫描的结果已经用0和1表示了,所以不再需要进行符号编码。,基于图像小波变换的嵌入式零树编码,编码过程的步骤:符号编码 对于每一个Ti(i=1,N-1)来说,由主扫描得到的符号流和精细扫描得到的0和1串就组成了该阈值对应的逼近过程的输出符号。比如有:P N Z T P T T T T Z T T Z Z Z Z Z P Z Z 和 1 0 1 0 按上述的约定用0和1串代替符号后,就可得到其对应的比特流。比如对应地有:11 10 01 00 11 00 00 00 00 01 00 00 01 01 01 01 01 11 01 01 和 1 0 1 0,基于图像小波变换的嵌入式零树编码,例 图6.26(a)给出了一幅88图像的三级小波变换的矩阵值。,(a)三级小波变换矩阵,分析:其中最大的系数值为63,比63大且为2的整次幂的整数是64,所以选取T1=32,T_up=64。,(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),(a)三级小波变换矩阵,(b)第1次主扫描输出符号和未搜索位置,例,(1)第一次主扫描(T132),表6.9 第1次主循环过程的输出符号,例,例,(2)第一次精细扫描(T216)根据已知条件T_up=64、Tk-1=T1=32和Tk=T2=16,总区间33,64只能划分成宽度为T1=32的一个区间33,64,把其按宽度T2=16分成两个子区间33,48和49,64。显然,对于每一个重要系数x:第1个重要系数63位于上半区间,所以编码为1;第2个重要系数34位于下半区间,所以编码为0;第3个重要系数50位于上半区间,所以编码为1;第4个重要系数45位于下半区间,所以编码为0。第1次精细扫描的结果如表所示,可见,第1次精细扫描的输出二进制串为:1 0 1 0。,表6.9 第1次主循环过程的输出符号,表6.10 第1次精细扫描的输出符号,例,(c)第2次主扫描的小波变换矩阵,(d)第2次主扫描输出符号和未搜索位置,例,(3)第二次主扫描(T216),(c)第2次主扫描的小波变换矩阵,(d)第2次主扫描输出符号和未搜索位置,例,(3)第二次主扫描(T216),(c)第2次主扫描的小波变换矩阵,(d)第2次主扫描输出符号和未搜索位置,例,(3)第二次主扫描(T216),(c)第2次主扫描的小波变换矩阵,(d)第2次主扫描输出符号和未搜索位置,例,(3)第二次主扫描(T216),(c)第2次主扫描的小波变换矩阵,(d)第2次主扫描输出符号和未搜索位置,例,(3)第二次主扫描(T216),(c)第2次主扫描的小波变换矩阵,(d)第2次主扫描输出符号和未搜索位置,例,(3)第二次主扫描(T216),表6.11 第2次主循环过程的输出符号,例,例,(4)第二次精细扫描(T38)根据已知条件T_up=64、Tk-1=T2=16和Tk=T3=8,把总区间17,64划分成宽度为T2=16的3个区间17,32、33,48和49,64。,表6.11 第2次主循环过程的输出符号,表6.12 第2次精细扫描的输出符号,例,基于图像小波变换的嵌入式零树编码,6.解码恢复图像小波变换矩阵 解码过程是编码的逆过程,采用类似于编码时的搜索策略进行。,表6.13 解码过程的第一次和第二次精细扫描的重要系数重建值,基于图像小波变换的嵌入式零树编码,例6.4.2.以例为例,说明重要系数的重建方法。,基于图像小波变换的嵌入式零树编码,7.嵌入式小波零树编码的渐进传输特性 利用Daubeches8小波对Lena图作三级小波分解的渐进传输实验结果。,(d)第7次解码重构图像,(e)第10次解码重构图像,(f)第12次解码重构图像,(a)第1次解码重构图像,(b)第3次解码重构图像,(c)第5次解码重构图像,图6.28 Lena图像渐进传输过程中的PSNR值,图6.1 练习题1.21图,例,