Opened 5 years ago

Closed 4 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 5 years ago by bbross

  • Version changed from VVC D5 v7 to VVC D5 v8

comment:2 Changed 5 years ago by geonjungko

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.

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 4 years ago by bbross

  • Version changed from VVC D6 vE to VVC D7 vC

comment:8 Changed 4 years ago by bbross

  • Version changed from VVC D7 vC to VVC D7 vD

comment:9 Changed 4 years ago by bbross

  • Version changed from VVC D7 vD to VVC D7 vE

comment:10 Changed 4 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.