一种0冗余编码时钟的位平面编码器的vlsi实现方法

文档序号:6391702阅读:144来源:国知局
专利名称:一种0冗余编码时钟的位平面编码器的vlsi实现方法
技术领域
本发明属于VLSI设计技术领域。具体涉及到在JPEG2000硬件实现中,对部分关键电路采用专用设计,得到高效的(低状态存储器),且具有0冗余编码时钟的位平面编码器的VLSI实现方法。
背景技术
JPEG2000主要由两个部分组成离散小波变换(DWT)和EBCOT。小波变换将图像从空间域变换为频率域,变换产生的系数经过量化后被EBCOT进行熵编码。EBCOT中的位平面编码为算术编码器提供上下文(CX)和D(决断)。但是在上下文生成的过程中,每个采样点的上下文是由它领域采样点的状态决定的。每个采样点包括五个状态变量v(幅值),s(符号),δ(有效性),π(编码完成标志),ξ(是否第一次进入幅度细化通道)。如果码块大小为64×64时,一共需要20K状态变量存储器,同时状态存储器的写入和读写,中断了实现时的流水线,大大降低了编码速度,且增加了控制电路的复杂性。另外在上下文生成过程中需要对位平面进行多次扫描编码,在时间上付出了很大的代价。这两个缺点使JPEG2000编码器整体效率很低,对高质量图像难以进行实时压缩处理。

发明内容
针对上述背景技术中存在的缺陷和不足,本发明的目的在于,在位平面编码器的设计中,引入3个专用电路,实现高效的(无状态存储器),且0冗余编码时钟的VLSI方法。
为达到上述目的,本发明采用的技术解决方案,按以下方式进行1)通过“MSB”检测电路及状态变量生成电路所述”MSB”检测电路及状态变量生成电路是每一个象素,最高的有效位平面我们称之为msb,假设A为16整数,如A=0X0A00,则msb(A)=12;假设当前正在编码的位平面为currentbp,从码块中输出时的待编码象素为A,则当currentbp<msb(A)时,δ(A)=1,否则δ(A)=0。
2)无冗余时钟的列NBC索引判断和生成电路所述的无冗余时钟的列NBC索引判断和生成电路技术是位平面编码在执行过程中,每次扫描一列四个数据,然而这四个点并不是都需要编码的,利用窗口处理函数,找到需要进行编码的点,将其信息输入到NBC索引电路中。该电路输出当前列需要进行编码的点的索引,这样就跳过了不需要进行编码的象素点,节约了时钟周期。当需要编码的点都被编码完成后,NBC索引电路输出换列(change column)信号请求下一列数据。
3)RLC,ZC和SC的连续编码的控制信号生成电路所述RLC,ZC和SC的连续编码实现的控制信号生成电路技术是在PASS1通道,需要进行ZC和SC编码,在PASS3通道,需要进行RLC,ZC,SC编码,在PASS1通道,需要进行ZC和SC编码;在PASS3通道,需要进行RLC、ZC、和SC编码;在PASS1编码时,通过无冗余时钟的列NBC索引判断和生成电路,使得在编码时的时钟消耗仅为1个判断时钟和编码时钟;在PASS3编码时,使用RLC,ZC和SC的流水实现的控制信号生成电路及列NBC索引判断和生成电路,使得在编码时的时钟消耗仅为1个判断时钟和编码时钟,通过这两个电路可以在编码时获得最快的编码速度,无时钟浪费。
本发明针对位平面编码器的VLSI实现中,所必须处理的几个关键问题,给出了其专用电路实现结构。在基于列关联的位平面编码器的设计实现中,其中MSB检测电路的运用可节约全部的状态存储器,无冗余时钟的列NBC索引判断和生成电路技术和RLC,ZC和SC的连续编码实现的控制信号生成电路技术保证了编码时的无冗余时钟设计实现。


图1是码块内编码扫描示意图;
图2是通道并行编码算法示意及窗口示意图;图3是象素A的检0电路图;图4是NBC索引生成电路。
图5是RLC,ZC,SC编码时序图。
图6给出一个包含MSB检测电路,NBC电路和RLC,ZC,SC流水实现的PASS3编码实现图。
图7为点X的8领域,其中H0,H1表示水平方向,D表示对角,V表示垂直方向。
具体实施例方式
下面结合附图和发明人给出的实施例对本发明进一步详细说明,但本发明并不限于这个实施例。
首先结合附图1对本文的实施例算法作简单说明,位平面编码的顺序是从MSB到LSB,每个位平面包括三个编码通道PASS1有效性传播通道(Significant Propagation Pass)PASS2幅度细化通道(Magnitude Refinement PASS)PASS3清除通道(Cleanup Pass)唯一例外的是MSB位平面,只包括PASS3编码。在JPEG2000默认的编码模式中,其余的位平面在编码时顺序经过PASS1通道,PASS2通道,PASS3通道进行编码。每个象素点根据其领域的状态判断进入哪一个通道进行编码。在位平面扫描的过程中,需要对每个象素的状态变量进行刷新δ(有效性),π(是否已经被编码),ε(是否第一次进入幅度细化通道)。
通道并行模式是JPEG2000协议支持的模式之一,每一列的最后一个象素在生成上下文时,只需要判断5邻域;但是第一个象素仍然需要判断8邻域。采用一种行状态存储器结构来预存每一列最后一个点的有效性状态。S暂存器和C暂存器,这两条行状态暂存器来分别记录PASS1和PASS3中每列最后一个点的有效性状态值,每一列的最后一个象素点编码完成后,需要对行暂存器的值进行更新。
按照本发明的关键电路,发明人给出了一个典型实施例。在本实施例中使用的是JPEG2000标准中的基于列关联的通道并行位平面编码。在本实施例中,首先介绍MSB检测电路及状态变量生成电路在JPEG2000协议中,每个象素的状态变量就是有效性变量δ,是否第一次进入幅度细化通道变量ξ,幅值v,符号s,编码完成变量π,在每一次进行位平面扫描时,可以很容易的得到v和s变量,编码完成变量π需要根据前面通道移位后的数据决定,有效性δ和是否第一次进入幅度细化通道变量ξ需要频繁更新,采用存储器操作时,数据存取和读取操作使控制程序复杂,并且浪费了时间周期。MSB电路通过组合逻辑,在一个时钟内判断δ和ξ,不需要更新。其基本原理为每一个象素,最高的有效位平面为msb,假设当前正在编码的位平面为currentbp,当currentbp<msb时,δ=1,否则δ=0;若该象素的msb<2则ξ=0;否则,若currentbp<msb-2时,ξ=1,其他情况ξ=0。
在设计中,假定小波进行9/7小波变换时,输出数据经过量化后的位深度为16位,其中最高位为符号位,其它十五位为数据位。在图1中,只给出了shiftbit[3:1]的实现,类似的,可以得到shiftbit
,A表示小波变换后输出的数据,通过组合逻辑,得到的shiftbit[3:0]为A的最高位到msb之前零的个数,所以msb=15-shift[3:0]。进而与currentbp比较可以得到A的状态变量,这些操作均为组合逻辑,可以在一个时钟周期内完成,具体实现时可从码块中读出列(stripe)数据时应用。达到了既省去了存储器同时节省了存取状态变量所耗费的时钟。
所述的无冗余时钟的列NBC索引判断和生成电路技术及RLC,ZC和SC的流水实现的控制信号生成电路技术是因两者具有相关性,放在一起论述,在PASS1通道,需要进行ZC和SC编码,在PASS3通道,需要进行RLC,ZC,SC编码,通常是采用状态机实现,在状态跳转时,会产生时钟冗余,运用本方法,高效实现了三种编码方式的流水线操作,没有产生时钟冗余。
在位平面编码在执行过程中,每次扫描一列四个数据,然而这四个点并不是都需要编码的,根据窗口处理函数,首先计算出当前待编码列的4个象素的领域重要性信息,将其信息输入到NBC索引电路中,该电路输出当前列需要进行编码的点的索引,这样就跳过了不需要进行编码的象素点,节约了时钟周期。当需要编码的点都被编码完成后,NBC索引电路输出换列(change column)信号请求下一列数据。
以P1列为例说明PASS1编码,对于P10,先计算其h,v,d的有效性值,如表一所示,如h,v,d值中任一为1,则表示此点在PASS1中需要编码,在判断P11是否在PASS1编码时,在窗口逻辑的计算中用δ′10=(h10|v10|d10)&v10代替δ10。NBCflag[3:0]为4位的线变量,用来表示P10,P11,P12,P13四个点是否在PASS1中编码,这样NBCflag
=h10|v10|d10。
Nbccounter表示在PASS1中P1列需要编码的点数。
Nbccounter=NBCflag[3]+NBCflag[2]+NBCflag[1]+NBCflag
Pixelcounter表示从0开始计数,直到其值等于nbccounter时,NBC索引生成电路为多路选择器组成的组合逻辑,在图3,标有1~7一共七个节点,分别记为temp1-temp7,其中temp1-temp6分别为6个二选一的多路选择器的输出,分别用se11,sel2,sel3,sel4,sel5,sel6来表示6个多选的选择端条件,例如在nbcflag[2]=1时,temp1=2’b10,否则,temp1=2’b11,则这样结合图3,可表示为sel1=nbcflag[2]sel2=nbcflag[1]sel3=nbcflag
sel6=nbcflag[2]&nbcflag[1]&nbcflag
temp3,temp4,temp5,temp7为一个四选一的多路选择器的输出,其中选择器的选择端接pixelcounter,当pixelcounter=01时,nbcindex=temp5。
这样在PASS1编码时,当1≤pixelcount er≤nbccounter,应该进行ZC编码,同时根据nbcindex的值将相应的hnbcindex,vnbcindex,dnbcindex的值送到ZC的上下文生成逻辑中,生成各编码点所属的ZC上下文。
当v[nbcindex]=1时,在ZC编码之后,还需进行SC编码,这时,pixelcounter的值需保持两个时钟,分别顺序产生一个时钟ZC编码使能和SC编码使能,同时nbcindex保持两个时钟,将相应的h,v,d和S信号值送到ZC的上下文生成逻辑和SC的上下文生成逻辑,这样在PASS1的编码时所需的时钟的数为仅为窗口逻辑时钟(1个)+编码时钟,即利用无冗余时钟的列NBC索引判断和生成电路技术及RLC,ZC和SC的流水实现的控制信号生成电路技术实现了PASS1编码的无容余时钟实现。
对PASS3编码,因为可能发生RLC,ZC和SC三种编码,具体在实现时可按以下步骤首先对输入的一列数据进行RLC判断,如果满足RLC编码条件,进入RLC通道编码。
如果V50,V51,V52,V53全为0,则只需一个编码时钟,如不全为0,如1010,正确编码应为100S010,对100S为RLC编码,对010需要进行ZC编码,所以临时变量nbcflagtemp=4’b0111,表示此列中的后三个数需要进行ZC编码。在第三个时钟周期,将SC上下文生成逻辑需要数据送入,在第四个时钟周期,输出SC编码上下文,同时(设在此之前,已由coloumn_change信号将ZC编码计数器pixelcounter清0),将NBCflagtemp的值赋给NBC电路的NBCflag,如在PASS1中描述的一样,在第五个时钟输出ZC上下文的输出,同时在需要时产生ZC的输出,所需时钟数仅为RLC判断或ZC判断(1个时钟)+RLC编码、ZC编码、SC编码时钟,实现了PASS3通道编码的无冗余时钟流水实现,图4所示一个包含RLC编码,ZC编码,SC编码的时序图,图中只给出实际中的RLC,ZC或SC的使能信号(en)。图6给出一个包含MSB检测电路,NBC电路和RLC,ZC,SC流水实现的PASS3编码实现图,PASS1与PASS3的不同仅在与无RLC编码。PASS2的编码比较简单,故在本设施例中没有讨论。
下表为窗口逻辑的计算 表中的字母含义解释首先v(幅值),s(符号),δ(有效性),π(编码完成标志),ξ(是否第一次进入幅度细化通道)。P11代表附图2中的点,图7所示为点X的8领域,其中H0,H1表示水平方向,D表示对角,V表示垂直方向。
因此h=δP20+δP00,]]>表示点P10表示的水平方向有效性贡献h可由δP20+δP00,即P00,P20点的有效性之和表示,同理可知V,d的含义,δ表示在P10编码以后,有效性的更新值。
权利要求
1.一种0冗余编码时钟的位平面编码器的VLSI实现方法,其特征在于,按以下步骤进行1)通过“MSB”检测电路及状态变量生成电路通过“MSB”检测电路及状态变量生成电路,在待编码的象素点从码块存储器中取出的同时,通过“MSB”检测电路生成其在上下文编码中所需的状态变量,对于每一个象素,最高的有效位平面称为msb,假设A为16整数,如A=0X0A00,则msb(A)=12;假设当前正在编码的位平面为currentbp,从码块中输出时的待编码象素为A,则当currentbp<msb(A)时,δ(A)=1,否则δ(A)=0;2)无冗余时钟的列NBC索引判断和生成电路位平面编码在执行过程中,每次扫描一列四个数据,然而这四个点并不是都需要编码的,利用窗口处理函数,找到需要进行编码的点,将其信息输入到NBC索引电路中;该电路输出当前列需要进行编码的点的索引,跳过不需要进行编码的象素点,以节约时钟周期;当需要编码的点都被编码完成后,NBC索引电路输出换列信号请求下一列数据;3)RLC、ZC和SC的流水实现的控制信号生成电路在PASS1通道,需要进行ZC和SC编码;在PASS3通道,需要进行RLC、ZC、和SC编码;在PASS1编码时,通过无冗余时钟的列NBC索引判断和生成电路,,使得在编码时的时钟消耗仅为1个判断时钟和编码时钟;在PASS3编码时,使用RLC,ZC和SC的流水实现的控制信号生成电路及列NBC索引判断和生成电路,使得在编码时的时钟消耗仅为1个判断时钟和编码时钟,通过这两个电路可以在编码时获得最快的编码速度,无时钟浪费。
全文摘要
本发明公开了一种0冗余编码时钟的位平面编码器的VLSI实现方法,在JPEG2000位平面编码器的VLSI设计中,提供3个专用电路,通过“MSB”检测电路及状态变量生成电路,在待编码的象素点从码块存储器中取出的同时,通过“MSB”检测电路生成其在上下文编码中所需的状态变量,节省了状态变量存储器,同时也节省了存取状态变量存储器耗费的大量时钟。在PASS1编码时,通过无冗余时钟的列NBC索引判断和生成电路,使得在编码时的时钟消耗仅为1个判断时钟和编码时钟;在PASS3编码时,使用RLC,ZC和SC的流水实现的控制信号生成电路及列NBC索引判断和生成电路,使得在编码时的时钟消耗仅为1个判断时钟和编码时钟,通过这两个电路可以在编码时获得最快的编码速度,无时钟浪费。
文档编号G06T1/00GK1564200SQ200410026018
公开日2005年1月12日 申请日期2004年4月7日 优先权日2004年4月7日
发明者梅魁志, 郑南宁, 刘跃虎, 王勇, 姚霁 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1