Opened 21 months ago
Last modified 20 months ago
#1595 new defect
decoding error when generating multilayer bitstream
Reported by: | xiaozhongxu | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Conformance | Version: | VTM-19.0 |
Keywords: | Cc: | ksuehring, fbossen, jvet@… |
Description
VTM decoder cannot correctly decode multilayer bitstream that is generated by unmodified VTM encoder (with config. changes).
Related conformance bitstreams:
OLS_A_Tencent_5 (bitstream as well as cfg files attached)
OLS_B_Tencent_5 (encoder exit without a message, cfg files attached)
OLS_C_Tencent_5 (encoder exit without a message, cfg files attached)
This bug report may be related to #1581.
VTM version: VTM-20.0
Commandline for OLS_A_Tencent_5:
EncoderApp.exe -c encoder_lowdelay_P_vtm.cfg -c two_layers_wo_ILP.cfg -c RaceHorses.cfg
Decoder error message:
ERROR: In function "DecLib::xDecodeSlice" in C:\Work\JVET\Conformance\VVCSoftware_VTM-VTM-20.0\source\Lib\DecoderLib\DecLib.cpp:2829: All slices in OlsInScope shall have the same value of nuh_layer_id when ptl_multilayer_enabled_flag is equal to 0
Commandline for OLS_B_Tencent_5:
EncoderApp.exe -c encoder_lowdelay_P_vtm.cfg -c two_layers_w_ILP.cfg -c RaceHorses.cfg
Commandline for OLS_C_Tencent_5:
EncoderApp.exe -c encoder_lowdelay_P_vtm.cfg -c three_layers_w_ILP.cfg -c RaceHorses.cfg
Attachments (1)
Change history (3)
Changed 21 months ago by xiaozhongxu
comment:1 Changed 20 months ago by ksuehring
comment:2 Changed 20 months ago by ksuehring
A possible solution is submitted in https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/-/merge_requests/2573
For the B and C streams with inter-layer prediction I get the following encoder error though:
ERROR: In function "xInitLibCfg" in source/App/EncoderApp/EncApp.cpp:222: ptl_multilayer_enabled_flag shall be equal to 1 when target layer use inter layer prediction
The error is incomplete since it does not cover the A case without inter-layer prediction.
The suggested patch prints a warning and updates the flag to 1.
The simple work-around would be to add --MultiLayerEnabledFlag=1 to the command line.
But the encoder should actually rather set the flag automatically instead of silently continuing to encode an invalid bitstream.