高性能自适应二进制算术编码器的制作方法

文档序号:7604722阅读:273来源:国知局
专利名称:高性能自适应二进制算术编码器的制作方法
技术领域
本发明属于视频处理技术领域,涉及算术编码器结构,可用于超大规模集成电路 VLSI设计。
背景技术
未来的社会将是信息化的社会。数字化的信息,尤其是数字化后的视频和音频信息,具有数据海量性的特点,给信息的存储和传输造成很大的困难,成为阻碍人类获取和使用有效信息的瓶颈之一。视频信息具有一系列优点,如直观性,确切性,高效性,广泛性等等,但是信息量太大。要使视频得到有效的应用,必须解决编码压缩率和解码图像质量的问题。这两者是相互矛盾的两个方面。因此,研究和开发新型有效的多媒体数据压缩编码方法,以压缩的形式存储和传输这些数据将是最好的选择。在视频编码标准H. 264中,视频数据按照宏块为单位编码,当前宏块减去预测宏块,得到残差宏块。对残差宏块进行变换、量化,得到量化系数;对量化系数进行zig-zag扫描后进行熵编码;将熵编码后的结果递交到网络层进行传输。熵编码作为H. 264标准中的关键技术对提高整个系统的编码效率至关重要。熵编码由两部分组成,一个是基于可变长度编码的编码方式,包括基于上下文的自适应可变长编码CAVLC和指数哥伦布编码;另一个是基于算术编码的编码方式,即基于上下文的自适应二进制算术编码CABAC。这两种编码方法都是利用了自适应的上下文模型来提高编码的效率。与CAVLC相比,CABAC可使码率降低9-14%,但是计算复杂度增加了 25-30%。在实际应用中,可以采用这两种编码方法中一个作为系统的实际编码方法。H. Shojania 等人在文章 “A High Performance CABAC Encoder” The 3rd International IEEE NEffCAS Conference,2005,pp. 315-319 中,提出了一种二进制算术编码器结构。这种结构对二进制算术编码中常规模式和旁路模式进行复用,但是并没有采用一种有效的流水线结构,降低了二进制算术编码器的处理速度,达不到高清视频的编码要求。L.F.Li 等人在文章“A CABAC Encoding Core with Dynamic Pipeline” IEEE Asia Pacific Conference on Circuits and Systems,2006,pp. 760-764 中提出了一种基于动态流水线结构的二进制算术编码器。这种结构虽然采用了动态流水线,简化了算术编码器的处理复杂度,但是编码速度达不到一个时钟周期编码一个比特数据。R. R. Osorio等人在文章“High Throughput Architecture for CABAC,,IEEE Transactions on Circuits and Systems for Video Technology, pp. 16-20,2006 中,提出了一种高速二进制算术编码器结构。该结构可以实现一个时钟周期编码2个比特数据的编码速度,但是编码器结构过于复杂,而且增加了硬件资源的消耗。

发明内容
本发明的目的在于克服上述背景技术中存在的缺陷和不足,提供一种高性能自适应二进制算术编码器,以简化编码器结构,提高编码速度。
4
实现本发明的自适应二进制算术编码器,包括概率模型存储模块、概率模型更新模块、编码状态更新模块、归一化模块和寄存器组,其中概率模型存储模块,包括读地址产生单元、写地址寄存单元、概率模型存储单元、 选择单元和缓存寄存单元,读地址产生单元用于产生概率模型存储单元的读地址,该读地址经过写地址寄存单元得到概率模型存储单元的写地址,选择单元用于在概率模型存储单元和缓存寄存单元之间进行选择,该缓存寄存单元用于缓存算术编码过程中更新的概率模型;归一化模块,包括前缀零检测单元、编码状态区间移位单元、编码状态下限移位单元,该前缀零检测单元通过检测算术编码状态区间中前缀零的数目确定编码状态区间移位单元和编码状态下限移位单元的移位次数;所述概率模型存储模块与概率模型更新模块之间插有第一寄存器组,所述编码状态更新模块与归一化模块之间插有第二寄存器组,形成三级流水结构。上述的自适应二进制算术编码器,其中所述的读地址产生单元,包括基地址产生器、偏移地址产生器和加法器,基地址产生器产生概率模型的基地址输入给加法器,偏移地址产生器产生概率模型的偏移地址输入给加法器,加法器对基地址和偏移地址相加,得到读地址。上述的自适应二进制算术编码器,其中所述的概率模型存储单元,由一个大小为 470 X 7比特的双端口静态随机存储器RAM构成。上述的自适应二进制算术编码器,其中所述的缓存寄存单元由最大概率字符寄存器和概率状态寄存器组成。上述的自适应二进制算术编码器,其中所述的前缀零检测单元,包括4比特全零检测器、2比特全零检测器、1比特零检测器和两个选择器,该4比特全零检测器,用于检测算术编码状态区间的第8比特至第5比特数据,检测结果输出给第一选择器;该2比特全零检测器,用于检测算术编码状态区间的第4比特至第3比特数据,检测结果分别输出给第一选择器和第二选择器;该1比特零检测器,用于检测算术编码状态区间的第2比特数据,检测结果输出给第二选择器;该第一选择器,用于在4比特全零检测器和2比特全零检测器之间进行选择;该第二选择器,用于在2比特全零检测器和1比特零检测器之间进行选择;第一选择器和第二选择器的选择结果以及1比特零检测器的检测结果构成前缀零检测单元的输出结果。上述的自适应二进制算术编码器,其中所述的编码状态区间移位单元,包括4比特移位器、2比特移位器、1比特移位器和三个选择器,4比特移位器对编码状态区间进行4 比特左移操作,第一选择器在4比特移位器的输出结果和编码状态区间之间进行选择,2比特移位器对第一选择器的输出结果进行2比特左移操作;第二选择器在2比特移位器的输出结果和第一选择器的输出结果之间进行选择,1比特移位器对第二选择器的输出结果进行1比特左移操作;第三选择器在1比特移位器的输出结果和第二选择器的输出结果之间进行选择,第三选择器的输出结果作为编码状态区间移位单元的输出结果。上述的自适应二进制算术编码器,其中所述的编码状态下限移位单元,由七个1 比特移位器和8选1选择器组成,第一比特移位器对编码状态下限进行1比特左移操作,第二比特移位器对第一比特移位器的输出结果进行1比特左移操作,第三比特移位器对第二比特移位器的输出结果进行1比特左移操作,第四比特移位器对第三比特移位器的输出结果进行1比特左移操作,第五比特移位器对第四比特移位器的输出结果进行1比特左移操作,第六比特移位器对第五比特移位器的输出结果进行1比特左移操作,第七比特移位器对第六比特移位器的输出结果进行1比特左移操作;8选1选择器对这七个1比特移位器的输出结果和编码状态区间进行选择,选择结果作为编码状态下限移位单元的输出结果。本发明与现有技术相比,具有以下优点第一,本发明通过采用三级流水线结构,充分利用硬件资源的并行性来提高编码器的处理速度和简化编码器的结构,使得二进制算术编码器中各子模块能够连续、协调的工作,极大的提高了二进制算术编码的并行程度和编码速度,可以稳定实现一个时钟周期编码一个比特数据。第二,本发明通过采用缓存寄存单元,解决了在概率模型存储过程中的存储器读写冲突问题,使得在进行二进制算术编码的过程中可以不间断的进行概率模型的更新,从而确保了二进制算术编码器在每个时钟周期连续的进行编码。第三,本发明通过采用前缀零检测单元、编码状态区间移位单元和编码状态下限移位单元,利用少量的硬件资源来完成归一化操作,使得归一化模块的结构既简单又易于硬件实现。


本发明的特征及优点通过以下附图和实施例进一步说明图1是本发明实施例的自适应二进制算术编码器的结构框图;图2是本发明实施例中编码状态更新模块和概率模型更新模块结构框图;图3是本发明实施例中概率模型存储模块结构框图;图4是本发明实施例中归一化模块结构框图。
具体实施例方式下面结合附图和实施例对本发明作进一步详细说明。参照图1,本发明的自适应二进制算术编码器包括概率模型存储模块、概率模型更新模块、编码状态更新模块、归一化模块和寄存器组。概率模型存储模块与概率模型更新模块之间插有第一寄存器组,编码状态更新模块与归一化模块之间插有第二寄存器组,形成三级流水结构。概率模型存储模块位于该流水线结构的第一级,该模块首先产生概率模型的读地址,然后从概率模型存储器中读取二进制算术编码所需的概率模型;读取的概率模型经过第一寄存器组寄存后,输出给概率模型更新模块和编码状态更新模块;概率模型更新模块和编码状态更新模块位于该流水线结构的第二级,概率模型更新模块对输入的概率模型进行更新得到新的概率模型,编码状态更新模块对当前编码器状态进行更新得到新的编码状态;更新后的概率模型输出给概率模型存储模块进行存储,更新后的编码状态经过第二寄存器组寄存后,输出给归一化模块;归一化模块位于该流水线结构的第三级,该模块对编码状态区间和编码状态下限进行归一化操作。图2给出了本发明算术编码器的编码状态更新模块和概率模型更新模块的结构。 其中
编码状态更新模块,完成编码状态的更新,该更新包括编码状态区间的更新和编码状态下限的更新。该模块由比较器、第一查找表、加法器、第一减法器、第二减法器、第一选择器和第二选择器组成。编码状态区间更新的处理流程为由编码状态区间和概率状态索引通过第一查找表得到最小概率字符的编码状态区间,其中,第一查找表用于完成编码状态区间和概率状态的乘法操作;然后,将编码状态区间和最小概率字符的编码状态区间进行减法操作,得到最大概率字符的编码状态区间;最后,由最小概率字符的编码状态区间和最大概率字符的编码状态区间经过第一选择器得到最终更新后的编码状态区间。输入的编码数据和最大概率字符经过比较器进行比较,比较器的输出作为该第一选择器的选择判断。编码状态下限更新的处理流程为编码状态区间和编码状态下限经过加法器进行加法操作,再与第一查找表的结果进行减法操作得到最小概率字符的编码状态下限;然后,由该最小概率字符的编码状态下限和当前编码状态下限经过第二选择器得到最终更新后的编码状态下限。该第二选择器的判断输入为上述比较器的输出。概率模型更新模块,完成概率模型的更新,该更新包括概率状态的更新和最大概率字符的更新。该模块由零判别器、取反器、第二查找表,第三选择器和第四选择器组成。概率状态更新的处理流程为,由概率状态索引通第二查找表得到概率状态的两个更新值,其中第一个更新值对应当前编码数据是最大概率字符,第二个更新值对应当前编码数据是最小概率字符。这两个更新值经过第三选择器进行选择后得到最终的概率状态更新值。第三选择器的判断输入为上述编码状态更新模块比较器的输出。最大概率字符更新的处理流程为,将最大概率字符经过取反器进行取反操作,该取反器的输出和最大概率字符经过第四选择器进行选择后得到更新后的最大概率字符。概率状态经过零判别器后和上述编码状态更新模块比较器的输出进行逻辑与操作,然后作为第四选择器的选择判断。图3给出了本发明算术编码器的概率模型存储模块的结构,它包括读地址产生单元、写地址寄存单元、概率模型存储单元、选择单元和缓存寄存单元,读地址产生单元用于产生概率模型存储单元的读地址,该读地址经过写地址寄存单元得到概率模型存储单元的写地址,选择单元用于在概率模型存储单元和缓存寄存单元之间进行选择,该缓存寄存单元用于缓存算术编码过程中更新的概率模型。其中,读地址产生单元,包括基地址产生器、偏移地址产生器和加法器,基地址产生器产生概率模型的基地址输入给加法器,偏移地址产生器产生概率模型的偏移地址输入给加法器,加法器对基地址和偏移地址相加,得到概率模型的读地址。图4给出了本发明算术编码器的归一化模块的结构,它包括前缀零检测单元、编码状态区间移位单元和编码状态下限移位单元,该前缀零检测单元通过检测算术编码状态区间中前缀零的数目确定编码状态区间移位单元和编码状态下限移位单元的移位次数。其中前缀零检测单元,完成对算术编码区间的前缀零的检测,得到编码状态区间移位单元和编码状态下限移位单元的移位次数,该单元由4比特全零检测器、2比特全零检测器、1比特零检测器和两个选择器组成。该4比特全零检测器,用于检测算术编码状态区间的第8比特至第5比特数据,检测结果输出给第一选择器;该2比特全零检测器,用于检测算术编码状态区间的第4比特至第3比特数据,检测结果分别输出给第一选择器和第二选择器;该1比特零检测器,用于检测算术编码状态区间的第2比特数据,检测结果输出给第二选择器;该第一选择器,用于在4比特全零检测器和2比特全零检测器之间进行选择;该第二选择器,用于在2比特全零检测器和1比特零检测器之间进行选择;第一选择器和第二选择器的选择结果以及1比特零检测器的检测结果构成前缀零检测单元的输出结果。编码状态区间移位单元,完成对编码状态区间的移位操作,得到归一化后的编码状态区间,该单元由4比特移位器、2比特移位器、1比特移位器和三个选择器组成。4比特移位器对编码状态区间进行4比特左移操作,第一选择器在4比特移位器的输出结果和编码状态区间之间进行选择,2比特移位器对第一选择器的输出结果进行2比特左移操作;第二选择器在2比特移位器的输出结果和第一选择器的输出结果之间进行选择,1比特移位器对第二选择器的输出结果进行1比特左移操作;第三选择器在1比特移位器的输出结果和第二选择器的输出结果之间进行选择,第三选择器的输出结果作为编码状态区间移位单元的输出结果。编码状态下限移位单元,完成对编码状态下限的移位操作,得到归一化后的编码状态下限,该单元由七个1比特移位器和8选1选择器组成。第一比特移位器对编码状态下限进行1比特左移操作,第二比特移位器对第一比特移位器的输出结果进行1比特左移操作,第三比特移位器对第二比特移位器的输出结果进行1比特左移操作,第四比特移位器对第三比特移位器的输出结果进行1比特左移操作,第五比特移位器对第四比特移位器的输出结果进行1比特左移操作,第六比特移位器对第五比特移位器的输出结果进行1比特左移操作,第七比特移位器对第六比特移位器的输出结果进行1比特左移操作;8选1选择器对这七个1比特移位器的输出结果和编码状态区间进行选择,选择结果作为编码状态下限移位单元的输出结果。以上是本发明的一个优选实例,不够成对本发明的任何限制,显然在本发明的思想和提示下,任何人可以做出不同的修改和变化,但这些均在本发明的保护之列。
权利要求
1.一种高性能自适应二进制算术编码器,包括概率模型存储模块、概率模型更新模块、 编码状态更新模块、归一化模块和寄存器组,其特征在于概率模型存储模块,包括读地址产生单元、写地址寄存单元、概率模型存储单元、选择单元和缓存寄存单元,读地址产生单元用于产生概率模型存储单元的读地址,该读地址经过写地址寄存单元得到概率模型存储单元的写地址,选择单元用于在概率模型存储单元和缓存寄存单元之间进行选择,该缓存寄存单元用于缓存算术编码过程中更新的概率模型;归一化模块,包括前缀零检测单元、编码状态区间移位单元、编码状态下限移位单元, 该前缀零检测单元通过检测算术编码状态区间中前缀零的数目确定编码状态区间移位单元和编码状态下限移位单元的移位次数;所述概率模型存储模块与概率模型更新模块之间插有第一寄存器组,所述编码状态更新模块与归一化模块之间插有第二寄存器组,形成三级流水结构。
2.根据权利要求书1所述的自适应二进制算术编码器,其特征在于读地址产生单元, 包括基地址产生器、偏移地址产生器和加法器,基地址产生器产生概率模型的基地址输入给加法器,偏移地址产生器产生概率模型的偏移地址输入给加法器,加法器对基地址和偏移地址相加,得到读地址。
3.根据权利要求书1所述的自适应二进制算术编码器,其特征在于概率模型存储单元,由一个大小为470X7比特的双端口静态随机存储器RAM构成。
4.根据权利要求书1所述的自适应二进制算术编码器,其特征在于缓存寄存单元由最大概率字符寄存器和概率状态寄存器组成。
5.根据权利要求书1所述的自适应二进制算术编码器,其特征在于前缀零检测单元, 包括4比特全零检测器、2比特全零检测器、1比特零检测器和两个选择器,该4比特全零检测器,用于检测算术编码状态区间的第8比特至第5比特数据,检测结果输出给第一选择器;该2比特全零检测器,用于检测算术编码状态区间的第4比特至第3比特数据,检测结果分别输出给第一选择器和第二选择器;该1比特零检测器,用于检测算术编码状态区间的第2比特数据,检测结果输出给第二选择器;该第一选择器,用于在4比特全零检测器和 2比特全零检测器之间进行选择;该第二选择器,用于在2比特全零检测器和1比特零检测器之间进行选择;第一选择器和第二选择器的选择结果以及1比特零检测器的检测结果构成前缀零检测单元的输出结果。
6.根据权利要求书1所述的自适应二进制算术编码器,其特征在于编码状态区间移位单元,包括4比特移位器、2比特移位器、1比特移位器和三个选择器,4比特移位器对编码状态区间进行4比特左移操作,第一选择器在4比特移位器的输出结果和编码状态区间之间进行选择,2比特移位器对第一选择器的输出结果进行2比特左移操作;第二选择器在 2比特移位器的输出结果和第一选择器的输出结果之间进行选择,1比特移位器对第二选择器的输出结果进行1比特左移操作;第三选择器在1比特移位器的输出结果和第二选择器的输出结果之间进行选择,第三选择器的输出结果作为编码状态区间移位单元的输出结果。
7.根据权利要求书1所述的自适应二进制算术编码器,其特征在于编码状态下限移位单元,由七个1比特移位器和8选1选择器组成,第一比特移位器对编码状态下限进行 1比特左移操作,第二比特移位器对第一比特移位器的输出结果进行1比特左移操作,第三比特移位器对第二比特移位器的输出结果进行1比特左移操作,第四比特移位器对第三比特移位器的输出结果进行1比特左移操作,第五比特移位器对第四比特移位器的输出结果进行1比特左移操作,第六比特移位器对第五比特移位器的输出结果进行1比特左移操作, 第七比特移位器对第六比特移位器的输出结果进行1比特左移操作;8选1选择器对这七个1比特移位器的输出结果和编码状态区间进行选择,选择结果作为编码状态下限移位单元的输出结果。
全文摘要
本发明公开了一种高性能自适应二进制算术编码器,主要解决现有二进制算术编码器中有关编码速度不高和结构复杂的问题。该编码器由概率模型存储模块、概率模型更新模块、编码状态更新模块、归一化模块和寄存器组构成,其中在概率模型存储模块与概率模型更新模块之间插有第一寄存器组,在编码状态更新模块与归一化模块之间插有第二寄存器组,形成三级流水结构,充分利用硬件的并行性来提高编码速度;在概率模型存储模块中采用缓存寄存单元,有效的避免了概率模型存储器的读写冲突;在归一化模块中采用前缀零检测单元,使得归一化模块的结构既简单又易于硬件实现。本发明具有编码速度高、编码器结构简单的特点,可应用于高清视频的实时编码。
文档编号H04N7/26GK102176750SQ201110057720
公开日2011年9月7日 申请日期2011年3月10日 优先权日2011年3月10日
发明者刘翔, 吴成柯, 孙铭若, 宋锐, 崔弘飞, 李云松, 李宏伟, 杜建超, 王养利, 肖嵩, 裘陆君, 贾媛, 韩晶晶 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1