JVET-Q2002-v3 Algorithm description for Versatile Video Coding and Test Model 8 (VTM 8)
Decoder side motion vector refinement (DMVR)
In order to increase the accuracy of the MVs of the merge mode, a bilateral-matching based decoder side motion vector refinement is applied in VVC. In bi-prediction operation, a refined MV is searched around the initial MVs in the reference picture list L0 and reference picture list L1. The BM method calculates the distortion between the two candidate blocks in the reference picture list L0 and list L1. As illustrated in Figure 36, the SAD between the red blocks based on each MV candidate around the initial MV is calculated. The MV candidate with the lowest SAD becomes the refined MV and used to generate the bi-predicted signal.
Figure 36 – Decoding side motion vector refinement In VVC, the DMVR can be applied for the CUs which are coded with following modes and features:
CU level merge mode with bi-prediction MV
One reference picture is in the past and another reference picture is in the future with respect to the current picture
The distances (i.e. POC difference) from two reference pictures to the current picture are same
The refined MV derived by DMVR process is used to generate the inter prediction samples and also used in temporal motion vector prediction for future pictures coding. While the original MV is used in deblocking process and also used in spatial motion vector prediction for future CU coding.
The additional features of DMVR are mentioned in the following sub-clauses.