IP Library Granted Patent US 7,822,601
Granted Patent B2
US 7,822,601 · App. 12/122,553 · Granted Oct 26, 2010

Adaptive vector Huffman coding and decoding based on a sum of values of audio data symbols

Assignee: Microsoft Corporation
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,822,601
App. No.
12/122,553
Granted
Oct 26, 2010
Kind
B2
Abstract

An audio encoder performs entropy encoding of audio data. For example, an audio encoder determines a Huffman code from a Huffman code table to use for encoding a vector of audio data symbols, where the determining is based on a sum of values of the audio data symbols. An audio decoder performs corresponding entropy decoding.

Claims (27)

1. In a computer system that implements an audio encoder, a method of encoding audio data in a vector Huffman encoding scheme, the method comprising:

by the computer system that implements the audio encoder:

determining a Huffman code from a Huffman code table to use for encoding a vector of audio data symbols, wherein the determining is based on a sum of values of the audio data symbols in the vector, wherein the determining comprises comparing the sum of values with a threshold, and wherein the Huffman code table contains Huffman codes for vectors of audio data symbols whose sum is less than the threshold and an escape code for vectors of audio data symbols whose sum is greater than the threshold; and

encoding the vector of audio data symbols using the Huffman code.

2. The method of claim 1 wherein the Huffman code is the escape code, wherein the vector of audio data symbols is an n-dimension vector, wherein n is greater than 1, and wherein the escape code indicates that the n-dimension vector is to be encoded as x n/x-dimension vectors using at least one different Huffman code table.

3. The method of claim 1 wherein the threshold depends on a number of audio data symbols in the vector.

4. The method of claim 3 wherein the number of audio data symbols is 4, and wherein the threshold is 6.

5. The method of claim 3 wherein the number of audio data symbols is 2, and wherein the threshold is 16.

6. The method of claim 3 wherein the number of audio data symbols is 1, and wherein the threshold is 100.

7. In a computer system that implements an audio decoder, a method of decoding audio data in a vector Huffman decoding scheme, the method comprising:

by the computer system that implements the audio decoder:

receiving a Huffman code to use for decoding a vector of audio data symbols, the Huffman code having been determined and selected from a Huffman code table during encoding based on a sum of values of the audio data symbols in the vector, wherein the Huffman code depends at least in part on results of comparing the sum of values with a threshold during the encoding, and wherein the Huffman code table contains Huffman codes for vectors of audio data symbols whose sum is less than the threshold and an escape code for vectors of audio data symbols whose sum is greater than the threshold; and

decoding the vector of audio data symbols using the Huffman code.

8. The method of claim 7 wherein the Huffman code is the escape code, wherein the vector of audio data symbols includes plural audio data symbols, and wherein the escape code indicates that the vector of audio data symbols is to be decoded using one or more other Huffman codes from one or more other Huffman code tables.

9. The method of claim 7 , wherein the threshold depends on a number of audio data symbols in the vector.

10. The method of claim 9 wherein the number of audio data symbols is 4, and wherein the threshold is 6.

11. The method of claim 9 wherein the number of audio data symbols is 2, and wherein the threshold is 16.

12. The method of claim 9 wherein the number of audio data symbols is 1, and wherein the threshold is 100.

13. A storage medium storing computer-executable instructions for causing an audio decoder to perform the method of claim 7 .

14. A storage medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of encoding audio data in a vector Huffman encoding scheme, the method comprising:

determining a Huffman code from a Huffman code table to use for encoding a vector of audio data symbols, wherein the determining is based on a sum of values of the audio data symbols in the vector, wherein the determining comprises comparing the sum of values with a threshold, and wherein the Huffman code table contains Huffman codes for vectors of audio data symbols whose sum is less than the threshold and an escape code for vectors of audio data symbols whose sum is greater than the threshold; and

encoding the vector of audio data symbols using the Huffman code.

15. The storage medium of claim 14 wherein the Huffman code is the escape code, wherein the vector of audio data symbols is an n-dimension vector, wherein n is greater than 1, and wherein the escape code indicates that the n-dimension vector is to be encoded as x n/x-dimension vectors using at least one different Huffman code table.

16. The storage medium of claim 14 wherein the threshold depends on a number of audio data symbols in the vector.

17. The storage medium of claim 16 wherein the number of audio data symbols is 4, and wherein the threshold is 6.

18. The storage medium of claim 16 wherein the number of audio data symbols is 2, and wherein the threshold is 16.

19. The storage medium of claim 16 wherein the number of audio data symbols is 1, and wherein the threshold is 100.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
Continuity (5)
Division 1064792300 · Aug 25, 2003
Provisional Application 6040853800 · Sep 4, 2002
Provisional Application 6040851700 · Sep 4, 2002
Provisional Application 6040843200 · Sep 4, 2002
Related Publication 20080262855A1 · Oct 23, 2008