US 12,003,754 B2
Error surface based sub-pixel accurate refinement method for decoder side motion vector refinement
Sriram Sethuraman, Bangalore (IN); Jeeva Raj A, Bangalore (IN); and Sagar Kotecha, Bangalore (IN)
Assigned to HUAWEI TECHNOLOGIES CO., LTD., Shenzhen (CN)
Filed by HUAWEI TECHNOLOGIES CO., LTD., Guangdong (CN)
Filed on Jan. 11, 2022, as Appl. No. 17/573,331.
Application 17/573,331 is a continuation of application No. 17/100,924, filed on Nov. 22, 2020, granted, now 11,310,521.
Application 17/100,924 is a continuation of application No. PCT/CN2019/092114, filed on Jun. 20, 2019.
Claims priority of application No. 201831024666 (IN), filed on Jul. 2, 2018.
Prior Publication US 2022/0132158 A1, Apr. 28, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. H04N 19/513 (2014.01); H04N 19/523 (2014.01)
CPC H04N 19/513 (2014.11) [H04N 19/523 (2014.11)] 18 Claims
OG exemplary drawing
 
1. A decoder-side motion vector refinement method performed by an encoder for refining a motion vector for a block of a frame in a video, the method comprising:
determining a target integer motion vector displacement by comparing integer distance costs associated with respective candidate integer motion vector displacements with respect to an initial motion vector for the block;
determining a sub-pixel motion vector displacement for the motion vector based on the target integer motion vector displacement and the integer distance costs;
determining a refined motion vector based on the target integer motion vector displacement, the sub-pixel motion vector displacement and the initial motion vector;
wherein the sub-pixel motion vector displacement is determined as:
x0=(E(−1,0)−E(1,0))/(2×(E(−1,0)+E(1,0)−2×E(0,0))), and
y0=(E(0,−1)−E(0,1))/(2×(E(0,−1)+E(0,1)−2×E(0,0))),
wherein:
x0 and y0 are coordinates associated with the sub-pixel motion vector displacement relative to a center (0, 0), and
E(−1, 0), E(1, 0), E(0, 0), E(0, −1) and E(0, 1) are the integer distance costs with respect to the initial motion vector and corresponding to candidate integer motion vector displacements represented by coordinates (−1, 0), (1, 0), (0, 0), (0, −1) and (0, 1), respectively, relative to the center (0,0); and
the center (0,0) represents an integer motion vector displacement among the candidate integer motion vector displacements that has the lowest integer distance cost.