算术解码方法和设备的制作方法

文档序号:7512431阅读:195来源:国知局
专利名称:算术解码方法和设备的制作方法
技术领域
本发明涉及一种用于解码根据上下文算术编码方法(context arithmetic coding method)编码的元素的方法和设备,所述编码的元素以数据流的形式 出现。
背景技术
法的领域是已知的,并且算术编码方法使得具体地利用非整数位数可以编码 数据项或语法元素(例如,运动矢量)。因此,与霍夫曼编码所允许的相反, 同一位可包含涉及两个不同语法元素的信息。在此情况下,这样的位被称为 分数位。
也以名称MPEG-4第10部分或MPEG-4 AVC而为人所知的H.264视频 编码标准^提出了熵编码方法,该熵编码方法是以名称CABAC( "Context-based Adaptive Binary Arithmetic Coding (基于上下文的自适应二进制算术编码)") 而为人所知的上下文算术编码方法。在先前编码的值影响当前语法元素的编 码情况下,该编码方法是自适应的。为了改进用于在熵解码的步骤和随后处 理(例如,逆量化)之间对语法元素进行解码的时间,并因而减少所需要的 存储器大小,期望至少部分地将上下文算术解码方法并行化,由于所述解码 方法的串行性质(sequential nature ),该并行化相对复杂。

发明内容
本发明旨在减轻现有技术的至少一个缺点。更具体地,本发明涉及一种 用于解码^4居如CABAC的算术编码方法编码的元素的方法,该编码的元素 以二进制流的形式出现。所述方法基于分别定义间隔的下限(CodIOffset0) 和大小(CodIRange)的第一和第二预定义的解码参数,将所述二进制流的至 少一部分解码为一组元素,该组元素包括前缀(P2)和后缀(S2),前缀(P2) 包括具有预定相同值的n个第一元素,后缀(S2)包括m个第二元素,m按
4照预定函数依赖于n,所述前缀(P2 )和所述后缀(S2 )由被称为主元(pivot) (P)的元素分离开来,所述方法包括以下步骤
-基于所述第一和第二解码参数并且基于所述二进制流中被称为k个第 一位的k个连续位的值,通过并行计算来确定n的值,k为大于或等于n的 预定整数,以便从其推导出所述前缀(P2)和m的值;以及
-基于所述第一和第二解码参数并且基于所述二进制流中跟随在所述k 个第一位中的n个第一位之后的m个连续位的值,通过并行计算来确定后缀 (S2)。
优选地,所述n个第一元素、主元(P)和所述m个第二元素是位。 根据特定实施例,确定n的值,使得n为满足以下关系的最小整数 2nCodIOffset。+val(n)-(2n-1 )*CodIRange<CodIRange 其中,val(n)是对应于所述二进制流的n个第一位的值; CodIOffseto是定义所述间隔的下限的第一参数的值;以及 CodIRange是定义所述间隔的大小的第二参数的值。 此外,确定后缀(S2 ),使得其值等于商(2nCodIOffsetQ+val(n) ) / CodIRange。
本发明还涉及一种用于解码根据如CABAC的算术编码设备编码的元素 的设备,所述编码的元素以二进制流的形式出现。所述设备基于分别定义间 隔的下限(CodIOffseto)和大小(CodIRange)的第一和第二预定义的解码参 数,将所述二进制流的至少一部分解码为一组元素,该组元素包括前缀(P2) 和后缀(S2),前缀(P2)包括具有预定相同值的n个第一元素,后缀(S2) 包括m个第二元素,m按照预定函数依赖于n,所述前缀(P2 )和所述后缀 (S2)由被称为主元(P)的元素分离开来。所述设备(104)包括
-用于基于所述第一和第二解码参数并且基于所述二进制流中被称为k 个第一位的k个连续位的值来确定n的值的并行操作的装置,k为大于或等 于n的预定整数,以便从其推导出所述前缀(P2)和m的值;以及
-用于基于所述第一和第二解码参数并且基于所述二进制流中跟随在所 述k个第一位中的n个第一位之后的至多m个连续位的值来确定后缀(S2) 的并行操作的装置。
优选地,所述用于确定后缀(S2)的装置包括硅上除法器(on-silicon divider )。有利地,所述解码设备还包括用于串接所述前缀P2、所述主元P和所述 后缀S2的装置。
优选地,其特征在于,所述解码设备还包括用于将所述二进制流移动等
于m+n+l的整数位数的装置。
本发明还涉及一种计算机程序产品,它包括当所述程序在计算机上执行 时、用于执行根据本发明的方法的各步骤的程序代码指令。


参照附图,将通过完全非限制的有利示例性实施例和实现模式更好地理
解和说明本发明,附图中
图1图示根据现有技术的对被称为"位元(bin)"的位进行解码的方法,
所述"位元(bin)"表示以根据H.264标准的、被称为旁路模式的特定模式
编码的语法元素或该元素的一部分;
图2表示展现某种规则性的特定语法元素的位元;
图3以模块形式表示根据本发明的上下文算术解码设备;
图4表示由图3表示的上下文算术解码设备的模块的一部分;
图5表示由图4表示的解码设备的一部分的第一计算模块;
图6表示由图5图示的模块的第一计算块;
图7表示由图5图示的模块的第二计算块;
图8表示由图5图示的模块的第三计算块;
图9表示由图4表示的解码设备的一部分的第二计算模块;以及 图IO表示由图4表示的解码设备的一部分的第三计算模块。
具体实施例方式
在当激活CABAC上下文算术编码模式时根据H.264标准解码一系列图 像的应用框架内描述本发明。在一系列图像的编码期间,例如运动矢量的某 些语法元素频繁地出现。因此能够以有效的方式解码它们是非常重要的。为 此,本发明的目的在于至少部分地将用于对先前由如CABAC的上下文算术 编码方法编码的数字数据进行解码的方法并行化。
根据H.264标准,语法元素不直接由算术编码方法编码。具体地,在被 称为二进制化步骤的第一编码步骤期间,通过使用包括被称为"位元"的位的可变长度码来编码语法元素,以借助于在ISO/IEC MPEG和ITU-T VCEG 的参考编号为JVT-M050d4的、题为"Draft of version 4 of H.264/AVC (ITU-T Recommendation H.264 and ISO/IEC 14496-10 (MPEG-4 part 10) Advanced Video Coding)"的文献中定义的表格和/或方法将它们与最终的数据流的位区 分开来。在第二步骤期间,因此生成的位元组被上下文算术编码方法编码为 一组位,该组位是编码数据流(位流)。此时,与传统熵解码方法(例如,如 在MPEG-2标准的框架内所使用的方法)相反,如在H.264标准的框架内使 用的熵解码方法包括下面的步骤
-读取编码数据流中的一定数量的位;
-基于这些位,在上下文算术解码步骤期间,以串行方式生成表示语法 元素(如,例如DCT系数或矢量分量)的连续位或位元的第二流;以及
-基于在之前的步骤期间生成的位元生成语法元素。 解码方法的最后步骤被称为去除二进制化(debinarization )步骤。给定 数量的位可以被变换为许多不同的位元。这些位元^皮存储和编译,以便恢复 完整的语法元素的值。应当注意到,当语法元素值已经被解码时,可能基于 该相同的最后位继续提取之后的语法元素的信息。在H.264标准的情况下,
(称为"旁路bypass"模式)。编码方法然后将被称为bypassFlag的特定参数 的值设置为1。该参数的值作为根据本发明的解码方法必须解码的语法元素 的类型的函数,由根据本发明的解码方法确定。具体地,H.264标准指定给 定的语法元素是以降级模式还是非降级模式编码。降级模式具体用于编码其 分布大致均匀的语法元素或这样的元素的一部分。图2表示至少一部分根据 降级模式编码的语法元素的位元(例如,在H.264标准中定义的运动矢量 mvd—10和mvd—II以及系数coef—abs—level—minusl )。例如,才艮据H.264标准, 运动矢量语法元素的后缀SI和系数coef—abs—level—minusl的后缀SI以该降 级模式编码。对于运动矢量,后缀S1的位元跟随在前缀P1的前9个位元之 后。对于系数coef—abs—level—minus 1,后缀SI的位元跟随在前缀PI的前14 个位元之后。如果这样的语法元素的值小于某些值(依赖于前缀P1中的位元 的数量),则可能没有后缀S1。根据如在文献JVT-M050d4中描述的传统的上 下文算术解码方法来解码以非降级才莫式(即,bypassFlagK))编码的前缀Pl。 根据本发明的方法来解码后缀S1 。图1表示根据现有技术并且在文献JVT-M050d4中描述的解码方法。该 方法使得可以生成表示以降级模式编码的语法元素或这样的元素的 一部分的 一系列位元。在文献JVT-M050d4中定义了所使用的运算符运算符'<<, 是"左移"运算符,运算符'1,是"或(OR)"运算符,并且运算符'&, 是"与(AND)"运算符。函数val(m)返回通过在编码数据流中"读取m位" 所获得的值。表征算术解码器的当前状态的解码参数CodIOffsetQ和CodIRange 分别定义间隔的下限和大小。这些解码参数在图像中每个码片的开始处被初 始化CodlOffset『0,并且CodIRange=l。 binVal表示当前位元的值。通过运 行图1所示的方法,即,通过连续若干次应用该方法,我们得到在每次迭代 处遇到的所有可能分支(是和否分支)的先验组合。然而,在解码所考虑的 语法元素(即,运动矢量和系数)的后缀S1的情况下,可以通过将该方法并 行化来简化该方法。具体地,表示这些后缀S1的一系列位元不是随机的。它 们展现出规则性,具体地,它们包括
-包括值为'1,的一系列n个位元的前缀P2;
-净皮称为主元并且4皮标记为P的位元'0,;以及
-包括随机的一系列m个位元的后缀S2,其中m根据例如nn+n。的预 定函数而依赖于n, n。是其值已知并依赖于当前语法元素的整数。 通过运行k次根据现有技术的方法,得到下面的k个关系 1阶关系
CW/聯",=(2 x Co郝,o + va/(1)) - Co淑a, 2阶关系
CW/0炎"2 = (2 x Co郝炎"! + ra/(1)) — Co观a"ge
=(2 x 0 必0,,0 + va/(2)) - (22 - 1)c。淑a"ge
3阶关系
Cod曙s"3 = (23 x Co栃,"o + va,(3)) - (23 - l]CocZ衡"ge k阶关系
Co必O,a = (2A x Oj栃,"o + va/(/t)) - (24 _ 1)C。孤a"ge
因此,在步骤1期间可能仅基于CodIOffseto和CodIRange的值来确定主 元P的位置,即,n的值,并因此确定后缀S2的长度m。具体地,精确满足 关系CodIOffsetp<CodIRange的最小索引p确定主元的位置。假设P2的第一位元的索引是零,则p-n。已知p总是小于k(例如,k=14),为了确定该值, 并行计算CodIOffsetk的k个值并且将所有这些值与CodIRange比较即可。在 完成该步骤之后,更新CodlOffset。的值CodIOffsetQ= CodIOffsetp。随后,我 们考虑在第p位之后的数据流以确定值val(l)…val(m)。
在已经确定主元P的位置p之后,仍要在步骤2期间生成从而重建后缀 Sl中的后缀S2的位元的数量m是已知的m=n+nQ。然而,这些位元的每个 的值仍然要在该第二步骤期间确定。通过再将根据现有技术的方法运行m次, 得到以下m个关系
CW/晰e,' = 21 x CoW(9,0 + va/(1) - 6。Co淑a"ge
。譜#"2 = 22 x CW/0,"。 + ra/(2) - (2 x 60 + 6, )Co譜cr"ge
CW/(9炎"3 = 23 x CW/聯"o + va/(3) - (22 x 60 + 2 x 、 + 62 )c。淑a"ge
Co郝,《=2m x CW/0炎"。+ ra/(附)-C。6 脸,x (2"-1 x 60 + 2" x & +…+ 6",一,) i殳a = 2m Co必Q^"。 + va/(m)以及5 = [2m-16。 + 2W_2 6, +…+ 、一] 。 a是依赖于IW居;充的 m位的值的常数,m已知,并且CodIOffsetQ的值也已知。此外,该标准设定 值CodIOffsetm小于CodIRange。
由此,B等于商oc/CodlRange,并且CodIOffsetm为该除法的余数,因为 a = Coc/汉a"ge x S + Cod/Q^"m并且CoWO炎《< CotW a"ge 。因此,才艮据H.264标 准,最大次数地从值a中减去值CodIRange。
已经在步骤1期间确定主元的位置以及因此确定前缀P2,之后,已经在 步骤2期间确定后缀S2的位元的值,即值B,后缀S1完全由P2、 S2以及主 元的串接确定。在完成步骤1和2后,不修改CodIRange的值,并且利用 CodIOffsetm的值更新CodIOffsetQ的值。这些可能被更新的CodIRange和 CodIOffsetQ的值是无论在降级模式还是在非降级模式下、当再次使用上下文 算术编码方法来解码位元时都将使用的那些值。
本发明还涉及实现根据本发明的算术解码方法的上下文算术解码设备 10。在后面的附图中,所示的各模块是可以对应于或可以不对应于物理可分 离的单元的功能单元。例如,这些模块或其中的一些可以被组合到一起以作 为单个组件,或构成同一个软件的功能。相反,某些模块可能包括分离的物 理实体。参照图3,解码设备10具体包括监视模块100,其任务在于监视整 个数据路径。监视模块100例如采取状态机(FSM-"有限状态机")的形式。解码设备IO还包括模块101,其使得可以基于相邻数据选择在图3中被标记 为cts—mem的存储器中存储的上下文。解码设备10此外还包括算术解码模块 102,其实现之前描述的根据本发明的解码方法。为了使流水线处理的这两个 阶段同步,解码设备10包括位于监视模块100和算术解码模块102之间的寄 存器R。算术解码模块102将可能读取存储器cts—mem中的上下文值,并且 基于作为输入接收的数据流而生成位元。它还将更新存储器cts一mem中的上 下文。该位元被传输到去除二进制化模块103。它还向外部移位器分派移动 命令,该外部移位器将数据流移动一定位数。去除二进制化模块103使得可 以基于由算术解码器102生成的位元来生成语法元素。
算术解码模块102包括实现由所述标准提出的传统的算术解码方法的第
样的元素的一部分的位元(即,运动矢量的后缀和系数coef—abs—level—minus 1 ) 之外的位元进行解码。算术解码模块102还包括实现根据本发明的方法的、 图4中表示的第二模块104。模块104具体包括第一计算模块20,其使得可 以根据按照本发明的方法的步骤1来计算主元P的位置,以便生成后缀SI 的前缀P2、并且计算a的值。它还包括计算模块21,其使得可以将a除以参 数CodIRange,从而计算后缀S2的值和CodIOffset。的新值。该计算模块21 例如是硅上除法器。模块104还包括在图9中表示的串接模块22,其使得通 过串接由计算模块20生成的前缀P2、主元P和由计算模块21生成的后缀S2 可以生成后缀S1。模块104包括在图10中表示的、使得可以计算整数位数 (m+n+l )的模块23,所述数量被传输到负责将数据流移动该位数的移位器。
图5中表示的计算模块20包括图6中表示的第一计算模块200,其使得 可以并行计算下面k个关系
Ca/cw/加'o"J(A:) = (2* x CW/Q^W0 + var(A) - 2* x CWZ/ a"ge)
它还包括在图7中表示的模块201,其使得通过将值0与由第一计算才莫 块200计算的k个值Calculation—l(k)比较,由此实际上是比较CodIOffsetk的 k个值与值CodIRange,来确定主元P的位置p。它还包括第一多路复用器 MP其使得可以从k个计算的值中选择值Calculation—l(p)。计算模块20还 包括在图8中表示的、使得可以计算下面k个关系的第二计算模块202:
Qj7cwto/ow — 2(A:) -CW/Q^J"0 + var(A)
它还包括使得可以从k个所计算的值中选择值Calculation一2(m)的多路复用器M2,在确定了主元的位置后m的值是已知的。等于Calculation—2(m)的 参数a的值被计算模块21用来计算后缀S2的值以及偏移量CodIOffseto的新值。
当然,本发明不限于上述示例性实施例。具体地,本领域技术人员可对 这里提出的实施例引入任何变型,并且将它们组合以从其各种优点受益。在 视频数据的框架内描述的本发明不限于该种类型的数据,并且具体可应用于 音频、语音类型的数据。本发明也不限于H.264标准,具体可应用于实现按 照H.264的上下文算术编码方法的其他标准。
权利要求
1. 一种用于对根据如CABAC的算术编码方法编码的元素进行解码的方法,所述编码的元素以二进制流的形式出现,所述方法基于分别定义间隔的下限(CodIOffset0)和大小(CodIRange)的第一和第二预定义的解码参数,将所述二进制流的至少一部分解码为一组元素,该组元素包括前缀(P2)和后缀(S2),前缀(P2)包括具有预定相同值的n个第一元素,后缀(S2)包括m个第二元素,m按照预定函数依赖于n,所述前缀(P2)和所述后缀(S2)由被称为主元(P)的元素分离开来,所述方法的特征在于,它包括以下步骤基于所述第一和第二解码参数并且基于所述二进制流的被称为k个第一位的k个连续位的值,通过并行计算来确定n的值,k为大于或等于n的预定整数,以便从其推导出所述前缀(P2)和m的值;以及基于所述第一和第二解码参数并且基于所述二进制流中跟随在所述k个第一位中的n个第一位之后的m个连续位的值,通过并行计算来确定后缀(S2)。
2. 如权利要求1所述的方法,其特征在于所述n个第一元素、主元(P) 和所述m个第二元素是位。
3. 如权利要求2所述的方法,其特征在于确定n的值使得n为满足以 下关系的最小整数2nCodIOffset。+val(n)-(2n-l)*CodIRange<CodIRange 其中,val(n)是对应于所述二进制流的n个第一位的值; CodlOffset。是定义所述间隔的下限的所述第一参数的值;以及 CodIRange是定义所述间隔的大小的所述第二参数的值。
4. 如权利要求3所述的方法,其特征在于确定后缀(S2)使得其值等 于商(2nCodIOffset。+val(n)) /CodlRange。
5. —种用于对由如CABAC的算术编码设备编码的元素进行解码的设备 (104),所述编码的元素以二进制流的形式出现,所述设备基于分别定义间隔的下限(CodIOffseto)和大小(CodlRange)的第一和第二预定义的解码参 数,将所述二进制流的至少一部分解码为一组元素,该组元素包括前缀(P2) 和后缀(S2),前缀(P2)包括具有预定相同值的n个第一元素,后缀(S2) 包括m个第二元素,m按照预定函数依赖于n,所述前缀(P2 )和所述后缀(S2)由被称为主元(P)的元素分离开来,所述设备(104)的特征在于, 它包括用于基于所述第一和第二解码参数并且基于所述二进制流的被称为k个 第一位的k个连续位的值来确定n的值的并行操作的装置(20, 200, 201 ), k为大于或等于n的预定整数,以便从其推导出所述前缀(P2)和m的值; 以及用于基于所述第一和第二解码参数并且基于所述二进制流中跟随在所述 k个第一位中的n个第一位之后的至多m个连续位的值来确定后缀(S2)的 并行操作的装置(20, 200, 202, 21)。
6. 如权利要求5所述的设备,其特征在于所述用于确定后缀(S2)的 装置包括硅上除法器(21)。
7. 如权利要求6所述的设备,其特征在于所述解码设备(104)还包 括用于串接所述前缀P2、所述主元P和所述后缀S2的装置(22)。
8. 如权利要求7所述的设备,其特征在于所述解码设备(104)还包 括用于将所述二进制流移动等于m+n+l的整数位数的装置(23)。
9. 一种计算机程序产品,其特征在于,它包括当所述程序在计算机上执 行时、用于执行根据权利要求1到4中的任一项的方法的步骤的程序代码指 令。
全文摘要
本发明涉及一种用于对按照如CABAC的算术编码方法编码的元素进行解码的方法。该方法基于第一和第二解码参数CodIOffset<sub>0</sub>和CodIRange,将所述二进制流的至少一部分解码为一组元素,该组元素包括前缀(P2)和后缀(S2),前缀(P2)包括n个第一元素,后缀(S2)包括m个第二元素,所述前缀(P2)和所述后缀(S2)由被称为主元(P)的元素分离开来。所述方法包括以下步骤基于所述第一和第二解码参数并且基于所述二进制流的被称为k个第一位的k个连续位的值来确定n的值,以便从其推导出所述前缀(P2)和m的值;以及基于所述第一和第二解码参数并且基于所述二进制流中跟随在所述k个第一位中的n个第一位之后的m个连续位的值来确定后缀(S2)。
文档编号H03M7/40GK101427583SQ200780014135
公开日2009年5月6日 申请日期2007年4月5日 优先权日2006年4月18日
发明者克里斯托弗·乔利维特, 吉尔达斯·科克里尔, 让-克里斯托弗·勒兰, 迈克尔·福萨德 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1