打算写几篇文章记录一下学习x264源码的成果,主要包含两个方面的内容,一是基本的x264视频编码流程,二是x264中的码率控制,之前分析过JM和HM的码率控制,但是x264的码率控制一直没看,这回也算是补上了。然后再以两个实际问题为例介绍通过研究源码后给出的解决方案,一个是如何修改编码参数获得更好的视频质量的问题,一个是修改源码改进x264码率控制算法的问题。
本文包含以下内容,由于这部分内容比较复杂,这么多年也都是大家研究的重点,我这里只做一个简单的介绍。
1、如何简单的通过修改命令行参数来优化码率控制的结果
2、如何从算法角度通过修改源码来优化码率控制的结果
首先需要明确的是,评价一个码率控制的结果好坏,基本上要看三点内容:1、码率是否准确 2、实时性如何;一半来说x264的2pass模式的码率控制效果最好,但却是完全不适合于实时应用的,另一种通过abr+vbv也能近似实现cbr的,只不过是一种平均码率上的constant(但是很多时候运营商是按照最大占用带宽来收费的,所以这种平均码率上的constant也有其不足之处),那么对于这种情况不同的vbv size就会对实时性造成影响了 3、质量;如果能够通过优化,实现同样码率下更好的质量,自然是最好的,这里的质量评价方法既可以用客观方法(PSNR、SSIM等ÿ