﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
208	Bug in DMVR when wrap around MC is enabled	phanhart		"When running VTM-4.0 with DMVR and wrap around MC enabled, the following check in InterPrediction::xFinalPaddedMCForDMVR  may be hit, causing the encoder to crash:

Mv cMv = pu.mv[refId];
...
clipMv(cMv, pu.lumaPos(), pu.lumaSize(), *pu.cs->sps);

Mv startMv = mergeMV[refId];
clipMv(startMv, pu.lumaPos(), pu.lumaSize(), *pu.cs->sps);

...

deltaIntMvX = (cMv.getHor() >> mvshiftTemp) - (startMv.getHor() >> mvshiftTemp);
deltaIntMvY = (cMv.getVer() >> mvshiftTemp) - (startMv.getVer() >> mvshiftTemp);

CHECK((abs(deltaIntMvX) > DMVR_NUM_ITERATION) | | (abs(deltaIntMvY) > DMVR_NUM_ITERATION), ""not expected DMVR movement"");


If wrap around MC is enabled, MV clipping may cause the wrapping of the PU MV. In this case, the difference (deltaIntMvX, deltaIntMvY) between the clipped PU MV and clipped start MV (i.e., clipped merge MV) is very large.
To solve this problem, deltaIntMvX and deltaIntMvY should be computed based on the un-clipped MVs instead of the clipped MVs.

A fix is proposed in merge request !340

The fix has no impact on the SDR CTC."	defect	closed	minor		VTM	VTM-4.0	fixed		ksuehring XiangLi fbossen jvet@…
