Claims
- 1. A method of decoding a series of encoded binary digital signals using a data structure, said data structure having multiple base indices, said method comprising:
selecting N encoded binary digital signals, N being a value comprising substantially the same number of bits as the number of bits comprising an extreme length code word in said data structure. comparing said N encoded binary digital signals with two or more entries from said data structure at substantially the same time.
- 2. The method of claim 1, and further comprising, after the previous comparision:
selecting M encoded binary digital signals for subsequent comparisons, M being a value comprising substantially the same number of bits as the number of bits comprising an extreme code word in said data structure, minus the number of bits that were not decoded in the previous comparison; and comparing said M encoded binary digital signals with two or more entries from said data structure at substantially the same time.
- 3. The method of claim 2, and further comprising:
repeating said selecting M encoded binary digital signals and said comparing M encoded binary digital signals until said encoded binary digital signals are substantially decoded.
- 4. The method of claim 1, wherein the binary digital signals are encoded in accordance with Huffman code.
- 5. The method of claim 1, wherein the data structure is organized, at least in part, based on code length.
- 6. The method of claim 1, wherein the data structure is organized in sub groupings of code words having the same code length, the sub groupings being arranged sequentially.
- 7. The method of claim 1, wherein said extreme length code word comprises the shortest code word in said data structure.
- 8. The method of claim 1, wherein said extreme length code word comprises the longest code word in said data structure.
- 9. A method of decoding a series of encoded binary digital signals using a data structure, said data structure having multiple base indices and multiple base codes, said method comprising:
selecting a set of N encoded binary digital signals, N being a value at least as great in length as an associated base code, wherein a set of N encoded binary digital signals is selected for substantially each base code in an associated data structure; and comparing one or more said sets of N encoded binary digital signals with the associated base codes at substantially the same time.
- 10. The method of claim 9, and further comprising, after the previous comparision:
selecting a set of M encoded binary digital signals for subsequent comparisons, M being a value at least as great in length as an associated base code, wherein a set of M encoded binary digital signals is selected for substantially each base code in an associated data structure; and comparing one or more said sets of M encoded binary digital signals with the associated base codes at substantially the same time.
- 11. The method of claim 10, and further comprising:
repeating said selecting M encoded binary digital signals and said comparing M encoded binary digital signals until said encoded binary digital signals are substantially decoded.
- 12. The method of claim 9, wherein the binary digital signals are encoded in accordance with a Huffman code.
- 13. The method of claim 9, wherein the data structure is organized, at least in part, based on code length.
- 14. The method of claim 9, wherein the data structure is organized in sub groupings of code words having the same code length, the sub groupings being arranged sequentially.
- 15. An apparatus for decoding a series of encoded binary digital signals comprising:
at least one base code register and at least one base index register, wherein said registers are configured to read values from an associated data structure by applying the contents of said registers to an input signal, to produce an index.
- 16. The apparatus of claim 15, and further comprising:
at least one subtractor; at least one daisy chain circuit; and at least one adder, wherein said at least one subtractor is configured to receive at least a portion of the contents of said at least one base code register, and is configured to receive one or more encoded binary digital signals, wherein said at least one daisy chain circuit is coupled to said at least one subtractor, and is configured to provide an output to said at least one base index register, wherein said at least one adder is configured to receive an input from said at least one base index register and said at least one subtractor.
- 17. The apparatus of claim 16, wherein said at least one subtractor, said at least one adder, and said at least one daisy chain circuit are embodied on a single integrated circuit.
- 18. The apparatus of claim 16, wherein said adder is configured to access an associated data structure and use said index to substantially decode at least one code word.
- 19. A data structure of code words, the code words being arranged in sub groupings, comprising at least one of the following:
code word length; base code; reference code; and base index.
- 20. The data structure of claim 19, wherein said code words are encoded in accordance with a Huffman code.
- 21. The data structure of claim 19, wherein the structure comprises said reference code and said base index.
- 22. The data structure of claim 19, wherein the data structure is implemented in software.
- 23. The data structure of claim 19, wherein the data structure comprises said base code and said base index.
- 24. The data structure of claim 19, wherein the data structure is implemented in hardware.
- 25. The data structure of claim 19, wherein the sub groupings are organized sequentially according to code word length.
- 26. The data structure of claim 19, wherein the code word length comprises number of bits used to represent the code word.
- 27. The data structure of claim 19, wherein the base code comprises the first code word of a lexicographically consecutive set of code words of the same length.
- 28. The data structure of claim 19, wherein the reference code comprises the base code of the corresponding set of code words, wherein the base code comprises a length substantially equal to the length of an extreme length base code for a given set of code words.
- 29. The data structure of claim 19, wherein the base index comprises the number of individual Huffman codes that are contained within a given set of Huffman code words.
- 30. The data structure of claim 19, wherein the base index is equal to the value (−1) in the corresponding set of Huffman values if there are no corresponding Huffman codes of the corresponding length.
- 31. A method of creating a data structure for decoding code words, said method comprising:
sorting said code words by code length; ordering the code words of the same lengths sequentially; and maintaining the code of the initial code word of a set of code words of a particular length and the total number of code words of the same length.
- 32. The method of claim 31, and further comprising:
determining a base index for at least one subgrouping of code words, wherein the base index comprises the lexicographically consecutive position of the first code word of a given subgrouping within the entire set of code words.
- 33. The method of claim 31, and further comprising:
determining a base code for at least one sub grouping of code words, wherein the base code comprises the lexicographically first code word in a given sub grouping within the entire set of code words.
- 34. An article comprising:
a storage medium having stored thereon instructions, that when executed by a computing platform, result in a method of decoding a series of binary digital signals using a data structure, wherein said data structure has multiple base indices, being executed, said method comprising:
selecting N encoded binary digital signals, N being a value comprising substantially the same number of bits as the number of bits comprising an extreme code word in said data structure. comparing said N encoded binary digital signals with two or more entries from said data structure at substantially the same time.
- 35. The article of claim 34, having stored thereon instructions that when executed further result in:
after the previous comparison:
selecting M encoded binary digital signals for subsequent comparisons, M being a value comprising substantially the same number of bits as the number of bits comprising an extreme code word in said data structure, minus the number of bits that were not decoded in the previous comparison; and comparing said M encoded binary digital signals with two or more entries from said data structure at substantially the same time.
- 36. The article of claim 34, having stored thereon instructions that when executed further result in:
repeating said selecting M encoded binary digital signals and said comparing M encoded binary digital signals until said encoded binary digital signals are substantially decoded.
- 37. The article of claim 34, wherein the method of decoding, when executed, is capable of decoding binary digital signals that have been encoded in accordance with a Huffman code.
- 38. A system for decoding a series of binary digital signals, comprising:
a computing platform; said computing platform being adapted to, in operation, perform the method of decoding a series of binary digital signals using a data structure, wherein said data structure has multiple base indices, said method comprising:
selecting N encoded binary digital signals, N being a value comprising substantially the same number of bits as the number of bits comprising an extreme code word in said data structure. comparing said N encoded binary digital signals with two or more entries from said data structure at substantially the same time.
- 39. The system of claim 38, wherein said method further comprises, after the previous comparison:
selecting M encoded binary digital signals for subsequent comparisons, M being a value comprising substantially the same number of bits as the number of bits comprising an extreme code word in said data structure, minus the number of bits that were not decoded in the previous comparison; and comparing said M encoded binary digital signals with two or more entries from said data structure at substantially the same time.
- 40. The system of claim 38, wherein said method further comprises:
repeating said selecting M encoded binary digital signals and said comparing M encoded binary digital signals until said encoded binary digital signals are substantially decoded.
- 41. The system of claim 38, wherein the method of decoding, when executed, is capable of decoding the binary digital signals that have been encoded in accordance with a Huffman code.
RELATED APPLICATIONS
[0001] This application is related to U.S. patent application Ser. No. 704,380, titled “A Method of Performing Huffman Decoding”, by Acharya, et al., filed Oct. 31st, 2000 (attorney docket number 042390.P9820), and U.S. patent application Ser. No. 704,392, titled “A Method of Generating Huffman Code Length Information”, by Acharya, et al., filed Oct. 31st, 2000 (attorney docket number 042390.P9804), both of which are assigned to the assignee of the present invention and herein incorporated by reference.