DSP

解析H.264视频编解码DSP实现与优化

2019-07-13 18:12发布

引言   基于互联网的数字视频产业前景看好,而3G的规模部署,也会推动移动视频通信成为现实。但数字化后的视频图像具有数据海量性,给图像的存储和传输造成较大的困难。数字视频产业,是指数字内容中以数字视频形态为主的文化创意和传播产业,及其必需依赖的多学科高科技技术支撑和保障服务产业。为此,该专家组基于帧内图像相邻像素间及相邻行间的空间相关性和相邻帧间运动图像的时间相关性,采用压缩编码技术,将那些对人眼视觉图像和人耳听觉声音不太重要的东西及冗余成分抛弃,从而缩减了存储、传输和处理的数据量,提高了频谱资源利用率,使数字化正在变为现实。数字视频压缩编码技术是解决这一问题的关键技术。H.264以其良好的网络适应性和高编码压缩效率,灵活的语法配置,在视频处理领域比以往的视频编码标准更加适合视频处理的发展方向,更加适合不同应用环境的对象。进一步提高了编码算法的压缩效率和图像回放质量。在肉眼主观感受相同的情况下,H.264较之H.263的编码效率提高了50%左右。   利用高性能数字信号处理器(DSP)来实现H.264实时编码器是一种快速有效的方法,有助于H.264视频标准的迅速推广和应用,也指明了视频图像压缩领域最新的研究方向。数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。   1 H.264编码的关键技术   1.1 基于灵活分割宏块(MB)的运动矢量估计和补偿以及增加变换的压缩效果   H.264根据宏块的编码特性采用亮度块直流变换, {MOD}度块直流变换与普通差值变换相结合的方法。在运动估计时,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像素位置的预测值。FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。当获得1/2像素值后,通过取整数像素位置和1/2像素位置像素值均值的方式获得l/4像素位置的值。在高码率情况下,提供1/8像素精度的运动估计。采用高精度运动估计会进一步减小帧间预测误差,减少经变换和量化后的非0比特数,提高了编码效率。利用1/4像素空间精度可以比原有的一个像素精度(整数精度)预测提高20%的编码效率。   1.3 多参考帧预测   参考帧是帧间预测编码,也就是运动补偿的基础,根据它与待预测帧之间的位置关系,可分为前向参考帧和后向参考帧。   以往的编解码技术在对P帧图像进行帧间预测时,只允许以参考前一帧图像进行编码,即以前一个I图像或P图像为参考帧,在对B图像进行预测时,只允许参考前后帧图像进行编码,即以前后两个I图像或P图像为参考图像。H.264则打破了这些限制,允许在从当前帧的前几帧中选择一帧作为参考帧图像,对宏块进行运动预测,当选用多参考帧模式时。编码器从几个参考帧中选择一个效果最好的参考帧,编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。 编码器把角位移或直线位移转换成电信号,前者成为码盘,后者称码尺。按照读出方式编码器可以分为接触式和非接触式两种。接触式采用电刷输出,一电刷接触导电区或绝缘区来表示代码的状态是"1"还是"0";非接触式的接受敏感元件是光敏元件或磁敏元件,采用光敏元件时以透光区和不透光区来表示代码的状态是"1"还是"0",通过"1"和"0"的二进制编码来将采集来的物理信号转换为机器码可读取的电信号用以通讯、传输和储存。达到最佳的预测效果,参考帧图像甚至可以是采用双向预测编码方式的图像,大幅度降低了预测误差。另   因此,多参考帧预测对周期性运动和背景切换能够提供更好的预测效果。   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处理器可以有更低的功耗。   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视频编解码器具有功能强,使用灵活等特点,有广泛的应用前景。RADVISION策略的关键是在SCOPIA架构中支持H.264-SVC技术,这样RADVISION的支持SVC的SCOPIA桌面系统就可以与诸如H.263和H.264等其它标准视频编解码技术互通。可以向同一个会议室接入不同的设备,每台设备根据其性能均可获得最佳的视频编解码质量。不支持H.264-SVC的设备仍可通过H.263或H.264方式进行连接,相信在不久的将来,基于H.264算法和DSP处理器的可视电话、视频会议、有线电视、无线流媒体通信等产品会逐渐地走进千家万户,视频编解码器在嵌入式处理终端上的应用会渐渐地成为应用的主流。