IP Library Granted Patent US 8,032,371
Granted Patent B2
US 8,032,371 · App. 11/495,073 · Granted Oct 4, 2011

Determining scale factor values in encoding audio data with AAC

Assignee: Apple Inc.
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,032,371
App. No.
11/495,073
Granted
Oct 4, 2011
Kind
B2
Abstract

Techniques for determining scale factor values when encoding audio data are described. According to one technique, a particular scale factor value (SFV) is estimated using an audio quality estimator function that is non-linear. After a certain point, a decrease in noise results in a smaller increase in audio quality. According to another technique, an initial SFV is estimated for each scale factor band (SFB). When estimating the cost of transitioning from one SFB to another, only a proper subset of possible SFVs are considered. The proper subset is based, at least in part, on the initial SFV.

Claims (97)

1. A non-transitory machine-readable storage medium storing instructions which, when executed by one or more processors, cause:

estimating a cost of selecting a particular scale factor value to quantize data that represents a portion of digital media;

wherein the estimation is based, at least in part, on an estimated level of quality of media that would be produced by quantizing said data using the particular scale factor value; and

using a quality estimation function, at least a portion of which is non-linear, to determine said estimated level of quality;

wherein at least one input to said quality estimation function is a noise-to-mask ratio;

wherein said quality estimation function includes an expression and a constant that is an exponent of the expression, wherein the expression includes the noise-to-mask ratio;

wherein said portion of said quality estimation function is expressed as Q =1−(1−L) −R ;

wherein L is the noise-to-mask ratio, R is a constant, and Q is an estimated level of quality based on a value of L and a value of R.

2. The machine-readable storage medium of claim 1 , wherein the quality estimation function produces quality estimates that reflect diminishing returns when the amount of noise that would be produced by quantizing said data is below a certain threshold.

3. The machine-readable storage medium of claim 1 , wherein the quantizer that is used to quantize said data is a non-uniform quantizer.

4. The machine-readable storage medium of claim 1 , wherein said data comprises a plurality of modified discrete cosine transform (MDCT) coefficients.

5. A machine-implemented method, comprising:

estimating, by one or more processors, a cost of selecting a particular scale factor value to quantize data that represents a portion of digital media;

wherein the estimation is based, at least in part, on an estimated level of quality of media that would be produced by quantizing said data using the particular scale factor value; and

using a quality estimation function, at least a portion of which, is non-linear, to determine said estimated level of quality;

wherein at least one input to said quality estimation function is a noise-to-mask ratio;

wherein said quality estimation function includes an expression and a constant that is an exponent of the expression, wherein the expression includes the noise-to-mask ratio;

wherein said portion of said quality estimation function is expressed as Q =1−(1−L) −R ;

wherein L is the noise-to-mask ratio, R is a constant, and Q is an estimated level of quality based on a value of L and a value of R.

6. The method of claim 5 , wherein the quality estimation function produces quality estimates that reflect diminishing returns when the amount of noise is below a certain threshold.

7. The method of claim 5 , wherein the quantizer that is used to quantize said data is a non-uniform quantizer.

8. The method of claim 5 , wherein said data comprises a plurality of modified discrete cosine transform (MDCT) coefficients.

9. A system, comprising:

one or more processors;

a memory coupled to said one or more processors;

one or more sequences of instructions which, when executed, cause said one or more processors to perform the steps of:

estimating a cost of selecting a particular scale factor value to quantize data that represents a portion of digital media;

wherein the estimation is based, at least in part, on an estimated level of quality of media that would be produced by quantizing said data using the particular scale factor value; and

using a quality estimation function, at least a portion of which is non-linear, to determine said estimated level of quality;

wherein at least one input to said quality estimation function is a noise-to-mask ratio;

wherein said quality estimation function includes an expression and a constant that is an exponent of the expression, wherein the expression includes the noise-to-mask ratio;

wherein said portion of said quality estimation function is expressed as Q =1−(1−L) −R ;

wherein L is the noise-to-mask ratio, R is a constant, and Q is an estimated level of quality based on a value of L and a value of R.

10. The system of claim 9 , wherein the quality estimation function produces quality estimates that reflect diminishing returns when the amount of noise that would be produced by quantizing said data is below a certain threshold.

11. The system of claim 9 , wherein the quantizer that is used to quantize said data is a non-uniform quantizer.

12. The system of claim 9 , wherein said data comprises a plurality of modified discrete cosine transform (MDCT) coefficients.

13. A non-transitory machine-readable storage medium storing instructions for encoding audio data, wherein the instructions, when executed by one or more processors, cause the one or more processors to perform the steps of, for each scale factor band in a plurality of scale factor bands:

for each scale factor value in a set of potential scale factor values, determining an estimated level of audio quality that would be produced by quantizing data using said each scale factor value, wherein the data comprises spectral coefficients corresponding to said scale factor band;

wherein the determination is made by using a quality estimation function, at least a portion of which is non-linear;

wherein at least one input to said quality estimation function is a noise-to-mask ratio that is based on said each scale factor value;

wherein said quality estimation function includes an expression and a constant that is an exponent of the expression, wherein the expression includes the noise-to-mask ratio;

wherein said portion of said quality estimation function is expressed as Q =1−(1−L) −R ;

wherein L is the noise-to-mask ratio, R is a constant, and Q is an estimated level of quality based on a value of L and a value of R..

14. A non-transitory machine-readable storage medium storing instructions which, when executed by one or more processors, cause:

generating a plurality of masked thresholds;

generating, based on the plurality of masked thresholds, a set of initial scale factor values, wherein the set of initial scale factor values includes an initial scale factor value for each of a plurality of quantizers to be used in an encoding operation;

for each quantizer of said plurality of quantizers:

selecting, based, at least in part, on the initial scale factor value generated for that quantizer, a proper subset of the scale factor values that are supported by the quantizer, wherein selecting includes selecting one or more scale factor values greater than the initial scale factor value and selecting one or more scale factor values less than the initial scale factor value, wherein some scale factors values that are supported by the quantizer are not selected, and

for each scale factor value in the proper subset, generating a cost estimate of the cost of using said each scale factor value with said each quantizer; and

selecting scale factor values to use in the encoding operation based, least in part, on the cost estimates.

15. The machine-readable storage medium of claim 14 , wherein:

the set of initial scale factor values is generated from a formula that takes into account, for a particular initial scale factor value at a particular scale factor band, (a) a masked threshold intensity of the particular scale factor band and (b) a scale factor energy (E b ) of the particular scale factor band or a magnitude sum of spectral coefficients (A b ) in the particular scale factor band; and

E b and A b are based, at least partially, on spectral coefficients associated with the particular scale factor band.

16. The machine-readable storage medium of claim 14 , wherein:

the scale factor values are a first set of scale factor values used in the encoding operation; and

said instructions, when executed by the one or more processors, further cause:

determining that spectral coefficients that correspond to one or more scale factor bands are substantially zero;

selecting each scale factor value in a second set of scale factor values to use in the encoding operation based on a selected scale factor value that is immediately previous to said each scale factor value;

wherein the second set of scale factor values correspond to the one or more scale factor bands.

17. The machine-readable storage medium of claim 16 , wherein the spectral coefficients are modified discrete cosine transform coefficients.

18. A system, comprising:

one or more processors;

a memory coupled to said one or more processors;

one or more sequences of instructions which, when executed, cause said one or more processors to perform the steps of:

generating a plurality of masked thresholds;

generating, based on the plurality of masked thresholds, a set of initial scale factor values, wherein the set of initial scale factor values includes an initial scale factor value for each of a plurality of quantizers to be used in an encoding operation;

for each quantizer of said plurality of quantizers:

selecting, based, at least in part, on the initial scale factor value generated for that quantizer, a proper subset of the scale factor values that are supported by the quantizer, wherein selecting includes selecting one or more scale factor values greater than the initial scale factor value and selecting one or more scale factor values less than the initial scale factor value, wherein some scale factors values that are supported by the quantizer are not selected, and

for each scale factor value in the proper subset, generating a cost estimate of the cost of using said each scale factor value with said each quantizer; and

selecting scale factor values to use in the encoding operation based, least in part, on the cost estimates.

19. The system of claim 18 , wherein:

the set of initial scale factor values is generated from a formula that takes into account, for a particular initial scale factor value at a particular scale factor band, (a) a masked threshold intensity of the particular scale factor band and (b) a scale factor energy (E b ) of the particular scale factor band or a magnitude sum of spectral coefficients (A b ) in the particular scale factor band; and

E b and A b are based, at least partially, on spectral coefficients associated with the particular scale factor band.

20. The system of claim 18 , wherein:

the scale factor values are a first set of scale factor values used in the encoding operation; and

said one or more sequences of instructions are instructions, which, when executed by the one or more processors, further cause the one or more processors to perform the steps of:

determining that spectral coefficients that correspond to one or more scale factor bands are substantially zero;

selecting each scale factor value in a second set of scale factor values to use in the encoding operation based on a selected scale factor value that is immediately previous to said each scale factor value;

wherein the second set of scale factor values correspond to the one or more scale factor bands.

21. The system of claim 20 , wherein the spectral coefficients are modified discrete cosine transform coefficients.

22. A machine-implemented method, comprising:

generating, by one or more processors, a plurality of masked thresholds;

generating, based on the plurality of masked thresholds, a set of initial scale factor values, wherein the set of initial scale factor values includes an initial scale factor value for each of a plurality of quantizers to be used in an encoding operation;

for each quantizer of said plurality of quantizers:

selecting, based, at least in part, on the initial scale factor value generated for that quantizer, a proper subset of the scale factor values that are supported by the quantizer, wherein selecting includes selecting one or more scale factor values greater than the initial scale factor value and selecting one or more scale factor values less than the initial scale factor value, wherein some scale factors values that are supported by the quantizer are not selected, and

for each scale factor value in the proper subset, generating a cost estimate of the cost of using said each scale factor value with said each quantizer; and

selecting scale factor values to use in the encoding operation based, at least in part, on the cost estimates.

23. The method of claim 22 , wherein:

the set of initial scale factor values is generated from a formula that takes into account, for a particular initial scale factor value at a particular scale factor band, (a) a masked threshold intensity of the particular scale factor band and (b) a scale factor energy (E b ) of the particular scale factor band or a magnitude sum of spectral coefficients (A b ) in the particular scale factor band; and

E b and A b are based, at least partially, on spectral coefficients associated with the particular scale factor band.

24. The method of claim 22 , wherein:

the scale factor values are a first set of scale factor values used in the encoding operation; and

the method further comprises:

determining that spectral coefficients that correspond to one or more scale factor bands are substantially zero;

selecting each scale factor value in a second set of scale factor values to use in the encoding operation based on a selected scale factor value that is immediately previous to said each scale factor value;

wherein the second set of scale factor values correspond to the one or more scale factor bands.

25. The method of claim 24 , wherein the spectral coefficients are modified discrete cosine transform coefficients.

Assignments (3)
CHANGE OF NAME Recorded Mar 20, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019036/0099 →
REQUEST FOR CORRECTED NOTICE OF RECORDATION OF ASSIGNMENT PREVIOUSLY RECORDED AT REEL/FRAME 018103/0831 ON 7/28/2006 Recorded Aug 29, 2006
From: BAUMGARTE, FRANK M.
To: APPLE COMPUTER, INC.
Reel/Frame 018238/0394 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2006
From: BAUMGARTE, FRANK M.
To: APPLE COMPUTER, INC.
Reel/Frame 018103/0831 →
Continuity (1)
Related Publication 20080027709A1 · Jan 31, 2008