VVC学习之三:GOP结构和参数

GOP (Group of Picture, 图像组)

视频压缩时,会先将视频序列分成若干图像组GOP,以GOP为单位进行压缩。GOP有两种,封闭式GOP和开放式GOP,封闭式GOP以IDR图像开始,各个GOP之间独立压缩。开放式GOP的第一个帧内编码图像为IDR图像,后续GOP中的第一帧为non-IDR图像。


IDR(Instantaneous Decoding Refresh) – 即时解码刷新

IDR帧和I帧的联系:

  • IDR帧和I帧都是采用帧内预测。

IDR帧和I帧的区别:

  • IDR帧的作用是立刻刷新,防止错误传播,从IDR帧开始,从新进行序列后续编码。换句话说,IDR帧具有随机访问的能力,IDR帧后续的编码,完全不依赖前面帧的信息。IDR会使得DPB清空,而I帧不会。
  • IDR图像一定是I图像,但I图像不一定是IDR图像。一个序列中可以有很多的I图像,I图像之后的图像可以引用I图像之间的图像做运动参考。一个序列中可以有很多的I图像,I图像之后的图象可以引用I图像之间的图像做运动参考。

GOP参数

配置参数 详细解释
Type Slice类型
Poc GOP中帧的播放顺序,范围 [1,GOPsize]
QPoffset 帧级QP的偏移量,QPBase + QPoffset = QPfinal
QPOffsetModelOff 基于QPfinal的最终QP线性矫正模型的偏移量
QPOffsetModelScale 基于QPfinal的最终QP线性矫正模型的尺度因子
CbQPoffset slice级Cb分量的QP偏移量
CrQPoffset slice级Cr分量的QP偏移量
QPfactor 计算率失真优化时的权重,越大说明编码质量越低,同时编码比特越少。一般在[0.3,1]之间
tcOffsetDiv2 环内去块滤波器参数LoopFilterTcOffset_div2的偏移量,记录在slice头中,范围是[-6,6]之间的整数
betaOffsetDiv2 环内去块滤波器参数LoopFilterBetaOffset_div2的偏移量,记录在slice头中,范围是[-6,6]之间的整数
temporal_id GOP中帧所在时域层,帧间预测智能从低时域层预测高时域层,如果在参考帧列表中存在高时域层帧,将不会被使用
#ref_pics_active 参考帧列表L0和L1的尺寸,即参考帧的个数
#ref_pics 当前帧所拥有的参考帧数量,包括当前帧使用的参考帧和未来会被用到的参考帧
reference_pictures 当前帧的参考帧相对于当前帧的相对POC,长度由ref_pics决定,且参考帧按照POC绝对值由小到大排序,负值在前,正值在后
predict 定义语法元素inter_ref_pic_set_prediction_flag的值。0表示参考图像集不使用帧间RPS预测进行编码,同时下面的参数deltaRIdx-1,deltaRPS,ref_idcs和reference_idcs都可以被忽略。1表示参考图像集使用帧间RPS预测,预测参数由接下来所有的参数决定。2表示采用参考图像集使用帧间RPS预测,但只需要deltaRIdx-1。
deltaRIdx-1 当前RPS的索引与预测RPS的索引差值减一
deltaRPS 预测RPS的POC和当前RPS的POC的差值
#ref_idcs 编码当前RPS需要的ref_idcs的数量,其值和预测RPS的num_ref_pics的值减一相等
reference_idcs 帧间RPS预测的ref idcs值,长度由ref_idcs决定。其值可以为0、1、2,分别表示参考图像是当前帧的参考帧、参考图像是未来帧的参考帧、参考图像将不被用来当做参考帧。

VTM 中 encoder_randomaccess_vtm.cfg的Coding Structure配置

GOPsize 扩展为 16

#======== Coding Structure =============
IntraPeriod                   : 32          # Period of I-Frame ( -1 = only first)
DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize                       : 16          # GOP Size (number of B slice = GOPSize-1)

IntraQPOffset                 : -3
LambdaFromQpEnable            : 1           # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
#        Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures     predict deltaRPS #ref_idcs reference idcs
Frame1:  B   16   1        0.0                      0.0            0          0          1.0      0            0              0           2                3         -16 -24 -32            0
Frame2:  B    8   1       -4.8848                   0.2061         0          0          1.0      0            0              1           2                3         -8  -16   8            1       8        4         1 1 0 1
Frame3:  B    4   4       -5.7476                   0.2286         0          0          1.0      0            0              2           2                4         -4  -12   4  12        1       4        4         1 1 1 1
Frame4:  B    2   5       -5.90                     0.2333         0          0          1.0      0            0              3           2                5         -2  -10   2   6  14    1       2        5         1 1 1 1 1
Frame5:  B    1   6       -7.1444                   0.3            0          0          1.0      0            0              4           2                5         -1    1  3    7  15    1       1        6         1 0 1 1 1 1
Frame6:  B    3   6       -7.1444                   0.3            0          0          1.0      0            0              4           2                5         -1   -3   1   5  13    1      -2        6         1 1 1 1 1 0
Frame7:  B    6   5       -5.90                     0.2333         0          0          1.0      0            0              3           2                4         -2   -6   2  10        1      -3        6         0 1 1 1 1 0
Frame8:  B    5   6       -7.1444                   0.3            0          0          1.0      0            0              4           2                5         -1   -5   1   3  11    1       1        5         1 1 1 1 1
Frame9:  B    7   6       -7.1444                   0.3            0          0          1.0      0            0              4           2                5         -1   -3  -7   1   9    1      -2        6         1 1 1 1 1 0
Frame10: B   12   4       -5.7476                   0.2286         0          0          1.0      0            0              2           2                3         -4  -12   4            1      -5        6         0 0 1 1 1 0
Frame11: B   10   5       -5.90                     0.2333         0          0          1.0      0            0              3           2                4         -2  -10   2   6        1       2        4         1 1 1 1
Frame12: B    9   6       -7.1444                   0.3            0          0          1.0      0            0              4           2                5         -1   -9   1   3   7    1       1        5         1 1 1 1 1
Frame13: B   11   6       -7.1444                   0.3            0          0          1.0      0            0              4           2                5         -1   -3 -11   1   5    1      -2        6         1 1 1 1 1 0
Frame14: B   14   5       -5.90                     0.2333         0          0          1.0      0            0              3           2                4         -2   -6 -14   2        1      -3        6         0 1 1 1 1 0
Frame15: B   13   6       -7.1444                   0.3            0          0          1.0      0            0              4           2                5         -1   -5 -13   1   3    1       1        5         1 1 1 1 1
Frame16: B   15   6       -7.1444                   0.3            0          0          1.0      0            0              4           2                5         -1   -3 -7  -15   1    1      -2        6         1 1 1 1 1 0


你可能感兴趣的:(VVC/H.266学习日记)