AVC、HEVC、VVC帧间预测技术

帧间预测总体思路:    
    帧间预测主要的工作是运动估计与运动补偿。
    所谓运动估计简单说就是在参考帧中找到当前块的最优参考块,用运动向量(MV)表示参考块与当前块的位置关系。
    所谓运动补偿简单说就是对参考块与当前块求差值得到残差用于传输。
    总的过程:通过搜索算法找到最优的参考块,计算MV,计算残差,
    MV提供位置信息,残差提供值的信息。
==============================================================================================================
运动估计:
    主要有像素递归法和块匹配法。在块匹配法中,块匹配准则:SAD(绝对误差和)、MSE(均方误差)、NCCF(归一化互相关函数)
    
1、什么是运动搜索?    以预测MV为起点,搜索当前块MV的过程。
2、为什么需要运动搜索?主要目的是搜索当前块的MV。
3、如何进行运动搜索?常用的搜索算法有:1、全局搜索法;2、TZserch搜索法。(以AMVP得到的MV作为搜索起点)

==============================================================================================================
H264:
    分割模式:16*16的宏块,可分割为:一个16*16、两个16*8或8*16、四个8*8。8*8:8*8、两个8*8或4*8、四个4*4.
这种分割下的运动补偿称为:树状运动补偿。色度的分割尺寸为亮度的一半:如luma为8*4,则chroma为4*2.分割模式相同。
    MV:亮度采用1/4精度,色度采用1/8精度。内插求得。
    
    MVP:当前块(E)的MVP由,参考左边(A)、上边(B)和右上(C)预测得到。
        1)E不包含16x8/8x16,则MVP=ABC的MV中值
        2)包含不同尺寸时,预测参考不同。
    MVD:MV与MVp的差值。
    
    编码MVD
--------------------------------------------------------------------------------------------------------------
P片:
    只参考list0。
B片:
    可参考list0和list1。不同分割可选择不同的预测模式。
    16*16:直接、list0、list1、双向
    16*8/8*16:list0、list1、双向
    8*8:直接、list0、list1、双向
    双向预测:预测值 = (pred0 + pred1) / 2.
--------------------------------------------------------------------------------------------------------------
加权预测:用于修正P或B片中运动补偿预测像素。    
==============================================================================================================
H265:
    帧间预测步骤:
        1)建立MVP候选列表,确定搜索起点;
        2)从搜索起点开始进行TZ搜索,找到最优的参考块,得到最优的MV;具体方法:率失真代价最小的MV
        3)进行运动补偿,计算残差;
        4)编码;编码MVD和索引号。
        
    帧间预测的两种模式:Merge模式和AMVP模式:
        1)Merge模式:
                首先为当前PU建立一个MV候选列表(包含5个MV:4个空域,1个时域),计算率失真代价,选择代价最小的MV
            作为当前块的预测MV,即使用MV候选列表的MV。编解码两端用同样的方法建立候选列表。最终只传输MV在候选列表中
            的索引值。
        2)AMVP模式:
                即常规帧间预测模式。同样建立MV候选列表(长度为2,左侧和上测各一个),然后从中选择最优的预测MV,
            并计算MVD。解码端建立同样的候选列表。仅传输MVD和预测MV在候选列表中的位置就能计算出当前PU的MV。
            预测MV是进行运动估计的搜索起点,从这个地方开始TZ扫描,找到最佳匹配块,得到最优MV。用该MV减去预测MV得到MVD。
        3)Merge中的SKIP模式:
                即邻近的运动程度和当前差不多,得到的MV与当前块基本一致,直接传输SKIP标志和MV列表索引即可。
        
        MV候选列表的建立:    
        1)Merge:候选列表长度为5,其中空域4个,时域1个。空域计算方法:A1、B1、A0、B0、B2五个,时域则根据公式计算。
        2)AMVP:候选列表长度为2。空域候选列表长度为5(同Merge)选出前2个,时域候选列表为2,选出一个,组合空域与时域
                候选MV,选出前2个MV作为最终的候选MV。
==============================================================================================================
H266:
    在VVC中,为了提高运动矢量的预测精度,使用1/16像素精度。
    
    预测基本步骤同H265.不同点在于:
    
    1)Merge模式:新增历史MVP和平均MVP
    
        MV候选列表新增加了历史MVP和平均MVP。HEVC则只有时空MVP。VVC会维持一个历史MVP列表,每编码一个CU就会将MV加入历
    史MVP列表中,删除最旧的MV。如果时空MV候选列表没有填满,则会使用历史MVP填充,如果仍为填满,则使用已经加入候选MV的
    平均值作为新的候选MV。
        
        不同点在于候选列表的长度,构造的过程。如果MV候选列表没有填满,则通过建立HMVP候选列表,并计算表中前四个候选MV,
    两两均值后,将有效的MV添加仅merge候选列表中。
    
    2)Merge模式:
    2)AMVP模式:同HEVC
        
    3)仿射运动补偿预测模式:
        主要解决的问题:平移运动模型的运动补偿不能解决实际运动中的缩小、放大等各种不规则运动。VVC采用基于子块的仿射变换
    解决这个问题。
        步骤:1)将运动估计块划分为4*4的子块。2)对每个亮度子块按四参数模型和六参数模型由参考点的仿射向量计算其中心像素
    的运动向量,然后四舍五入到1/16精度。
        也分为Merge模式和AMVP模式。
        
    4)自适应运动矢量精度技:
    
        在H.266/VVC中,MVD可以使用三种精度分辨率进行编码,分别为1/4亮度像素精度,整数亮度像素精度,4倍整数亮度精度。而
    在HEVC中,仅仅使用1/4亮度像素精度和整数亮度精度。现在,编码器可以在三种精度中进行自由选择,并决定出一个最优的精度进
    行最终编码,使用一个标记符进行标记。这样可以在不同的图像中,自由的选择性能最佳的精度方式。
    
==============================================================================================================


 

你可能感兴趣的:(工作学习,编解码,AVC,HEVC,VVC)