实现h.264的cavlc的熵解码器和方法

文档序号:7892363阅读:110来源:国知局
专利名称:实现h.264的cavlc的熵解码器和方法
技术领域
本发明涉及实现新一代视频编码标准H. 264编解码的多媒体技术领域,尤其涉及一种实现札264的CAVLC的熵解码器和方法。
背景技术
随着视频编解码技术的发展,产生了许多视频编解码的标准,如MPEG1/2/4、
H.263/264。其中H. 264由于其高压缩率以及具有很好的还原质量,正在被广泛接受,然而,其实现复杂度要比其他前几个标准复杂得多。而在整个H. 264的解码过程中,熵解码是第一步,后面的解码过程需要等待前面的解码结果,因此其解码速度严重影响整个解码速度。
H.264采用了两套熵编/解码技术,即基于上下文的自适应变长编码(Context-based Adaptive Variable Length Coding,CAVLC)和基于上下文的自适应算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)。其中 CAVLC 由于编码复杂度比CABAC低,广泛的用于各种视频的编码。H. 264的主要档次(Main Profile),基本档次(Base Profile)和扩展档次(Extended Profile)都支持 CAVLC。在CAVLC解码装置中,CAVLC共有6个语法元素需要解码,包括非零系数个数、拖尾系数的个数、每个拖尾系数的符号、除拖尾系数外非零系数的幅值、最后一个非零系数前零的个数和每个非零系数前零的个数。一般地,CAVLC熵解码器的解码过程如下初始化工作,确定输入数据的块类型等参数;求变量NC,根据NC的值选择所要查的表格;查表得出语法元素非零系数个数和拖尾系数的个数;根据拖尾系数的个数解出拖尾系数的符号;解码除拖尾系数外非零系数的幅值;根据非零系数个数查表求出最后一个非零系数前零的个数;解码每个非零系数前零的个数。现有技术中的一种H. 264熵解码器CAVLC的硬件设计,CAVLC硬件熵解码器主要由5个功能模块,包括解码系数标记模块(CoefT_token Decoder)、拖尾符号标记模块(TrailingOnes Decoder)、幅值模块(Level Decoder)、总零数模块(TotalZero Decoder) >前游程模块(Run_before Decoder),以及一个 CAVLC 控制模块(CAVLC Contraller)组成。另外包括了一个内部的SRAM模块,用于存储块(block)信息。其中,幅值模块(Level Decoder)包括幅值前缀模块(level_prefix Decoder),幅值后缀模块(level_suffix Decoder)。五个句法元素的模块(Decoder)分别执行对于相应的句法元素的解码工作。CAVLC控制模块执行协调各模块工作,对SRAM数据的存取,向外中请接受码流数据,以及将各子功能模块解码得到的数据重组和向外输出传递的功能。其中解码系数标记模块(Coeff_token Decoder)用于解码非零系数个数和拖尾系数个数,此解码过程可根据H264标准中Coeff_taken码表进行。拖尾符号标记模块(TrailingOnes Decoder)用于解码拖尾系数,由于之前的解码系数标记模块(Coeff_token Decoder)中解出的仅仅是拖尾系数的个数,所以这个模块真正解码的是拖尾系数的符号。幅值模块(Level Decoder)由两部分组成,幅值前缀模块(level_prefixDecoder),幅值后缀模块(level_suff ix Decoder)。幅值模块(Level Decoder)的解码过程为先初始化中间变量suffixLength的值,由于已经解出了非零系数的个数TotalCoefT和拖尾系数的个数TrailingOnes,所以可知有TotalCoeff-TrailingOnes个level的解码循环过程需要进行。在每次解码level的循环中,先计算IevelCode,然后根据IevelCode的奇偶性计算出level的值,最后根据解出的level的绝对值是否大于相应的阈值来更新suffixLength 的值。总零数模块(TotalZero Decoder)用于解码最后一个非零系数前零的个数,包括了两张表格,一张为常用表,另外一张为ChromaDC的专用表格。前游程(Run_before Decoder)用于解码每个非零系数前零的个数(RunBefore)。 但是,CAVLC熵解码由于标准所限,其熵解码过程包括解码系数标记(COefT_token),拖尾符号标记(trailing_ones_sign_flag),幅值前缀(level_pref ix),幅值后缀(level_suffix),总零数(total_zeros),前游程(run_before)六个解码步骤,在解码过程中,后面的步骤都严重依赖前面的步骤。而在整个H. 264的解码过程中,熵解码是第一步,后面的解码过程需要等待其解码结果,熵解码速度严重影响整个解码速度。因此,尽量减少依赖造成的等待,对于一个好的CAVLC的熵解码系统,甚至对整个H. 264解码系统,都是至关重要的。

发明内容
本发明的目的在于提供一种实现H. 264的CAVLC的熵解码器和方法,其有效地提高了解码速度。为实现本发明目的而提供的一种实现H. 264的CAVLC的熵解码器,包括解码系数标记解码模块、拖尾符号标记解码模块、幅值解码模块、总零数解码模块、前游程解码模块,CAVLC控制模块和寄存器单元;其中,幅值解码模块包括幅值前缀解码模块,幅值后缀解码模块;CAVLC控制模块,包括系数标记解码模块跳转控制模块,拖尾符号标记状态机跳转控制模块,幅值前缀状态机跳转控制模块,幅值后缀状态机跳转控制模块,总零数状态机跳转控制模块,前游程状态机跳转控制模块;寄存器单元,包括非零系数寄存器,拖尾系数寄存器,拖尾系数标记寄存器,幅值前缀寄存器,幅值后缀寄存器,总零数寄存器,前游程寄存器;还包括旁路模块电路单元,为连接相邻两级解码模块之间的旁路电路单元,用于将上一级解码模块所获得的解码参数从旁路电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块;所述CAVLC控制模块,还包括参数传输控制模块,用于在解码状态下,控制将上一级解码模块所获得的解码参数传输给相应解码参数寄存器的同时,控制将相应解码参数通过旁路模块电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块。较优地,旁路模块电路单元包括第一旁路模块电路单元;所述第一旁路模块电路单元为连接解码系数标记解码模块和拖尾符号标记解码模块的旁路电路单元,用于将解码系数标记解码模块解码得到的总的非零系数和拖尾系数传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块;所述参数传输控制模块包括第一控制模块,用于在解码系数标记解码状态下,控制将解码系数标记解码模块解码得到的总的非零系数和拖尾系数传输给非零系数寄存器和拖尾系数寄存器的同时,控制将总的非零系数和拖尾系数通过第一旁路模块电路单元传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块。较优地,所述旁路模块电路单元还包括第二旁路模块电路单元;所述第二旁路模块电路单元为连接幅值前缀解码模块和幅值后缀解码模块的旁路电路单元,用于将幅值前缀模块解码得到的幅值前缀传输给幅值后缀状态机跳转控制模块以及幅值模块的幅值后缀解码模块;所述参数传输控制模块还包括第二控制模块,用于在幅值前缀解码状态下,控制
将幅值前缀模块解码得到的幅值前缀传输给幅值前缀寄存器的同时,控制将幅值前缀通过第二旁路模块电路单元传输给幅值后缀状态机跳转控制模块以及幅值后缀解码模块。较优地,所述旁路模块电路单元还包括第三旁路模块电路单元;所述第三旁路模块电路单元为连接总零数模块和前游程模块的旁路电路单元,用于将总零数模块解码得到的最后一个非零系数前零的个数传输给前游程状态机控制模块和前游程解码模块;所述参数传输控制模块还包括第三控制模块,用于在总零数解码状态下,控制解码总零数模块解码得到的总零数传输给总零数寄存器的同时,控制将总零数通过第三旁路模块电路单元传输给前游程状态机跳转控制模块以及前游程解码模块。为实现本发明还提供一种实现H. 264的CAVLC的熵解码方法,包括如下步骤设置连接相邻两级解码模块之间的旁路电路单元;在解码状态下,控制将上一级解码模块所获得的解码参数传输给相应解码参数寄存器的同时,控制将相应解码参数通过旁路模块电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块。较优地,所述设置旁路电路单元,包括如下步骤设置连接解码系数标记解码模块和拖尾符号标记解码模块的第一旁路模块电路单元;所述控制解码参数传输,包括如下步骤在解码系数标记解码状态下,CAVLC控制模块控制将解码系数标记解码模块解码得到的总的非零系数和拖尾系数传输给非零系数寄存器和拖尾系数寄存器的同时,控制将总的非零系数和拖尾系数通过第一旁路模块电路单元传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块,并进行拖尾符号标记解码。较优地,所述设置旁路电路单元,还包括如下步骤设置连接幅值前缀解码模块和幅值后缀解码模块的第二旁路模块电路单元;所述控制解码参数传输,还包括如下步骤在幅值前缀解码状态下,CAVLC控制模块控制将幅值前缀模块解码得到的幅值前缀传输给幅值前缀寄存器的同时,控制将幅值前缀通过第二旁路模块电路单元传输给幅值后缀状态机跳转控制模块以及幅值后缀解码模块,并进行幅值后缀解码。较优地,所述设置旁路电路单元,还包括如下步骤
设置连接总零数模块和前游程模块的第三旁路模块电路单元;所述控制解码参数传输,还包括如下步骤在总零数解码状态下,CAVLC控制模块控制解码总零数模块解码得到的总零数传输给总零数寄存器的同时,控制将总零数通过第三旁路模块电路单元传输给前游程状态机跳转控制模块以及前游程解码模块,并进行前游程解码。较优地,所述控制并进行拖尾符号标记解码,包括如下步骤控制将解码系数标记解码模块解码得到的总的非零系数和拖尾系数传输给非零系数寄存器和拖尾系数寄存器的同时,控制将总的非零系数和拖尾系数通过第一旁路模块电路单元传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块;拖尾符号标记状态机跳转控制模块首先判断第一旁路模块电路单元传输来的非 零系数的值是否大于0,以及拖尾系数的值是否大于0,根据判断结果决定是否进入解码拖尾符号标记状态;如果非零系数或拖尾系数小于0,直接跳过拖尾符号标记解码状态;如果非零系数和拖尾系数都大于0,则拖尾符号标记状态机跳转控制模块控制拖尾符号标记解码模块进入拖尾符号标记解码状态,启动拖尾符号标记解码模块的解码工作;进入拖尾符号标记解码状态后,拖尾符号标记解码模块开始拖尾符号标记解码工作,同时,拖尾拖尾符号标记状态机跳转控制模块监测拖尾符号标记解码模块的结束信号是否有效;如果结束信号有效的话,拖尾符号标记状态机跳转控制模块控制拖尾符号标记解码结束,跳出拖尾符号标记解码状态。较优地,所述控制拖尾符号标记解码状态,包括如下步骤在拖尾符号标记解码模块解码的第一个解码周期,即解码第一个拖尾符号标记时,利用第一旁路模块电路单元传输来的拖尾系数与拖尾系数解码计数器中的值进行比较,判断拖尾符号标记解码状态是否结束;倘若相等,则拖尾符号标记解码状态结束信号有效,拖尾符号标记解码结束,跳出拖尾符号标记解码状态;否则,进入第二个解码周期;从第二个解码周期开始,拖尾符号标记解码模块从非零系数寄存器和拖尾系数寄存器读取非零系数和拖尾系数进入拖尾符号标记解码模块,循环进行拖尾符号标记解码;并利用从拖尾系数寄存器读取到的拖尾系数的值与拖尾系数解码计数器中的值进行比较,判断拖尾符号标记解码状态是否结束;倘若相等,则拖尾符号标记解码状态结束信号有效,拖尾符号标记解码结束,跳出拖尾符号标记解码状态;否则,继续下一解码周期循环解码。较优地,所述控制并进行幅值后缀解码,包括如下步骤在幅值前缀解码状态下,控制将幅值前缀模块解码得到的幅值前缀传输给幅值前缀寄存器的同时,控制将幅值前缀通过第二旁路模块电路单元传输给幅值后缀状态机跳转控制模块以及幅值后缀解码模块;根据第二旁路模块电路单元传输来的幅值前缀,以及中间变量suffixLength是否符合条件判断是否进入幅值后缀状态;当sufTixLenght大于0或者幅值前缀大于等于14时,决定进入幅值后缀解码状态,则幅值后缀状态机跳转控制模块控制进入幅值后缀解码状态,启动幅值后缀解码模块的解码工作,进行幅值后缀解码;否则,直接跳过幅值后缀解码状态,进入下一级解码状态,即总零数解码状态。较优地,所述控制并进行前游程解码,包括如下步骤在总零数解码状态下,控制解码总零数模块解码得到的总零数传输给总零数寄存器的同时,控制将总零数通过第三旁路模块电路单元传输给前游程状态机跳转控制模块以及前游程解码模块;前游程状态机跳控制模块根据非零系数的个数以及第三旁路模块电路单元传输来的总零数是否符合条件,即根据非零系数的个数大于0且总零数大于0,决定是否进入解码前游程状态;如果不符合,直接跳过前游程解码状态;如果符合,则解码状态机进入前游程解码状态,启动前游程解码模块的解码工作; 进入前游程解码状态后,前游程解码模块开始前游程解码工作,同时,前游程解码状态机跳转控制模块监测前游程解码模块的结束信号是否有效;如果结束信号有效的话,前游程解码状态机跳转控制模块控制前游程解码结束,跳出前游程解码状态。较优地,所述控制前游程解码状态,包括如下步骤在前游程解码模块解码的第一个解码周期,即解码第一个前游程时,利用第三旁路模块电路单元传输来的总零数与前游程解码计数器中的值进行比较,判断前游程解码状态是否结束;倘若相等,则前游程解码状态结束信号有效,前游程解码结束,跳出前游程解码状态;否则,进入第二个解码周期;从第二个解码周期开始,前游程解码模块从总零数寄存器读取总零数进入前游程解码模块,循环进行前游程解码;并利用从总零数寄存器读取到的总零数的值与前游程解码计数器中的值进行比较,判断前游程解码状态是否结束;倘若相等,则前游程解码状态结束信号有效,前游程解码结束,跳出前游程解码状态;否则,继续下一解码周期循环解码。本发明的有益效果是本发明的实现H. 264的CAVLC的熵解码器和方法,通过在熵解码大规模集成电路的解码模块上增加旁路逻辑模块,尽量减少前后解码依赖所造成的等待,高效地提高了熵解码的速度,有效地提高了 CAVLC解码系统,甚至对整个H. 264解码系统的解码速度。


图I是本发明实施例实现H. 264的CAVLC的熵解码器结构示意图;图2是本发明实施例的实现H. 264的CAVLC的熵解码方法中控制将非零系数和拖尾系数传输示意图;图3是本发明实施例的实现H. 264的CAVLC的熵解码方法中控制将非零系数和拖尾系数传输流程图;图4是本发明实施例的实现H. 264的CAVLC的熵解码方法中选择比较实现示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的实现H. 264的CAVLC的熵解码器和方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图I所示,作为一种可实施方式,本发明实施例的实现H. 264的CAVLC的熵解码器,包括解码系数标记解码模块(CoefTJoken Decoder) 31、拖尾符号标记解码模块(TrailingOnes Decoder) 32、幅值解码模块(Level Decoder)、总零数解码模块(TotalZeroDecoder) 35、前游程解码模块(Run_before Decoder) 36,CAVLC控制模块I和寄存器单元。其中,所述幅值解码模块(Level Decoder)包 括幅值前缀解码模块(leVel_pref ixDecoder) 33,幅值后缀解码模块(level_suff ix Decoder) 34。所述CAVLC控制模块1,包括系数标记解码模块跳转控制模块11,拖尾符号标记状态机跳转控制模块12,幅值前缀状态机跳转控制模块13,幅值后缀状态机跳转控制模块14,总零数状态机跳转控制模块15,前游程状态机跳转控制模块16。所述寄存器单元,包括非零系数(Totalcoeff)寄存器41,拖尾系数(TrailingOnes)寄存器42,拖尾符号标记(TrailingOnesSign)寄存器43,幅值前缀(level_prefix)寄存器44,幅值后缀(LevelSuffix)寄存器45,总零数(TotalZeros)寄存器46,和前游程(RunBefore)寄存器47。所有的解码模块组成了一个解码状态机,解码状态机的状态表征着解码进行到哪一个阶段,以及是在哪个解码模块进行。具体来说,解码状态机有空转,解码系数标记,解码拖尾符号标记,解码幅值前缀,解码幅值后缀,解码总零数,解码前游程七个状态。在空转状态,解码器不解码任何码流信息;后面的六个状态依次在对应的解码模块解码对应的码流信息。解码状态机的状态跳转是受系数标记解码模块跳转控制模块11,拖尾符号标记状态机跳转控制模块12,幅值前缀状态机跳转控制模块13,幅值后缀状态机跳转控制模块14,前游程状态机跳转控制模块15,总零数状态机跳转控制模块16控制的。本发明实施例的实现H. 264的CAVLC的熵解码器,还包括旁路模块电路单元,为连接相邻两级解码模块之间的旁路电路单元,用于将上一级解码模块所获得的解码参数从旁路电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块;所述CAVLC控制模块,还包括参数传输控制模块,用于在解码状态下,控制将上一级解码模块所获得的解码参数传输给相应解码参数寄存器的同时,控制将相应解码参数通过旁路模块电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块。所述旁路模块电路单元包括第一旁路模块电路单元21 ;第一旁路模块电路单元21,为连接解码系数标记解码模块和拖尾符号标记解码模块的旁路电路单元,用于将解码系数标记解码模块解码得到的总的非零系数(Totalcoeff)和拖尾系数(TrailingOnes)传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块。所述参数传输控制模块包括第一控制模块17,用于在解码系数标记解码状态下,控制将解码系数标记解码模块解码得到的总的非零系数(Totalcoeff)和拖尾系数(TrailingOnes)传输给非零系数(Totalcoeff)寄存器和拖尾系数(TrailingOnes)寄存器的同时,控制将总的非零系数(Totalcoeff)和拖尾系数(TrailingOnes)通过第一旁路模块电路单元传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块。
也就是说,第一控制模块17控制将解码系数标记解码模块的解码结果(总的非零系数(TotalcoefT)和拖尾系数(TrailingOnes))传送给三个单元,分别传输给对应解码模块的寄存器,同时利用第一控制模块控制通过第一旁路模块电路单元传输给下一级状态机跳转控制模块一拖尾符号标记状态机跳转控制模块,和下一级需要用的解码部件一拖尾符号标记解码模块。较佳地,作为一种可实施方式,所述旁路模块电路单元还包括第二旁路模块电路单元22 ;第二旁路模块电路单元22,为连接幅值前缀解码模块和幅值后缀解码模块的旁路电路单元,用于将幅值前缀模块解码得到的幅值前缀(levelprefix)传输给幅值后缀状态机跳转控制模块以及幅值模块的幅值后缀解码模块。所述参数传输控制模块还包括第二控制模块18,用于在幅值前缀解码状态下,控制将幅值前缀模块解码得到的幅值前缀(level_prefix)传输给幅值前缀(level_prefix)寄存器的同时,控制将幅值前缀(levelprefix)通过第二旁路模块电路单元传输给幅值后缀状态机跳转控制模块以及幅值后缀解码模块。
更佳地,作为一种可实施方式,所述旁路模块电路单元还包括第三旁路模块电路单元23;第三旁路模块电路单元23,为连接总零数模块和前游程模块的旁路电路单元,用于将总零数模块解码得到的最后一个非零系数前零的个数传输给前游程状态机控制模块和前游程解码模块。所述参数传输控制模块还包括第三控制模块19,用于在总零数解码状态下,控制解码总零数模块解码得到的总零数传输给总零数寄存器的同时,控制将总零数通过第三旁路模块电路单元传输给前游程状态机跳转控制模块以及前游程解码模块。作为一种可实施方式,如图I所示,本发明实施例的实现H. 264的CAVLC的熵解码器,其通过超大规模集成电路(Very Large Scale Integration, VLSI)实现快速解码输出。应当说明的是,本发明实施例的实现H.264的CAVLC的熵解码器,所述第一旁路模块电路单元21或/和第二旁路模块电路单元22或/和第三旁路模块电路单元23,可以单独或者组合构成本发明实施例的旁路模块电路单元而实施实现;相应地,所述第一控制模块17或/和第二控制模块18或/和第三控制模块19相应地单独或者组合构成本发明实施例的参数传输控制模块而实施实现。相应地,本发明实施例还提供一种实现H. 264的CAVLC的熵解码方法,包括如下步骤步骤S100,设置连接相邻两级解码模块之间的旁路电路单元;步骤S200,在解码状态下,控制将上一级解码模块所获得的解码参数传输给相应解码参数寄存器的同时,控制将相应解码参数通过旁路模块电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块。具体地,作为一种可实施方式,所述步骤SlOO中,所述设置旁路电路单元,包括如下步骤步骤S110,设置连接解码系数标记解码模块和拖尾符号标记解码模块的第一旁路模块电路单元;所述步骤S200中,控制解码参数传输,包括如下步骤步骤S210,在解码系数标记解码状态下,CAVLC控制模块控制将解码系数标记解码模块解码得到的总的非零系数(Totalcoeff)和拖尾系数(TrailingOnes)传输给非零系数(TotalcoefT)寄存器和拖尾系数(TrailingOnes)寄存器的同时,控制将总的非零系数(Totalcoeff)和拖尾系数(TrailingOnes)通过第一旁路模块电路单元传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块,并进行拖尾符号标记解码。较佳地,作为一种可实施方式,所述步骤SlOO中,所述设置旁路电路单元,还包括如下步骤步骤SllO',设置连接幅值前缀解码模块和幅值后缀解码模块的第二旁路模块电路单元;
所述步骤S200中,控制解码参数传输,包括如下步骤步骤S210',在幅值前缀解码状态下,CAVLC控制模块控制将幅值前缀模块解码得到的幅值前缀(level_prefix)传输给幅值前缀(level_prefix)寄存器的同时,控制将幅值前缀(level_prefix)通过第二旁路模块电路单元传输给幅值后缀状态机跳转控制模块以及幅值后缀解码模块,并进行幅值后缀解码。更佳地,作为一种可实施方式,本发明实施例的实现H. 264的CAVLC的熵解码方法,所述步骤Sioo中,所述设置旁路电路单元,还包括如下步骤步骤S110",设置连接总零数模块和前游程模块的第三旁路模块电路单元;所述步骤S200中,控制解码参数传输,还包括如下步骤步骤S210 ",在总零数解码状态下,CAVLC控制模块控制解码总零数模块解码得到的总零数传输给总零数寄存器的同时,控制将总零数通过第三旁路模块电路单元传输给前游程状态机跳转控制模块以及前游程解码模块,并进行前游程解码。应当说明的是,本发明实施例的实现H. 264的CAVLC的熵解码方法,所述步骤SI 10或/和步骤SllO'或/和步骤S110",可以单独或者组合实现本发明实施例的步骤SlOO而实施实现;相应地,所述步骤S210或/和步骤S210'或/和步骤S210"相应地单独或者组合构成本发明实施例的步骤S200而实施实现。下面详细描述步骤S210解码系数标记解码模块和拖尾符号标记解码模块解码信息传输解码的实现过程,具体地,所述步骤S210包括如下步骤步骤S211,控制将解码系数标记解码模块解码得到的总的非零系数和拖尾系数传输给非零系数寄存器和拖尾系数寄存器的同时,控制将总的非零系数和拖尾系数通过第一旁路模块电路单元传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块;如图2,对于解码系数标记解码模块,根据H. 264标准,输入为码流以及NC值,根据H264标准中的Coeff_taken解码表可以得到解出来的解码系数标记(coeff_token)的两部分-非零系数(TotalcoefT)和拖尾系数(TrailingOnes)。通过第一控制模块控制,这两部分分别送往非零系数(Totalcoeff)和拖尾系数(TrailingOnes)寄存器的同时,通过第一旁路模块电路单元传输给拖尾符号标记解码模块和拖尾符号标记状态机跳转控制模块,如图3所示。步骤S212,拖尾符号标记状态机跳转控制模块首先判断第一旁路模块电路单元传输来的非零系数的值是否大于0,以及拖尾系数的值是否大于0,根据判断结果决定是否进入解码拖尾符号标记状态;
如果非零系数或拖尾系数小于0,直接跳过拖尾符号标记解码状态;如果非零系数和拖尾系数都大于0,则拖尾符号标记状态机跳转控制模块控制拖尾符号标记解码模块进入拖尾符号标记解码状态,启动拖尾符号标记解码模块的解码工作。当拖尾符号标记状态机跳转控制模块接收第一旁路模块电路单元传输来的非零系数(TotalcoefT)和拖尾系数(TrailingOnes),如图3所述,拖尾符号标记状态机跳转控制模块首先判断第一旁路模块电路单元传输来的非零系数(TotalcoefT)的值是否大于0,以及拖尾系数(TrailingOnes)的值是否大于0,根据判断结果决定是否进入解·码拖尾符号标记(trailing_ones_sign_flag)状态如果非零系数(TotalcoefT)或拖尾系数(TrailingOnes)小于0,直接跳过拖尾符号标记解码状态;如果非零系数(TotalCoefT)和拖尾系数(TrailingOnes)都大于0,则拖尾符号标记状态机跳转控制模块控制拖尾符号标记解码模块进入拖尾符号标记(trailing_ones_sign_flag)解码状态,启动拖尾符号标记解码模块的解码工作。步骤S213,进入拖尾符号标记解码状态后,拖尾符号标记解码模块开始拖尾符号标记解码工作,同时,拖尾拖尾符号标记状态机跳转控制模块监测拖尾符号标记解码模块的结束信号是否有效;如果结束信号有效的话,拖尾符号标记状态机跳转控制模块控制拖尾符号标记解码结束,跳出拖尾符号标记解码状态。当拖尾符号标记状态机跳转控制模块控制进入拖尾符号标记解码状态后,拖尾符号标记解码模块开始拖尾符号标记解码工作,同时,拖尾拖尾符号标记状态机跳转控制模块监测拖尾符号标记解码模块的结束信号是否有效;如果结束信号有效的话,拖尾符号标记状态机跳转控制模块控制拖尾符号标记解码结束,跳出拖尾符号标记解码状态,如图4所示。本发明实施例中的拖尾符号标记解码模块进行拖尾符号标记解码工作,是一种现有技术,因此,在本发明实施例中不再详细描述。作为一种可实施方式,所述步骤S213包括下列步骤步骤S2131,在拖尾符号标记解码模块解码的第一个解码周期,即解码第一个拖尾符号标记时,利用第一旁路模块电路单元传输来的拖尾系数与拖尾系数解码计数器中的值进行比较,判断拖尾符号标记解码状态是否结束;倘若相等,则拖尾符号标记解码状态结束信号有效,拖尾符号标记解码结束,在拖尾符号标记状态机跳转控制模块控制下跳出拖尾符号标记解码状态;否则,进入步骤S2132第二个解码周期;作为一种可实施方式,拖尾符号标记解码模块包括拖尾系数解码计数器53,用于计数解码了多少个拖尾符号标记,当解码的拖尾符号标记数等于第一旁路模块电路单元传输来的拖尾系数时,拖尾符号标记解码模块的结束信号有效。本发明实施例中,在拖尾符号标记解码模块解码的第一个解码周期,即解码第一个拖尾符号标记时,判断拖尾符号标记(trailing-ones-sign-flag)解码状态是否结束的拖尾系数TrailingOnes是用第一旁路模块电路单元送来的(此时TrailingOnes寄存器里的值还没更新)。由于判断拖尾符号标记解码状态是否结束是由所解出来的拖尾符号标记个数是否等于拖尾系数(TrailingOnes)的值决定,而对于拖尾符号标记解码模块解码的第一个解码周期,由于此时系数标记解码阶段刚完成完,非零系数寄存器非零系数(TotalCoeff)和拖尾系数(TrailingOnes)寄存器更新还没生效非零系数解码模块解出来的值要下一个解码周期才能写入到非零系数(TotalCoefT)和拖尾系数(TrailingOnes)寄存器并作为输入提供给拖尾符号标记解码模块使用。本发明实施例中,在第一个解码周期用第一旁路模块电路单元传输来的非零系数(TotalCoeff)和拖尾系数(TrailingOnes)的值启动拖尾符号标记解码模块开始解码并比较判断;在拖尾符号标记解码的第一解 码周期,利用第一旁路模块电路单元传输来的拖尾系数与拖尾符号标记解码模块中的拖尾系数解码计数器的值进行比较,倘若相等,则拖尾符号标记解码状态结束信号有效,拖尾符号标记解码结束,跳出拖尾符号标记解码状态;否贝U,进入步骤S2132的第二个解码周期。这样,本发明实施例的熵解码器在拖尾符号标记解码过程中,不需要象现有技术中的解码机制那样,需要等拖尾系数(TrailingOnes)寄存器的值以及非零系数(TotalCoeff)寄存器的值更新生效后,也即等一个解码周期才开始解码拖尾符号标记,力口快解码速度。从而使得熵解码器在熵解码的过程中,减少解码等待,加快解码速度。步骤S2132,从第二个解码周期开始,拖尾符号标记解码模块从非零系数寄存器和拖尾系数寄存器读取非零系数(TotalCoefT)和拖尾系数(TrailingOnes)进入拖尾符号标记解码模块,循环进行拖尾符号标记解码;并利用从拖尾系数寄存器读取到的拖尾系数的值与拖尾系数解码计数器中的值进行比较,判断拖尾符号标记解码状态是否结束;倘若相等,则拖尾符号标记解码状态结束信号有效,拖尾符号标记解码结束,跳出拖尾符号标记解码状态;否则,继续下一解码周期循环解码。待拖尾符号标记状态机跳转控制模块控制进入拖尾符号标记解码状态的下一解码周期(拖尾符号标记解码模块的第二个解码周期开始),由拖尾符号标记解码模块从非零系数寄存器和拖尾系数寄存器读取非零系数(TotalCoeff)和拖尾系数(TrailingOnes)进入拖尾符号标记解码模块,从而拖尾符号标记解码模块在第二个解码周期开始,采用非零系数(TotalCoeff)和拖尾系数(TrailingOnes)寄存器中的值进行拖尾符号标记解码直至完成所有拖尾符号标记解码的周期。而从第二解码周期开始,利用在拖尾符号标记解码状态中从拖尾系数(TrailingOnes)寄存器读取到的拖尾系数的值与拖尾系数解码计数器中的值进行比较,倘若相等,则拖尾符号标记解码状态结束信号有效,拖尾符号标记解码结束,跳出拖尾符号标记解码状态;否则,继续下一个解码周期循环。作为一种可实施方式,如图4所示,可采用二选一选择电路单元51实现从旁路或者拖尾系数寄存器中选择拖尾系数的值,以及通过比较器52实现拖尾系数的值与拖尾系数解码计数器中的值的比较。下面详细描述步骤S210'幅值前缀解码模块和幅值后缀解码模块解码信息传输解码实现过程。由于本发明实施例中,第二旁路模块电路单元和第二控制模块信息传输并解码的实现过程与第一旁路模块电路单元和第一控制模块的信息传输并解码的实现过程类似,因此,在此仅详细描述第二旁路模块电路单元和第二控制模块信息传输过程,并且对和H. 264标准一致的解码过程不再赘述,只描述不同之处。具体地,所述步骤S210'包括如下步骤步骤S211',在幅值前缀解码状态下,控制将幅值前缀模块解码得到的幅值前缀传输给幅值前缀寄存器的同时,控制将幅值前缀通过第二旁路模块电路单元传输给幅值后缀状态机跳转控制模块以及幅值后缀解码模块;幅值前缀解码模块解码后得到的幅值前缀(具体解码过程按照H264标准即可)通过第二控制模块控制传输到幅值前缀寄存器的同时,本发明实施例中,在第二控制模块的控制下,通过第二旁路模块电路单元传输给下一级的幅值后缀状态机跳转控制模块以及幅值后缀解码模块。步骤S212',根据第二旁路模块电路单元传输来的幅值前缀,以及中间变量suffixLength是否符合条件判断是否进入幅值后缀状态;当sufTixLenght大于0或者幅值前缀大于等于14时,决定进入幅值后缀解码状态,则幅值后缀状态机跳转控制模块控制进入幅值后缀解码状态,启动幅值后缀解码模块的解码工作,进行幅值后缀解码;否则,直接跳过幅值后缀解码状态,进入下一级解码状态,即总零数解码状态。
幅值后缀状态机跳控制模块接收第二旁路模块电路单元传输来的信息并解码得到幅值前缀后,根据第二旁路模块电路单元传输来的幅值前缀及中间变量suffixLength(suffixLenght 是由 TotalCoeff, TrailingOnes 以及解码的系数共同决定,具体计算方法由于其和标准一致,在此不赘述)是否符合条件,即suffixLenght大于0或者幅值如缀(level_prefix)大于等于14,决定是否进入解码幅值后缀状态如果不符合,直接跳过幅值后缀解码状态;如果符合,则幅值后缀状态机跳转控制模块控制进入幅值后缀解码状态,启动幅值后缀解码模块的解码工作。由于每个幅值前缀后面仅仅跟着一个幅值后缀,因此,解码完一个幅值后缀后,幅值后缀解码状态结束标记即生效,解码幅值后缀状态结束。本发明实施例中,幅值后缀解码模块解码幅值后缀的过程,是一种现有技术,因此,在本发明实施例中不再详细描述。同样地,本发明实施例的熵解码器在幅值后缀解码过程中,不需要象现有技术中的解码机制那样,需要等幅值前缀寄存器的值更新生效后,也即等一个解码周期才开始幅值后缀解码,从而使得熵解码器在熵解码的过程中,减少解码等待,加快解码速度。下面详细描述步骤S210"总零数解码模块和前游程解码模块信息传输解码实现过程。由于本发明实施例中,第三旁路模块电路单元和第三控制模块信息传输并解码的实现过程与第一旁路模块电路单元和第一控制模块的信息传输并解码的实现过程类似,因此,在此仅详细描述第三旁路模块电路单元和第三控制模块信息传输过程,并且对和H. 264标准一致的解码过程不再赘述,只描述不同之处。具体地,步骤S210"包括如下步骤步骤S211 ",在总零数解码状态下,控制解码总零数模块解码得到的总零数传输给总零数寄存器的同时,控制将总零数通过第三旁路模块电路单元传输给前游程状态机跳转控制模块以及前游程解码模块;总零数解码模块解码后得到的总零数(具体解码过程按照H264标准即可)通过第三控制模块控制传输到 总零数寄存器的同时,本发明实施例中,在第三控制模块的控制下,通过第三旁路模块电路单元传输给下一级的前游程状态机跳转控制模块以及前游程解码模块。步骤S212",前游程状态机跳控制模块根据非零系数的个数以及第三旁路模块电路单元传输来的总零数是否符合条件,即根据非零系数的个数大于0且总零数大于0,决定是否进入解码前游程状态;如果不符合,直接跳过前游程解码状态;如果符合,则解码状态机进入前游程解码状态,启动前游程解码模块的解码工作;前游程状态机跳控制模块接收第三旁路模块电路单元传输来的信息并解码得到总零数后,根据非零系数的个数TotalCoeff以及第三旁路模块电路单元传输来的总零数是否符合条件(totalCoeff大于0且总零数大于0)决定是否进入解码前游程状态如果不符合,直接跳过前游程解码状态;如果符合,则解码状态机进入前游程解码状态,启动前游程解码模块的解码工作。步骤S213 ",进入前游程解码状态后,前游程解码模块开始前游程解码工作,同时,前游程解码状态机跳转控制模块监测前游程解码模块的结束信号是否有效;如果结束信号有效的话,前游程解码状态机跳转控制模块控制前游程解码结束,跳出前游程解码状态。本发明实施例中的前游程解码模块进行前游程解码工作,是一种依据H264标准的现有技术,因此,在本发明实施例中不再一一详细描述。作为一种可实施方式,所述步骤S213"包括下列步骤步骤S2131",在前游程解码模块解码的第一个解码周期,即解码第一个前游程时,利用第三旁路模块电路单元传输来的总零数与前游程解码计数器中的值进行比较,判断前游程解码状态是否结束;倘若相等,则前游程解码状态结束信号有效,前游程解码结束,跳出前游程解码状态;否则,进入步骤S2132"第二个解码周期;和解码拖尾符号标记解码模块类似,作为一种可实施方式,本发明实施例的前游程解码模块包括一前游程解码计数器,和拖尾系数解码计数器不同的是,这里计数的不是解码了多少个前游程,而是用于计数解码了的前游程含有多少个0。在前游程解码过程中,当解码的前游程里面零的数目等于总零数时,前游程解码状态结束信号有效,前游程解码结束,跳出前游程解码状态。而每解码一个前游程,前游程解码计数器都加上前游程的值(即有多少个0)。由于判断前游程解码状态是否结束是由所解出来的前游程的值(即有多少个0)是否等于总零数决定。而对于前游程解码模块解码过程的第一个解码周期,由于此时同时还处于总零数解码周期,总零数解码模块解出来的值要下一个解码周期才能写入到总零数寄存器并供前游程解码模块使用。因此,本发明实施例名,判断前游程解码状态是否结束的总零数是用第三旁路模块电路单元送来的(此时总零数寄存器里的值还没更新)。即在前游程解码模块解码的第一解码周期,将前游程解码计数器中的值和第三旁路模块电路单元送来的总零数进行比较;如果相等,则前游程解码状态结束信号有效,前游程解码结束,跳出前游程解码状态;否则,进入步骤S2132"第二个解码周期;步骤S2132",从第二个解码周期开始,前游程解码模块从总零数寄存器读取总零数进入前游程解码模块,循环进行前游程解码;并利用从总零数寄存器读取到的总零数的值与前游程解码计数器中的值进行比较,判断前游程解码状态是否结束;倘若相等,则前游程解码状态结束信号有效,前游程解码结束,跳出前游程解码状态;否则,继续下一解码周期循环解码。从解码第二个前游程开始(此时总零数大于2),即前游程解码的第二个解码周期,用于判断前游程状态是否结束的总零数则来自总零数寄存器(此时寄存器的值已经更新生效,而旁路的值已经失效)。也即计数器和总零数寄存器中的值进行比较,倘若相等,则前游程解码状态结束信号有效,前游程解码结束,跳出前游程解码状态。
本发明实施例的实现H. 264的CAVLC的熵解码器总零数解码模块解码出来的参数在存在相应寄存器的同时,也通过第三旁路模块电路单元传给下一级的前游程解码模块,从而减少解码等待,加快解码速度。本发明实施例的实现H. 264的CAVLC的熵解码器,通过在熵解码大规模集成电路的解码模块上增加旁路电路逻辑模块,尽量减少前后解码依赖所造成的等待,高效地提高了熵解码的速度,有效地提高了 CAVLC解码系统,甚至对整个H. 264解码系统的解码速度。最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。
权利要求
1.一种实现a 264的CAVLC的熵解码器,包括解码系数标记解码模块、拖尾符号标记解码模块、幅值解码模块、总零数解码模块、前游程解码模块,CAVLC控制模块和寄存器单元; 其中,幅值解码模块包括幅值前缀解码模块,幅值后缀解码模块; CAVLC控制模块,包括系数标记解码模块跳转控制模块,拖尾符号标记状态机跳转控制模块,幅值前缀状态机跳转控制模块,幅值后缀状态机跳转控制模块,总零数状态机跳转控制模块,前游程状态机跳转控制模块; 寄存器单元,包括非零系数寄存器,拖尾系数寄存器,拖尾系数标记寄存器,幅值前缀寄存器,幅值后缀寄存器,总零数寄存器,前游程寄存器; 其特征在于 还包括旁路模块电路单元,为连接相邻两级解码模块之间的旁路电路单元,用于将上一级解码模块所获得的解码参数从旁路电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块; 所述CAVLC控制模块,还包括参数传输控制模块,用于在解码状态下,控制将上一级解码模块所获得的解码参数传输给相应解码参数寄存器的同时,控制将相应解码参数通过旁路模块电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块。
2.根据权利要求I所述的实现H.264的CAVLC的熵解码器,其特征在于,所述旁路模块电路单元包括第一旁路模块电路单元;所述第一旁路模块电路单元为连接解码系数标记解码模块和拖尾符号标记解码模块的旁路电路单元,用于将解码系数标记解码模块解码得到的总的非零系数和拖尾系数传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块; 所述参数传输控制模块包括第一控制模块,用于在解码系数标记解码状态下,控制将解码系数标记解码模块解码得到的总的非零系数和拖尾系数传输给非零系数寄存器和拖尾系数寄存器的同时,控制将总的非零系数和拖尾系数通过第一旁路模块电路单元传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块。
3.根据权利要求I或2所述的实现H.264的CAVLC的熵解码器,其特征在于,所述旁路模块电路单元还包括第二旁路模块电路单元;所述第二旁路模块电路单元为连接幅值前缀解码模块和幅值后缀解码模块的旁路电路单元,用于将幅值前缀模块解码得到的幅值前缀传输给幅值后缀状态机跳转控制模块以及幅值模块的幅值后缀解码模块; 所述参数传输控制模块还包括第二控制模块,用于在幅值前缀解码状态下,控制将幅值前缀模块解码得到的幅值前缀传输给幅值前缀寄存器的同时,控制将幅值前缀通过第二旁路模块电路单元传输给幅值后缀状态机跳转控制模块以及幅值后缀解码模块。
4.根据权利要求I或2或3所述的实现H.264的CAVLC的熵解码器,其特征在于,所述旁路模块电路单元还包括第三旁路模块电路单元;所述第三旁路模块电路单元为连接总零数模块和前游程模块的旁路电路单元,用于将总零数模块解码得到的最后一个非零系数前零的个数传输给前游程状态机控制模块和前游程解码模块; 所述参数传输控制模块还包括第三控制模块,用于在总零数解码状态下,控制解码总零数模块解码得到的总零数传输给总零数寄存器的同时,控制将总零数通过第三旁路模块电路单元传输给前游程状态机跳转控制模块以及前游程解码模块。
5.一种实现H. 264的CAVLC的熵解码方法,其特征在于,包括如下步骤设置连接相邻两级解码模块之间的旁路电路单元; 在解码状态下,控制将上一级解码模块所获得的解码参数传输给相应解码参数寄存器的同时,控制将相应解码参数通过旁路模块电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块。
6.根据权利要求5所述的实现H.264的CAVLC的熵解码方法,其特征在于, 所述设置旁路电路单元,包括如下步骤 设置连接解码系数标记解码模块和拖尾符号标记解码模块的第一旁路模块电路单元; 所述控制解码参数传输,包括如下步骤 在解码系数标记解码状态下,CAVLC控制模块控制将解码系数标记解码模块解码得到的总的非零系数和拖尾系数传输给非零系数寄存器和拖尾系数寄存器的同时,控制将总的非零系数和拖尾系数通过第一旁路模块电路单元传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块,并进行拖尾符号标记解码。
7.根据权利要求5或6所述的实现H.264的CAVLC的熵解码方法,其特征在于, 所述设置旁路电路单元,还包括如下步骤 设置连接幅值前缀解码模块和幅值后缀解码模块的第二旁路模块电路单元; 所述控制解码参数传输,还包括如下步骤 在幅值前缀解码状态下,CAVLC控制模块控制将幅值前缀模块解码得到的幅值前缀传输给幅值前缀寄存器的同时,控制将幅值前缀通过第二旁路模块电路单元传输给幅值后缀状态机跳转控制模块以及幅值后缀解码模块,并进行幅值后缀解码。
8.根据权利要求5或6或7所述的实现H.264的CAVLC的熵解码方法,其特征在于, 所述设置旁路电路单元,还包括如下步骤 设置连接总零数模块和前游程模块的第三旁路模块电路单元; 所述控制解码参数传输,还包括如下步骤 在总零数解码状态下,CAVLC控制模块控制解码总零数模块解码得到的总零数传输给总零数寄存器的同时,控制将总零数通过第三旁路模块电路单元传输给前游程状态机跳转控制模块以及前游程解码模块,并进行前游程解码。
9.根据权利要求6所述的实现H.264的CAVLC的熵解码方法,其特征在于,所述控制并进行拖尾符号标记解码,包括如下步骤 控制将解码系数标记解码模块解码得到的总的非零系数和拖尾系数传输给非零系数寄存器和拖尾系数寄存器的同时,控制将总的非零系数和拖尾系数通过第一旁路模块电路单元传输给拖尾符号标记状态机跳转控制模块以及拖尾符号标记解码模块; 拖尾符号标记状态机跳转控制模块首先判断第一旁路模块电路单元传输来的非零系数的值是否大于O,以及拖尾系数的值是否大于O,根据判断结果决定是否进入解码拖尾符号标记状态; 如果非零系数或拖尾系数小于O,直接跳过拖尾符号标记解码状态; 如果非零系数和拖尾系数都大于O,则拖尾符号标记状态机跳转控制模块控制拖尾符号标记解码模块进入拖尾符号标记解码状态,启动拖尾符号标记解码模块的解码工作; 进入拖尾符号标记解码状态后,拖尾符号标记解码模块开始拖尾符号标记解码工作,同时,拖尾拖尾符号标记状态机跳转控制模块监测拖尾符号标记解码模块的结束信号是否有效;如果结束信号有效的话,拖尾符号标记状态机跳转控制模块控制拖尾符号标记解码结束,跳出拖尾符号标记解码状态。
10.根据权利要求9所述的实现H.264的CAVLC的熵解码方法,其特征在于,所述控制拖尾符号标记解码状态,包括如下步骤 在拖尾符号标记解码模块解码的第一个解码周期,即解码第一个拖尾符号标记时,利用第一旁路模块电路单元传输来的拖尾系数与拖尾系数解码计数器中的值进行比较,判断拖尾符号标记解码状态是否结束;倘若相等,则拖尾符号标记解码状态结束信号有效,拖尾符号标记解码结束,跳出拖尾符号标记解码状态;否则,进入第二个解码周期; 从第二个解码周期开始,拖尾符号标记解码模块从非零系数寄存器和拖尾系数寄存器读取非零系数和拖尾系数进入拖尾符号标记解码模块,循环进行拖尾符号标记解码;并利用从拖尾系数寄存器读取到的拖尾系数的值与拖尾系数解码计数器中的值进行比较,判断拖尾符号标记解码状态是否结束;倘若相等,则拖尾符号标记解码状态结束信号有效,拖尾符号标记解码结束,跳出拖尾符号标记解码状态;否则,继续下一解码周期循环解码。
11.根据权利要求7所述的实现H.264的CAVLC的熵解码方法,其特征在于,所述控制并进行幅值后缀解码,包括如下步骤 在幅值前缀解码状态下,控制将幅值前缀模块解码得到的幅值前缀传输给幅值前缀寄存器的同时,控制将幅值前缀通过第二旁路模块电路单元传输给幅值后缀状态机跳转控制模块以及幅值后缀解码模块; 根据第二旁路模块电路单元传输来的幅值前缀,以及中间变量suffixLength是否符合条件判断是否进入幅值后缀状态; 当sufTixLenght大于0或者幅值前缀大于等于14时,决定进入幅值后缀解码状态,则幅值后缀状态机跳转控制模块控制进入幅值后缀解码状态,启动幅值后缀解码模块的解码工作,进行幅值后缀解码;否则,直接跳过幅值后缀解码状态,进入下一级解码状态,即总零数解码状态。
12.根据权利要求8所述的实现H.264的CAVLC的熵解码方法,其特征在于,所述控制并进行前游程解码,包括如下步骤 在总零数解码状态下,控制解码总零数模块解码得到的总零数传输给总零数寄存器的同时,控制将总零数通过第三旁路模块电路单元传输给前游程状态机跳转控制模块以及前游程解码模块; 前游程状态机跳控制模块根据非零系数的个数以及第三旁路模块电路单元传输来的总零数是否符合条件,即根据非零系数的个数大于0且总零数大于0,决定是否进入解码前游程状态; 如果不符合,直接跳过前游程解码状态; 如果符合,则解码状态机进入前游程解码状态,启动前游程解码模块的解码工作; 进入前游程解码状态后,前游程解码模块开始前游程解码工作,同时,前游程解码状态机跳转控制模块监测前游程解码模块的结束信号是否有效;如果结束信号有效的话,前游程解码状态机跳转控制模块控制前游程解码结束,跳出前游程解码状态。
13.根据权利要求12所述的实现H.264的CAVLC的熵解码方法,其特征在于,所述控制前游程解码状态,包括如下步骤 在前游程解码模块解码的第一个解码周期,即解码第一个前游程时,利用第三旁路模块电路单元传输来的总零数与前游程解码计数器中的值进行比较,判断前游程解码状态是否结束;倘若相等,则前游程解码状态结束信号有效,前游程解码结束,跳出前游程解码状态;否则,进入步骤F32第二个解码周期; 前游程解码模块从总零数寄存器读取总零数进入前游程解码模块,从第二个解码周期开始,循环进行前游程解码;并利用从总零数寄存器读取到的总零数的值与前游程解码计数器中的值进行比较,判断前游程解码状态是否结束;倘若相等,则前游程解码状态结束信号有效,前游程解码结束,跳出前游程解码状态;否则,继续下一解码周期循环解码。
全文摘要
本发明公开一种实现H.264的CAVLC的熵解码器和方法。该熵解码器包括旁路模块电路单元,为连接相邻两级解码模块之间的旁路电路单元,用于将上一级解码模块所获得的解码参数从旁路电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块;CAVLC控制模块还包括参数传输控制模块,用于在解码状态下,控制将上一级解码模块所获得的解码参数传输给相应解码参数寄存器的同时,控制将相应解码参数通过旁路模块电路单元传输给下一级解码状态机跳转控制模块和下一级解码模块。其有效地提高了解码速度。
文档编号H04N7/26GK102710937SQ201210082890
公开日2012年10月3日 申请日期2012年3月26日 优先权日2011年6月2日
发明者刘道福, 李玲, 钱诚, 陈云霁 申请人:龙芯中科技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1