一种小波零树编解码方法及其实现电路的制作方法

文档序号:7958113阅读:211来源:国知局
专利名称:一种小波零树编解码方法及其实现电路的制作方法
技术领域
本发明涉及小波零树编解码技术,尤指一种采用新的零树标注符号从低层向高层逐组、逐层、逐树顺序扫描、量化、编码,且一次能完成八个位平面并行零树编解码的小波零树编解码方法及其实现电路。
图象经小波变换后,其小波变换系数有两个特点第一、能量主要集中在低频子带,其余区域的能量较少,而且大多集中在与图象亮度突变边缘对应的子带系数处,且一般高层的系数比相应的低层系数的绝对值大。第二、不同层同一方向上的子带存在自相似性,这种层间的自相似,一方面,反映在对应于边缘的各层大系数位置间的相似;另一方面,也反映在小系数的层间关系上,与一个高层的小系数相应的低层系数一般更小。
为了充分利用小波变换系数的这两个特点,1993年S.M.Shapiro提出了小波系数的嵌入式零树编码方法,这是一种高效的编码方法,而且码流具有嵌入式的性质,即可以随时截断,以达到所需的压缩比。在随后的几年中,包括Shapiro在内的许多专家对零树编码方法做了很多改进,使零树编码的效率进一步提高。在1998年颁布的MPEG-4标准中,采用的是改进的嵌入式零树编码方法。
据公开报道,迄今为止只有欧洲的IMEC研究中心设计出了嵌入式零树编码电路,命名为“OZONE”,该零树编码电路将一颗树的零树标注符号和绝对值大于量化阈值的小波变换系数混合输出,减少了对存储器的访问次数,但降低了零树编码的嵌入式性能。
该名为OZONE的零树编码电路是基于Shapiro的嵌入式零树编码算法实现的,所谓零树是指在多次量化的每一次量化后,如图3所示,当输入系数的绝对值大于阈值,则为大系数,否则为小系数;如果某个小波变换系数w和它的所有后代结点全是小系数,则w被称为零树结点;如果w不是其它零树结点的后代,则其为零树根。对于大系数而言,如果为正值,则输出符号POS,如果为负值,则输出符号NEG;对于小系数来说,如果该系数是某个零树根的后代,则其为可以预测的小系数,不用编码;否则,判断该系数是否有大系数后代?如果有,说明该系数本身是小系数,但具有大系数的后代结点,其被称为孤立零点,由符号IZ表示;如果该系数没有大系数后代,则该系数为零树根,由符号ZTR表示,对于零树根的所有后代结点不需要再进行任何编码。
该嵌入式零树每一次量化编码的过程可分为两个过程主控过程和从属过程。其中,主控过程按照规定的次序扫描小波变换系数,根据系数本身的绝对值大小及后代结点的绝对值大小及其关系分别输出ZTR、IZ、POS、NEG符号。如果输出POS或NEG符号,则该系数的值被置为0,同时将该系数绝对值放入大系数队列表中;从属过程依次输出大系数队列表中所有大系数绝对值中小于此次量化阈值的低一比特值。
同样,该嵌入式零树解码方法根据量化次数也分为多个解码过程,每个解码过程依然包括主控过程和从属过程,主控过程是按照嵌入式零树编码后输出的ZTR、IZ、POS、NEG四个符号恢复零树结构;从属过程则恢复大系数中小于此次量化阈值的低比特值,对大系数进行细化;当所有解码过程执行完毕,就恢复出所有绝对值大于最小量化阈值的小波变换系数。若再经过相应的小波逆变换,就可观看恢复后的图象。
零树编码是把小波变换系数按照树形结构进行组织和编码,图2中给出一个四层小波变换的子带分布。第一层四个子带HH1、HL1、LH1和LL1中的LL1经过小波变换后,生成第二层的四个子带HH2、HL2、LH2和LL2,以此类推,最后一层的四个子带为HH4、HL4、LH4和LL4。根据自相似性,除了低频子带LL4外,其余子带之中,也就是高频子带之中某给定位置的系数通常和相同方向上较低层相应位置的系数有一定的相似性。其中,高层子带的系数叫做父结点,紧接着的低层子带相应位置的四个系数叫做子结点;对于一个给定的父结点的所有子结点,以及子结点的子结点等等相应所有系数叫做后代结点;同理,相同方向上的所有较高层子带的系数叫做祖先结点。比如图2中HH3、HH2和HH1内用线连起来的小波系数彼此之间就是一种父结点、子结点和后代结点的关系,所有这些结点形成了一种树形结构。所有的小波变换系数可以被组织成一棵棵独立的小波系数树形结构,简称为小波树。小波变换后子带不同层间的自相似性也体现在小波树之中,零树编码利用小波树寻找和表示绝对值小于量化阈值的小波变换系数之间的相似性,来提高压缩效率。
该嵌入式零树编码方法的重要思想就是逐次量化逼近,即通过逐渐降低小波变换系数的量化阈值,逐渐完成量化和编码过程。在计算机和数字电路中,数字均表示为二进制数值,如果控制量化阈值,使逐次量化的阈值按2的指数形式递减,即等价于将小波变换系数的值按照由高至低逐比特位,称为位平面量化(bi-level-quant),是一种常用的逐次量化方法。量化后的编码过程又包括主控和从属两个过程,其中,主控过程完成量化后当前位平面中零树结构的判别和标注;从属过程实现细化大系数的过程。逐次量化和编码可使整幅图象中的重要数据先输出,因此随时停止码流,图象的整体性仍能保证,嵌入式性质得以实现。
在每一个量化的过程中,为了提高编码效率,要设法增加小系数的数量。具体做法就是对于成为过大系数的小波变换系数清零,则在以后的量化过程中,此小波变换的系数永为小系数。
就电路设计而言,由于嵌入式零树编码采用逐次量化方法,而且每次量化后大系数清零对后续编码施加影响,因此进行串行式的逐次量化和编码较为容易。但是,小波变换系数一般在16比特以上,要串行执行16次以上的图象零树编码,视频数据压缩的实时处理要求迫使电路的处理速度要非常高,低成本的集成电路就难以实现。因此,并行处理是必不可少的。
因此,本发明的主要目的在于提供一种小波零树编解码方法及其实现电路,使其在满足视频数据压缩和图象数据压缩技术要求的同时,降低对电路性能和资源的要求,并与小波变换配合更好,具备更高的压缩效率,更灵活且易于实现。
为达到上述目的,本发明的技术方案具体是这样的一种小波零树编码的实现方法,至少包括量化过程、主控过程和从属过程,重要的是该主控过程对小波树的结点是从低层到高层逐组、逐层、逐树进行扫描处理,并以零树根ZTR(10)、带值零树根VZTR(11)、孤立零点IZ(00)、大系数VAL(01)四种符号来标注零树结构的相应结点。
所述的量化过程可同时执行对一个以上阈值的量化;在量化完成后,先将大系数在所有低量化阈值处的值清零,再进行零树编码。
所述的主控过程和从属过程是从高比特位平面到低比特位平面进行零树编码,而且并行处理一个以上位平面的零树编码。该并行处理以最多8个比特位平面同时执行零树编码为最佳。
所述四种零树标注符号的低比特为0,表示小波变换系数量化后为小系数,低比特为1,表示小波变换系数量化后为大系数;该标注符号的高比特为1,表示为零树,高比特为0,表示为非零树。所述小波树的最低层只存在孤立零点IZ(00),或大系数VAL(01)两种零树标注符号,因此,最低层的零树标注符号由一个低比特位表示。
所述的主控过程由低层向高层扫描时,每层由四个属于同一父结点的子结点一组,逐组顺序扫描,中间无间隔。对于位于最低层的小波树数据,如果一组的所有结点值全为0,则构成零树;对于更高层的小波树数据,如果一组中所有结点值全为10,则构成零树。该主控过程在零树标注时,如果构成零树,则对其相应的父结点增加一个高比特1,否则增加一个高比特0。为了不影响小波树的扫描过程,所增加的高比特位的值单独存储。如果不为零树,输出零树标注符号;并将大系数绝对值放入大系数队列表中。
所述的从属过程是指在一个位平面的主控过程完成后,依次输出大系数队列表中所有大系数绝对值小于相应阈值的低比特值以及相应的大系数符号值。该从属过程进一步包括a.当主控过程未处理所有位平面数据时,比较最大绝对值小波变换系数的绝对值与最大量化阈值之间差值和商值的大小,取两者中的较小值为选出值;b.先输出选出值的有效比特位数,然后输出选出值的有效比特位值。
所述层与层之间存储器读写转换时可插入延迟。
一种小波零树解码的实现方法,至少包括a.对所有要写入恢复数据的外部存储器清零;b.从零树高层到低层的顺序,按所读入的零树标注符号的比特值逐层恢复小波树的零树结构;当一棵小波零树恢复完毕后,再继续读入后续零树标注符号,开始下一棵小波零树结构的恢复;c.恢复大系数的数值。
所读入的零树标注符号的低比特位为当前结点值,高比特位表示其后代结点的性质,该高比特位需要缓存。当读入的零树标注符号的低比特位为1时,将对应的小波变换系数的相应比特位写入1,否则,不执行写操作;当读入的零树标注符号的高比特位为1时,恢复后代结点不需要再读取新的数据,否则,需要读取该父结点对应的所有四个子结点零树标注符号2比特数据。
该零树解码方法的步骤b进一步包括以下的步骤当读入的最高层数据为10或11时,仅将11中的1写入相应小波变换系数位置上的相应比特位,本棵小波零树结构即恢复完毕;当读入的最高层数据比特值为00或01时,仅将01中的1写入相应小波变换系数的相应比特位,然后读入后续所有子结点的零树标注符号。
当读入最低层的一个比特为1时,则将1对应的小波变换系数位置上的相应比特位写入1,否则,不执行写操作。
该零树解码方法的步骤c进一步包括以下的步骤c1.从小波树高层到低层顺序读取、判断外部存储器中的数据所表示的零树结构,如果数据为小系数0,不需操作,转向下一地址中的数据;如果数据不是小系数0,而且待解码的大系数的数据为1,则将1写入相应小波变换大系数的相应比特位,然后继续转向下一地址中的数据;如果数据不是小系数0,而输入数据为0,则不需写入,转向下一地址中的数据。
c2.如果零树编码时未处理所有位平面的数据,取绝对值最大的大系数与最大量化阈值之间差值和商值的较小值为选出值,根据选出值的有效位数,决定需要恢复的大系数的有效比特位;c3.如果选出值为差值,则将差值与最大量化阈值相加,否则,将商值与最大量化阈值相乘;c4.从高层到低层顺序读取外部存储器中的数据,如果读入数据为0,依次读取下一地址中的数据;如果读入数据为1且输入数据为1,则将1写入相应小波变换系数位置上的相应比特位,然后依次读取下一地址中的数据;如果读入数据为1而输入数据为0,则依次读取下一地址中的数据。
当所要恢复的大系数为负数时,预先将该系数对应的地址中的数据变为二进制补码,再存入原地址结束解码。
一种小波零树编码的实现电路,至少包括一个存储器、量化器、清零处理器、零树判别和标注单元、数据输出控制单元以及地址发生器;从存储器中读取小波变换系数,经过量化器的量化处理后,由清零处理器对量化后的大系数进行清零,之后,通过零树判别和标注单元对小波变换系数进行零树判别及零树符号标注,最后由数据输出控制单元将编码后的数据输出至存储器中。
所述的清零处理器由普+通编码器和解码器组成,只保留在较高阈值时第一次成为大系数后的标注值1,即小波变换系数量化后的二进制数值中最高位的比特1,其余低比特位全部清零。利用缓存器存储零树判别的结果,零树扫描、编码连续执行。
本发明的关键在于采用新的零树标注符号,并且从小波树的低层到高层进行扫描、量化、编码,该零树编码方法可同时执行多次量化,一次并行完成八个位平面的零树编码。
本发明所提供的零树编码方法及其实现电路,具有以下的优点和特点1)该零树编码方法及电路充分利用新的四个零树标注符号,并设计从低层到高层,按照逆向的小波树深度优先方式进行逐组、逐层的扫描,能够一次并行处理八比特位平面的零树编码电路,以及相应的内、外部存储器控制电路和数据接口电路,既保证了零树编码算法的压缩性能,同时大大降低了运算复杂度和运算时间,使得该电路可以较容易地实时实现视频、图象压缩编码,同时保证对集成电路的较低要求。
2)本发明零树编码是利用树形结构寻找和表示小绝对值的小波变换系数的相似性,来提高压缩效率。采用以小波树为单位,而不是对整幅图象进行零树编码可以大大减少中间结果对存储器的容量要求,实现片内存储;而且由于不同小波树之间的零树编码是独立的,可以进行并行小波树零树编码。
3)从电路设计角度而言,采用逆向从最低层的后代结点开始扫描,可以无间隙地连续进行,大大减少对存储器的交互读写,而交互读写既降低存储器的速度,又增加控制电路的复杂度和资源消耗;因为后代结点的判别和标注不需要根据前辈结点的特性,而反之则不然。
4)成本低廉。它对集成电路资源和性能的要求相对很低,并且不需要专门的电路结构和片内存储器,因而能够集成到一片价格低廉的集成电路之中。
5)可靠性好。由于结构简单、紧凑,具有良好的实用性和可靠性。
6)通用性强。可完成任意常用类型、尺寸的一帧或一块图象数据的多层二维双正交小波变换的简化的零树编、解码。
对于彩色图象或彩色视频,可以通过本发明的零树编解码电路对彩色图象的R、G、B分量图象或Y、U、V分量图象分时、分别一一执行零树编码或解码。
图2为四层小波变换频带分布示意图;图3为Shapiro零树编码流程图;图4为本发明零树编码流程图;图5为本发明小波变换系数量化部分电路框图;图6为本发明零树结构判定部分电路框图;图7为本发明零树编码输出控制部分电路框图;图8为本发明零树编码的电路框图;图9为本发明零树编码方法具体实现的流程图;

图10为本发明零树解码方法具体实现的流程图。
本发明是一种基于MPEG-4实现嵌入式零树编码算法的方法和电路,如图4所示,主要改进之一在于采用一套MPEG-4给出的新的零树标注符号,其中,零树根表示为ZTR(10),带值零树根表示为VZTR(11),孤立零点表示为IZ(00),大系数表示为VAL(01),括号中是对应符号的二进制表示。对比Shapiro的零树标注符号可以看出,本发明将Shapiro方法中大系数的表示符号POS和NEG合二为一,用VAL代替,而将零树根细化,拆成两类,ZTR的定义不变,新加的VZTR表示本身虽然是大系数,但其所有后代结点都是小系数,称之为带值零树根。该种改进具有明显的效果,大大简化了原有的符号标注,因为本发明中VZTR的情况,在Shapiro的零树标注中需要用到一个POS或NEG和四个ZTR。另外,本发明的新零树标注符号的低比特位正是其量化后本身的数值,0表示小系数,1表示大系数;而高比特位代表了后代结点的性质,1表示零树,0表示非零树;而且本发明在最低层的小波变换系数中(占图象的3/4象素点),由于不会再有后代结点,所以,只存在孤立零点IZ(00)和大系数VAL(01)两种符号,这样,会提高压缩效率。
那么,本发明零树结构的判断和标注过程如图4所示,首先判断输入系数的绝对值是否大于阈值,然后判断该系数是否为零树根?如果输入系数绝对值大于阈值且为零树根,则输出VZTR;如果输入系数绝对值大于阈值但不为零树根,则输出VAL;如果输入系数绝对值小于阈值且为零树根,则输出ZTR;如果输入系数绝对值小于阈值且不为零树根,则判断该系数是否有大系数的后代结点?如果有,则输出IZ;否则,说明是零树无符号。
本发明的方法及电路可实时完成任意常用尺寸的一帧或一块图象的小波变换数据的零树编、解码。
以四层小波变换为例,具体说明本发明电路的工作原理及本发明零树编解码方法的实现如图2所示,第一层小波变换完成后,对低频子带LL1再做第二层小波变换,然后再对第二层小波变换后的低频子带做第三层小波变换,最后对第三层小波变换的低频子带再做第四层小波变换。仅对低频子带区域进行多层小波变换的原因在于一是因为低频子带区域含有大部分的大绝对值小波变换系数,且低频子带区域较大,有可能将较大值进一步集中;二是因为高频子带区域,大绝对值小波变换系数不多,对其进行小波变换,不会有显著效果。
本发明零树编码的另一改进在于在结点处理上,是从最低层的后代结点开始扫描,将四个属于同一父结点的子结点一组顺序读取,组与组之间不需要间隔。首先对每个结点的小波变换系数取绝对值,然后进行同时量化,利用比较器对每一个小波变换系数的绝对值与所有量化阈值进行比较如果小于阈值,则是小系数,比较器输出0;否则是大系数,比较器输出1。将这些量化结果按量化阈值由高到低排列在一起,就表现为多个位平面的二进制表示,每个位平面对应一个量化阈值。之后,零树编码是以逐组、逐层的零树判别方法扫描量化标记,从低层向高层判断零树结构。
为了增加小系数的数量,提高编码效率,对在较高阈值时成为过大系数的小波变换系数进行清零处理。清零操作可利用通用的编、解码器组合处理,使量化后的二进制数值改为只保留一个最高位的比特1,其余低比特位清零,处理后的数值即可进行并行的零树编码。
并行零树编码中的判别是利用另一组比较器如果某一位平面的小波树最低层的一组四个后代结点的数值都为0,此比较器输出1,表示为零树,否则比较器输出0,表示不为零树。该输出数值存入片内缓存器或外部存储器,与其相应的父结点一一对应。因为最低层的后代结点不再有后代结点,所以不可能是零树根,而只能有两种零树标注符号孤立零点IZ(00)或大系数VAL(01),可用一个低比特来表示。但是,其余层的孤立零点IZ(00)和大系数VAL(01)必须用两个比特来表示,以免数据混乱。
一棵小波树最低层的后代结点全部读取完毕后,则上移一层,仍然按四个属于同一父结点的子结点一组顺序读取。在读取小波变换系数的同时,同步读取与其对应的子结点的比较结果。如果一组内的四个结点都为小系数0,且每个系数对应的子结点的比较结果都为1,比较器输出1,表示为零树;否则不为零树,比较器输出0。依此类推,上移至最高层,因为不再有父结点,最高层不需要零树判别,将其本身数值1或0作为低比特,其对应的四个子结点的比较结果作为高比特,组合在一起,就形成零树标注符号,10是零树根ZTR,11是带值零树根VZTR,00是孤立零点IZ,01是大系数VAL。要注意的是在实际电路的处理过程中,如果四个子结点比较结果的输入和输出存在延迟,那么,层与层之间存储器读写转换时需要插入延迟。
并行零树编码对处理后的二进制数值的任意8比特位平面进行零树的判别和标注,通常选择先处理较高比特的位平面,然后再处理较低比特的位平面,比如8比特二进制数就从最高比特位平面到最低比特位平面并行处理;如果是16比特数,则先并行处理高8位,后并行处理低8位,并行处理高8位或低8位的内部仍是按从高位到低位优先级的顺序处理,直到完成所有位平面的编码。并行零树编码也可以对八个以上的位平面一次进行处理,但是,输入和输出的控制较为复杂,性价比较高。
由于清零操作是对大系数在所有低量化阈值处清零,那么要保证大系数的数值精度,还需要细化处理,即在某一位平面的处理结束后,再通过一个从属过程,依次输出大系数队列表中所有大系数绝对值在下一个位平面上的比特值以及相应大系数的符号值。
根据上述分析,配合图9所示可以看出,该四层零树的编码过程主要包括以下步骤1)量化。根据码率控制的要求定出各个量化阈值,对小波变换系数的绝对值进行同时量化。为了灵活地控制编码质量,不同子带可以使用不同的量化阈值。如果某一系数的绝对值大于量化阈值,即认为该系数为大系数,对于大系数只取其对应于较大量化阈值的一个数值,其对应于较小量化阈值的所有数值清零。在数字电路设计中,数据均是二进制数,因此,量化阈值常取2的指数,即为MPEG-4中的bi-level-quant方式。
该量化步骤主要由量化电路来实现,如图5所示,从外部存储器R501中按照逆向小波树的深度优先方式顺序读出小波变换系数,送到运算器A502中,运算器A502对小波变换系数取绝对值,然后输出到比较器C503,比较器C503将小波变换系数的绝对值与多个阈值同时比较,至于阈值的个数或数值可根据实际需要任意设定。如果小于某个阈值则输出一个0,否则输出一个1;此一组输出再通过普通编码器C504和解码器C505组合对大系数做清零处理。该量化过程中,由信号地址发生器U505管理和控制外部存储器R501的读数据操作。
2)主控过程。按照逆向小波树的深度优先方式查找和标注,从最低层的后代结点开始,四个属于同一父结点的子结点一组,逐组顺序处理。
该查找标注过程主要由零树结构的判定电路来实现,如图6所示,经过量化的数据由解码器C505中输出,按八个位平面并行处理。在每一个位平面上有一组四个寄存器,寄存器R601、R602、R603、R604分别延迟四个属于同一父结点的子结点数据,使其在比较器C606中同时比对、判断是否构成零树。该判断准则是对于第一层的数据,如果此位平面的四个属于同一父结点的子结点数据全为0,则构成零树,判断结果输出为1;而对于第二、三和四层的数据,如果低层子结点的判断结果全为1,而高层的数据全为0,则构成零树。否则,根据该结点和后代结点的性质输出零树标注符号IZ、VAL、ZTR或VZTR。在最低层,输出的只有IZ、VAL两种符号,用一比特来表示,低层子结点的判断结果输出到缓存器L607中。
如图7所示,零树标注符号输入至移位寄存器S701,移位寄存器S701输入16比特后,数据锁存到锁存器L702,等待数据选择器M703的选取。数据选择器M703由选通控制逻辑S704根据由高位平面到低位平面的数据输出优先原则选通某一位平面的数据输出到外部存储器R706,该过程中外部存储器R706的写操作由地址发生器U705管理控制。
3)从属过程。先输出大绝对值小波变换系数的绝对值与量化阈值之间差值或商值的有效比特位数,然后再输出差值或商值的有效比特值。如果是以位平面方式逐比特位量化,则每个位平面只输出低一比特值和大系数的正、负号。
从属过程电路将大系数的低比特值输出到相应于各个位平面的外部存储器R706的地址单元,其符号以及如果存在与最大阈值的差值或商值的编码输出到R706的一个独立的地址单元中。由外部存储器R706按照位平面从高到低,数据后入先出的顺序读取,送出零树编码电路。
为了简化零树编码,节省电路资源和运算时间,可以只编码较低八比特位或更少数量的比特位平面,因为高比特位平面的大系数较少,可通过从属过程的简单处理完成编码。如只取八个量化阈值,从属过程首先处理最大量化阈值时的大系数,根据最大大系数的绝对值与最大量化阈值的差值或商值哪个更小,决定处理差值或商值,首先编码每一个大系数的差值或商值的有效位数,然后输出其大系数的差值或商值的有效比特位,这样便可避免输出高比特位的一串0值。
一棵小波树的系数反映到图象中只关系到某一局部,因此,如果零树编码后八个位平面的数据直接作为码流输出,则会破坏零树编码的嵌入性质,因为码流不再以逐次量化的重要数据先行输出,而是以小波树为顺序输出,随时停止输出码流,图象的整体性能可能被破坏。因此,并行的零树编码输出需要按位平面缓存,等所有小波树编码完成后,再按逐次量化的重要数据先行输出的原则组织由高到低的位平面码流输出。
要缓存整幅图象的所有小波树编码输出,需要大容量的外部存储器,一般大容量外部存储器的一个地址中存放16比特数据,而一个位平面上的零树编码输出是1比特(比如最低小波变换层)或2比特(其余小波变换层)。因此,需要缓存并凑满16比特后再输出到外部存储器。零树编码的输出是随机的,根据零树编码的四个标注符号ZTR(10)、VZTR(11)、IZ(00)、大系数VAL(01),在很多仅为零树时不需要输出,产生符合四个标注符号时,零树编码才有输出。因此,哪个位平面先凑满16比特也是随机的,输出的原则是先凑满16比特的先输出,当几个位平面同时凑满16比特时,按照由高位平面到低位平面的优先原则顺序输出。
假设一种极端的情况,如果八个位平面同时凑满16比特,由高到低顺序输出需要八个时钟,倘若这八个时钟内,八个位平面再次凑满16比特(2比特/时钟),则又需要顺序输出。如果并行处理九个位平面,则最低的位平面可能很长时间内轮不到输出,数据就会累积,需要较多的内部缓存单元,使资源消耗增加,控制变得复杂,因此,并行处理八个位平面是性价比较好的选择。
在外部存储器中,地址单元按照位平面的数目分成多个部分,每一部分存储相应位平面的输出数据。当最后组织码流输出时,先输出高位平面的所有数据,再输出较低位平面的所有数据,以保证零树编码的嵌入性能。为了零树解码的便利,位平面的所有数据输出次序与零树编码产生的次序相反。例如,零树标注符号最后写入外部存储器的,反而最先列入码流输出,因为零树解码从前辈结点开始恢复比从后代结点要大为简捷。
参见图8所示,本发明的零树编码电路包括一对存储器2051和2052、量化器C801、清零处理器C802、零树判别和标注C803、数据输出控制C804以及地址发生器C805;存储器2051用于存储编码前的小波变换系数,存储器2052用于存储经过本发明零树编码的零树结点的二进制数据比特值。从存储器205 1中读取小波变换系数,经过量化器C801的量化处理后,由清零处理器C802将在较高阈值时成为过大系数的小波变换系数进行清零,只保留最高比特位为1;之后,通过零树判别和标注单元C803对小波变换系数进行零树判别及零树符号标注,生成零树结构;由数据输出控制单元C804将编码后的数据输出至存储器2052中。地址发生器C805用于控制存储器的写操作。如果需要减少存储器的数目,也可以只用一个存储器2051,数据输出控制单元C804控制好数据输出的节奏即可。
针对上述零树的编码过程,相应的,零树的解码过程是对小波变换系数进行恢复。
为简化零树解码操作,在零树解码开始前,首先对要存放恢复小波变换系数的存储器的所有地址、比特位清零,避免零树解码中的大量写0操作,且节省大量时间。然后,根据由高到低位平面输入的四个零树标注符号的00、01、10和11数值和相应的量化阈值、从属过程输出的细化数值,可逐步恢复出小波变换系数的高比特位到低比特位。
首先要恢复的是各个小波树的零树结构,即将零树标注符号准确放到小波树的各个位置。因为位平面的所有数据输入次序与零树编码产生的次序相反,即小波变换最高层的零树标注符号先行输入,如果是ZTR(10)或VZTR(11),因为存储器已经清零,仅需将VZTR(11)的1写入图象中相应的小波变换系数位置上相应比特位,此小波树的零树结构即恢复完毕。再读入后续一个零树标注符号,相应于另一棵树的最高层树根位置。如果是IZ(00)或VAL(01),仅需将VAL(01)写入图象中相应最高层的小波变换系数位置上相应比特位;然后读入后续四个相应其子结点的零树标注符号,将这四个零树标注符号的低比特位值为1的写入图象中相应次高层的小波变换系数位置上相应比特位,然后根据其高比特位,如果某一个为0,则读入后续四个相应其子结点的零树标注符号;如果为1,则标注其四个子结点是零树,这里需要一个缓存器存储子结点的高比特位,因为零树标注符号的高比特位表示了后代结点的性质。另外,在实际写入操作中,由于存储器不能对位操作,16比特要么同时读,要么同时写,因此需要先读出数据,将数据的相应比特改变,然后再写入存储器。
因为零树编码是以树为单位,树内部以层为单位,零树解码也必然是树内部一层层恢复,然后一棵树一棵树地恢复。在树内部某一层时,根据缓存中其相应父结点的高比特位值,为0,读入后续四个零树标注符号,将零树标注符号的低比特位是1值写入图象中相应的小波变换系数位置上相应比特位,缓存零树标注符号的高比特位;如高比特位值为1,不需对存储器进行读写操作,但需要缓存四个1值为其子结点,表示零树。
小波树的零树结构恢复后,由于大系数只能恢复其相应于最高量化阈值的比特位值,要得到原始值,需要从属过程的数据来细化。细化操作只需将为1的比特位值通过位操作写入到小波变换系数位置上的相应低一比特位置。
可见,该零树解码过程主要包括以下的步骤,同时参见图10所示1)主控过程,恢复零树结构。
a.首先对要写入小波变换系数恢复数据的外部存储器清零,避免以后再执行写0操作。
b.根据由高到低位平面输入的小波树,先输入对应第四层树根位置的两比特零树标注符号,如果该标注符号是ZTR(10)或VZTR(11),仅将VZTR(11)的低比特1写入图象中相应的小波变换系数位置上相应比特位,此小波树的零树结构即恢复完毕;再读入后续一零树标注符号,进行下一棵小波树的零树结构恢复。如果是IZ(00)或VAL(01),则将VAL(01)的低比特1写入图象中相应最高层的小波变换系数位置上相应比特位,然后读入后续四个相应其子结点的零树标注符号;将这四个零树标注符号的低比特位值为1的写入图象中相应次高层的小波变换系数位置上相应比特位,然后根据其高比特位,如果某一个为0,读入后续四个相应其子结点的零树标注符号;为1,标注其四个子结点为零树。
实际上,所读入的两比特数据的低比特位就是当前结点的值,而高比特位表示其后代结点的性质,1表示零树,恢复后代结点不需读取新的数据,否则需要分组读取。其中,两比特数据的高比特位需要缓存,以控制下一层中其子结点的恢复。
c.当数据输入对应第一层时,一个比特代表一个零树标注符号,1表示VAL,需要写入图象中相应最低层的小波变换系数位置上相应比特位;0表示IZ,不需执行写操作。
2)从属过程,恢复大系数的数值。
a.只需将为1的比特位值写入到小波变换系数位置上的相应低一比特位置。首先按小波树的深度优先方式读取外部存储器中已恢复的零树标注数据,如果已恢复的零树数据为0,则依次读取下一个地址中的数据。
b.如果已恢复的零树数据不为0,且输入的待解码的大系数数据为1,则写入图象中相应小波变换系数位置上相应低一比特位;如果已恢复的零树数据不为0,但输入的待解码数据为0,不执行写操作。依次读取下一个地址中的数据。
如果零树编码时没有处理所有位平面的数据,那么,首先需要根据绝对值最大的大系数与最大量化阈值之间差值或商值的有效位数,决定对其大系数的差值或商值的有效比特位进行恢复;然后将差值或商值与最大量化阈值相加或相乘,其结果再进行零树解码的细化操作。
所有二进制数恢复完成后,如需要,则根据量化阈值恢复大系数原始值。为便于小波逆变换,可将符号为负的大系数改为二进制补码写入相应存储器原地址。
在视频数据压缩和图象数据压缩技术中,当大绝对值小波变换系数集中到一定程度,再对其进行小波变换时,一般不会有更显著的效果,因此,小波变换做三到五层,就不再向更高层发展。小波变换增加或减少一层,对集成电路要求不会产生质的变化。本发明所给出的小波变换零树编解码电路及其实现方法,可以支持三到五层二维双正交小波变换的零树编、解码。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种小波零树编码的实现方法,至少包括量化过程、主控过程和从属过程,其特征在于该主控过程对小波树的结点是从低层到高层逐组、逐层、逐树进行扫描处理,并以零树根ZTR(10)、带值零树根VZTR(11)、孤立零点IZ(00)、大系数VAL(01)四种符号来标注零树结构的相应结点。
2.根据权利要求1所述的方法,其特征在于所述的量化过程同时执行对一个以上阈值的量化;在量化完成后,先将大系数在所有低量化阈值处的值清零,再进行零树编码。
3.根据权利要求1所述的方法,其特征在于所述的主控过程和从属过程是从高比特位平面到低比特位平面进行零树编码,而且并行处理一个以上位平面的零树编码。
4.根据权利要求3所述的方法,其特征在于所述的并行处理以最多8个比特位平面同时执行零树编码为最佳。
5.根据权利要求1所述的方法,其特征在于所述四种零树标注符号的低比特为0,表示小波变换系数量化后为小系数,低比特为1,表示小波变换系数量化后为大系数;该标注符号的高比特为1,表示为零树,高比特为0,表示为非零树。
6.根据权利要求1或5所述的方法,其特征在于所述小波树的最低层只存在孤立零点IZ(00),或大系数VAL(01)两种零树标注符号,该层的零树标注符号由一个比特位表示。
7.根据权利要求1所述的方法,其特征在于所述的主控过程由低层向高层扫描时,每层由四个结点一组,逐组、逐层、逐树顺序扫描。
8.根据权利要求1、5或7所述的方法,其特征在于对于位于最低层的小波树数据,如果一组的所有结点值全为0,则构成零树;对于更高层的小波树数据,如果一组中所有结点值全为10,则构成零树。
9.根据权利要求1或5所述的方法,其特征在于所述的主控过程在零树标注时,如果构成零树,则对其相应的父结点增加一个高比特1,否则增加一个高比特0。
10.根据权利要求9所述的方法,其特征在于所增加的高比特位的值单独存储。
11.根据权利要求1所述的方法,其特征在于所述的从属过程是指在一个位平面的主控过程完成后,依次输出大系数队列表中所有大系数绝对值小于相应阈值的低比特值以及相应的大系数符号值。
12.根据权利要求11所述的方法,其特征在于该从属过程进一步包括a.当主控过程未处理所有位平面数据时,比较最大绝对值小波变换系数的绝对值与最大量化阈值之间差值和商值的大小,取两者中的较小值为选出值;b.先输出选出值的有效比特位数,然后输出选出值的有效比特位值。
13.一种小波零树解码的实现方法,其特征在于该方法至少包括a.对要写入恢复数据的外部存储器清零;b.从零树高层到低层的顺序,按所读入的零树标注符号逐层恢复小波树的零树结构;当一棵小波零树恢复完毕后,再继续读入后续零树标注符号,开始下一棵小波零树结构的恢复;c.恢复大系数的数值。
14.根据权利要求13所述的方法,其特征在于所读入的零树标注符号比特值的低比特位为当前结点值,高比特位表示其后代结点的性质,该高比特位需要缓存。
15.根据权利要求14所述的方法,其特征在于当读入的零树标注符号比特值的低比特位为1时,将1对应的小波变换系数位置上的相应比特位写入1,否则,不执行写操作;当读入的零树标注符号比特值的高比特位为1时,恢复后代结点不需要再读取新的零树标注符号,否则,需要分组读取该父结点对应的所有子结点零树标注符号。
16.根据权利要求14或15所述的方法,其特征在于所述的步骤b进一步包括以下的步骤当读入的最高层数据比特值为10或11时,仅将11中的1写入相应小波变换系数位置上的相应比特位,本棵小波零树结构即恢复完毕;当读入的最高层数据比特值为00或01时,仅将01中的1写入相应小波变换系数位置上的相应比特位,然后读入后续零树标注符号的比特值。
17.根据权利要求13所述的方法,其特征在于所述的步骤c进一步包括以下的步骤c1.从高层到低层顺序读取外部存储器中的数据,如果读入数据为0,依次读取下一地址中的数据;如果读入数据为1且输入数据为1,则将1写入相应小波变换系数位置上的相应比特位,然后依次读取下一地址中的数据;如果读入数据为1而输入数据为0,则依次读取下一地址中的数据。
18.根据权利要求17所述的方法,其特征在于所述的步骤c进一步包括以下的步骤c2.如果零树编码时未处理所有位平面的数据,取绝对值最大的大系数与最大量化阈值之间差值和商值的较小值为选出值,根据选出值的有效位数,决定需要恢复的大系数的有效比特位;c3.如果选出值为差值,则将差值与最大量化阈值相加,否则,将商值与最大量化阈值相乘;c4.从高层到低层顺序读取外部存储器中的数据,如果读入数据为0,依次读取下一地址中的数据;如果读入数据为1且输入数据为1,则将1写入相应小波变换系数位置上的相应比特位,然后依次读取下一地址中的数据;如果读入数据为1而输入数据为O,则依次读取下一地址中的数据。
19.一种小波零树编码的实现电路,其特征在于至少包括一个存储器、量化器、清零处理器、零树判别和标注单元、数据输出控制单元以及地址发生器;从存储器中读取小波变换系数,经过量化器的量化处理后,由清零处理器对量化后的大系数进行清零,之后,通过零树判别和标注单元对小波变换系数进行零树判别及零树符号标注,最后由数据输出控制单元将编码后的数据输出至存储器中。
20.根据权利要求19所述的电路,其特征在于所述的清零处理器由普通编码器和解码器组成,只保留小波变换系数量化后的二进制数值中最高位的比特1,其余低比特位全部清零。
21.根据权利要求19所述的电路,其特征在于利用缓存器存储零树判别的结果,零树扫描、编码连续执行。
全文摘要
本发明公开了一种小波零树编码的实现方法,至少包括量化过程、主控过程和从属过程,关键在于该主控过程对小波树的结点是从低层到高层进行扫描处理,并以零树根ZTR(10)、带值零树根VZTR(11)、孤立零点IZ(00)、大系数VAL(01)四种符号来标注零树结构的相应结点;该量化过程可同时执行对一个以上阈值的量化;该主控过程和从属过程从高比特位平面到低比特位平面进行零树编码,而且并行处理八个位平面的零树编码。本发明还同时公开了一种小波零树解码的实现方法,以及该小波零树编、解码方法的实现电路。本发明可降低对电路性能的要求,使零树编解码与小波变换配合更好,具备优良的压缩效率,占用更少的集成电路资源,更灵活且易于实现。
文档编号H04N7/26GK1414791SQ0113670
公开日2003年4月30日 申请日期2001年10月22日 优先权日2001年10月22日
发明者许超, 马伍新, 于利卫, 孙晓斌, 应广, 耿静 申请人:大唐电信科技股份有限公司, 北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1