IP Library Granted Patent US 10,462,462
Granted Patent B2
US 10,462,462 · App. 15/718,725 · Granted Oct 29, 2019

Motion vector difference coding technique for video coding

Inventors: Wei-Jung Chien (San Diego, CA); Jianle Chen (San Diego, CA); Li Zhang (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/13H04N19/137H04N19/52H04N19/521H04N19/70H04N19/91H04N19/523
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,462,462
App. No.
15/718,725
Filed
Sep 28, 2017
Granted
Oct 29, 2019
Kind
B2
Art Unit
2485
USPC
375/240.16
Abstract

Coding a motion vector difference (MVD) during an inter-prediction process. Example techniques may include determining a particular coding and/or signaling method for an MVD from among two or more MVD coding and/or signaling techniques. A video coder (e.g., a video encoder and/or a video decoder) may determine a particular MVD coding and/or signaling technique based on characteristics of video data or coding methods, including MV precision, Picture Order Count (POC) difference, or any other already coded/decoded information of a block of video data.

Claims (91)

1. A method of decoding video data, the method comprising:

receiving an encoded block of video data;

receiving one or more syntax elements indicating a motion vector difference (MVD) associated with the encoded block of video data;

determining an MVD coding technique from two or more MVD coding techniques based on a difference between a picture order count (POC) value of a reference frame and a POC value of a current picture and based on a motion vector precision;

decoding the one or more syntax elements indicating the MVD using the determined MVD coding technique; and

decoding the encoded block of video data using the decoded MVD.

2. The method of claim 1 , wherein the two or more MVD coding techniques comprise two or more binarization techniques for the one or more syntax elements indicating the MVD.

3. The method of claim 2 , wherein the two or more binarization techniques include at least one of exponential-Golomb coding, unary coding, or fixed length coding.

4. The method of claim 3 , wherein the two or more binarization techniques include Kth order exponential-Golomb coding, and wherein determining the MVD coding technique comprises:

determining a value of K for the Kth order exponential-Golomb coding used for binarization based on characteristics of one or more of a slice, tile, or picture.

5. The method of claim 1 , the method further comprising:

determining that the motion vector precision for the encoded block of video data is a one-quarter pixel precision, and wherein

determining the MVD coding technique comprises determining that a syntax element indicating an absolute value of the MVD minus two is binarized with an exponential Golomb code with a parameter of 1.

6. The method of claim 1 , the method further comprising:

determining that the motion vector precision for the encoded block of video data is an integer pixel precision, and wherein

determining the MVD coding technique comprises determining that a syntax element indicating an absolute value of the MVD minus two is binarized with an exponential Golomb code with a parameter of 2.

7. The method of claim 1 , wherein the two or more MVD coding techniques comprise two or more sets of contexts used to entropy code the one or more syntax elements indicating the MVD.

8. The method of claim 1 , wherein decoding the one or more syntax elements indicating the MVD using the determined MVD coding technique comprises:

decoding the one or more syntax elements indicating the MVD using the determined MVD coding technique in two or more parts.

9. The method of claim 8 , wherein decoding the one or more syntax elements indicating the MVD using the determined MVD coding technique in two or more parts comprises:

decoding a first syntax element indicating whether a horizontal component of the MVD is zero; and

decoding a second syntax element indicating whether a vertical component of the MVD is zero.

10. An apparatus configured to decode video data, the apparatus comprising:

a memory configured to store an encoded block of video data; and

one or more processors configured to:

receive the encoded block of video data;

receive one or more syntax elements indicating a motion vector difference (MVD) associated with the encoded block of video data;

determine an MVD coding technique from two or more MVD coding techniques based on a difference between a picture order count (POC) value of a reference frame and a POC value of a current picture and based on a motion vector precision;

decode the one or more syntax elements indicating the MVD using the determined MVD coding technique; and

decode the encoded block of video data using the decoded MVD.

11. The apparatus of claim 10 , wherein the two or more MVD coding techniques comprise two or more binarization techniques for the one or more syntax elements indicating the MVD.

12. The apparatus of claim 11 , wherein the two or more binarization techniques include at least one of exponential-Golomb coding, unary coding, or fixed length coding.

13. The apparatus of claim 12 , wherein the two or more binarization techniques include Kth order exponential-Golomb coding, and wherein to determine the MVD coding technique, the one or more processors are further configured to:

determine a value of K for the Kth order exponential-Golomb coding used for binarization based on characteristics of one or more of a slice, tile, or picture.

14. The apparatus of claim 10 , wherein the one or more processors are further configured to:

determine that the motion vector precision for the encoded block of video data is a one-quarter pixel precision; and

determine that a syntax element indicating an absolute value of the MVD minus two is binarized with an exponential Golomb code with a parameter of 1.

15. The apparatus of claim 10 , wherein the one or more processors are further configured to:

determine that the motion vector precision for the encoded block of video data is an integer pixel precision; and

determine that a syntax element indicating an absolute value of the MVD minus two is binarized with an exponential Golomb code with a parameter of 2.

16. The apparatus of claim 10 , wherein the two or more MVD coding techniques comprise two or more sets of contexts used to entropy code the one or more syntax elements indicating the MVD.

17. The apparatus of claim 10 , wherein to decode the one or more syntax elements indicating the MVD using the determined MVD coding technique, the one or more processors are further configured to:

decode the one or more syntax elements indicating the MVD using the determined MVD coding technique in two or more parts.

18. The apparatus of claim 17 , wherein to decode the one or more syntax elements indicating the MVD using the determined MVD coding technique in two or more parts, the one or more processors are further configured to:

decode a first syntax element indicating whether a horizontal component of the MVD is zero; and

decode a second syntax element indicating whether a vertical component of the MVD is zero.

19. The apparatus of claim 10 , wherein the apparatus comprises a wireless communication device, further comprising a receiver configured to receive the encoded block of video data.

20. The apparatus of claim 19 , 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 block of video data.

21. The apparatus of claim 14 , further comprising:

a display configured to output a picture including the decoded block of video data.

22. An apparatus configured to decode video data, the apparatus comprising: means for receiving an encoded block of video data;

means for receiving one or more syntax elements indicating a motion vector difference (MVD) associated with the encoded block of video data;

means for determining an MVD coding technique from two or more MVD coding techniques based on a difference between a picture order count (POC) value of a reference frame and a POC value of a current picture and based on a motion vector precision;

means for decoding the one or more syntax elements indicating the MVD using the determined MVD coding technique; and

means for decoding the encoded block of video data using the decoded MVD.

23. A non-transitory computer-readable storage medium storing instructions that, when executed, causes one or more processors of a device configured to decode video data to:

receive the encoded block of video data;

receive one or more syntax elements indicating a motion vector difference (MVD) associated with the encoded block of video data;

determine an MVD coding technique from two or more MVD coding techniques based on a difference between a picture order count (POC) value of a reference frame and a POC value of a current picture and based on a motion vector precision;

decode the one or more syntax elements indicating the MVD using the determined MVD coding technique; and

decode the encoded block of video data using the decoded MVD.

24. A method of encoding video data, the method comprising:

encoding a block of video data according to an inter-prediction mode;

determining a motion vector difference (MVD) associated with the block of video data;

determining an MVD coding technique from two or more MVD coding techniques based on a difference between a picture order count (POC) value of a reference frame and a POC value of a current picture and based on a motion vector precision; and

encoding one or more syntax elements indicating the MVD using the determined MVD coding technique.

25. The method of claim 24 , wherein the two or more MVD coding techniques comprise two or more binarization techniques for the one or more syntax elements indicating the MVD.

26. The method of claim 25 , wherein the two or more binarization techniques include at least one of exponential-Golomb coding, unary coding, or fixed length coding.

27. The method of claim 26 , wherein the two or more binarization techniques include Kth order exponential-Golomb coding, and wherein determining the MVD coding technique comprises:

determining a value of K for the Kth order exponential-Golomb coding used for binarization based on characteristics of one or more of a slice, tile, or picture.

28. The method of claim 24 , the method further comprising:

determining that the motion vector precision for the block of video data is a one-quarter pixel precision, and wherein

determining the MVD coding technique comprises determining that a syntax element indicating an absolute value of the MVD minus two is binarized with an exponential Golomb code with a parameter of 1.

29. The method of claim 24 , the method further comprising:

determining that the motion vector precision for the encoded block of video data is an integer pixel precision, and wherein

determining the MVD coding technique comprises determining that a syntax element indicating an absolute value of the MVD minus two is binarized with an exponential Golomb code with a parameter of 2.

30. The method of claim 24 , wherein the two or more MVD coding techniques comprise two or more sets of contexts used to entropy code the one or more syntax elements indicating the MVD.

31. The method of claim 24 , wherein encoding the one or more syntax elements indicating the MVD using the determined MVD coding technique comprises:

encoding the one or more syntax elements indicating the MVD using the determined MVD coding technique in two or more parts.

32. The method of claim 31 , wherein encoding the one or more syntax elements indicating the MVD using the determined MVD coding technique in two or more parts comprises:

encoding a first syntax element indicating whether a horizontal component of the MVD is zero; and

encoding a second syntax element indicating whether a vertical component of the MVD is zero.

33. An apparatus configured to encode video data, the apparatus comprising:

a memory configured to store a block of video data; and

one or more processors configured to:

encode the block of video data according to an inter-prediction mode;

determine a motion vector difference (MVD) associated with the block of video data;

determine an MVD coding technique from two or more MVD coding techniques based on a difference between a picture order count (POC) value of a reference frame and a POC value of a current picture and based on a motion vector precision; and

encode one or more syntax elements indicating the MVD using the determined MVD coding technique.

34. The apparatus of claim 33 , further comprising:

a camera configured to capture a picture including the block of video data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2017
From: CHIEN, WEI-JUNG; CHEN, JIANLE; ZHANG, LI; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 044228/0145 →
Continuity (2)
Provisional Application 62401692 · Sep 29, 2016
Related Publication 20180091816A1 · Mar 29, 2018
Cited By (14)
US 12,238,330 US 12,244,817 US 12,289,466 US 12,341,967 US 12,348,706 US 12,368,885 US 12,382,085 US 12,401,797 US 12,413,729 US 12,598,326 US 12,621,481 US 12,634,477 US 12,659,489 US 12,676,976