In some implementations, the sub-block of the second component corresponds to four sub-blocks of the first component. The four sub-blocks have motion vectors MV0=(MV0x, MV0y), MV1=(MV1x, MV1y), MV2=(MV2x, MV2y) and MV3=(MV3x, MV3y) respectively. The method 1300 or 1400 includes calculating an intermediate set of motion vectors MV*=(MV*x, MV*y) as MV*x=SignShift(MV′x+MV″x, 1) and MV*y=SignShift(MV′y+MV″y, 1), wherein MV′x=SignShift(MV0x+MV2x,1), MV′y=SignShift(MV0y+MV2y, 1), MV″x=SignShift(MV1x+MV3x, 1), and MV″y=SignShift(MV1y+MV3y, 1), wherein