运动估计的英文名称是Motion Estimation,是视频编码和视频处理(例如去交织)中广泛使用的一种技术。
运动估计的基本思想是将图像序列的每一帧分成许多互不重叠的宏块,并认为宏块内所有像素的位移量都相同,然后对每个宏块到参考帧某一给定特定搜索范围内根据一定的匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。视频压缩的时候,只需保存运动矢量和残差数据就可以完全恢复出当前块。
在帧间预测编码中,由于活动图像邻近帧中的景物存在着一定的相关性。因此,可将活动图像分成若干块或宏块,并设法搜索出每个块或宏块在邻近帧图像中的位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量就是通常所指的运动矢量,得到运动矢量的过程被称为运动估计。运动矢量和经过运动匹配后得到的预测误差共同发送到解码端,在解码端按照运动矢量指明的位置,从已经解码的邻近参考帧图像中找到相应的块或宏块,和预测误差相加后就得到了块或宏块在当前帧中的位置。通过运动估计可以去除帧间冗余度,使得视频传输的比特数大为减少,因此,运动估计是视频压缩处理系统中的一个重要组成部分。本文先从运动估计的一般方法入手,重点讨论了运动估计的三个关键问题:将运动场参数化、最优化匹配函数定义以及如何寻找到最优化匹配。
一般的运动估计方法如下: 设 t 时刻的帧图像为当前帧 f (x, y) , t‘时刻的帧图像为参考帧f’(x,y),参考帧在时间上可以超前或者滞后于当前帧,如下图所示,当 t’<t 时,称之为后向运动估计,当 t’>t 时,称之为前向运动估计。当在参考帧t’中搜索到当前帧 t 中的块的最佳匹配时,可以得到相应的运动场 d(x; t, t + t △ ) ,即可得到当前帧的运动矢量。H.264/HEVC 编码标准和以往采用的视频压缩标准很大的不同在于,在运动估计过程中采用了多参考帧预测来提高预测精度,多参考帧预测就是在编解码端建一个存储 M个重建帧的缓存,当前的待编码块可以在缓存内的所有重建帧中寻找最优的匹配块进行运动补偿,以便更好地去除时间域的冗余度。由于视频序列的连续性,当前块在不同的参考帧中的运动矢量也是有一定的相关性的。假定当前块所在帧的时间为 t, 则对应前面的多个参考帧的时间分别为:t-1, t-2, ……。则当在帧 t-2 中搜索当前块的最优匹配块时,可以利用当前块在帧 t-1 中的运动矢量 MVNR来估测出当前块在帧 t-2 的运动矢量。