The motion compensation device 1000 first determines whether the size of the current block CU, which is a block to be encoded, is less than or equal to a threshold size (S1402). When the size of the current block CU is greater than the threshold size, a prediction block of the current block is generated according to the BIO process (S1408).
On the other hand, when the size of the current block CU is less than or equal to the threshold size, it is determined whether the motion vector MV of the current block CU is encoded by the merge mode (S1404). When the motion vector is not encoded by the merge mode, the BIO process is skipped and a prediction block of the current block is generated through typical motion compensation (S1406). When the motion vector is encoded by the merge mode, a prediction block of the current block is generated according to the BIO process (S1408).
For example, when wt×ht is defined as 8×8, and the motion vector of the current block having a size of 8×8, 8×4, 4×8, or 4×4, which is less than or equal to 8×8, is not encoded by the merge mode, the BIO process is skipped.
In generating the prediction block according to the BIO process in S1308, whether to skip the BIO may be further determined according to Embodiment 1, that is, the texture complexity of the current block.
The BIO is based on the assumption that an object in the video moves at a constant velocity and that there is little change in pixel value. These assumptions are defined as a constant velocity constraint (CVC) and a brightness constancy constraint (BCC), respectively.