如何使用HM-11进行YUV到HEVC编码?

时间:2016-06-04 11:51:15

标签: video encode hevc

我很高兴每个人都使用HM-11在HEVC流中编码YUV视频,但我遇到了3个问题:

  1. 当我将帧大小设置为720x1280时,ffmpeg的ffplay显示没有太模糊的视频。一次使用cif格式(352x288)我可以查看它。我还需要设置什么才能查看它。

  2. 我收到了这个警告:

    HM software: Encoder Version [11.0][Windows][VS 1600][32 bit]
    ******************************************************************
    ** WARNING: --SEIDecodedPictureHash is now disabled by default. **
    **          Automatic verification of decoded pictures by a     **
    **          decoder requires this option to be enabled.         **
    ******************************************************************
    
    Error: found fewer Reference Picture Sets than GOPSize
    Error: Invalid GOP structure given
    

    这意味着什么?如何避免此警告?

  3. 最后一个是关于GOP大小的上一个,我该如何变量呢?

1 个答案:

答案 0 :(得分:0)

您的配置文件似乎未正确设置。

我们以 cfg / 目录中的HM提供的 encoder_randomaccess_main.cfg 为例。

第一行是关于文件I / O

#======== File I/O =====================
BitstreamFile                 : str.bin
ReconFile                     : rec.yuv

我通常将其替换为:

#======== File I/O ===============
InputFile                     : your_video.yuv
InputBitDepth                 : 8           # Input bitdepth
FrameRate                     : 24          # Frame Rate per second
FrameSkip                     : 0           # Number of frames to be skipped in input
SourceWidth                   : 416         # Input  frame width
SourceHeight                  : 240         # Input  frame height
FramesToBeEncoded              : 100         # Number of frames to be coded

BitstreamFile                 : your_video.bin
ReconFile                     : rec.yuv
  1. 此处必须根据您的输入视频设置SourceWidthSourceHeight

  2. 编码器似乎发现配置文件中给出的GOP结构无效。这可能有不同的原因。在coding structure部分下的配置文件中给出的GOP结构确实无效。或者这可能与您遇到的第一个问题(其他错误的配置参数)有关。

  3. 您可以在coding structure部分下的配置文件中更改GOP结构。在这里,我建议您阅读 doc / 目录中HM中给出的文档。关于 software_manual.pdf 中的GOP结构有一个很好的解释。

  4. 举个例子,这里是默认文件 encoder_randomaccess_main.cfg

    中给出的GOP结构
    #======== 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                       : 8           # GOP Size (number of B slice = GOPSize-1)
    #        Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures     predict deltaRPS #ref_idcs reference idcs 
    Frame1:  B    8   1        0.442    0            0              0           2                3         -8 -12 -16             0
    Frame2:  B    4   2        0.3536   0            0              1           2                3         -4  -8   4             1       4        4         1 1 0 1
    Frame3:  B    2   3        0.3536   0            0              2           2                4         -2  -6   2 6           1       2        4         1 1 1 1
    Frame4:  B    1   4        0.68     0            0              3           2                4         -1   1   3 7           1       1        5         1 0 1 1 1
    Frame5:  B    3   4        0.68     0            0              3           2                4         -1  -3   1 5           1      -2        5         1 1 1 1 0
    Frame6:  B    6   3        0.3536   0            0              2           2                3         -2  -6   2             1      -3        5         0 1 1 1 0
    Frame7:  B    5   4        0.68     0            0              3           2                4         -1  -5   1 3           1       1        4         1 1 1 1
    Frame8:  B    7   4        0.68     0            0              3           2                4         -1  -3  -7 1           1      -2        5         1 1 1 1 0