经典运动估计算法之全搜索、三步搜索、四步搜索、菱形搜索

  • 全搜索算法
  • 三步搜索算法
  • 四步搜索算法
  • 菱形搜索算法

由于搜索方法的不同,因此有多种运动估计算法,较为经典的运动估计搜索算法有全搜索法、三步搜索法、菱形搜索法以及四步搜索法等等。以下是几种运动估计搜索算法的搜索过程:

一、全搜索算法

全搜索算法(FS)是搜索一定范围内的所有点,然后逐一计算最小差值和 SAD,选取率失真最小的点最为最佳搜索点,该点位置和参考帧中所对应块中心像素点点的位置的矢量差作为运动矢量。

步骤如下:

第一步:将搜索窗口的中心点作为搜索的起始点,从起始点开始依照顺时针的方向逐点向外搜索,计算每一个搜索点的 SAD 值;

第二步:比较第一步中所有点的 SAD 值,选取 SAD 最小的点,即为最佳匹配点。


二、三步搜索算法

三步搜索法步骤如下:

第一步:从搜索窗口的一半或者一半多一点开始搜索,在每一步长的搜索中,比较搜索区域正方形的中心点和四周的八个搜索点,计算这九个点的 SAD 值,选择 SAD 值最小的点作为下一次搜索的中心点;

第二步:以上一步中得到的点为中心,将本次搜索步长减为上次搜索步长的一半,然后进行相似的搜索,再得到一个最佳匹配点,在第三次搜索时就能找到最佳匹配位置。

经典运动估计算法之全搜索、三步搜索、四步搜索、菱形搜索_第1张图片


三、四步搜索算法

由于 TSS(三步搜索算法) 第一步搜索时步长较大,容易跳过最佳匹配点,就会出现局部最优的问题。四步搜索改善了这种情况,并且对大范围的运动也有较好的性能。该算法和 TSS(三步搜索算法) 算法类似,而它是基于运动矢量是中心分布的图像特征来实现的,步骤如下:

第一步:
FSS (四步搜索算法)第一步也是方形范围内有九个搜索点,然而它的范围是在 5×5 的搜索窗口上,小的步长可以避免错过最佳搜索点。通过计算这九个点的 SAD 值,取 SAD 最小的点作为下次搜索的中心;

第二步:本次的搜索窗口大小仍然为 5×5,以上一步搜索到的点为中心,继续计算新得到的九个点的 SAD,如果中心点就是 SAD 值最小的点,则减小搜索步长,改为 3×3,进行第三步;如果不是在中心点,则继续第二步的搜索;

第三步:搜索窗口的大小改为 3×3,对中心点四周的八个点进行计算,取 SAD 最小的点作为最优点。
经典运动估计算法之全搜索、三步搜索、四步搜索、菱形搜索_第2张图片


四、菱形搜索算法

菱形搜索(也被称为钻石搜索)算法有大菱形和小菱形两种不同的匹配模板,大菱形有 9 个搜索点,小菱形只有 5个搜索点。首先使用步长较大的大菱形搜索模板进行粗搜索,然后使用小菱形模板进行细搜索。搜索步骤如下:

第一步:首先以搜索窗口的中心点为中心,以菱形为模板,计算中心点和其周围八个点共九个点的 SAD
值,比较得到 SAD 值最小的点;

第二步:如果搜索的中心点就是 SAD 值最小的点,则跳到第三步使用小菱形搜索模板,否则依旧回到第一步的搜索;

第三步:利用搜索点数只有 5 个点的小菱形搜索模板,计算这 5 个点的 SAD 值,取 SAD值最小的点为最佳匹配点。

经典运动估计算法之全搜索、三步搜索、四步搜索、菱形搜索_第3张图片


更多关于视频编码的知识和资源,更精致的文章排版,欢迎关注博主微信公众号,一起交流、学习、进步!!!
在这里插入图片描述

你可能感兴趣的:(视频编码)