IP Library Granted Patent US 7,773,003
Granted Patent B1
US 7,773,003 · App. 12/398,189 · Granted Aug 10, 2010

Huffman search algorithm for AAC 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,773,003
App. No.
12/398,189
Granted
Aug 10, 2010
Kind
B1
Abstract

A method for decoding an input bit stream encoded using Huffman encoding generates a lookup table using a standard Huffman code book. Thereafter, at least three bits are extracted from the input bit stream. The at least three bits extracted are used to traverse the lookup table. Subsequently, a data set corresponding to a Huffman code word is accessed, thereby decoding the input bit stream.

Claims (34)

1. A method for generating a lookup table using a standard Huffman code book, wherein the standard Huffman code book comprises a plurality of Huffman code words, the method comprising:

dividing the standard Huffman code book into a plurality of groups based on a length of each of the plurality of Huffman code words, wherein each of the plurality of groups comprises Huffman code words having equal lengths;

selecting a group from the plurality of groups having Huffman code words of a predetermined length;

selecting a Huffman code word having a predetermined numerical value from the selected group; and

generating the lookup table based on the selected Huffman code word, wherein the lookup table comprises:

at least one data set comprising decoded data corresponding to a Huffman code word of the plurality of Huffman code words; and

at least one terminal value referring to the at least one data set, wherein the at least one terminal value comprises one or more first offset bits that represent a row offset of the at least one data set.

2. The method of claim 1 , wherein the predetermined length is a minimum length associated with at least one Huffman code word, and the at least one Huffman code word belongs to the plurality of Huffman code words.

3. The method of claim 1 , wherein the predetermined numerical value is a minimum numerical value associated with at least one Huffman code word, and the at least one Huffman code word belongs to the plurality of Huffman code words.

4. A method for decoding an input bit stream encoded using a Huffman encoding scheme using a lookup table, wherein the lookup table comprises at least one data set comprising decoded data corresponding to a Huffman code word, and at least one terminal value referring to the at least one data set, and wherein the at least one terminal value comprises one or more first offset bits that represent a row offset of the at least one data set, the decoding method comprising:

receiving the input bit stream;

extracting at least three bits from the received input bit stream;

traversing the lookup table using the at least three extracted bits to access the at least one terminal value; and

accessing the at least one data set using the at least one terminal value based on the traversal of the lookup table.

5. The method of claim 4 , wherein the at least one terminal value further comprises at least two return bits representing extra bits extracted from the input bit stream that are not a part of the Huffman code word.

6. The method of claim 4 , wherein the at least one data set further comprises at least one of a scale factor and a spectral coefficient.

7. The method of claim 4 , wherein the lookup table further comprises a first intermediate value for providing an offset of the row to be accessed during the traversal of the lookup table, wherein the first intermediate value refers to the at least one terminal value and comprises one or more second offset bits that represent a row offset of the at least one terminal value.

8. The method of claim 7 , further comprising traversing the lookup table based on the at least three extracted bits to access the first intermediate value.

9. The method of claim 8 , further comprising accessing the at least one terminal value using the first intermediate value.

10. The method of claim 7 , wherein the lookup table further comprises a second intermediate value and a third intermediate value for providing an offset of the row to be accessed during the traversal of the lookup table, wherein the second intermediate value refers to the third intermediate value and the third intermediate value refers to the at least one terminal value.

11. The method of claim 10 , wherein the second intermediate value comprises one or more third offset bits that represent a row offset of the third intermediate value.

12. The method of claim 10 , wherein the third intermediate value comprises one or more fourth offset bits that represent a row offset of the at least one terminal value.

13. The method of claim 10 , further comprising traversing the lookup table based on the at least three extracted bits to access the second intermediate value.

14. The method of claim 13 , further comprising accessing the third intermediate value using the second intermediate value.

15. The method of claim 14 , further comprising accessing the at least one terminal value using the third intermediate value.

16. The method of claim 4 , wherein the input bit stream is encoded according to at least one of an Advanced Audio Coding (AAC), a Moving Pictures Experts Group (MPEG) Audio Layer 3 (MP3), and a Joint Photographic Experts Group (JPEG) standards.

17. A system for decoding an input bit stream encoded using Huffman encoding scheme, comprising:

a processor unit for decoding the input bit stream; and

a memory unit coupled to the processor for storing a lookup table, wherein the lookup table comprises:

at least one data set comprising decoded data corresponding to a Huffman code word; and

at least one terminal value referring to the at least one data set, wherein the at least one terminal value comprises one or more first offset bits that represent a row offset of the at least one data set.

18. The system of claim 17 , wherein the at least one terminal value further comprises at least two return bits, wherein the at least two return bits represent extra bits extracted from the input bit stream that are not a part of the Huffman code word.

19. The system of claim 17 , wherein the at least one data set comprises at least one of a spectral coefficient and a scale factor.

20. The system of claim 17 , wherein the lookup table further comprises one or more intermediate values, wherein at least one of the one or more intermediate values refers to the at least one terminal value.

Assignments (19)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE LISTED CHANGE OF NAME SHOULD BE MERGER AND CHANGE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0180. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 12, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 041354/0148 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040652/0180 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0793 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded May 19, 2009
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 022703/0405 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE CONVEYING PARTY PREVIOUSLY RECORDED ON REEL 022347 FRAME 0106. ASSIGNOR(S) HEREBY CONFIRMS THE THE CONVEYING PARTY SHALL INCLUDE SHYAM KRISHNAN MONI IN ADDITION TO SRINIDHI THIRUMALAE NARAYANA.. Recorded Mar 11, 2009
From: NARAYANA, SRINIDHI THIRUMALAE; MONI, SHYAM KRISHNAN
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 022374/0663 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2009
From: NARAYANA, SRINIDHI THIRUMALAE
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 022347/0106 →