IP Library Granted Patent US 7,268,708
Granted Patent B2
US 7,268,708 · App. 11/434,827 · Granted Sep 11, 2007

Method and apparatus for improved multimedia decoder

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,268,708
App. No.
11/434,827
Granted
Sep 11, 2007
Kind
B2
Abstract

Embodiments include systems and methods of improving processing in a decoder in a multimedia transmission system. Multimedia data may include one or more of motion video, audio, still images, or any other suitable type of audio-visual data. One embodiment includes a system and method of parsing fixed and variable length codes from a bit-wise stream of multi-media data by maintaining and reading the data in a processor aligned (e.g., word aligned) way. Another embodiment includes a system and method of decoding variable length codes, particular as received from such a variable length code using multiple levels of decoding tables to speed up decoder table lookup.

Claims (70)

1. A method of processing received encoded multimedia data, the method comprising:

determining a number of bits available in a first buffer of encoded multimedia data from a received bitstream;

if reading a fixed length codeword, reading processor-aligned data from the bitstream into the first buffer, wherein the fixed length codeword comprises the determined available bits and bits associated with a portion of the processor-aligned data; and

if reading a variable length codeword, reading processor-unaligned data from the bitstream into the first buffer, wherein the variable length codeword comprises at least some of the available bits.

2. The method of claim 1 , further comprising:

if reading the fixed length codeword, copying the determined available bits into a second buffer prior to reading the processor-aligned data and then copying bits associated with the portion of the processor-aligned data from the first buffer to the second buffer.

3. The method of claim 1 , wherein reading processor unaligned data comprises reading 16 bits and reading processor-aligned data comprises reading 32 bits.

4. The method of claim 1 , further comprising:

decoding the variable length codeword;

updating the number of bits available in the first buffer based at least in part on the length of the decoded variable length codeword; and

adjusting the content of the first buffer to align data in the bitstream.

5. The method of claim 4 , wherein decoding the variable length codeword comprises:

identifying first decoding data in a first data structure based at least in part on data in the first buffer; and

determining whether the first decoding data is indicative of a second data structure comprising decoding data.

6. The method of claim 4 , wherein adjusting the content of the first buffer to align data in the bitstream comprises reading processor-unaligned data from the bitstream.

7. The method of claim 4 , wherein adjusting the content of the first buffer to align data in the bitstream comprises returning the processor-unaligned data to the bitstream.

8. The method of claim 1 , wherein reading processor-aligned data from the bitstream of encoded multimedia data comprises reordering bytes of data within a word.

9. The method of claim 8 , wherein reordering bytes of data within a word comprises reordering data from a big-endian format into a little-endian format.

10. A computer readable medium for embodying a method for processing multimedia data, the method comprising:

determining a number of bits available in a first buffer of encoded multimedia data from a received bitstream;

if reading a fixed length codeword, reading processor-aligned data from the bitstream into the first buffer, wherein the fixed length codeword comprises the determined available bits and bits associated with a portion of the processor-aligned data; and

if reading a variable length codeword, reading processor-unaligned data from the bitstream into the first buffer, wherein the variable length codeword comprises at least some of the available bits.

11. The computer readable medium of claim 10 , the method further comprising:

decoding the variable length codeword;

updating the number of bits available in the first buffer based at least in part on the length of the decoded variable length codeword; and

adjusting the content of the first buffer to align data in the bitstream.

12. The computer readable medium of claim 11 , wherein decoding the variable length codeword comprises:

identifying first decoding data in a first data structure based at least in part on data in the first buffer; and

determining whether the first decoding data is indicative of a second data structure comprising decoding data.

13. An apparatus for processing received encoded multimedia data, the apparatus comprising:

means for determining a number of bits available in a first buffer of encoded multimedia data from a received bitstream; and

means for reading a codeword, wherein if reading a fixed length codeword, said means for reading reads processor-aligned data from the bitstream into the first buffer, wherein the fixed codeword comprises the determined available bits and bits associated with a portion of the processor-aligned data, and wherein if reading a variable length codeword, said means for reading reads processor-unaligned data from the bitstream into the first buffer, wherein the variable length codeword comprises at least some of the available bits.

14. The apparatus of claim 13 , wherein said means for reading further comprising means for copying the determined available bits into a second buffer prior to reading the processor-aligned data and then copying bits associated with the portion of the processor-aligned data from the first buffer to the second buffer.

15. The apparatus of claim 13 , wherein said means for reading processor unaligned data comprises means for reading 16 bits and reading processor-aligned data comprises reading 32 bits.

16. The apparatus of claim 13 , further comprising:

means for decoding the variable length codeword;

means for updating the number of bits available in the first buffer based at least in part on the length of the decoded variable length codeword; and

means for adjusting the content of the first buffer to align data in the bitstream.

17. The apparatus of claim 16 , wherein said means for decoding the variable length codeword comprises:

means for identifying first decoding data in a first data structure based at least in part on data in the first buffer; and

means for determining whether the first decoding data is indicative of a second data structure comprising decoding data.

18. The apparatus of claim 16 , wherein said means for adjusting the content of the first buffer to align data in the bitstream comprises means for reading processor-unaligned data from the bitstream.

19. The apparatus of claim 16 , wherein said means for adjusting the content of the first buffer to align data in the bitstream comprises means for returning the processor-unaligned data to the bitstream.

20. An apparatus for processing multimedia data, comprising:

a determiner configured to determine a number of bits available in a first buffer of encoded multimedia data from a received bitstream; and

a reader configured to, if reading a fixed length codeword, read processor-aligned data from the bitstream into the first buffer, wherein the fixed length codeword comprises the determined available bits and bits associated with a portion of the processor-aligned data, and, if reading a variable length codeword, read processor-unaligned data from the bitstream into the first buffer, wherein the variable length codeword comprises at least some of the available bits.

21. The apparatus of claim 20 , further comprising:

a copier configured to, if reading the fixed length codeword, copy the determined available bits into a second buffer prior to reading the processor-aligned data and then copying bits associated with the portion of the processor-aligned data from the first buffer to the second buffer.

22. The apparatus of claim 20 , wherein the reader is configured to read processor unaligned data comprising 16 bits of data and the reader is configured to read processor-aligned data comprising 32 bits of data.

23. The apparatus of claim 20 , further comprising:

a codeword decoder configured to decode the variable length codeword;

an updater configured to update the number of bits available in the first buffer based at least in part on the length of the decoded variable length codeword; and

an adjuster configured to adjust the content of the first buffer to align data in the bitstream.

24. The apparatus of claim 20 , further comprising:

an identifier configured to identify first decoding data in a first data structure based at least in part on data in the first buffer; and

a second determiner configured to determine whether the first decoding data is indicative of a second data structure comprising decoding data.

25. The apparatus of claim 24 , wherein the adjuster is configured to adjust the content of the first buffer to align data in the bitstream by at least in part reading processor-unaligned data from the bitstream.

26. The apparatus of claim 24 , wherein as part of adjusting the content of the first buffer to align data in the bitstream, the adjuster is further configure to return the processor-unaligned data to the bitstream.

27. The apparatus of claim 20 , wherein as part of reading processor-aligned data from the bitstream of encoded multimedia data, the reader is further configured to reorder bytes of data within a word.

28. A processor for processing multimedia data, the processor being configured to:

determine a number of bits available in a first buffer of encoded multimedia data from a received bitstream;

if reading a fixed length codeword, read processor-aligned data from the bitstream into the first buffer, wherein the fixed length codeword comprises the determined available bits and bits associated with a portion of the processor-aligned data; and

if reading a variable length codeword, read processor-unaligned data from the bitstream into the first buffer, wherein the variable length codeword comprises at least some of the available bits.

29. The processor of claim 28 , wherein said processor is further configured to, if reading the fixed length codeword, copy the determined available bits into a second buffer prior to reading the processor-aligned data and then copying bits associated with the portion of the processor-aligned data from the first buffer to the second buffer.

30. The processor of claim 28 , wherein the processor is further configured to:

identify first decoding data in a first data structure based at least in part on data in the first buffer; and

determine whether the first decoding data is indicative of a second data structure comprising decoding data.

31. The processor of claim 30 , wherein the processor is configured to adjust the content of the first buffer to align data in the bitstream by at least in part reading processor-unaligned data from the bitstream.

32. The processor of claim 30 , wherein as part of adjusting the content of the first buffer to align data in the bitstream, the processor is further configured to return the processor-unaligned data to the bitstream.

33. The processor of claim 28 , wherein as part of reading processor-aligned data from the bitstream of encoded multimedia data, the processor is further configured to reorder bytes of data within a word.

Assignments (1)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL 022449 FRAME 0101. THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 24, 2009
From: SERCONET LTD.
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 023594/0721 →