The motion compensation device 1000 determines whether the bidirectional motion vectors (MVx0, MVy0) and (MVx1, MVy1) of the current block satisfy the CVC condition and the BCC condition (S1502). When both conditions are met, the BIO process is skipped and a prediction block is generated according to typical motion compensation (S1504).
On the other hand, when any one of the two conditions is not satisfied, a prediction block of the current block is generated according to the BIO process (S1506).
While 
When the bidirectional motion vectors estimated on a per block basis in the neighboring blocks of the current block have similar values, the optical flows estimated on a per pixel basis or per subblock basis in the current block are also likely to have similar values.