x264 源代码分析(H
264 乐园供稿) 相关说明: 1
使用版本: x264-cvs-2004-05-11 2
这次的分析基本上已经将代码中最难理解的部分做了阐释,对代码的主线也做了剖析,如果这个主线理解了,就容易设置几个区间,进行分工阅读,将各个区间击破了
需要学习的知识: a) 编码器的工作流程
264 的码流结构,像x264_sps_t,x264_pps_t 等参数的定义基本上都完全符合标准文档中参数集的定义,抓住主要参数,次要参数也应该有所了解
c) 数学知识,对 dct 变换等与数学相关的知识的编程实现要有较好理解
d) C 语言的知识
涉及到c 语言的较多不经常用的特性,如函数指针数组,移位运算,结构体的嵌套定义等
e) 耐心,对 h
264 的复杂性要有清醒的认识
参考资料: a) 新一代视频压缩编码标准-h
264/avc 毕厚杰主编,人民邮电出版社
b) 网上的流媒体论坛,百度,google 等搜索引擎
阅读代码的方法: a) 较好的方法是利用vc 的调试器,如果对某个函数感兴趣,可以将断点设置在它的前面
然后采用step into,step over 等方法进去该函数一步步分析
当然本身要对程序执行流程要有较清楚认识,不然不知道何时step into,何时step over
b) 建议应该先对照标准弄清各个结构体成员的意义
源代码主要过程分析: 1
进入x264
c 中的main 函数
刚开始是读取默认参数,如果你设置了参数的话会修改param 的
i_ret = Encode( ¶m, fin, fout ); 这条语句使过程进入x264
c 中的Encode 函数
264 的 encode 函数
i_frame_total = 0; if(
fseek( f