HM编码器代码阅读(4)——一些概念

来源:互联网 发布:网红王逗逗的淘宝店铺 编辑:程序博客网 时间:2024/06/05 20:07
    AMVP 即先进运动矢量预测

    AMP 不对称分割

    WPP 波前编码

    SEI 图像增强提高信息

    NAL单元的前两个字节是头部(第一个字节总是0,接着是NAL类型,然后是layer标志,最后是temporal标志)

    DPB 是解码图像缓存

    VCL NAL包含编码数据

    no-VCL NAL包含控制信息

    IRAP图像必须属于时域层0,且使用帧内预测

    leading Picture在解码顺序上紧跟着IRAP图像,但是输出顺序在IRAP图像之前——也叫前置图像

    trailing Picture在解码和输出顺序上都在IRAP图像之后——也叫后置图像(是相对于IRAP图像而言的)

    编码或者解码顺序:IRAP、leading Picture 、 trailing Picture

    有三种类型的trailing Picture:TSA,STSA,TRAIL

    有两种leading Picture:RADL和RASL

    图像的输出顺序由poc决定,但是编码和解码顺序却不一定

    VUI 视频可用信息

    HRD 虚拟参考解码器

    代码中经常出现的 lambda就是拉格朗日因子 “λ”

    MV预测(即MVP,可以有时域或者空域上预测出)有两种新技术:
        1、AMVP 先进MV预测
        2、merge模式

    PCM模式,该模式下编码器直接传输一个CU的像素值,而不经过预测变换等操作

    CBF 就是编码块标志

    运动估计(ME)
        就是为当前的块(在当前的帧中)在参考图像中找到一个最佳的匹配块(使用SAD绝对误差和继续计算)。因为有多个参考帧,因此每一个参考帧都有对应的匹配块,后面会选择代价最小的那个匹配块。

    MV预测(MVP)
        又分为两种预测方式:Merge模式和AVMP方式。MV预测顾名思义,就是这个MV不是计算出来的,而是根据同一帧的相邻块的MV以及参考帧匹配块的MV预测出来的。
         1、MV的空域预测:参考的MV来自同一帧,是当前块的相邻块的MV
         2、MV的时域预测:主要针对B帧。参考的MV来自参考帧匹配块的MV,它还分为下面两种方式:
              (1)当参考的MV都来自同一方向时,那么参考的MV中的一个可以由另一个来预测(注意是参考的MV中的一个,而不是当前的MV,当前的MV自然也是由它们推到出来)
              (2)直接模式的MV预测,如果两个参考帧来自不同的方向,使用的就是这种方式。
    
    加权预测
        表示当前帧的像素可以通过参考帧进行加权得出,分为:
         1、explicit加权预测
         2、implicit加权预测

    HEVC的两种MV预测技术:merge模式,AMVP模式
         1、merge模式:为当前的PU(或者CU)建立一个MV候选列表,列表中存在5个候选MV,通过遍历这5个候选的MV,选出最优的那个MV,然后只需编码该MV所在的索引就行了。它建立的MV候选列表包含了空域和时域两种情况,对于B帧,还会包含组合列表。在HM的代码中,实际上空域、时域的候选MV都放在一个列表中,先存放空域的MV,再存放时域的MV(对于时域的MV需要进行缩放,而且时域MV最多只有一个),如果后续的MV数量不够5个,那么会填充零MV。对于B帧,需要建立两个临时候选列表(在HM中好像没看到!有点疑问?),然后对其中的MV进行两两组合,形成最后的候选列表。
         2、AMVP模式:同样建立候选列表,但是候选MV只有2个。选出最优的预测MV之后,对MV进行差分编码,然后对MVD以及预测MV的索引进行编码即可。对于空域的MV,和merge模式类似,但是选择两个即可;时域MV只选择一个MV,然后组合起来,保留候选列表中的前两个候选MV。
         

 
2 0
原创粉丝点击