IP Library › Granted Patent US 8,831,933
Granted Patent B2
US 8,831,933 · App. 13/193,476 · Granted Sep 9, 2014

Systems, methods, apparatus, and computer-readable media for multi-stage shape vector quantization

Inventors: Ethan Robert Duni (San Diego, CA); Venkatesh Krishnan (San Diego, CA); Vivek Rajendran (San Diego, CA)
Assignee: QUALCOMM Incorporated
G10L25/90G10L19/038G10L19/093
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 8,831,933
App. No.
13/193,476
Granted
Sep 9, 2014
Kind
B2
Abstract

A multistage shape vector quantizer architecture uses information from a selected first-stage codebook vector to generate a rotation matrix. The rotation matrix is used to rotate the direction of the input vector to support shape quantization of the first-stage quantization error.

Claims (70)

1. An apparatus for vector quantization, said apparatus comprising:

a first vector quantizer configured to receive a first input vector that has a first direction and to select a corresponding one among a plurality of first codebook vectors of a first codebook, wherein the first vector quantizer is implemented by the apparatus, and wherein the apparatus comprises hardware;

a rotation matrix generator configured to generate a rotation matrix that is based on the selected first codebook vector;

a multiplier configured to calculate a product of (A) a vector that has the first direction and (B) the rotation matrix to produce a rotated vector that has a second direction that is different than the first direction; and

a second vector quantizer configured to receive a second input vector that has the second direction and to select a corresponding one among a plurality of second codebook vectors of a second codebook.

2. The apparatus according to claim 1 , wherein each among the plurality of first codebook vectors and the plurality of second codebook vectors is a unit-norm vector.

3. The apparatus according to claim 1 , wherein the first vector quantizer is configured to select the first codebook from among a plurality of codebooks, based on a gain value of the first input vector.

4. The apparatus according to claim 1 , wherein, for each among the plurality of first codebook vectors, an inner product of the first input vector with the codebook vector is not greater than an inner product of the first input vector and the selected first codebook vector.

5. The apparatus according to claim 1 , wherein the first input vector is one among a plurality of subband vectors of a frame of an audio signal, and wherein said apparatus includes a gain quantizer configured to encode an average gain value of the plurality of subband vectors, based on an average gain value of a previous frame of the audio signal.

6. The apparatus according to claim 1 , wherein each of the elements of at least one row of the rotation matrix is based on a corresponding element of the selected first codebook vector.

7. The apparatus according to claim 1 , wherein each of the elements of at least one column of the rotation matrix is based on a corresponding element of the selected first codebook vector.

8. The apparatus according to claim 1 , wherein the rotation matrix is based on a reference vector that is independent of the first input vector.

9. The apparatus according to claim 8 , wherein the reference vector has only one nonzero element.

10. The apparatus according to claim 8 , wherein the rotation matrix defines a rotation of the selected first codebook vector, within a plane that includes the selected first codebook vector and the reference vector, to the direction of the reference vector.

11. The apparatus according to claim 1 , wherein said multiplier is configured to calculate said product of a vector that has the first direction and the rotation matrix by calculating a product of the rotation matrix and said first input vector.

12. The apparatus according to claim 1 , wherein said selected first codebook vector is based on a pattern of unit pulses.

13. A method of vector quantization, said method comprising:

quantizing a first input vector that has a first direction by selecting a corresponding one among a plurality of first codebook vectors of a first codebook;

generating a rotation matrix that is based on the selected first codebook vector;

calculating a product of (A) a vector that has the first direction and (B) the rotation matrix to produce a rotated vector that has a second direction that is different than the first direction; and

quantizing a second input vector that has the second direction by selecting a corresponding one among a plurality of second codebook vectors of a second codebook.

14. The method according to claim 13 , wherein each among the plurality of first codebook vectors and the plurality of second codebook vectors is a unit-norm vector.

15. The method according to claim 13 , wherein said quantizing a first input vector includes selecting the first codebook from among a plurality of codebooks, based on a gain value of the first input vector.

16. The method according to claim 13 , wherein, for each among the plurality of first codebook vectors, an inner product of the first input vector with the codebook vector is not greater than an inner product of the first input vector and the selected first codebook vector.

17. The method according to claim 13 , wherein the first input vector is one among a plurality of subband vectors of a frame of an audio signal, and

wherein said method includes encoding an average gain value of the plurality of subband vectors, based on an average gain value of a previous frame of the audio signal.

18. The method according to claim 13 , wherein each of the elements of at least one row of the rotation matrix is based on a corresponding element of the selected first codebook vector.

19. The method according to claim 13 , wherein each of the elements of at least one column of the rotation matrix is based on a corresponding element of the selected first codebook vector.

20. The method according to claim 13 , wherein the rotation matrix is based on a reference vector that is independent of the first input vector.

21. The method according to claim 20 , wherein the reference vector has only one nonzero element.

22. The method according to claim 20 , wherein the rotation matrix defines a rotation of the selected first codebook vector, within a plane that includes the selected first codebook vector and the reference vector, to the direction of the reference vector.

23. The method according to claim 13 , wherein said calculating said product of the vector that has the first direction and the rotation matrix is performed by calculating a product of the rotation matrix and said first input vector.

24. The method according to claim 13 , wherein said selected first codebook vector is based on a pattern of unit pulses.

25. An apparatus for vector quantization, said apparatus comprising:

means for quantizing a first input vector that has a first direction by selecting a corresponding one among a plurality of first codebook vectors of a first codebook;

means for generating a rotation matrix that is based on the selected first codebook vector;

means for calculating a product of (A) a vector that has the first direction and (B) the rotation matrix to produce a rotated vector that has a second direction that is different than the first direction; and

means for quantizing a second input vector that has the second direction by selecting a corresponding one among a plurality of second codebook vectors of a second codebook.

26. The apparatus according to claim 25 , wherein each among the plurality of first codebook vectors and the plurality of second codebook vectors is a unit-norm vector.

27. The apparatus according to claim 25 , wherein said means for quantizing a first input vector is configured to select the first codebook from among a plurality of codebooks, based on a gain value of the first input vector.

28. The apparatus according to claim 25 , wherein, for each among the plurality of first codebook vectors, an inner product of the first input vector with the codebook vector is not greater than an inner product of the first input vector and the selected first codebook vector.

29. The apparatus according to claim 25 , wherein the first input vector is one among a plurality of subband vectors of a frame of an audio signal, and

wherein said apparatus includes means for encoding an average gain value of the plurality of subband vectors, based on an average gain value of a previous frame of the audio signal.

30. The apparatus according to claim 25 , wherein each of the elements of at least one row of the rotation matrix is based on a corresponding element of the selected first codebook vector.

31. The apparatus according to claim 25 , wherein each of the elements of at least one column of the rotation matrix is based on a corresponding element of the selected first codebook vector.

32. The apparatus according to claim 25 , wherein the rotation matrix is based on a reference vector that is independent of the first input vector.

33. The apparatus according to claim 32 , wherein the reference vector has only one nonzero element.

34. The apparatus according to claim 32 , wherein the rotation matrix defines a rotation of the selected first codebook vector, within a plane that includes the selected first codebook vector and the reference vector, to the direction of the reference vector.

35. The apparatus according to claim 25 , wherein said means for calculating a product is configured to calculate said product of a vector that has the first direction and the rotation matrix by calculating a product of the rotation matrix and said first input vector.

36. The apparatus according to claim 25 , wherein said selected first codebook vector is based on a pattern of unit pulses.

37. An apparatus for dequantizing a quantized vector that includes a first codebook index and a second codebook index, said apparatus comprising:

a first vector dequantizer configured to receive the first codebook index and to produce a corresponding first codebook vector from a first codebook;

a rotation matrix generator configured to generate a rotation matrix that is based on the first codebook vector;

a second vector dequantizer configured to receive a second codebook index and to produce, from

a second codebook, a corresponding second codebook vector that has a first direction; and a multiplier configured to calculate a product of (A) a vector that has the first direction and (B) the rotation matrix to produce a rotated vector that has a second direction that is different than the first direction.

38. A method of dequantizing a quantized vector that includes a first codebook index and a second codebook index, said method comprising:

selecting, from among a plurality of first codebook vectors of a first codebook, a first codebook vector that is indicated by the first codebook index;

generating a rotation matrix that is based on the selected first codebook vector;

selecting, from among a plurality of second codebook vectors of a second codebook, a second codebook vector that is indicated by the second codebook index and has a first direction;

calculating a product of (A) a vector that has the first direction and (B) the rotation matrix to produce a rotated vector that has a second direction that is different than the first direction.

39. An apparatus for dequantizing a quantized vector that includes a first codebook index and a second codebook index, said apparatus comprising:

means for selecting, from among a plurality of first codebook vectors of a first codebook, a first codebook vector that is indicated by the first codebook index;

means for generating a rotation matrix that is based on the selected first codebook vector;

means for selecting, from among a plurality of second codebook vectors of a second codebook, a second codebook vector that is indicated by the second codebook index and has a first direction;

means for calculating a product of (A) a vector that has the first direction and (B) the rotation matrix to produce a rotated vector that has a second direction that is different than the first direction.

40. A non-transitory computer-readable storage medium having tangible features that cause a machine reading the features to:

quantize a first input vector that has a first direction by selecting a corresponding one among a plurality of first codebook vectors of a first codebook;

generate a rotation matrix that is based on the selected first codebook vector;

calculate a product of (A) a vector that has the first direction and (B) the rotation matrix to produce a rotated vector that has a second direction that is different than the first direction; and

quantize a second input vector that has the second direction by selecting a corresponding one among a plurality of second codebook vectors of a second codebook.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2011
From: DUNI, ETHAN ROBERT; KRISHNAN, VENKATESH; RAJENDRAN, VIVEK
To: QUALCOMM INCORPORATED
Reel/Frame 026798/0964 →
Continuity (7)
Provisional Application 61369662 · Jul 30, 2010
Provisional Application 61369705 · Jul 31, 2010
Provisional Application 61369751 · Aug 1, 2010
Provisional Application 61374565 · Aug 17, 2010
Provisional Application 61384237 · Sep 17, 2010
Provisional Application 61470438 · Mar 31, 2011
Related Publication 20120029924A1 · Feb 2, 2012