ze is set equal to 8x8. mvDiff( mvILPredLX[ xO, yO ], mvILPredLX| xO + 1, yO ]) is less than or equal to 1 mvDiff( mvILPredLX[ xO, yO ], mvILPredLX[ xO, yO + 1]) is less than or equal to 1 mvDiff( mvILPredLX| xO, yO ], mvILPredLX| xO + 1, yO + 1]) is less than or equal to - Otherwise, if for X=0..maxX, all of the following conditions are true, subPartSize is set equal to 8x4. mvDiff( mvILPredLX[ xO, yO ], mvILPredLX[ xO + 1, yO ]) is less than or equal to 1 mvDiff( mvILPredLX| xO, yO + 1], mvILPredLX| xO + 1, yO + 1]) is less than or equal to Otherwise, if for X=0..maxX, all of the following conditions are true, subPartSize is set equal to 4x8. - mvDiff( mvILPredLX[ xO, yO ], mvILPredLX[ xO, yO+1]) is less than or equal to 1 - mvDiff( mvILPredLX| xO + 1, yO ], mvILPredLX| xO + 1, yO + 1]) is less than or equal to 1 Otherwise, subPartSize is set equal to 4x4. When subPartSize is not equal to 4x4, for X = 0..maxX, the motion vectors tempMvALX and tempMvBLX (when subPartSize is equal to 8x4 or 4x8) are derived as follows: If subPartSize is equal to 8x8, tempMvALX is derived by tempMvALX[c]=(mvILPredLX[xO,yO [c]+ mvILPredLX[ xO + , YO [c]+ mvILPredLX[ xO, yO+1][c]+ mvILPredLX[ xO + 1,y0+1][c]+2)>> 2 with C = 0..1 (G-254) Otherwise, if subPartSize is equal to 8x4, tempMvALX and tempMvBLX are derived by tempMvALX[c]=(mvILPredLX[xO, yO]c]+ mvILPredLX[ xO >> with C = 0..1 (G-255) tempMvBLX[c]=(mvILPredLX[xO, yO+1][c]+ mvILPredLX[ xO+1,yO+1]c]+1)>>1 with c = 0..1 (G-256) Otherwise (subPartSize is equal to 4x8), tempMvALX and tempMvBLX are derived by tempMvALX[c]=(mvILPredLX[: yO mvILPredLX[ xO, yO + 1][c]+1)>>] with c = 0..1 (G-257) tempMvBLX[ C ] mvILPredLX[ xO +1,yO [c]+ mvILPredLX[xO+1,yO+1][c]+1)>> 1 with C = 0..1 (G-258) 6. When subPartSize is not equal to 4x4, for X = 0..maxX, the motion vector predictor array mvILPredLX is modified as follows: If subPartSize is equal to 8x8, the array mvILPredLX is modified by mvILPredLX[ xO + xS, yO + yS ][ c ] = tempMvALX[ c] with xS, yS = 0..1 and = 0..1 (G-259) Otherwise, if su