A video decoder is configured to determine a first motion vector for a first block of video data; perform motion vector refinement on the first motion vector for the first block to determine a refined motion vector for the first block of video data; determine that a second block of video data is coded in a mode that utilizes a motion vector associated with the first block as a motion vector predictor; in response to determining that the second block of video data is coded in the mode that utilizes the motion vector associated with the first block as a motion vector predictor and in response to performing the motion vector refinement on the first motion vector for the first block, use a different motion vector than the first refined motion vector as the motion vector predictor associated with the first block.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of decoding video data, the method comprising: determining a first block of video data is coded in an inter prediction mode; determining a first motion vector for the first block of video data; performing motion vector refinement on the first motion vector for the first block to determine a refined motion vector for the first block of video data; locating a first reference block in a first reference picture using the refined motion vector; generating a first predictive block for the first block of video data based on the first reference block; determining that a second block of video data is coded in a mode that utilizes a motion vector associated with the first block as a motion vector predictor, wherein the first block is a spatial neighboring block of the second block; in response to determining that the second block of video data is coded in the mode that utilizes the motion vector associated with the first block as the motion vector predictor and in response to performing the motion vector refinement on the first motion vector for the first block, using a different motion vector than the first refined motion vector as the motion vector predictor associated with the first block; based on the different motion vector, determining a second motion vector for the second block; locating a second reference block in a second reference picture using the second motion vector; and decoding a picture of video data based on the first reference block and the second reference block.
2. The method of claim 1 , wherein performing the motion vector refinement on the first motion vector for the first block comprises: determining that a decoder-side motion vector derivation (DMVD) mode is enabled for the first block of video data; and performing the motion vector refinement on the first motion vector for the first block in accordance with the DMVD mode.
3. The method of claim 2 , wherein the DMVD mode comprises one of frame-rate up conversion (FRUC) template matching, FRUC bilateral matching, and bilateral template matching.
4. The method of claim 1 , wherein the different motion vector comprises the first motion vector for the first block.
5. The method of claim 1 , wherein the different motion vector comprises a default motion vector.
6. The method of claim 1 , further comprising: determining that the second block is coded in a merge mode; generating a candidate list for the second block, wherein generating the candidate list for the second block comprises, in response to determining that the first block is coded using bilateral template matching, adding the different motion vector to the candidate list.
7. The method of claim 1 , wherein: determining the first motion vector for the first block of video data comprises determining a first motion vector prediction and a first motion vector difference; performing motion vector refinement on the first motion vector for the first block comprises refining the first motion vector predictor to determine a first refined motion vector predictor; setting the refined motion vector for the first block of video data equal to the first refined motion vector predictor plus the first motion vector difference; and setting the motion vector predictor equal to the first motion vector predictor plus the first motion vector difference.
8. The method of claim 1 , further comprising: adding first residual data to the first predictive block to generate a first reconstructed block of video data; processing the first reconstructed block of video data to generate a first decoded block of video data; using the second motion vector, locating a second reference block in a second reference picture; generating a second predictive block for the second block of video data based on the second reference block; adding second residual data to the second predictive block to generate a second reconstructed block of video data; processing the second reconstructed block of video data to generate a second decoded block of video data; and outputting a picture comprises the first decoded block of video data and the second decoded block of video data.
9. The method of claim 8 , wherein outputting the picture comprises one or both of: storing a copy of the picture in a decoded picture buffer for use as reference picture in decoding subsequent pictures of video data; and outputting the picture to a display device.
10. The method of claim 1 , wherein the method of decoding is performed as part of a reconstruction loop of a video encoding process.
11. A device for decoding video data, the device comprising: a memory configured to store video data; one or more processors configured to: determine a first block of the video data is coded in an inter prediction mode; determine a first motion vector for the first block of the video data; perform motion vector refinement on the first motion vector for the first block to determine a refined motion vector for the first block of the video data; locate a first reference block in a first reference picture using the refined motion vector; generate a first predictive block for the first block of the video data based on the first reference block; determine that a second block of the video data is coded in a mode that utilizes a motion vector associated with the first block as a motion vector predictor, wherein the first block is a spatial neighboring block of the second block; in response to determining that the second block of the video data is coded in the mode that utilizes the motion vector associated with the first block as the motion vector predictor and in response to performing the motion vector refinement on the first motion vector for the first block, use a different motion vector than the first refined motion vector as the motion vector predictor associated with the first block; based on the different motion vector, determine a second motion vector for the second block; and locate a second reference block in a second reference picture using the second motion vector; and decode a picture of the video data based on the first reference block and the second reference block.
12. The device of claim 11 , wherein to perform the motion vector refinement on the first motion vector for the first block, the one or more processors are further configured to: determine that a decoder-side motion vector derivation (DMVD) mode is enabled for the first block of the video data; and perform the motion vector refinement on the first motion vector for the first block in accordance with the DMVD mode.
13. The device of claim 12 , wherein the DMVD mode comprises one of frame-rate up conversion (FRUC) template matching, FRUC bilateral matching, and bilateral template matching.
14. The device of claim 11 , wherein the different motion vector comprises the first motion vector for the first block.
15. The device of claim 11 , wherein the different motion vector comprises a default motion vector.
16. The device of claim 11 , wherein the one or more processors are further configured to: determine that the second block is coded in a merge mode; generate a candidate list for the second block, wherein generating the candidate list for the second block comprises, in response to determining that the first block is coded using bilateral template matching, adding the different motion vector to the candidate list.
17. The device of claim 11 , wherein the one or more processors are further configured to: determine the first motion vector for the first block of the video data comprises determining a first motion vector prediction and a first motion vector difference; perform motion vector refinement on the first motion vector for the first block comprises refining the first motion vector predictor to determine a first refined motion vector predictor; set the refined motion vector for the first block of the video data equal to the first refined motion vector predictor plus the first motion vector difference; and set the motion vector predictor equal to the first motion vector predictor plus the first motion vector difference.
18. The device of claim 11 , wherein the one or more processors are further configured to: add first residual data to the first predictive block to generate a first reconstructed block of video data; process the first reconstructed block of video data to generate a first decoded block of video data; use the second motion vector, locating a second reference block in a second reference picture; generate a second predictive block for the second block of the video data based on the second reference block; add second residual data to the second predictive block to generate a second reconstructed block of video data; process the second reconstructed block of video data to generate a second decoded block of video data; and output a picture comprises the first decoded block of video data and the second decoded block of video data.
19. The device of claim 18 , wherein to output the picture, the one or more processors are further configured to one or both of: store a copy of the picture in a decoded picture buffer for use as reference picture in decoding subsequent pictures of video data; and output the picture to a display device.
20. The device of claim 11 , wherein the one or more processors are further configured to perform decoding as part of a reconstruction loop of a video encoding process.
21. The device of claim 11 , wherein the device comprises a wireless communication device, further comprising a receiver configured to receive encoded video data.
22. The device of claim 21 , wherein the wireless communication device comprises a telephone handset and wherein the receiver is configured to demodulate, according to a wireless communication standard, a signal comprising the encoded video data.
23. The device of claim 11 , wherein the device comprises a wireless communication device, further comprising a transmitter configured to transmit encoded video data.
24. The device of claim 23 , wherein the wireless communication device comprises a telephone handset and wherein the transmitter is configured to modulate, according to a wireless communication standard, a signal comprising the encoded video data.
25. A computer-readable storage medium storing instructions that when executed by one or more processors causes the one or more processors to: determine a first block of video data is coded in an inter prediction mode; determine a first motion vector for the first block of video data; perform motion vector refinement on the first motion vector for the first block to determine a refined motion vector for the first block of video data; locate a first reference block in a first reference picture using the refined motion vector; generate a first predictive block for the first block of video data based on the first reference block; determine that a second block of video data is coded in a mode that utilizes a motion vector associated with the first block as a motion vector predictor, wherein the first block is a spatial neighboring block of the second block; in response to determining that the second block of video data is coded in the mode that utilizes the motion vector associated with the first block as the motion vector predictor and in response to performing the motion vector refinement on the first motion vector for the first block, use a different motion vector than the first refined motion vector as the motion vector predictor associated with the first block; based on the different motion vector, determine a second motion vector for the second block; locate a second reference block in a second reference picture using the second motion vector; and decode a picture of video data based on the first reference block and the second reference block.
26. The computer-readable storage medium of claim 25 , wherein performing the motion vector refinement on the first motion vector for the first block comprises: determining that a decoder-side motion vector derivation (DMVD) mode is enabled for the first block of video data; and performing the motion vector refinement on the first motion vector for the first block in accordance with the DMVD mode.
27. The computer-readable storage medium of claim 26 , wherein the DMVD mode comprises one of frame-rate up conversion (FRUC) template matching, FRUC bilateral matching, and bilateral template matching.
28. The computer-readable storage medium of claim 25 , wherein the different motion vector comprises the first motion vector for the first block.
29. The computer-readable storage medium of claim 25 , wherein the different motion vector comprises a default motion vector.
30. The computer-readable storage medium of claim 25 , further comprising: determining that the second block is coded in a merge mode; generating a candidate list for the second block, wherein generating the candidate list for the second block comprises, in response to determining that the first block is coded using bilateral template matching, adding the different motion vector to the candidate list.
31. The computer-readable storage medium of claim 25 , wherein: determining the first motion vector for the first block of video data comprises determining a first motion vector prediction and a first motion vector difference; performing motion vector refinement on the first motion vector for the first block comprises refining the first motion vector predictor to determine a first refined motion vector predictor; setting the refined motion vector for the first block of video data equal to the first refined motion vector predictor plus the first motion vector difference; and setting the motion vector predictor equal to the first motion vector predictor plus the first motion vector difference.
32. The computer-readable storage medium of claim 25 , further comprising: adding first residual data to the first predictive block to generate a first reconstructed block of video data; processing the first reconstructed block of video data to generate a first decoded block of video data; using the second motion vector, locating a second reference block in a second reference picture; generating a second predictive block for the second block of video data based on the second reference block; adding second residual data to the second predictive block to generate a second reconstructed block of video data; processing the second reconstructed block of video data to generate a second decoded block of video data; and outputting a picture comprises the first decoded block of video data and the second decoded block of video data.
33. The computer-readable storage medium of claim 32 , wherein outputting the picture comprises one or both of: storing a copy of the picture in a decoded picture buffer for use as reference picture in decoding subsequent pictures of video data; and outputting the picture to a display device.
34. The computer-readable storage medium of claim 25 , wherein the method of decoding is performed as part of a reconstruction loop of a video encoding process.
35. An apparatus for decoding video data, the apparatus comprising: means for determining a first block of video data is coded in an inter prediction mode; means for determining a first motion vector for the first block of video data; means for performing motion vector refinement on the first motion vector for the first block to determine a refined motion vector for the first block of video data; means for locating a first reference block in a first reference picture using the refined motion vector; means for generating a first predictive block for the first block of video data based on the first reference block; means for determining that a second block of video data is coded in a mode that utilizes a motion vector associated with the first block as a motion vector predictor, wherein the first block is a spatial neighboring block of the second block; means for using a different motion vector than the first refined motion vector as the motion vector predictor associated with the first block in response to determining that the second block of video data is coded in the mode that utilizes the motion vector associated with the first block as the motion vector predictor and in response to performing the motion vector refinement on the first motion vector for the first block; means for determining a second motion vector for the second block based on the different motion vector; means for locating a second reference block in a second reference picture using the second motion vector; and means for decoding a picture of video data based on the first reference block and the second reference block.
36. The apparatus of claim 35 , wherein the means for performing the motion vector refinement on the first motion vector for the first block comprises: means for determining that a decoder-side motion vector derivation (DMVD) mode is enabled for the first block of video data; and means for performing the motion vector refinement on the first motion vector for the first block in accordance with the DMVD mode.
37. The apparatus of claim 36 , wherein the DMVD mode comprises one of frame-rate up conversion (FRUC) template matching, FRUC bilateral matching, and bilateral template matching.
38. The apparatus of claim 35 , wherein the different motion vector comprises the first motion vector for the first block.
39. The apparatus of claim 35 , wherein the different motion vector comprises a default motion vector.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
April 15, 2019
September 15, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.