《CAVLC解码方法和系统.pdf》由会员分享,可在线阅读,更多相关《CAVLC解码方法和系统.pdf(17页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102740066 A (43)申请公布日 2012.10.17 C N 1 0 2 7 4 0 0 6 6 A *CN102740066A* (21)申请号 201110089253.7 (22)申请日 2011.04.01 H04N 7/26(2006.01) (71)申请人富士通株式会社 地址日本神奈川县 (72)发明人王琪 (74)专利代理机构北京东方亿思知识产权代理 有限责任公司 11258 代理人宋鹤 (54) 发明名称 CAVLC解码方法和系统 (57) 摘要 公开了一种CAVLC解码方法和系统。该方 法通过以下处理在一个时钟周期内完成对两个 连续的Le。
2、vel语法元素的解码:利用用于语法 元素Level的查找表找出第(2n-1)个Level语 法元素的前缀长度和前缀码,利用第(2n-1)个 Level语法元素的前缀码、后缀码和后缀长度获 取第(2n-1)个Level语法元素的幅值代码,根据 第(2n-1)个Level语法元素的幅值代码获取第 (2n-1)个Level语法元素所对应的系数幅值;利 用第(2n-1)个Level语法元素的前缀长度和后缀 实际长度找出第2n个Level语法元素的代码起始 位置,利用用于语法元素Level的查找表找出第 2n个Level语法元素的前缀长度和前缀码,根据 第2n个Level语法元素的前缀码,后缀码和后缀 。
3、长度获取第2n个Level语法元素的幅值代码,根 据第2n个Level语法元素的幅值代码获取第2n 个Level语法元素所对应的系数幅值。 (51)Int.Cl. 权利要求书3页 说明书10页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 10 页 附图 3 页 1/3页 2 1.一种CAVLC解码方法,包括对输入码流中的语法元素Coeff_token、Trailing_ones_ sign、Level、Total_zeros、以及Run_before进行解码,其中,通过以下处理在一个时钟周 期内完成对两个连续的Level语法元素的解码: 利。
4、用用于语法元素Level的查找表找出第(2n-1)个Level语法元素的前缀长度和 前缀码,利用第(2n-1)个Level语法元素的前缀码、后缀码和后缀长度获取第(2n-1)个 Level语法元素的幅值代码,并且根据第(2n-1)个Level语法元素的幅值代码获取第 (2n-1)个Level语法元素所对应的系数幅值,其中,第(2n-1)个Level语法元素的后缀长 度是根据第2(n-1)个Level语法元素所对应的系数幅值的绝对值、以及第2(n-1)个Level 语法元素的后缀长度计算得出的,n为不小于1的整数;以及 利用第(2n-1)个Level语法元素的前缀长度和后缀实际长度找出第2n个L。
5、evel语 法元素的代码起始位置,利用用于语法元素Level的查找表找出第2n个Level语法元素 的前缀长度和前缀码,根据第2n个Level语法元素的前缀码、后缀码和后缀长度获取第 2n个Level语法元素的幅值代码,并且根据第2n个Level语法元素的幅值代码获取第2n 个Level语法元素所对应的系数幅值,其中,第2n个Level语法元素的后缀长度是根据第 (2n-1)个Level语法元素所对应的系数幅值的绝对值、以及第(2n-1)个Level语法元素的 后缀长度计算得出的。 2.根据权利要求1所述的CAVLC解码方法,其特征在于,在对语法元素Level进行解 码之前,利用由用于语法元素。
6、Coeff_token的查找表和用于语法元素Trailing_ones_sign 的查找表组合而成的第一组合查找表,在一个时钟周期内完成对语法元素Coeff_token和 所有Trailing_ones_sign语法元素的解码。 3.根据权利要求1所述的CAVLC解码方法,其特征在于,在输入码流是对44系数块 进行CAVLC编码得出的码流的情况下,通过以下处理完成对语法元素run_before的解码: 判断是否存在与m+1个连续的非零系数相对应的run_before语法元素,其中,第k至 k+m-1个连续的非零系数之间不存在零系数,并且第k+m-1个非零系数与紧随第k+m-1个非 零系数之后的。
7、第k+m个非零系数之间存在零系数,其中,k和m均为大于0的整数; 如果存在,则在一个时钟周期内完成对与所述第k至k+m个非零系数相对应的run_ before语法元素的解码,否则在一个时钟周期内完成对所述第k和k+1个非零系数所对应 的run_before语法元素的解码, 在下一个时钟周期内,重复以上所述的判断以及解码操作,直至所有run_before语法 元素解码完成。 4.根据权利要求1所述的CAVLC解码方法,其特征在于,在输入码流是对22系数块 进行CAVLC编码得出的码流的情况下,利用由用于语法元素Total_zeros的查找表和用于 语法元素Run_before的查找表组合而成的第。
8、二组合查找表,在一个时钟周期中完成对语 法元素Total_zeros以及所有Run_before语法元素的解码。 5.根据权利要求3所述的CAVLC解码方法,其特征在于,在输入码流是对44系数块 进行CAVLC编码得出的码流的情况下,在对语法元素Run_before进行解码之前,利用用于 语法元素Total_zeros的查找表,在一个时钟周期内完成对语法元素Total_zeros的解码。 6.一种CAVLC解码系统,用于对输入码流中的语法元素Coeff_token、Trailing_ones_ sign、Level、Total_zeros、以及Run_before进行解码,所述解码系统包括双L。
9、evel解码单 权 利 要 求 书CN 102740066 A 2/3页 3 元,用于在一个时钟周期内完成对两个连续的Level语法元素的解码,所述双Level解码单 元包括: 第一Level解码模块,被配置为利用用于语法元素Level的查找表找出第(2n-1)个 Level语法元素的前缀长度和前缀码,利用第(2n-1)个Level语法元素的前缀码、后缀码 和后缀长度获取第(2n-1)个Level语法元素的幅值代码,并且根据第(2n-1)个Level语 法元素的幅值代码获取第(2n-1)个Level语法元素所对应的系数幅值,其中,第(2n-1)个 Level语法元素的后缀长度是根据第2(n-1。
10、)个Level语法元素所对应的系数幅值的绝对 值、以及第2(n-1)个Level语法元素的后缀长度计算得出的,n为不小于1的整数;以及 第二Level解码模块,被配置为利用第(2n-1)个Level语法元素的前缀长度和后缀实 际长度找出第2n个Level语法元素的代码起始位置,利用用于语法元素Level的查找表找 出第2n个Level语法元素的前缀长度和前缀码,根据第2n个Level语法元素的前缀码、后 缀码和后缀长度获取第2n个Level语法元素的幅值代码,并且根据第2n个Level语法元素 的幅值代码获取第2n个Level语法元素所对应的系数幅值,其中,第2n个Level语法元素 的后缀长。
11、度是根据第(2n-1)个Level语法元素所对应的系数幅值的绝对值、以及第(2n-1) 个Level语法元素的后缀长度计算得出的。 7.根据权利要求6所述的CAVLC解码系统,其特征在于,还包括: Coeff_token和Trailing_ones_sign解码单元,用于在所述双Level解码单元对语 法元素Level进行解码之前,利用由用于语法元素Coeff_token的查找表和用于语法元素 Trailing_ones_sign的查找表组合而成的第一组合查找表,在一个时钟周期内完成对语法 元素Coeff_token和所有Trailing_ones_sign语法元素的解码。 8.根据权利要求6。
12、所述的CAVLC解码系统,其特征在于,还包括: run_before解码单元,用于在输入码流是对44系数块进行CAVLC编码得出的码流的 情况下,通过以下处理完成对语法元素run_before的解码: 判断是否存在与m+1个连续的非零系数相对应的run_before语法元素,其中,第k至 k+m-1个连续的非零系数之间不存在零系数,并且第k+m-1个非零系数与紧随第k+m-1个非 零系数之后的第k+m个非零系数之间存在零系数,其中,k和m均为大于0的整数; 如果存在,则在一个时钟周期内完成对与所述第k至k+m个非零系数相对应的run_ before语法元素的解码,否则在一个时钟周期内完成对所述。
13、第k和k+1个非零系数所对应 的run_before语法元素的解码, 在下一个时钟周期内,重复以上所述的判断以及解码操作,直至所有run_before语法 元素解码完成。 9.根据权利要求6所述的CAVLC解码系统,其特征在于,还包括: Total_zeros和Run_before解码单元,被配置为在输入码流是对22系数块进行 CAVLC编码得出的码流的情况下,利用由用于语法元素Total_zeros的查找表和用于语法 元素Run_before的查找表组合而成的第二组合查找表,在一个时钟周期中完成对语法元 素Total_zeros以及所有Run_before语法元素的解码。 10.根据权利要求。
14、8所述的CAVLC解码系统,其特征在于,还包括: Total_zeros解码单元,被配置为在输入码流是对44系数块进行CAVLC编码得出的 码流的情况下,在所述run_before解码单元对语法元素Run_before进行解码之前,利用用 权 利 要 求 书CN 102740066 A 3/3页 4 于语法元素Total_zeros的查找表,在一个时钟周期内完成对语法元素Total_zeros的解 码。 权 利 要 求 书CN 102740066 A 1/10页 5 CAVLC 解码方法和系统 技术领域 0001 本发明涉及视频处理领域,更具体地涉及CAVLC解码方法和系统。 背景技术 000。
15、2 CAVLC(上下文自适应变长编码)是一种用于降低比特率并充分利用统计冗余的 熵编码技术,被广泛地应用在诸如H.264之类的视频标准中。在CAVLC编码过程中,通常会 涉及以下五种语法元素的编码处理:Coeff_token、Trailing_ones_sign(为了简单,记为 T1)、Levels、Total_zeros、以及Run_before。这五种语法元素与作为编码对象的色度/亮 度系数块的相关统计信息的对应关系如下: 0003 0004 在CAVLC解码过程中,输入比特流中的符号之间的依赖性以及每个码字的码长在 该码字被解码之前的未知性对完成整个CAVLC解码过程所需的时间会产生很大。
16、影响。目 前,很多加快CAVLC解码过程的工作都集中在改善CAVLC解码效率从而加快解码速度上,并 且提出了以下三种不同的方案: 0005 1)基于模式搜索的CAVLC解码方法。在该方法中,分析比特模式和系数块之间的 相互关系,并在解码之前进行模式搜索操作;如果某个比特模式与预先定义的查找表(该 查找表存储了比特模式和系数块之间的对应关系,即根据该查找表可以找出与特定比特模 式相对应的系数块)中的一个比特模式相匹配,则可以跳过CAVLD解码过程而直接从上述 查找表中查找得出与该比特模式相对应的系数块。该方法的问题在于,预先定义的查找表 中并不能穷尽地存储比特模式和系数块之间的对应关系(这导致不。
17、能保证一定能在该查 找表中找出与某比特模式相对应的系数块),所以解码性能只能改进10。 0006 2)基于关键路径的CAVLC解码方法。在该方法中,对CAVLC解码器中的关键路径 (即,CAVLC解码器中耗时最长的解码处理)进行分析,并且通过自适应地检测输入比特流 中的连续符号来减少CAVLC解码器中的关键路径所花费的时间。在CAVLC解码器中的关键 路径所花费的时间变短的情况下,CAVLC解码器可以以更高的时钟频率进行操作,从而可以 降低CAVLC解码器完成整个解码过程所需要的时间总量。 说 明 书CN 102740066 A 2/10页 6 0007 3)基于两个非零系数之间的零系数的数目。
18、的解码方法。在该方法中,识别一串连 续的零值的run_before的码字直至紧接着这一串码字的第一个非零值的run_before码 字,并在一个时钟周期内将其全部解码。此方法在整个系数块中零值系数的个数很少甚至 没有时,能有效提升run_before语法元素的解码速度;但当量化参数(QP)增大时,即零值 系数的个数增加时,该算法的提速效果降低;并且对于色度DC(直流系数)块来说,该方法 效率也不高。 发明内容 0008 鉴于以上所述的问题,本发明提供了一种新颖的CAVLC解码方法和系统。 0009 根据本发明实施例的CAVLC解码方法,包括对输入码流中的语法元素Coeff_ token、Tra。
19、iling_ones_sign、Level、Total_zeros、以及Run_before进行解码,其中,通过 以下处理在一个时钟周期内完成对两个连续的Level语法元素的解码:利用用于语法元素 Level的查找表找出第(2n-1)个Level语法元素的前缀长度和前缀码,利用第(2n-1)个 Level语法元素的前缀码、后缀码和后缀长度获取第(2n-1)个Level语法元素的幅值代码, 并且根据第(2n-1)个Level语法元素的幅值代码获取第(2n-1)个Level语法元素所对 应的系数幅值,其中,第(2n-1)个Level语法元素的后缀长度是根据第2(n-1)个Level语 法元素所对应。
20、的系数幅值的绝对值、以及第2(n-1)个Level语法元素的后缀长度计算得出 的,n为不小于1的整数;以及利用第(2n-1)个Level语法元素的前缀长度和后缀实际长 度找出第2n个Level语法元素的代码起始位置,利用用于语法元素Level的查找表找出第 2n个Level语法元素的前缀长度和前缀码,根据第2n个Level语法元素的前缀码、后缀码 和后缀长度获取第2n个Level语法元素的幅值代码,并且根据第2n个Level语法元素的 幅值代码获取第2n个Level语法元素所对应的系数幅值,其中,第2n个Level语法元素的 后缀长度是根据第(2n-1)个Level语法元素所对应的系数幅值的绝。
21、对值、以及第(2n-1) 个Level语法元素的后缀长度计算得出的。 0010 根据本发明实施例的CAVLC解码系统,用于对输入码流中的语法元素Coeff_ token、Trailing_ones_sign、Level、Total_zeros、以及Run_before进行解码。该解码系 统包括双Level解码单元,用于在一个时钟周期内完成对两个连续的Level语法元素的解 码。该双Level解码单元包括:第一Level解码模块,被配置为利用用于语法元素Level的 查找表找出第(2n-1)个Level语法元素的前缀长度和前缀码,利用第(2n-1)个Level语 法元素的前缀码、后缀码和后缀长度。
22、获取第(2n-1)个Level语法元素的幅值代码,并且根 据第(2n-1)个Level语法元素的幅值代码获取第(2n-1)个Level语法元素所对应的系数 幅值,其中,第(2n-1)个Level语法元素的后缀长度是根据第2(n-1)个Level语法元素所 对应的系数幅值的绝对值、以及第2(n-1)个Level语法元素的后缀长度计算得出的,n为 不小于1的整数;以及第二Level解码模块,被配置为利用第(2n-1)个Level语法元素的 前缀长度和后缀实际长度找出第2n个Level语法元素的代码起始位置,利用用于语法元素 Level的查找表找出第2n个Level语法元素的前缀长度和前缀码,根据第。
23、2n个Level语法 元素的前缀码、后缀码和后缀长度获取第2n个Level语法元素的幅值代码,并且根据第2n 个Level语法元素的幅值代码获取第2n个Level语法元素所对应的系数幅值,其中,第2n 个Level语法元素的后缀长度是根据第(2n-1)个Level语法元素所对应的系数幅值的绝 说 明 书CN 102740066 A 3/10页 7 对值、以及第(2n-1)个Level语法元素的后缀长度计算得出的。 0011 根据本发明实施例的CAVLC解码方法和系统相比于传统的CAVLC解码方法和系 统,解码速度更快。 附图说明 0012 从下面结合附图对本发明的具体实施方式的描述中可以更好地。
24、理解本发明,其 中: 0013 图1示出了传统的CAVLC解码系统的框图; 0014 图2示出了根据本发明实施例的CAVLC解码系统的框图; 0015 图3示出了双level解码单元203的框图; 0016 图4示出了Run_before解码单元210对Run_before语法元素的解码过程; 0017 图5示出了重排序单元116对Run_before解码示例执行的重排序操作;以及 0018 图6示出了根据本发明实施例的CAVLC解码方法和传统的CAVLC解码方法的测试 结果。 具体实施方式 0019 下面将详细描述本发明各个方面的特征和示例性实施例。下面的描述涵盖了许多 具体细节,以便提供对。
25、本发明的全面理解。但是,对于本领域技术人员来说显而易见的是, 本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅 是为了通过示出本发明的示例来提供对本发明更清楚的理解。本发明绝不限于下面所提出 的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了相关元素、部件和算 法的任何修改、替换和改进。 0020 为了在合理的硬件开销的条件下达到最大压缩比,在最近的H.264/AVC标准中采 用了CAVLC编码方法。CAVLC编码方法引入了上下文模型概念以更精确地模拟符号概率,从 而使得压缩比进一步提高。然而,由于符号之间的相关性,CAVLC解码方法的处理速度受到 了影。
26、响。所以,需要一种高速的CAVLC解码方法和系统。 0021 在传统的CAVLC解码方法中,按照固定的顺序对语法元素Coeff_token、 Trailing_ones_sign(为了简单,记为T1)、Level、Total_zeros、以及Run_before进行标 识,并利用查找表(LUT)对这些语法元素进行解码,从而得出相应的系数块。对每个语法元 素进行解码平均需要一个时钟周期的时间。 0022 图1示出了传统的CAVLC解码系统的框图。如图1所示,传统的CAVLC解码系统 包括柱式移位器102、Coeff_token解码单元104、T1解码单元106、level解码单元108、 Tot。
27、al_zeros解码单元110、Run_before解码单元112、系数缓存器114、重排序单元116、以 及控制器118。 0023 传统的CAVLC解码系统中各功能单元的功能如下:柱式位移器102用来控制输入 到CAVLC解码系统中的比特数目。Coeff_token解码单元104、T1解码单元106、level解 码单元108、Total_zeros解码单元110、和Run_before解码单元112用于依次对语法元素 Coeff_token、T1、level、Total_zeros、和Run_before进行解码,并将解码得出的系数存储 在系数缓存器114中。重排序单元116用于对系数缓。
28、存器114中存储的系数(即,解码得 说 明 书CN 102740066 A 4/10页 8 出的系数)进行重新排序,以得出对作为编码对象的系数块进行反之字形扫描获得的一维 系数阵列。控制器118用于控制CAVLC解码系统中各功能单元102至116的操作。 0024 图2示出了根据本发明实施例的CAVLC解码系统的框图。如图2所示,根据本发明 实施例的CAVLC解码系统包括柱式位移器202、Coeff_token和T1解码单元204、双level 解码单元206、Total_zeros解码单元208、Run_before解码单元210、Total_zeros和Run_ before解码单元212。
29、、重排序单元214、以及控制器216。 0025 根据本发明实施例的CAVLC解码系统中各功能单元的功能如下:柱式位移器202 用于控制输入到CAVLC解码系统中的比特数目。Coeff_token和T1解码单元204用于在 一个时钟周期内完成对语法元素Coeff_token和T1的解码。双level解码单元206用于 在一个时钟周期内完成对两个level语法元素的解码。Total_zeros解码单元208和Run_ before解码单元210用于在语法元素Total_zeros和Run_before对应于44系数块的情 况下,完成对语法元素Total_zeros和Run_before的解码。T。
30、otal_zeros和Run_before解 码单元212用于在语法元素Total_zeros和Run_before对应于22系数块的情况下,在 一个时钟周期内完成对语法元素Total_zeros和Run_before的解码。重排序单元214用 于对解码单元204至212解码得出的系数进行重新排序,以得出对作为编码对象的系数块 进行反之字形扫描获得的一维系数阵列。控制器216用于控制CAVLC解码系统中各功能单 元202至214的操作。 0026 下面详细描述根据本发明实施例的CAVLC解码系统中各功能单元的具体操作。 0027 考虑到根据本发明实施例的CAVLC解码系统将在一个时钟周期内对多。
31、个语法元 素进行解码,所以柱式移位器202的存储宽度较长(例如,64比特)。 0028 Coeff_token和T1解码单元204利用由用于语法元素Coeff_token的查找表和用 于语法元素T1的查找表二者结合而成的组合查找表(LUT),在一个时钟周期内完成对语法 元素Coeff_token和T1的解码。这里,输入到Coeff_token和T1解码单元204的比特数 目将为19比特,其中利用用于语法元素Coeff_token的查找表对前16比特进行解析,同时 根据解析得出的语法元素Coeff_token代表的相关信息获取最多三个T1语法元素并对这 些T1语法元素进行解码。 0029 双le。
32、vel解码单元206在一个时钟周期内完成对两个level语法元素的解码。根 据Coeff_token和T1解码单元204解码得出的语法元素Coeff_token和T1代表的相关信 息,双level解码单元206可以获知后缀长度(SuffixLength)的初始值。另外,双level 解码单元206每当完成一个level语法元素的解码处理后,都会利用解码得出的level语 法元素所对应的系数幅值的绝对值来更新SuffixLength,以供双level解码单元206对下 一个level语法元素进行解码的过程中使用。 0030 图3示出了双level解码单元203的框图。如图3所示,双level解码。
33、单元203 包括前缀码(level_prefix)解析器302和310、后缀实际长度(levelSuffixSize)计算器 304和312、幅值代码(levelCode)计算器306和314、幅值(level)计算器308和316、以 及后缀长度(suffixLength)更新器318和320。 0031 其中,前缀码(level_prefix)解析器302以已解码码字后的第一个未解码码字为 起始位置,利用用于语法元素level的查找表,获取第(2n-1)个level语法元素的前缀码 (level_prefix)和前缀长度(PrefixLength);后缀实际长度(levelSuffixSi。
34、ze)计算器 说 明 书CN 102740066 A 5/10页 9 304根据由后缀长度(suffixLength)更新器320利用第2(n-1)个level语法元素所对应的 系数幅值的绝对值获取的suffixLength和第(2n-1)个level语法元素的PrefixLength, 计算第(2n-1)个level语法元素的levelSuffixSize;幅值代码(levelCode)计算器306 利用第(2n-1)个level语法元素的前缀码(level_prefix)、后缀码(level_suffix)(该 level_suffix可由第(2n-1)个level语法元素的levelSu。
35、ffixSize得出)、以及由后缀 长度(suffixLength)更新器320利用第2(n-1)个level语法元素所对应的系数幅值的绝 对值获取的suffixLength,计算第(2n-1)个level语法元素的幅值代码(levelCode);幅 值(level)计算器308利用第(2n-1)个level语法元素的levelCode,计算出第(2n-1) 个level语法元素所对应的系数幅值;然后,后缀长度(suffixLength)更新器318利用第 (2n-1)个level语法元素所对应的系数幅值的绝对值对suffixLength进行更新。同时更 新下一个待解码level码字的起始位置。
36、。 0032 对于第(2n-1)个level语法元素的解码处理与传统的level解码处理相同,但 是在根据本发明实施例的双level解码单元203中,第2n个level语法元素的解码处理 被并行进行。如图3中所示,前缀码解析器310利用接收自前缀码解析器302的第(2n-1) 个level语法元素的前缀长度(prefix_length)和接收自后缀实际长度计算器304的第 (2n-1)个level语法元素的后缀实际长度,获取第2n个level语法元素的代码起始位置, 并利用用于语法元素level的查找表,获取第2n个level语法元素的前缀码和前缀长度; 后缀实际长度计算器312利用由后缀长度。
37、(suffixLength)更新器318更新后的suffix_ length和前缀码解析器310获取的第2n个level语法元素的前缀长度(prefix_length), 计算第2n个level语法元素的levelSuffixSize。幅值代码(levelCode)计算器314利 用第2n个level语法元素的level_prefix和后缀码(level_suffix)(由第2n个level 语法元素的levelSuffixSize得出)、以及由后缀长度(suffixLength)更新器318利用 第(2n-1)个level语法元素所对应的系数幅值的绝对值获取的suffixLength,计算第。
38、2n 个level语法元素的幅值代码(levelCode);然后,幅值(level)计算器316利用第2n个 level语法元素的levelCode,计算出第2n个level语法元素所对应的系数幅值。当第2n 个level语法元素的suffixLength被输出到suffixLength更新器320时,suffixLength 更新器320将更新并输出suffixLength。 0033 根据系数块的大小,选择不同的解码单元对Total_zeros语法元素和Run_before 语法元素进行解码。具体地,如果系数块为44系数块,则Total_zeros解码单元208将 通过与传统的CAVLC解。
39、码方法相同的方法对Total_zeros语法元素进行解码,并且Run_ before解码单元210将在一个时钟周期中完成对至少两个Run_before语法元素的解码。 如果系数块为22系数块(即,系数块为色度直流系数块),则Total_zeros和Run_before 解码单元212将利用由用于语法元素Total_zeros的查找表和用于语法元素Run_before 的查找表二者结合而成的组合查找表,在一个时钟周期中完成对Total_zeros语法元素以 及所有Run_before语法元素的解码。 0034 图4示出了Run_before解码单元210对Run_before语法元素的解码过程。。
40、Run_ before解码单元210将在一个时钟周期内完成对至少两个Run_before语法元素的解码,具 体解码过程如下: 0035 在初始化步骤402中,用对44系数块进行反之字形扫描得到的一维系数阵列中 说 明 书CN 102740066 A 6/10页 10 最后一个非零系数前的0系数的总数目(Totalzeros)对zeroLeft(代表上述一维系数阵 列中的当前非零系数前的0系数的数目)进行初始化,并且利用TotalCoeffs的值对level 的数目进行初始化;同时NL和ZL分别代表level和zeroLeft的数目。另外,根据zeroLeft 的值获取当前zeroLeft对应的。
41、零值Run_before的编码(“1”、“11”、或“111”),并且用符 号“z”来表示比特“1”的数目。 0036 在零值Run_before识别步骤404中,用符号“c”来表示输入码字中的连续“1”比 特的数目,并且将c与z的值相比较。如果cz,则意味着输入码字中至少存在一个零值 Run_before,转到跳过零解码步骤406。如果cz,则意味着当前已经解码的Run_before 语法元素具有非零值,转到双Run_before解码步骤408。 0037 在跳过零解码步骤(skip-zero decoding step)406中,直接跳过连续的零值Run_ before语法元素,直到在连续。
42、“1”比特字符串的末端识别出第一个非零值Run_before语法 元素。然后,在同一个时钟周期中对该非零值Run_before语法元素进行解码。 0038 在双Run_before解码步骤408中,对当前的Run_before语法元素进行解码,并对 ZL(Zeroleft)和NL(Non-zeroCoefficientLeft)进行更新。如果终止条件(ZL0或者 NL1)没有达到,则在同一个时钟周期内对下一个Run_before语法元素进行解码。 0039 在Run_before解码步骤之后,ZL和NL等参数被更新,并判断终止条件是否满足。 一旦判定终止条件满足,则终止解码。 0040 表1示。
43、出了在跳过零解码步骤406中对Run_before语法元素进行解码所用的查 找表(LUT)。NL的输入码字、连续零值Run_befores以及拖尾的非零值Run_before是根据 该LUT解码的,同时拖尾的非零值Run_before“m”的值是基于NL的值从子查找表得出的。 0041 表1 0042 0043 说 明 书CN 102740066 A 10 7/10页 11 0044 下面给出了一个示例,以说明当应用根据本发明实施例的Run_before解码机制 时每个时钟周期之后的Run_before语法元素的解码结果。 0045 假设从低频到高频顺序的将要编码的原始系数为: 0046 0,。
44、3,0,-1,0,1,0,8,1,4,0,-2,0,0,3,1 0047 将以该顺序进行编码的语法元素Run_before为: 0048 (zeroLeft,Runbefore)(7,0),(7,2),(5,1),(4,0),(4,0),(4,1)(3,1),(2, 1) 0049 然后,编码后的Run_before语法元素的码字为 0050 111101101111101001。 0051 表2示出了每个时钟周期之后的Run_before语法元素的解码结果,相应数目的零 系数被解码出来。所以,仅通过4个时钟周期就得到了整个解码后的系数序列(传统方法 需要至少8个时钟周期)。 说 明 书CN 。
45、102740066 A 11 8/10页 12 0052 表2 0053 0054 也就是说,在输入码流是对应于44系数块的码流的情况下,Run_before解码单 元210通过以下处理对run_before语法元素进行解码: 0055 判断是否存在与m+1个连续的非零系数相对应的run_before语法元素,其中,第 k(即,当前的非零系数)至k+m-1个连续的非零系数之间不存在零系数,并且第k+m-1个非 零系数与紧随第k+m-1个非零系数之后被编码的第k+m个非零系数之间存在零系数; 0056 如果存在,则在一个时钟周期内完成对与第k至k+m个非零系数相对应的run_ before语法元。
46、素的解码,否则在一个时钟周期内完成对与第k和k+1个非零系数所对应的 run_before语法元素的解码, 0057 在下一个时钟周期内,重复以上所述的判断以及解码操作,直至完成对于所有 run_before语法元素的解码。 0058 表3示出了用于22系数块(即,色度直流系数块)的组合查找表(用于语法元 素Total_zeros和Run_before的查找表)。由于色度直流系数块的最大系数数目为4,所 以利用表3,Total_zeros和Run_before解码单元212可以仅在一个时钟周期中解码语法 元素Total_zeros和所有的Run_before语法元素。输入码字的最大长度为4。 。
47、0059 表3 说 明 书CN 102740066 A 12 9/10页 13 0060 0061 当Run_before语法元素解码处理被执行的同时,重排序引擎单元116将存储解码 后的非零系数(即,level语法元素所对应的系数),并且通过移位以及重置操作对它们重 新排序。 0062 图5示出了重排序单元116对以上描述的Run_before解码示例执行的重排序操 作。由于在根据本发明实施例的CAVLC解码系统中,在每个时钟周期内对至少两个Run_ before语法元素进行解码,并且在对Run_before语法元素进行解码的同时并行地进行重 排序操作以提高速度,所以重排序单元116需要将多。
48、个系数条目放入正确的位置。如图5 中所示,只有一个16条目的系数缓冲器被用来存储解码得出的非零系数和零系数。在每个 时钟周期期间,当解码得出多个Run_before语法元素时,重排序单元116进对相应的非零 系数条目与零系数条目相互交换,这种重排序操作仅仅在系数缓存器中对系数条目进行移 位,所以避免了使用两个系数缓存器(在传统的CAVLC解码系统中,通常使用两个系数缓存 器来分别存储非零系数和排序后的系数)。 0063 图6示出了根据本发明实施例的CAVLC解码方法和传统的CAVLC解码方法的测试 结果,其中测试流为QCIF(四分之一通用中间格式)格式的。如图6中所示,在量化参数较 低的情况下。
49、,根据本发明实施例的CAVLC解码方法相对于传统的CAVLC解码方法解码性能 实现了90的改进。并且随着量化参数的增大(QP3)(这意味着一个系数块的编码后的 语法元素数目减少),解码性能将得到40的改善。 0064 以上已经参考本发明的具体实施例来描述了本发明,但是本领域技术人员均了 解,可以对这些具体实施例进行各种修改、组合和变更,而不会脱离由所附权利要求或其等 同物限定的本发明的精神和范围。 0065 根据需要可以用硬件或软件来执行步骤。注意,在不脱离本发明范围的前提下,可 向本说明书中给出的流程图添加步骤、从中去除步骤或修改其中的步骤。一般来说,流程图 只是用来指示用于实现功能的基本操作的一种可能的序列。 0066 本发明的实施例可利用编程的通用数字计算机、利用专用集成电路、可编程逻辑 器件、现场可编程门阵列、光的、化学的、生物的、量子的或纳米工程的系统、组件和机构来 说 明 书CN 102740066 A 13 10/10页 14 实现。一般来说,本发明的功能可由本领域。