《The H.264 advanced video compression standard》读书笔记-3.3 prediction model 预测模型

个人翻译:(这一篇详细讲述了为什么以块来进行预测,个人整理原文进行了翻译)

             3.3 预测模型

  这个模块的输入数据是当前帧或场的图像采样集,模块的目的是减少存储数据的冗余度,原理是通过对数据的进行预测,然后从当前的已知的输入数据中减去预测得到的数据,形成一个残差帧。得到这个相对小的差值数据进行输出以此减少数据的冗余。预测数据的依据可以是先前已经编码的帧(时间上预测)或者是当前同一帧中已经编码的图像样本(空间预测)。预测数据越准确,得到的残差帧就越小。模块的输出--残差帧被传输给解码器,解码器也会自己生成一个一样的预测数据,然后结合得到的残差帧数据来重构图像,为了解码器能够生成和编码器一致的预测数据,编码器必须使用对应情况下解码器可用的数据来生成预测进行编码,比如已经编码并且被传输到解码器的数据。

         3.3.1 时间上预测

     预测帧依据 时间轴上先于当前或后于当前但已知 (past or future known)的一帧或者多帧数据作为参考帧,预测的准确性可以通过对参考帧和当前帧进行运动补偿来提高。

        3.3.1.1 依据时间轴上之前的帧来进行预测

     最简单的时间域预测方法就是使用之前的帧作为参考来预测当前帧。图形 3.4和3.5中展示了一个视频序列的两个连续帧的情形。帧1 作为帧2 的预测参考,如图形 3.6 所示通过从帧2 中减去帧1来得到残差帧。这个图像中,中性灰表示无差别亮色和暗色分别对应正负差别。很明显,这个残差帧任然含有不少的信息量(图中亮色和暗色区域),这也就意味着即使是使用"时间预测"后还是有很多信息需要进行压缩。残差帧中的信息量多数是因为两帧间物体的移动所留下来的,因此通过对两帧间的移动做补偿的方式或许可以获得一个更加准确的预测数据。

        3.3.1.2 移动导致的变化

           引起两帧之间产生变化的原因有 移动、局部遮挡、和光线变化。移动又包括刚性物体移动,比如一辆移动的小汽车,物体的变形导致的移动,比如一个讲话的人,和拍照相机的动作导致的图像移动比如平移,倾斜,变焦和旋转。一个遮挡区域也许是一个场景的背景被一个移动的物体所遮挡,除了局部遮挡和光线变化两种情况之外,其他情况两帧之间都有相匹配的像素。所以可以通过预测连续帧之间的每一个像素的轨迹,来产生一个像素轨迹的场,我们称之为光流 optical flow。如图3.7表示了图3.4和3.5的光流场。完整的光流场应该是包含了每一个像素的位置变化的向量,但是为清晰可见考虑,本图像只列出了 2nd(?) 像素的矢量。

      如果光流场准确可知,通过参照他的光流向量来移动参考帧上所有的像素,就 有可能得到一个准确的预测帧数据。然而,这个方法是不切实际的,首先,一个准确的光流的获取需要非常复杂的计算,因为需要对每一个像素都进行精准的迭代计算,其次,为了解码器能够重新构建预测帧需要将每个像素的光流向量都发送到解码端,这将会形成大量的数据传输,直接就抵消了小残差带来的哪一点低数据量的优势。

3.3.1.3 基于块的移动预测和补偿

     实践中,被广泛采用的可行的移动补偿方法是对前帧中的矩形区域进行移动补偿。对当前帧中的每个MxN样本块执行以下过程:

 >< 在参考帧(可以是前面的帧也可以是后面的帧,是已经被编码的参考帧)中进行区域搜索来找一个相似的MxN采样块。在当前帧中,确定一个搜索区域,比如以当前采样块为中心的一个区域,将该区域中所有可能的MXN块和当前块(真正被被编码的)进行比较,找出最匹配的块。普遍采用的一种匹配标准是通过残差数据(由当前MXN块数据减去被搜索的MxN块得到的差值)的大小来衡量,查找残差数据最新的块作为最佳匹配。我们称这个查找最佳匹配的过程为移动预测。

><被选中的块成为 当前MxN块的预测因子,从当前块中减去预测因子得到 一个MxN残差块(称之为移动补偿块)

><残差块被编码,连同两个块之间的偏移量(移动向量)一起被传输到解码端。

解码器使用接受到的移动向量来重构 预测的块图像,同时解析残差块,将残差块加上预测块即可获得原始的块图像。

基于块的移动补偿,是比较被认可的一种方法,相对简单,易于计算,并且非常适合矩形图像和基于图像块的变换,比如离散余弦变换( Discrete Cosine Transform) ,它为许多视频序列提供了一个合理有效的时间模型. 但是,它还是有一些缺点,例如,例如,“真实”对象很少具有与矩形边界匹配的整齐边缘,对象经常在帧之间移动一小部分像素位置,并且使用基于块的方法,有很多种物体移动是难以进行移动补偿的。例如可变形的物体,旋转,翘曲和复杂的运动,如烟云。 尽管存在这些缺点,但基于块的运动补偿是所有当前视频编码标准所使用的时间预测模型的基础。

3.3.1.4 运动补偿预测宏块

猜你喜欢

转载自blog.csdn.net/u012459903/article/details/88862429
今日推荐