ise, if for X = 0..maxX, all of the following conditions are true, partitionSize is set equal to 8x16. refIdxILPredLX[ 0,0] is equal to refIdxILPredLX[0,1] refIdxILPredLX[ 1,0] is equal to refIdxILPredLX[ 1, 1] all elements mvILPredLX[ X, y ] with x=0..1 and y =0..3 are the same all elements mvILPredLX[ X, y ] with x=2..3 and y=0..3 are the same Otherwise, partitionSize is set equal to 8x8. When slice_type is equal to EB and partitionSize is not equal to 8x8, the variable partPredModeA is derived by partPredModeA = ((refldxILPredL1[0,0]>=0)2:0) ((refldxILPredL0[0,0]>=0)1:0) (G-264) When slice_type is equal to EB and partitionSize is equal to 16x8 or 8x16, the variable partPredModeB is derived by partPredModeB = ((refldxILPredL1[1,1]>=0)?2:0)+ ( ( (refldxILPredL0[1,1]>=0)1:0) (G-265) 4. Depending on slice_type, partitionSize, partPredModeA (when applicable), and partPredModeB (when applicable), the macroblock type predictor mbTypeILPred is derived as specified in Table G-7. Rec. ITU-T H.264 (01/2012) All elements subMbTypeILPred[ mbPartIdx ] of the list subMbTypeILPred with mbPartIdx = 0..3 are marked as "unspecified". When mbTypeILPred is equal to P 8x8 or B_8x8, each element subMbTypeILPred[ mbPartIdx ] with mbPartIdx = 0..3 is modified by applying the following ordered steps: 1. The coordinate offset (xO, yO) is set equal to (2*(mbPartIdx%2),2*(mbPartIdx/2)) 2. The variable subPartitionSize is derived as follows: If for X = 0..maxX, all elements mvILPredLX[ xO + xS, yO + YS ] with xS, yS = 0..1 are the same, subPartitionSize is set equal to 8x8. Otherwise, if for X = 0..maxX, mvILPredLX[ xO, yO ] is equal to mvILPredLX[ xO + 1, yO and mvILPredLX[ xO, yO+1] is equal to mvILPredLX| xO + 1, yO + 1], subPartitionSize is set equal to 8x4. Otherwise, if for X=0..maxX, mvILPredLX[ xO, yO is equal to mvILPredLX[ xO, yO + 1] and mvILPredLX[ xO+1,yO] is equal to mvILPredLX[ xO + 1, yO+1], subPartitionSize is set equal to 4x8. Otherwise, subPartitionSize is set equal to 4x4. 3. When slice_type is equal to EB, the variable