IP Library › Granted Patent US 10,136,136
Granted Patent B2
US 10,136,136 · App. 14/779,502 · Granted Nov 20, 2018

Encoding and decoding of significant coefficients in dependence upon a parameter of the significant coefficients

Inventors: David Berry (Surrey, GB); James Alexander Gamei (Surrey, GB); Nicholas Ian Saunders (Basingstoke, GB); Karl James Sharman (Newbury, GB)
Assignee: Sony Corporation
H04N19/13H04N19/124H04N19/136H04N19/18H04N19/44H04N19/463H04N19/91H04N19/93H03M7/40H03M7/46
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,136,136
App. No.
14/779,502
Granted
Nov 20, 2018
Kind
B2
Abstract

A data encoding method for encoding an array of data values as data sets and escape codes for values not encoded by the data sets, an escape code including a unary coded portion and a non-unary coded portion, the method including: setting a coding parameter defining a minimum number of bits of a non-unary coded portion; adding an offset value of 1 or more to the coding parameter to define a minimum least significant data portion size; generating one or more data sets indicative of positions, relative to the array of data values, of data values of predetermined magnitude ranges, to encode the value of at least one least significant bit of each data value; generating respective complementary most-significant data portions and least-significant data portions; encoding the data sets; encoding the most significant data portions; and encoding the least-significant portions.

Claims (55)

1. A data encoding method, comprising:

encoding an array of data values as data sets and encoding escape codes for values not encoded by the data sets, an escape code comprising a unary coded portion and a non-unary coded portion, by:

setting a coding parameter defining a minimum number of bits of a non-unary coded portion of an escape code, the coding parameter being between 0 and a predetermined upper limit;

adding an offset value of 1 or more to the coding parameter so as to define a minimum least significant data portion size and so that the coding parameter exceeds the predetermined upper limit;

generating one or more data sets indicative of positions, relative to the array of data values, of data values of predetermined magnitude ranges, so as to encode the value of at least one least significant bit of each data value;

generating, from at least a part of each data value not encoded by the one or more data sets, respective complementary most significant data portions and least significant data portions, such that the most significant data portion of a value represents zero or more most significant bits of that portion, and the respective least significant data portion is dependent upon a number of least significant bits of the part, the number of least significant bits being greater than or equal to the minimum least significant data portion size;

encoding the one or more data sets to an output data stream;

encoding the most significant data portions to the output data stream; and

encoding the least significant portions to the output data stream.

2. The method according to claim 1 , wherein

the encoding the most significant data portions to the output data stream comprises encoding the most significant data portions to the output data stream using a unary code, and

the encoding the least significant portions to the output data stream comprises encoding the least significant portions to the output data stream using a non-unary code.

3. The method according to claim 1 , wherein the encoding the one or more data sets to the output data stream is performed using a binary code.

4. The method according to claim 1 , wherein the setting comprises incrementing the coding parameter in dependence upon a magnitude of a current data value in the array.

5. The method according to claim 2 , wherein the encoding the most significant data portion and the least significant data portion comprises encoding the most significant data portion and the least significant data portion using a Golomb-Rice code or an exponential Golomb code.

6. The method according to claim 5 , wherein

a suffix length of the Golomb-Rice code is equal to the minimum least significant data portion size, or

the exponential Golomb code has an order equal to the minimum least significant data portion size.

7. The method according to claim 1 , further comprising generating the offset value in dependence upon a parameter of the array of data values.

8. The method according to claim 7 , wherein the parameter of the array of data values comprises one or more selected from a list consisting of:

a number of data values in the array;

a type of data represented by the data values;

a quantisation parameter applicable to the array of data values; and

an encoding mode.

9. The method according to claim 1 , further comprising including data in a data header defining the offset value.

10. A non-transitory computer readable medium including computer program instructions, which when executed by a computer, causes the computer to perform the data encoding method of claim 1 .

11. A data decoding method. comprising:

decoding input data to provide an array of data values, the input data having been encoded as data sets, and decoding escape codes for values not encoded by the data sets, an escape code comprising a unary coded portion and a non-unary coded portion, by:

setting a coding parameter defining a minimum number of bits of a non-unary coded portion of an escape code, the coding parameter being between 0 and a predetermined upper limit;

adding an offset value of 1 or more to the coding parameter so as to define a minimum least significant data portion size and so that the coding parameter exceeds the predetermined upper limit;

decoding one or more data sets indicative of positions, relative to the array of data values, of data values of predetermined magnitude ranges, so as to decode the value of at least one least significant bit of each data value; and

decoding at least a part of each data value not encoded by the one or more data sets from the unary coded portion and the non-unary coded portion respective complementary most significant data portions and least significant data portions, such that a respective most significant data portion of a value represents zero or more most significant bits of that portion, and a respective least significant data portion represents a number of least significant bits of the part, the number of least significant bits being greater than or equal to the minimum least significant data portion size.

12. A non-transitory computer readable medium including computer program instructions, which when executed by a computer causes the computer to perforin the data decoding method of claim 11 .

13. A data encoding apparatus, comprising:

a processor configured to:

encode an array of data values as data sets; and

encode escape codes for values not encoded by the data sets, an escape code comprising a unary coded portion and a non-unary coded portion, wherein

to encode the array and the escape codes, the processor is configured to:

set a coding parameter defining a minimum number of bits of a non-unary coded portion of the escape code, the coding parameter being between 0 and a predetermined upper limit;

add an offset value of 1 or more to the coding parameter so as to define a minimum least significant data portion size and so that the coding parameter exceeds the predetermined upper limit:

generate one or more data sets indicative of positions, relative to the array of data values, of data values of predetermined magnitude ranges, so as to encode the value of at least one least significant bit of each data value;

generate, from at least a part of each data value not encoded by the one or more data sets, respective complementary most significant data portions and least significant data portions, such that the most significant data portion of a value represents zero or more most significant bits of that portion, and the respective least significant data portion represents a number of least significant bits of the part, the number of least significant bits being greater than to the minimum least significant data portion size;

encode the one or more data sets to an output data stream;

encode the most significant data portions to the output data stream; and

encode the least significant portions to the output data stream.

14. A video data capture, transmission, display and/or storage apparatus comprising the data encoding apparatus according to claim 13 .

15. A data decoding apparatus, comprising:

a processor configured to:

decode input data to provide an array of data values, the input data being encoded as data sets; and

decode escape codes for values not encoded by the data sets, an escape code comprising a unary coded portion and a non-unary coded portion, wherein

to decode the input data and the escape codes, the processor is configured to:

set a coding parameter defining a minimum number of bits of a non-unary coded portion of an escape code, the coding parameter being between 0 and a predetermined upper limit;

add an offset value of 1 or more to the coding parameter so as to define a minimum least significant data portion size and so that the coding parameter exceeds the predetermined upper limit;

decode one or more data sets indicative of positions, relative to the array of data values, of data values of predetermined magnitude ranges, so as to decode the value of at least one least significant bit of each data value; and

decode at least a part of each data value not encoded by the one or more data sets from the unary coded portion and the non-unary coded portion respective complementary most significant data portions and least significant data portions, such that a respective most significant data portion of a value represents zero or more most significant bits of that portion, and a respective least significant data portion represents a number of least significant bits of the part, the number of least significant bits being greater than or equal to the minimum least significant data portion size.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2015
From: BERRY, DAVID; GAMEI, JAMES ALEXANDER; SAUNDERS, NICHOLAS IAN; SHARMAN, KARL JAMES
To: SONY CORPORATION
Reel/Frame 036637/0716 →
Priority Claims (4)
GB 1306335.9 · Apr 8, 2013 · national
GB 1307121.2 · Apr 19, 2013 · national
GB 1312330.2 · Jul 9, 2013 · national
GB 1320775.8 · Nov 25, 2013 · national
Continuity (1)
Related Publication 20160050427A1 · Feb 18, 2016