Hybrid video compression/decompression system
First Claim
1. An image processing system for compressing a digital data stream comprising a sequential series of data blocks, each of said data blocks having a beginning and representing a portion of a digitized video image which is displayed as a succession of multi-block frames, the image processing system comprising:
- a frame buffer store responsive to the digital data stream for storing a plurality of sequential data blocks representing an entire frame of the digitized video image;
apparatus responsive to digital data in each of the sequential data blocks for compressing the digital data in each data block using one of a plurality of compression techniques;
a comparator mechanism responsive to the stored data blocks and to the digital data stream for inserting into the digital data stream an escape code which indicates a common compression characteristic shared by a plurality of digital data blocks following the escape code; and
apparatus responsive to the one of the plurality of compression techniques and to the escape code for inserting a header code at a beginning of each data block, which header code when taken together with a preceding escape code indicates the one of the plurality of compression techniques used.
1 Assignment
0 Petitions
Accused Products
Abstract
A digitized image compression system employs several different compression techniques to compress the luminance and chrominance information and encodes the selected technique “on the fly” by inserting selected escape and header codes into the encoded data stream. More particularly, during compression, each image is divided into non-overlapping contiguous regions, referred to hereinafter as blocks and image data is compressed on a block-by-block basis. Each encoded block begins with a one-byte header that indicates, in conjunction with a previous escape code, the compression technique which was used to encode the block. Therefore, interpretation of the encoded data is a hierarchical process: the escape codes indicate a stream interpretation mode which, in turn, determine the meaning of header values which follow and the header values, in turn, determine the meaning of the encoded data in each block. The majority of image blocks are divided into quadrants and each block header is arranged as a sequence of four two-bit codes which indicate the encoding used for the four quadrants within the associated block. However, certain combinations of encoding that are unlikely to occur within the same block are inserted into the image data stream as the “escape codes” which designate the stream interpretation mode.
130 Citations
33 Claims
-
1. An image processing system for compressing a digital data stream comprising a sequential series of data blocks, each of said data blocks having a beginning and representing a portion of a digitized video image which is displayed as a succession of multi-block frames, the image processing system comprising:
-
a frame buffer store responsive to the digital data stream for storing a plurality of sequential data blocks representing an entire frame of the digitized video image;
apparatus responsive to digital data in each of the sequential data blocks for compressing the digital data in each data block using one of a plurality of compression techniques;
a comparator mechanism responsive to the stored data blocks and to the digital data stream for inserting into the digital data stream an escape code which indicates a common compression characteristic shared by a plurality of digital data blocks following the escape code; and
apparatus responsive to the one of the plurality of compression techniques and to the escape code for inserting a header code at a beginning of each data block, which header code when taken together with a preceding escape code indicates the one of the plurality of compression techniques used. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An image processing system for decompressing a digital data stream comprising a sequential series of data blocks with interspersed escape codes, each of said data blocks having a beginning with a header code located at the data block beginning, the data block representing a portion of a digitized video image which is displayed as a succession of multi-block frames, the image processing system comprising:
-
a frame buffer store responsive to the digital data stream for storing a plurality of sequential data blocks representing an entire frame of the digitized video image;
a detector mechanism responsive to the stored data blocks and to the digital data stream for detecting an escape code in the digital data stream which indicates a common compression characteristic shared by a plurality of the digital data blocks following the escape code;
apparatus responsive to digital data in each of the image blocks for decompressing the digital data in each data block using a selected one of a plurality of decompression techniques; and
apparatus responsive to the escape code and to the header code at the beginning of each data block for selecting one of the plurality of decompression techniques. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. An image processing system wherein a digital data stream comprising a sequential series of data blocks, each of said data blocks having a beginning and representing a portion of a digitized video image is displayed as a succession of multi-block frames, the image processing system comprising:
-
a first frame buffer store responsive to the digital data stream for storing a plurality of sequential data blocks representing an entire frame of the digitized video image;
apparatus responsive to digital data in each of the data blocks for compressing the digital data in each data block using one of a plurality of compression techniques;
a comparator mechanism responsive to the stored data blocks and to the digital data stream for inserting into the digital data stream an escape code which indicates a common compression characteristic shared by a plurality of digital data blocks following the escape code;
apparatus responsive to the one of the plurality of compression techniques and to the escape code for inserting a header code at a beginning of each data block, which header code when taken together with a preceding escape code indicates the one of the plurality of compression techniques used;
apparatus for providing the data stream to a utilization device;
a detector mechanism in the utilization device for detecting an escape code in the digital data stream;
apparatus responsive to digital data in each of the image blocks for decompressing the digital data in each data block using a selected one of a plurality of decompression techniques; and
apparatus responsive to the escape code and to the header code at the beginning of each data block for determining the compression technique used to compress the data stream and selecting one of the plurality of decompression techniques. - View Dependent Claims (18, 19, 20)
-
-
21. A method for compressing a digital data stream comprising a sequential series of data blocks, each of said data blocks having a beginning and representing a portion of a digitized video image which is displayed as a succession of multi-block frames, the image processing system, the method comprising the steps of:
-
A. storing a plurality of sequential data blocks representing an entire frame of the digitized video image in a frame buffer store;
B. compressing the digital data in each data block using one of a plurality of compression techniques;
C. inserting into the digital data stream an escape code which indicates a common compression characteristic shared by a plurality of digital data blocks following the escape code; and
D. based on the escape code inserted into the data stream in step C, inserting a header code at a beginning of each data block, which header code when taken together with a preceding escape code indicates the one of the plurality of compression techniques used in step B. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
C1. inserting a first escape code into the data stream to indicate the existence of a number of sequential data blocks following the escape code that are unchanged from one video frame to a succeeding video frame.
-
-
23. A method according to claim 22 wherein step C further comprises the step of:
C2. inserting a run code into the data stream following the first escape code, the run code indicating the number of unchanged blocks.
-
24. A method according to claim 21 wherein step C further comprises the step of:
C3. inserting a second escape code into the data stream, the second escape code indicating that succeeding data blocks are not compressed until a further second escape code is inserted into the data stream.
-
25. A method according to claim 21 wherein step B comprises the step of:
B1. dividing each of the plurality of data blocks into a plurality of sub-blocks and compressing each sub-block.
-
26. A method according to claim 25 wherein step D comprises the step of:
D1. dividing the header code associated with each data block into a sub header code for each of the plurality of sub-blocks, which sub-header code, when taken together with a preceding escape code indicates the one of the plurality of compression techniques used to encode each of the plurality of sub-blocks.
-
27. A method according to claim 26 wherein step D1 comprises the step of:
D1A. dividing each of the plurality of data blocks into four quadrants where each of the plurality of sub-blocks equals one quadrant.
-
28. A method according to claim 27 wherein step C comprises the steps of:
-
C4. selecting a header code from a plurality of header codes; and
C5. selecting an escape code from the plurality of header codes.
-
-
29. A method for decompressing a digital data stream comprising a sequential series of data blocks with interspersed escape codes, each of said data blocks having a beginning with a header code located at the data block beginning, the data block representing a portion of a digitized video image which is displayed as a succession of multi-block frames, the method comprising the steps of:
-
A. storing a plurality of sequential data blocks representing an entire frame of the digitized video image in a frame buffer store;
B. detecting an escape code in the digital data stream which indicates a common compression characteristic shared by a plurality of the digital data blocks following the escape code;
C. decompressing the digital data in each data block using a selected one of a plurality of decompression techniques; and
D. selecting one of the plurality of decompression techniques based on the escape code and the header code at the beginning of each data block.
-
-
30. A computer program product for use with a graphics display device, said computer program product comprising:
-
a computer usable medium having computer readable program code means embodied in said medium for compressing a digital data stream having a sequential series of data blocks, each of said data blocks having a beginning and representing a portion of a digitized video image which is displayed as a succession of multi-block frames, the computer program product comprising;
a means for causing a computer to store a plurality of sequential data blocks representing an entire frame of the digitized video image in a frame buffer store;
a means for compressing the digitized data in each data block using one of a plurality of compression techniques;
a means for inserting an escape code into the digital data stream, the escape code indicating a common compression characteristic shared by a plurality of digital data blocks following the escape code; and
based upon the escape code inserted into the data stream, a means for inserting a header code at the beginning of each data block, which header code when taken together with a preceding escape code indicates one of the plurality of compression techniques used by the data compressor. - View Dependent Claims (31)
-
-
32. A computer program product comprising:
-
a computer usable medium having computer readable program code means embodied in said medium for decompressing a digital data stream having a sequential series of data blocks with interspersed escape codes, each of the data blocks having a beginning with a header code located at the data block beginning, the data block representing a portion of a digitized video image which is displayed as a succession of multi-block frames, the computer program product comprising;
a means for causing a computer to store a plurality of sequential data blocks representing an entire frame of the digitized video image in a frame buffer store;
a means for detecting an escape code in the digital data stream which indicates a common compression characteristic shared by a plurality of the digital data blocks following the escape code;
a means for selecting one of a plurality of decompression techniques based upon the escape code and the header code at the beginning of each data block; and
a means for decompressing the digital data in each data block using a selected one of a plurality of decompression techniques. - View Dependent Claims (33)
-
Specification