原文:
去年9月份接手了关于无线视频传输的项目,我主要负责H.264部分。由于H.264采用了分层设计、多模式运动估计、改进的帧内预测等技术,显著提高了预测精度,从而获得比其他标准好得多的压缩性能。然而H.264获得优越性能的代价是大幅度增加计算复杂度。而对于我们使用的ARM9,处理能力有限,所以选用X264来进行视频的处理压缩。
网上自由组织联合开发的兼容264标准码流的编码器,创始人是一个法国人。X264最大的特点在于其出发点是为了H.264的实用性。与JM相比,X264并没有完整的对H.264标准给与实现,而是舍去了一些对编码性能贡献很小但计算复杂度极高的新特性,如多参考帧、帧间预测中不必要的块模式等技术。从而计算复杂度降低,编码效率却并没有明显降低。码流兼容H.264。在实用的系统中,比如比较普遍的在DSP芯片上实现H.264,大多是移植X264代码。
到09年12月份,我所进行的X264工作,已经实现了在开发板、Linux系统、Windows系统下的工作,即在这三个环境下都可以进行对yuv格式的视频压缩,输出.264的压缩视频文件。将x264对应环境的可执行文件移植到相应的环境中,根据相应的参数运行即可。具体实现步骤如下。(另外,x264不止支持yuv的视频输入和.264的输出,同时还可以支持RAW/y4m/avi/avs的输入和mkv/mp4的输出,具体看其参数解释)
ps:中间经过一个寒假也没什么其它进展,目前正忙着整个系统的统一和各个部分代码的联调,x264中详细的算法部分也没时间详细研究。
1.在开发板上实现X264
准备:编译环境:Linux系统
工具:arm-linux-gcc 3