Opened 3 years ago

Closed 3 years ago

#1439 closed defect (fixed)

Incorrect use of reference picture with lower temporal id with GOP size 32

Reported by: fbossen Owned by:
Priority: minor Milestone:
Component: VTM Version: VTM-11.0
Keywords: Cc: ksuehring, XiangLi, fbossen, jvet@…

Description

Decoder fails on bitstreams generated with a large IntraPeriod value. For example:

EncoderApp -c cfg/encoder_randomaccess_vtm.cfg -c cfg/per-sequence/BQSquare.cfg -f 100 --IntraPeriod=96 -q 40

leads to the following error when decoding the picture with POC=64:

ERROR: In function "checkRPL" in VVCSoftware_VTM/source/Lib/CommonLib/Slice.cpp:702: The picture referred to by each active entry in RefPicList[ 0 ] or RefPicList[ 1 ] shall be present in the DPB and shall have TemporalId less than or equal to that of the current picture.

It appears that the bitstream is indeed invalid because the picture with POC=64 and TId=0 references the picture with POC=16 and TId=1. From the encoder log:

POC   32 LId:  0 TId: 0 ( TRAIL, B-SLICE, QP 39 )      10184 bits [Y 29.1010 dB    U 38.0822 dB    V 38.2613 dB] [ET    18 ] [L0 0] [L1 0c]
POC   16 LId:  0 TId: 1 ( STSA, B-SLICE, QP 43 )       2888 bits [Y 28.5046 dB    U 38.2487 dB    V 38.4959 dB] [ET    10 ] [L0 0 32] [L1 32c 0]
...
POC   64 LId:  0 TId: 0 ( TRAIL, B-SLICE, QP 39 )      10928 bits [Y 28.8737 dB    U 37.8027 dB    V 38.1006 dB] [ET    21 ] [L0 32 16] [L1 32c 16]

The issue appears to be specific to the GOP 32 configuration. The configuration encoder_randomaccess_vtm_gop16.cfg does not exhibit this behaviour.

Change history (4)

comment:1 Changed 3 years ago by Kenneth

Thanks Frank for reporting this.

This can be fixed for Frame1 by re-ordering the references in L0 such that the order is 32 64 48 and for L1 by only having one active reference picture.

Frame1 : B 32 -1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 2 3 32 48 64 2 2 32 48

->
Frame1 : B 32 -1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 2 3 32 64 48 1 2 32 48

comment:2 Changed 3 years ago by ksuehring

Shouldn't the encoder have a check and report an error instead of silently generating an incorrect bitstream?

comment:3 Changed 3 years ago by fbossen

Kenneth: thank you for the suggestion. Can you submit a merge request? My understanding is that CTC would not be affected by this modification.

comment:4 Changed 3 years ago by fbossen

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