电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

x264源代码分析(H.264乐园供稿)VIP免费

x264源代码分析(H.264乐园供稿)_第1页
1/12
x264源代码分析(H.264乐园供稿)_第2页
2/12
x264源代码分析(H.264乐园供稿)_第3页
3/12
x264 源代码分析(H.264 乐园供稿) 相关说明: 1. 使用版本: x264-cvs-2004-05-11 2. 这次的分析基本上已经将代码中最难理解的部分做了阐释,对代码的主线也做了剖析,如果这个主线理解了,就容易设置几个区间,进行分工阅读,将各个区间击破了. 3. 需要学习的知识: a) 编码器的工作流程. b) H.264 的码流结构,像x264_sps_t,x264_pps_t 等参数的定义基本上都完全符合标准文档中参数集的定义,抓住主要参数,次要参数也应该有所了解. c) 数学知识,对 dct 变换等与数学相关的知识的编程实现要有较好理解. d) C 语言的知识.涉及到c 语言的较多不经常用的特性,如函数指针数组,移位运算,结构体的嵌套定义等. e) 耐心,对 h.264 的复杂性要有清醒的认识. 3.参考资料: a) 新一代视频压缩编码标准-h.264/avc 毕厚杰主编,人民邮电出版社. b) 网上的流媒体论坛,百度,google 等搜索引擎. 4. 阅读代码的方法: 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 函数. 2. X.264 的 encode 函数. A. i_frame_total = 0; if( !fseek( fyuv, 0, SEEK_END ) ) { int64_t i_size = ftell( fyuv ); fseek( fyuv, 0, SEEK_SET ); i_frame_total = i_size / ( param->i_width * param->i_height * 3 / 2 ) } 上面这段计算出输入文件的总帧数. B. h = x264_encoder_open( param )这个函数是对不正确的参数进行修改,并对各结构体参数和cabac 编码,预测等需要的参数进行初始化. C. pic = x264_picture_new( h ); 该函数定义在\CORE\common.c 中 .首先分给能容纳sizeof(x264_picture_t)字节数的空间,然后进行初始化. 这里看一下x264_picture_t 和 x264_frame_t 的区别.前者是说明一个视频序列中每帧的特点.后者存放每帧实际的象素值.注意区分. D. for( i_frame = 0, i_file = 0; i_ctrl_c == 0 ; i_frame++ ) {...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

x264源代码分析(H.264乐园供稿)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部