Claims
- 1. A variable length decoder for decoding an input bit stream which includes a plurality of variable-length encoded data segments, comprising:
- input preprocessor means for receiving the input bit stream, determining the length of each of the data segments, appending a segment length word to each data segment, each said segment length word being indicative of the length of its associated data segment, and outputting a pre-processed input bit stream including the plurality of data segments and respective ones of said segment length words;
- input means for receiving the pre-processed input bit stream and for providing a decoding window that includes a sequence of bits which includes one or more data segments and respective ones of said segment length words;
- pointer means for iteratively producing a pointer in response to successive ones of said segment length words, wherein said input means is responsive to said pointer for shifting said decoding window to provide a new sequence of bits which includes one or more additional data segments and respective ones of said segment length words; and,
- decoder means for decoding said data segments in said decoding window and for producing an output bit stream of decoded data segments.
- 2. The variable length decoder as set forth in claim 1, further comprising a buffer memory coupled between said input preprocessor means and said input means for temporary storage of said pre-processed input bit stream.
- 3. The variable length decoder as set forth in claim 2, wherein said input means includes:
- a first register for receiving said pre-processed input bit stream, and for outputting a first parallel sequence of input bits;
- a second register coupled to an output of said first register, and for outputting a second parallel sequence of input bits;
- a barrel shifter having an input coupled to said first and second parallel sequences of input bits to thereby provide a parallel sequence of available input bits equal in number to the total of said first and second parallel sequences of input bits, and for providing said decoding window at an output thereof; and,
- wherein said decoding window is shifted in response to said pointer across said parallel sequence of available input bits.
- 4. The variable length decoder as set forth in claim 2, wherein said buffer memory comprises a FIFO buffer memory device.
- 5. The variable length decoder as set forth in claim 1, wherein said pointer means includes an accumulator.
- 6. The variable length decoder as set forth in claim 5, wherein said input means includes:
- a first register for receiving said pre-processed input bit stream, and for outputting a first parallel sequence of input bits;
- a second register coupled to an output of said first register, and for outputting a second parallel sequence of input bits;
- a barrel shifter having an input coupled to said first and second parallel sequences of input bits to thereby provide a parallel sequence of available input bits equal in number to the total of said first and second parallel sequences of input bits, and for providing said decoding window at an output thereof; and,
- wherein said decoding window is shifted in response to said pointer across said parallel sequence of available input bits.
- 7. The variable length decoder as set forth in claim 1, wherein each of said segment length words has the same bit length.
- 8. The variable length decoder as set forth in claim 1, wherein each of said segment length words is appended to the head of its associated data segment.
- 9. The variable length decoder as set forth in claim 1, wherein said input means includes:
- a first register for receiving said pre-processed input bit stream, and for outputting a first parallel sequence of input bits;
- a second register coupled to an output of said first register, and for outputting a second parallel sequence of input bits;
- a barrel shifter having an input coupled to said first and second parallel sequences of input bits to thereby provide a parallel sequence of available input bits equal in number to the total of said first and second parallel sequences of input bits, and for providing said decoding window at an output thereof: and,
- wherein said decoding window is shifted in response to said pointer across said parallel sequence of available input bits.
- 10. The variable length decoder as set forth in claim 1, wherein said input preprocessor means includes a buffer memory for temporary storage of said pre-processed input bit stream.
- 11. A variable length decoder for decoding an input bit stream which includes a plurality of variable-length encoded data segments, comprising:
- an input preprocessor circuit for receiving the input bit stream, determining the length of each of the data segments, appending a segment length word to each data segment, each said segment length word being indicative of the length of its associated data segment, and outputting a pre-processed input bit stream including the plurality of data segments and respective ones of said segment length words;
- an input circuit for receiving the pre-processed input bit stream and for providing a decoding window that includes a sequence of bits which includes one or more data segments and respective ones of said segment length words;
- a pointer generator circuit for iteratively producing a pointer in response to successive ones of said segment length words, wherein said input circuit is responsive to said pointer for shifting said decoding window to provide a new sequence of bits which includes one or more additional data segments and respective ones of said segment length words; and,
- a decoder circuit for decoding said data segments in said decoding window and for producing an output bit stream of decoded data segments.
- 12. The variable length decoder as set forth in claim 11, wherein said input circuit includes:
- a first register for receiving said pre-processed input bit stream, and for outputting a first parallel sequence of input bits;
- a second register coupled to an output of said first register, and for outputting a second parallel sequence of input bits;
- a barrel shifter having an input coupled to said first and second parallel sequences of input bits to thereby provide a parallel sequence of available input bits equal in number to the total of said first and second parallel sequences of input bits, and for providing said decoding window at an output thereof; and,
- wherein said decoding window is shifted in response to said pointer across said parallel sequence of available input bits.
- 13. The variable length decoder as set forth in claim 12, further comprising a buffer memory coupled between said input preprocessor circuit and said input circuit for temporary storage of said pre-processed input bit stream.
- 14. The variable length decoder as set forth in claim 13, wherein said pointer generator circuit includes an accumulator.
- 15. The variable length decoder as set forth in claim 11, further comprising a buffer memory coupled between said input preprocessor circuit and said input circuit for temporary storage of said pre-processed input bit stream.
- 16. The variable length decoder as set forth in claim 15, wherein said buffer memory comprises a FIFO buffer memory device.
- 17. The variable length decoder as set forth in claim 11, wherein each of said segment length words has the same bit length.
- 18. The variable length decoder as set forth in claim 11, wherein each of said segment length words is appended to the head of its associated data segment.
- 19. The variable length decoder as set forth in claim 11, wherein said pointer generator circuit includes an accumulator.
- 20. A method for decoding an input bit stream which includes a plurality of variable-length encoded data segments, comprising:
- receiving the input bit stream, determining the length of each of the data segments, appending a pointer word to each data segment, each said pointer word being indicative of the starting bit position of its associated data segment, and outputting a pre-processed input bit stream including the plurality of data segments and respective ones of said pointer words;
- providing a decoding window that includes a sequence of bits which includes one or more data segments and respective ones of said pointer words;
- shitting said decoding window in response to successive ones of said pointer words to provide a new sequence of bits which includes one or more additional data segments and respective ones of said pointer words; and,
- decoding said data segments in said decoding window and producing an output bit stream of decoded data segments.
Priority Claims (1)
Number |
Date |
Country |
Kind |
93201653 |
Jun 1993 |
EPX |
|
Parent Case Info
This is a continuation division of application Ser. No. 08/255,508, filed Jun. 8, 1994 now abandoned.
US Referenced Citations (3)
Number |
Name |
Date |
Kind |
5097261 |
Langdon, Jr. et al. |
Mar 1992 |
|
5394144 |
Kim |
Feb 1995 |
|
5424733 |
Fimoff et al. |
Jun 1995 |
|
Non-Patent Literature Citations (2)
Entry |
"Designing High-Throughput VLC Decoder Part I-Concurrent VLSI Architectures", by S.F. Chang et al, IEEE Trans. on Circuits and Sys. for Video Tech., vol. 2, No. 2, Jun. 1992. |
M.T. Sun, "VLSI Architecture and Implementation of a High-Speed Entropy Decoder", IEEE 24th Int. Symp. on Circuits and Systems, vol. I, 1991, pp. 200-203. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
255508 |
Jun 1924 |
|