Opened 4 months ago
Last modified 4 weeks ago
#1630 new defect
Missing equations for applying AmvrShift
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
In the semantics for amvr_precision_idx, some motion vectors are adjusted as follows:
Otherwise (inter_affine_flag[ x0 ][ y0 ] is equal to 1), the variables MvdCpL0[ x0 ][ y0 ][ 0 ][ 0 ], MvdCpL0[ x0 ][ y0 ][ 0 ][ 1 ], MvdCpL0[ x0 ][ y0 ][ 1 ][ 0 ], MvdCpL0[ x0 ][ y0 ][ 1 ][ 1 ], MvdCpL0[ x0 ][ y0 ][ 2 ][ 0 ] and MvdCpL0[ x0 ][ y0 ][ 2 ][ 1 ] are modified as follows: MvdCpL0[ x0 ][ y0 ][ 0 ][ 0 ] = MvdCpL0[ x0 ][ y0 ][ 0 ][ 0 ] << AmvrShift (165) MvdCpL1[ x0 ][ y0 ] [ 0 ][ 1 ] = MvdCpL1[ x0 ][ y0 ][ 0 ][ 1 ] << AmvrShift (166) MvdCpL0[ x0 ][ y0 ][ 1 ][ 0 ] = MvdCpL0[ x0 ][ y0 ][ 1 ][ 0 ] << AmvrShift (167) MvdCpL1[ x0 ][ y0 ] [ 1 ][ 1 ] = MvdCpL1[ x0 ][ y0 ][ 1 ][ 1 ] << AmvrShift (168) MvdCpL0[ x0 ][ y0 ][ 2 ][ 0 ] = MvdCpL0[ x0 ][ y0 ][ 2 ][ 0 ] << AmvrShift (169) MvdCpL1[ x0 ][ y0 ] [ 2 ][ 1 ] = MvdCpL1[ x0 ][ y0 ][ 2 ][ 1 ] << AmvrShift (170)
Note that the description says that 6 locations in the array MvdCpL0 are modified, while the equations modify 3 locations in the array MvdCpL0 and 3 locations in the array MvdCpL1.
I wonder if both the description and the equations are incomplete, and the correct thing to do is to modify the 6 locations in the array MvdCpL0 and also the same 6 locations in the array MvdCpL1?
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
Note: See TracTickets for help on using tickets.
Good catch, thanks! This is probably a copy/paste typo from the non-affine Mvd arrays above and should be fixed to: