IP Library Granted Patent US 7,610,195
Granted Patent B2
US 7,610,195 · App. 11/421,541 · Granted Oct 27, 2009

Decoding of predictively coded data using buffer adaptation

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,610,195
App. No.
11/421,541
Granted
Oct 27, 2009
Kind
B2
Abstract

A decoder (e.g., an AAC-LTP decoder) receives a stream containing coded audio data and prediction data. The coded data is upsampled or downsampled during decoding. Portions of the decoded data are stored in a buffer for use in decoding subsequent coded data. The buffer into which the decoded data is placed has different dimensions than a buffer used in a coder when generating the coded data. A portion of the data in the decoder buffer is identified and modified with interleaved zero values so as to correspond to the dimensions of the prediction coding buffer in the coder.

Claims (351)

1. A method comprising:

receiving a stream containing coded data and predictive information associated with the coded data, the predictive information having been generated based on data in a predictive coding buffer;

receiving a factor indicative of an amount by which the coded data is to be either upsampled or downsampled as part of decoding the coded data;

generating decoded data from the coded data using the received factor and the predictive information;

buffering at least a portion of the decoded data in one or more buffers, at least one of the one or more buffers having at least one dimension different from a corresponding dimension of the prediction coding buffer;

identifying at least a portion of the buffered decoded data for use in decoding subsequent coded data; and

modifying the identified data to correspond to the at least one prediction coding buffer dimension.

2. The method of claim 1 , wherein

the coded data includes frequency domain data generated using one or more modified discrete cosine transforms, and

said generating decoded data step includes generating time domain data from the frequency domain data using one or more inverse modified discrete cosine transforms.

3. The method of claim 2 , wherein

the predictive information includes a pitch lag value, and

said identifying at least a portion step includes calculating a modified pitch lag value.

4. The method of claim 3 , wherein

the factor received in said receiving a factor step is a decimation factor indicative of downsampling, and

said identifying at least a portion step includes calculating the modified pitch lag value based on

lagOffset

=

(

ltp_lag

-

ltp_lag

decimFactor

*

decimFactor

)

and

lag

d

=

ltp_lag

decimFactor

+

lagOffset

,

where lag d is the modified pitch lag value, ltp_lag is the pitch lag value included in the received predictive information, and decimFactor is the decimation factor.

5. The method of claim 4 , wherein said modifying the identified data step includes interleaving zero values between elements of the identified data.

6. The method of claim 3 , wherein said modifying the identified data step includes interleaving zero values between elements of the identified data.

7. The method of claim 2 , wherein

the coded data includes prediction error coefficients, and

said generating decoded data step includes

performing a modified discrete cosine transform upon modified identified data from an earlier performance of said modifying the identified data step,

scaling the data resulting from said performing a modified discrete cosine transform step, and

adding the scaled data from said scaling the data step to the prediction error coefficients.

8. The method of claim 7 , wherein the coded data includes frequency sub-bands, wherein said scaling the data step includes, as to each sub-band, scaling the data resulting from said performing a modified discrete cosine transform step according to

scale

=

{

c

LTP

,

if

decimFactor

=

1

c

2

LTP

,

otherwise

where scale is a scaling factor applied to elements of the data from said performing a modified discrete cosine transform step,

decimFactor is the factor received in said receiving a factor step and indicative of downsampling,

c LTP is an LTP coefficient included in the stream received in said receiving a stream step,

c

2

LTP

=

MIN

(

1

,

i

=

0

decimFactor

-

1

c

LTP

)

if the quantized values for the sub-band are zero, or else

c2 LTP =c LTP .

9. The method of claim 1 , wherein

the factor received in said receiving a factor step is an upsampling factor (upSampFactor),

said buffering at least a portion step includes buffering a frame t holding N*upSampFactor aliased time domain samples,

N is the corresponding prediction coding buffer dimension, and

said buffering at least a portion step further includes buffering a frame t−1 by transferring every upSampFactor th sample from a fully-reconstructed time domain frame for a recent time period to the frame t−1.

10. The method of claim 9 , wherein

the coded data includes frequency domain data generated using one or more modified discrete cosine transforms,

said generating decoded data step includes generating time domain data from the frequency domain data using one or more inverse modified discrete cosine transforms,

the coded data includes prediction error coefficients, and

said generating decoded data step further includes

performing a modified discrete cosine transform upon modified identified data from an earlier performance of said modifying the identified data step,

scaling the data resulting from said performing a modified discrete cosine transform step by a factor c LTP *upSampFactor, where c LTP is an LTP coefficient included in the stream received in said receiving a stream step, and

adding the scaled data from said scaling the data step to the prediction error coefficients.

11. A machine-readable medium having machine-executable instructions for performing a method comprising:

receiving a stream containing coded data and predictive information associated with the coded data, the predictive information having been generated based on data in a predictive coding buffer;

receiving a factor indicative of an amount by which the coded data is to be either upsampled or downsampled as part of decoding the coded data;

generating decoded data from the coded data using the received factor and the predictive information;

buffering at least a portion of the decoded data in one or more buffers, at least one of the one or more buffers having at least one dimension different from a corresponding dimension of the prediction coding buffer;

identifying at least a portion of the buffered decoded data for use in decoding subsequent coded data; and

modifying the identified data to correspond to the at least one prediction coding buffer dimension.

12. The machine-readable medium of claim 11 , wherein

the coded data includes frequency domain data generated using one or more modified discrete cosine transforms, and

said generating decoded data step includes generating time domain data from the frequency domain data using one or more inverse modified discrete cosine transforms.

13. The machine-readable medium of claim 12 , wherein

the predictive information includes a pitch lag value, and

said identifying at least a portion step includes calculating a modified pitch lag value.

14. The machine-readable medium of claim 13 , wherein

the factor received in said receiving a factor step is a decimation factor indicative of downsampling, and

said identifying at least a portion step includes calculating the modified pitch lag value based on

lagOffset

=

(

ltp_lag

-

ltp_lag

decimFactor

*

decimFactor

)

and

lag

d

=

ltp_lag

decimFactor

+

lagOffset

,

where lag d is the modified pitch lag value, ltp _lag is the pitch lag value included in the received predictive information, and decimFactor is the decimation factor.

15. The machine-readable medium of claim 14 , wherein said modifying the identified data step includes interleaving zero values between elements of the identified data.

16. The machine-readable medium of claim 13 , wherein said modifying the identified data step includes interleaving zero values between elements of the identified data.

17. The machine-readable medium of claim 12 , wherein

the coded data includes prediction error coefficients, and

said generating decoded data step includes

performing a modified discrete cosine transform upon modified identified data from an earlier performance of said modifying the identified data step,

scaling the data resulting from said performing a modified discrete cosine transform step, and

adding the scaled data from said scaling the data step to the prediction error coefficients.

18. The machine-readable medium of claim 17 , wherein the coded data includes frequency sub-bands, wherein said scaling the data step includes, as to each sub-band, scaling the data resulting from said performing a modified discrete cosine transform step according to

scale

=

{

c

LTP

,

if

decimFactor

=

1

c

2

LTP

,

otherwise

where scale is a scaling factor applied to elements of the data from said performing a modified discrete cosine transform step,

decimFactor is the factor received in said receiving a factor step and indicative of downsampling,

c LTP is an LTP coefficient included in the stream received in said receiving a stream step,

c

2

LTP

=

MIN

(

1

,

i

=

0

decimFactor

-

1

c

LTP

)

if the quantized values for the sub-band are zero, or else

c2 LTP =c LTP .

19. The machine-readable medium of claim 11 , wherein

the factor received in said receiving a factor step is an upsampling factor (upSampFactor),

said buffering at least a portion step includes buffering a frame t holding N*upSampFactor aliased time domain samples,

N is the corresponding prediction coding buffer dimension, and

said buffering at least a portion step further includes buffering a frame t−1 by transferring every upSampFactor th sample from a fully-reconstructed time domain frame for a recent time period to the frame t−1.

20. The machine-readable medium of claim 19 , wherein

the coded data includes frequency domain data generated using one or more modified discrete cosine transforms,

said generating decoded data step includes generating time domain data from the frequency domain data using one or more inverse modified discrete cosine transforms,

the coded data includes prediction error coefficients, and

said generating decoded data step further includes

performing a modified discrete cosine transform upon modified identified data from an earlier performance of said modifying the identified data step,

scaling the data resulting from said performing a modified discrete cosine transform step by a factor c LTP *upSampFactor, where c LTP is an LTP coefficient included in the stream received in said receiving a stream step, and

adding the scaled data from said scaling the data step to the prediction error coefficients.

21. An apparatus, comprising:

one or more processors configured to perform a method for processing data, the method including

receiving a stream containing coded data and predictive information associated with the coded data, the predictive information having been generated based on data in a predictive coding buffer,

receiving a factor indicative of an amount by which the coded data is to be either upsampled or downsampled as part of decoding the coded data,

generating decoded data from the coded data using the received factor and the predictive information,

buffering at least a portion of the decoded data in one or more buffers, at least one of the one or more buffers having at least one dimension different from a corresponding dimension of the prediction coding buffer,

identifying at least a portion of the buffered decoded data for use in decoding subsequent coded data, and

modifying the identified data to correspond to the at least one prediction coding buffer dimension.

22. The apparatus of claim 21 , wherein

the coded data includes frequency domain data generated using one or more modified discrete cosine transforms, and

said generating decoded data step includes generating time domain data from the frequency domain data using one or more inverse modified discrete cosine transforms.

23. The apparatus of claim 22 , wherein

the predictive information includes a pitch lag value, and

said identifying at least a portion step includes calculating a modified pitch lag value.

24. The apparatus of claim 23 , wherein

the factor received in said receiving a factor step is a decimation factor indicative of downsampling, and

said identifying at least a portion step includes calculating the modified pitch lag value based on

lagOffset

=

(

ltp_lag

-

ltp_lag

decimFactor

*

decimFactor

)

and

lag

d

=

ltp_lag

decimFactor

+

lagOffset

,

where lag d is the modified pitch lag value, ltp_lag is the pitch lag value included in the received predictive information, and decimFactor is the decimation factor.

25. The apparatus of claim 24 , wherein said modifying the identified data step includes interleaving zero values between elements of the identified data.

26. The apparatus of claim 23 , wherein said modifying the identified data step includes interleaving zero values between elements of the identified data.

27. The apparatus of claim 22 , wherein

the coded data includes prediction error coefficients, and

said generating decoded data step includes

performing a modified discrete cosine transform upon modified identified data from an earlier performance of said modifying the identified data step,

scaling the data resulting from said performing a modified discrete cosine transform step, and

adding the scaled data from said scaling the data step to the prediction error coefficients.

28. The apparatus of claim 27 , wherein the coded data includes frequency sub-bands, wherein said scaling the data step includes, as to each sub-band, scaling the data resulting from said performing a modified discrete cosine transform step according to

scale

=

{

c

LTP

,

if

decimFactor

=

1

c

2

LTP

,

otherwise

where scale is a scaling factor applied to elements of the data from said performing a modified discrete cosine transform step,

decimFactor is the factor received in said receiving a factor step and indicative of downsampling,

c LTP is an LTP coefficient included in the stream received in said receiving a stream step,

c

2

LTP

=

MIN

(

1

,

i

=

0

decimFactor

-

1

c

LTP

)

if the quantized values for the sub-band are zero, or else

c2 LTP =c LTP .

29. The apparatus of claim 21 , wherein

the factor received in said receiving a factor step is an upsampling factor (upSampFactor),

said buffering at least a portion step includes buffering a frame t holding N*upSampFactor aliased time domain samples,

N is the corresponding prediction coding buffer dimension, and

said buffering at least a portion step further includes buffering a frame t−1 by transferring every upSampFactor th sample from a fully-reconstructed time domain frame for a recent time period to the frame t−1.

30. The apparatus of claim 29 , wherein

the coded data includes frequency domain data generated using one or more modified discrete cosine transforms,

said generating decoded data step includes generating time domain data from the frequency domain data using one or more inverse modified discrete cosine transforms,

the coded data includes prediction error coefficients, and

said generating decoded data step further includes

performing a modified discrete cosine transform upon modified identified data from an earlier performance of said modifying the identified data step,

scaling the data resulting from said performing a modified discrete cosine transform step by a factor c LTP *upSampFactor, where c LTP is an LTP coefficient included in the stream received in said receiving a stream step, and

adding the scaled data from said scaling the data step to the prediction error coefficients.

31. The apparatus of claim 21 , wherein the apparatus is a mobile communication device.

32. The apparatus of claim 21 , wherein the apparatus is a computer.

33. The apparatus of claim 21 , wherein the apparatus is a portable music player.

34. The apparatus of claim 21 , comprising:

means for conversion for frequency domain samples coding N time domain samples to N*F time domain samples, wherein F is an upsampling or a downsampling factor,

prediction means, and

means for adapting the output of the means for conversion for use in the prediction means.

35. The apparatus of claim 34 , wherein

F is an upsampling factor, and

the means for adaptation is configured to update a frame of a long-term prediction buffer with every F th sample from a fully-reconstructed time domain output frame.

36. The apparatus of claim 34 , wherein

F is a downsampling factor, and

the means for adaptation is configured to expand 2N*F time domain samples in a portion of a long-term buffer to 2N time domain samples.

37. An apparatus, comprising:

one or more integrated circuits configured to perform a method, the method including receiving a stream containing coded data and predictive information associated with the coded data, the predictive information having been generated based on data in a predictive coding buffer,

receiving a factor indicative of an amount by which the coded data is to be either upsampled or downsampled as part of decoding the coded data,

generating decoded data from the coded data using the received factor and the predictive information,

buffering at least a portion of the decoded data in one or more buffers, at least one of the one or more buffers having at least one dimension different from a corresponding dimension of the prediction coding buffer,

identifying at least a portion of the buffered decoded data for use in decoding subsequent coded data, and

modifying the identified data to correspond to the at least one prediction coding buffer dimension.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jun 3, 2021
From: TERRIER SSC, LLC
To: WSOU INVESTMENTS, LLC
Reel/Frame 056526/0093 →
SECURITY INTEREST Recorded Jun 1, 2021
From: WSOU INVESTMENTS, LLC
To: OT WSOU TERRIER HOLDINGS, LLC
Reel/Frame 056990/0081 →
SECURITY INTEREST Recorded May 20, 2019
From: WSOU INVESTMENTS, LLC
To: BP FUNDING TRUST, SERIES SPL-VI
Reel/Frame 049235/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035603/0543 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2006
From: OJANPERA, JUHA
To: NOKIA CORPORATION
Reel/Frame 017757/0778 →