Opened 4 months ago

Last modified 4 weeks ago

#1634 new defect

Matrices QStateTransTable,levelScale,AlfFixFiltCoeff,AlfClassToFiltMap are incorrectly transposed

Reported by: peterderivaz Owned by:
Priority: minor Milestone: H.266/VVC v4
Component: spec Version: H.266/VVC v3
Keywords: Cc: ksuehring, bbross, XiangLi, fbossen, jvet@…

Description

The spec defines the ordering of indices in a matrix and initialization syntax in 5.10.

However, the matrices QStateTransTable (7.4.12.11), levelScale (in 8.7.3), AlfFixFiltCoeff (7.4.3.18), AlfClassToFiltMap (7.4.3.18) do not follow this ordering, but instead use C based ordering (i.e. they are transposed).

For example,

The array QStateTransTable[ ][ ] is specified as follows:
  QStateTransTable[ ][ ] = { { 0, 2 }, { 2, 0 }, { 1, 3 }, { 3, 1 } } 

This could be fixed either by transposing the matrices in the spec, i.e.

  QStateTransTable = { {0, 2, 1, 3}, {2, 0, 3, 1} } 

or by swapping the indices when it is accessed, i.e. changing things like
QState = QStateTransTable[ QState ][ AbsLevel[ xC ][ yC ] & 1 ]
to
QState = QStateTransTable[ AbsLevel[ xC ][ yC ] & 1 ][ QState ]

Change history (1)

comment:1 Changed 4 weeks ago by bbross

  • Milestone set to H.266/VVC v4
  • Version set to H.266/VVC v3

Good catch, thanks! Will be fixed in v4 and I prefer transposing the matrices when defined.

Note: See TracTickets for help on using tickets.