(九)帧间编码2:运动搜索算法简介

目前x264主要有5种搜索算法,以下为翻译x264官网的me参数说明:
运动搜索算法:
默认:'hex'
设置全像素运动估计搜索算法。有5中选择:
1.dia(diamond菱形搜索)是最简单的一种搜索,从预测器认为最好的一点开始,检查一个像素的上方,左方,下方和右方,选择最好的一个像素点,并重复这个过程,直到没有更好的运动向量为止。
2.hex(hexagon六边形搜索)由一种简单的策略组成,它搜索一个周围6个点的range-2 search of(没明白什么意思),因此而得名。它被认为比dia更有效率且几乎不慢于dia算法,因此是通常情况下一种很好的选择。
3.umh(uneven multi-hex不对称六边形搜索)比hex慢很多,但搜索一个复杂的多六边形模式以避免错过很难找到的运动向量。不同于hex和dia算法,merange参数直接控制umh的搜索半径,以便可以大范围提高或降低搜索面积。
4.esa(exhaustive穷尽搜索)是一种对merange范围内的所有运动搜索空间进行高度优化的智能搜索。它相当于数学上的穷举法,搜索区域中的所有运动向量,但速度更快。然而,它比umh慢很多,并且效果没有太大的提升,因此它在普遍的编码处理中不是很有用。
5.tesa(transformed exhaustive变换的穷尽搜索?)是一种试图对每个运动向量进行近似Hadamard变换的比较,和esa类似,但效果好一点,也更慢一点。

翻译的不太好,然而平时经常吐槽国人翻译外国书...

源码中的5种算法的宏如下:

#define X264_ME_DIA                  0
#define X264_ME_HEX                  1
#define X264_ME_UMH                  2
#define X264_ME_ESA                  3
#define X264_ME_TESA                 4

猜你喜欢

转载自blog.csdn.net/weixin_34397291/article/details/87427905
今日推荐