关于运动估计与运动补偿的个人一点理解

来源:互联网 发布:字符数组初始化null 编辑:程序博客网 时间:2024/06/10 06:01

       由于本人初次接触H.264/AVC,难免有所不妥,请各位谅解,仅供大家初学者一起相互学习进步!

       看了博客上比较流行的那篇《运动估计与运动补偿》,摘取其中一些对自己有用的东西。

       1.运动估计:简单说就是得到运动矢量的过程。

       那什么是运动矢量呢? 

       答:运动矢量就是相邻帧,前后两个块显示的一样的东西的空间位置的相对对偏移量。这个量有大小和方向。

       2.块匹配准则:就是为了找到前后两帧中相同的那个宏块,这里选取一个匹配准则来判定它们俩之间是否匹配。

        常用的匹配函数有哪些? 

        答 :1)最小均方差函数(MSE)

         (2)最小平均绝对值误差(MAD)等效于常用的绝对差值和(SAD)准则,性能              很好,而且相对简单的硬件需求,因而得到了最广泛的应用。

         (3)阈值差别计数(NTD)      (具体公式自己翻看毕的书,不难理解)

    3.运动估计有什么用?

     答:“ 每一个帧间宏块或块都是根据先前已编码的数据预测出的,根据已编码的宏块、块预测的值和当前宏块、块作差值,结果被压缩传送给解码器,与解码器所需要的其他信息如(运动矢量、预测模型等)一起用来重复预测过程。"

        这句话的理解,当前帧的宏块是预测出来的,我们传输的是已编码的宏块(块)预测的值和当前宏块(块)作差,这个差其实可以残差,我们传输的时候就传输残差和预测值就可以了,最后恢复的时候只要把残差和预测值进行相加,就可以得到之前的宏块的值。其中肯定还要用到运动矢量,它可以指引我们从参考帧中找到当前帧的宏块。

       4.如何选择宏块的大小?

          答:在细节比较多的帧中如果选择较大的块尺寸,意味着用于表明运动矢量和分割区域类型的比特数会少些,但是运动压缩的冗余度要多一些;如果选择小一点的块尺寸,那么运动压缩后冗余度要少一些,但是所需比特数要比较多。因此必须要权衡块尺寸选择上对压缩效果的影响,一般对于细节比较少、比较平坦的区域选择块尺寸大一些,对于图像中细节比较多的区域选择块尺寸小一些。一句话总结,细多块小,细小块大。

       5.色度块和亮度块有什么关系?

          答: 宏块中的每个色度块 (Cb 和 Cr) 尺寸宽高都是亮度块的一半, 色度块的分割方法和亮度块同样,只是尺寸上宽高都是亮度块一半(如亮度块是 8×16 块尺寸大小,那么色度块就是 4×8,如果亮度块尺寸为 8×4,那么色度块便是 4×2 等等) 。每个色度块的运动矢量的水平和垂直坐标都是亮度块的一半。(目前不知道这个干嘛用的)

       6.什么是运动搜索算法?

          答:就是找到使得匹配误差函数最小的那个块的计算方法,然后我们就可以得到运动矢量了。主要几种算法可以归纳如下:(1)全局搜索算法 (2)分数精度搜索算法 (3)快速搜索算法 (4)分级搜索范围(DSR)算法 (5)混合搜索算法  (貌似每个搜索算法都挺复杂的,看不懂哦)


0 0