基于H.264的熵解码器的实现方法及装置制造方法及图纸

技术编号:3585594 阅读:204 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种专用于H.264解码MAE中对熵编码残差数据等进行解码的方法及装置,由于本发明专利技术所述方法采用了软硬件协同工作,将解码过程中占用大量资源的部分改用软件方法实现。所述的软件程序方法是指利用嵌入式cpu代替硬件电路进行运算的方式,使得熵解码器在保证获得可靠的解码效率和解码质量的前提下,大大降低了结构的复杂度和计算复杂度,从而有效的解决了结构和效率之间的矛盾,顺利的实现了对CAVLC和CABAC熵编码码流的解码,所述该熵解码装置包括BSI取数模块、ue/se/te解码单元、CAVLC残差解码模块、软件模块、二进制算术解码单元、熵解码控制模块、CABAC残差解码模块、反扫描RAM。

【技术实现步骤摘要】

本专利技术属于集成电路数字多媒体处理
,尤其涉及一种专为在视频 通信的硬件MAE (media accelerator engine多媒体加速引擎)上实现熵解码器的 方法及装置。
技术介绍
视频编解码技术是数字多媒体存储和传输应用的关键技术之一,视频编码 的核心部分包括预测编码,变换编码,熵编码。作为视频编码重要组成部分 的熵编码,是利用去除视频数据冗余的方法达到对视频数据进行压縮的效果。熵编码包括变长编码和算术编码两种编码方法。典型的变长编码包括 H. 261、 MPEG (Motion Picture Experts Group) —2中采用的H. 263, MPEG-4 中采用的3D-VLC编码,以及H. 264/AVC (国际电信协会ITU-T的H. 264视频 编码建议或ISO/IEC的国际标准14496-10即MPEG-4标准的第十部分)中采用 的CAVLC (Context-based Adaptive Variable Length Coding)编码。其中2D-VLC 编码和3D-VLC编码采用单一码表进行编码,码表的体积较小,硬件实现比较 简单;而CAVLC编码根据已编码的句法元素的情况,动态调整使用的码表,可 以得到很高的压縮比,性价比更高。算术编码中最典型的是在H. 264/AVC中采 用CABAC算术编码,相对变长编码而言,由于可以对上下文进行建模,对信 源符号出现的概率有更准确的估计,因此编码效率更高,但是相比变长编码, 它的计算复杂度高,硬件实现复杂,因此目前采用不多。 一般来说,CAVLC编码多用于实时性要求较高的应用,如视频电话等。而CABAC虽然编码效率较 高,编码的图像质量较好,但由于编码比较复杂,难以用于对速度要求较高的 应用中,更多地用于数字多媒体的应用,如数字广播电视和数字视频存储等。熵解码就是将熵编码编码过的视频数据准确可靠的还原,对于应用 H. 264/AVC的视频编码标准进行编码的视频数据,针对存在的两种熵编码方式, 熵解码器分别对经过CAVLC和CABAC编码过的视频数据进行解码。然而,由 于CAVLC较以前的2D-VLC编码和3D-VLC编码复杂,CABAC计算复杂度很 高,因此要对同时支持两种熵编码方式的视频数据解码需要耗费相当的资源。 在IC设计中,纯ASIC硬件实现也相当困难,也正是由于这个原因,当前的H. 264 熵解码一般只是在计算机上采用纯软件的方式实现,少数硬件实现的熵解码器 也只支持CAVLC编码方式,这样就限制了性能更好,压縮比更高的CABAC编 码方法的应用。
技术实现思路
本专利技术所要解决的技术问题是如何采用一种简单有效的方法,在MAE上实 现对CAVLC和CABAC的两种视频编码数据的熵解码,既能保证解码的质量和 解码效率,结构简单又易于实现。本专利技术的目的在于公开了一种专用于H.264解码MAE中对熵编码残差数 据等进行解码的方法及装置,由于本专利技术所述方法采用了软硬件协同工作,使 得熵解码器在保证获得可靠的解码效率和解码质量的前提下,大大降低了结构 的复杂度和计算复杂度,从而有效的解决了结构和效率之间的矛盾,顺利的实 现了对CAVLC和CABAC熵编码码流的解码。基于H. 264的熵解码器的实现方法,其特征在于该方法采用了软硬件协同工作,将解码过程中占用大量资源的部分改用软件程序方法实现,包括如下 步骤步骤1:熵解码控制模块(6)根据熵编码模式标志选择解码方式即是对CAVLC编码码流进行解码还是对CABAC编码码流进行解码;步骤2:根据步骤(1)选定的解码类型以片(slice)数据为单位对CAVLC 或者CABAC编码码流进行解码;步骤3:解码完成后,判断是否为CAVLC或者CABAC编码码流的最后一 个片数据,若不是,返回步骤(2)继续对下一个片(Slice)的数据进行解码, 否则,解码过程结束。基于H.264的熵解码器的实现方法,所述的将解码过程中占用大量资源的 部分改用软件程序方法实现,其特征在于所述的软件程序方法是指利用嵌入 式cpu代替硬件电路进行运算的方式,而不是单纯的指用计算机软件实现熵解 码中的某些计算功能。所述的基于H. 264的熵解码器的实现方法,其特征在于该方法步骤(2) 中所述的根据选定的解码类型以片数据为单位对CAVLC编码码流进行解码,其 中所述的对CAVLC编码码流的解码还包括如下的具体步骤步骤2.1:熵解码控制模块(6)向软件模块(4)发出开始信号,开始求解 与解码有关的变量和参数;步骤2.2:软件模块(4)收到来自熵解码控制模块(6)的开始信号后,经 由ue/se/te解码单元(2)并最终通过BSI取数模块(1)得到所需的编码数据流, 经解码得到所需的宏块参数以及除残差系数以外的其他语法元素;步骤2.3:熵解码控制模块(6)收到软件模块(4)发出的结束信号后,向 CAVLC残差解码模块(3)发出解残差开始信号;步骤2.4: CAVLC残差解码模块(3)收到熵解码控制模块(6)发来的开 始信号后开始残差解码,并通过BSI取数据模块(1)获得解码所需的编码数据, 得到亮度块和色度块的残差系数值;步骤2.5:判断解码的是否为片数据的最后一个宏块,如果不是,则返回到 步骤(2.1)继续解下一个宏块,否则解码结束。所述的基于H.264的熵解码器的实现方法,其特征在于以片数据为单位 对CAVLC编码码流进行解码是通过对组成片数据的每个宏块进行解码实现的, 所述对单个宏块的解码包括如下的步骤步骤l:由软件模块求解与宏块解码相关的变量和参数;步骤2:根据上述步骤(1)得到解码所需的当前宏块以及邻近宏块等解码 所需的参数后,按照先亮度块后色度块的顺序对宏块进行解码;步骤3:对亮度块进行解码;以4x4块为基本的解码单位,即每次对一个 4x4亮度块进行块解码,先对亮度块的直流(DC)系数进行解码,然后再对亮度块 的交流系数(AC)进行解码;步骤4:解码完亮度块后,对色度块进行解码;以4x4块为基本的解码单位,按照先Cb块后Cr块的顺序,先解码色度块的直流系数,再解码色度块的交流 系数;步骤5:重复上述步骤,继续解下一个宏块。所述基于11264的熵解码器的实现方法,该方法步骤(2)所述的根据选定 的解码方式以片数据为单位对CABAC编码码流进行解码,其特征在于其中 所述的对CABAC编码码流的解码还包括如下的具体步骤步骤2.1':对CABAC解码所需的上下文模型进行初始化,并初始化概率 区间;步骤2.2':熵解码控制模块(6)向软件模块(4)发出开始信号,开始对 除残差系数以外的其他语法元素、运动向量mvd—10,mvdjl等解码,并求解残差 解码中用到的宏块参数;步骤2.3':软件模块(4)收到来自熵解码控制模块(6)的开始信号后, 经由二进制算术解码单元(5)并最终通过BSI取数模块(1)得到所需的编码 数据流,解码得到所需的宏块参数以及除残差系数以外的其他语法元素;步骤2.4':熵解码控制模块(6)向CABAC残差解码模块(7)发出解残 差开始信号;步骤2.5' : CABAC残差解码模块(7)收到熵解码控制模块(6)发来的 开始信号后开始残差解码,经由二进制算术解码单元(5)并最终通过BSI取数本文档来自技高网
...

【技术保护点】
基于H.264的熵解码器的实现方法,其特征在于:该方法采用了软硬件协同工作,将解码过程中占用大量资源的部分改用软件程序方法实现,包括如下步骤:    步骤1:熵解码控制模块(6)根据熵编码模式标志选择解码方式:即是对CAVLC编码码流进行解码还是对CABAC编码码流进行解码;    步骤2:根据步骤(1)选定的解码类型以片(slice)数据为单位对CAVLC或者CABAC编码码流进行解码;    步骤3:解码完成后,判断是否为CAVLC或者CABAC编码码流的最后一个片数据,若不是,返回步骤(2)继续对下一个片(Slice)的数据进行解码,否则,解码过程结束。

【技术特征摘要】
1、基于H.264的熵解码器的实现方法,其特征在于该方法采用了软硬件协同工作,将解码过程中占用大量资源的部分改用软件程序方法实现,包括如下步骤步骤1熵解码控制模块(6)根据熵编码模式标志选择解码方式即是对CAVLC编码码流进行解码还是对CABAC编码码流进行解码;步骤2根据步骤(1)选定的解码类型以片(slice)数据为单位对CAVLC或者CABAC编码码流进行解码;步骤3解码完成后,判断是否为CAVLC或者CABAC编码码流的最后一个片数据,若不是,返回步骤(2)继续对下一个片(Slice)的数据进行解码,否则,解码过程结束。2、 根据权利要求1所述的基于H. 264的熵解码器的实现方法,其特征在于: 所述的将解码过程中占用大量资源的部分改用软件程序方法实现是指利用嵌入 式cpu代替硬件电路进行运算的方式,而不是单纯的指用计算机软件实现熵解 码中的某些计算功能。3、 根据权利要求1所述的基于H. 264的熵解码器的实现方法,其特征在于: 该方法步骤(2)中所述的根据选定的解码类型以片数据为单位对CAVLC编码 码流进行解码,其中对CAVLC编码码流的解码还包括如下的具体步骤步骤2.1:熵解码控制模块(6)向软件模块(4)发出开始信号,开始求解 与解码有关的变量和参数;步骤2.2:软件模块(4)收到来自熵解码控制模块(6)的开始信号后,经 由ue/se/te解码单元(2)并最终通过BSI取数模块(1)得到所需的编码数据流, 经解码得到所需的宏块参数以及除残差系数以外的其他语法元素;步骤2.3:熵解码控制模块(6)收到软件模块(4)发出的结束信号后,向CAVLC残差解码模块(3)发出解残差开始信号;步骤2.4: CAVLC残差解码模块(3)收到熵解码控制模块(6)发来的开 始信号后开始残差解码,并通过BSI取数据模块(1)获得解码所需的编码数据, 得到亮度块和色度块的残差系数值;步骤2.5:判断解码的是否为片数据的最后一个宏块,如果不是,则返回到 步骤(2.1)继续解下一个宏块,否则解码结束。4、 根据要求1所述的基于11.264的熵解码器的实现方法,其特征在于其 特征在于以片数据为单位对CAVLC编码码流进行解码是通过对组成片数据的每个宏块进行解码实现的,所述对单个宏块的解码包括如下的步骤 步骤l:由软件模块求解与宏块解码相关的变量和参数;步骤2:根据上述步骤(1)得到解码所需的当前宏块以及邻近宏块等解码 所需的参数后,按照先亮度块后色度块的顺序对宏块进行解码;步骤3:对亮度块进行解码;以4x4块为基本的解码单位,即每次对一个 4x4亮度块进行块解码,先对亮度块的直流(DC)系数进行解码,然后再对亮度块 的交流系数(AC)进行解码;步骤4:解码完亮度块后,对色度块进行解码;以4x4块为基本的解码单位,按照先Cb块后Cr块的顺序,先解码色度块的直流系数,再解码色度块的交流 系数;步骤5:重复上述步骤,继续解下一个宏块。5、 根据权利要求1所述的基于H. 264的熵解码器的实现方法,其特征在于 该方法步骤(2)所述的根据选定的解码类型以片数据为单位对CABAC编码码 流进行解码,对CABAC编码码流的解码还包括如下的具体步骤步骤2.1':对CABAC解码所需的上下文模型进行初始化,并初始化概率区间;步骤2.2':熵解码控制模块(6)向软件模块(4)发出开始信号,开始对 除残差系数以外的其他语法元素...

【专利技术属性】
技术研发人员:何铁军汤加跃石岭
申请(专利权)人:深圳艾科创新微电子有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1