High performance memory efficient variable-length coding decoder
AssigneeQuickSilver Technology, Inc.
InventorW. James Scheuermann
Life of this patent
Estimating the term…
Abstract
A fast, memory efficient, lookup table-based system for VLC decoding. Code words are grouped by prefix and recoded to reduce the number of bits that must be matched, thus reducing the memory requirements. General-purpose processor and finite state machine decoder implementations are described.
Claims9
A method for decoding values from a bitstream, wherein the bitstream includes code words having prefixes, the method comprising
- obtaining a first number of bits from the bitstream, wherein the first number of bits includes at least a portion of a first code word;
- using the first number of bits to obtain a first entry in a table, wherein the first entry includes information to generate an address to an array, wherein the array address includes a bit field having values corresponding to prefixes in the code words, wherein the bit field width is smaller than at least one prefix width, the first entry further including an indication of whether the first number of bits includes a complete code word;
- checking the first table entry to determine that the first number of bits does not include a complete code word and, if so, performing steps of
- obtaining an additional number of bits from the bitstream;
- and
- using the additional number of bits to iteratively obtain entries from the table until a complete code word is obtained;
- and
- using the array address to obtain an entry to decode the first code word.
A method for decoding code words in a bitstream, wherein the code words include prefixes having widths, the method comprising
- obtaining a first number of bits from the bistream, wherein the first number of bits includes less than a complete code word;
- using a table to obtain an entry, wherein the table is addressed according to a recoding of the code words, wherein the recoding of the code words includes a bit field having values corresponding to prefixes in the code words, wherein the bit field width is smaller than at least one prefix width, wherein the entry indicates whether the first number of bits includes a complete code word;
- and
- iteratively obtaining subsequent numbers of bits from the bitstream and using the subsequent numbers of bits to obtain subsequent entries from the table until a subsequent entry indicates that a complete code word has been obtained from the bitstream.
An apparatus for decoding code words in a bitstream, wherein the code words include prefixes having widths, the apparatus comprising
- a table stored in a storage medium;
- a memory access circuit for accessing the table in the storage media by using a recoding of the code words, wherein the recoding of the code words includes a bit field having values corresponding to prefixes in the code words, wherein the bit field width is smaller than at least one prefix width;
- and wherein the table includes entries indicating whether the first number of bits includes a complete code word, and for indicating whether combined subsequent additional bits from the bitstream include a complete code word.
Dependencies are inferred from the claim text.