Opened 6 years ago
Closed 5 years ago
#318 closed defect (fixed)
Missing initialization of MvdCpL0 array
Reported by: | fbarbier | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | spec | Version: | VVC D7 vE |
Keywords: | Cc: | ksuehring, bbross, XiangLi, fbossen, jvet@… |
Description
In 7.3.7.5 Coding unit syntax,
conditions on MotionModelIdc trigger parsing of mvd_coding with different values of cpIdx (0..2).
mvd_coding( x0, y0, 0, 0 ) if( MotionModelIdc[ x0 ][ y0 ] > 0 ) mvd_coding( x0, y0, 0, 1 ) if(MotionModelIdc[ x0 ][ y0 ] > 1 ) mvd_coding( x0, y0, 0, 2 )
However, the decision for parsing amvr_flag may use a non initialized slot
if( ( sps_amvr_enabled_flag && inter_affine_flag[ x0 ][ y0 ] = = 0 && ( MvdL0[ x0 ][ y0 ][ 0 ] != 0 | | MvdL0[ x0 ][ y0 ][ 1 ] != 0 | | MvdL1[ x0 ][ y0 ][ 0 ] != 0 | | MvdL1[ x0 ][ y0 ][ 1 ] != 0 ) ) | | ( sps_affine_amvr_enabled_flag && inter_affine_flag[ x0 ][ y0 ] = = 1 && ( MvdCpL0[ x0 ][ y0 ][ 0 ] [ 0 ] != 0 | | MvdCpL0[ x0 ][ y0 ][ 0 ] [ 1 ] != 0 | | MvdCpL1[ x0 ][ y0 ][ 0 ] [ 0 ] != 0 | | MvdCpL1[ x0 ][ y0 ][ 0 ] [ 1 ] != 0 | | MvdCpL0[ x0 ][ y0 ][ 1 ] [ 0 ] != 0 | | MvdCpL0[ x0 ][ y0 ][ 1 ] [ 1 ] != 0 | | MvdCpL1[ x0 ][ y0 ][ 1 ] [ 0 ] != 0 | | MvdCpL1[ x0 ][ y0 ][ 1 ] [ 1 ] != 0 | | MvdCpL0[ x0 ][ y0 ][ 2 ] [ 0 ] != 0 | | MvdCpL0[ x0 ][ y0 ][ 2 ] [ 1 ] != 0 | | MvdCpL1[ x0 ][ y0 ][ 2 ] [ 0 ] != 0 | | MvdCpL1[ x0 ][ y0 ][ 2 ] [ 1 ] != 0 ) ) {
For example, if MotionModelIdc is 1, MvdCpL0[x0][y0][2][0] and MvdCpL0[x0][y0][2][1] are not initialized but may be read.
Change history (10)
comment:1 Changed 6 years ago by bbross
- Version changed from VVC D5 v7 to VVC D5 v8
comment:2 Changed 6 years ago by geonjungko
comment:3 Changed 5 years ago by bbross
- Version changed from VVC D5 v8 to VVC D5 v9
comment:4 Changed 5 years ago by bbross
- Version changed from VVC D5 v9 to VVC D5 v10
comment:5 Changed 5 years ago by bbross
- Version changed from VVC D5 v10 to VVC D6 vD
comment:6 Changed 5 years ago by bbross
- Version changed from VVC D6 vD to VVC D6 vE
comment:7 Changed 5 years ago by bbross
- Version changed from VVC D6 vE to VVC D7 vC
comment:8 Changed 5 years ago by bbross
- Version changed from VVC D7 vC to VVC D7 vD
comment:9 Changed 5 years ago by bbross
- Version changed from VVC D7 vD to VVC D7 vE
comment:10 Changed 5 years ago by jlchen
- Resolution set to fixed
- Status changed from new to closed
Thanks for reporting. Initialization for MvdLX and MvdCpLX will be added at the beginning of parsing process.
Note: See TracTickets for help on using tickets.
Similarly, when inter_pred_idc is equal to PRED_L0 (or PRED_L1), MvdCpL1 (or MvdCpL0) is not initialized and it may be used for parsing amvr_flag.