欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【H2645】帧间预测

程序员文章站 2022-07-14 18:37:37
...
1、帧间预测原理

先看下图,对比前后两帧图像,只有圆的位置发生变化,因此我们可以根据前一帧图像以及圆移动的信息,合成后一帧图像。这样少编码一帧图像,大大压缩了数据。
【H2645】帧间预测
实际情况如下图,比对前后两帧,背景一样,只有两人身体发生微小变化,找出并记录这些变化信息,就是帧内预测。
【H2645】帧间预测

2、帧间预测步骤
2.1 找出最佳匹配块

以上面的第一张图为例,就是找到前后两帧中圆的位置。
在H.264中将这一过程叫做运动估计,它是将16x16的亮度宏块,分成16x16、16x8、8x16和8x8的子块进行帧间预测。对于8x8的块(亚宏块,亮度和色度),往下又可以分成8x8、8x4、4x8、4x4的子块。每一种分割都需要尝试,并计算出运动搜索结果的代价,选择最小代价的分割方式进行预测编码。

2.2 计算出移动矢量

移动矢量,没有什么好说的,就是记录前后一对最佳匹配块的位置变化的矢量值。

2.3 计算移动补偿量

补偿量就是前后一对最佳匹配块的差值。前一帧由最佳匹配块以矢量值移动变换后,再加上补偿量就能预测出后一帧。
运动估计准则:

3、判断最佳匹配块的方法

在运动搜索寻找最佳匹配块的过程中,对于两个块是否匹配得有一个规则判断。目前有以下几种:

1-绝对误差和(SAD)。
2-最小变化域绝对误差和(SATD)。
3-差值平和和(SSD)。
4-平均绝对差值(MAD)。
5-平均平方误差(MSD)。

由于SAD的计算最为简单,只有加减法和绝对值运算,便于硬件实现,该函数在实际中使用最多。

4、找到最佳匹配块的算法

在搜索允许范围内,查找最佳匹配块的过程。

1-全搜索算法。
全局搜索就是把运动搜索范围内的每个可能位置都搜索一遍,此算法复杂度太高,效率低。

2-快速搜索算法。
快速搜索就是避开不太可能的位置,找到最佳匹配块。搜索大致流程为:

a、确定初始搜索点。
b、搜索到某点确定是否是最佳匹配位置若不是继续按照规则递归搜索。

常见快速搜索算法:

三步搜索法;
菱形搜索法;
六边形搜索法;
5、帧间预测详解
运动矢量(Motion Vector, MV):

在一个帧间编码宏块中,每一个分割后的子块都会进行相应的运动搜索,在参考帧中查找对应的相同尺寸的像素块作为参考。当前像素块在当前帧中的位置同参考块在参考帧总的位置之间的相对位置代表了像素块中的物体在两帧之间的运动轨迹。这个相对位置以两个坐标值组成的矢量(MV_x, MV_y)表示,称为运动矢量(Motion Vector, MV)。一个宏块最多可能包含16个MV。

参考博客

视频压缩编码技术(H.264) 之帧间预测
帧间预测编码的基本原理

相关标签: 视频 h.264