一种用于集成电路设计的静止图像压缩码率控制方法

文档序号:6819457阅读:206来源:国知局
专利名称:一种用于集成电路设计的静止图像压缩码率控制方法
技术领域
本发明涉及一种用于集成电路设计的静止图像压缩码率控制方法,尤其涉及在集成电路设计中用于静止图像压缩的基于优化截断嵌入式分块编码(以下简称EBCOT)的第二层编码方法,属于信息技术中数字图像信号处理和超大规模集成电路的设计技术领域。
背景技术
近十几年来,高质量图像的应用越来越广泛,但是数字图像本身数据量非常巨大,对它进行存储和传输前首先要进行图像压缩编码。图像编码解决的主要问题是如何采用一种新的表达方式来缩小表示图像所需要的数据量。原始数字图像本身存在三种数据冗余编码冗余、像素间冗余和心理视觉冗余。图像压缩编码就是以去除这三种冗余为基础的。由于图像数据在变换域的表现形式比在空域中更加紧凑,编码质量较高,因此在有损压缩的过程中,图像数据首先要被变换到频域,然后变换系数经过量化再使用常规的无损技术压缩频率点。嵌入式编码中,无损压缩后的数据可以被任意截断得到一定码率的压缩码流。需要一种方法来确定最优的截断点,以便压缩码流失真最小。
在1991年国际标准化组织和国际电信联盟联合制定的静止图像压缩标准(以下简称JPEG)中使用的是离散余弦变换,在离散余弦变换变换中图像首先被分成大小为8×8(或16×16)的像素块,这些象素块被各自独立地变换、量化、编码和传输。这样,虽然充分考虑了块内部像素间的相关性,但是块与块之间的相关性却被忽视了,这就在很大程度上限制了图像压缩比的提高。同时,在低比特率(小于0.25比特/象素)的条件下,这种分块结构还产生了块边缘的“方块效应”。
为了解决上述问题,近几年,时频域局部化分析性能良好的离散小波变换逐渐应用到图像处理领域中,并且已取代离散余弦变换成为新一代静止图像压缩标准JPEG2000的基础。
在算法不断推陈出新的同时,用以实现算法的数字集成电路也得到了长足发展,集成电路制造工艺和电子设计自动化技术的进步推动了超大规模集成电路设计的发展,使得实现数字图像信号处理的单芯片系统成为可能。随着数字视频捕捉设备和数字相机的普及,以及高清晰度电视和可视电话的应用,对图像压缩处理的速度要求越来越高,在硬件上实现图像压缩越来越重要,因此必须对图像编码算法到实现该算法的专用集成电路的设计进行研究。目前,JPEG芯片已经进入实用阶段,而实现对小波系数压缩编码的专用集成电路仍未成熟。新一代标准JPEG2000的推出,也会对基于小波的图像压缩芯片重新做出规范。
自JPEG2000标准发布以来,在论文Te-Hao Chang,Li-Lin Chen,Chung-Jr Lian,Hong-Hui Chen and Liang-Gee Chen.Computation Reduction Technique for LossyJPEG2000 Encoding Through EBCOT Tier-2 Feedback Processing.Proceedings of IEEEInternational Conference on Image Processing,2002,Volume 3,24-28 June 2002公开了EBCOT第二层编码在集成电路中的实现方法。这篇文章虽然采用了“反馈处理”等方法来加快编码速度,但是没有给出其结构的具体性能,如速度,规模等;也没有提出一种有效的减少片上中间缓存存储量的方法。JPEG2000标准根据其算法特点推荐在EBCOT第一层编码和第二层编码之间采用迭代方法来寻找最优截断点组,即编码时,EBCOT第二层编码首先缓存第一层所有编码输出;然后对给定门限进行截断和编码,得到对应的码率并和要求码率比较,不满足要求则增加或减小门限值,直到门限最佳为止,这时对应的截断点组即为最优。为了达到减少中间缓存的目的,第二层编码必须建立一种行之有效的确定截断点和截断方法,从而在编码速度上与第一层编码匹配。另外,由于第二层编码的运算对象是子带内的所有编码块,还需要对编码块的码流信息分类进行四种编码和排序。因此,按照常规的方法来处理,必然引起第二层编码的编码速度滞后于第一层编码速度,从而一方面加大了中间缓存量,另一方面也无法满足系统实时处理的需要。

发明内容
本发明的目的是提出一种用于集成电路设计的静止图像压缩码率控制方法,该方法针对已有技术中的小波分解方法和已有技术中的EBCOT第一层编码方法,设计了在集成电路中EBCOT的第二层编码方法,并用以与现有的小波变换以及EBCOT第一层编码一起组成JPEG2000静止图像集成电路压缩系统的核心模块,以满足系统实时压缩的需要。
本发明提出的用于集成电路设计的静止图像压缩码率控制方法,其特征在于该方法包括以下步骤(1)将由优化截断嵌入式分块编码中第一层编码得到的编码块的码字和码流信息缓存;(2)计算上述编码块内的过程扫描的率失真斜率,对率失真斜率进行调整,使其呈单调递减;(3)根据设定的率失真斜率门限,从上述计算调整后的率失真斜率中得到最优截断点;(4)根据上述最优截断点的扫描数,对码字和码流信息分别进行截断;(5)重复步骤(1)~(4),完成静止图像压缩码率的控制。
上述方法中,码字存储的方法包括以下步骤(1)将缓存用的可重用内存块分为容量相同的第一部分和第二部分,将每一部分分别设定为“空闲”、“缓冲”、“存满等待”和“存满处理”四种状态;(2)将码字写入可重用内存块内处于“空闲”状态的任意部分中,该部分可重用内存块进入“缓冲”状态;(3)当一个编码块的码字处理结束时,根据最优截断点的扫描数,对码字进行截断,并调整该编码块的内存地址;(4)当上述部分的内存用完时,依次进入“存满等待”状态和“存满处理”状态,同时输出码字;(5)码字全部输出后,该部分返回“空闲”状态。
上述方法中,码流信息缓存方法包括如下步骤(1)将缓存用的可重用内存块分为容量相同的第一部分和第二部分,将每一部分分别设定为“空闲”、“缓冲”、“存满等待”和“存满处理”四种状态;(2)将第一层编码得到的编码块中代表码流信息的零比特平面数和过程扫描数分别写入可重用内存块内处于“空闲”状态的任意部分中,将其状态改为“缓冲”;(3)将第一层编码得到的编码块中所有累计码字长度顺序写入上述处于“缓冲”状态的内存块中;(4)根据率失真斜率数据,判断上述第一层编码得到的编码块中码流信息的截断点;(5)根据判断得到的截断点,修改码流信息中的过程扫描数;(6)根据上述过程扫描数,读取与该过程扫描数相对应的累计码字长度;(7)当上述部分的内存用完时,依次进入“存满等待”状态和“存满处理”状态,并输出代表码流信息的零比特平面数、过程扫描数和累计码字长度;(8)码流信息全部输出后,该部分返回“空闲”状态。
上述方法中,对率失真斜率进行调整,使其呈单调递减的过程包括如下步骤(1)将第一层编码得到的编码块码流信息中的扫描累计长度和均方误差合并,并存储;(2)从当前扫描累计长度中减去前一扫描累计长度,得到当前扫描长度,除均方误差后,得到当前扫描的率失真斜率;(3)比较当前扫描率失真斜率和最近的非零率失真斜率,确定是否满足单调递减,若是,则存储,否则,进行步骤(4);(4)将前一扫描的率失真斜率置零,并读取前两个扫描的累计长度及率失真斜率;(5)将当前扫描的累计长度与前两个扫描的累计长度相减,得到两个扫描的长度,将当前扫描的均方误差与前一扫描的均方误差相加,得到两个扫描的均方误差;(6)将上述新的均方误差除以新的扫描长度,以得到新的率失真斜率;(7)重复步骤(3)~(6)。
上述方法中,得到最优截断点的过程包括如下步骤(1)计数器清零,从存储的率失真斜率中依次读取各个过程扫描的率失真斜率;(2)将上述读取的率失真斜率与设定的率失真斜率门限进行比较,若读取的率失真斜率为零,则读取下一个斜率,若大于或等于设定值,则计数器加1,若小于设定值,则停止读取,该计数器值即为最优截断点。
上述方法中,对码字或码流信息进行截断的过程,包括如下步骤(1)将代表码流信息的零比特平面数和截断后扫描数合并,并写入码流信息缓存中当前编码块的最前位置;(2)读取与最优截断点相对应的扫描累计长度,以得到最优截断点在码字缓存中的地址
(3)将码流信息缓存和码字缓存的地址指针分别设定在最优截断点。
本发明提出的用于集成电路设计的静止图像压缩码率控制方法,可以对任意分辨率的图像进行任意压缩倍数的压缩,压缩图像的质量在高压缩比的情况下(对于黑白图像,高压缩比指压缩比大于32倍的情况;对于彩色图像,高压缩比指压缩比大于80倍的情况)远远高于现行的JPEG标准。经过验证和测试,用本发明方法设计的集成电路可以在比较低的工作频率下(100兆赫兹),对1280×1024×24比特彩色大图像完成每秒15帧的第二层编码。这种编码速度已经基本达到实时编码的速度。人眼在观看相应的解码图像时,不会产生闪烁感,解码的画面非常连续。因此,该集成电路设计中的静止图像压缩码率控制方法可以应用在许多需要实时处理静止图像的领域。本方法与具体小波滤波方法的选择和实现无关,只要求EBCOT第一层编码中采用隐含量化方式,除了可以作为JPEG2000静止图像集成电路压缩系统的重要部分,还可以在数码相机、数码监控、移动电话、视频电话等商业应用方面得到迅速的推广。


图1是已有技术中JPEG2000静止图像压缩的流程图。
图2是本发明提出的用于集成电路设计的静止图像熵编码方法即优化截断嵌入式分块编码中第二层编码的流程图。
图3是本发明的码率控制方法中可重用内存块的状态转移示意图。
图4是可重用内存块内截断的寻址示意图。
图5是率失真斜率计算中内存数据示意图。
图6是率失真斜率计算的流程示意图。
具体实施例方式
本发明提出的用于集成电路设计的静止图像压缩码率控制方法,即EBCOT第二层编码算法是JPEG2000静止图像压缩算法中熵编码算法的重要组成部分。已有的JPEG2000协议规定的静止图像压缩算法的流程如图1所示。首先,原始图像经图像采集和色度变换,被串行送入离散小波变换;接着,变换后的小波系数分成若干子带后,被送入EBCOT第一层编码;最后,第一层编码输出的比特流经过EBCOT第二层编码的截断和封装,最终生成符合JPEG2000静止图像标准的压缩码流。其中EBCOT第一层编码和第二层编码合称为EBCOT编码。
本发明提出的EBCOT第二层编码的流程如图2所示。包括将由优化截断嵌入式分块编码中第一层编码得到的编码块的码字和码流信息缓存;计算编码块内的过程扫描的率失真斜率,对率失真斜率进行调整,使其呈单调递减;根据设定的率失真斜率门限,从计算调整后的率失真斜率中得到最优截断点;根据最优截断点的扫描数,对码字和码流信息分别进行截断;重复上述步骤完成静止图像压缩码率的控制。
上述方法中的码字缓存方法包括以下步骤(1)将可重用内存块分为前后大小相同两部分,设定为四种不同的状态,即“空闲”、“缓冲”、“存满等待”和“存满处理”,其状态转移图如图3所示;(2)将码字顺序写入处于“空闲”状态的可重用内存块,该可重用内存块进入“缓冲”状态;(3)在每个编码块结束时根据截断长度调整内存地址;(4)当调整后地址超过内存块一半或者超过末尾返回开头时,该部分可重用内存块进入“存满等待”状态;(5)缓存管理模块选择并读取“存满等待”状态的内存块,使之进入“存满处理”状态;(6)全部输出后,该可重用内存块返回“空闲”状态。
上述方法中的信息缓存方法包括如下步骤(1)将可重用内存块分为前后大小相同两部分,设定为四种不同的状态,即“空闲”、“缓冲”、“存满等待”和“存满处理”;(2)首先把编码块的零比特平面数和过程扫描数分别按8比特存储并合并成16比特写入“空闲”内存块,将其状态改为“缓冲”;(3)把每个过程扫描的累计码字长度顺序写入内存块;(4)接收率失真斜率数据,并判断截断点;(5)根据截断点修改过程扫描数;(6)根据扫描数读取截断长度。
(7)缓存管理模块选择并读取“存满等待”状态的内存块,使之进入“存满处理”状态;(8)全部输出后,该可重用内存块返回“空闲”状态。
上述缓存必须遵循以下几个原则(1)码字缓存的一半必须能够容纳任意一个编码块的码字,对32×32大小的编码块而言,应选2560×8;(2)信息缓存的一半必须能够容纳任意编码块的码字,对32×32大小的编码块而言,应选128×16。
(2)只能在截断后判断前半或者后半部分写满;(3)读取指针必须一直落后于写入指针。
根据码流信息在缓存中的排列顺序,可以得出信息缓存的寻址方案1)块编码开始时,地址加1,不写入,为零比特平面数和截断后的扫描数保留;2)每个扫描结束时,对码字长度写入一次,地址加1;3)截断时,地址回退未截断扫描数,回到块开始地址,写入截断后的零比特平面数和截断后的扫描数;4)从块开始地址前进截断后扫描数,完成截断。这时地址指针后面的数据全部被抛弃,截断的寻址示意图如图4所示。
上面的寻址方案没有考虑到状态4中可能已经开始下一个编码块的情况。为了提高数据吞吐量,避免前级这一个时钟的等待,对4作了一个修改如果有块开始信号,前进截断后扫描数加1,否则前进截断后扫描数。
本方法设计了一种并行截断控制结构,在保证编码速度的前提下可以使第二层编码的缓存量最小,并且最大限度的减小对码流信息缓存的访问频率。并行截断控制结构的基本思想就是不再缓存整帧图像的编码数据,而是与第一层编码并行,在每个编码块结束时进行截断。这样缓存可以降低到两倍编码块大小,而不是两倍图像大小。
采用本发明的这种方法,通过同步截断,可以将EBCOT第一层和第二层编码之间的码字存储量减到最少。除此之外,还可以极大降低片内存储的访问次数,加快编码速度,降低功耗。这种方法有效解决了现有技术在此环节上的缺陷。
上述方法中的率失真斜率计算的流程如图6所示,包括如下步骤(1)合并11比特的当前扫描累计长度和32比特均方误差,并存储到位宽43比特的内存块的前一半;(2)当前扫描累计长度减去前一扫描累计长度得到当前扫描长度,除均方误差得到当前扫描的率失真斜率;(3)比较当前扫描率失真斜率和最近的非零率失真斜率,确定是否满足单调递减,是则写入内存块的后一半,否则进入回溯过程,数据在内存中的位置如图5所示;(4)回溯中,首先把前一扫描的率失真斜率置零,并读取前两个扫描的累计长度和率失真斜率;(5)当前扫描和前两个扫描的累计长度相减得到两个扫描的长度;当前扫描和前一扫描的均方误差相加得到两个扫描的均方误差;(6)新的均方误差除以新的长度得到新的率失真斜率;(7)继续判断是否符合单调递减,否则继续回溯。
标准率失真斜率计算方法中,是对每次发现不单调的情况都从第一个扫描开始重新计算,这种方法比较简单,但是计算量大,时间长。与此相反,这里提出的回溯是一种“最近优先”策略,在一般情况下能够比标准方法提高效率。
上述方法中的截断点判断包括如下步骤(1)计数器清零,从前到后读取各个扫描的率失真斜率;(2)将斜率和给定门限做比较,如果大于或等于门限则计数器加1,如果为零继续,如果小于门限则计数器值即为截断点的扫描数。
上述方法中的截断包括如下步骤(1)把截断后扫描数和零比特平面数合并成16比特,写入信息缓存中当前编码块的最前;(2)读取截断点对应扫描的累计长度并计算截断点在码字缓存中的地址;(3)把信息缓存和码字缓存的地址指针分别设定在截断点。
这里的截断方法主要是采用地址指针的方式,用下一个编码块的数据写到当前编码块的截断点上,覆盖掉被截断的数据,这样就可以用较小的存储量实现码流截断。
权利要求
1.一种用于集成电路设计的静止图像压缩码率控制方法,其特征在于该方法包括以下步骤(1)将由优化截断嵌入式分块编码中第一层编码得到的编码块的码字和码流信息缓存;(2)计算上述编码块内的过程扫描的率失真斜率,对率失真斜率进行调整,使其呈单调递减;(3)根据设定的率失真斜率门限,从上述计算调整后的率失真斜率中得到最优截断点;(4)根据上述最优截断点的扫描数,对码字和码流信息分别进行截断;(5)重复步骤(1)~(4),完成静止图像压缩码率的控制。
2.如权利要求1所述的方法,其特征在于其中所述的码字存储的方法包括以下步骤(1)将缓存用的可重用内存块分为容量相同的第一部分和第二部分,将每一部分分别设定为“空闲”、“缓冲”、“存满等待”和“存满处理”四种状态;(2)将码字写入可重用内存块内处于“空闲”状态的任意部分中,该部分可重用内存块进入“缓冲”状态;(3)当一个编码块的码字处理结束时,根据最优截断点的扫描数,对码字进行截断,并调整该编码块的内存地址;(4)当上述部分的内存用完时,依次进入“存满等待”状态和“存满处理”状态,同时输出码字;(5)码字全部输出后,该部分返回“空闲”状态。
3.如权利要求1所述的方法,其特征在于其中所述的码流信息缓存方法包括如下步骤(1)将缓存用的可重用内存块分为容量相同的第一部分和第二部分,将每一部分分别设定为“空闲”、“缓冲”、“存满等待”和“存满处理”四种状态;(2)将第一层编码得到的编码块中代表码流信息的零比特平面数和过程扫描数分别写入可重用内存块内处于“空闲”状态的任意部分中,将其状态改为“缓冲”;(3)将第一层编码得到的编码块中所有累计码字长度顺序写入上述处于“缓冲”状态的内存块中;(4)根据率失真斜率数据,判断上述第一层编码得到的编码块中码流信息的截断点;(5)根据判断得到的截断点,修改码流信息中的过程扫描数;(6)根据上述过程扫描数,读取与该过程扫描数相对应的累计码字长度;(7)当上述部分的内存用完时,依次进入“存满等待”状态和“存满处理”状态,并输出代表码流信息的零比特平面数、过程扫描数和累计码字长度;(8)码流信息全部输出后,该部分返回“空闲”状态。
4.如权利要求书1所述的方法,其特征在于其中所述的对率失真斜率进行调整,使其呈单调递减的过程包括如下步骤(1)将第一层编码得到的编码块码流信息中的扫描累计长度和均方误差合并,并存储;(2)从当前扫描累计长度中减去前一扫描累计长度,得到当前扫描长度,除均方误差后,得到当前扫描的率失真斜率;(3)比较当前扫描率失真斜率和最近的非零率失真斜率,确定是否满足单调递减,若是,则存储,否则,进行步骤(4);(4)将前一扫描的率失真斜率置零,并读取前两个扫描的累计长度及率失真斜率;(5)将当前扫描的累计长度与前两个扫描的累计长度相减,得到两个扫描的长度,将当前扫描的均方误差与前一扫描的均方误差相加,得到两个扫描的均方误差;(6)将上述新的均方误差除以新的扫描长度,以得到新的率失真斜率;(7)重复步骤(3)~(6)。
5.如权利要求书1所述的方法,其特征在于其中所述的得到最优截断点的过程包括如下步骤(1)计数器清零,从存储的率失真斜率中依次读取各个过程扫描的率失真斜率;(2)将上述读取的率失真斜率与设定的率失真斜率门限进行比较,若读取的率失真斜率为零,则读取下一个斜率,若大于或等于设定值,则计数器加1,若小于设定值,则停止读取,该计数器值即为最优截断点。
6.如权利要求书1所述的方法,其特征在于其中所述的对码字或码流信息进行截断的过程,包括如下步骤(1)将代表码流信息的零比特平面数和截断后扫描数合并,并写入码流信息缓存中当前编码块的最前位置;(2)读取与最优截断点相对应的扫描累计长度,以得到最优截断点在码字缓存中的地址;(3)将码流信息缓存和码字缓存的地址指针分别设定在最优截断点。
全文摘要
本发明涉及一种用于集成电路设计的静止图像压缩码率控制方法,属于信息技术中数字图像信号处理和超大规模集成电路的设计技术领域。本方法首先将由EBCOT第一层编码得到的一个编码块的码字和码流信息分别缓存到静态存储器;计算当前编码块内各个过程扫描的率失真斜率,并保证单调递减;根据给定门限查找得到最优截断点;根据截断点的扫描数进行截断。本方法与具体小波滤波方法的选择和实现无关,只要求EBCOT第一层编码中采用隐含量化方式,除了可以作为JPEG2000静止图像集成电路压缩系统的重要部分,还可以在数码相机、数码监控、移动电话、视频电话等商业应用方面得到迅速的推广。
文档编号H01L21/82GK1560917SQ20041000752
公开日2005年1月5日 申请日期2004年3月12日 优先权日2004年3月12日
发明者张利, 刘雷波, 陈宁, 谢时根, 赵伟, 李德建, 王志华, 陈弘毅, 张 利 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1