IP Library Granted Patent US 9,854,253
Granted Patent B2
US 9,854,253 · App. 14/750,935 · Granted Dec 26, 2017

Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data

Inventors: Krishnakanth Rapaka (San Diego, CA); Marta Karczewicz (San Diego, CA); Chao Pang (San Diego, CA); Joel Sole Rojals (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/176H04N19/13H04N19/139H04N19/184H04N19/52
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 9,854,253
App. No.
14/750,935
Filed
Jun 25, 2015
Granted
Dec 26, 2017
Kind
B2
Art Unit
2485
USPC
375/240.16
Abstract

A method for motion vector difference (MVD) coding of screen content video data is disclosed. In one aspect, the method includes determining an MVD between a predicted motion vector and a current motion vector and generating a binary string comprising n bins via binarizing the MVD. The method further includes determining whether an absolute value of the MVD is greater than a threshold value and encoding a subset of the n bins via an exponential Golomb code having an order that is greater than one in response to the absolute value of the MVD being greater than the threshold value.

Claims (67)

1. A method operable by a video encoder for encoding screen content, the method comprising:

determining a motion vector difference (MVD) between a predicted motion vector and a current motion vector;

generating a binary string comprising n bins via binarizing the MVD;

encoding at least one bin of the n bins via a first entropy coding operation;

determining whether an absolute value of the MVD is greater than a threshold value;

encoding a subset of the n bins via a second entropy coding operation in response to the absolute value of the MVD being greater than the threshold value, the second entropy coding operation comprising an exponential coding having an order that is greater than one; and

encoding the subset of n bins using a fixed length code in response to the absolute value of the MVD being less than or equal to the threshold value;

wherein the at least one bin comprises first and second bins, the first bin indicating whether the absolute value of the MVD is greater than zero;

wherein the subset of the n bins comprises third through n−1 th bins of the n bins, and wherein the length of the fixed length code is dependent on the threshold value.

2. The method of claim 1 , wherein:

the first entropy coding operation comprises Context Adaptive Binary Arithmetic Coding (CABAC); and

the second entropy coding operation comprises an exponential Golomb coding.

3. The method of claim 2 , further comprising determining a context for each of the at least one bin based on whether the MVD is a horizontal component MVD or a vertical component MVD.

4. The method of claim 1 , wherein the second bin indicates whether the absolute value of the MVD is greater than the threshold value.

5. The method of claim 1 , wherein the subset of the n bins comprises third through n−1 th bins of the n bins, the encoding the third through n−1 th bins comprising encoding the third to n−1 th bins in bypass mode.

6. The method of claim 1 , further comprising encoding the n th bin of the n bins in bypass mode, the n th bin indicating a sign of the MVD.

7. The method of claim 1 , wherein MVD is binarized and encoded via the same method as a block vector difference (BVD).

8. The method of claim 1 , wherein the MVD comprises a plurality of directional components, the method further comprising generating a plurality of directional component binary strings respectively corresponding to the directional components via binarizing the directional components, the corresponding ordinal bins of the directional component binary strings sharing the same context.

9. The method of claim 1 , wherein the at least one bin indicates whether the subset of the n bins are encoded via the second entropy coding operation or a fixed length code.

10. The method of claim 1 , further comprising encoding at least a portion of the subset via a truncated Exponential Golomb coding in response to the absolute value of the MVD being less than or equal to the threshold value.

11. A method operable by a video decoder for decoding screen content, the method comprising:

receiving a bitstream comprising an encoded binary string, the binary string comprising n bins;

decoding at least one bin of the n bins via a first entropy coding operation, the at least one bin indicating whether an absolute value of a motion vector difference (MVD) is greater than a threshold value, the MVD being a difference between a predicted motion vector and a current motion vector;

decoding a subset of the n bins via a second entropy coding operation in response to the at least one bin indicating that the absolute value of the MVD is greater than the threshold value, the second entropy coding operation comprising an exponential coding having an order that is greater than one;

decoding the subset of the n bins using a fixed length code in response to the at least one bin indicating that the absolute value of the MVD is less than or equal to the threshold value; and

generating the MVD based at least in part on the decoded bins;

wherein the at least one bin comprises first and second bins, the first bin indicating whether the absolute value of the MVD is greater than zero;

wherein the subset of the n bins comprises third through n−1 th bins of the n bins, and wherein the length of the fixed length code is dependent on the threshold value.

12. The method of claim 11 , wherein:

the first entropy coding operation comprises Context Adaptive Binary Arithmetic Coding (CABAC); and

the second entropy coding operation comprises an exponential Golomb coding.

13. The method of claim 11 , wherein the second bin indicating whether the absolute value of the MVD is greater than the threshold value.

14. The method of claim 11 , wherein the MVD is decoded via the same method as a block vector difference (BVD).

15. A device for encoding screen content, comprising:

a memory configured to store at least a portion of the screen content; and

at least one processor in communication with the memory and configured to:

determine a motion vector difference (MVD) between a predicted motion vector and a current motion vector;

generate a binary string comprising n bins via binarizing the MVD;

encode at least one bin of the n bins via a first entropy coding operation;

determine whether an absolute value of the MVD is greater than a threshold value;

encode a subset of the n bins via a second entropy coding operation in response to the absolute value of the MVD being greater than the threshold value, the second entropy coding operation comprising an exponential coding having an order that is greater than one; and

encode the subset of the n bins using a fixed length code in response to the absolute value of the MVD being less than or equal to the threshold value;

wherein the at least one bin comprises first and second bins, the first bin indicating whether the absolute value of the MVD is greater than zero;

wherein the subset of the n bins comprises third through n−1 th bins of the n bins, and wherein the length of the fixed length code is dependent on the threshold value.

16. The device of claim 15 , wherein:

the first entropy coding operation comprises Context Adaptive Binary Arithmetic Coding (CABAC); and

the second entropy coding operation comprises an exponential Golomb coding.

17. The device of claim 15 , wherein the second bin indicates whether the absolute value of the MVD is greater than the threshold value.

18. The device of claim 15 , wherein the at least one processor is further configured to binarize and encode the MVD via the same method as a block vector difference (BVD).

19. The device of claim 15 , wherein the at least one bin indicates whether the subset of the n bins are encoded via the second entropy coding operation or a fixed length code.

20. The device of claim 15 , wherein the at least one processor is further configured to encode of the subset of the n bins via encoding at least a portion of the subset via a truncated Exponential Golomb coding in response to the absolute value of the MVD being less than or equal to the threshold value.

21. A device for decoding screen content, comprising:

a memory configured to store at least a portion of the screen content; and

at least one processor in communication with the memory and configured to:

receive a bitstream comprising an encoded binary string, the binary string comprising n bins;

decode at least one bin of the n bins via a first entropy coding operation, the at least one bin indicating whether an absolute value of a motion vector difference (MVD) is greater than a threshold value, the MVD being a difference between a predicted motion vector and a current motion vector;

decode a subset of the n bins via a second entropy coding operation in response to the at least one bin indicating that the absolute value of the MVD is greater than the threshold value, the second entropy coding operation comprising an exponential coding having an order that is greater than one;

decode the subset of the n bins using a fixed length code in response to the at least one bin indicating that the absolute value of the MVD is less than or equal to the threshold value; and

generate the MVD based at least in part on the decoded bins;

wherein the at least one bin comprises first and second bins, the first bin indicating whether the absolute value of the MVD is greater than zero;

wherein the subset of the n bins comprises third through n−1 th bins of the n bins, and wherein the length of the fixed length code is dependent on the threshold value.

22. The device of claim 21 , wherein:

the first entropy coding operation comprises Context Adaptive Binary Arithmetic Coding (CABAC); and

the second entropy coding operation comprises an exponential Golomb coding.

23. The device of claim 21 , wherein the second bin indicating whether the absolute value of the MVD is greater than the threshold value.

24. The device of claim 21 , wherein the length of the fixed length code is equal to the threshold value.

25. The device of claim 21 , wherein the at least one processor is further configured to decode the MVD via the same method as a block vector difference (BVD).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2015
From: RAPAKA, KRISHNAKANTH; KARCZEWICZ, MARTA; PANG, CHAO; SOLE ROJALS, JOEL
To: QUALCOMM INCORPORATED
Reel/Frame 036482/0104 →
Continuity (3)
Provisional Application 62019239 · Jun 30, 2014
Provisional Application 62041527 · Aug 25, 2014
Related Publication 20150382010A1 · Dec 31, 2015