基于 TMS320DM6446 的 H.264 编码器的设计与优化
2003年发布的H.264视频压缩编码标准在一定程度上解决了要在尽可能低的码率下获得尽可能好的图像质量这一问题。在相同的重建图像质量下,H.264能够比H.263节约50%左右的比特率,此外H.264还增强了其对网络的适应性,差错的恢复能力,使其非常适用于数字视频存储、IPTV及手机电视等视频质量要求高而信道传输环境不稳定的场合。
本文引用地址:http://www.amcfsurvey.com/article/151137.htm
由于加入了多模式位移估计、基于4×4块的整数变换等多种新的算法,使H.264算法本身的复杂度大幅增加。因此本文采用基于TI的TMS320DM6446的DAVINCI_EVM平台作为算法的硬件平台,提出针对达芬奇平台对H.264编码器进行优化,在不降低编码质量的情况下提高程序运行效率,降低运算复杂度的一个实现方案。
H.264编码器的算法流程
H.264编码器结构如图1所示,输入的Fn为当前帧或场,编码器以宏块为单位进行处理,每个宏块可以选择帧内或者帧间预测两种编码方式。如果采用帧内编码模式,其预测值PRED(图中为P)是由本帧之前已经经过编码、解码、重建的一些样本点生成。而如果采用帧间模式,则P由一个或者多个参考帧的运动补偿预测生成。预测值P和当前块相减后,产生一个残差块D,经块变换、量化后产生一组量化后的变换系数X,再经熵编码,与解码所需的一些信息一起组成一个压缩后的码流,经NAL供传输和存储用。
图1 H.264编码器结构
编码硬件平台概况
本文采用的达芬奇数字视频评估模块DVEVM(Digital Video Evaluation Module)是TI提供的用来评估DaVinci技术和DM644x体系架构的评估模块,是强调片上能力的一个很好的参考平台。其硬件资源包括TM320DM6446的DSP和ARM9的双核芯片、128MB的SDRAM、16MB的NAND Flash以及丰富的外设接口。
TM320DM6446中用于编码器具体实现的C64x+ DSP的时钟频率达到600MHz。C64x+ DSP的内部存储器的配置包括32KB的程序存储器L1P、80KB的数据存储器L1D和64KB的二级缓存L2。图2为TM320DM6446中DSP端的核心C64x+的结构原理图。
编图2 C64x+结构原理图
码器在TM320DM6446上的实现
由于DSP平台与PC平台的差异性,必须对PC上开发的编码器程序进行结构上的调整,并进行合理的内存分配才能在DSP平台上正常的运行。主要实现步骤如下。
1 编码器C语言结构调整
PC平台上用C语言实现的编码器在DSP平台上的编码帧率(fps)非常低,平均2秒才能编完一帧,其主要原因是无法利用DSP的并行处理机制。因此针对C64x+的特点,将程序中对流水线操作影响较大的的循环拆分成若干小循环实现。对编码器运行速度影响较大的模块如sad的计算,DCT变换等采用CCS自带的图像库以提高编码效率。
评论