看起来您的配置文件设置不正确。
让我们以cfg/目录中的 HM 提供的encoder_randomaccess_main.cfg为例。
第一行是关于File 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
这里SourceWidth
和SourceHeight
必须根据您的输入视频进行设置。
编码器似乎发现您的配置文件中给出的 GOP 结构无效。这可能有不同的原因。该部分下的配置文件中给出的 GOP 结构coding structure
确实无效。或者这可能与您遇到的第一个问题(其他错误的配置参数)有关。
您可以在配置文件中更改 GOP 结构部分coding structure
。在这里,我建议您阅读doc/目录中 HM 中给出的文档。在software_manual.pdf中有一个关于 GOP 结构的很好的解释。
例如,这里是默认文件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