摘要:H.264是最新的视频编码国际标准,是图像通信研究领域的热点问题之一,利用高性能数字信号处理器来实现H.264:实时编解码是一种快速有效的方法,有助于H.264视频标准的迅速推广和应用。TI公司生产的DM64X系列芯片具有很强的并行处理能力和信号处理功能,是实现H.264编解码的理想平台。给出视频编解码在DSP中实现的一些关键问题,针对DM642的整体系统方案,设计出为H.264的实时实现搭建了良好的硬件平台,并给出系统的性能测试结果。解码速度达到了实时的效果,图像主观质量较好,无明显方块效应,码率也比较低。
关键词:H.264标准;数字信号处理器;视频编解码;DM642
0 引言
基于互联网的数字视频产业前景看好,而3G的规模部署,也会推动移动视频通信成为现实。但数字化后的视频图像具有数据海量性,给图像的存储和传输造成较大的困难。数字视频压缩编码技术是解决这一问题的关键技术。H.264以其良好的网络适应性和高编码压缩效率,灵活的语法配置,在视频处理领域比以往的视频编码标准更加适合视频处理的发展方向,更加适合不同应用环境的对象。H.264充分考虑了多媒体通信对视频编解码的各种要求,有着多个技术闪光点,在保留运动补偿和变换编码技术的基础上,加入了诸如类离散余弦整数变换(DCT)、基于内容的自适应可变长编码(CAVLC)、基于上下文的自适应二进制算术编码(CABAC),以及高精度、多模式的运动估计等新技术,进一步提高了编码算法的压缩效率和图像回放质量。在肉眼主观感受相同的情况下,H.264较之H.263的编码效率提高了50%左右。
利用高性能数字信号处理器(DSP)来实现H.264实时编码器是一种快速有效的方法,有助于H.264视频标准的迅速推广和应用,也指明了视频图像压缩领域最新的研究方向。
1 H.264编码的关键技术
1.1 基于灵活分割宏块(MB)的运动矢量估计和补偿以及增加变换的压缩效果
H.264根据宏块的编码特性采用亮度块直流变换,色度块直流变换与普通差值变换相结合的方法。在运动估计时,H.264信源编码采用基于4×4块的整数变换,可以灵活地选择块的大小。而其他标准处理的像素块大小均为16×16或者8x8。H.264以可变大小的块来适应不同应用环境和要求,采用16×16,16×8,8×16,8×8四种模式;当划分为8×8模式时,又可进一步采用8×4,4×8,4×4三种子宏块划分模式进一步划分,如图1所示。根据需要由不同尺寸的宏块来执行,采用整数变换既可以使运动物体的划分更加精确,不可以减小运动物体边缘的衔接误差,处理好需要更多运动细节的场合,即以引入更小运动补偿块可以提高一般和特殊情况下的预测质量,它可以提高主观视觉效果,同时又减小了变换过程中的计算量。实验表明,应用7种不同大小和形状的块可以比单一利用16×16块进行的编码提高15%以上的压缩率。
1.2 支持l/4像素或l/8像素精度的运动估值
运动估计与补偿算法是目前视频压缩技术中最为关键的部分,影响着编码的速度、质量和码率,其编码的复杂度也是整个编码系统中最高的。
在H.264中通过6阶FIR滤波器的内插获得1/2像素位置的预测值。当获得1/2像素值后,通过取整数像素位置和1/2像素位置像素值均值的方式获得l/4像素位置的值。在高码率情况下,提供1/8像素精度的运动估计。采用高精度运动估计会进一步减小帧间预测误差,减少经变换和量化后的非0比特数,提高了编码效率。利用1/4像素空间精度可以比原有的一个像素精度(整数精度)预测提高20%的编码效率。
1.3 多参考帧预测
参考帧是帧间预测编码,也就是运动补偿的基础,根据它与待预测帧之间的位置关系,可分为前向参考帧和后向参考帧。
以往的编解码技术在对P帧图像进行帧间预测时,只允许以参考前一帧图像进行编码,即以前一个I图像或P图像为参考帧,在对B图像进行预测时,只允许参考前后帧图像进行编码,即以前后两个I图像或P图像为参考图像。H.264则打破了这些限制,允许在从当前帧的前几帧中选择一帧作为参考帧图像,对宏块进行运动预测,当选用多参考帧模式时。编码器从几个参考帧中选择一个效果最好的参考帧,达到最佳的预测效果,参考帧图像甚至可以是采用双向预测编码方式的图像,大幅度降低了预测误差。另外,帧问编码部分还引入了SP帧,用于有效地实现编码率环境下的切换,可用于随机、快速播放过程,比单参考帧的方法节省5%~lO%的传码率,并且有利于比特流的错误恢复、解码恢复更高图像质量。因此,多参考帧预测对周期性运动和背景切换能够提供更好的预测效果。
1.4 消除块效厘适应性滤波器
基于分块处理的变换编码算法,忽略了物体边缘的连续性,在低码率情况下,容易出现方块效应。为消除在预测和变换过程中引入的块效应,H.264对此采用了消除块效应适应性滤波器,对宏块边缘进行平滑,有效改进图像的主观质量。但与以往标准不同的是,H.264的消除块效应滤波器位于运动估计循环内部,可以利用消除块效应以后的图像去预测其他图像的运动,即滤波后宏块用于运动估计,以产生更小的帧差进行编码,进一步提高预测精度。
1.5 增强的熵编码
以往标准的熵编码采用变长的哈夫曼编码,码表统一,不能适应变换多端的视频内容,影响编码效率。根据视频内容的不同,H.264利用较短的码字来代表出现,高频率的符号,可进一步去除码流中的冗余,提供两种熵编码,即上下文自适应二进制算术编码(CABAC)和基于内容的自适应可变长编码(CAVLC),CABAC的编码效率更高,也更复杂,在相同图像质量下,使用CABAC编码电视信号可降低10%左右(10%~15%)的码率,后者具有较强抗误码能力。
2 H.264的视频编解码的DSP平台实现
在数字图像处理中,要完成大量的数字信号处理工作,特别是对于H.264这样的新一代视频压缩编码标准。就其Baseline而言,其解码复杂度是同等情况下H.263的2倍,而编码复杂度更是H.263的3倍,解决这种高运算量问题,很大程度上依赖于高速DSP技术,而且采用半导体制造工艺生产的DSP处理器可以有更低的功耗。因此为图像的实时压缩处理搭建了一个合理的DSP硬件平台。
TI公司生产的DM64X系列芯片具有超高主频、很强的并行处理能力和信号处理功能,是实现H.264编解码的理想平台。
TI公司生产的642系列是一款专门面向多媒体应用的专用DSP,该DSP时钟频率高达600 MHz,8个并行运算单元,处理能力达4 800 MIPS。它是在C64X的基础上,增加了很多外围设备和接口。可见,DM642是一个强大的多媒体处理器,是构成多媒体通信系统的良好平台。它丰富的外围接口使得它近乎是一个多媒体嵌入式系统的单芯片硬件平台;它的完全可编程性,又使它能够兼容正在发展的各种多媒体信号处理标准,构成通用的软件平台。
该系统主要是为了对模拟视频图像(PAL制式)进行采集,之后对其进行压缩,然后把压缩后的数据通过扩频的方式发送到接收端,在接收端接收码流后由DSP进行解压缩,之后再由DSP负责图像的显示,存储等。所以总体设计方案必须包括视频的输入/输出、网络等接口。设计图如图2所示。
在发送端,视频输出由视频A/D芯片先转换为数字视频信号,然后输入到DM642的视频端口2,由DM642进行图像采集,并把图像数据送入SDRAM中,同时DM642对视频图像进行实时压缩,并把压缩后的数据通过McBSP发送到信道编码部分,完成发送端的工作。在接收端,接收由信道译码部分送来的压缩图像数据,然后由DM642完成图像的实时解压,并把解压后的数据送到SDRAM中,然后把解压后的图像数据送人视频端口0,再由视频端口0把数据送入视频D/A,完成视频的实时显示。图2中音频/视频接口作为扩展,10/100Mb/s的以太网卡以及USB控制器外设主要是为了方便接收端直接把数字视频信号传送到计算机或者终端各处,供电及复位电路完成对电路板的供电及复位功能。
3 H.264的视频编解码的DSP优化
将H.264编码器移植到DM642图像处理平台上,由于H.264的核心算法不仅在代码结构上需要改进,而且在具体的核心算法上也需要做较大的改动,因此整个系统的编码速度非常令人不满意,达不到实时应用的要求,因此需要从各个方面对该系统进行优化,将编码的时间减少下去。首先去除了编码器中的冗余代码,然后优化工作分三步:在PC机上实现H.264算法并进行优化;PC机H.264代码的DSP化,可以在DSP上实现H.264的编解码算法,但是,这样实现的算法运行效率很低,因为所有的代码都是由C语言编写,并没有完全利用DSP的各种性能,所以必须结合DSP本身的特点,对其进一步优化,才能实现H.264视频解码器算法对视频图像的实时处理,即要H.264的DSP算法优化。对于DSP代码的优化共分为三个层次:项目级优化、C程序级优化、汇编程序级优化。
4 结语
在上述环境下,解码器算法对QCIF测试序列已经能够达到45~60 f/s的解码速度,达到了实时性解码的目的。测试结果表明,图像主观质量较好,无明显方块效应,码率也比较低。另外,图像编码的实时性能与图像的内容、运动的剧烈程度等都有一定的关系。在DM642板卡上实现的H.264视频编解码器具有功能强,使用灵活等特点,有广泛的应用前景。相信在不久的将来,基于H.264算法和DSP处理器的可视电话、视频会议、有线电视、无线流媒体通信等产品会逐渐地走进千家万户,视频编解码器在嵌入式处理终端上的应用会渐渐地成为应用的主流。