IP Library Granted Patent US 9,263,053
Granted Patent B2
US 9,263,053 · App. 13/667,001 · Granted Feb 16, 2016

Method and apparatus for generating a candidate code-vector to code an informational signal

Inventors: James P Ashley (Naperville, IL); Udar Mittal (Hoffman Estates, IL)
Assignee: GOOGLE TECHNOLOGY HOLDINGS LLC
G10L19/12G10L19/083G10L19/005G10L2019/0013
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 9,263,053
App. No.
13/667,001
Granted
Feb 16, 2016
Kind
B2
Abstract

A method ( 1100 ) and apparatus ( 100 ) generate a candidate code-vector to code an information signal. The method can include producing ( 1110 ) a weighted target vector from an input signal. The method can include processing ( 1120 ) the weighted target vector through an inverse weighting function to create a residual domain target vector. The method can include performing ( 1130 ) a first search process on the residual domain target vector to obtain an initial fixed codebook code-vector. The method can include performing ( 1140 ) a second search process over a subset of possible codebook code-vectors for a low weighted-domain error to produce a final fixed codebook code-vector. The subset of possible codebook code-vectors can be based on the initial fixed codebook code-vector. The method can include generating ( 1150 ) a codeword representative of the final fixed codebook code-vector. The codeword can be for use by a decoder to generate an approximation of the input signal.

Claims (48)

1. A method for processing an input signal comprising:

producing a weighted target vector from the input signal;

processing the weighted target vector through an inverse weighting function to create a residual domain target vector;

performing a first search process on the residual domain target vector to obtain an initial fixed codebook code-vector;

performing a second search process over a subset of possible codebook code-vectors for a low weighted-domain error to produce a final fixed codebook code-vector, wherein the subset of possible codebook code-vectors is based on the initial fixed codebook code-vector;

generating a codeword representative of the final fixed codebook code-vector to generate an approximation of the input signal; and outputting the codeword by at least one of: transmitting the codeword over a communications channel and storing the codeword on a digital media device.

2. The method according to claim 1 , wherein the performing the first search process includes performing a first search on the residual domain target vector for a low residual domain error to obtain the initial fixed codebook code-vector.

3. The method according to claim 1 , wherein the performing the first search process includes vector quantizing the residual domain target vector to obtain the initial fixed codebook code-vector, where the initial fixed codebook code-vector includes a pre-determined number of unit magnitude pulses.

4. The method of claim 1 , wherein the initial fixed codebook code-vector comprises a different number of pulses than the final fixed codebook code-vector.

5. The method of claim 1 , further comprising obtaining the inverse weighting function based on the weighted target vector,

wherein the processing comprises processing the weighted target vector through the obtained inverse weighting function to create the residual domain target vector.

6. The method of claim 1 ,

wherein the processing comprises:

processing the weighted target vector through a set of inverse weighting functions to create a set of residual domain target vectors,

wherein the performing a first search process comprises:

performing a first search on the set of residual domain target vectors to obtain a set of initial fixed codebook code-vectors where each initial fixed codebook code-vector includes a pre-determined number of unit magnitude pulses, and

wherein the performing a second search process comprises:

performing a second search over the subset of possible codebook code-vectors for the low weighted-domain error based on an error value associated with each initial fixed codebook code-vector of the subset of possible codebook code-vectors to produce the final fixed codebook code-vector, where the subset of possible codebook code-vectors is based on the set of initial fixed codebook code-vectors.

7. The method of claim 1 , wherein the performing a second search process comprises:

iterating the initial fixed codebook code-vector using a fixed codebook equivalently processed through a zero state weighted synthesis filter a plurality of times; and

evaluating at least one error value associated with each iteration of the initial fixed codebook code-vector from the plurality of times to produce the final fixed codebook code-vector based on an initial fixed codebook code-vector with a low error value.

8. The method of claim 1 , wherein the performing a first search process includes rounding a gain term applied to vector elements of an inverse weighting function output to select a gain term such that a total number of unit amplitude pulses in the initial fixed codebook code-vector equals a given number.

9. The method of claim 1 , wherein the performing the first search process includes performing a median search quantization including:

finding an optimum pulse configuration satisfying a pulse sum constraint for a given gain; and

finding an optimum gain for the optimum pulse configuration.

10. The method of claim 1 , wherein the performing the second search process includes using a factorial pulse coded codebook to determine the final fixed codebook code-vector.

11. An apparatus comprising:

an input configured to receive an input signal;

a target vector generator configured to produce a weighted target vector from the input signal;

an inverse weighting function generator configured to process the weighted target vector through an inverse weighting function to create a residual domain target vector;

a fixed codebook candidate code-vector generator configured to perform a first search process on the residual domain target vector to obtain an initial fixed codebook code-vector and configured to perform a second search process over a subset of possible codebook code-vectors for a low weighted-domain error to produce a final fixed codebook code-vector, wherein the subset of possible codebook code-vectors is based on the initial fixed codebook code-vector; and

a codeword generator configured to generate a codeword representative of the final fixed codebook code-vector to generate an approximation of the input signal; and

an output configured to output the codeword, wherein the output is configured to output the codeword by at least one of: transmitting the codeword over a communications channel and storing the codeword on a digital media device.

12. The apparatus of claim 11 , wherein the fixed codebook candidate code-vector generator includes a vector quantizer configured to perform the first search process by vector quantizing the residual domain target vector to obtain the initial fixed codebook code-vector, where the initial fixed codebook code-vector includes a pre-determined number of unit magnitude pulses.

13. The apparatus according to claim 11 , wherein the fixed codebook candidate code-vector generator performs the first search process by performing a first search on the residual domain target vector for a low residual domain error to obtain the initial fixed codebook code-vector.

14. The apparatus of claim 11 wherein the initial fixed codebook code-vector includes a different number of pulses than the final fixed codebook code-vector.

15. The apparatus of claim 11 ,

wherein the fixed codebook candidate code-vector generator is configured to obtain the inverse weighting function based on the weighted target vector, and

wherein the fixed codebook candidate code-vector generator processes the weighted target vector through the obtained inverse weighting function to create the residual domain target vector.

16. The apparatus of claim 11 ,

wherein the fixed codebook candidate code-vector generator processes the weighted target vector through a set of inverse weighting functions to create a set of residual domain target vectors,

wherein the fixed codebook candidate code-vector generator performs the first search process on the set of residual domain target vectors to obtain a set of initial fixed codebook code-vectors, where each initial fixed codebook code-vector includes a pre-determined number of unit magnitude pulses, and

wherein the fixed codebook candidate code-vector generator performs the second search process over the subset of possible codebook code-vectors for the low weighted-domain error based on an error value associated with each initial fixed codebook code-vector of the subset of possible codebook code-vectors to produce the final fixed codebook code-vector, where the subset of possible codebook code-vectors is based on the set of initial fixed codebook code-vectors.

17. The apparatus of claim 11 ,

wherein the fixed codebook candidate code-vector generator is configured to perform the second search process by iterating the initial fixed codebook code-vector using a fixed codebook equivalently processed through a zero state weighted synthesis filter a plurality of times, and evaluating at least one error value associated with each iteration of the initial fixed codebook code-vector from the plurality of times to produce the final fixed codebook code-vector based on an initial fixed codebook code-vector with a low error value.

18. The apparatus of claim 11 , wherein the fixed codebook candidate code-vector generator is configured to perform the first search process by rounding a gain term applied to vector elements of the inverse weighting function to select a gain term such that a total number of unit amplitude pulses in the final fixed codebook code-vector equals a given number.

19. The apparatus of claim 11 , wherein the fixed codebook candidate code-vector generator is configured to perform the first search process by finding an optimum pulse configuration satisfying a pulse sum constraint for a given gain, and finding an optimum gain for the optimum pulse configuration.

20. The apparatus of claim 11 , wherein the fixed codebook candidate code-vector generator is configured perform the second search process by using a factorial pulse coded codebook to determine the final fixed codebook code-vector.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE INCORRECT PATENT NO. 8577046 AND REPLACE WITH CORRECT PATENT NO. 8577045 PREVIOUSLY RECORDED ON REEL 034286 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 3, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034538/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034286/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2012
From: ASHLEY, JAMES P; MITTAL, UDAR
To: MOTOROLA MOBILITY LLC
Reel/Frame 029230/0377 →
Continuity (2)
Continuation 13439121 · Apr 4, 2012
Related Publication 20140129214A1 · May 8, 2014