基于上下文自适应二进制算术解码器的制作方法

文档序号:7613706阅读:206来源:国知局
专利名称:基于上下文自适应二进制算术解码器的制作方法
技术领域
本发明涉及一种视频解码器,特别涉及一种基于上下文自适应二进制算术解码器。
背景技术
随着数字电视技术的发展,对于视音频编解码的技术层出不穷,国际上也出现了MPEG-x、H.26x两大系列的视频编码国际标准,这些视频编码标准追求的共同目标是在尽可能低的码率下获得尽可能好的图像质量。为了改善编码效率,人们在众多环节上作了尝试,比如改善预测方法、改善运动补偿、改善块变化等。除了上述方法,改善编码效率还有很重要的一种方法改善熵编码方法。传统的熵编码方法主要采用霍夫曼理论,但是它存在两个主要的缺点一是对于非整数的熵值只能用整数位比特来表示;二是编码所使用的概率模型是固定的,而实际码流的概率统计特性总是非平稳的。因此,在霍夫曼理论基础上作了改进,出现了上下文自适应二进制算术编码(CABAC,Context-Adaptive Binary Arithmetic Coding)。上下文自适应二进制算术编码根据上下文内容选择语法元素的概率模型,根据统计结果进行自适应概率估算。上下文自适应二进制算术编码很好地解决了传统霍夫曼理论编码的问题,首先,上下文自适应二进制算术编码采用算术编码,用非整数位比特来表示熵值非整数的数据;其次,上下文自适应二进制算术编码所使用的概率模型总是根据码流的当前特性进行更新,所以能更准确地反映当前码流的概率统计特性。据统计,基于上下文二进制编码(CABAC)比通用变长码(UVLC)编码效率提高20%~40%。
基于上下文自适应二进制算术解码器是用于对采用基于上下文自适应二进制算术编码的视频压缩码流进行熵解码。现在业界比较普遍的是在DSP平台上采用软件方式来实现基于上下文自适应二进制算术解码器。它的特点是开发周期较短,实现方式比较灵活。但是,整个解码过程涉及到针对大量的上下文(在主层级(main profile)高达701个)进行操作,包括上下文初始化、上下文选择以及上下文更新等,导致了解码过程运算复杂,运算量庞大。所以采用软件方式实现解码通常会产生解码速度低下的问题。因此,在对解码速度要求比较高的场合,比如要求实时解码的系统、比如标清、高清视频码流,采用ASIC设计应该是比较合理的选择。采用ASIC设计能够实现较高的解码速度,可以满足对解码速度较高的要求。

发明内容
本发明要解决的技术问题是提供一种基于上下文自适应二进制算术解码器,解决视频解码中由于熵解码模式运算复杂、运算量过大而引起的熵解码速度低下的问题,提高视频解码速度。
本发明是通过以下技术方案实现的一种基于上下文自适应二进制算术解码器,所述解码器包括算术解码器控制装置、数据接口装置、符号下标及上下文下标增量计算装置、上下文管理装置、解码引擎装置和符号检测装置,其中,算术解码器控制接口装置接收外部命令和相邻块信息,将语法元素第一个符号的上下文下标增量送至符号下标及上下文下标增量计算装置,并在解码完成后返回解得的语法元素值;数据接口装置缓存当前待解码流并在解完每个语法元素后都请求FIFO把已用码流移走;符号下标及上下文下标增量计算装置确定符号下标,以及确定所述符号下标对应的上下文下标增量;上下文管理装置根据所述上下文下标增量取出相对应的当前状态概率下标和当前大概率符号值送至解码引擎装置,并将更新好的当前状态概率下标和当前大概率符号值存入其原来的位置;解码引擎装置在开始解码一个片或者解码出一个原始数据的宏块类型时进行解码引擎寄存器初始化,在解码过程中根据当前解码模式以及当前状态概率下标和当前大概率符号值解码出一个符号值,并进行解码引擎寄存器更新和初始化,输出所使用码流的比特数;符号检测装置对解码引擎解出来的一系列符号值进行检测,同时发出语法元素解码结束命令或解后缀命令。
所述外部命令是外部解析器模块的命令。
算术解码器控制装置包括控制残差块解码的残差控制装置和计算语法元素第一个符号的上下文下标增量的首符号上下文下标增量计算装置。
上下文管理装置包括存储初始化参数的值的初始化ROM;生成RAM的地址的地址生成器;根据片亮度量化因子和所述初始化参数的值得到上下文模型的当前状态概率下标和当前大概率符号值的初始化计算模块;存储当前状态概率下标和当前大概率符号值的状态概率指针RAM。
地址生成器根据上下文下标增量、残差块类型和语法元素类型计算出RAM的地址。所述地址生成器在上下文初始化阶段生成RAM地址作为高位地址,初始化因子的值为低位地址,共同组成ROM的地址。所述RAM地址和上下文模型下标号对应。
解码引擎装置包括普通解码模式,等概率解码模式和终止解码模式。
等概率解码模式直接由算术解码器控制装置启动解码引擎。
解码后缀时由符号检测装置发命令通知算术解码器控制装置并请求启动新的解码过程。
本发明基于上下文自适应二进制算术解码器通过算术解码器控制装置来与外部模块进行命令,相邻信息和语法元素值的交换,简化了整个解码器与外部的接口;通过数据接口装置来与外部进行码流交互,减少了解码器与外部码流交互的次数;通过符号下标及上下文下标增量计算装置来快速计算符号下标和上下文下标增量;上下文管理装置使用了一个16X2048的片内只读存储器(ROM)来存储初始化上下文所需要的两个初始化参数,使用一个7X512的片内随机存储器(RAM)来存储当前状态概率下标和当前大概率符号值,并且设计了一个可流水线操作的初始化计算模块,从而实现了对上下文初始化的流水线操作,提高了运算速度,实现了快速的上下文选择和更新操作;同时,解码引擎装置可进行三种解码模式的解码,既节省了硬件开销,也加快了解码速度;符号检测装置可以对所有语法元素类型的符号值进行检测,使得本发明能够加快解码速度,满足对解码速度较高的要求。


图1是基于上下文自适应二进制算术解码器的结构框图;图2是上下文管理装置的结构框图。
具体实施例方式
请参阅图1,基于上下文自适应二进制算术解码器包括算术解码器控制装置、数据接口装置、符号下标及上下文下标增量计算装置、上下文管理装置、解码引擎装置和符号检测装置。其中,算术解码器控制接口装置用于接收外部命令和相邻块信息,并在解码完成后返回解得的语法元素值;数据接口装置用于缓存当前待解码流并在解完每个语法元素后都请求FIFO把已用码流移走;符号下标及上下文下标增量计算装置用于确定符号下标,以及确定所述符号下标对应的上下文下标增量;上下文管理装置根据所述上下文下标增量取出相对应的当前状态概率下标和当前大概率符号值送至所述解码引擎,将更新好的当前状态概率下标和当前大概率符号值存入其原来的位置;解码引擎装置用于在开始解码一个片或者解码出一个原始数据的宏块类型时进行解码引擎寄存器初始化,在解码过程中根据当前解码模式以及当前状态概率下标和当前大概率符号值解码出一个符号值,然后进行解码引擎寄存器更新和初始化,并且输出所使用码流的比特数;符号检测装置用于对解码引擎解出来的一系列符号值进行检测,同时发出语法元素解码结束命令或解后缀命令。
基于上下文自适应二进制算术解码器的工作流程如下算术解码器控制装置接收到解析器模块的命令后,待FIFO数据和相邻信息控制模块数据准备好以后,就把计算好的语法元素第一个符号的上下文下标增量传到符号下标及上下文下标增量计算装置并启动解码。符号下标及上下文下标增量计算装置负责确定当前的符号下标以及其相应的上下文下标增量,准备好以后启动上下文管理装置。上下文管理装置根据上下文下标增量来取出相应的当前状态概率下标和当前大概率符号值送到解码引擎并且将更新好的当前状态概率下标和当前大概率符号值存入相应的位置。解码引擎将解得的符号值送到符号检测装置。符号检测装置用来检测一系列的符号值,同时发出语法元素解码结束命令或解后缀命令。符号检测装置对解码引擎解出来的一系列符号值进行检测,当解出一个语法元素后就返回语法元素值并请求结束解码过程。解码过程结束后数据接口装置请求FIFO把已用码流移走。其中,对于等概率解码模式直接由算术解码器控制装置发命令启动解码引擎。对于需解码后缀则由符号检测装置发命令通知算术解码器控制装置并请求启动新的解码过程。残差控制装置用来控制一个残差块的解码。每解完一个残差块后请求算术解码器控制装置将所有解出的数据返回到解析器模块。
其中,算术解码器控制装置和数据接口装置是外部接口装置。算术解码器控制装置负责接受外部解析器模块的命令和相邻信息控制模块的相邻块信息,启动解码,解码完成后把解得语法元素值返回。算术解码器控制装置的主要操作包括解析外部解码命令、计算非残差语法元素第一个符号的上下文下标增量、计算残差块语法元素所有符号的上下文下标、启动语法元素的解码过程、送出解码出的语法元素的值。数据接口装置负责和FIFO接口,用来缓存当前待解码流。解完每个语法元素后,数据接口装置都请求FIFO把已用码流移走。
上下文管理装置主要实现在每个片开始解码前初始化701个上下文模型,解码的时候根据残差块类型,语法元素类型以及符号下标及上下文下标增量计算装置送来的上下文下标增量来为每一个符号选取相对应的上下文模型,并且在每个符号解码完成后对其对应的上下文模型进行更新。
上下文管理装置的示意图如图2所示。上下文管理装置包括存储有两个初始化参数的值的初始化ROM、生成RAM的地址的地址生成器、根据片亮度量化因子和所述的两个初始化参数的值得到上下文模型的当前状态概率下标和当前大概率符号值的初始化计算模块以及存储当前状态概率下标和当前大概率符号值的状态概率指针RAM。
其中,初始化ROM为宽度16位,深度2048的片内只读存储器,每个存储器单元16比特,地址长度为11比特。这个ROM用于存储两个初始化参数(都是8位的补码)。将第二个初始化参数置于高8位,第一个初始化参数置于低8位,形成一个有效数据单元。
对算法的上下文模型表进行改进,使得每个上下文模型索引号都对应4个单元约定初始化因子为3时表示帧内预测片;对于只包括帧内预测片的上下文模型,在有效数据单元前添加3个空单元;对于只包括帧间预测片的上下文模型,在有效数据单元之后添加1个空单元;对于帧内预测片和帧间预测片公用的上下文模型,添加和有效数据单元内容重复的3个单元。
注意舍去切换帧内预测片的上下文模型(针对切换帧内预测片)。
在初始化时根据初始化因子作为寻址的低2位,取出4个单元中的一个。
其中状态概率指针RAM为宽度7位,深度512的片内存储器,每个存储器单元7比特,地址长度为9比特。这个RAM用于存储当前状态概率下标和当前大概率符号值。RAM地址和算法中的上下文模型索引号对应。
地址生成器用来在上下文初始化阶段生成RAM的地址,并且这个地址为高9位,初始化因子的值为低2位直接组成ROM的地址。解码时用来在解码过程中生成RAM的地址以选取适当的上下文模型用于解码一个符号并且在解码完对该上下文模型进行更新。根据上下文下标增量、残差块类型和语法元素类型计算出上下文模型的索引号,即RAM的地址。
初始化计算模块用来计算一个上下文模型的两个参数当前状态概率下标和当前大概率符号值。根据片亮度量化因子和两个初始化参数的值,计算上下文模型的两个参数当前状态概率下标和当前大概率符号值。计算过程需要两个时钟周期。由于模块为流水线设计,无须等待计算完成,可以在每个时钟周期连续地输入两个初始化参数。其算法如下
输入数据片亮度量化因子的长度为6位,首位添零形成7位补码。两个初始化参数长度为16位,表示两个初始化参数的补码形式。使用一个补码乘法器,被乘数第一个初始化参数的宽度为8位,乘数片亮度量化因子的宽度为7位,结果为15位,皆为补码。对乘法的结果作向右移4位的操作,高位用符号位补齐。加法计算中,第二个初始化参数被扩充到14位后再计算,计算结果为补码,不会发生溢出情况。若加法结果为0,或者其符号位为1(负数),则取1;否则,若加法结果大于126,则取126。其它情况取它本身。这个函数的结果前上下文状态概率为7位原码。决定当前状态概率下标和当前大概率符号值时,若前上下文状态概率最高位为0(小于等于63),则当前状态概率下标等于前上下文状态概率低6位取反,当前大概率符号值为0;反之,当前状态概率下标等于前上下文状态概率低6位,当前大概率符号值为1。
解码引擎装置主要执行在解码一个片的开始或者解到原始数据宏块后进行解码引擎寄存器初始化,在解码过程中根据分支解码标记信息和上下文模型信息(当前状态概率下标和当前大概率符号值)来从普通解码模式,等概率解码模式和终止解码模式这三种解码模式中选择其中一种对每个符号值进行解码,解码完成后根据解码结果来决定是否对解码引擎寄存器进行更新,重归一化或者重新初始化,并且输出本次解码所使用的码流比特数。
本发明基于上下文自适应二进制算术解码器通过算术解码器控制装置来与外部模块进行命令,相邻信息和语法元素值的交换,简化了整个解码器与外部的接口;通过数据接口装置来与外部进行码流交互,减少了解码器与外部码流交互的次数;通过符号下标及上下文下标增量计算装置来快速计算符号下标和上下文下标增量;上下文管理装置使用了一个16X2048的片内只读存储器(ROM)来存储初始化上下文所需要的两个初始化参数,使用一个7X512的片内随机存储器(RAM)来存储当前状态概率下标和当前大概率符号值,并且设计了一个可流水线操作的初始化计算模块,从而实现了对上下文初始化的流水线操作,提高了运算速度,实现了快速的上下文选择和更新操作;同时,解码引擎装置可进行三种解码模式的解码,既节省了硬件开销,也加快了解码速度;符号检测装置可以对所有语法元素类型的符号值进行检测,使得本发明能够加快解码速度,满足对解码速度较高的要求。
权利要求
1.一种基于上下文自适应二进制算术解码器,其特征在于所述解码器包括算术解码器控制装置、数据接口装置、符号下标及上下文下标增量计算装置、上下文管理装置、解码引擎装置和符号检测装置,其中,算术解码器控制接口装置接收外部命令和相邻块信息,将语法元素第一个符号的上下文下标增量送至符号下标及上下文下标增量计算装置,并在解码完成后返回解得的语法元素值;数据接口装置缓存当前待解码流并在解完每个语法元素后都请求FIFO把已用码流移走;符号下标及上下文下标增量计算装置确定符号下标,以及确定所述符号下标对应的上下文下标增量;上下文管理装置根据所述上下文下标增量取出相对应的当前状态概率下标和当前大概率符号值送至解码引擎装置,并将更新好的当前状态概率下标和当前大概率符号值存入其原来的位置;解码引擎装置在开始解码一个片或者解码出一个原始数据的宏块类型时进行解码引擎寄存器初始化,在解码过程中根据当前解码模式以及当前状态概率下标和当前大概率符号值解码出一个符号值,并进行解码引擎寄存器更新和初始化,输出所使用码流的比特数;符号检测装置对解码引擎解出来的一系列符号值进行检测,同时发出语法元素解码结束命令或解后缀命令。
2.如权利要求1所述的解码器,其特征在于所述外部命令是外部解析器模块的命令。
3.如权利要求1所述的解码器,其特征在于算术解码器控制装置包括控制残差块解码的残差控制装置和计算语法元素第一个符号的上下文下标增量的首符号上下文下标增量计算装置。
4.如权利要求1所述的解码器,其特征在于上下文管理装置包括存储初始化参数的值的初始化ROM;生成RAM的地址的地址生成器;根据片亮度量化因子和所述初始化参数的值得到上下文模型的当前状态概率下标和当前大概率符号值的初始化计算模块;存储当前状态概率下标和当前大概率符号值的状态概率指针RAM。
5.如权利要求4所述的解码器,其特征在于地址生成器根据上下文下标增量、残差块类型和语法元素类型计算出RAM的地址。
6.如权利要求4所述的解码器,其特征在于所述地址生成器在上下文初始化阶段生成RAM地址作为高位地址,初始化因子的值为低位地址,共同组成ROM的地址。
7.如权利要求5或6所述的解码器,其特征在于所述RAM地址和上下文模型下标号对应。
8.如权利要求1所述的解码器,其特征在于解码引擎装置包括普通解码模式,等概率解码模式和终止解码模式。
9.如权利要求8所述的解码器,其特征在于等概率解码模式直接由算术解码器控制装置启动解码引擎。
10.如权利要求1所述的解码器,其特征在于解码后缀时由符号检测装置发命令通知算术解码器控制装置并请求启动新的解码过程。
全文摘要
一种基于上下文自适应二进制算术解码器,所述解码器包括算术解码器控制装置、数据接口装置、符号下标及上下文下标增量计算装置、上下文管理装置、解码引擎装置和符号检测装置,通过算术解码器控制装置来与外部模块进行命令,相邻信息和语法元素值的交换,简化了整个解码器与外部的接口;通过数据接口装置来与外部进行码流交互,减少了解码器与外部码流交互的次数;通过符号下标及上下文下标增量计算装置来快速计算符号下标和上下文下标增量;同时,解码引擎装置可实现多种模式的解码,既节省了硬件开销,也加快了解码速度,满足对解码速度较高的要求。
文档编号H04N7/26GK1909660SQ20051002856
公开日2007年2月7日 申请日期2005年8月5日 优先权日2005年8月5日
发明者黄勇泉, 何辉, 冯炜, 万建军 申请人:上海富瀚微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1