IP Library Granted Patent US 11,290,720
Granted Patent B2
US 11,290,720 · App. 14/778,394 · Granted Mar 29, 2022

Data encoding and decoding

Inventors: James Alexander Gamei (Surrey, GB); Karl James Sharman (Newbury, GB)
Assignee: Sony Group Corporation
H04N19/13H03M7/4018H04N19/107H04N19/117H04N19/129H04N19/159H04N19/52H04N19/593H04N19/61H04N19/625H04N19/91
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 11,290,720
App. No.
14/778,394
Filed
Sep 18, 2015
Granted
Mar 29, 2022
Kind
B2
Examiner
MUNG, ON S
Art Unit
2486
USPC
375/240.02
Abstract

A method encoding data values of a data set, including: selecting one of plural complementary sub-ranges of a code values set according to a current input data value, the code values set defined by a range variable; assigning the current input data value to a code value within the selected sub-range; modifying the code values set depending on the assigned code value and size of the selected sub-range; detecting whether the range variable is less than a predetermined minimum size and if so, successively increasing the range variable to increase the code values set size to at least the predetermined minimum size; outputting an encoded data bit in response to each size-increasing operation; after encoding a group of input data values, setting the range variable to a value selected from a predetermined subset of available range variable values, each subset value having at least one least significant bit of zero.

Claims (58)

1. A data encoding apparatus for encoding input data values of an image and/or video data set for encoding, the data encoding apparatus comprising:

circuitry configured to

select one of a plurality of complementary sub-ranges of a set of code values according to a value of a current input data value, the set of code values being defined by a range variable, proportions of the sub-ranges relative to the set of code values being defined by a context variable associated with the input data value;

assign the current input data value to a code value within the selected sub-range;

modify the set of code values according to the assigned code value and a size of the selected sub-range;

detect whether the range variable defining the set of code values is less than a predetermined minimum size and, if so, successively increase the range variable so as to increase a size of the set of code values until the range variable has at least the predetermined minimum size;

encode data bits representing the input data values based on the increased range variable by outputting an encoded data bit in response to each size-increasing operation; and

after encoding a group of the input data values without encoding equiprobable bypass data corresponding to the group of the input data values, perform a bypass data encoding operation including

setting a bypass data range variable to a value selected from a predetermined subset of available range variable values, each value in the subset of available range variable values having at least one least significant bit equal to zero; and

encoding, using the set bypass data range variable, the equiprobable bypass data.

2. The data encoding apparatus according to claim 1 , wherein the subset of available range variable values consists of the value 256.

3. The data encoding apparatus according to claim 1 , wherein the context variable is modified, for use in respect to a next input data value, so as to increase a proportion of the set of code values in the sub-range that is selected for the current input data value.

4. The data encoding apparatus according to claim 1 , wherein the set of code values comprises values from 0 to an upper value defined by the range variable, the upper value being between the predetermined minimum size and a second predetermined value.

5. The data encoding apparatus according to claim 4 , wherein the predetermined minimum size is 256 and the second predetermined value is 510.

6. The data encoding apparatus according to claim 1 , wherein the subset of available range variable values comprises the predetermined minimum size.

7. The data encoding apparatus according to claim 4 , wherein the subset of available range variable values comprises two or more values between the predetermined minimum size and the second predetermined value.

8. The data encoding apparatus according to claim 6 , wherein the circuitry is configured to select a value from the subset of available range variable values according to a current value of the bypass data range variable.

9. The data encoding apparatus according to claim 8 , wherein the circuitry is configured to select a particular value from the subset of available range variable values if a current value of the bypass data range variable is between the particular value and less than a next-higher value in the subset of available range variable values.

10. The data encoding apparatus according to claim 1 , wherein the circuitry is further configured to detect a quantity of bypass data associated with a current array, wherein

the circuitry is configured to set the bypass data range variable if the quantity of bypass data exceeds a threshold amount, and configured not to set the bypass data range variable if the quantity of bypass data does not exceed the threshold amount.

11. The data encoding apparatus according to claim 1 , wherein

the input data values represent image data,

the image data is encoded as transform units comprising a plurality of arrays of coefficients, each transform unit corresponding to the group of the input data values, and

the circuitry is configured to set the bypass data range variable after encoding a transform unit without encoding equiprobable bypass data of the transform unit.

12. A method of data encoding input data values of an image and/or video data set for encoding, the method comprising:

selecting one of a plurality of complementary sub-ranges of a set of code values according to a value of a current input data value, the set of code values being defined by a range variable, proportions of the sub-ranges relative to the set of code values being defined by a context variable associated with the input data value;

assigning the current input data value to a code value within the selected sub-range;

modifying the set of code values according to the assigned code value and a size of the selected sub-range;

detecting whether the range variable defining the set of code values is less than a predetermined minimum size and, if so, successively increasing the range variable so as to increase a size of the set of code values until the range variable has at least the predetermined minimum size;

encoding data bits representing the input data values based on the increased range variable by outputting an encoded data bit in response to each size-increasing operation; and

after encoding a group of the input data values without encoding equiprobable bypass data corresponding to the group of the input data values, performing a bypass data encoding operation including

setting a bypass data range variable to a value selected from a predetermined subset of available range variable values, each value in the subset of available range variable values having at least one least significant bit equal to zero; and

encoding, using the set bypass data range variable, the equiprobable bypass data.

13. The method according to claim 12 , wherein the subset of available range variable values consists of the value 256.

14. A data decoding apparatus for decoding a sequence of arithmetic-encoded data values of an image and/or video data set, the data decoding apparatus comprising:

circuitry configured to

select one of a plurality of complementary sub-ranges of a set of code values, the set of code values being defined by a range variable, proportions of the sub-ranges relative to the set of code values being defined by a context variable associated with an arithmetic-encoded data value;

modify the set of code values according to a size of the selected sub-range;

detect an encoded data value,

in response to the detection of the encoded data value, increase a size of the set of code values, and

detect a sequence termination at which a bypass data range variable is set to a value selected from a predetermined subset of available range variable values, each value in the subset of available range variable values having at least one least significant bit equal to zero; and

in response to the detection of the sequence termination,

set the bypass data range variable and the size of the set of code values to the selected value; and

decode, using the set bypass data range variable, equiprobable bypass data.

15. The data decoding apparatus according to claim 14 , wherein the subset of available range variable values consists of the value 256.

16. A method of decoding a sequence of arithmetic-encoded data values of an image and/or video data set, the method comprising:

selecting one of a plurality of complementary sub-ranges of a set of code values, the set of code values being defined by a range variable, proportions of the sub-ranges relative to the set of code values being defined by a context variable associated with an arithmetic-encoded data value;

modifying the set of code values according to a size of the selected sub-range;

detecting an encoded data value and, in response to the detection of the encoded data value, increasing a size of the set of code values;

detecting a sequence termination at which a bypass data range variable is set to a value selected from a predetermined subset of available range variable values, each value in the subset of available range variable values having at least one least significant bit equal to zero; and

in response to the detection of the sequence termination,

setting the bypass data range variable and the size of the set of code values to the selected value; and

decoding, using the set bypass data range variable, equiprobable bypass data.

17. The method according to claim 16 , wherein the subset of available range variable values consists of the value 256.

18. The method according to claim 16 , further comprising:

detecting, from a final encoded data value at the sequence termination, one or more equiprobably encoded data values.

19. A non-transitory computer readable medium including computer program instructions, which, when executed by a computer, cause the computer to perform the method of claim 12 .

20. A video data capture, transmission and/or storage apparatus comprising the apparatus according to claim 1 .

Assignments (2)
CHANGE OF NAME Recorded Feb 14, 2022
From: SONY CORPORATION
To: SONY GROUP CORPORATION
Reel/Frame 059086/0686 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2015
From: GAMEI, JAMES ALEXANDER; SHARMAN, KARL JAMES
To: SONY CORPORATION
Reel/Frame 036601/0914 →
Priority Claims (1)
GB 1306334 · Apr 8, 2013 · national
Continuity (1)
Related Publication 20160286215A1 · Sep 29, 2016