Patent US5467131A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5467131A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for fast digital signal decoding

Assignee: Hewlett Packard Development Co LP
•
Filing: 1993-12-30
•
Granted: 1995-11-14
•
Expires: 2013-12-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An inverse discrete cosine transform ("IDCT") implementation specifically for the decompression of JPEG, MPEG and Px64 encoded image and video data uses a preprocessing step embedded in a Huffman decoding process to classify data blocks prior to computing the IDCT. The use of data block classification, along with the use of pruned IDCTs appropriate for the specific block class, reduces the total number of multiply and addition operations necessary to decompress an encoded data block, and thereby allows faster data decompression. Synthesis of coefficients suitable for multiplication allows efficient implementation of the novel decompression technique in typical microprocessor architectures, including RISC processor architectures.

Inventors

  • 👤 Vasudev Bhaskaran
  • 👤 Ruby B. Lee

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 14:20
CPC Classifications
G; G06; G06F; G06F17/00; G06F17/10; G06F17/14; G06F17/147; H; H04; H04N; H04N19/00; H04N19/42; H04N19/436; H04N19/10; H04N19/102; H04N19/13; H04N19/60; H04N19/90; H04N19/91

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 264 words
A method for decompressing a compressed data bitstream, comprising the steps of: Huffman decoding a variable length string in said data bitstream to produce an output therefrom in the form of a fixed length set of symbols contained in a data block; classifying said data block for sparseness based upon data occupancy within said data block, wherein said classifying step further comprises: classifying said data blocks in accordance with a classification scheme wherein each data block is defined as a sparse matrix H, and where each of said data blocks is placed into one of the following classes based upon data occupancy within said data block: Type-0 -- only H[0,0] is nonzero; Type-1 -- only one of the H[i,j] is nonzero and H[0,0] is zero; Type-2 -- only an upper 2×2 submatrix of H has nonzero values, where some or all of H[0,0], H[0,1], H[1,0] and H[1,1] are non-zero; Type-3 -- only an upper 4×4 submatrix of H has nonzero values, where some or all of H[i,j], i=0, 1, . . . , 3, j=0, 1, . . . , 3 are nonzero; and Type-4 -- H is not a member of any of the above-mentioned classes, where the occupancy pattern in H is random; inverse quantizing to convert said symbols in said data block into a set of values adapted for an inverse discrete cosine transform calculation; and performing an inverse discrete cosine transform ("IDCT") operation based upon data block classification; wherein the overall number of calculations performed during said IDCT operation are a function of the data sparseness within said data block.
Claim 2
Independent Claim 264 words
A method for decompressing a compressed data bitstream, comprising the steps of: Huffman decoding a variable length string in said data bitstream to produce an output therefrom in the form of a fixed length set of symbols contained in a data block; classifying said data block for sparseness based upon data occupancy within said data block, wherein said classifying step further comprises: classifying said data blocks in accordance with a classification scheme wherein each data block is defined as a sparse matrix H, and where each of said data blocks is placed into one of the following classes based upon data occupancy within said data block: Type-0 -- only H[0,0] is nonzero; Type-1 -- only one of the H[i,j] is nonzero and H[0,0] is zero; Type-2 -- only an upper 2×2 submatrix of H has nonzero values, where some or all of H[0,0], H[0,1], H[1,0] and H[1,1] are non-zero; Type-3 -- only an upper 4×4 submatrix of H has nonzero values, where some or all of H[i,j], i=0, 1, . . . , 3, j=0, 1, . . . , 3 are nonzero; and Type-4 -- H is not a member of any of the above-mentioned classes, where the occupancy pattern in H is random; inverse quantizing to convert said symbols in said data block into a set of values adapted for an inverse discrete cosine transform calculation; and performing an inverse discrete cosine transform ("IDCT") operation based upon data block classification; wherein the overall number of calculations performed during said IDCT operation are a function of the data sparseness within said data block.
Claim 3
Dependent Claim 39 words
The method of claim 1, further comprising the step of: simultaneously processing in parallel at least one of multiple rows and columns of said data block in an arithmetic logic unit to perform at least one said IDCT operation.
Claim 4
Dependent Claim 27 words
The method of claim 1, wherein said compressed data bitstream is compressed in accordance with one of the MPEG, JPEG, and Px64 image and video compression standards.
Claim 5
Dependent Claim 24 words
The method of claim 1, wherein said step for performing said IDCT operation further comprises: calculating said IDCT using shift-add operations only for multiplications.
Claim 6
Dependent Claim 29 words
The method of claim 1, further comprising the step of: reducing the dynamic range of said set of values operated upon while performing said IDCT with a prescaling matrix.
Claim 7
Dependent Claim 19 words
The method of claim 1, further comprising the step of: level shifting an output produced by said IDCT operation.
Claim 8
Dependent Claim 24 words
The method of claim 1, wherein said data block classifying step classifies each data block based on any selected subset of said data block.
Claim 9
Independent Claim 274 words
An apparatus for decompressing a compressed data bitstream, comprising: a Huffman decoder for decoding a variable length string in said data bitstream and for providing an output in the form of a fixed length set of symbols contained in a data block; means for classifying each said data block for sparseness based upon data occupancy within said data block, said means for classifying further comprising; means for selecting data block type in accordance with a classification scheme where each data block is based upon a sparse matrix H, and where each of said data blocks is placed into one of the following classes based upon data occupancy within said data block: Type-0 -- only H[0,0] is nonzero; Type-1 -- only one of the H[i,j] is nonzero and H[0,0] is zero; Type-2 -- only an upper 2×2 submatrix of H has nonzero values, where some or all of H[0,0], H[0,1], H[1,0] and H[1,1] are non-zero; Type-3 -- only an upper 4×4 submatrix of H has nonzero values, where some or all of H[i,j], i=0, 1, . . . , 3, j=0, 1, . . . , 3 are nonzero; and Type-4 -- H is not a member of any of the above-mentioned classes, where the occupancy pattern in H is random; an inverse quantizer for converting said symbols in each data block into a set of values appropriate for an inverse discrete cosine transform calculation; and a processor for performing an inverse discrete cosine transform ("IDCT") operation based upon data block classification; wherein the overall number of calculations performed during said IDCT operation are a function of data sparseness within each of said data blocks.
Claim 10
Independent Claim 274 words
An apparatus for decompressing a compressed data bitstream, comprising: a Huffman decoder for decoding a variable length string in said data bitstream and for providing an output in the form of a fixed length set of symbols contained in a data block; means for classifying each said data block for sparseness based upon data occupancy within said data block, said means for classifying further comprising; means for selecting data block type in accordance with a classification scheme where each data block is based upon a sparse matrix H, and where each of said data blocks is placed into one of the following classes based upon data occupancy within said data block: Type-0 -- only H[0,0] is nonzero; Type-1 -- only one of the H[i,j] is nonzero and H[0,0] is zero; Type-2 -- only an upper 2×2 submatrix of H has nonzero values, where some or all of H[0,0], H[0,1], H[1,0] and H[1,1] are non-zero; Type-3 -- only an upper 4×4 submatrix of H has nonzero values, where some or all of H[i,j], i=0, 1, . . . , 3, j=0, 1, . . . , 3 are nonzero; and Type-4 -- H is not a member of any of the above-mentioned classes, where the occupancy pattern in H is random; an inverse quantizer for converting said symbols in each data block into a set of values appropriate for an inverse discrete cosine transform calculation; and a processor for performing an inverse discrete cosine transform ("IDCT") operation based upon data block classification; wherein the overall number of calculations performed during said IDCT operation are a function of data sparseness within each of said data blocks.
Claim 11
Dependent Claim 41 words
The apparatus of claim 8, further comprising: an arithmetic logic unit adaptable to operate as a parallel processor for simultaneously processing at least one of multiple rows and columns of said data block when performing at least one said IDCT operation.
Claim 12
Dependent Claim 27 words
The apparatus of claim 8, wherein said compressed data bitstream is compressed in accordance with one of the MPEG, JPEG, and Px64 image and video compression standards.
Claim 13
Dependent Claim 21 words
The apparatus of claim 8, further comprising: an operations processor adapted to calculate said IDCT using shift-add operations only for multiplication.
Claim 14
Dependent Claim 26 words
The apparatus of claim 8, further comprising: a prescaling matrix for reducing the dynamic range of said set of values operated upon while performing said IDCT.
Claim 15
Dependent Claim 20 words
The apparatus of claim 8, further comprising: a level shifter for level shifting an output produced by said IDCT operation.
Claim 16
Dependent Claim 24 words
The apparatus of claim 8, wherein said data block classifying means classifies each data block based on any selected subset of said data block.

References Cited (Backward Citations)

US4837724A Cited
US5031038A Cited
US5253192A Cited
US5280349A Cited
US5329318A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-11-13 1999-05-15 1999-11-14 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-11-13 2003-05-15 2003-11-14 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-11-13 2007-05-15 2007-11-14 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag