IP Library Granted Patent US 10,382,779
Granted Patent B2
US 10,382,779 · App. 15/498,840 · Granted Aug 13, 2019

Image coding method for decoding a difference motion vector from a bitstream

Inventors: Hisao Sasai (Osaka, JP); Takahiro Nishi (Nara, JP); Youji Shibahara (Tokyo, JP); Toshiyasu Sugio (Osaka, JP); Kyoko Tanikawa (Osaka, JP); Toru Matsunobu (Osaka, JP)
Assignee: Velos Media, LLC
H04N19/521H04N19/13H04N19/1887H04N19/436H04N19/46H04N19/463H04N19/52H04N19/70H04N19/91H04N19/17H04N19/184
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,382,779
App. No.
15/498,840
Granted
Aug 13, 2019
Kind
B2
Abstract

An image coding method includes coding a motion vector difference indicating a difference between the motion vector and a predicted motion vector, wherein the coding includes: coding a first portion that is a part of a first component which is one of a horizontal component and a vertical component of the motion vector difference; coding a second portion that is a part of a second component which is different from the first component and is the other one of the horizontal component and the vertical component; coding a third portion that is a part of the first component and is different from the first portion; coding a fourth portion that is a part of the second component and is different from the second portion; and generating a code string which includes the first portion, the second portion, the third portion, and the fourth portion in the stated order.

Claims (67)

1. A method for decoding, from a bitstream, a difference motion vector which indicates a difference between a motion vector used to predict a picture and a predicted motion vector that is a prediction of the motion vector, the method comprising:

decoding a first flag and a second flag by performing context adaptive binary arithmetic decoding with variable probability;

decoding, subsequent to decoding the first flag and the second flag, first grouped data that includes (i) first prefix data of a horizontal component of the difference motion vector, (ii) second prefix data of a vertical component of the difference motion vector;

decoding, subsequent to decoding the first grouped data, second grouped data that includes (i) first suffix data of the horizontal component of the difference motion vector, and (ii) second suffix data of the vertical component of the difference motion vector;

deriving the horizontal component of the difference motion vector from a combination of the first prefix data and the first suffix data; and

deriving the vertical component of the difference motion vector from a combination of the second prefix data and the second suffix data;

wherein decoding the first grouped data and the second grouped data is performed in response to the first flag indicating that the horizontal component of the difference motion vector is not zero and the second flag indicating that the vertical component of the difference motion vector is not zero.

2. The method of claim 1 wherein decoding the first grouped data comprises performing context adaptive binary arithmetic decoding with variable probability.

3. The method of claim 1 wherein decoding the second grouped data comprises performing bypass decoding.

4. The method of claim 1 , further comprising:

decoding a first flag indicating whether or not a horizontal component of an additional difference motion vector is zero, wherein the first flag of the additional difference motion vector is decoded by performing context adaptive binary arithmetic decoding with variable probability;

after decoding the first flag of the additional difference motion vector, decoding a second flag indicating whether or not a vertical component of the additional difference motion vector is zero, wherein the second flag of the additional difference motion vector is decoded by performing context adaptive binary arithmetic decoding with variable probability;

after decoding the second flag of the additional difference motion vector, if the first flag of the additional difference motion vector indicates that the horizontal component of the additional difference motion vector is not zero, decoding first prefix data for the horizontal component of the additional difference motion vector, wherein the first prefix data of the additional difference motion vector is decoded by performing context adaptive binary arithmetic decoding with variable probability;

after decoding at least one of the second flag or the first prefix data of the additional difference motion vector, if the second flag of the additional difference motion vector indicates that the vertical component of the additional difference motion vector is not zero, decoding second prefix data for the vertical component of the additional difference motion vector, wherein the second prefix data is decoded by performing context adaptive binary arithmetic decoding with variable probability;

after decoding at least one of the first prefix data or the second prefix data of the additional difference motion vector, if the first flag of the additional difference motion vector indicates that the horizontal component of the additional difference motion vector is not zero, decoding first suffix data for the horizontal component of the additional difference motion vector, wherein the first suffix data is decoded by performing bypass decoding;

after decoding at least one of the second prefix data or the first suffix data of the additional difference motion vector, if the second flag of the additional difference motion vector indicates that the vertical component of the additional difference motion vector is not zero, decoding second suffix data for the vertical component of the additional difference motion vector, wherein the first suffix data is decoded by performing bypass decoding;

deriving the horizontal component of the additional difference motion vector from: (i) the first flag of the additional difference motion vector if the first flag indicates that the horizontal component of the additional difference motion vector is zero, or (ii) the first prefix data and the first suffix data of the additional difference motion vector if the first flag indicates that the horizontal component of the additional difference motion vector is not zero; and

deriving the vertical component of the additional difference motion vector from: (i) the second flag of the additional difference motion vector if the second flag indicates that the vertical component of the additional difference motion vector is zero, or (ii) the second prefix data and the second suffix data of the additional difference motion vector if the second flag indicates that the vertical component of the additional difference motion vector is not zero.

5. The method of claim 4 wherein, if the first flag of the additional difference motion vector indicates that the horizontal component of the additional difference motion vector is zero, the context adaptive binary arithmetic decoding is not performed on first prefix data and the bypass decoding is not performed on first suffix data for the horizontal component of the additional difference motion vector, and, if the second flag of the additional difference motion vector indicates that the vertical component of the additional difference motion vector is zero, the context adaptive binary arithmetic decoding is not performed on second prefix data and the bypass decoding is not performed on second suffix data for the vertical component of the additional difference motion vector.

6. The method of claim 4 wherein, the additional difference motion vector is encoded in the following order:

(a) the first flag;

(b) the second flag;

(c) the first prefix data if the first flag indicates that the horizontal component of the additional difference motion vector is not zero;

(d) the second prefix data if data if the second flag indicates that the vertical component of the additional difference motion vector is not zero;

(e) the first suffix data if the first flag indicates that the horizontal component of the additional difference motion vector is not zero; and

(f) the second suffix data if data if the second flag indicates that the vertical component of the additional difference motion vector is not 0.

7. An apparatus which decodes, from a bitstream, a difference motion vector which indicates a difference between a motion vector used to predict a picture and a predicted motion vector that is a prediction of the motion vector, the apparatus comprising:

processing circuitry; and

storage accessible from the processing circuitry,

wherein, using the storage, the processing circuitry is adapted to:

decode a first flag and a second flag by performing context adaptive binary arithmetic decoding with variable probability;

decode, subsequent to decoding the first flag and the second flag, first grouped data that includes (i) a first prefix data of a horizontal component of the difference motion vector, (ii) a second prefix data of a vertical component of the difference motion vector;

determine whether each of the horizontal component and the vertical component is greater than or equal to a predetermined value based on the decoded first grouped data; and

decode, subsequent to decoding the first grouped data, second grouped data that includes (i) the first suffix data of the horizontal component of the difference motion vector, and (ii) the second suffix data of the vertical component of the difference motion vector if each of the horizontal component and the vertical component is determined to be greater than or equal to a predetermined value and skipping decoding the first suffix data when the horizontal component is less than the predetermined value and skipping decoding the second suffix data when the vertical component is less than the predetermined value;

derive the horizontal component of the difference motion vector from the first prefix data in combination with any decoded first suffix data; and

derive the vertical component of the difference motion vector from the second prefix data in combination with any decoded second suffix data; and

wherein decoding the first prefix data, the second prefix data, and the second grouped data is performed in response to the first flag indicating that the horizontal component of the difference motion vector is not zero and the second flag indicating that the vertical component of the difference motion vector is not zero.

8. The apparatus of claim 7 wherein the processing circuitry is further adapted to decode the first grouped data by performing context adaptive binary arithmetic decoding with variable probability.

9. The apparatus of claim 7 wherein the processing circuitry is further adapted to decode the second grouped data by performing bypass decoding.

10. An apparatus which decodes, from a bitstream, a difference motion vector which indicates a difference between a motion vector used to predict a picture and a predicted motion vector that is a prediction of the motion vector, the apparatus comprising:

processing circuitry; and

storage accessible from the processing circuitry,

wherein using the storage, the processing circuitry is adapted to:

decode the first flag and the second flag by performing context adaptive binary arithmetic decoding with variable probability;

decode, subsequent to decoding the first flag and the second flag, first grouped data that includes (i) a first prefix data of a horizontal component of the difference motion vector, (ii) a second prefix data of a vertical component of the difference motion vector;

decode, subsequent to decoding the first grouped data, second grouped data that includes (i) the first suffix data of the horizontal component of the difference motion vector, and (ii) the second suffix data of the vertical component of the difference motion vector;

derive the horizontal component of the difference motion vector from a combination of the first prefix data and the first suffix data; and

derive the vertical component of the difference motion vector from a combination of the second prefix data and the second suffix data:,

wherein decoding the first prefix data, the second prefix data, and the second grouped data is performed in response to the first flag indicating that the horizontal component of the difference motion vector is not zero and the second flag indicating that the vertical component of the difference motion vector is not zero.

11. The apparatus of claim 10 wherein decoding the first grouped data comprises performing context adaptive binary arithmetic decoding with variable probability.

12. The apparatus of claim 10 wherein decoding the second grouped data comprises performing bypass decoding.

13. The apparatus of claim 10 , wherein the processing circuitry is further adapted to:

decode the second flag after decoding the first flag;

after decoding the second flag, if the second flag indicates that the vertical component of the difference motion vector is not zero, decode the second prefix data for the vertical component of the difference motion vector, wherein the second prefix data is decoded by performing context adaptive binary arithmetic decoding with variable probability;

after decoding at least one of the second flag or the first prefix data of the difference motion vector, if the second flag indicates that the vertical component of the difference motion vector is not zero, decode second prefix data for the vertical component of the difference motion vector, wherein the second prefix data is decoded by performing context adaptive binary arithmetic decoding with variable probability;

after decoding at least one of the first prefix data or the second prefix data of the difference motion vector, if the first flag indicates that the horizontal component of the difference motion vector is not zero, decode first suffix data for the horizontal component of the difference motion vector, wherein the first suffix data is decoded by performing bypass decoding;

after decoding at least one of the second prefix data or the first suffix data of the difference motion vector, if the second flag indicates that the vertical component of the difference motion vector is not zero, decode second suffix data for the vertical component of the difference motion vector, wherein the first suffix data is decoded by performing bypass decoding;

derive the horizontal component of the difference motion vector from: (i) the first flag if the first flag indicates that the horizontal component of the difference motion vector is zero, or (ii) the first prefix data and the first suffix data if the first flag indicates that the horizontal component of the difference motion vector is not zero; and

derive the vertical component of the difference motion vector from: (i) the second flag if the second flag indicates that the vertical component of the difference motion vector is zero, or (ii) the second prefix data and the second suffix data if the second flag indicates that the vertical component of the difference motion vector is not zero.

14. The apparatus of claim 13 wherein, if the first flag indicates that the horizontal component of the difference motion vector is zero, the context adaptive binary arithmetic decoding is not performed on first prefix data and the bypass decoding is not performed on first suffix data for the horizontal component of the difference motion vector, and, if the second flag indicates that the vertical component of the difference motion vector is zero, the context adaptive binary arithmetic decoding is not performed on second prefix data and the bypass decoding is not performed on second suffix data for the vertical component of the difference motion vector.

15. The apparatus of claim 14 wherein, the difference motion vector is encoded in the following order:

(a) the first flag;

(b) the second flag;

(c) the first prefix data if the first flag indicates that the horizontal component of the difference motion vector is not zero;

(d) the second prefix data if data if the second flag indicates that the vertical component of the difference motion vector is not zero;

(e) the first suffix data if the first flag indicates that the horizontal component of the difference motion vector is not zero; and

(f) the second suffix data if data if the second flag indicates that the vertical component of the difference motion vector is not zero.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2022
From: VELOS MEDIA, LLC
To: SUN PATENT TRUST
Reel/Frame 061391/0110 →
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2022
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: VELOS MEDIA, LLC AND VELOS MEDIA MANAGEMENT, LLC
Reel/Frame 060923/0407 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2018
From: SUN PATENT TRUST
To: VELOS MEDIA, LLC
Reel/Frame 046175/0927 →
Continuity (4)
Continuation 14041043 · Sep 30, 2013
Division 13529384 · Jun 21, 2012
Provisional Application 61500805 · Jun 24, 2011
Related Publication 20170230681A1 · Aug 10, 2017