x264 片类型决策
在 x264 编码器中,片(Slice)类型决策是一个关键的过程,它决定了每个视频帧应该被编码为哪种类型的片,以优化编码效率和视频质量。
在 x264 中将片类型决策过程放到 lookahead 阶段,lookahead 阶段还包括了码率控制模块中的 MBtree 以及 VBV 的相关实现过程。
片类型决策核心函数
a. x264_lookahead_get_frames
:进行帧决策的外层函数
b. lookahead_slicetype_decide
:开启多线程时进行帧决策的外层函数
c. x264_slicetype_decide
:帧类型决策
d. x264_slicetype_analyse
:分析帧类型,即 I/P/B
帧类型决策的帧数据变化过程
- 在
x264_encoder_encode
中调用x264_lookahead_put_frame
将帧 fenc 放到lookahead
里的队列; - 从
lookahead
里的队列获取数据调用x264_lookahead_get_frames
进行lookahead
分析帧类型,分析结束后将帧放入frames.current[]
队列;