Opened 4 months ago

Last modified 2 months ago

#432 new defect

TileUniformSpacing not working

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

Description

In VLCWriter.cpp

    if (pcPPS->getUniformTileSpacingFlag())
    {
      WRITE_UVLC( pcPPS->getTileColsWidthMinus1(),   "tile_cols_width_minus1" );
      WRITE_UVLC( pcPPS->getTileRowsHeightMinus1(),  "tile_rows_height_minus1" );
    }

However the underlying variables m_tileColsWidthMinus1 and m_tileRowsHeightMinus1 are uninitialized.

At the decoder this finally results ins

ERROR: In function "xReadCode" in source/Lib/DecoderLib/VLCReader.cpp:116: Reading a code of lenght '0'

Change history (6)

comment:1 Changed 4 months ago by ksuehring

Uniform tile spacing had a parsing dependency problem in Draft 5. So I didn't really align the software with the spec text. A fix was adopted in Gothenburg. I'm expecting the implementation to fix this software issue as well.

comment:2 Changed 4 months ago by ksuehring

Ticket #469 has been marked as a duplicate of this ticket.

comment:3 Changed 3 months ago by hongbin

In VTM-6.1, this problem is still not solved.

comment:4 Changed 3 months ago by ksuehring

VTM-6.1 is a bug fix release for CEs, it does not intend to include all HLS implementations of the Gothenburg meeting. Those are expected for VTM-6.2.

comment:5 Changed 2 months ago by ksuehring

Can you test with current head? The syntax fixes are implemented and I also added some more bug fixes for tiles. Note, SliceMode=4 is still broken, but a single slice worked for the cases that I tested with.

comment:6 Changed 2 months ago by jsauer

I believe it works. I tested with and without slices:

bin/EncoderAppStatic -c cfg/encoder_randomaccess_vtm.cfg --OutputBitDepth=10 --OutputBitDepthC=10 --TemporalSubsampleRatio=1 --FramesToBeEncoded=65 --IntraPeriod=32 --Level=5.2 --QP=37 --FrameRate=30 --SourceHeight=240 --SourceWidth=416 --InputFile=RaceHorsesM_416x240_30fps_8bit_420pf.yuv --BitstreamFile=str/RaceHorsesM_416x240_QP37_FTBE32to64.vvc --ReconFile=rec/RaceHorsesM_416x240_QP37_FTBE32to64_rec_enc.yuv --FrameSkip=32 --InputBitDepth=8 --InputChromaFormat=420 --SEIDecodedPictureHash=1 --TileUniformSpacing=1 --UniformTileColsWidthMinus1=1 --UniformTileRowHeightMinus1=1
bin/EncoderAppStatic -c cfg/encoder_randomaccess_vtm.cfg --OutputBitDepth=10 --OutputBitDepthC=10 --TemporalSubsampleRatio=1 --FramesToBeEncoded=65 --IntraPeriod=32 --Level=5.2 --QP=37 --FrameRate=30 --SourceHeight=240 --SourceWidth=416 --InputFile=RaceHorsesM_416x240_30fps_8bit_420pf.yuv --BitstreamFile=str/RaceHorsesM_416x240_QP37_FTBE32to64_2.vvc --ReconFile=rec/RaceHorsesM_416x240_QP37_FTBE32to64_rec_enc2.yuv --FrameSkip=32 --InputBitDepth=8 --InputChromaFormat=420 --SEIDecodedPictureHash=1 --TileUniformSpacing=1 --UniformTileColsWidthMinus1=1 --UniformTileRowHeightMinus1=1 --SliceMode=3 --SliceArgument=1 --NumRectSlicesInPicMinus1=1 --RectSlicesBoundaryArray="0 0 1 1"
Note: See TracTickets for help on using tickets.