HEVC-帧间编码几种模式总结

文章目录

  • MV预测技术
  • 一、merge模式
    • mergeMV候选列表的建立
      • 空域候选列表建立
      • 时域候选列表的建立
  • 二、AMVP技术
      • AMVP空域列表的建立
      • AMVP时域列表的建立
  • 三、SKIP模式

MV预测技术

MV在空域和时域都有一定的相关性,利用相邻块的MV对当前块MV进行预测,仅仅对预测残差进行编码,可以大幅度减少编码比特数。常用的MV预测技术有skip模式,在HEVC中提出了两种新的技术Merge技术和AMVP技术

一、merge模式

merge模式为当前PU建立一个MV候选表,列表中有5个候选MV,遍历这5个候选MV,进行率失真代价计算,最终选取率失真代价最小的候选MV作为最优MV。该最优MV即被作为当前块MV,因此MVD为0,但这里有一点要注意的是,虽然MVD为0,但是依然要传递MVD信息。编码端传递的信息包括残差和最优MV在merge列表中的索引。这里提供索引是因为编解码端都有同样的已经建立的候选列表,所以编码端传输最优MV索引,就可以在解码端根据索引找到选择的最优MV。

mergeMV候选列表的建立

MV候选列表包含空域候选列表和时域候选列表两种。

空域候选列表建立

HEVC-帧间编码几种模式总结_第1张图片
空域候选列表的建立
(1)HEVC规定,空域最多提供4个候选MV,以上PU按照A1→B1→B0→A0→(B2)的顺序建立,当前四个有一个或者多个不存在时就需要使用B2的信息。
这里注意,对不同的PU划分方式,候选列表的建立方式不一样
HEVC-帧间编码几种模式总结_第2张图片
不同划分方式下PU列表建立方法,这里的不同的划分方法包括对称和不对称划分。

图中PU2的候选列表中不能存在A1的信息,一旦PU2使用了这个信息,就会使得PU1和PU2的MV一致,这和2N×2N没有区别。

时域候选列表的建立

HEVC中规定,时域候选列表只提供一个候选MV。此MV的建立利用当前PU在邻近已编码图像中对应位置PU的运动信息,但和空域不同,时域列表不能直接使用候选块的运动信息,而实要根据和参考图像的位置关系进行比例调整,具体如下:
HEVC-帧间编码几种模式总结_第3张图片
MV比例伸缩图

计算公式为:
在这里插入图片描述
curMV就是候选的结果。

当候选列表的MV个数达不到5个的时候,需要使用(0,0)填补,以达到规定的数目。
对于B slice的PU而言,由于每个PU存在两个MV,因此每个候选列表需要每次提供一个MV对,所以HEVC把MV候选列表中的MV两两组合,产生了用于BSlice的组合列表。
HEVC-帧间编码几种模式总结_第4张图片

二、AMVP技术

全称叫高级运动向量预测技术,和Merge一样,也需要建立候选MV列表,也都使用了空域时域MV预测的思想,但AMVP在选择出最优PU的MV后,需要和当前MV进行求差值,然后对这个差值MVD进行编码,所以这里的MVD是不等于0的,同时AMVP的候选列表长度是2,构建列表的方式也有区别,下面来看看AMVP是怎么构建列表的。

AMVP空域列表的建立

直接摘下来把,,,
HEVC-帧间编码几种模式总结_第5张图片
图4.27就是上面merge的那个空域图。

AMVP时域列表的建立

和merge的建立方法相同。
下面的流程图就是整个候选MV列表的建立流程图
HEVC-帧间编码几种模式总结_第6张图片

三、SKIP模式

skip模式相当于Merge模式中的一种特殊模式,特殊在于,skip模式是不传残差信息的,它直接把参考块当成是当前块。编码段传递的信息包括SKIP-flag标记,和候选列表索引。

以上就是帧间编码这块的一些学习总结了,有不足或者补充的后面再接再厉。

你可能感兴趣的:(HEVC菜鸟学习之路)