Preprocessing and postprocessing for vector quantization
First Claim
1. A method of encoding an image comprising the following steps:
- a. adaptively preprocessing a first bitstream representative of said image in order to eliminate spatial redundancy by selectively subsampling individual vectors in said image based upon luminance of said individual vectors, reduce noise and control data rate, and generate a second bitstream on which to perform vector quantization, wherein said individual vectors include a block of adjacent pixels in said image;
b. applying vector quantization to said second bitstream in order to create a third bitstream comprising a codebook and indices referencing said codebook; and
c. performing index packing on said indices in said third bitstream in order to generate a fourth bitstream, said fourth bitstream including a single base address into said codebook for a plurality of said indices in said third bitstream and an associated offset value each for each of said plurality of indices from said single base address to reference entries in said codebook.
2 Assignments
0 Petitions
Accused Products
Abstract
Improved proprecessing and postprocessing for vector quantization, for example, for encoding an image. In one embodiment, the luminosity of the vectors in an image are used to determine the codes for vector quantization. In another embodiment, a median filter is performed to eliminate motion artifacts. In another embodiment, temporal filtering is applied once the difference between an earlier frame and a current frame exceeds a threshold. Embodiments are also provided for adaptive temporal filtering based on temporal "no change" blocks and their errors. Embodiments are provided for different regions of images which reference different codebooks, and regions of variable size. Embodiments are also provided for shared and variable size codebooks for different images or other data.
121 Citations
47 Claims
-
1. A method of encoding an image comprising the following steps:
-
a. adaptively preprocessing a first bitstream representative of said image in order to eliminate spatial redundancy by selectively subsampling individual vectors in said image based upon luminance of said individual vectors, reduce noise and control data rate, and generate a second bitstream on which to perform vector quantization, wherein said individual vectors include a block of adjacent pixels in said image; b. applying vector quantization to said second bitstream in order to create a third bitstream comprising a codebook and indices referencing said codebook; and c. performing index packing on said indices in said third bitstream in order to generate a fourth bitstream, said fourth bitstream including a single base address into said codebook for a plurality of said indices in said third bitstream and an associated offset value each for each of said plurality of indices from said single base address to reference entries in said codebook. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of encoding an image comprising the following steps:
-
a. adaptively preprocessing a first bitstream representative of said image in order to eliminate temporal redundancy by adaptively adjusting a difference threshold to determine whether blocks in said bitstream should be encoded according to rate control demands, and generate a second bitstream on which to perform vector quantization; b. applying vector quantization to said second bitstream in order to create a third bitstream comprising a codebook and indices referencing said codebook; and c. performing index packing on said indices in said third bitstream in order to generate a fourth bitstream, said fourth bitstream including a single base address into said codebook for a plurality of said indices in said third bitstream and an associated offset value each for each of said plurality of indices from said single base address to reference entries in said codebook. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A method of encoding an image comprising the following steps:
-
a. based upon local image characteristics of said image, adaptively determining which filtering method in a first set of filtering methods best preserves detail in said image given rate control demands and which eliminates spatial redundancy in said image to generate a first bitstream on which to perform vector quantization; b. preprocessing said first bitstream using said filtering method in order to generate a second bitstream which is free of said spatial redundancy; c. applying vector quantization to said second bitstream in order to create a third bitstream comprising a codebook and indices referencing said codebook; and d. performing index packing on said indices in said third bitstream in order to generate a fourth bitstream, said fourth bitstream including a single base address into said codebook for a plurality of said indices in said third bitstream and an associated offset value each for each of said plurality of indices from said single base address to reference entries in said codebook. - View Dependent Claims (18, 19, 20, 21)
-
-
22. An apparatus for encoding an image comprising:
-
a. means for adaptively preprocessing a first bitstream representative of said image in order to eliminate spatial redundancy, reduce noise and control data rate and generate a second bitstream on which to perform vector quantization; b. means for applying vector quantization to said second bitstream in order to create a third bitstream comprising a codebook and indices referencing said codebook; and c. means for performing index packing on said indices in said third bitstream in order to generate a fourth bitstream, said fourth bitstream including a single base address into said codebook for a plurality of said indices in said third bitstream and an associated offset value each for each of said plurality of indices from said single base address to reference entries in said codebook.
-
-
23. An apparatus for encoding an image comprising:
-
a. means for adaptively preprocessing a first bitstream representative of said image in order to eliminate temporal redundancy reduce noise and control data rate, and generate a second bitstream on which to perform vector quantization; b. means for applying vector quantization to said second bitstream in order to create a third bitstream comprising a codebook and indices referencing said codebook; and c. means for performing index packing on said indices in said third bitstream in order to generate a fourth bitstream, said fourth bitstream including a Single base address into said codebook for a plurality of said packed indices in said third bitstream and an associated offset value each for each packed index from said single base address to reference entries in said codebook.
-
-
24. An apparatus for encoding an image comprising:
-
a. means for adaptively determining based upon local image characteristics of said image a filter in a first set of filters which yields a minimum absolute error compared to vectors in a first bitstream representative of said image in order to eliminate spatial redundancy to generate a first bitstream on which to perform vector quantization; b. means for preprocessing said first bitstream using said filter in order to generate a second bitstream which is free of said spatial redundancy; c. means for applying vector quantization to said second bitstream in order to create a third bitstream comprising a codebook and indices referencing said codebook; and d. means for performing index packing on said indices in said third bitstream in order to generate a fourth bitstream, said fourth bitstream including a single base address into said codebook for a plurality of said indices in said third bitstream and an associated offset value each for each of said plurality of indices from said single base address to reference entries in said codebook.
-
-
25. An apparatus for decoding an image comprising:
-
a. means for creating a current codebook from a previous codebook including; i. means for detecting a reference to a first codebook entry which should be updated in a previous codebook; ii. means for updating said first codebook entry in said previous codebook from a received codebook entry to transform said previous codebook into said current codebook; b. means for receiving a coded bitstream including block header identifiers in said coded bitstream, each said block header identifier including one of the following; i. a first value indicating that subsequent blocks in said coded bitstream have not changed from a previous image; ii. a second value indicating that subsequent blocks in said coded bitstream have been subsampled and been vector quantized;
oriii. a third value indicating that subsequent blocks in said coded bitstream have been vector quantized; c. means for receiving codebook indices in said coded bitstream, said codebook indices referencing entries in said current codebook; d. means for retrieving entries from said current codebook based upon said codebook indices received by said codebook receiving means; e. means for determining whether said codebook indices refer to vectors which have been subsampled according to said block header identifiers; f. means for upsampling said retrieved codebook entries for said vectors determined to be subsampled by said subsampling determining means; and g. means for displaying each of the vectors contained in said codebook entries retrieved by said retrieving means on a display means. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31. An apparatus for decoding an image comprising:
-
a. means for creating a current codebook from codebook entries transmitted by an encoding means; b. means for receiving a ceded bitstream including block header identifiers in said coded bitstream each said block head identifier including one of the following; i. a first value indicating that subsequent blocks in said coded bitstream have not changed from a previous image; ii. a second value indicating that subsequent blocks in said coded bitstream have been subsampled and been vector quantized;
oriii. a third value indicating that subsequent block in said coded bitstream have been only vector quantized with no subsampling; c. means for receiving codebook indices in said coded bitstream, said codebook indices referencing entries in said current codebook; d. means for retrieving entries from said current codebook based upon said codebook indices received by said codebook receiving means; e. means for determining whether said codebook indices refer to vectors which have been subsampled according to said block header identifiers; and f. means for upsampling said retrieved codebook entries for said vectors determined to be subsampled by said subsampling determining means. - View Dependent Claims (32, 33, 34, 35, 36)
-
-
37. An apparatus for decoding an image comprising:
-
a. means for receiving a reference to a previous codebook, wherein said reference to a previous codebook refers to one of a plurality of codebooks in said apparatus and each of said plurality of codebooks is used for decoding different spatial regions of said image; b. means for creating a current codebook from said previous codebook including; i. means for detecting a reference to a first codebook entry which should be updated in a previous codebook; ii. means for updating said first codebook entry in said previous codebook from a received codebook entry to transform said previous codebook into said current codebook; c. means for receiving codebook indices, said codebook indices referencing entries in said current codebook; and d. means for retrieving entries from said current codebook based upon said codebook indices received by said codebook receiving means.
-
-
38. A method of encoding an image comprising the following steps:
-
a. adaptively preprocessing a first bitstream representative of said image in order to eliminate redundancy by selectively subsampling individual vectors in said image based upon data rate demands and the luminance of each of said vectors, and generate a second bitstream on which to perform vector quantization, wherein said individual vectors include a block of adjacent pixels in said image; b. applying vector quantization to said second bitstream in order to create a third bitstream comprising indices referencing a codebook; and c. performing index packing on said indices in said third bitstream in order to generate a fourth bitstream, said fourth bitstream including a single base address into said codebook for a plurality of said indices in said third bitstream and an associated offset value each for each of said plurality of indices from said single base address to reference entries in said codebook. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. An apparatus for encoding an image comprising:
-
a. preprocessing circuitry for adaptively preprocessing a first bitstream representative of said image in order to eliminate redundancy based upon data rate demands, and generate a second bitstream on which to perform vector quantization; b. vector quantization circuitry for encoding said second bitstream in order to create a third bitstream comprising indices referencing a codebook; and c. index packing circuitry for processing said indices in said third bitstream in order to generate a fourth bitstream, said fourth bitstream including a single base address into said codebook for a plurality said indices in said third bitstream and a plurality of associated offset values from said single base address to reference entries in said codebook.
-
Specification