4.1.宏块级流程图MB-Analyse
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
帧间预测模式选择 x264_mb_analyse_inter
计算从P_16x16模式 到P_4x4模式运动矢 量对应的SATD代价
p16x16/8x8/4x4/…() 比较后得到最佳运动
Yes
h, analysis, i_partition
估计模式,保存对应 子宏块形状划分到 i_partition
输出函数 x264_t *h
X264_mb_analyse_p_rd(), 率失真优化 x264_intra_rd()
h, analysis
h, analysis
X264_analyse_update_cache()
根据h->mb.i_type(宏块预测模式) 和h->mb.i_partition(子宏块形状)的值 更新宏块的参数,将参考帧编号和运动矢量保存到 高速缓存h->mb.cache中
【宏块分析】分析各种可能帧内/帧间预测模式下的编码代价,寻找到最合 适的预测模式,如果是帧间预测模式,则保存运动估计得到的运动矢量。
输入参数 x264_t *h
SLICE_TYPE_I I帧
x264_ratecontrol_qp(), 功能:得到当前宏块的量化参数i_qp x264_mb_analyse_init() 功能:初始化宏块分析结构变量analysis h, analysis
h->sh.i_type=?
SLICE_TYPE_B B帧
SLICE_TYPE_P P帧
左、左上、上、右上
【帧内预测】得到编码代价: x264_mb_analyse_intra() analysis.i_satd_i4x4
analysis.i_satd_i16x16
h, analysis
【精确分析】根据用户命令行输入的亚像素分析参数
h, analysis, i_partition
Yes
h->mb. b_chroma_me?
X264_mb_analyse
_intra_chroma()
No
h, analysis, i_partition X264_mb_analyse_intra()
h, analysis, i_partition
h-param.analyse.i_subpel_refine是否较大?
<6
h->mb.
பைடு நூலகம்
≥7
i_subpel_refine=?
快速检测 h->paramanalysPe_. SKIPYes
b_fast_pskip?
四个已编宏块中有一 h->mb个. 是P_SKIP? l_mb_type_left/top/ Topleft/topright= P_SKIP?
B
8x8
h, analysis
用户是否选择?
H->paramanalyse. No
双向运动估计优化
b_bidir_me?
Yes Refine_bidir( )
细化双向 运动估计 结果
率失真优化
X264_intra_rd_refine()或 x264_me_refine_qpel_rd()
h, analysis
No
Yes
x264_macroblock_probe _pskip()
X264_intra_rd() 率失真优化
不采用P_SKIP模式
H, analysis,b_skip
=6
No
B_skip?
X264_intra_rd() h, analysis
X264_intra_rd_refine() 率失真优化
X264_mb_predict_mv 看是否可采用 _direct16x16() b_direct模式
h, analysis
h->mb. B_direct_auto_write?
Yes
No
直接模式 X264_mb_analyse
的预测
_inter_direct()
h, analysis
x264_me_refine_qpel() 1/4像素细化
[帧内预测] 比较帧间与帧 内的SATD
≥7
精确分析? h->mb.
<6
i_subpel_refine=?
X264_mb_analyse_p_rd(),
率失真优化
x264_intra_rd()
=6
P (1)快速探测B_SKIP模式 (2)计算B子宏块模式的运动矢量 及对应的SATD代价 (3)1/4像素细化 (4)帧内预测 (5)率失真优化