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 such that each respective one of the symbols is assigned a corresponding consecutive portion of the code range in proportion to a frequency of occurrence of each respective one of the symbols within the sequence of symbols, and to iteratively refine the code range in accordance with the proportions associated with the symbols to define an output code value representing a compressed form of the sequence of 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,wherein the prediction module is configured to represent pixel values with multiple-bytes including a most significant byte and a least significant byte, and wherein the prediction module includes;
a most significant byte model to estimate most significant byte pixel values from first byte reference pixel values; and
a least significant byte model to estimate least significant byte pixel values from least significant byte reference pixel values, andwherein;
the sequence of video frames corresponds to a sequence of infrared images;
wherein adjacent ones of the images are substantially similar to one another;
the prediction module is configured to represent the symbols with multiple-bytes, including a most significant byte and a least significant byte; and
differences between pixel values of the sequence of infrared images and corresponding pixel values of a reference image are relatively small, the symbols are predominantly relatively small positive and negative values, and the most significant bytes of the symbols are predominantly one of all zeros and all ones.
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
18 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 such that each respective one of the symbols is assigned a corresponding consecutive portion of the code range in proportion to a frequency of occurrence of each respective one of the symbols within the sequence of symbols, and to iteratively refine the code range in accordance with the proportions associated with the symbols to define an output code value representing a compressed form of the sequence of 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, wherein the prediction module is configured to represent pixel values with multiple-bytes including a most significant byte and a least significant byte, and wherein the prediction module includes;
a most significant byte model to estimate most significant byte pixel values from first byte reference pixel values; and
a least significant byte model to estimate least significant byte pixel values from least significant byte reference pixel values, andwherein; the sequence of video frames corresponds to a sequence of infrared images;
wherein adjacent ones of the images are substantially similar to one another;the prediction module is configured to represent the symbols with multiple-bytes, including a most significant byte and a least significant byte; and differences between pixel values of the sequence of infrared images and corresponding pixel values of a reference image are relatively small, the symbols are predominantly relatively small positive and negative values, and the most significant bytes of the symbols are predominantly one of all zeros and all ones. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system, comprising:
-
a module to arithmetically encode a sequence of symbols corresponding to differences between estimated pixel values and corresponding received pixel values of a sequence of video frames as a floating point integer code value, including to associate the symbols with portions of a code range such that each respective one of the symbols is assigned a corresponding consecutive portion of the code range in proportion to a frequency of occurrence of each respective one of the symbols within the sequence of symbols, and to iteratively refine the code range in accordance with the proportions associated with the symbols to define an output code value representing a compressed form of the sequence of symbols; 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; and a prediction module configured to represent pixel values with multiple-bytes including a most significant byte and a least significant byte, and wherein the prediction module includes;
a most significant byte model to estimate most significant byte pixel values from first byte reference pixel values; and
a least significant byte model to estimate least significant byte pixel values from least significant byte reference pixel values, andwherein; the sequence of video frames corresponds to a sequence of infrared images;
wherein adjacent ones of the images are substantially similar to one another;the prediction module is configured to represent the symbols with multiple-bytes, including a most significant byte and a least significant byte; and differences between pixel values of the sequence of infrared images and corresponding pixel values of a reference image are relatively small, the symbols are predominantly relatively small positive and negative values, and the most significant bytes of the symbols are predominantly one of all zeros and all ones. - View Dependent Claims (9, 10)
-
-
11. 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 such that each respective one of the symbols is assigned a corresponding consecutive portion of the code range in proportion to a frequency of occurrence of each respective one of the symbols within the sequence of symbols, and iteratively refining the code range in accordance with the proportions associated with the symbols to define an output code value representing a compressed form of the sequence of 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, and wherein a prediction module is provided that is configured to represent pixel values with multiple-bytes including a most significant byte and a least significant byte, and wherein the prediction module includes;
a most significant byte model to estimate most significant byte pixel values from first byte reference pixel values; and
a least significant byte model to estimate least significant byte pixel values from least significant byte reference pixel values, andwherein; the sequence of video frames corresponds to a sequence of infrared images;
wherein adjacent ones of the images are substantially similar to one another;the prediction module is configured to represent the symbols with multiple-bytes, including a most significant byte and a least significant byte; and differences between pixel values of the sequence of infrared images and corresponding pixel values of a reference image are relatively small, the symbols are predominantly relatively small positive and negative values, and the most significant bytes of the symbols are predominantly one of all zeros and all ones. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
Specification