dapopo 发表于 2009-6-4 09:56 AM
非常感谢您的回答!
根据总结的4点:
(1)算法级的优化基本用无可用,ffmpeg/mplayer已经实现的相当不错,除非自己实现一个新的decoder;
(2)在代码级,主要是通过关键代码的inline(宏,inline函数)和汇编来加速。这部分在arm平台还是有一些潜力可挖
(3)硬件级,在这一层,cpu的体系结构决定指令集、cache的形式和大小等。如指令集是否有enhanced DSP指令、SIMD指令
,cache是否可配置、cache line大小,这些都会影响代码级和算法级的优化
(4)系统层优化,之所以把它放在最后一层,是由于它建立在整个系统之上,只有对整个系统包括硬件和软件有深刻的理解才能做到。
纵观优化,其实质是尽可能的去除冗余计算,最大化的利用系统硬件资源。
可以分析出,(1)不需要优化;(2)如果不在arm平台,也不需要考虑;(3)可以从此入手进行优化研究,因此,我在指令集SSE4.1上进行研究;(4)比较复杂,暂时不做研究。
因此,感觉从指令集和cache着手,对视频解码进行优化的可能性还是比较大的。
但是由于我是初学这部分内容,只是肤浅的了解SSE4.1指令集对视频解码有优化,并且需要CPU、编译器、视频解码软件都支持SSE4.1指令集,才能配合好完成视频解码的优化。但是却不知道ffmpeg视频解码软件是否支持SSE4.1,编译器是否支持SSE4.1,CPU当然可以直接判断出是否支持SSE4.1。