论文部分内容阅读
H.264是新一代视频压缩算法,正被越来越多的应用在视频服务方面,在手机、IPTV、视频点播、无线传输等领域已经有广泛的应用。因为H.264能提供更高的压缩比,同等条件下是MPEG-4的2倍左右,而且图像质量更好,适应性更广,能很好地满足实时(视频会议)及非实时(存储)等各种场合的需求。与此同时H.264算法的实现需要更大的计算量,所以这对于实现H.264算法的硬件平台提出了更高的要求。本文就是在TI 最新的DAVINCI 双核异构处理器DM6446 上优化并实现H.264 Baseline Profile算法。
本文主要内容有H.264的关键算法分析和优化,以及结合DM6446的硬件平台特性进行的H.264算法效率改进,还有对DAVINCI平台上的双核通信与开发原理的详细研究,以及用xDM算法标准对H.264算法的封装以使H.264算法能在DAINCI DM6446平台上运行。
在H.264 关键算法分析和优化环节主要有:(1)零块检测,通过对SAD与量化步长Qstep的理论关系原理分析,对预测后的宏块进行全零块SKIP条件判断,省去变换量化的过程,以及省去更小块的预测处理过程,这可以显著的降低计算复杂度。(2)运动估计的优化,运动估计在H.264 帧间预测算法中占有53[%]左右的计算量,所以在本文中采用了效率较高的六边形搜索算法,并对其进行优化。在算法的基础上结合C64x+DSP 最新的专为视频压缩处理开发的SIMD 指令SUBABS4、DOTPU4、ADDSUB2、SWAP2等一次处理多个数据,使数据处理并行执行,这样可以显著提高运动估计的效率,从而提高编码器的效率。另一个优化点是使用了DM6446的EDMA 功能,使运动估计时在片内的当前宏块和片外的参考帧宏块做比较运算时通过EDMA 将片外的参考宏块数据传到片内而不需要CPU的参与和等待,这样可以最大程度的提高CPU的使用效率。
在DAVINCI平台的双核通信原理和开发环节对DAVINCI平台的硬件特性和软件特性进行了详细研究。作为双核系统对DM6446的ARM和DSP之间的共享内存方式,数据通信方式,以及C64x+的指令集模式进行了研究。在软件方面,对整个平台的编码实现模式,CODEC_ENGINE,以及用于封装H.264算法的xDM算法标准进行了研究和实现。
最后在DAVINCI 硬件平台上,结合具体的C64x+指令以及EDMA等特性而进行的算法优化,主要有线性汇编、EDMA、Cache 命中、流水线优化等方法。通过这些方法的改进使算法的效率有质的提高,这也是对算法执行效率提高最快的部分。通过H.264 软件算法和结合DAVINCI 硬件平台的优化,本文可以实现对D1 格式视频序列10fps的编码效果,PSNR保持在36dB 左右。