Opened 11 months ago
Last modified 8 months 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 8 months 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.