x264编码器参数设定

论坛 期权论坛     
选择匿名的用户   2021-5-28 02:11   14   0
<div>
<p>以下是全部内容,个人见解,谢谢!(序号为函数调用过程),帧间的看的没那么仔细,还在看,以后争取补上! (<span style="font-family:Times New Roman">1</span><span style="font-family:宋体">)       </span><span style="font-family:Times New Roman">x264_param_default( x264_param_t *param )    </span><span style="font-family:宋体">作用: 对编码器进行参数设定 </span><span style="font-family:Times New Roman">cqm:</span><span style="font-family:宋体">量化表相关信息                  </span><span style="font-family:Times New Roman">csp</span><span style="font-family:宋体">:                               量化表相关信息里的</span><span style="font-family:Times New Roman">memset( param-&gt;cqm_4iy, 16, 16 );                                     memset( param-&gt;cqm_4ic, 16, 16 );                                     memset( param-&gt;cqm_4py, 16, 16 );                                     memset( param-&gt;cqm_4pc, 16, 16 );                                     memset( param-&gt;cqm_8iy, 16, 64 );                                     memset( param-&gt;cqm_8py, 16, 64 ); </span><span style="font-family:宋体">(</span><span style="font-family:Times New Roman">2</span><span style="font-family:宋体">)</span><span style="font-family:Times New Roman">static int  Parse( int argc, char **argv, x264_param_t *param, cli_opt_t *opt ) </span><span style="font-family:宋体">初始化</span></p>
<p>1<span style="font-family:宋体">.    </span><span style="font-family:Times New Roman">getopt_long(nargc, nargv, options, long_options, idx) </span><span style="font-family:宋体">得到入口地址的向量与方式的选择 </span><span style="font-family:Times New Roman">2</span><span style="font-family:宋体">.    </span><span style="font-family:Times New Roman">getopt_internal(nargc, nargv, options)     </span><span style="font-family:宋体">解析入口地址向量 (</span><span style="font-family:Times New Roman">3</span><span style="font-family:宋体">) </span><span style="font-family:Times New Roman">static int  Encode( x264_param_t *param, cli_opt_t *opt ) /* Create a copy of param */ h-&gt;param&#61;param /* VUI */vui</span><span style="font-family:宋体">信息主要包括帧率、图像尺寸等信息 </span><span style="font-family:Times New Roman">/* Init x264_t */ x264_sps_init( h-&gt;sps, 0, &amp;h-&gt;param ); x264_pps_init( h-&gt;pps, 0, &amp;h-&gt;param, h-&gt;sps); /* Init frames. */     </span><span style="font-family:宋体">初始化并开辟帧空间 </span><span style="font-family:Times New Roman">/* init mb cache */   </span><span style="font-family:宋体">对前一宏块的信息保存,因为是初始化,所以作为第一个宏块的参考,后面会有</span><span style="font-family:Times New Roman">x264_macroblock_cache_load( h, i_mb_x, i_mb_y );</span><span style="font-family:宋体">它是将要编码的宏块的周围的宏块的值读进来</span><span style="font-family:Times New Roman">, </span><span style="font-family:宋体">要想得到当前块的预测值,要先知道上面,左面的预测值 </span><span style="font-family:Times New Roman">/* init cabac adaptive model */ /* init CPU functions */  </span><span style="font-family:宋体">初始化</span><span style="font-family:Times New Roman">cpu</span><span style="font-family:宋体">对各种分块的参数设定 </span><span style="font-family:Times New Roman">/* rate control */ 1</span><span style="font-family:宋体">. </span><span style="font-family:Times New Roman">x264_t *x264_encoder_open   ( x264_param_t *param ) </span><span style="font-family:宋体">这个函数是对不正确的参数进行修改</span><span style="font-family:Times New Roman">,</span><span style="font-family:宋体">并对各结构体参数和</span><span style="font-family:Times New Roman">cabac</span><span style="font-family:宋体">编码</span><span style="font-family:Times New Roman">,</span><span style="font-family:宋体">预测等需要的参数进行初始化 </span><span style="font-family:Times New Roman">2</span><span style="font-family:宋体">、</span><span style="font-family:Times New Roman">p_read_frame( &amp;pic, opt-&gt;hin, i_frame &#43; opt-&gt;i_seek, param-&gt;i_width, param-&gt;i_height ) </span><span style="font-family:宋体">读取一帧,并把这帧设为</span><span style="font-family:Times New Roman">prev 3. i_file &#43;&#61; Encode_frame( h, opt-&gt;hout, &amp;pic );</span><span style="font-family:宋体">进入核码层 核心编码层的总流程图:(</span><span style="font-family:Times New Roman">x264.c</span></p>
<p>1<span style="font-family:宋体">.         </span><span style="font-family:Times New Roman">x264_encoder_encode( h, &amp;nal, &amp;i_nal, pic, &amp;pic_out )</span><span style="font-family:宋体">对帧进行编码 </span><span style="font-family:Times New Roman">2</span><span style="font-family:宋体">.         </span><span style="font-family:Times New Roman">i_size &#61; x264_nal_encode( data, &amp;i_data, 1, &amp;nal[i] ) </span><span style="font-family:宋体">网络打包编码 </span><span style="font-family:Times New Roman">3</span><span style="font-family:宋体">.         </span><span style="font-fa
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP