当前位置: 首页 > 工具软件 > x264-go > 使用案例 >

x264代码学习笔记(五):x264_slicetype_analyse函数

陆宾白
2023-12-01

x264_slicetype_decide函数(代码所在位置为“x264-snapshot-20171128-2245-stable\encoder\slicetype.c”)的主要作用为:真正用于分析帧类型(I\P\B帧)

调用顺序如下:

x264_encoder_encode —> x264_lookahead_get_frames —> x264_slicetype_decide  —> x264_slicetype_analyse

分析x264_slicetype_analyse函数,需有以下认知作为前提:

  1. 帧类型分析是以GOP为单位进行的,即当待分析帧队列达到一个GOP时,才开始根据约束条件进行帧类型的确认;
  2. 以GOP为单位,先分析里面的关键帧,再确认里面的P帧,最后根据不同算法确认GOP内的B帧;
  3. 以下暂时只是简要记述,详细的解释需再了解B帧自适应确认算法和码率控制部分代码之后再进行补充。

x264_slicetype_analyse函数:

// 分析帧类型
void x264_slicetype_analyse( x264_t *h, int intra_minigop )
{
    x264_mb_analysis_t a;
    x264_frame_t *frames[X264_LOOKAHEAD_MAX+3] = { NULL, };  // lookahead线程内帧数
    int num_frames, orig_num_frames, keyint_limit, framecnt;
    int i_max_search 
 类似资料: