Methods and Systems to Encode and Decode Sequences of Images
First Claim
1. A system, comprising:
- a module to receive pixel values associated with a sequence of video frames;
a prediction module to estimate pixel values of at least a portion of the video frames in accordance with one or more models, and to generate a sequence of symbols corresponding to differences between the estimated pixel values and corresponding received pixel values;
a module to arithmetically encode a sequence of symbols as a floating point integer code value, including to associate the symbols with portions of a code range in proportion to occurrences of the symbols within the sequence of symbols, and to iteratively refine the code range in accordance with the proportions associated with the symbols;
an underflow module to reduce a number of digits in one or more of a lower limit and an upper limit of the code range when the most significant digits of the lower limit and the upper limit differ by one and a number of digits of at least one of the lower limit and the upper limit exceed a threshold; and
a module to format and output the code value, symbol counts associated with the code value, and un-encoded reference pixel values in a data stream.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems to compress and decompress sequences of images, such as video frames, including compression techniques to estimate pixel values, to determine differences between the estimated pixel values and actual pixel values, to arithmetically encode a corresponding sequence of difference values or symbols as a code value, and to output the code value and associated reference information in a data stream. Decompression techniques include techniques to read the code value and associated reference information from the data stream, to arithmetically decode the symbols from the code value, and to reconstruct the sequence of video frames from the decoded symbols and the associated reference information. Also disclosed are techniques to reduce or preclude overflow of registers or buffers used to hold code range values, and to order tables of code range values to improve efficiency of table look-up operations.
-
Citations
20 Claims
-
1. A system, comprising:
-
a module to receive pixel values associated with a sequence of video frames; a prediction module to estimate pixel values of at least a portion of the video frames in accordance with one or more models, and to generate a sequence of symbols corresponding to differences between the estimated pixel values and corresponding received pixel values; a module to arithmetically encode a sequence of symbols as a floating point integer code value, including to associate the symbols with portions of a code range in proportion to occurrences of the symbols within the sequence of symbols, and to iteratively refine the code range in accordance with the proportions associated with the symbols; an underflow module to reduce a number of digits in one or more of a lower limit and an upper limit of the code range when the most significant digits of the lower limit and the upper limit differ by one and a number of digits of at least one of the lower limit and the upper limit exceed a threshold; and a module to format and output the code value, symbol counts associated with the code value, and un-encoded reference pixel values in a data stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system, comprising:
-
a module to arithmetically encode a sequence of symbols as a floating point integer code value, including to associate the symbols with portions of a code range in proportion to occurrences of the symbols within the sequence of symbols, and to iteratively refine the code range in accordance with the proportions associated with the symbols; and an underflow a module to reduce a number of digits in one or more of a lower limit and an upper limit of the code range when the most significant digits of the lower limit and the upper limit differ by one and a number of digits of at least one of the lower limit and the upper limit exceed a threshold. - View Dependent Claims (11, 12)
-
-
13. A method, comprising:
-
receiving pixel values associated with a sequence of video frames; estimating pixel values of at least a portion of the video frames in accordance with one or more models and generating a sequence of symbols corresponding to differences between the estimated pixel values and corresponding received pixel values; arithmetically encoding a sequence of symbols as a floating point integer code value, including associating the symbols with portions of a code range in proportion to occurrences of the symbols within the sequence of symbols, and iteratively refining the code range in accordance with the proportions associated with the symbols; reducing a number of digits in one or more of a lower limit and an upper limit of the code range when the most significant digits of the lower limit and the upper limit differ by one and a number of digits of at least one of the lower limit and the upper limit exceed a threshold; and formatting and outputting the code value, symbol counts associated with the code value, and un-encoded reference pixel values, in a data stream; wherein the receiving, the estimating, the arithmetically encoding, the reducing, and the formatting, are performed in a suitably programmed computer system. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification