IP Library › Granted Patent US 7,840,403
Granted Patent B2
US 7,840,403 · App. 12/127,707 · Granted Nov 23, 2010

Entropy coding using escape codes to switch between plural code tables

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,840,403
App. No.
12/127,707
Granted
Nov 23, 2010
Kind
B2
Abstract

An audio encoder performs entropy encoding of audio data. For example, an audio encoder determines whether a first code table in a group of plural code tables contains a code representing a first vector. If it does, the code is used, and otherwise the escape code from the first code table is used and the first vector is encoded using, at least in part, a second code table. An audio decoder performs corresponding entropy decoding.

Claims (82)

1. In a computer system that implements an audio decoder, a method of decoding data comprising plural encoded vectors, the method comprising:

decoding, by the computer system that implements the audio decoder, a first code, wherein the decoding the first code comprises:

receiving the first code;

looking up the first code in a first code table in a group of plural code tables;

determining whether the first code is an escape code from the first code table;

if the first code is the escape code from the first code table:

receiving a second code, wherein the second code is not included in the first code table; and

decoding the second code;

if the first code is not the escape code from the first code table:

looking up a first vector, having a first number of plural symbols, in the first code table, wherein the first vector is associated with the first code in the first code table; and

including the first number of plural symbols of the first vector in a decoded data stream;

wherein sum of values of the first number of plural symbols is a basis for whether the first code is the escape code or not the escape code from the first code table, wherein the second code is associated in a second code table with a second vector that has a second number of symbols, and wherein the first number of plural symbols differs from the second number of symbols by a factor of 2.

2. The method of claim 1 wherein the decoding the second code comprises:

looking up the second code in the second code table in the group of plural code tables;

determining whether the second code is an escape code from the second code table;

if the second code is the escape code from the second code table:

receiving a third code, wherein the third code is not included in the second code table; and

decoding the third code; and

if the second code is not the escape code from the second code table:

looking up the second vector, having the second number of symbols, in the second code table; and

including the second number of symbols of the second vector in the decoded data stream;

wherein the second code table differs from the first code table.

3. The method of claim 2 wherein the second code is the escape code from the second code table, wherein the third code is associated with a third vector comprising one symbol, and wherein the decoding the third code comprises:

finding the one symbol using a table-less decoding technique; and

including the one symbol in the decoded data stream.

4. The method of claim 1 wherein:

the first number of symbols is four;

the first code table includes (a) plural associations of first code values with symbol combinations each having four symbols, and (b) the escape code from the first code table; and

the group of plural code tables includes the second code table, the second code table including (c) plural associations of second code values with symbol combinations each having two symbols, and (d) an escape code from the second code table, the escape code from the second code table indicating a transition to decoding of individual symbols using a third code table including (e) plural associations of third code values with individual symbols, and (f) an escape code from the third code table, the escape code from the third code table indicating a transition to decoding of individual symbols using a table-less decoding technique.

5. In a computer system that implements an audio encoder, a method of encoding data comprising plural vectors, the method comprising:

encoding, by the computer system that implements the audio encoder, a first vector comprising a first number of plural symbols, wherein the encoding the first vector comprises:

determining whether a first code table in a group of plural code tables contains a code representing the first vector;

if the first code table does not contain the code representing the first vector;

including an escape code from the first code table in an encoded data stream;

if the first code table contains the code representing the first vector;

including the code representing the first vector in the encoded data stream;

wherein sum of values of the first number of plural symbols of the first vector is a basis for whether the first code table contains the code representing the first vector; and

wherein the first code table does not contain the code representing the first vector, and wherein the method further comprises:

encoding a second vector comprising a second number of symbols, wherein the encoding the second vector comprises:

determining whether a second code table in the group of plural code tables contains a code representing the second vector;

if the second code table does not contain the code representing the second vector;

including an escape code from the second code table in the encoded data stream;

if the second code table contains the code representing the second vector;

including the code representing the second vector in the encoded data stream;

wherein values of the second number of symbols of the second vector are a basis for whether the second code table contains the code representing the second vector, wherein the second code table differs from the first code table, and wherein the first number of plural symbols differs from the second number of symbols by a factor of 2.

6. The method of claim 5 wherein the second code table does not contain the code representing the second vector, and wherein the method further comprises:

encoding a third vector comprising one symbol using a table-less encoding technique; and

including an encoded representation of the one symbol in the encoded data stream.

7. The method of claim 5 wherein:

the first number of symbols is four;

the first code table includes (a) plural associations of first code values with symbol combinations each having four symbols, and (b) the escape code from the first code table; and

the group of plural code tables includes the second code table, the second code table including (c) plural associations of second code values with symbol combinations each having two symbols, and (d) the escape code from the second code table, the escape code from the second code table indicating a transition to encoding of individual symbols using a third code table including (e) plural associations of third code values with individual symbols, and (f) an escape code from the third code table, the escape code from the third code table indicating a transition to encoding of individual symbols using a table-less encoding technique.

8. A storage medium storing computer-executable instructions for causing a computer perform the method of claim 5 .

9. A storage medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method of decoding data comprising plural encoded vectors, the method comprising:

decoding a first code, wherein the decoding the first code comprises:

receiving the first code;

looking up the first code in a first code table in a group of plural code tables;

determining whether the first code is an escape code from the first code table;

if the first code is the escape code from the first code table:

receiving a second code, wherein the second code is not included in the first code table; and

decoding the second code;

if the first code is not the escape code from the first code table:

looking up a first vector, having a first number of plural symbols, in the first code table, wherein the first vector is associated with the first code in the first code table; and

including the first number of plural symbols of the first vector in a decoded data stream;

wherein sum of values of the first number of plural symbols are a basis for whether the first code is the escape code or not the escape code from the first code table, wherein the second code is associated in a second code table with a second vector that has a second number of symbols, and wherein the first number of plural symbols differs from the second number of symbols by a factor of 2.

10. The storage medium of claim 9 wherein the decoding the second code comprises:

looking up the second code in the second code table in the group of plural code tables;

determining whether the second code is an escape code from the second code table;

if the second code is the escape code from the second code table:

receiving a third code, wherein the third code is not included in the second code table; and

decoding the third code; and

if the second code is not the escape code from the second code table:

looking up the second vector, having the second number of symbols, in the second code table; and

including the second number of symbols of the second vector in the decoded data stream;

wherein the second code table differs from the first code table.

11. The method of claim 10 wherein the second code is the escape code from the second code table, wherein the third code is associated with a third vector comprising one symbol, and wherein the decoding the third code comprises:

finding the one symbol using a table-less decoding technique; and

including the one symbol in the decoded data stream.

12. The storage medium of claim 9 wherein

the first number of symbols is four;

the first code table includes (a) plural associations of first code values with symbol combinations each having four symbols, and (b) the escape code from the first code table; and

the group of plural code tables includes the second code table, the second code table including (c) plural associations of second code values with symbol combinations each having two symbols, and (d) an escape code from the second code table, the escape code from the second code table indicating a transition to decoding of individual symbols using a third code table including (e) plural associations of third code values with individual symbols, and (f) an escape code from the third code table, the escape code from the third code table indicating a transition to decoding of individual symbols using a table-less decoding technique.

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