Bitrate constrained variable bitrate audio encoding
First Claim
1. A volatile or non-volatile machine-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to perform:
- in a single pass of an audio stream that comprises a plurality of blocks of audio data, performing, for at least one block of audio data of the plurality of blocks of audio data, the steps of;
computing a first bitrate based on a noise-to-masking ratio target for the block of audio data;
determining whether the first bitrate is within a specified range;
if the first bitrate is not within the specified range, then computing a target bitrate;
computing, based on said target bitrate, a final bitrate at which the block of audio data is encoded;
wherein the final bitrate is within the specified range; and
outputting the block of audio data encoded using the final bitrate;
if the first bitrate is within the specified range, thenoutputting the block of audio data encoded using the first bitrate.
4 Assignments
0 Petitions
Accused Products
Abstract
A hybrid audio encoding technique incorporates both ABR, or CBR, and VBR encoding modes. For each audio coding block, after a VBR quantization loop meets the NMR target, a second quantization loop might be called to adaptively control the final bitrate. That is, if the NMR-based quantization loop results in a bitrate that is not within a specified range, then a bitrate-based CBR or ABR quantization loop determines a final bitrate that is within the range and is adaptively determined based on the encoding difficulty of the audio data. Excessive bitrates from use of conventional VBR mode are eliminated, while still providing much more constant perceptual sound quality than use of conventional CBR mode can achieve.
-
Citations
26 Claims
-
1. A volatile or non-volatile machine-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to perform:
in a single pass of an audio stream that comprises a plurality of blocks of audio data, performing, for at least one block of audio data of the plurality of blocks of audio data, the steps of; computing a first bitrate based on a noise-to-masking ratio target for the block of audio data; determining whether the first bitrate is within a specified range; if the first bitrate is not within the specified range, then computing a target bitrate; computing, based on said target bitrate, a final bitrate at which the block of audio data is encoded; wherein the final bitrate is within the specified range; and outputting the block of audio data encoded using the final bitrate; if the first bitrate is within the specified range, then outputting the block of audio data encoded using the first bitrate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A machine-implemented method for determining a bitrate at which to encode a block of audio data, the method comprising:
in a single pass of an audio stream that comprises a plurality of blocks of audio data, performing, for at least one block of audio data of the plurality of blocks of audio data, the steps of; computing a first bitrate based on a noise-to-masking ratio target for the block of audio data; determining whether the first bitrate is within a specified range; if the first bitrate is not within the specified range, then computing a target bitrate; computing, based on said target bitrate, a final bitrate at which the block of audio data is encoded; wherein the final bitrate is within the specified range; and outputting the block of audio data encoded using the final bitrate; if the first bitrate is within the specified range, then outputting the block of audio data encoded using the first bitrate. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
19. A volatile or non-volatile machine-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to perform:
in a single pass of an audio stream that comprises a plurality of blocks of audio data, performing, for a first block of audio data of the plurality of blocks of audio data, the steps of; executing a variable bitrate quantization loop to determine a first number of bits for use in encoding the first block of audio data, wherein the first number of bits satisfies an audio quality target that is based on a noise-to-masking ratio for the first block; determining whether the first number of bits is within a first specified range of bits, wherein the specified range is based at least in part on a number of bits available for encoding the block; if the first number of bits is not within the first specified range, then computing a target number of bits for use in encoding the block; executing an average bitrate quantization loop, based on the target number of bits, to determine a final number of bits for use in encoding the block; and outputting the block of audio data encoded using the final number of bits; if the first bitrate is within the specified range, then outputting the block of audio data encoded using said first number of bits. - View Dependent Claims (20, 21, 22)
-
23. A machine-implemented method for encoding audio, comprising:
in a single pass of an audio stream that comprises a plurality of blocks of audio data, performing, for a first block of audio data of the plurality of blocks of audio data, the steps of; executing a variable bitrate quantization loop to determine a first number of bits for use in encoding the first block of audio data, wherein the first number of bits satisfies an audio quality target that is based on a noise-to-masking ratio for the first block; determining whether the first number of bits is within a first specified range of bits, wherein the specified range is based at least in part on a number of bits available for encoding the block; if the first number of bits is not within the first specified range, then computing a target number of bits for use in encoding the block; executing an average bitrate quantization loop, based on the target number of bits, to determine a final number of bits for use in encoding the block; and outputting the block of audio data encoded using the final number of bits; if the first bitrate is within the specified range, then outputting the block of audio data encoded using said first number of bits. - View Dependent Claims (24, 25, 26)
Specification