# US 7,610,195 B2 · Decoding of predictively coded data using buffer adaptation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,610,195 B2
- Document ID: US7610195B2
- Status: Granted
- Kind: B2
- Application number: 11/421,541
- Filed: 2006-06-01
- Published: 2007-12-06
- Granted: 2009-10-27
- Earliest claimed: 2006-06-01
- Assignees: Nokia Corporation
- Inventors: Juha Ojanperä
- Web page: https://patentgrep.com/patent/US7610195B2

## CPC

- G10L 19/167: {Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes}
- G10L 19/08: Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 3)

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 lagd 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.

### Claim 5 (depends on 4)

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

### Claim 6 (depends on 3)

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

### Claim 7 (depends on 2)

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.

### Claim 8 (depends on 7)

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,
cLTP 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
c2LTP=cLTP.

### Claim 9 (depends on 1)

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 upSampFactorth sample from a fully-reconstructed time domain frame for a recent time period to the frame t−1.

### Claim 10 (depends on 9)

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 cLTP*upSampFactor, where cLTP 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.

### Claim 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.

### Claim 12 (depends on 11)

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.

### Claim 13 (depends on 12)

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.

### Claim 14 (depends on 13)

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 lagd 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.

### Claim 15 (depends on 14)

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

### Claim 16 (depends on 13)

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

### Claim 17 (depends on 12)

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.

### Claim 18 (depends on 17)

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,
cLTP 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
c2LTP=cLTP.

### Claim 19 (depends on 11)

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 upSampFactorth sample from a fully-reconstructed time domain frame for a recent time period to the frame t−1.

### Claim 20 (depends on 19)

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 cLTP*upSampFactor, where cLTP 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.

### Claim 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.

### Claim 22 (depends on 21)

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.

### Claim 23 (depends on 22)

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.

### Claim 24 (depends on 23)

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 lagd 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.

### Claim 25 (depends on 24)

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

### Claim 26 (depends on 23)

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

### Claim 27 (depends on 22)

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.

### Claim 28 (depends on 27)

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,
cLTP 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
c2LTP=cLTP.

### Claim 29 (depends on 21)

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 upSampFactorth sample from a fully-reconstructed time domain frame for a recent time period to the frame t−1.

### Claim 30 (depends on 29)

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 cLTP*upSampFactor, where cLTP 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.

### Claim 31 (depends on 21)

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

### Claim 32 (depends on 21)

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

### Claim 33 (depends on 21)

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

### Claim 34 (depends on 21)

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.

### Claim 35 (depends on 34)

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 Fth sample from a fully-reconstructed time domain output frame.

### Claim 36 (depends on 34)

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.

### Claim 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.
