Opened 4 months ago

Last modified 3 months ago

#318 new defect

Missing initialization of MvdCpL0 array

Reported by: fbarbier Owned by:
Priority: minor Milestone:
Component: spec Version: VVC D6 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 (6)

comment:1 Changed 4 months ago by bbross

  • Version changed from VVC D5 v7 to VVC D5 v8

comment:2 Changed 4 months 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 4 months ago by bbross

  • Version changed from VVC D5 v8 to VVC D5 v9

comment:4 Changed 4 months ago by bbross

  • Version changed from VVC D5 v9 to VVC D5 v10

comment:5 Changed 3 months ago by bbross

  • Version changed from VVC D5 v10 to VVC D6 vD

comment:6 Changed 3 months ago by bbross

  • Version changed from VVC D6 vD to VVC D6 vE
Note: See TracTickets for help on using tickets.