x264中16x16运动搜索过程(转)

函数实现是函数 static void x264_mb_analyse_inter_p16x16( x264_t *h, x264_mb_analysis_t *a )

1、大循环是参考帧的循环,从最近的一个参考帧开始搜索,一直到最远的一个参考帧;
2、调用x264_mb_predict_mv_16x16函数,以上、右上、左块运动矢量的中值m.mvp作为候
选运动矢量。
3、调用x264_mb_predict_mv_ref16x16函数,寻找其它候选运动矢量。这些候选者包括:
空间相邻的左、左上、上、右上块的MV;第0个参考帧中的当前块、右边块、下边快运动矢
量乘以时间差权重。
4、调用x264_me_search_ref进行运动搜索。搜索时先从所有候选运动矢量中选出最佳的起
点,然后使用小钻石法、六边形法、UMH或者全搜索搜索出最佳的整像素位置。
5、x264_me_search_ref调用refine_subpel进行1/2和1/4运动搜索。两者都使用小钻石法

6、搜索出最佳运动矢量后,如果当前是最近一个参考帧,而且最佳SA(T)D小与检测门限,
则尝试对其进行P_SKIP编码。
7、保存搜索结果。 


你可能感兴趣的:(x264中16x16运动搜索过程(转))