[发明专利]实现H.264的CAVLC的熵解码器和方法有效

专利信息
申请号: 201210082890.6 申请日: 2012-03-26
公开(公告)号: CN102710937A 公开(公告)日: 2012-10-03
发明(设计)人: 刘道福;李玲;钱诚;陈云霁 申请(专利权)人: 龙芯中科技术有限公司
主分类号: H04N7/26 分类号: H04N7/26;H04N7/50
代理公司: 北京远大卓悦知识产权代理事务所(普通合伙) 11369 代理人: 史霞
地址: 100190 北京*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 实现 264 cavlc 解码器 方法
【说明书】:

技术领域

发明涉及实现新一代视频编码标准H.264编解码的多媒体技术领域,尤其涉及一种实现H.264的CAVLC的熵解码器和方法。

背景技术

随着视频编解码技术的发展,产生了许多视频编解码的标准,如MPEG1/2/4、H.263/264。其中H.264由于其高压缩率以及具有很好的还原质量,正在被广泛接受,然而,其实现复杂度要比其他前几个标准复杂得多。而在整个H.264的解码过程中,熵解码是第一步,后面的解码过程需要等待前面的解码结果,因此其解码速度严重影响整个解码速度。

H.264采用了两套熵编/解码技术,即基于上下文的自适应变长编码(Context-based Adaptive Variable Length Coding,CAVLC)和基于上下文的自适应算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)。其中CAVLC由于编码复杂度比CABAC低,广泛的用于各种视频的编码。H.264的主要档次(Main Profile),基本档次(Base Profile)和扩展档次(Extended Profile)都支持CAVLC。

在CAVLC解码装置中,CAVLC共有6个语法元素需要解码,包括非零系数个数、拖尾系数的个数、每个拖尾系数的符号、除拖尾系数外非零系数的幅值、最后一个非零系数前零的个数和每个非零系数前零的个数。一般地,CAVLC熵解码器的解码过程如下:初始化工作,确定输入数据的块类型等参数;求变量NC,根据NC的值选择所要查的表格;查表得出语法元素非零系数个数和拖尾系数的个数;根据拖尾系数的个数解出拖尾系数的符号;解码除拖尾系数外非零系数的幅值;根据非零系数个数查表求出最后一个非零系数前零的个数;解码每个非零系数前零的个数。

现有技术中的一种H.264熵解码器CAVLC的硬件设计,CAVLC硬件熵解码器主要由5个功能模块,包括解码系数标记模块(Coeff_token Decoder)、拖尾符号标记模块(TrailingOnes Decoder)、幅值模块(Level Decoder)、总零数模块(TotalZero Decoder)、前游程模块(Run_before Decoder),以及一个CAVLC控制模块(CAVLC Contraller)组成。另外包括了一个内部的SRAM模块,用于存储块(block)信息。

其中,幅值模块(Level Decoder)包括幅值前缀模块(level_prefix Decoder),幅值后缀模块(level_suffix Decoder)。

五个句法元素的模块(Decoder)分别执行对于相应的句法元素的解码工作。CAVLC控制模块执行协调各模块工作,对SRAM数据的存取,向外中请接受码流数据,以及将各子功能模块解码得到的数据重组和向外输出传递的功能。

其中:

解码系数标记模块(Coeff_token Decoder)用于解码非零系数个数和拖尾系数个数,此解码过程可根据H264标准中Coeff_taken码表进行。

拖尾符号标记模块(TrailingOnes Decoder)用于解码拖尾系数,由于之前的解码系数标记模块(Coeff_token Decoder)中解出的仅仅是拖尾系数的个数,所以这个模块真正解码的是拖尾系数的符号。

幅值模块(Level Decoder)由两部分组成,幅值前缀模块(level_prefix Decoder),幅值后缀模块(level_suffix Decoder)。幅值模块(Level Decoder)的解码过程为先初始化中间变量suffixLength的值,由于已经解出了非零系数的个数TotalCoeff和拖尾系数的个数TrailingOnes,所以可知有TotalCoeff-TrailingOnes个level的解码循环过程需要进行。在每次解码level的循环中,先计算levelCode,然后根据levelCode的奇偶性计算出level的值,最后根据解出的level的绝对值是否大于相应的阈值来更新suffixLength的值。

总零数模块(TotalZero Decoder)用于解码最后一个非零系数前零的个数,包括了两张表格,一张为常用表,另外一张为ChromaDC的专用表格。

前游程(Run_before Decoder)用于解码每个非零系数前零的个数(RunBefore)。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210082890.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top