IP Library Granted Patent US 9,544,599
Granted Patent B2
US 9,544,599 · App. 14/355,143 · Granted Jan 10, 2017

Context adaptive data encoding

Inventors: James Alexander Gamei (Surrey, GB); Karl James Sharman (Hampshire, GB); Paul James Silcock (Swindon, GB)
Assignee: Sony Corporation
H04N19/00981H03M7/4018H03M7/42H04N19/88H04N19/91H04N19/98
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,544,599
App. No.
14/355,143
Granted
Jan 10, 2017
Kind
B2
Abstract

A method encoding successive input data values includes: selecting one of plural complementary sub-ranges of a set of code values according to a current input data value, proportions of the sub-ranges relative to the set of code values defined by a context variable associated with that input data value; assigning the current input data value to a code value within the selected sub-range; modifying the set of code values based on the assigned code value and a size of the selected sub-range; detecting whether the set of code values is less than a predetermined minimum size and if so, successively increasing it until reaching the predetermined minimum size; outputting an encoded data bit in response to each size-increasing operation; modifying the context variable to increase the proportion of the set of code values in the sub-range selected; after encoding a group of input data values, terminating the output data.

Claims (56)

1. A image data encoding 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, 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 in dependence upon the assigned code value and a size of the selected sub-range;

detecting whether the set of code values is less than a predetermined minimum size and if so, successively increasing the size of the set of code values until reaching at least the predetermined minimum size;

outputting an encoded data bit in response to each size-increasing operation;

modifying the context variable, for use in respect of a next input data value, to increase a proportion of the set of code values in the sub-range which was selected for the current data value;

and after encoding a group of input data values, terminating by circuitry the output data by: setting a value defining an end of the set of code values to a value having a plurality of least significant bits equal to zero to have the plurality of least significant bits ignored to reduce a number of bits to be outputted at the termination of the output data;

increasing the size of the set of code values;

and writing the value defining the end of the set of code values to the output data.

2. The method according to claim 1 , wherein the plurality of least significant bits comprises seven least significant bits.

3. The method according to claim 1 , wherein the data values represent frequency separated video data.

4. The method according to claim 3 , wherein:

each group of data values comprises data values relating to a particular respective image sub-area;

and the output data is terminated at the end of encoding each image sub-area.

5. The method according to claim 4 , wherein the sub-areas are image slices or image largest coding units (LCUs).

6. The method according to claim 1 , wherein the value defining the end of the set of code values represents a lower limit of the set of code values.

7. The method according to claim 1 , wherein the terminating step is carried out after encoding a group of input data values corresponding to a set of blocks of video data within a slice of the video data which is encoded without reference to other video data;

after encoding a group of input data values representing the whole of a slice of video data which is encoded without reference to other video data;

after encoding a group of input data values such that a next group of data values to be encoded represent non-frequency-separated video data and/or when a set of data values to be encoded by a different encoding technique is detected to exceed a predetermined size.

8. The method according to claim 1 , wherein in which the terminating step comprises:

detecting whether a test value dependent upon a lower limit of the set of code values, plus the predetermined minimum size, is less than an upper limit of the set of code values;

and, if so: setting the lower limit of the set of code values to the test value;

doubling the size of the set of code values and the lower limit respectively;

and writing the value defining the lower limit to the output data;

and if not: setting the lower limit of the set of code values to a value having a plurality of least significant bits equal to zero;

multiplying the size of the set of code values and the lower limit, respectively, by four;

and writing the value defining the lower limit to the output data.

9. The method according to claim 8 , wherein the test value is dependent upon the lower limit, plus a constant, with a plurality of least significant bits then set to zero.

10. A image data decoding method for decoding successive arithmetic-encoded data values, the method comprising: moving a read pointer back in an input data stream by a predetermined number of bit positions to avoid interpreting the predetermined number of bit positions from a next input data stream;

defining a range of a set of code values as zero;

reading, from the input data stream, a stream value indicating a parameter of a set of code values;

setting the proportions of respective sub-ranges relative to the set of code values according to a context variable;

and detecting by circuitry a current decoded output data value according to which sub-range the stream value lies in.

11. The method according to claim 10 , comprising:

reading a value indicating an end of the set of code values from the input data stream.

12. The method according to claim 10 , comprising:

maintaining a value indicating an end of the set of code values during decoding.

13. A video decoding method comprising entropy decoding encoded video data by applying the method of claim 10 .

14. A image data encoding apparatus comprising:

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

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

a data modifying circuit configured to modify the set of code values in dependence upon the assigned code value and a size of the selected sub-range;

a detector configured to detect whether the set of code values is less than a predetermined minimum size and if so, successively increasing the size of the set of code values until reaching at least the predetermined minimum size; to output an encoded data bit in response to each such size-increasing operation;

and to modify the context variable, for use in respect of a next input data value, to increase the proportion of the set of code values in the sub-range which was selected for the current data value;

and after encoding a group of input data values, a data terminator to terminate the output data by:

setting a value defining an end of the set of code values to a value having a plurality of least significant bits equal to zero to have the plurality of least significant bits ignored to reduce a number of bits to be outputted at the termination of the output data;

increasing the size of the set of code values;

and writing the value defining the end of the set of code values to the output data.

15. A image data decoding apparatus comprising:

a pointer controller configured to move a read pointer back in an input data stream by a predetermined number of bit positions to avoid interpreting the predetermined number of bit positions from a next input data stream;

a setting circuit configured to define a range of a set of code values as zero, to read, from the input data stream, a stream value indicating a parameter of a set of code values;

to set the proportions of respective sub-ranges relative to the set of code values according to a context variable;

and to detect a current decoded output data value according to which sub-range the stream value lies in.

16. Video coding apparatus comprising: a frequency domain transformer configured to generate frequency domain coefficients dependent upon respective portions of an input video signal and ordering the coefficients for encoding according to an encoding order;

And an entropy encoder configured to encode the ordered coefficients, the entropy encoder comprising apparatus according to claim 14 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2014
From: GAMEI, JAMES ALEXANDER; SHARMAN, KARL JAMES; SILCOCK, PAUL JAMES
To: SONY CORPORATION
Reel/Frame 032781/0617 →
Priority Claims (1)
GB 1119199.6 · Nov 7, 2011 · national
Continuity (1)
Related Publication 20140307807A1 · Oct 16, 2014