加载中…
个人资料
小鱼儿
小鱼儿
  • 博客等级:
  • 博客积分:0
  • 博客访问:3,982
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

运动补偿

(2007-07-26 16:03:28)
标签:

运动补偿

运动估计

分类: 流媒体学习
 

运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻) 差别的方法,具体来说是描述前面一帧(相邻在这里表示在编码关系上的前面,在播放顺序上未必在当前帧前面)的每个小块怎样移动到当前帧中的某个位置去。这种方法经常被视频压缩/视频编解码器用来减少视频序列中的时域冗余。它也可以用来进行去交织(deinterlacing)的操作。

一个视频序列包含一定数量的图片--通常称为。相邻的图片通常很相似,也就是说,包含了很多冗余。使用运动补偿的目的是通过消除这种冗余,来提高压缩比。

最早的运动补偿的设计只是简单的从当前帧中减去参考帧,从而得到通常含有较少能量(或者成为信息)的"残差",从而可以用较低的码率进行编码。解码器可以通过简单的加法完全恢复编码帧。

一个稍微复杂一点的设计是估计一下整帧场景的移动和场景中物体的移动,并将这些运动通过一定的参数编码到码流中去。这样预测帧上的像素值就是由参考帧上具有一定位移的相应像素值而生成的。这样的方法比简单的相减可以获得能量更小的残差,从而获得更好的压缩比--当然,用来描述运动的参数不能在码流中占据太大的部分,否则就会抵消复杂的运动估计带来的好处。

通常,图像帧是一组一组进行处理的。每组的第一帧(通常是第一帧)在编码的时候不使用运动估计的办法,这种帧称为帧内编码帧(Intra frame)或者I帧。该组中的其它帧使用帧间编码帧(Inter frame),通常是P帧。这种编码方式通常被称为IPPPP,表示编码的时候第一帧是I帧,其它帧是P帧

在进行预测的时候,不仅仅可以从过去的帧来预测当前帧,还可以使用未来的帧来预测当前帧。当然在编码的时候,未来的帧必须比当前帧更早的编码,也就是说,编码的顺序和播放的顺序是不同的。通常这样的当前帧是使用过去和未来的I帧或者P帧同时进行预测,被称为双向预测帧,即B帧。这种编码方式的编码顺序的一个例子为 IBBPBBPBBPBB。

目录

全局运动补偿

全局运动补偿中, 运动模型基本上就是反映摄像机的各种运动,包括平移,旋转,变焦等等。这种模型特别适合对没有运动物体的静止场景的编码。 全局运动补偿有下面的一些优点:

  • 该模型仅仅使用少数的参数对全局的运行进行描述,参数所占用的码率基本上可以忽略不计。
  • 该方法不对帧进行分区编码,这避免了分区造成的块效应。
  • 在时间方向的一条直线的点如果在空间方向具有相等的间隔,就对应了在实际空间中连续移动的点。其它的运动估计算法通常会在时间方向引入非连续性。

但是,缺点是,如果场景中有运动物体的话,全局运动补偿就不足以表示了。这时候应该选用其它的方法。

分块运动补偿

在分块运动补偿 (BMC for block motion compensation) 中,每帧被分为若干像素块 (在大多数视频编码标准,如MPEG中,是分为16x16的像素块)。从参考帧的某个位置的等大小的块对当前块进行预测,预测的过程中只有平移,平移的大小被称为运动矢量

对分块运动补偿来说,运动矢量是模型的必要参数,必须一起编码加入码流中。由于运动矢量之间并不是独立的(例如属于同一个运动物体的相邻两块通常运动的相关性很大),通常使用差分编码来降低码率。这意味着在相邻的运动矢量编码之前对它们作差,只对差分的部分进行编码。使用熵编码对运动矢量的成分进行编码可以进一步消除运动矢量的统计冗余(通常运动矢量的差分集中于0矢量附近)。

运动矢量的值可以是非整数的,此时的运动补偿被称为亚像素精度的运动补偿。这是通过对参考帧像素值进行亚像素级插值,而后进行运动补偿做到的。最简单的亚像素精度运动补偿使用半像素精度,也有使用1/4像素和1/8像素精度的运动补偿算法。更高的亚像素精度可以提高运动补偿的精确度,但是大量的插值操作大大增加了计算复杂度。

分块运动补偿的一个大缺点在于在块之间引入的非连续性,通常称为块效应。当块效应严重时,解码图像看起来会有像马赛克一样的效果,严重影响视觉质量。另外一个缺点是,当高频分量较大时,会引起振铃效应。关于高频分量,请参见对运动补偿后的残差进行变换的方法: 变换编码

可变分块运动补偿

可变分块运动补偿(VBSMC for Variable Block Size Motion Compensation)是BMC的一个变种,编码器可以动态选择分块大小。进行视频编码时,使用大的分块可以减少表征运动向量所需的比特数,使用小的分块则可以在编码时产生更少的预测余量信息。较老的设计,象H.261MPEG-1 视频编码,典型的使用了固定分块,而较新的设计,象H.263MPEG-4 Part 2H.264/MPEG-4 AVCVC-1 则赋予了编码器动态选择何种分块来表征运动图像的能力。

重叠分块运动补偿

Overlapped block motion compensation (OBMC) is a good solution to these problems because it not only increases prediction accuracy but also avoids blocking artifacts. 重叠分块运动补偿(OBMC for Overlapped block motion compensation)是一种更好的解决方案,它不但能增加预测精度,而且能够避免块失真。

When using OBMC,blocks are typically twice as big in each dimension and overlap quadrant-wise with all 8 neighbouring blocks.

Thus, each pixel belongs to 4 blocks. In such a scheme, there are 4 predictions for each pixel which are summed up to a weighted mean. 因此,每个像素第属于4个分块。基于此方案,每个像素的4个预测值求和后得到一个加权平均数。

For this purpose, blocks are associated with a window function that has the property that the sum of 4 overlapped windows is equal to 1 everywhere. 为此目的,分块被关联到一个窗口函数,该窗口函数具有任何地方的4个重叠窗口的总和为1的属性。

Studies of methods for reducing the complexity of OBMC have shown that the contribution to the window function is smallest for the diagonally-adjacent block. Reducing the weight for this contribution to zero and increasing the other weights by an equal amount leads to a substantial reduction in complexity without a large penalty in quality. In such a scheme, each pixel then belongs to 3 blocks rather than 4, and rather than using 8 neighboring blocks, only 4 are used for each block to be compensated. Such a scheme is found in the H.263 Annex F Advanced Prediction mode.

运动估计

Motion estimation (BME, OBME) is the process of finding optimal or near-optimal motion vectors. The amount of prediction error for a block is often measured using the mean squared error (MSE) or sum-of-absolute-differences (SAD) between the predicted and actual pixel values over all pixels of the motion-compensated region.

运动估计是找到最优或接近最优的运动向量的处理。一个块的预测误差总计经常是指在运动补偿区域所有像素中,计算预测像素和实际像素数值的均方差或者绝对差别总和。

To find optimal motion vectors, one basically has to calculate the block prediction error for each motion vector within a certain search range and pick the one that has the best compromise between the amount of error and the number of bits needed for motion vector data. The motion estimation technique of simply exhaustively testing all possible motion representations to perform such an optimization is called full search. 发现最优向量,一个最基本的方法是不得不为在固定探测范围内,给每一个运动向量,计算块的预测误差計算鄰近禎之中找尋前後frame之中相似的Macro Block,兩者之間的差異值。以及估算表示此Motion Vector所需的位元數目,和在错误数和比特数之间挑选一个最折中作为运动向量值。运动估计技术尽量简单的测试在执行前一個簡單的探測測試技術為:估計所有可能的运动表现,比如這樣的最优化被称做全探测。

A faster and sub-optimal method is to use a coarse search grid for a first approximation and to refine the grid in the surrounding of this approximation in further steps. 一个稍快但不是最优的方法是用第一个近似值作为一个粗略探测栅格,然后在接下来的步骤里在近似值的周围精确栅格。

One common method is the 3-step search, which uses search grids of 3×3 motion vectors and 3 refinement steps to get an overall search range of 15×15 pixel. 一个通用办法是3步探测,用3次探测栅格;3个运动向量和3个精确步骤来得到15次15个像素范围内的全面探测。

For OBME, the pixel-wise prediction errors of a block and its overlapping neighbouring blocks have to be weighted and summed according to the window function before being squared. As in the process of successively finding/refining motion vectors some neighbouring MVs are not known yet, the corresponding prediction errors can be ignored (not added) as a sub-optimal solution. 对于分块运动估计,一个块的像素预测误差和它的附近搭接块,根据此前自乘的窗函数,都被测重和求和。

The major disadvantages of OBMC are increased computational complexity of OBME, and the fact that prediction errors and, thus, also the optimal motion vectors depend on neighbouring blocks/motion vectors. 分块运动估计最主要的缺点是增加计算的复杂性,和实际的预测误差,因而最友向量依靠于临近运动块向量。

Therefore, there is no algorithm with polynomial computational complexity that guarantees optimal motion vectors. 因此,没有一个多项式(计算的复杂性)算法可以保证最优运动向量。

However, there are near-optimal iterative and non-iterative methods with acceptable computational complexity. 然而,在可接受的计算的复杂性上,存在最接近最理想迭代和非迭代方法。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有