Opened 2 years ago

Closed 3 months ago

#1595 closed defect (fixed)

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

Change history (5)

Changed 2 years ago by xiaozhongxu

comment:1 Changed 2 years ago by ksuehring

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.

comment:2 Changed 2 years 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.

comment:3 Changed 3 months ago by iole_moccagatta

MultiLayerEnabledFlag=1 has been added to two_layers.cfg in https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/-/merge_requests/2582. MR #2582 has been merged.

OLS_A_Tencent_5
OLS_B_Tencent_5
OLS_C_Tencent_5
have been re-generated (see https://jvet.hhi.fraunhofer.de/trac/vvc/ticket/1581).

We can close this ticket.

comment:4 Changed 3 months ago by iole_moccagatta

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.