你的位置:大电流电感 > 新闻动态

基于TMS320DM6446的H.264编码器的设计与优化

2020-04-16 11:47:05      点击:
上一篇:电路设计中电阻的选择及其作用

1 对编码器算法运动估计模块的优化

由于DSP硬件资源有限,因此有必要对H.264编码器中所耗时间较多的模块进行优化,表1为H.264各模块复杂度比较。

由表1可见,运动估计占了一半左右的时间。运动估计复杂度高的主要原因是采用了全搜索算法,虽然精度非常高,但带来了大量的计算量。针对这一问题,本设计在已有的菱形搜索算法基础上进行进一步的优化。

为了减少静止宏块被编码以及大模板搜索所带来的运算量,在用菱形算法进行运动搜索之前,以待编码宏块周围已编码宏块的运动矢量信息及 SKIP状况为依据预测当前宏块是否使用SKIP模式编码。当待编码宏块为非静止宏块时,再根据周围已编码宏块的SAD值预测当前宏块的运动剧烈程度,若是运动平缓的宏块则直接使用小模板进行搜索。只有当待编码宏块被判定为剧烈运动的宏块时才进行大模板搜索。由于多次的大模板搜索循环带来较大的计算量,因此在进行大模板搜索之前首先根据周围宏块的信息对最大搜索次数MaxNum进行预估值。当大模板的搜索次数大于MaxNum时直接跳转至小模板搜索。此流程设计可使静止宏块和运动平缓的宏块不进入运算量大的大模板搜索环节。优化后的菱形算法流程如图3所示。

3 (2).jpg

图3 优化算法流程图

2 对DSP数据搬移的优化

视频编码需要处理较大的数据量,如一帧CIF格式的YUV数据约有150K,而 H.264除了要存储当前帧的信息外还必须存储重建帧和参考帧的信息,为此必须使用DM6446的片外存储器,即DDR。但是DSP的CPU对不同存储器的访问速度是不一样的,访问速度最快的是离DSP核最近的L1P和L1D,其次是二级缓存L2,访问速度最慢的是DSP的片外存储器。DSP对不同存储器的访问速度相差数倍。为了提高编码器的运行效率,节省DSP核对各个模块访问所消耗的时钟周期,需要启用DSP的DMA作为数据在两个存储器之间的传输通路。DMA的特点是可以在不需要CPU干预的情况下,在后台执行数据的高速传输,能够有效减轻CPU的负荷。