基于小波变换的vlsi图像压缩编码器的制作方法

文档序号:7927983阅读:204来源:国知局

专利名称::基于小波变换的vlsi图像压缩编码器的制作方法
技术领域
:本发明涉及一种基于硬件实现的图像压縮编码器,特别是一种基于小波变换的高性能低复杂度VLSI图像压缩编码器。技术背景随着计算机技术应用的普及,数字图像已经成为人们日常接触的主要的图像信息载体。图像具有信息量大,数据量大的特点,据分析,在人类接收到的信息当中,不到20%是通过声音接受的,而通过眼睛接受到的信息超过了80%,自古就有"百闻不如一见"的说法,形象地说明了图像信息交流的重要性和迫切性。然而一般图像是高维数据,随着尺寸的增大,数据量以几何速度增长,如果不能解决数据量巨大和有限的记录空间和传输带宽之间的矛盾,那么像如今这样普及的数字图像应用是不可能的。因此自从数字图像应用诞生之日起,数字图像压縮技术也随之发展起来,在最近几十年—直是研究的热点,并获得了许多优秀的算法,而且许多算法还成为商业标准,如JPEG标准以及最新的JPEG2000压縮标准。在一个图像压縮存储/传输系统里面,关键部分就是图像压縮编码器,它关系着整个系统的性能和图像质量。但是目前的图像压縮算法普遍具有较高的计算复杂度,如JPEG2000算法由于采用了复杂的EBCOT编码及需要迭代求解的PCRD-OPT码率分配算法,在通过通用处理器或可编程DSP实现时,难以实现高速的实时图像压缩编码。而计算复杂度较低的JPEG算法由于采用8x8的图像块进行独立编码,在较高压縮比时会出现严重的块效应,大大降低图像质量。
发明内容本发明要解决的技术问题是克服了现有技术的不足,提供了一种基于小波变换的VLSI图像压縮编码器,基于FPGA实现时,它能够在消耗较少硬件资源的情况下,实现高速,低复杂度的实时图像压縮,为数字图像实时压缩存储/传输的工作提拱最核心的解决方案。本发明解决其技术问题所采用的技术方案一种基于小波变换的VLSI图像压縮编码器,其特征在于包含一个中心控制和数据交换器、l-3级小波变换驱动器、二维小波变换引擎、联合编码器以及两个数据缓存RAM—A和RAM一B;整个图像压縮编码器工作时由中心控制和数据交换器进行控制并进行数据通道的切换,保证不同工作过程中正确的数掘流向;当原始图像输入时,一级、二级和三级小波变换驱动器在中心控制与数据交换器的控制下时分复用一个二维小波变换引擎,使输入图像数据在RAIv^A和RAM—B之间来回地进行递归变换实现三级小波变换,最终将输出的三级小波变换的十个子带存储在RAM—A内,此时中心控制和数据交换器切换通道并启动联合编码器,联合编码器由最佳量化器,自适应零游程编码器及k-0的指数哥伦布编码器构成,它从RAM一A中以Z字扫描顺序读出图像的三级小波变换系数,经过最佳量化、自适应零游程编码以及指数哥伦布编码后输出字长为8bit的码流,写入外部存储体或直接传输,最终完成数字图像实时压缩存储/传输的工作。所述的两个数据缓存RAM一A和RAM一B的位宽应至少大于图像像素深度4个bit,以存储图像小波系数,其容量应能容纳一幅图像的数据。所述的二维小波变换引擎为5/3小波变换,采用提升小波结构实现,为实现高速小波变换,应采用深度流水线设计。所述的最佳量化器对十个子带分别进行均匀Dead-Zone量化,十个子带的量化阶矢量为△x[l112224448]。所述的自适应零游程编码器具有两个工作模式普通模式及游程模式,其模式间转换连续零个数阈值为2。所述的指数哥伦布编码器采用位并行编码结构,指数哥伦布编码参数k为0,编码输出码流字长为8bit。本发明的原理数字图像一般表示为N^N的二维矩阵,矩阵内的每个元素称为像素点,像素点具有相应的数值以确定图像内容。对于一般图像来说,像素点的数值是有规律的,一个像素和它周围像素数值相近的概率是非常大的,即图像的分片平滑特性。对于图像压縮来说,一幅图像内存在较多信息冗余,主要有像素间相关冗余,视觉冗余,熵冗余等。图像压缩的目的就是要有效去除这些冗余,在尽量不影响图像内容表达的前提下,减少图像的数据量,降低其存储空间和传输带宽。本发明与现有技术相比具有如下优点(1)本发明在较高压縮性能的条件下,由于采用了低复杂度和硬件易实现的自适应零游程编码及k-0的指数哥伦布编码,大大降低了算法复杂度和硬件消耗;(2)本发明在设计上充分考虑了硬件的可并行设计,使得该结构在FPGA上实现时可以获得高于传统通用处理器或可编程DSP的图像压缩速度;(3)本发明可作为IP核直接实现在FPGA上进行图像压縮,因此不需要额外的技术成本,方便实用。图1为本发明在记录系统中的使用示意图;图2为图1中图像压縮编码器的压縮编码步骤示意图;图3为图2中小波变换的行变换提升结构示意图;图4为图2中小波变换的列变换提升结构示意图;图5为图2中自适应零游程编码器的硬件结构示意图;图6为图2中kK)的指数哥伦布编码器的硬件结构示意图;图7为本发明提出的压縮编码器的顶层模块集成示意图;图8为本发明基于FPGA实现时得到的一幅图像编码波形示意图;图9为本发明基于FPGA实现图像压縮时的测试图像;图10为本发明基于FPGA实现测试图像压縮11倍时的效果图;图11为采用JPEG标准对测试图像压縮11倍时的效果图;图12为采用JPEG2000标准对测试图像压缩11倍时的效果图。具体实施方式下面结合附图及具体实时方式详细介绍本发明。如图1所示,本发明涉及一种基于硬件实现的图像压縮编码器,该编码器为一个可嵌入的压縮IP核,使用时直接接收未压缩的摄像机图像数据,将这些数据由本发明压縮后写入后续的记录设备中,由于本编码器对于一般图像可以保证在较好图像质量的前提下实现10倍以上的数据压縮,故可以有效延长记录设备的记录时间和降低传输带宽。本发明主要是利用5/3小波变换去除图像像素间冗余,基于提升结构的5/3小波变换主要包含预测和更新两个操作,其方程分别如(l)、(2)式所示:K2"+l)"咖(2w+l)-Lk咖(2w)+x一,(2打+2)]/2」(1)jK2")"加加(2")+HK2"-1)+一+1)+2]/4」(2)随后,为了去除视觉冗余,引入最佳量化对三级小波变换后的十个子带的小波系数进行最佳量化,子带变换增益Gb表示子带b的反变换综合基矢量的平方范数,它衡量了子带中每个系数失真对重建厨像失真的影响程度。为使图像失真最小,对变换增益较大的子带要采用较小的量化阶。考虑Dead-Zone均匀尺度量化,子带b的最优量化阶厶b由(3)式给出,式中A为基本量化步长,通过调整厶可控制码率和失真。对于正交小波变换,变换增益可近似为(4)式,其中db表示子带b所属的变换级序号。<formula>formulaseeoriginaldocumentpage6</formula>(4)因自然图像的分块平滑特性,量化后小波系数在高频子带会出现较多全零区域,若对系数单独编码,编码效率必然很低。为提高编码效率,必须利用上下文相关高阶编码以逼近其高阶熵。为此,采用自适应的零游程编码作为高阶扩展工具。该游程编码包含两种模式普通模式和零游程模式,编码时作前向自适应建模并在两种模式中转换,其规则为初始模式为普通模式,该模式下直接将输入样本输出,若连续输入0达到2个,进入零游程模式;在零游程模式无输出,只计数O个数,直到输入非O时退回普通模式,并输出O游程个数和该非O样本。最后,采用编码参数k-O的指数哥伦布编码对自适应零游程产生的样本和游程长度进行熵编码便完成了图像的压縮,获得图像压縮后的码流。综上所述,本发明包含一个中心控制和数据交换器、1~3小波变换驱动器、二维小波变换引擎、联合编码器以及两个数据缓存RAM—A和RAM一B。这些模块有机组合完成图像压縮中的几个主要功能3级5/3小波变换、最佳量化、自适应零游程编码、k-O的指数哥伦布编码。以下具体介绍每个模块的具体实现方式和它们如何协调工作并实现以上功能。三级5/3小波变换本发明中采用5/3小波变换对原始图像做能量聚集,去除像素间的相关性,即像素间冗余。5/3小波具有优秀的能量聚集效应,并能实现整数到整数的可逆变换,使得本发明可以兼容无损压縮。一般来说,3~5级的小波变换达到的能量聚集效应相近,故本发明中对原始图像进行3级小波变换。其中5/3小波变换采用先进的提升小波结构实现,提升小波由两个过程组成预测过程和更新过程,其公式如(1)(2)式所示,而且为了处理小波变换的边界扩展问题,采用内嵌扩展的小波提升结构实现5/3小波变换,对于二维的小波变换,则是采用行列变换分离实现。其原理图如图3和图4所示,图3为行变换结构,图4为列变换结构。当图像数据输入时,先进行行变换,行变换结构将输入的数据序列分割为奇序列和偶序列,偶序列在一级寄存后得到前一个偶序列数据,并与当前序列数据平均获得奇序列的预测,与当前奇序列相减得到残差(式1),该残差即为小波变换的高频子带,并用当前残差前一个残差来更新偶序列(式2),得到小波变换的低频子带,这就是图3的提升结构完成的行变换。如图4所示,在实现列变换时,接收行变换输出的每一行小波系数,并缓存前两行系数,前两行系数与当前行系数进行提升过程的预测操作,得到残差(式l),残差又缓存一行,当前行残差与前一行残差共同对偶数行进行更新(式2)。这样经过一级行变换和列变换后就得到了图像的一级小波变换系数。它包括四个子带LL1、LH1、HL1和HH1子带。要实现3级小波变换,只用将LL1子带做一级小波变换又可得到LL2、LH2、HL2禾t3HH2子带,再将LL2子带做一级小波变换又得到LL3、LH3、HL3和HH3子带,这样经过三级小波变换后,图像被变换为10个子带LL3、LH3、HL3、HH3、LH2、HL2、HH2、LH1、HL1禾QHH1子带。LL3子带表示了图像的低频直流信息,LH13子带代表了图像在各个尺度上的垂直方向细节信息,HL13子带代表了图像在各个尺度上的水平方向细节信息,HH13子带代表了图像在各个尺度上的45度方向细节信息。对于局部平滑的自然图像,除了LL3子带外的各个子带系数均聚集在0附近,而且相邻系数之间相关性不大,去除了像素间冗余,有利于进一步的信源编码。最佳量化在去除像素间冗余后,图像仍然存在视觉冗余,所谓视觉冗余,就是人类视觉很难察觉或无关紧要的信息,这部分信息主要集中在高频子带。本发明采用最佳量化法,根据子带变换增益确定各个子带的量化阶,子带变换增益Gb表示子带b的反变换综合基矢量的平方范数,它衡量了子带中每个系数失真对重建图像失真的影响程度,为最小化图像MSE失真,对变换增益较大的子带要采用较小的量化阶。考虑Dead-Zone均匀尺度量化,子带b的最优量化阶Ab由(3)式给出,式中的A为基本量化步长,通过调整厶可控制码率和失真。另外考虑到硬件实现除法时,若除数为2的幂次的话,仅用移位就可实现除法,所以可得到十个子带的量化阶矢量为Ax[l112224448]。自适应零游程编码可以看出,在进行最佳量化时,对于高频子带的量化阶大于低频子带,这种做法与JPEG标准中的量化策略是有异曲同工之妙的,由于小波系数在高频子带上聚集于0附近,经过量化后,在高频子带内必然产生许多的连续零区域。如果直接对这些系数进行熵编码,不能达到较高的编码效率。为了有效对这些连续零区域进行编码,本发明中采用自适应的零游程编码方法对这些连续0进行游程预编码。表l自适应零游程编码器的行为模型<table>tableseeoriginaldocumentpage7</column></row><table>该自适应零游程编码器的结构图如图5所示,该编码算法工作时有两个编码模式普通模式和游程模式。编码器初始化后处于普通模式,该模式下直接将输入样本输出,若连续输入0达到2个,进入零游程模式;在零游程模式无输出,只计数O..个数,直到输入非0时退回普通模式,并输出0游程个数和该非0样本。为了实现该功能,本发明设计了图5所示的硬件结构图,当输入数据A时,判断其是否等于零,作为O计数器的使能和复位信号,并根据计数器当前值和A的值查表1得到计数器行为与编码输出,其中B表示当前值A的上一时刻的值,采用寄存器缓存得到。经过自适应零游程编码器的预编码,图像的小波系数个数明显减少,其概率密度分布(PDF)较符合k=0的指数哥伦布编码对应的理想信源概率分布。k=0的指数哥伦布编码指数哥伦布编码的码字由两部分组成一元码+组内标号,在k-0时,样本n的指数哥伦布码的一元码长度由(5)式得到,组内标号码由(6)式得到,其中binm(n)表示n的m位二进制。(5)、(6)式码字连起来就可以导出硬件实现时编码公式若得到n+l的二进制首1位置j,那么指数哥伦布码字长度为2j-l,由(7)式就得到整个指数哥伦布码字C。以上指数哥伦布编码样本是非负的,采用(8)式将量化系数进行非负映射,将量化后小波系数c映射为非负样本n。<formula>formulaseeoriginaldocumentpage8</formula>为了实现k-O的指数哥伦布编码,本发明设计了如图6所示的硬件编码器,待编码符号输入后先加1,并送入首1检测器得到输入符号的最高位1的位置p,并将位置信息送给桶形移位寄存器,桶形移位寄存器将加1后的符号做移位后得到指数哥伦布码字,位置信息p运算得到2*p+l就是码长;最后将码长和码字送入一个bit整合器中得到字长为8bit的码流。该bit整合器的作用类似于FIFO,只不过它的输入输出字长是可变的,它由一个输入桶形移位寄存器、一个bit寄存器组和一个输出桶形移位寄存器组成。编码器系统集成和工作过程在实现了以上各模块后,按照图7所示的压縮编码器的顶层模块集成示意图将各个模块集成得到最终的硬件图像压縮编码器。它包含一个中心控制和数据交换器、1~3级小波变换驱动器、二维小波变换引擎、联合编码器以及两个数据缓存RAM一A和RAM一B。各模块工作顺序由中心控制和数据交换器控制,各级小波变换分时复用一个二维小波变换引擎,节省硬件开销。系统的工作过程由以下6个状态组成1)Idle状态系统空闲状态,复位所有模块,等待下一帧到来时进入Lvll变换状态;2)Lvl1变换状态l级小波变换驱动器把图像送给二维小波变换引擎变换得到LL1,HL1,LH1,HH1子带写入RAM一A中,同时中心控制与数据'交换器读取RAM—B内的上一帧图像压縮码流输出;3)Lvl2变换状态2级小波变换驱动器从RAM—A中读出LL1子带系数送给二维小波变换引擎变换得到LL2,LH2,HL2,HH2写入RAM—B中;4)Lvl3变换状态:3级小波变换驱动器从RAM—B读出LL2子带系数送给二维小波变换引擎变换得到LL3,LH3,HL3,HH3写入RAM—A中;5)子带转移状态中心控制与数据交换器把LH2、HL2和HH2子带从RAM—B复制到RAM_A,这样就完成图像的3级二维小波变换过程;6)熵编码状态联合编码器级联了最佳量化、自适应零游程编码和指数哥伦布编码对RAM一A内的3级小波变换进行熵编码,并把编码输出码字写入RA]VLB中;完成当前图像的压縮进入Idle状态。图8为该结构基于FPGA实现时的码流波形和控制信号波形,可以看出,各个模块在中心控制和数据交换器的控制下有序的协调工作,最终实现了图像的压縮编码。图9为本发明的原始测试图像,图1012分别为本发明所述图像压縮编码器、JPEG标准和JPEG2000标准在压縮比为11:1时的图像质量对比,本发明所述图像压缩编码器的峰值信噪比(PSNR)为28.4089dB,JPEG标准的PSNR值为25.1392dB,JPEG2000标准的PSNR值为29.8056dB。由PSNR的值可以看出,本发明的图像质量接近JPEG2000标准,高于JPEG标准,能够在保持较好的图像质量下完成10倍以上的图像压縮。另外,本发明由于来用硬件设计,可达到远远高于传统通用处理器或可编程DSP的压缩速度,基于FPGA实现时的综合结果表明,实J见在Virtex4速度等级为-12的器件上时,最大工作频率为126.9MHZ,编码速度为50.762MPixel/s,若对512*512的图像进行压縮的话,每秒可以压縮190帧的图像。权利要求1、基于小波变换的VLSI图像压缩编码器,其特征在于包含一个中心控制和数据交换器、1~3级小波变换驱动器、二维小波变换引擎、联合编码器以及两个数据缓存RAM_A和RAM_B;首先利用1~3级小波变换驱动器和二维小波变换引擎对原始图像进行小波变换,然后用联合编码器对图像小波系数进行熵编码,最终得到压缩码流,实现图像压缩的目的。2、根据权利要求1所述的基于小波变换的VLSI图像压缩编码器,其特征在于所述的二维小波变换引擎实现5/3小波变换,可兼容无损压縮。3、根据权利要求1所述的基于小波变换的VLSI图像压缩编码器,其特征在于所述的中心控制和数据交换器包含Idle、Lvll变换、Lvl2变换、Lvl3变换、子带转移、熵编码共6个状态;每个状态对应一个图像压縮的过程,当前状态对应的处理过程完成后给出结束信号,然后状态机进入下一个状态并启动对应的处理过程。4、根据权利要求1所述的基于小波变换的VLSI图像压縮编码器,其特征在于所述的中心控制和数据交换器负责数据交换,内部具有可切换数据通道,根据当前所处工作状态切换数据通道,在各处理模块和两个数据缓存RA1VLA和RAM一B之间进行数据交换和转移。5、根据权利要求1所述的基于小波变换的VLSI图像压縮编码器,其特征在于所述的联合编码器由最佳量化器、自适应零游程编码器和指数哥伦布编码器三个部件串联组成。6、根据权利要求1所述的基于小波变换的VLSI图像压縮编码器,其特征在于所述的两个缓存RAM—A和RAM_B在FPGA内部存储空间不够的情况下,可以采用两个片外SRAM代替。7、根据权利要求5所述的联合编码器,其特征在于所述的最佳量化器对十个子带分别进行均匀Dead-Zone量化,十个子带的量化阶矢量为厶x[l112224448]。8、根据权利要求5所述的联合编码器,其特征在于所述的自适应零游程编码器具有两个工作模式普通模式及游程模式,其模式间转换连续零的个数的阈值为2。9、根据权利要求5所述的联合编码器,其特征在于所述的指数哥伦布编码器采用位并行编码结构,指数哥伦布编码参数k为0。全文摘要基于小波变换的VLSI图像压缩编码器,包含一个中心控制和数据交换器、1~3级小波变换驱动器、二维小波变换引擎、联合编码器以及两个数据缓存RAM_A和RAM_B;该编码器首先利用1~3级小波变换驱动器和二维小波变换引擎对输入图像进行三级小波变换,然后用联合编码器内部的最佳量化器分别对各子带量化,量化后的系数由联合编码器内的自适应零游程编码器和指数哥伦布编码器进行熵编码,最终得到压缩码流。本发明使用硬件实现图像压缩算法,提高了图像压缩速度,使得图像记录设备具有实时图像压缩能力,可有效延长记录时间和提高传输能力。文档编号H04N7/26GK101404772SQ200810227028公开日2009年4月8日申请日期2008年11月19日优先权日2008年11月19日发明者耀张,张启衡,勇徐,徐智勇申请人:中国科学院光电技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1