Opened 4 years ago

Closed 4 years ago

#680 closed defect (fixed)

Mismatch between SW and spec on DepQuant state transition

Reported by: wzeng Owned by:
Priority: minor Milestone:
Component: spec Version: VVC D7 vB
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

In VVC D7 vB, par_level_flag[n] is used for DepQuant state transition.

QState = QStateTransTable[ QState ][ par_level_flag[ n ] ]

But in VTM7.0rc1, (level & 1) is used (in function Quantizer::dequantBlock).

state = ( 32040 >> ((state<<2)+((level&1)<<1)) ) & 3;

When level=1, par_level_flag[n] is not parsed and it's inferred to be 0. In this case, (level & 1) != par_level_flag[n].

Suggest to align the text with VTM by changing the line to:

QState = QStateTransTable[ QState ][ AbsLevel[xC][yC] & 1]

Change history (2)

comment:1 Changed 4 years ago by schwarz

I agree.

There are three places in the syntax, where the state transition table is used. Two of them are correct (they use AbsLevel1 or Abslevel), but the last one (in final reconstruction), should be changed from

QState = QStateTransTable[ QState ][ par_level_flag[ n ] ]

to

QState = QStateTransTable[ QState ][ AbsLevel[ xC ][ yC ] & 1 ]

comment:2 Changed 4 years ago by bbross

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

Thanks for reporting.

This will be fixed JVET-P2001-vC.

Note: See TracTickets for help on using tickets.