Opened 3 years ago

Closed 3 years ago

#1536 closed defect (fixed)

VTM encoder generates non decodable stream because of incorrect numExpSliceInTile

Reported by: iole_moccagatta Owned by:
Priority: major Milestone: VTM-15.0
Component: VTM Version: VTM-15.0
Keywords: numExpSliceInTile Cc: ksuehring, fbossen, XiangLi, jvet@…

Description

VTM encoder command:
EncoderAppStatic -c BasketballDrill.cfg -c encoder_randomaccess_vtm_IM.cfg -c test_rect_slice-2-2-1-1.cfg -i test.yuv -wdt 128 -hgt 192 -f 1

VTM decoder command and error:
DecoderAppStatic -b str.bin -o dec_str.yuv

VVCSoftware: VTM Decoder Version 15.2 [Linux][GCC 5.5.0][64 bit] [SIMD=AVX2]

ERROR: In function "getTileRowBd" in /users/HOME/iole/VTM/VVCSoftware_VTM_15.2/VVCSoftware_VTM/source/Lib/CommonLib/Slice.h:2178: Tile row index exceeds valid range

Possible root cause:
we suspect a bug in VLCWriter.cpp when calculating numExpSliceInTile.

In the attached config files CTU = 32 and frame size=128x192, so frame size in CTU unit is 4x6.
In test_rect_slice-2-2-1-1.cfg 4 slices’ height in CTU unit is 2,2,1,1. So, numExpSliceInTile should be 3, and the encoder should encode
pps_exp_slice_height_in_ctus_minus1[0] = 1
pps_exp_slice_height_in_ctus_minus1[1] = 1
pps_exp_slice_height_in_ctus_minus1[2] = 0
in pps header, the height of the last slice is derived by decoder

It seems the VTM Encoder compute numExpSliceInTile as 2, and encodes
pps_exp_slice_height_in_ctus_minus1[0] = 1
pps_exp_slice_height_in_ctus_minus1[1] = 1
into pps header

Therefore VTM decoder's slice layout is 3 slices with 2 CTU height each, and an error is detected.

One possible fix is to add “else {break;}” under line 380.

Attachments (4)

BasketballDrill.cfg (644 bytes) - added by iole_moccagatta 3 years ago.
encoder_randomaccess_vtm_IM.cfg (18.0 KB) - added by iole_moccagatta 3 years ago.
test_rect_slice-2-2-1-1.cfg (1.4 KB) - added by iole_moccagatta 3 years ago.
str.bin (12.6 KB) - added by iole_moccagatta 3 years ago.

Download all attachments as: .zip

Change history (7)

Changed 3 years ago by iole_moccagatta

Changed 3 years ago by iole_moccagatta

Changed 3 years ago by iole_moccagatta

Changed 3 years ago by iole_moccagatta

comment:2 Changed 3 years ago by iole_moccagatta

I confirm MR2184 fixes the problem. Thanks for the quick turn around.

comment:3 Changed 3 years ago by ksuehring

  • Resolution set to fixed
  • Status changed from new to closed

The suggested fix was merged.

Note: See TracTickets for help on using tickets.