微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > H.264视频编码器在DSP上的实现与优化

H.264视频编码器在DSP上的实现与优化

时间:01-13 来源: 点击:

摘要:在DM642 EVM平台上实现了 H.264视频编码器,并从内存分配、Cache优化、代码优化以及汇编程序级优化等几个方面对编码器进行了优化。实验结果表明,优化后的编码器能保持较高的图象质量和压缩效率,并具有较好的实时性能。

1 引言

  H.264/AVC是ITU-T视频编码专家组和ISO/IEC运动图象专家组联合提出的新一代视频编码标准。在相同的条件下,与MPEG-1、MPEG-2、H.263、MPEG-4等标准相比,H.264/AVC能够减少50%的码流。但是,H.264的高编码效率是以高运算量和高复杂度为代价的。

  本文采用具有较高运算速度和较强数据处理能力的DM642 EVM作为H.264视频编码器实现和优化的DSP硬件平台,实现了 H.264视频编码算法,并对算法程序进行了综合优化。实验结果表明,经过优化的 H.264视频编码器能保持较高的图象质量和压缩效率,并具有较好的实时性能。

2 H.264视频编码技术及DM642 EVM开发平台

  2.1 H264视频编码技术

  H.264压缩算法采用与H.263和MPEG-4类似的基于块的混和编码方法,采用帧内(Intra)和帧间(Inter)两种编码模式。为了提高编码效率、压缩比和图象质量,H.264采用了许多新的编码技术,这些技术主要有:

  ⑴ H.264标准压缩系统由视频编码层(VCL,Video Coding Layer)和网络抽象层(NAL,Network Abstraction Layer)两部分组成。
⑵ H.264采用帧内预测,昀大程度地减少图象的空间冗余信息。
⑶ H.264的帧间预测采用多帧参考帧(参考的个数为1~5)、高精度的内插算法(包括1/4和 1/8精度)、多种变形搜索块等新的方法,在很大程度上提高运动估计与补偿的效率。
⑷ 1/4、1/8象素精度的亚象素运动估计:对于QCIF视频格式使用1/4象素精度预测方式,对于CIF视频格式使用1/8象素精度预测方法。
⑸ 残差图象的4x4整数DCT变换技术,逆变换过程中没有匹配错误问题。
⑹ 新的环路滤波技术及熵编码技术等。

  2.2 DM642 EVM开发平台DM642

  EVM是TI推出的一款专门面向多媒体应用的开发平台,板上资源包括:DM642 CPU芯片、4M×64bit同步动态存储器(SDRAM)、4M×8bit FLASH存储器和一路视频编码和两路视频解码等,其结构如图1所示。DM642基于C64X内核,主频高达600MHz,采用超长指令字(VLIW)结构,每个指令周期可并行处理8条32位的指令,处理能力达4800MIPS;片上内存采用二级缓存Cache结构,L1由16KB的数据Cache L1D和16KB的程序Cache L1P组成,256KB的L2可配置成SRAM或Cache,大幅度提高了程序的运行性能;片内64位的EMIF(External MemoryInterface)接口可以与SDRAM、Flash等存储器件无缝连接,极大地方便了大量数据的搬移;DM642包括了3个专用的视频端口(VP0~VP2),用于接收、处理视频数据,提高了整个系统的性能;DM642自带的EMAC口以及从EMIF口扩展出来的ATA口,还为处理完成后产生的海量数据提供了存储通道。因此,实现H.264的视频算法,高性能的DM642 EVM是一个理想的硬件平台。



3 H.264视频编码器的实现与优化

  3.1 编码器的实现

  H.264视频编码器的实现有多种方法,不过大部分都是进行移植、优化的操作。H.264代码要在DSP的软件平台CCS环境下运行,需要注意几个问题:如配置文件、库文件的改动、数据类型的调整、汇编程序的处理、内存终结模式的调整等。

  H.264编码采用变换和预测的混合编码方法,其原理如图2所示。输入帧或者场Fn以宏块为单位被编码器处理,即将图象分成子图象块,以子图象块作为编码单元。当采用帧内预测编码时,预测值P是由当前片中已编码的参考图象经过运动补偿(MC)后得出的,其中参考图象用F1n-1表示;为了提高预测精度,从而提高压缩比,实际的参考图象可在过去或未来已编码解码重建和滤波的帧中选择。预测值P和当前块相减后,产生一个残差块Dn,经块变换、量化后产生一组量化后的变化系数X,再经过熵编码,与解码所需的一些边信息(如预测模式量化参数、运动矢量等)一起组成一个压缩后的码流,经过NAL供传输和存储用。

3.2 内存分配及Cache优化

  与PC机相比,DSP的程序数据存储空间非常有限。因此,对于视频编码这种需要处理大量数据的程序而言,必须合理安排数据和程序的存储方式,实现对存储器的优化。实验表明,合理利用两级缓存并配合低工作频率外部存储器,系统的效率能达到全部使用高工作频率内部存储器的80%~90%。

本文将占据较大空间的数据或使用频率不高的程序放在片外存储器中,启用L2 Cache,调用C6000的芯片支持库CSL中的CACHE-setL2Mode函数,将L2设置为198KB的SRAM和64KB的Cache模式。并根据H.264算法本身的结构,采取以下方法对存储器进行优化:利

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top