专利名称:内容可适性二元算数编码的译码装置及其译码方法
技术领域:
本发明有关于一种译码装置,特别是指一种内容可适性二元算数编码
(Context-based Adaptive Binary Arithmetic Coding,以下简称CABAC )的译
码装置及其译码方法。
背景技术:
H.264/AVC是近年来所发展的一种视频压缩标准,其使用了一些进阶的 编码技术,以提供比现有的视频压缩标准(例如,MPEG-l、 MPEG-2、 H.263 等)更优异的压缩效能。
在H.264/AVC中,采用内容可适性可变长度编码(Context-based Adaptive Variable Length Coding,以下简称CAVLC)技术或CABAC技术来进行熵 (Entropy)编码,以提升其编码效率。其中,CABAC技术比CAVLC技术高 出约10%的编码效率,但其编码/译码的计算复杂度也相对较高。在CABAC 的译码过程中,输入的位字符串至少须需要经过初始化步骤与算数译码步骤, 以完成译码的程序;而初始化步骤与算数解码步骤所需的总体时间实际上相 当的长,对于译码系统的效能上来说,仍有不少的影响。故,有必要寻求一 解决之道,来降低CABAC解码处理中的延迟(Latency),以提高译码系统的 整体效能。
发明内容
因此,本发明的目的之一,在于提供一种CABAC译码装置与其译码方 法,以增加译码系统整体的效能。
本发明的CABAC译码装置包含一初始化模块、 一储存模块、 一算数译 码模块,及一更新模块。初始化模块用于初始化多个内容变量(context variable ),且在宏区块层级(Macroblock level)的位字符串就绪(bit stream ready) 之前,预先地初始化这些内容变量中至少一个。储存模块用于储存这些内容 变量。算数译码模块用于根据这些内容变量,以对一语法元素进行算数译码,并输出一译码后的语法元素与一更新信号。更新^t块用于根据该更新信号更 新该储存模块内的这些内容变量中至少一个
由于,初始化模块预先地将这些内容变量计算出来并储存至该储存模块 中;因此,当位字符串就绪且欲进行算数译码时,算数译码模块可直接地自 储存模块中取出对应的内容变量,不需再等待所需内容变量的初始化,如此
一来,可降低CABAC解码处理中的延迟,并增加译码系统整体的效能。
图1为本发明的CABAC译码装置之一较佳实施例;
图2为本发明的CABAC译码方法之一流程图;及
图3a和3b为本发明的CABAC译码装置,其信号时序图。
图中标号说明如下
100 CABAC译码装置
41 初始化模块
42 储存模块
43 算数译码模块
44 更新才莫块
具体实施例方式
有关本发明之前述及其它技术内容、特点与功效,在以下配合参考附图 的一个较佳实施例的详细说明中,将可清楚的呈现。
首先,请参阅图1,图1为本发明的CABAC译码装置100的较佳实施 例,CABAC译码装置100包含一初始化模块41、 一储存模块42、 一算数译 码模块43及一更新模块44,其耦接关系如图l所示。初始化模块41用于初 始化多个内容变量。储存模块42用于储存这些内容变量。算数译码模块43 用于根据储存模块42中的内容变量,以对一语法元素进行算数译码(在本较 佳实施例中,进行二元算数译码),并输出一译码后的语法元素;例如,当 CABAC译码装置100需要译码第一语法元素时,算数译码模块43则至储存 模块42读取译码第一语法元素所需的内容变量,以对第一语法元素进行译 码,并输出一更新信号至更新模块44。然后,更新模块44则依据更新信号 动态地更新储存模块42中的内容变量。另外,算数i,码模块43可在宏区块层级(Macroblock level)的位字符串就绪(bit stream ready)之前,预先地初始化 内容变量,如此一来,当位字符串就绪且欲进行算数译码时,算数译码模块 43可直接地自储存模块42中取出对应的内容变量,以减少CABAC译码处理 中的延迟。
初始化^1块41依据本发明的一实施例,包含一查询单元45与一运算单 元46,其中,查询单元45可依据一索引值(cabac—initjdc )查询一预定的查 询表以得出 一初始参数组(m, n);接着,运算单元46则对一片量化参数(Slice Quantization Parameter, SliceQPY),及初始参数组(m, n)进行运算,以输 出内容变量;依据本发明的一实施例,内容变量包括一机率状态索引 (Probability State Index, pstateldx),及一最高才几率符号值(Value of the Most Probable Symbol, valMPS )。再者,初始化纟莫块41可依照一预定顺序初始化 这些内容变量,例如,根据片类型(Slice Type,即,I-片、P-片,及B-片) 的顺序而初始化这些内容变量,但请注意,本发明并不依此顺序为限。上述 的索引值(cabac—init—idc)、初始参数组(m, n)、片量化参数(SliceQPY )、 机率状态索引(pstateldx )、最高机率符号值(valMPS )与片类型(Slice Type )... 等参数,可参考ISO/IEC 14496-10的内容所述,故在此不另赘述。
请再参考图1与图2,图2为本发明CABAC译码方法的一流程图,其 包含下列步骤
步骤51:预先地初始化内容变量;
步骤52:储存内容变量;
步骤53:根据内容变量对语法元素进行算数译码; 步骤54:输出译码后的语法元素; 步骤55:更新内容变量;
在上述解码方法中,首先通过初始化模块41在输入的位字符串就绪(bit stream ready)之前,预先地依特定顺序初始化内容变量(步骤51),并透过 储存模块42储存内容变量(步骤52);接着,当位字符串就绪且欲进行算数 译码时,算数译码模块43可直接地自储存模块42中取出欲译码的语法元素 所需的内容变量,以进行算数译码(步骤53),并输出译码后的语法元素(步 骤54)与更新信号。最后,更新模块44则依据更新信号更新内容变量(步 骤55)。
接着,请参阅图1与图3,图3绘示CABAC译码装置100的信号时序图,假设CABAC译码装置100分别有第一、第二与第三语法元素需进行算 数译码,当位字符串就绪之前,初始化模块41则预先地进行初始化等动作, 如图3a中初始化第一、第二与第三内容变量所示;接着,当位字符串就绪后, 算数译码模块43则可直接地进行算数译码等动作,如图3a中对第一、第二 与第三语法元素进行算数译码所示。如此一来,原本CABAC解码过程所需 花费的总时间为(Tl+T2),透过本发明的机制,使得在H.264/AVC系统整体 的译码过程中,只要先经过初使化步骤后,译码每一语法元素实质上只占用 了T2的时间,可大幅的提升效能。另外,请注意,初始化模块41并不限定 于在位字符串就绪之前,将所有的内容变量都初始化完成;亦可在位字符串 就绪之后,将未初始化的部分再进行初始化的动作,如图3b所示。由于本发 明的CABAC译码装置100设置了储存模块42在初始化模块41与算数译码 模块43之间,CABAC译码装置100类似于一管线化(Pipeline)的架构,因此, 只要初始化模块41是依特定顺序进行内容变量的初始化,当初始化模块41 仍在进行初始化时,算数译码模块43所需的内容变量早已储存在储存模块 42中,故可同步地进行算数译码,以更进一步地降低初使化步骤所需时间 (T3 ,且T3 < Tl )并增加效能。
此外,虽然在本较佳实施例中,CABAC译码装置及方法应用于 11.264/八¥(:译码器中。但其观念亦可广泛用于其它利用CABAC技术的装置 或其它的译码器中,并不限于本较佳实施例所揭露。
惟以上所述者,仅为本发明的较佳实施例而已,当不能以此限定本发明 实施的范围,即只要依本发明权利要求及发明说明内容所作的简单的等效变 化与修饰,都仍属本发明专利涵盖的范围内。
权利要求
1.一种内容可适性二元算数编码的译码装置包含一初始化模块,用以初始化多个内容变量;一储存模块,耦接至该初始化模块,用以储存这些内容变量;一算数译码模块,耦接至该储存模块,用以根据这些内容变量,以对一语法元素进行算数译码,并输出一译码后的语法元素与一更新信号;以及一更新模块,耦接于该算数译码模块,用以根据该更新信号更新该储存模块内的这些内容变量中至少一个;其中,该初始化模块在一位字符串就绪之前,预先地初始化这些内容变量中至少一个。
2. 如权利要求1所述的译码装置,其中该初始化模块,包含 一查询单元,用以依据一索引值查询一预定的查询表,以输出一初始参数组;以及一运算单元,耦接至该查询单元,用以对该初始参数组与一片量化参数 进行运算,以输出该内容变量。
3. 如权利要求1所述的译码装置,其中每一内容变量包含一机率状态索 引,及一最高机率符号值。
4. 如权利要求1所述的译码装置,其中该初始化模块依一预定顺序,以初始化每一内容变量。
5. 如权利要求4所述的译码装置,其中该特定顺序根据一片类型而决定。
6. 如权利要求5所述的译码装置,其中该片类型分为一I-片、一P-片, 及一 B-片。
7. 如权利要求1所述的译码装置,用于一H,264/AVC系统中。
8. —种译码方法,应用于一内容可适性二元算数编码的译码装置中,该译码方法包含下列步骤 初始化多个内容变量; 储存这些内容变量;根据这些内容变量,以对一语法元素进行算数译码,并输出一译码后的 语法元素与一更新信号;以及根据该更新信号更新这些内容变量中至少一个;其中,初始化步骤在一位字符串就绪之前,预先地初始化这些内容变量 中至少一个。
9. 如权利要求8所述的解码方法,其中初始化步骤,更包含 依据一索引值查询一预定的查询表,以输出一初始参数组;以及 对该初始参数组与 一片量化参数进行运算,以输出该内容变量。
10. 如权利要求8所述的解码方法,其中每一内容变量包含一机率状态 索引,及一最高机率符号值。
11. 如权利要求8所述的解码方法,其中该初始化步骤依一预定顺序, 以初始化每一内容变量。
12. 如权利要求11所述的解码方法,其中该特定顺序根据一片类型而决定。
13. 如权利要求12所述的解码方法,其中该片类型分为一I-片、一P-片,及一B-片。
14. 如权利要求13所述的解码方法,用于H.264/AVC系统中。
全文摘要
本发明涉及内容可适性二元算数编码的译码装置及其译码方法。一种译码方法,应用于一CABAC的译码装置中,该译码方法包含下列步骤初始化多个内容变量;储存内容变量;根据内容变量,以对一语法元素进行算数译码,并输出一译码后的语法元素与一更新信号;以及根据该更新信号更新内容变量中至少一个。其中,初始化步骤在宏区块层级的位字符串就绪之前,预先地初始化内容变量中至少一个。
文档编号H04N7/26GK101562455SQ20091000670
公开日2009年10月21日 申请日期2009年2月13日 优先权日2008年4月18日
发明者庄凯文, 蔡志宏, 谢兆安 申请人:瑞昱半导体股份有限公司