x264_me_search_ref() 是 进行运动估计,计算cost来选择最小的运动估计方法,
变量:bmx,bmy: 搜索起始点,四分之一精度
pmx,pmy: 搜索起始点,整数精度
包括 好几种 运动搜索算法,其中全搜索太麻烦被替换:
1)菱形搜索(钻石搜索)和 2)六边形+小正方形搜索雷神博客代码都有介绍,非常详细。链接地址:x264源代码简单分析:宏块分析(Analysis)部分-帧间宏块(Inter)_雷霄骅的博客-CSDN博客
3)非对称十字六边形网络搜索:
步骤0:进行一次小菱形搜索,根据匹配误差值和两个门限值(对于一种尺寸的宏块来说是固定大小的threshold1和threshold2)之间的关系作相应的处理,可能用到中菱形模板或者正八边形模板,也有可能直接跳到步骤1。
步骤1:使用非对称十字模板搜索。“非对称”的原因是一般水平方向运动要比垂直方向运动剧烈,所以将水平方向搜索范围定为W,垂直方向搜索范围定为W/2。
步骤2:使用5x5逐步搜索模板搜索。代码实现分几步,搜索到目标点会提前终止;
步骤3:使用大六边形模板搜索。