气液双相缓蚀剂厂家
免费服务热线

Free service

hotline

010-00000000
气液双相缓蚀剂厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

基于DSP的H.264编码器的电路设计 - 消费电子 - 免费猫

发布时间:2020-02-17 13:31:38 阅读: 来源:气液双相缓蚀剂厂家

基于DSP的H.264编码器的电路设计 - 消费电子 - 电子工程网

(2)算法级优化进行算法级优化时。应使VC环境下的纯C版本与CCS下的版本同步更新,VC版本运行正确,既可以保证算法理论上的正确,又可以加快工作速度并减少问题的产生。该算法优化工作主要有以下几点:①运动估算法的选择:X264编码器提供3种可选的整像素运动估算法:X264_ME_ESA(全搜索法)、X264_ME_HEX(六边形搜索法)、X264_ME_DIA(小菱形搜索法)。在VC环境下使用纯C版本代码对同一视频序列使用3种不同的搜索方法进行编码。对比3种搜索方法在编码速度、峰值信噪比(PSNR)、码率方面的性能。对比之下X264_ME_ESA算法的峰值信噪比最高,X264_ME_HEX次之,X264_ME_DIA最低,但相互之间的质量差别并不大,码率差别也很小,但编码速度却有明显差距,X264_ME_DIA较前两者在编码速度上有明显的优势。经比较,选择使用X264_ME_DIA运动估计算法。②帧内预测模式的改进:在X264的帧内预测流程中加入提前终止模式选择的条件,改进算法的流程。进行16×16宏块帧内模式搜索时,在当前模式的开销小于已搜索过的模式的最小开销的一半时,终止16×16帧内预测模式选择,以当前模式为最佳16×16帧内预测模式。对4×4块也加入相同的条件,并且若当前4×4块帧内预测模式的预测开销比相应的最佳16×16块帧内预测模式的开销的1/16还要小,则终止4×4块的帧内预测模式选择,以当前预测模式作为最佳4×4块的帧内预测模式。改进后的帧内预测主体流程如图3所示,灰色部分为加入的判定条件。

帧间预测模式的改进:将当前的16×16宏块划分为4个8×8宏块,分别预测其运动矢量,然后以左右相邻、上下相邻的2个8×8块的运动矢量的差值和阈值相比较为依据,判定是否进行16×8、8×16等分块模式的预测,最后选择开销最小的划分模式为最佳帧间划分模式。

(3)指令级优化 DM6446一个时钟周期内可并行运行8条指令,一次可存取64位数据,内部拥有64个32位通用寄存器,并且支持对寄存器中的4个8位字节或2个16位字节分别进行运算处理,这些使得DM6446具有很强的并行运算能力。视频图像的像素尺寸一般是4的倍数,X264中像素的值是用8位或16位数据按矩阵形式有规律的存储,这种数据存储结构与DM6446的并行处理方式很契合。因此对X264程序进行指令优化充分发挥DM6446的并行运算能力,是提高编码器速度的关键。主要分为以下两部分:①使用内联函数优化;C6000编译器提供了许多内联函数intrinsics,它们是汇编指令映射的在线函数,不宜用C语言实现其功能的汇编指令都有对应的intrinsics函数。这样就可在C语言结构中直接使用内联函数实现对多个数据的并行运算操作。如:未使用内联函数优化前X264程序调用一次双线性内插函数只能计算一个亚像素点的值,而使用内联函数_mem4()、_avgu4()等进行优化后,一次可以计算4个亚像素点的值,大大提高了运算速度。②使用线性汇编语言优化:由于线性汇编不需要考虑寄存器分配、指令延迟、并行指令安排等因素。因此可以利用CCS提供的profile分析工具将使用频率高、耗时多的函数抽取出来,根据事先已知的数据间的相关性等信息,在程序中直接改写函数汇编,人工优化。涉及的算法有:SAD、SSD的计算;DCT变换;反DCT变换、亚像素搜索等。

4 实验结果

选取具有代表性的视频序列carphone(人物运动幅度较大)、news(背景变化,人物运动幅度不大)、container(背景简单,景物运动缓慢)进行编码。视频为YUV 4:2:0格式.QCIF,量化步长定为26,共50帧,采用IPPP…编码模式。DM6446的时钟频率为600 MHz。表1为优化后峰值信噪比、消耗时钟周期、码率等实验结果。表2为优化前后编码时钟周期对比,I帧编码速度平均提高了9倍,P帧编码速度平均提高了11倍。

挠脚心故事

西环故事会

凤凰鸭养殖技术

时装旗袍