Decoding a video sequence may include generating decoded video data by decoding encoded video data from an encoded bitstream, wherein decoding the encoded video data includes identifying candidate reference motion vectors used to decode previously decoded blocks, identifying reconstructed pixel values from a block spatially adjacent to a current block in the current frame, for each candidate reference motion vector, determining a respective score based on a difference between the reconstructed pixel values and pixel values obtained using the candidate reference motion vector, identifying a candidate reference motion vector having the minimal score from the candidate reference motion vectors as the reference motion vector, decoding a motion vector from the encoded bitstream using the reference motion vector, and decoding the current block from the encoded bitstream using the motion vector.
Legal claims defining the scope of protection, as filed with the USPTO.
1. An apparatus for decoding a video sequence, the apparatus comprising: a processor configured to generate decoded video data by decoding encoded video data from an encoded bitstream, wherein decoding the encoded video data includes: identifying candidate reference motion vectors used to decode previously decoded blocks; identifying reconstructed pixel values from a block spatially adjacent to a current block in the current frame; for each candidate reference motion vector, determining a respective score based on a difference between the reconstructed pixel values and pixel values obtained using the candidate reference motion vector; identifying a candidate reference motion vector having the minimal score from the candidate reference motion vectors as the reference motion vector; decoding a motion vector from the encoded bitstream using the reference motion vector; and decoding the current block from the encoded bitstream using the motion vector.
2. The apparatus of claim 1 , wherein: the pixel values obtained using the candidate reference motion vector are obtained using a first reference frame; and decoding the current block using the motion vector includes decoding the current block using the first reference frame.
3. The apparatus of claim 2 , wherein the first reference frame is sequentially adjacent to the current frame.
4. The apparatus of claim 3 , wherein the candidate reference motion vectors include a candidate reference motion vector used to inter predict a previously decoded block using a second reference frame sequentially non-adjacent to the current frame.
5. The apparatus of claim 4 , wherein: the previously decoded block is a block from a previously decoded alternate reference frame corresponding to a frame sequentially subsequent to the current frame; and the candidate reference motion vector is scaled based on a sequential difference between the second reference frame and the frame sequentially subsequent to the current frame.
6. The apparatus of claim 2 , wherein the first reference frame is sequentially non-adjacent to the current frame.
7. The apparatus of claim 6 , wherein the first reference frame is a previously decoded alternate reference frame corresponding to a frame sequentially subsequent to the current frame.
8. The apparatus of claim 6 , wherein the candidate reference motion vectors include a candidate reference motion vector used to inter predict a previously decoded block using a second reference frame.
9. The apparatus of claim 8 , wherein: the previously decoded block is a block from the current frame; and the candidate reference motion vector is scaled based on a sequential difference between the second reference frame and the first reference frame.
10. A method for decoding a video sequence, the method comprising: generating decoded video data by decoding encoded video data from an encoded bitstream, wherein decoding the encoded video data includes: identifying candidate reference motion vectors used to decode previously decoded blocks; identifying reconstructed pixel values from a block spatially adjacent to a current block in the current frame; for each candidate reference motion vector, determining a respective score based on a difference between the reconstructed pixel values and pixel values obtained using the candidate reference motion vector; identifying a candidate reference motion vector having the minimal score from the candidate reference motion vectors as the reference motion vector; decoding a motion vector from the encoded bitstream using the reference motion vector; and decoding the current block from the encoded bitstream using the motion vector.
11. The method of claim 10 , wherein: the pixel values obtained using the candidate reference motion vector are obtained using a first reference frame; and decoding the current block using the motion vector includes decoding the current block using the first reference frame.
12. The method of claim 11 , wherein the first reference frame is sequentially adjacent to the current frame.
13. The method of claim 12 , wherein the candidate reference motion vectors include a candidate reference motion vector used to inter predict a previously decoded block using a second reference frame sequentially non-adjacent to the current frame.
14. The method of claim 13 , wherein: the previously decoded block is a block from a previously decoded alternate reference frame corresponding to a frame sequentially subsequent to the current frame; and the candidate reference motion vector is scaled based on a sequential difference between the second reference frame and the frame sequentially subsequent to the current frame.
15. The method of claim 11 , wherein the first reference frame is sequentially non-adjacent to the current frame.
16. The method of claim 15 , wherein the first reference frame is a previously decoded alternate reference frame corresponding to a frame sequentially subsequent to the current frame.
17. The method of claim 15 , wherein the candidate reference motion vectors include a candidate reference motion vector used to inter predict a previously decoded block using a second reference frame.
18. The method of claim 17 , wherein: the previously decoded block is a block from the current frame; and the candidate reference motion vector is scaled based on a sequential difference between the second reference frame and the first reference frame.
19. A method for encoding a video sequence, the method comprising: generating an encoded bitstream by: identifying a current block of a current frame; identifying a current motion vector indicating a current reference frame for encoding the current block; including an encoded block in the encoded bitstream, the encoded block generated using the current motion vector and the current reference frame; identifying, as candidate reference motion vectors, motion vectors used to encode previously encoded blocks from the video sequence; identifying reconstructed pixel values from a block spatially adjacent to the current block; for each candidate reference motion vector, determining a respective score based on a difference between the reconstructed pixel values and pixel values obtained using the candidate reference motion vector and the current reference frame; identifying a candidate reference motion vector having the minimal score from the candidate reference motion vectors as a reference motion vector; and encoding the current motion vector in the encoded bitstream using the reference motion vector; and outputting the encoded bitstream.
20. The method of claim 19 , wherein: the current reference frame is sequentially adjacent to the current frame and the candidate reference motion vectors include a candidate reference motion vector used to inter predict a previously encoded block using a second reference frame sequentially non-adjacent to the current frame; or the current reference frame is sequentially non-adjacent to the current frame and the candidate reference motion vectors include a candidate reference motion vector used to inter predict a previously encoded block using a second reference frame sequentially adjacent to the current frame.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 28, 2019
April 20, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.