Backward-compatible integration of harmonic transposer for high frequency reconstruction of audio signals
The method addresses the challenge of high-frequency reconstruction in audio encoding by regenerating high-frequency bands using post-processing data, enhancing audio quality and spectral reproduction efficiency.
Patent Information
- Application Number
- TW114130997
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2017-03-23
- Filing Date
- 2018-02-07
- Publication Date
- 2026-07-11
- Estimated Expiration
- 2038-02-06
AI Technical Summary
Existing audio encoding technologies, such as MPEG-4 AAC, struggle with ideal high-frequency reconstruction for certain audio types, particularly music with low crossover frequencies, as spectral band reproduction techniques may not be effective.
The method involves decoding an encoded audio bitstream, filtering the low-frequency band signal, and regenerating the high-frequency band using high-frequency reconstruction post-processing data, with options for spectral transformation or harmonic transpose based on a flag, and combining the bands to form a broadband audio signal.
This approach enhances audio quality by efficiently regenerating high-frequency components, improving spectral band reproduction for various audio types, including music, with minimal impact on bit rate and decoder complexity.
Smart Images

Figure IMG-2_DRAW_114130997-A0304-14-0001-1 
Figure IMG-2_DRAW_114130997-A0304-14-0001-2 
Figure IMG-2_DRAW_114130997-A0304-14-0001-3
Abstract
Description
Technical Field
[0001] The embodiments relate to audio signal processing, and more specifically, to the encoding, decoding, or transcoding of audio bitstreams, wherein control data specifies that a basic form of high-frequency reconstruction ("HFR") or an enhanced form of HFR will be performed on the audio data. Prior Technology
[0002] A typical audio bitstream comprises audio data (e.g., encoded audio data) indicating one or more audio contents, and at least one characteristic of the audio data or audio contents, both of which are subsequently specified. One well-known format used to generate an encoded audio bitstream is the MPEG-4 Advanced Audio Coding (AAC) format described in the MPEG standard ISO / IEC 14496-3:2009. In the MPEG-4 standard, AAC stands for "Advanced Audio Coding," and HE-AAC stands for "High-Performance Advanced Audio Coding."
[0003] The MPEG-4 AAC standard defines several audio specifications that determine which objects and encoding tools exist in a compliant encoder or decoder. These three audio specifications are (1) the AAC specification, (2) the HE-AAC specification, and (3) the HE-AAC v2 specification. The AAC specification includes the AAC Low Complexity (or "AAC-LC") object type. The AAC-LC object is the counterpart of the MPEG-2 AAC Low Complexity specification (with some modifications) and does not include the Spectral Band Replication ("SBR") object type or the Parametric Stereo ("PS") object type. The HE-AAC specification is a superset of the AAC specifications and additionally includes the SBR object type. The HE-AAC v2 specification is a superset of the HE-AAC specifications and additionally includes the PS object type.
[0004] The SBR object type contains a spectrum patching tool, which is an important high-frequency reconstruction ("HFR") encoding tool that significantly improves the compression efficiency of perceptual audio codecs. SBR reconstructs (e.g., in the decoder) the high-frequency components of an audio signal on the receiver side. Therefore, the encoder only needs to encode and transmit the low-frequency components, allowing for much higher audio quality at lower data rates. SBR is based on the replication of harmonic sequences from previously truncated signals with limited available bandwidth to reduce data rates and control the data obtained by the encoder. The ratio between tone components and noise-like components is maintained by adaptive inverse filtering and, whereby, the addition of noise and sine waves. In the MPEG-4 AAC standard, the SBR tool performs spectrum patching (also known as linear transformation or spectrum transformation), where several consecutive quadrature mirror filter (QMF) subbands copy (or "patch") a low-frequency portion of an audio signal transmitted to a high-frequency portion of the audio signal generated in the decoder.
[0005] For certain audio types, such as music with relatively low crossover frequencies, spectral patching or linear transformation may not be ideal. Therefore, techniques for improving spectral band reproduction are needed. Summary of the Invention
[0006] A first embodiment relates to a method for decoding an encoded audio bitstream. The method includes receiving the encoded audio bitstream and decoding the audio data to generate a decoded low-frequency band audio signal. The method further includes extracting high-frequency reconstructed post-processing data and filtering the decoded low-frequency band audio signal using an analysis filter bank to generate a filtered low-frequency band audio signal. The method further includes extracting a flag indicating whether to perform a spectral transformation or harmonic transpose on the audio data, and regenerating a high-frequency band portion of the audio signal using the filtered low-frequency band audio signal and the high-frequency reconstructed post-processing data according to the flag. Finally, the method includes combining the filtered low-frequency band audio signal and the regenerated high-frequency band portion to form a broadband audio signal.
[0007] A second embodiment relates to an audio decoder for decoding an encoded audio bitstream. The decoder includes: an input interface for receiving the encoded audio bitstream, wherein the encoded audio bitstream includes audio data representing a low-frequency band portion of an audio signal; and a core decoder for decoding the audio data to generate a decoded low-frequency band audio signal. The decoder also includes: a deformatter for extracting high-frequency reconstruction post-processing data from the encoded audio bitstream, wherein the high-frequency reconstruction post-processing data includes operational parameters for linearly transforming a consecutive number of sub-bands from a low-frequency band portion of the audio signal to a high-frequency band portion of the audio signal; and an analysis filter bank for filtering the decoded low-frequency band audio signal to generate a filtered low-frequency band audio signal. The decoder further includes: a deformatter for extracting a flag from the encoded audio bitstream, the flag indicating whether to perform a linear transformation or harmonic transpose on the audio data; and a high-frequency regenerator for regenerating a high-frequency portion of the audio signal using the filtered low-frequency audio signal and the high-frequency reconstructed post-processing data according to the flag. Finally, the decoder includes a synthesis filter bank for combining the filtered low-frequency audio signal and the regenerated high-frequency portion to form a wideband audio signal.
[0008] Other types of embodiments relate to encoding and transcoding that include identifying whether enhanced spectrum band copy (eSBR) processing will be performed on the audio bitstream of the data. Simple Explanation of the Diagram
[0009] Figure 1 is a block diagram of one embodiment of a system that can be configured to perform one embodiment of the method of the present invention.
[0010] Figure 2 is a block diagram of an encoder, which is one of the embodiments of the audio processing unit of the present invention.
[0011] Figure 3 is a block diagram of a decoder, which is one embodiment of the audio processing unit of the present invention, and (as appropriate) a system that also includes a post-processor coupled thereto.
[0012] Figure 4 is a block diagram of one of the decoders in one embodiment of the audio processing unit of the present invention.
[0013] Figure 5 is a block diagram of a decoder, which is one of the embodiments of the audio processing unit of the present invention.
[0014] Figure 6 is a block diagram of another embodiment of the audio processing unit of the present invention.
[0015] Figure 7 is a diagram of a block of an MPEG-4 AAC bitstream containing its segmentation. Implementation
[0016] [ ] [Notes and naming] [ ] In this invention (including within the scope of the claims), the expression "to" a signal or data to perform an operation (e.g., filtering, scaling, transforming, or applying gain to the signal or data) is broadly used to mean performing the operation directly on the signal or data or on a processed version of the signal or data (e.g., on a version of the signal that has undergone initial filtering or preprocessing before the operation is performed on the signal).
[0017] In this invention (including within the scope of the claims), the term "audio processing unit" or "audio processor" is used broadly to refer to a system, device, or apparatus configured to process audio data. Examples of audio processing units include (but are not limited to) encoders, transcoders, decoders, codecs, preprocessing systems, post-processing systems, and bitstream processing systems (sometimes referred to as bitstream processing tools). In fact, all consumer electronic devices (such as mobile phones, televisions, laptops, and tablets) contain an audio processing unit or audio processor.
[0018] In this invention (including within the scope of the claims), the term "coupled" is used broadly to mean a direct or indirect connection. Thus, if a first device is coupled to a second device, the connection can be either a direct connection or an indirect connection via other devices and connectors. Furthermore, components integrated into or integrated with other components are also coupled to each other.
[0019] The MPEG-4 AAC standard envisions an encoded MPEG-4 AAC bitstream containing post-processing data indicating various types of High Frequency Reconstruction ("HFR") processing. This HFR processing is to be applied by a decoder (if any processing is applied) to decode the audio content of the bitstream and / or controls this HFR processing and / or indicates at least one feature or parameter of at least one HFR tool to be used to decode the audio content of the bitstream. In this document, we use the term "SBR post-processing data" to refer to this type of post-processing data described or mentioned in the MPEG-4 AAC standard and used in conjunction with Spectral Band Replication ("SBR"). As those skilled in the art will understand, SBR is a form of HFR.
[0020] [SBR] is preferably used as a dual-rate system, where the base codec operates at half the original sampling rate, while the SBR operates at the original sampling rate. The SBR encoder works in parallel with the base core codec, even at a higher sampling rate. Although the SBR is primarily a post-processing step in the decoder, it extracts important parameters from the encoder to ensure the most accurate high-frequency reconstruction in the decoder. The encoder estimates the spectral envelope of the SBR range, which is suitable for the time and frequency range / resolution of the current input signal segment. The spectral envelope is estimated by a complex QMF analysis and subsequent energy calculation. The time and frequency resolution of the spectral envelope can be chosen with a high degree of freedom to ensure the most suitable time and frequency resolution for a given input segment. Envelope estimation needs to consider that a transient in the original source, mainly located in the high-frequency region (e.g., a peak), will exist to a lesser extent in the high-frequency band generated by the SBR before envelope adjustment, because the high-frequency band in the decoder is based on a low-frequency band in which the transient is less significant compared to the high-frequency band. Compared to general spectral envelope estimation used in other audio coding algorithms, this approach places different requirements on the time-frequency resolution of the spectral envelope data.
[0021] In addition to the spectral envelope, several additional parameters representing the spectral characteristics of the input signal are extracted for different time and frequency regions. Given the specific set of control parameters, the encoder naturally accesses the original signal and information about how the SBR unit in the decoder will generate the high-frequency band. Therefore, the system can handle cases where the low-frequency band constitutes a strong harmonic series and the high-frequency band to be reproduced mainly consists of random signal components, and cases where strong tone components exist in the original high-frequency band without requiring the high-frequency band region to be based on its low-frequency counterpart. Furthermore, the operation of the SBR encoder is closely related to the underlying core codec to evaluate which frequency range should be covered by the SBR at a given time. For stereo signals, the SBR data is effectively encoded before transmission using entropy coding and channel dependence of the control data.
[0022] Control parameter extraction algorithms typically require careful tuning to the underlying codec based on a given bit rate and a given sampling rate. This is due to the fact that a lower bit rate usually implies a larger SBR range compared to a higher bit rate, and different sampling rates correspond to different temporal resolutions of the SBR frames.
[0023] An SBR decoder typically comprises several distinct components. These include a bitstream decoding module, a high-frequency reconstruction (HFR) module, an additional high-frequency component module, and an envelope adjuster module. The system is based on a complex-valued QMF filter bank. In the bitstream extraction module, control data is read from and decoded from the bitstream. Before reading the envelope data from the bitstream, the time-frequency grid of the current frame is obtained. The base core decoder decodes the audio signal of the current frame (even at a lower sampling rate) to generate time-domain audio samples. The resulting frame from the audio data is used for high-frequency reconstruction by the HFR module. Next, a QMF filter bank is used to analyze and decode the low-frequency band signal. Subsequently, high-frequency reconstruction and envelope adjustment are performed on the sub-band samples of the QMF filter bank. The high frequencies are reconstructed from the low-frequency band in a flexible manner based on given control parameters. Furthermore, the reconstructed high-frequency band is adaptively filtered on a sub-band channel basis according to the control data to ensure appropriate spectral characteristics for a given time / frequency region.
[0024] The top layer of an MPEG-4 AAC bitstream is a sequence of data blocks (“raw_data_block” elements). Each data block is a segment of data (referred to herein as a “block”) containing audio data (typically used for a period of 1024 or 960 samples) and related information and / or other data. In this document, we use the term “block” to refer to a segment of an MPEG-4 AAC bitstream that includes audio data (and corresponding meta data and, where applicable, other related data) comprising one (but no more than one) “raw_data_block” element.
[0025] Each block of an MPEG-4 AAC bitstream can contain several syntax elements (each syntax element is also materialized as a segment of data in the bitstream). The MPEG-4 AAC standard defines seven types of these syntax elements. Each syntax element is identified by a different value of the data element "id_syn_ele". Instances of syntax elements include a "single_channel_element()", a "channel_pair_element()", and a "fill_element()". A single-channel element is a container containing audio data from a single audio channel (a single-tone audio signal). A channel-pair element contains audio data from two audio channels (i.e., a stereo audio signal).
[0026] A padding element is a container of information containing an identifier (e.g., the value of the element "id_syn_ele" mentioned above), followed by data (referred to as "padding data"). Padding elements have historically been used to adjust the instantaneous bit rate of a bitstream to be transmitted over a constant-rate channel. By adding an appropriate amount of padding data to each block, a constant data rate can be achieved.
[0027] According to embodiments of the present invention, the padding data may include one or more types of extended payloads that extend the data (e.g., post-data) that can be transmitted in a bitstream. Depending on the situation, a decoder receiving a bitstream with padding data containing a novel type of data may be used by a device (e.g., a decoder) receiving the bitstream to extend the functionality of that device. Therefore, as will be appreciated by those skilled in the art, the padding element is a special type of data structure and differs from data structures typically used for transmitting audio data (e.g., audio payloads containing channel data).
[0028] In some embodiments of the present invention, the identifier used to identify a padding element may consist of a three-bit unsigned integer consisting of the first transmitted most significant bit ("uimsbf") with a value of 0×6. Within a block, several instances of the same type of syntax element (e.g., several padding elements) may appear.
[0029] Another standard used for encoding bitstream audio is the MPEG Unified Speech and Audio Coding (USAC) standard (ISO / IEC 23003-3:2012). The MPEG USAC standard describes the encoding and decoding of audio content using spectrum band copy processing (including SBR processing as described in the MPEG-4 AAC standard, and also including other enhancements to spectrum band copy processing). This processing applies an extended and enhanced version of the SBR toolset described in the MPEG-4 AAC standard, the spectrum band copy tool (sometimes referred to herein as the "enhanced SBR tool" or "eSBR tool"). Therefore, eSBR (as defined in the USAC standard) is an improvement upon SBR (as defined in the MPEG-4 AAC standard).
[0030] In this document, we use the term "enhanced SBR processing" (or "eSBR processing") to refer to spectral band copying processing using at least one eSBR tool not described or mentioned in the MPEG-4 AAC standard (e.g., at least one eSBR tool described or mentioned in the MPEG USAC standard). Examples of such eSBR tools are harmonic transpose and QMF patching additional preprocessing or "pre-flattening".
[0031] The [integer] order T harmonic transpose maps a sine wave with frequency ω to a sine wave with frequency Tω, while preserving the signal duration. Three orders (T = 2, 3, 4) are typically used in the sequence to generate portions of the desired output frequency range using the minimum possible transpose order. If a fourth order output above the transpose range is required, it can be generated by frequency shifting. When possible, a near-critical sampling fundamental band time domain is generated for processing to minimize computational complexity.
[0032] A bitstream generated by the MPEG USAC standard (sometimes referred to herein as a "USAC bitstream") contains encoded audio content and typically includes post-processing data of various types of spectrum band copying to indicate which decoder will be used to decode the audio content of the USAC bitstream, and / or post-processing data of at least one feature or parameter of at least one SBR tool and / or eSBR tool to be used to decode the audio content of the USAC bitstream.
[0033] In this document, we use the term "enhanced SBR post-processing data" (or "eSBR post-processing data") to indicate post-processing data for various types of spectrum band copying processes, which are applied by a decoder to decode the audio content of an encoded audio bitstream (e.g., a USAC bitstream), and / or to control this spectrum band copying process, and / or to indicate at least one feature or parameter of at least one SBR tool and / or eSBR tool to be used to decode this audio content but not described or mentioned in the MPEG-4 AAC standard. An example of eSBR post-processing data is post-processing data described or mentioned in the MPEG USAC standard but not described or mentioned in the MPEG-4 AAC standard (indicating or used to control spectrum band copying processes). Therefore, eSBR post-processing data in this document does not refer to post-processing data for SBR post-processing data, and SBR post-processing data in this document does not refer to post-processing data for eSBR post-processing data.
[0034] A USAC bitstream may contain both SBR post-processing data and eSBR post-processing data. More specifically, a SAC bitstream may contain eSBR post-processing data that controls eSBR processing performed by a decoder and SBR post-processing data that controls the decoder to perform SBR processing. According to a typical embodiment of the invention, eSBR post-processing data (e.g., eSBR specific configuration data) is contained (according to the invention) in an MPEG-4 AAC bitstream (e.g., in an sbr_extension() container at the end of an SBR payload).
[0035] During the decoding of an encoded bitstream using an eSBR toolset (including at least one eSBR tool), eSBR processing performed by a decoder regenerates the high-frequency band of the audio signal based on the replication of the harmonic sequence truncated during encoding. This eSBR processing typically adjusts the spectral envelope of the generated high-frequency band and applies inverse filtering, and adds noise and sinusoidal components to reproduce the spectral characteristics of the original audio signal.
[0036] According to a typical embodiment of the present invention, eSBR post-data is included (e.g., a small number of control bits of the eSBR post-data) in one or more post-data segments of an encoded audio bitstream (e.g., an MPEG-4 AAC bitstream) that also includes other segments (audio data segments). Typically, at least one of these post-data segments in each block of the bitstream is (or includes) a padding element (containing an identifier indicating the start of the padding element), and the eSBR post-data is included in the padding element following the identifier.
[0037] Figure 1 is a block diagram of an exemplary audio processing chain (an audio data processing system), wherein one or more of the components of the system can be configured according to an embodiment of the present invention. The system includes the following components coupled together as shown in the figure: encoder 1, transport subsystem 2, decoder 3, and post-processing unit 4. In variations of the system shown in the figure, one or more components may be omitted or additional audio data processing units may be included.
[0038] In some implementations, encoder 1 (which may include a preprocessing unit) is configured to accept PCM (time-domain) samples, including audio content as input, and output an encoded audio bitstream (with a format conforming to the MPEG-4 AAC standard) indicating the audio content. The data in the bitstream indicating the audio content is sometimes referred to herein as "audio data" or "encoded audio data." If the encoder is configured according to a typical embodiment of the invention, the audio bitstream output from the encoder includes eSBR post-processing data (and typically also other post-processing data) and the audio data.
[0039] One or more encoded audio bitstreams output by the autoencoder 1 can be identified as encoded audio transmission subsystem 2. Subsystem 2 is configured to store and / or transmit each encoded bitstream output by the autoencoder 1. One encoded audio bitstream output by the autoencoder 1 can be stored by subsystem 2 (e.g., in the form of a DVD or Blu-ray disc) or transmitted by subsystem 2 (which may implement a transmission link or network), or can be both stored and transmitted by subsystem 2.
[0040] Decoder 3 is configured to decode an encoded MPEG-4 AAC audio bitstream (generated by encoder 1) received via subsystem 2. In some embodiments, decoder 3 is configured to extract eSBR post-processing data from each block of the bitstream and decode the bitstream (including performing eSBR processing using the extracted eSBR post-processing data) to produce decoded audio data (e.g., a stream of decoded PCM audio samples). In some embodiments, decoder 3 is configured to extract SBR post-processing data from the bitstream (but ignore the eSBR post-processing data contained in the bitstream) and decode the bitstream (including performing SBR processing using the extracted SBR post-processing data) to produce decoded audio data (e.g., a stream of decoded PCM audio samples). Typically, decoder 3 includes (e.g., in a non-temporary manner) a buffer that stores segments of the encoded audio bitstream received from subsystem 2.
[0041] The post-processing unit 4 in Figure 1 is configured to receive one stream of decoded audio data (e.g., a decoded PCM audio sample) from the decoder 3 and perform post-processing on the decoded audio data. The post-processing unit can also be configured to display the post-processed audio content (or the decoded audio received from the decoder 3) for playback by one or more speakers.
[0042] Figure 2 is a block diagram of an encoder (100) as one embodiment of the audio processing unit of the present invention. Any component or element of the encoder 100 may be implemented in hardware, software, or a combination of hardware and software as one or more programs and / or one or more circuits (e.g., ASIC, FPGA, or other integrated circuits). The encoder 100 includes an encoder 105, a stuffer / formatter stage 107, a post-data generation stage 106, and a buffer memory 109, connected as shown. Typically, the encoder 100 also includes other processing elements (not shown). The encoder 100 is configured to convert an input audio bitstream into an encoded output MPEG-4 bitstream.
[0043] The post-data generator 106 is coupled and configured to generate (and / or pass to stage 107) the post-data (including eSBR post-data and SBR post-data) in the encoded bit stream to be output by the encoder 100.
[0044] [Encoder] 105 is coupled and configured to encode input audio data (e.g., by compressing the input audio data), and the resulting encoded audio is verified to stage 107 to be included in the encoded bitstream to be output from stage 107.
[0045] [Stage] 107 is configured to multiplex encoded audio from encoder 105 and post-processing data (including eSBR post-processing data and SBR post-processing data) from generator 106 to generate an encoded bitstream to be output from stage 107, preferably such that the encoded bitstream has a format as specified in one embodiment of the present invention.
[0046] [Buffer memory] 109 is configured to store at least one block of the encoded audio bitstream output from stage 107 (e.g., in a non-temporary manner), and then a sequence of blocks of the encoded audio bitstream is verified from buffer memory 109 as the output of the encoder 100 to a delivery system.
[0047] Figure 3 is a block diagram of a decoder (200) and (where applicable) a post-processor (300) coupled thereto, representing one embodiment of the audio processing unit of the present invention. Any component or element of the decoder 200 may be implemented in hardware, software, or a combination of hardware and software as one or more programs and / or one or more circuits (e.g., ASIC, FPGA, or other integrated circuits). The decoder 200 includes a buffer memory 201, a bitstream load deformatter (parser) 205, an audio decoding subsystem 202 (sometimes referred to as a "core" decoding stage or "core" decoding subsystem), an eSBR processing stage 203, and a control bit generation stage 204, all connected as shown in the figure. Typically, the decoder 200 also includes other processing elements (not shown in the figure).
[0048] Buffer memory (buffer) 201 (e.g., in a non-temporary manner) stores an encoded MPEG-4 AAC audio bitstream received by decoder 200. During the operation of decoder 200, a sequence of blocks of the bitstream is verified from buffer 201 to deformatter 205.
[0049] In a variation of the embodiment of Figure 3 (or the embodiment of Figure 4 to be described), one of the APUs that is not a decoder (e.g., APU 500 of Figure 6) includes (e.g., in a non-temporary manner) a buffer memory (e.g., the same as the buffer memory of buffer 201) storing at least one block of an encoded audio bitstream of the same type (e.g., an MPEG-4 AAC audio bitstream) received by buffer 201 of Figure 3 or Figure 4 (i.e., an encoded audio bitstream containing eSBR post-processing data).
[0050] Referring again to Figure 3, the deformatter 205 is coupled and configured to decompose each block of the multi-bit stream to extract SBR post-processing data (including quantized envelope data) and eSBR post-processing data (and usually other post-processing data) from each block to verify at least the eSBR post-processing data and SBR post-processing data to the eSBR processing stage 203, and usually also to verify other extracted post-processing data to the decoding subsystem 202 (and, depending on the situation, may also be controlled in the bit generator 204). The deformatter 205 is also coupled and configured to extract audio data from each block of the bit stream and verify the extracted audio data to the decoding subsystem (decoding stage) 202.
[0051] Depending on the situation, the system in Figure 3 may also include a post-processor 300. The post-processor 300 includes a buffer memory (buffer) 301 and other processing elements (not shown) including at least one processing element coupled to the buffer 301. The buffer 301 (e.g., in a non-transitory manner) stores at least one block (frame) of decoded audio data received by the post-processor 300 from the decoder 200. The processing elements of the post-processor 300 are coupled and configured to receive and adaptively process a sequence of blocks (or frames) of encoded audio output from the buffer 301 using the post-decoding subsystem 202 (and / or deformatter 205) outputting post-processing data and / or the control bits output by stage 204 of the decoder 200.
[0052] The audio decoding subsystem 202 of decoder 200 is configured to decode the audio data extracted by parser 205 (this decoding can be referred to as a "core" decoding operation) to generate decoded audio data, and validate the decoded audio data to eSBR processing stage 203. Decoding is performed in the frequency domain and typically includes inverse quantization followed by spectral processing. Typically, one final stage of processing in subsystem 202 applies a frequency-to-time domain transformation to the decoded frequency-domain audio data, such that the subsystem output is time-domain decoded audio data. Stage 203 is configured to apply the SBR tools and eSBR tools indicated by eSBR post-processing data and eSBR (extracted by parser 205) to the decoded audio data (i.e., performing SBR and eSBR processing on the output of decoding subsystem 202 using SBR and eSBR post-processing data) to generate fully decoded audio data from the output of decoder 200 (e.g., output to post-processor 300). Typically, decoder 200 includes a memory (accessible by subsystem 202 and stage 203) storing deformatted audio data and post-processing data output from deformatter 205. Stage 203 is configured to access audio data and post-processing data (including SBR and eSBR post-processing data) as needed during SBR and eSBR processing. The SBR and eSBR processing in stage 203 can be considered as post-processing of the output of core decoding subsystem 202. Depending on the situation, decoder 200 may also include a final upmixing subsystem coupled and configured to perform upmixing on the output of stage 203 to produce a fully decoded upmixed audio signal from decoder 200 (which may use the PS post-processing data extracted by deformatter 205 and / or control bits generated in subsystem 202 to apply the parametric stereo ("PS") tool defined in the MPEG-4 AAC standard). Alternatively, the post-processor 300 is configured to perform upmixing on the output of the decoder 200 (e.g., using PS post-processor data extracted by the deformatter 205 and / or control bits generated in the subsystem 202).
[0053] [Response] After post-processing data extracted by deformatter 205, control bit generator 204 can generate control data, which can be used within decoder 200 (e.g., in a final upmixing subsystem) and / or validated as output of decoder 200 (e.g., output to postprocessor 300 for use in post-processing). In response to after-processing data extracted from the input bitstream (and, where appropriate, also to control data), stage 204 can generate (and validate to postprocessor 300) control bits indicating that the decoded audio data output from eSBR processing stage 203 should undergo a specific type of post-processing. In some embodiments, decoder 200 is configured to validate after-processing data extracted from the input bitstream by deformatter 205 to postprocessor 300, and postprocessor 300 is configured to use the after-processing data to perform post-processing on the decoded audio data output from decoder 200.
[0054] Figure 4 is a block diagram of an audio processing unit (“APU”) (210) as another embodiment of the audio processing unit of the present invention. The APU 210 is an unconfigured legacy decoder performing eSBR processing. Any component or element of the APU 210 may be implemented in hardware, software, or a combination of hardware and software as one or more programs and / or one or more circuits (e.g., ASIC, FPGA, or other integrated circuits). The APU 210 includes a buffer memory 201, a bitstream payload deformatter (parser) 215, an audio decoding subsystem 202 (sometimes referred to as a “core” decoding stage or “core” decoding subsystem), and an SBR processing stage 213 connected as shown in the figure. Typically, the APU 210 also includes other processing elements (not shown in the figure). The APU 210 may represent, for example, an audio encoder, decoder, or transcoder.
[0055] Elements 201 and 202 of the [APU] 210 are identical to the numbered elements of the decoder 200 (Figure 3) and will not repeat the above description of these elements. In the operation of the APU 210, a sequence of blocks of an encoded audio bitstream (an MPEG-4 AAC bitstream) received by the APU 210 is verified from buffer 201 to deformatter 215.
[0056] Deformatter 215 is coupled and configured to decompose blocks of a multi-bit stream to extract SBR post-processing data (including quantized envelope data) from the blocks and typically also extracts other post-processing data from the blocks, but ignores eSBR post-processing data that may be included in the bit stream according to any embodiment of the present invention. Deformatter 215 is configured to validate at least the SBR post-processing data to the SBR processing stage 213. Deformatter 215 is also coupled and configured to extract audio data from each block of the bit stream and validate the extracted audio data to the decoding subsystem (decoding stage) 202.
[0057] The audio decoding subsystem 202 of the decoder 200 is configured to decode the audio data extracted by the deformatter 215 (this decoding may refer to a "core" decoding operation) to produce decoded audio data and validate the decoded audio data to the SBR processing stage 213. Decoding is performed in the frequency domain. Typically, one of the final stages of processing in subsystem 202 applies a frequency-to-time domain transformation to the decoded frequency-domain audio data, such that the subsystem output is time-domain decoded audio data. Stage 213 is configured to apply the SBR tool (but not the eSBR tool) indicated by the SBR post-processor data (extracted by the deformatter 215) to the decoded audio data (i.e., perform SBR processing on the output of the decoding subsystem 202 using the SBR post-processor data) to produce fully decoded audio data from the APU 210 output (e.g., output to the post-processor 300). Typically, APU 210 includes a memory (accessible by subsystem 202 and stage 213) storing deformatted audio data and post-processing data output from deformatter 215. Stage 213 is configured to access audio data and post-processing data (including SBR post-processing data) as needed during SBR processing. SBR processing in stage 213 can be considered as post-processing of the output of core decoding subsystem 202. Depending on the situation, APU 210 may also include a final upmixing subsystem (which can use PS post-processing data extracted by deformatter 215 to apply the parametric stereo ("PS") tool defined in the MPEG-4 AAC standard) coupled and configured to perform upmixing on the output of stage 213 to produce fully decoded upmixed audio from the APU 210 output. Alternatively, a post-processor is configured to perform upmixing on the output of APU 210 (e.g., using PS post-processor data extracted by deformatter 215 and / or control bits generated in APU 210).
[0058] Various implementations of the encoder 100, decoder 200, and APU 210 are configured to perform different embodiments of the method of the present invention.
[0059] According to some embodiments, eSBR post-processing data is contained (e.g., a small number of control bits of the eSBR post-processing data) in an encoded audio bitstream (e.g., an MPEG-4 AAC bitstream), allowing legacy decoders (those not configured to analyze the eSBR post-processing data, or using any eSBR tools with respect to the eSBR post-processing data) to ignore the eSBR post-processing data, but still decode the bitstream to the extent possible without using the eSBR post-processing data with respect to the eSBR post-processing data or any eSBR tools (typically without any significant loss in decoded audio quality). However, eSBR decoders configured to analyze the bitstream to identify the eSBR post-processing data and using at least one eSBR tool in response to the eSBR post-processing data will enjoy the benefits of using at least one such eSBR tool. Therefore, embodiments of the present invention provide a method for efficiently transmitting enhanced spectrum band replication (eSBR) control data or post-processing data in a backtracking compatible manner.
[0060] [Typically], the eSBR post-data in a bitstream indicates one or more of the following eSBR tools (which are described in the MPEG USAC standard and may or may not have been applied by an encoder during the generation of the bitstream) (e.g., indicating at least one feature or parameter of one or more of the following eSBR tools): ●Harmonic transposition; and ●QMF patching additional post-processing (pre-flattening).
[0061] [For example], the eSBR post-processing data contained in the bitstream can indicate the values of parameters (described in the MPEG USAC standard and this invention): sbrPatchingMode[ch], sbrOversamplingFlag[ch], sbrPitchInBins[ch], sbrPitchInBins[ch], and bs_sbr_preprocessing.
[0062] In this paper, the notation X[ch] (where X is a parameter) indicates that the parameter is related to the channel ("ch") of the audio content of an encoded bitstream to be decoded. For simplicity, we sometimes omit the expression "ch" and assume that the relevant parameter is related to the channel of the audio content.
[0063] In this paper, the notation X[ch][env] (where X is a parameter) denotes that the parameter is the SBR envelope ("env") of the channel ("ch") of the audio content of the encoded bitstream to be decoded. For simplicity, we sometimes omit the expressions "env" and "ch" and assume that the relevant parameter is the SBR envelope of one channel of the audio content.
[0064] During the decoding of an encoded bitstream, the harmonic transposition performed during one of the eSBR processing stages of decoding (in terms of each channel "ch" of the audio content indicated by the bitstream) is controlled by the following eSBR post-data parameters: sbrPatchingMode[ch], sbrOversamplingFlag[ch], sbrPitchInBinsFlag[ch], and sbrPitchInBins[ch].
[0065] The value "sbrPatchingMode[ch]" indicates the transpose type used in the eSBR: sbrPatchingMode[ch] = 1 indicates non-harmonic patching as described in section 4.6.18.6.3 of the MPEG-4 AAC standard; sbrPatchingMode[ch] = 0 indicates harmonic SBR patching as described in section 7.5.3 or 7.5.4 of the MPEG USAC standard.
[0066] The value "sbrOversamplingFlag[ch]" indicates the combined use of adaptive frequency domain oversampling in eSBR and DFT-based harmonic SBR patching as described in Section 7.5.3 of the MPEG USAC standard. This flag controls the size of the DFT used in the transposer: 1 indicates that adaptive frequency domain oversampling is enabled as described in Section 7.5.3.1 of the MPEG USAC standard; 0 indicates that adaptive frequency domain oversampling is disabled as described in Section 7.5.3.1 of the MPEG USAC standard.
[0067] The value "sbrPitchInBinsFlag[ch]" controls the interpretation of the sbrPitchInBins[ch] parameter: 1 indicates that the value in sbrPitchInBins[ch] is valid and greater than zero; 0 indicates that the value of sbrPitchInBins[ch] is set to zero.
[0068] The value "sbrPitchInBins[ch]" controls the addition of the cross-product term in the SBr harmonic transposer. The value sbrPitchinBins[ch] is an integer value in the range [0, 127] and represents the distance measured in a frequency grid of a 1536-line DFT applied at the sampling frequency of the core encoder.
[0069] In the case where an MPEG-4 AAC bitstream indicates that its channels are not coupled to one SBR channel pair (rather than a single SBR channel), the bitstream indicates two instances of the above syntax (for harmonic transpose or non-harmonic transpose), each instance for each channel of sbr_channel_pair_element().
[0070] Harmonic transposition in eSBR tools typically improves the quality of decoded music signals at relatively low crossover frequencies. Non-harmonic transposition (i.e., legacy spectrum patching) typically improves speech signals. Therefore, one starting point for determining which type of transposition is better for encoding specific audio content depends on the speech / music detection method used, where harmonic transposition is applied to music content and spectrum patching is applied to speech content.
[0071] During eSBR processing, the performance of pre-flattening depends on the value of a single eSBR post-processing parameter called "bs_sbr_preprocessing," which controls the execution of pre-flattening. When using the SBR QMF patching algorithm as described in Section 4.6.18.6.3 of the MPEG-4 AAC standard, the pre-flattening step can be performed (as indicated by the "bs_sbr_preprocessing" parameter) to avoid discontinuities in the shape of the spectral envelope of a high-frequency signal input to a subsequent envelope adjuster (which performs another stage of eSBR processing). Pre-flattening typically improves the operation of subsequent envelope adjustment stages, resulting in a perceived more stable high-frequency band signal.
[0072] The total bit rate requirement included in the MPEG-4 AAC bitstream eSBR post-processing data, which is one of the aforementioned eSBR tools (harmonic transpose and pre-flattening), is expected to be approximately several hundred bits per second. This is because only differential control data requiring eSBR processing is transmitted according to some embodiments of the invention. Legacy decoders can ignore this information because they include it in a backtracking-compatible manner (as explained later). Therefore, the detrimental effect on the bit rate associated with the inclusion of eSBR post-processing data is negligible for several reasons, including the following: ● The bit rate loss (attributed to the inclusion of eSBR post-processing data) is a very small fraction of the total bit rate. This is because only differential control data requiring eSBR processing is transmitted (not a broadcast of SBR control data); and ● The tuning of SBR-related control information typically does not depend on transpose details.
[0073] Therefore, embodiments of the present invention provide a method for efficiently transmitting enhanced spectrum band replication (eSBR) control data or meta data in a backtracking compatible manner. This efficient transmission of eSBR control data reduces memory requirements in decoders, encoders, and transcoders employing the present invention, while having no tangible adverse effects on bit rate. Furthermore, it also reduces the complexity and processing requirements associated with implementing eSBR according to embodiments of the present invention, because SBR data only needs to be processed once rather than broadcast. If eSBR is considered a completely separate object type in MPEG-4 AAC, rather than being integrated into the MPEG-4 AAC codec in a backtracking compatible manner, then SBR data only needs to be processed once rather than broadcast.
[0074] [Next], referring to FIG7, we describe the elements of an eSBR post-processing data contained in a block ("raw_data_block") of an MPEG-4 AAC bitstream according to some embodiments of the present invention. FIG7 is a diagram showing a block ("raw_data_block") of an MPEG-4 AAC bitstream of some segments of an MPEG-4 AAC bitstream.
[0075] A block of an MPEG-4 AAC bitstream may contain at least one "single_channel_element()" (e.g., a single-channel element shown in Figure 7) and / or at least one "channel_pair_element()" (not specifically shown in Figure 7, but it may exist), which contains audio data of an audio program. The block may also contain several "fill_elements" (e.g., fill element 1 and / or fill element 2 in Figure 7) containing data related to the program (e.g., post-processing data). Each "single_channel_element()" contains an identifier indicating the start of a single-channel element (e.g., "ID1" in Figure 7) and may contain audio data indicating different channels of a multi-channel audio program. Each "channel_pair_element()" contains an identifier indicating the start of a channel pair element (not shown in Figure 7) and may contain audio data of at least two channels of the program.
[0076] A fill_element (referred to herein as a fill element) in an MPEG-4 AAC bitstream contains an identifier (“ID2” in Figure 7) indicating the start of a fill element and the fill data following that identifier. The identifier ID2 may consist of a three-bit unsigned integer having a 0×6 value for the first transmitted most significant bit (“uimsbf”). The fill data may contain an extension_payload() element (sometimes referred to herein as an extension payload) whose syntax is shown in Table 4.57 of the MPEG-4 AAC standard. Several types of extension payloads exist and are identified by the “extension_type” parameter, which is a four-bit unsigned integer for the first transmitted most significant bit (“uimsbf”).
[0077] [Padding] data (e.g., an extension payload of padding data) may contain a header or identifier (e.g., "Header 1" in Figure 7) indicating a segment of padding data. The padding data indicates an SBR object (i.e., the header initialization refers to an "SBR object" type in sbr_extension_data() in the MPEG-4 AAC standard). For example, a Spectral Band Replication (SBR) extension payload is identified using the value of "1101" or "1110" in the extension_type field of the header, where the identifier "1101" identifies an extension payload with SBR data and "1110" uses a cyclic redundancy check (CRC) to identify an extension payload with SBR data to verify the correctness of the SBR data.
[0078] When a header (e.g., the extension_type field) initializes an SBR object type, the SBR post-data (sometimes referred to herein as "bandwidth copy data" and in the MPEG-4 AAC standard as sbr_data()) follows the header, and at least one bandwidth copy extension element (e.g., the "SBR extension element" of padding element 1 in Figure 7) may follow the SBR post-data. This bandwidth copy extension element (a segment of the bitstream) refers to one of the "sbr_extension()" containers in the MPEG-4 AAC standard. Where appropriate, a bandwidth copy extension element contains a header (e.g., the "SBR extension header" of padding element 1 in Figure 7).
[0079] The MPEG-4 AAC standard envisions a spectrum band copy extension element that can contain PS (parametric stereo) data of a program's audio data. The MPEG-4 AAC standard envisions that when the header of a pad element (one of its extension payloads) is initialized with an SBR object type ("Header 1" in Figure 7 is also initialized with an SBR object type) and one of the pad elements' spectrum band copy extension elements contains PS data, the pad element (e.g., the extension payload of the pad element) contains spectrum band copy data, and its value (i.e., bs_extension_id = 2) indicates that one of the "bs_extension_id" parameters in the spectrum band copy extension element of the PS data is included in the spectrum band copy extension element of the pad element.
[0080] [According to] some embodiments of the present invention, eSBR post-processing data (e.g., a flag indicating whether enhanced spectrum band replication (eSBR) processing will be performed on the audio content of a block) is included in a spectrum band replication extension element of a padding element. For example, this flag is indicated in padding element 1 of FIG. 7, where the flag appears after the header of the "SBR extension element" of padding element 1 (the "SBR extension header" of padding element 1). This flag and additional eSBR post-processing data are included in the spectrum band replication extension element after the header of the spectrum band replication extension element (e.g., in the SBR extension element of padding element 1 of FIG. 7, after the SBR extension header). According to some embodiments of the present invention, a padding element containing eSBR post-processing data also includes a "bs_extension_id" parameter whose value (e.g., bs_extension_id = 3) indicates that eSBR post-processing data is included in the padding element and that eSBR processing will be performed on the audio content of the relevant block.
[0081] [According to] some embodiments of the present invention, in addition to being contained in a Spectral Band Replication Extension (SBR Extension) element of a padding element, the eSBR post-processing data is contained in the padding element (e.g., padding element 2 in FIG. 7) of an MPEG-4 AAC bitstream. This is because an extension_payload() padding element containing SBR data or SBR data containing a CRC does not contain any other extension payload of any other extension type. Therefore, in embodiments where the eSBR post-processing data is stored in its own extension payload, a separate padding element is used to store the eSBR post-processing data. This padding element contains an identifier indicating the start of a padding element (e.g., "ID2" in FIG. 7) and the padding data following the identifier. The padding data may contain an extension_payload() element (sometimes referred to herein as an extension payload) whose syntax is shown in Table 4.57 of the MPEG-4 AAC standard. The padding data (e.g., an extended payload of the padding data) includes a header indicating an eSBR object (e.g., "Header 2" of padding element 2 in FIG. 7) (i.e., the header initializes an Enhanced Spectral Band Replication (eSBR) object type), and the padding data (e.g., an extended payload of the padding data) includes eSBR post-processing data following the header. For example, padding element 2 in FIG. 7 includes this header ("Header 2") and also includes eSBR post-processing data following the header (i.e., a "flag" in padding element 2 that indicates whether Enhanced Spectral Band Replication (eSBR) processing will be performed on the audio content of the block). Where appropriate, additional eSBR post-processing data following Header 2 is also included in the padding data of padding element 2 in FIG. 7. In the embodiments described in this paragraph, the header (e.g., header 2 of FIG7) has an identification value that is not one of the known values specified in Table 4.57 of the MPEG-4 AAC standard, and instead indicates an eSBR extension payload (such that the extension_type field of the header indicates that the fill data includes eSBR post-data).
[0082] In a first embodiment, the present invention is an audio processing unit (e.g., a decoder) comprising: A memory (e.g., buffer 201 of Figure 3 or 4) is configured to store at least one block of an encoded audio bitstream (e.g., at least one block of an MPEG-4 AAC bitstream); A bitrate load deformatter (e.g., element 205 of FIG. 3 or element 215 of FIG. 4), coupled to the memory and configured to demultiplex at least a portion of the block of the bitstream; and A decoding subsystem (e.g., elements 202 and 203 of FIG. 3, or elements 202 and 213 of FIG. 4) is coupled and configured to decode at least a portion of a block of the bitstream, wherein the block comprises: A padding element comprising an identifier indicating the start of the padding element (e.g., the "id_syn_ele" identifier with a value of 0×6 in Table 4.85 of the MPEG-4 AAC standard) and padding data following the identifier, wherein the padding data comprises: At least one flag indicates whether enhanced spectrum band replication (eSBR) processing will be performed on the audio content of the block (e.g., using spectrum band replication data and eSBR post-data contained in the block).
[0083] This flag is eSBR post-processing data, and one instance of this flag is the sbrPatchingMode flag. Another instance of this flag is the harmonicSBR flag. Both of these flags indicate whether a basic form of spectrum band copying or an enhanced form of spectrum band copying will be performed on the audio data of this block. The basic form of spectrum band copying is spectrum patching, while the enhanced form of spectrum band copying is harmonic transpose.
[0084] In some embodiments, the padding data also includes additional eSBR post-data (i.e., eSBR post-data other than the flag).
[0085] The memory may be (e.g., in a non-temporary manner) a buffer memory that stores at least one block of the encoded audio bitstream (e.g., one embodiment of buffer 201 in FIG4).
[0086] We estimate that the complexity of performing eSBR processing (using eSBR harmonic transpose and pre-flattening) by an eSBR decoder during the decoding of an MPEG-4 AAC bitstream containing eSBR post-processing data (indicating such eSBR tools) will be as follows (for typical decoding with the indicated parameters): ● Harmonic transposition (16 kbps, 14400 / 28800 Hz) Based on DFT: 3.68 WMOPS (millions of weighted computations per second); Based on QMF: 0.98 WMOPS; ●QMF patch pretreatment (pre-flattening): 0.1 WMOPS.
[0087] We know that, instantaneously, transpose with DFT generally performs better than transpose based on QMF.
[0088] According to some embodiments of the present invention, a padding element containing eSBR post-processing data (of an encoded audio bitstream) also includes a value (e.g., bs_extension_id = 3) that indicates that the eSBR post-processing data is contained in the padding element and that eSBR processing will be performed on the audio content of the relevant block (e.g., a "bs_extension_id" parameter) and / or its value (e.g., bs_extension_id = 2) that indicates that one of the sbr_extension() containers of the padding element contains PS data (e.g., the same "bs_extension_id" parameter). For example, as indicated in Table 1 below, this parameter having a value of bs_extension_id = 2 indicates that one of the sbr_extension() containers of the padding element contains PS data, and this parameter having a value of bs_extension_id = 3 indicates that one of the sbr_extension() containers of the padding element contains eSBR post-processing data. Table 1 [bs_extension_id] [significance] 0 reserve 1 reserve 2 EXTENSION_ID_PS 3 EXTENSION_ID_ESBR
[0089] According to some embodiments of the present invention, the syntax of each band copy extension element containing eSBR post-data and / or PS data is indicated in Table 2 below (where "sbr_extension()" represents one of the containers in the band copy extension element, "bs_extension_id" is as described in Table 1 above, "ps_data" represents PS data, and "esbr_data" represents eSBR post-data): Table 2 sbr_extension(bs_extension_id, num_bits_left) { switch (bs_extension_id) { case EXTENSION_ID_PS: num_bits_left -= ps_data(); Note 1 break case EXTENSION_ID_ESBR: num_bits_left -= esbr_data(); Note 2 break default: [ bs_fill_bits]; [ ] num_bits_left = 0; break } } Note 1: ps_data() returns the number of bits read. Note 2: esbr_data() returns the number of bits read.
[0090] In one exemplary embodiment, the esbr_data() function in Table 2 above indicates the values of the following post-data parameters: 1. A one-bit post-processing data parameter "bs_sbr_preprocessing"; and 2. Regarding each channel ("ch") of the audio content of the encoded bitstream to be decoded, the above parameters are: "sbrPatchingMode[ch]", "sbrOversamplingFlag[ch]", "sbrPitchInBinsFlag[ch]" and "sbrPitchInBins[ch]".
[0091] For example, in some embodiments, esbr_data() may have the syntax indicated in Table 3 to indicate such meta data parameters: Table 3 grammar Number of bits esbr_data(id_aac, bs_coupling) { [bs_sbr_preprocessing]; [1] [ ]if (id_aac == ID_SCE) { if ( [sbrPatchingMode[0] ]== 0) { [1] [ sbrOversamplingFlag[0];] [1] if ( [sbrPitchInBinsFlag[0]]) [1] [ sbrPitchInBins[0]]; [7] else sbrPitchInBins[0] = 0; } else { sbrOversamplingFlag[0] = 0; sbrPitchInBins[0] = 0; } } else if (id_aac == ID_CPE) { If (bs_coupling) { if ( [sbrPatchingMode[0,1] ]== 0) { [1] [ ] [sbrOversamplingFlag[0,1];] [1] if ( [sbrPitchInBinsFlag[0,1]]) [1] [ ] [ sbrPitchInBins[0,1]]; [7] else sbrPitchInBins[0,1] = 0; } else { sbrOversamplingFlag[0,1] = 0; sbrPitchInBins[0,1] = 0; } } else { / * bs_coupling == 0 * / if ( [sbrPatchingMode[0] ]== 0) { [1] [ ] [ sbrOversamplingFlag[0];] [1] if ( [sbrPitchInBinsFlag[0]]) [1] [ ] [ sbrPitchInBins[0]]; [7] else sbrPitchInBins[0] = 0; } else { sbrOversamplingFlag[0] = 0; sbrPitchInBins[0] = 0; } if ( [sbrPatchingMode[1] ]== 0) { [1] [ ] [ sbrOversamplingFlag[1];] [1] if ( [sbrPitchInBinsFlag[1]]) [1] [ ] [ sbrPitchInBins[1]]; [7] else sbrPitchInBins[1] = 0; } else { sbrOversamplingFlag[1] = 0; sbrPitchInBins[1] = 0; } } } } Note: bs_sbr_preprocessing is defined as described in section 6.2.12 of ISO / IEC 23003-3:2012. sbrPatchingMode[ch], sbrOversamplingFlag[ch], sbrPitchInBinsFlag[ch], and sbrPitchInBins[ch] are defined as described in section 7.5 of ISO / IEC 23003-3:2012.
[0092] The above syntax implements an effective implementation of one of the enhanced forms of spectrum band copying (such as harmonic transpose) as an extension of a legacy decoder. Specifically, the eSBR data in Table 3 contains only the parameters required for this enhanced form of spectrum band copying to perform the spectrum band copying, which is supported in the bitstream or can be directly derived from the parameters supported in the bitstream. All other parameters required for this enhanced form of spectrum band copying and processing data are extracted from existing parameters in the defined locations in the bitstream.
[0093] For example, an MPEG-4 HE-AAC or HE-AAC v2 compliant encoder can be extended to include an enhanced form of spectrum band copying (such as harmonic transpose). This enhanced form of spectrum band copying is in addition to the basic form of spectrum band copying already supported by the decoder. In the context of an MPEG-4 HE-AAC or HE-AAC v2 compliant encoder, this basic form of spectrum band copying is the QMF spectrum patching SBR tool as defined in section 4.6.18 of the MPEG-4 AAC standard.
[0094] When performing the enhanced form of spectrum band copying, an extended HE-AAC decoder can reuse many bitstream parameters already included in the SBR extension payload of the bitstream. Specific parameters that can be reused include, for example, various parameters for determining the master frequency table. These parameters include bs_start_freq (the parameter for determining the start of the master frequency table parameters), bs_stop_freq (the parameter for determining the stop of the master frequency table), bs_freq_scale (the parameter for determining the number of bands per octave), and bs_alter_scale (the parameter for changing the scale of the bands). Reusable parameters also include parameters for determining the noise band table (bs_noise_bands) and the limiter band table (bs_limiter_bands). Therefore, in various embodiments, at least some equivalent parameters specified in the USAC standard are omitted from the bitstream, thereby reducing additional control items in the bitstream. Typically, when a parameter specified in the AAC standard has an equivalent parameter specified in the USAC standard, the equivalent parameter specified in the USAC standard has the same name as the parameter specified in the AAC standard (e.g., envelope scaling factor EOrigMapped). However, the equivalent parameter specified in the USAC standard usually has a different value, which is "tuned" for the enhanced SBR processing defined in the USAC standard rather than for the SBR processing defined in the AAC standard.
[0095] When performing an enhanced form of spectrum band replication according to an embodiment of the present invention, in addition to numerous parameters, other data elements can also be reused by an extended HE-AAC decoder. For example, envelope data and noise bottom data can also be extracted from bs_data_env (envelope scaling factor) and bs_noise_env (noise bottom scaling factor) data and used during this enhanced form of spectrum band replication.
[0096] Essentially, these embodiments utilize configuration parameters and envelope data already supported by an older HE-AAC or HE-AAC v2 decoder in the SBR extension payload to achieve an enhanced form of spectral band replication requiring as little additional transmitted data as possible. The post-processing data is initially tuned for a basic form of HFR (e.g., spectral patching of SBR), but according to embodiments, it is used for an enhanced form of HFR (e.g., harmonic transpose of eSBR). As previously discussed, post-processing data generally represents operating parameters tuned and intended for use with the basic form of HFR (e.g., linear transformation) (e.g., envelope scaling factor, noise floor scaling factor, time / frequency grid parameters, sine wave addition information, variable crossover frequency / band, inverse filtering mode, envelope resolution, smoothing mode, frequency interpolation mode). However, this post-processing data, combined with additional post-processing data parameters specific to an HFR enhancement form (e.g., harmonic transpose), can be used to process audio data efficiently and effectively using the enhanced form of HFR.
[0097] Accordingly, an extended decoder supporting one form of spectrum band copying can be generated in a highly efficient manner by relying on predefined bitstream elements (e.g., bitstream elements in an SBR extended payload) and only adding the parameters required for that enhanced form of spectrum band copying (in a padding extended payload). This data reduction feature, combined with the placement of the new parameters in a reserved data field (such as an extended container), substantially reduces the barriers to generating a decoder that supports the enhanced form of spectrum band copying by ensuring that the bitstream is backward compatible with legacy decoders that do not support it.
[0098] In Table 3, the numbers in the right row indicate the number of bits of the corresponding parameter in the left row.
[0099] In some embodiments, the SBR object type defined in MPEG-4 AAC is updated to resemble the SBR tool or enhanced SBR (eSBR) tool communicated in the SBR extension element (bs_extension_id== EXTENSION_ID_ESBR).
[0100] In some embodiments, the present invention is a method comprising the step of encoding audio data to generate a encoded bitstream (e.g., an MPEG-4 AAC bitstream), the step comprising including eSBR post-processing data in at least one segment of at least one block of the encoded bitstream and including audio data in at least another segment of the block. In a typical embodiment, the method comprises the step of multiplexing the audio data using the eSBR post-processing data in each block of the encoded bitstream. In a typical decoding of the encoded bitstream in an eSBR decoder, the decoder extracts eSBR post-processing data from the bitstream (including parsing and demultiplexing the eSBR post-processing data and the audio data) and uses the eSBR post-processing data to process the audio data to generate a stream of decoded audio data.
[0101] Another aspect of the present invention is an eSBR decoder configured to perform eSBR processing (e.g., using at least one of eSBR tools called harmonic transpose or pre-flattening) during the decoding of an encoded audio bitstream (e.g., an MPEG-4 AAC bitstream) that does not contain eSBR post-processing data. An example of such a decoder will be described with reference to FIG5.
[0102] The eSBR decoder (400) in Figure 5 includes a buffer memory 201 (identical to the memory 201 in Figures 3 and 4), a bitstream payload deformatter 215 (identical to the deformatter 215 in Figure 4), an audio decoding subsystem 202 (sometimes referred to as a "core" decoding stage or "core" decoding subsystem, and identical to the core decoding subsystem 202 in Figure 3), an eSBR control data generation subsystem 401, and an eSBR processing stage 203 (identical to stage 203 in Figure 3). Typically, the decoder 400 also includes other processing elements (not shown in the figure).
[0103] In the operation of decoder 400, a sequence of blocks of an enhanced audio bitstream (an MPEG-4 AAC bitstream) received by decoder 400 is verified from buffer 201 to deformatter 215.
[0104] Deformatter 215 is coupled and configured to decompose blocks of a multi-bit stream to extract SBR post-processing data (including quantized envelope data) from the blocks, and typically also extracts other post-processing data from the blocks. Deformatter 215 is configured to validate at least the SBR post-processing data to the eSBR processing stage 203. Deformatter 215 is also coupled and configured to extract audio data from each block of the bitstream, and validates the extracted audio data to the decoding subsystem (decoding stage) 202.
[0105] The audio decoding subsystem 202 of decoder 400 is configured to decode the audio data extracted by deformatter 215 (this decoding can be referred to as a "core" decoding operation) to generate decoded audio data, and to validate the decoded audio data to eSBR processing stage 203. Decoding is performed in the frequency domain. Typically, one final stage of processing in subsystem 202 applies a frequency-to-time domain transformation to the decoded frequency-domain audio data, such that the output of the subsystem is time-domain decoded audio data. Stage 203 is configured to apply the SBR tools (and eSBR tools) indicated by the SBR post-processing data (extracted by deformatter 215) and the eSBR post-processing data generated in subsystem 401 to the decoded audio data (i.e., performing SBR and eSBR processing on the output of decoding subsystem 202 using the SBR and eSBR post-processing data) to generate fully decoded audio data from the output of decoder 400. Typically, decoder 400 includes a memory (accessible by subsystem 202 and stage 203) storing deformatted audio data and post-processing data output from self-formatter 215 (and, depending on, subsystem 401), and stage 203 is configured to access audio data and post-processing data as needed during SBR and eSBR processing. SBR processing in stage 203 can be considered as post-processing of the output of core decoding subsystem 202. Depending on the situation, decoder 400 also includes a final upmixing subsystem coupled and configured to perform upmixing on the output of stage 203 to produce fully decoded upmixed audio from APU 210 output (which can use PS post-processing data extracted by deformatter 215 to apply the parametric stereo ("PS") tool defined in the MPEG-4 AAC standard).
[0106] The control data generation subsystem 401 in Figure 5 is coupled and configured to detect at least one property of the encoded audio bitstream to be encoded in response to at least one result of the detection step and generate eSBR control data (which may be or be included in eSBR post-data of any type contained in the encoded audio bitstream according to other embodiments of the invention). The eSBR control data is validated to stage 203 to trigger the application of individual eSBR tools or combinations of eSBR tools and / or control the application of such eSBR tools after detecting a specific property (or combination of properties) of the bitstream. For example, to control the use of harmonic transposition to perform eSBR processing, some embodiments of the control data generation subsystem 401 may include: a music detector (e.g., a simplified version of a conventional music detector) for setting the sbrPatchingMode[ch] parameter in response to detecting whether or not music is indicated by the bitstream (and confirming the setting parameter to stage 203); a moment detector for setting the sbrOversamplingFlag[ch] parameter in response to detecting the momentary presence or absence of audio content indicated by the bitstream (and confirming the setting parameter to stage 203); and / or a pitch detector for setting the sbrPitchInBinsFlag[ch] and sbrPitchInBins[ch] parameters in response to detecting the pitch of the audio content indicated by the bitstream (and confirming the setting parameter to stage 203). Other forms of the present invention are audio bitstream decoding methods performed by any embodiment of the decoder of the present invention described in this paragraph and the preceding paragraphs.
[0107] This invention includes, in some embodiments, an encoding or decoding method configured (e.g., programmed) to execute any embodiment of the present invention's APU, system, or device. Other embodiments include a system or device configured (e.g., programmed) to execute any embodiment of the present invention's method and a computer-readable medium (e.g., a magnetic disk) storing code (e.g., in a non-transitory manner) to implement any embodiment of the present invention's method or steps thereof. For example, the present invention's system may be or include any programmable general-purpose processor, digital signal processor, or microprocessor that uses software or firmware and / or is otherwise configured to perform various operations on data (including any embodiment of the present invention's method or steps thereof). This general-purpose processor may be or include a computer system comprising an input device, memory, and processing circuitry programmed (and / or otherwise configured) to execute an embodiment of the present invention's method (or steps thereof) in response to data verified thereto.
[0108] Embodiments of the present invention may be implemented in hardware, firmware, or software, or a combination of both (e.g., implemented as a programmable logic array). Unless otherwise stated, the algorithms or programs included as part of the present invention are not originally associated with any particular computer or other device. Specifically, various general-purpose machines may be used with programs written in accordance with the teachings herein, or more specialized devices (e.g., integrated circuits) may be more readily available to perform the required method steps. Therefore, the present invention can be implemented in one or more programmable computer systems comprising at least one processor, at least one data storage system (including volatile and non-volatile memory and / or storage elements), at least one input device or port, and at least one output device or port (e.g., any embodiment of the elements of FIG1 or the encoder 100 (or an element of encoder 100) of FIG2 or the decoder 200 (or an element of decoder 200) of FIG3 or the APU 210 (or an element of APU 210) of FIG4 or the decoder 400 (or an element of decoder 400) of FIG5). The program code is applied to the input data to perform the functions described herein and generate output information. The output information should be applied to one or more output devices in a known manner.
[0109] Each of these programs can be implemented in any desired computer language (including machine language, assembly language, or high-level programming language, logic language, or object-oriented programming language) to communicate with a computer system. In any case, the language can be a compiled or interpreted language.
[0110] For example, when implemented by a sequence of computer software instructions, the various functions and steps of embodiments of the present invention can be implemented by a sequence of multi-threaded software instructions running in a suitable digital signal processing hardware. In this case, the various devices, steps and functions of the embodiments can correspond to parts of the software instructions.
[0111] Each of these computer programs is preferably stored on a storage medium or device or downloaded to a storage medium or device (e.g., solid-state memory or media, or magnetic or optical media) that can be read by a general-purpose or special-purpose programmable computer, so that when the storage medium or device is read by the computer system, the computer is configured and operated to execute the program described herein. The system of the present invention can also be implemented as a computer-readable storage medium configured (i.e., storing a computer program) together with a computer program, wherein such configuration of the storage medium causes a computer system to operate in a specific and predefined manner to perform the functions described herein.
[0112] Several embodiments of the invention have been described. However, it should be understood that various modifications can be made without departing from the spirit and scope of the invention. Various modifications and variations of the invention are possible based on the foregoing teachings. For example, to facilitate efficient implementations, phase shifting and complex QMF analysis and synthesis filter banks can be combined. The analysis filter bank is responsible for filtering the time-domain low-frequency signal generated by the core decoder into multiple subbands (e.g., QMF subbands). The synthesis filter bank is responsible for combining the high-frequency band regenerated by a selected HFR technique (indicated by the received sbrPatchingMode parameter) and the low-frequency band decoded to produce a wideband output audio signal. However, a given filter bank implementation operating according to a specific sampling rate mode (e.g., normal dual-rate operation or downsampling SBR mode) should not have a bitstream-dependent phase shift. The QMF bank used in SBR is a complex exponential extension of the theory of cosine modulation filter banks. It can be shown that alias elimination constraints become obsolete when using complex exponential modulation extended cosine modulation filter banks. Therefore, for the SBR QMF group, the analysis filter hk(n) and the synthesis filter fk(n) can both be defined as follows: (1) Where p0(n) is a real-valued symmetric or asymmetric prototype filter (typically a low-pass prototype filter), M represents the number of channels, and N is the order of the prototype filter. The number of channels used in the analysis filter bank may differ from the number of channels used in the synthesis filter bank. For example, the analysis filter bank may have 32 channels, while the synthesis filter bank may have 64 channels. When operating the synthesis filter bank in a downsampling mode, the synthesis filter bank may have only 32 channels. Since the subband samples from the filter bank have complex values, an additive possible channel-dependent phase shift step can be added to the synthesis filter bank. Although in principle the phase shift term can have any value without disrupting the operation of the QMF analysis / synthesis chain, the phase shift term can also be constrained to a specific value for compliance verification. The SBR signal will be affected by the choice of phase factor, while the low-pass signal from the core decoder will not be affected by the choice of phase factor. The audio quality of the output signal is unaffected.
[0113] The coefficients of the prototype filter p0(n) can be defined using a length L of 640, as shown in Table 4 below. Table 4 n p0(n) n p0(n) n p0(n) 0 0.0000000000 214 0.0019765601 428 0.0117623832 1 -0.0005525286 215 -0.0032086896 429 0.0163701258 2 -0.0005617692 216 -0.0085711749 430 0.0207997072 3 -0.0004947518 217 -0.0141288827 431 0.0250307561 4 -0.0004875227 218 -0.0198834129 432 0.0290824006 5 -0.0004893791 219 -0.0258227288 433 0.0329583930 6 -0.0005040714 220 -0.0319531274 434 0.0366418116 7 -0.0005226564 221 -0.0382776572 435 0.0401458278 8 -0.0005466565 222 -0.0447806821 436 0.0434768782 9 -0.0005677802 223 -0.0514804176 437 0.0466303305 10 -0.0005870930 224 -0.0583705326 438 0.0495978676 11 -0.0006132747 225 -0.0654409853 439 0.0524093821 12 -0.0006312493 226 -0.0726943300 440 0.0550460034 13 -0.0006540333 227 -0.0801372934 441 0.0575152691 14 -0.0006777690 228 -0.0877547536 442 0.0598166570 15 -0.0006941614 229 -0.0955533352 443 0.0619602779 16 -0.0007157736 230 -0.1035329531 444 0.0639444805 17 -0.0007255043 231 -0.1116826931 445 0.0657690668 18 -0.0007440941 232 -0.1200077984 446 0.0674525021 19 -0.0007490598 233 -0.1285002850 447 0.0689664013 20 -0.0007681371 234 -0.1371551761 448 0.0703533073 21 -0.0007724848 235 -0.1459766491 449 0.0715826364 22 -0.0007834332 236 -0.1549607071 450 0.0726774642 23 -0.0007779869 237 -0.1640958855 451 0.0736406005 24 -0.0007803664 238 -0.1733808172 452 0.0744664394 25 -0.0007801449 239 -0.1828172548 453 0.0751576255 26 -0.0007757977 240 -0.1923966745 454 0.0757305756 27 -0.0007630793 241 -0.2021250176 455 0.0761748321 28 -0.0007530001 242 -0.2119735853 456 0.0765050718 29 -0.0007319357 243 -0.2219652696 457 0.0767204924 30 -0.0007215391 244 -0.2320690870 458 0.0768230011 31 -0.0006917937 245 -0.2423016884 459 0.0768173975 32 -0.0006650415 246 -0.2526480309 460 0.0767093490 33 -0.0006341594 247 -0.2631053299 461 0.0764992170 34 -0.0005946118 248 -0.2736634040 462 0.0761992479 35 -0.0005564576 249 -0.2843214189 463 0.0758008358 36 -0.0005145572 250 -0.2950716717 464 0.0753137336 37 -0.0004606325 251 -0.3059098575 465 0.0747452558 38 -0.0004095121 252 -0.3168278913 466 0.0741003642 39 -0.0003501175 253 -0.3278113727 467 0.0733620255 40 -0.0002896981 254 -0.3388722693 468 0.0725682583 41 -0.0002098337 255 -0.3499914122 469 0.0717002673 42 -0.0001446380 256 0.3611589903 470 0.0707628710 43 -0.0000617334 257 0.3723795546 471 0.0697630244 44 0.0000134949 258 0.3836350013 472 0.0687043828 45 0.0001094383 259 0.3949211761 473 0.0676075985 46 0.0002043017 260 0.4062317676 474 0.0664367512 47 0.0002949531 261 0.4175696896 475 0.0652247106 48 0.0004026540 262 0.4289119920 476 0.0639715898 49 0.0005107388 263 0.4402553754 477 0.0626857808 50 0.0006239376 264 0.4515996535 478 0.0613455171 51 0.0007458025 265 0.4629308085 479 0.0599837480 52 0.0008608443 266 0.4742453214 480 0.0585915683 53 0.0009885988 267 0.4855253091 481 0.0571616450 54 0.0011250155 268 0.4967708254 482 0.0557173648 55 0.0012577884 269 0.5079817500 483 0.0542452768 56 0.0013902494 270 0.5191234970 484 0.0527630746 57 0.0015443219 271 0.5302240895 485 0.0512556155 58 0.0016868083 272 0.5412553448 486 0.0497385755 59 0.0018348265 273 0.5522051258 487 0.0482165720 60 0.0019841140 274 0.5630789140 488 0.0466843027 61 0.0021461583 275 0.5738524131 489 0.0451488405 62 0.0023017254 276 0.5845403235 490 0.0436097542 63 0.0024625616 277 0.5951123086 491 0.0420649094 64 0.0026201758 278 0.6055783538 492 0.0405349170 65 0.0027870464 279 0.6159109932 493 0.0390053679 66 0.0029469447 280 0.6261242695 494 0.0374812850 67 0.0031125420 281 0.6361980107 495 0.0359697560 68 0.0032739613 282 0.6461269695 496 0.0344620948 69 0.0034418874 283 0.6559016302 497 0.0329754081 70 0.0036008268 284 0.6655139880 498 0.0315017608 71 0.0037603922 285 0.6749663190 499 0.0300502657 72 0.0039207432 286 0.6842353293 500 0.0286072173 73 0.0040819753 287 0.6933282376 501 0.0271859429 74 0.0042264269 288 0.7022388719 502 0.0257875847 75 0.0043730719 289 0.7109410426 503 0.0244160992 76 0.0045209852 290 0.7194462634 504 0.0230680169 77 0.0046606460 291 0.7277448900 505 0.0217467550 78 0.0047932560 292 0.7358211758 506 0.0204531793 79 0.0049137603 293 0.7436827863 507 0.0191872431 80 0.0050393022 294 0.7513137456 508 0.0179433381 81 0.0051407353 295 0.7587080760 509 0.0167324712 82 0.0052461166 296 0.7658674865 510 0.0155405553 83 0.0053471681 297 0.7727780881 511 0.0143904666 84 0.0054196775 298 0.7794287519 512 -0.0132718220 85 0.0054876040 299 0.7858353120 513 -0.0121849995 86 0.0055475714 300 0.7919735841 514 -0.0111315548 87 0.0055938023 301 0.7978466413 515 -0.0101150215 88 0.0056220643 302 0.8034485751 516 -0.0091325329 89 0.0056455196 303 0.8087695004 517 -0.0081798233 90 0.0056389199 304 0.8138191270 518 -0.0072615816 91 0.0056266114 305 0.8185776004 519 -0.0063792293 92 0.0055917128 306 0.8230419890 520 -0.0055337211 93 0.0055404363 307 0.8272275347 521 -0.0047222596 94 0.0054753783 308 0.8311038457 522 -0.0039401124 95 0.0053838975 309 0.8346937361 523 -0.0031933778 96 0.0052715758 310 0.8379717337 524 -0.0024826723 97 0.0051382275 311 0.8409541392 525 -0.0018039472 98 0.0049839687 312 0.8436238281 526 -0.0011568135 99 0.0048109469 313 0.8459818469 527 -0.0005464280 100 0.0046039530 314 0.8480315777 528 0.0000276045 101 0.0043801861 315 0.8497805198 529 0.0005832264 102 0.0041251642 316 0.8511971524 530 0.0010902329 103 0.0038456408 317 0.8523047035 531 0.0015784682 104 0.0035401246 318 0.8531020949 532 0.0020274176 105 0.0032091885 319 0.8535720573 533 0.0024508540 106 0.0028446757 320 0.8537385600 534 0.0028446757 107 0.0024508540 321 0.8535720573 535 0.0032091885 108 0.0020274176 322 0.8531020949 536 0.0035401246 109 0.0015784682 323 0.8523047035 537 0.0038456408 110 0.0010902329 324 0.8511971524 538 0.0041251642 111 0.0005832264 325 0.8497805198 539 0.0043801861 112 0.0000276045 326 0.8480315777 540 0.0046039530 113 -0.0005464280 327 0.8459818469 541 0.0048109469 114 -0.0011568135 328 0.8436238281 542 0.0049839687 115 -0.0018039472 329 0.8409541392 543 0.0051382275 116 -0.0024826723 330 0.8379717337 544 0.0052715758 117 -0.0031933778 331 0.8346937361 545 0.0053838975 118 -0.0039401124 332 0.8311038457 546 0.0054753783 119 -0.0047222596 333 0.8272275347 547 0.0055404363 120 -0.0055337211 334 0.8230419890 548 0.0055917128 121 -0.0063792293 335 0.8185776004 549 0.0056266114 122 -0.0072615816 336 0.8138191270 550 0.0056389199 123 -0.0081798233 337 0.8087695004 551 0.0056455196 124 -0.0091325329 338 0.8034485751 552 0.0056220643 125 -0.0101150215 339 0.7978466413 553 0.0055938023 126 -0.0111315548 340 0.7919735841 554 0.0055475714 127 -0.0121849995 341 0.7858353120 555 0.0054876040 128 0.0132718220 342 0.7794287519 556 0.0054196775 129 0.0143904666 343 0.7727780881 557 0.0053471681 130 0.0155405553 344 0.7658674865 558 0.0052461166 131 0.0167324712 345 0.7587080760 559 0.0051407353 132 0.0179433381 346 0.7513137456 560 0.0050393022 133 0.0191872431 347 0.7436827863 561 0.0049137603 134 0.0204531793 348 0.7358211758 562 0.0047932560 135 0.0217467550 349 0.7277448900 563 0.0046606460 136 0.0230680169 350 0.7194462634 564 0.0045209852 137 0.0244160992 351 0.7109410426 565 0.0043730719 138 0.0257875847 352 0.7022388719 566 0.0042264269 139 0.0271859429 353 0.6933282376 567 0.0040819753 140 0.0286072173 354 0.6842353293 568 0.0039207432 141 0.0300502657 355 0.6749663190 569 0.0037603922 142 0.0315017608 356 0.6655139880 570 0.0036008268 143 0.0329754081 357 0.6559016302 571 0.0034418874 144 0.0344620948 358 0.6461269695 572 0.0032739613 145 0.0359697560 359 0.6361980107 573 0.0031125420 146 0.0374812850 360 0.6261242695 574 0.0029469447 147 0.0390053679 361 0.6159109932 575 0.0027870464 148 0.0405349170 362 0.6055783538 576 0.0026201758 149 0.0420649094 363 0.5951123086 577 0.0024625616 150 0.0436097542 364 0.5845403235 578 0.0023017254 151 0.0451488405 365 0.5738524131 579 0.0021461583 152 0.0466843027 366 0.5630789140 580 0.0019841140 153 0.0482165720 367 0.5522051258 581 0.0018348265 154 0.0497385755 368 0.5412553448 582 0.0016868083 155 0.0512556155 369 0.5302240895 583 0.0015443219 156 0.0527630746 370 0.5191234970 584 0.0013902494 157 0.0542452768 371 0.5079817500 585 0.0012577884 158 0.0557173648 372 0.4967708254 586 0.0011250155 159 0.0571616450 373 0.4855253091 587 0.0009885988 160 0.0585915683 374 0.4742453214 588 0.0008608443 161 0.0599837480 375 0.4629308085 589 0.0007458025 162 0.0613455171 376 0.4515996535 590 0.0006239376 163 0.0626857808 377 0.4402553754 591 0.0005107388 164 0.0639715898 378 0.4289119920 592 0.0004026540 165 0.0652247106 379 0.4175696896 593 0.0002949531 166 0.0664367512 380 0.4062317676 594 0.0002043017 167 0.0676075985 381 0.3949211761 595 0.0001094383 168 0.0687043828 382 0.3836350013 596 0.0000134949 169 0.0697630244 383 0.3723795546 597 -0.0000617334 170 0.0707628710 384 -0.3611589903 598 -0.0001446380 171 0.0717002673 385 -0.3499914122 599 -0.0002098337 172 0.0725682583 386 -0.3388722693 600 -0.0002896981 173 0.0733620255 387 -0.3278113727 601 -0.0003501175 174 0.0741003642 388 -0.3168278913 602 -0.0004095121 175 0.0747452558 389 -0.3059098575 603 -0.0004606325 176 0.0753137336 390 -0.2950716717 604 -0.0005145572 177 0.0758008358 391 -0.2843214189 605 -0.0005564576 178 0.0761992479 392 -0.2736634040 606 -0.0005946118 179 0.0764992170 393 -0.2631053299 607 -0.0006341594 180 0.0767093490 394 -0.2526480309 608 -0.0006650415 181 0.0768173975 395 -0.2423016884 609 -0.0006917937 182 0.0768230011 396 -0.2320690870 610 -0.0007215391 183 0.0767204924 397 -0.2219652696 611 -0.0007319357 184 0.0765050718 398 -0.2119735853 612 -0.0007530001 185 0.0761748321 399 -0.2021250176 613 -0.0007630793 186 0.0757305756 400 -0.1923966745 614 -0.0007757977 187 0.0751576255 401 -0.1828172548 615 -0.0007801449 188 0.0744664394 402 -0.1733808172 616 -0.0007803664 189 0.0736406005 403 -0.1640958855 617 -0.0007779869 190 0.0726774642 404 -0.1549607071 618 -0.0007834332 191 0.0715826364 405 -0.1459766491 619 -0.0007724848 192 0.0703533073 406 -0.1371551761 620 -0.0007681371 193 0.0689664013 407 -0.1285002850 621 -0.0007490598 194 0.0674525021 408 -0.1200077984 622 -0.0007440941 195 0.0657690668 409 -0.1116826931 623 -0.0007255043 196 0.0639444805 410 -0.1035329531 624 -0.0007157736 197 0.0619602779 411 -0.0955533352 625 -0.0006941614 198 0.0598166570 412 -0.0877547536 626 -0.0006777690 199 0.0575152691 413 -0.0801372934 627 -0.0006540333 200 0.0550460034 414 -0.0726943300 628 -0.0006312493 201 0.0524093821 415 -0.0654409853 629 -0.0006132747 202 0.0495978676 416 -0.0583705326 630 -0.0005870930 203 0.0466303305 417 -0.0514804176 631 -0.0005677802 204 0.0434768782 418 -0.0447806821 632 -0.0005466565 205 0.0401458278 419 -0.0382776572 633 -0.0005226564 206 0.0366418116 420 -0.0319531274 634 -0.0005040714 207 0.0329583930 421 -0.0258227288 635 -0.0004893791 208 0.0290824006 422 -0.0198834129 636 -0.0004875227 209 0.0250307561 423 -0.0141288827 637 -0.0004947518 210 0.0207997072 424 -0.0085711749 638 -0.0005617692 211 0.0163701258 425 -0.0032086896 639 -0.0005525280 212 0.0117623832 426 0.0019765601 213 0.0069636862 427 0.0069636862
[0114] The prototype filter p0(n) can also be derived from Table 4 by one or more mathematical operations such as rounding, subsampling, interpolation, and integer multiplication of the sample.
[0115] It should be understood that the invention may be practiced in ways other than those specifically described herein, within the scope of the appended claims. Any element symbols included in the following claims are for illustrative purposes only and are not intended to be used to interpret or limit the scope of the claims in any way.
[0116] 1: Encoder 2: Conveying Subsystem 3: Decoder 4: Post-processing unit 100: Encoder 105: Encoder 106: Metadata Generation Stage 107: Filler / Formatter Stage 109: Buffer Memory 200: Decoder 201: Buffer memory / buffer 202: Audio Decoding Subsystem 203: Enhanced Spectrum Band Replication (eSBR) Processing Stage 204: Control Bit Generation Stage / Control Bit Generator 205: Bit Stream Load Deformatter / Parser 210: Audio Processing Unit (APU) 213: Spectral Band Replication (SBR) Processing Stage 215: Bitstream Load Deformatter / Parser 300: Post-processor 301: Buffer memory / buffer 400: Enhanced Spectrum Band Replication (eSBR) Decoder 401: Enhanced Spectrum Band Replication (eSBR) Control Data Generation Subsystem 500: Audio Processing Unit (APU) ID1: Identifier ID2: Identifier
Claims
1. A method for decoding an encoded audio bitstream, the method comprising: The process involves receiving an encoded audio bitstream containing audio data representing a low-frequency band portion of an audio signal, wherein the encoded audio bitstream further includes a padding element having an identifier indicating the start of the padding element and padding data following the identifier, and wherein the padding element includes an extension payload containing spectral band replication extension data, and the extension payload is identified by a four-bit unsigned integer having a value of either "1101" or "1110" first transmitted as the most significant bit; decoding the audio data to generate a decoded low-frequency band audio signal; and extracting high-frequency reconstruction metadata from the encoded audio bitstream, the high-frequency reconstruction metadata including operational parameters for a high-frequency reconstruction procedure that linearly transforms a consecutive number of subbands from a low-frequency band portion of the audio signal to a high-frequency band portion of the audio signal. A filter bank is used to filter the decoded low-frequency audio signal to generate a filtered low-frequency audio signal; a flag is extracted from the encoded audio bitstream, the flag indicating whether a linear transformation is performed on the audio data, wherein the padding data contains the flag; and the filtered low-frequency audio signal and the high-frequency reconstruction post-processing data are used to regenerate the high-frequency portion of the audio signal according to the flag; wherein the filter bank includes a filter hk(n) that is a modulated version of a prototype filter p0(n) based on one of the following: where p0(n) is a real-valued symmetric or asymmetric prototype filter, M is one of the number of channels in the filter bank and N is the order of the prototype filter.
2. The method of request item 1, wherein the high-frequency reconstruction post-processing data includes one of the operating parameters selected from a group consisting of envelope scale factors, floor scale factor, sine wave enhancement information, time / frequency grid information, crossover frequency, and inverse filtering mode.
3. As in request 1, wherein the prototype filter p0(n) is derived from the coefficients in Table 4 below: Table 4 n p0(n) n p0(n) n p0(n) 0 0.0000000000 214 0.0019765601 428 0.0117623832 1 -0.0005525286 215 -0.0032086896 429 0.0163701258 2 -0.0005617692 216 -0.0085711749 430 0.0207997072 3 -0.0004947518 217 -0.0141288827 431 0.0250307561 4 -0.0004875227 218 -0.0198834129 432 0.0290824006 5 -0.0004893791 219 -0.0258227288 433 0.0329583930 6 -0.0005040714 220 -0.0319531274 434 0.0366418116 7 -0.0005226564 221 -0.0382776572 435 0.0401458278 8 -0.0005466565 222 -0.0447806821 436 0.0434768782 9 -0.0005677802 223 -0.0514804176 437 0.0466303305 10 -0.0005870930 224 -0.0583705326 438 0.0495978676 11 -0.0006132747 225 -0.0654409853 439 0.0524093821 12 -0.0006312493 226 -0.0726943300 440 0.0550460034 13 -0.0006540333 227 -0.0801372934 441 0.0575152691 14 -0.0006777690 228 -0.0877547536 442 0.0598166570 15 -0.0006941614 229 -0.0955533352 443 0.0619602779 16 -0.0007157736 230 -0.1035329531 444 0.0639444805 17 -0.0007255043 231 -0.1116826931 445 0.0657690668 18 -0.0007440941 232 -0.1200077984 446 0.0674525021 19 -0.0007490598 233 -0.1285002850 447 0.0689664013 20 -0.0007681371 234 -0.1371551761 448 0.0703533073 21 -0.0007724848 235 -0.1459766491 449 0.0715826364 22 -0.0007834332 236 -0.1549607071 450 0.0726774642 23 -0.0007779869 237 -0.1640958855 451 0.0736406005 24 -0.0007803664 238 -0.1733808172 452 0.0744664394 25 -0.0007801449 239 -0.1828172548 453 0.0751576255 26 -0.0007757977 240 -0.1923966745 454 0.0757305756 27 -0.0007630793 241 -0.2021250176 455 0.0761748321 28 -0.0007530001 242 -0.2119735853 456 0.0765050718 29 -0.0007319357 243 -0.2219652696 457 0.0767204924 30 -0.0007215391 244 -0.2320690870 458 0.0768230011 31 -0.0006917937 245 -0.2423016884 459 0.0768173975 32 -0.0006650415 246 -0.2526480309 460 0.0767093490 33 -0.0006341594 247 -0.2631053299 461 0.0764992170 34 -0.0005946118 248 -0.2736634040 462 0.0761992479 35 -0.0005564576 249 -0.2843214189 463 0.0758008358 36 -0.0005145572 250 -0.2950716717 464 0.0753137336 37 -0.0004606325 251 -0.3059098575 465 0.0747452558 38 -0.0004095121 252 -0.3168278913 466 0.0741003642 39 -0.0003501175 253 -0.3278113727 467 0.0733620255 40 -0.0002896981 254 -0.3388722693 468 0.0725682583 41 -0.0002098337 255 -0.3499914122 469 0.0717002673 42 -0.0001446380 256 0.3611589903 470 0.0707628710 43 -0.0000617334 257 0.3723795546 471 0.0697630244 44 0.0000134949 258 0.3836350013 472 0.0687043828 45 0.0001094383 259 0.3949211761 473 0.0676075985 46 0.0002043017 260 0.4062317676 474 0.0664367512 47 0.0002949531 261 0.4175696896 475 0.0652247106 48 0.0004026540 262 0.4289119920 476 0.0639715898 49 0.0005107388 263 0.4402553754 477 0.0626857808 50 0.0006239376 264 0.4515996535 478 0.0613455171 51 0.0007458025 265 0.4629308085 479 0.0599837480 52 0.0008608443 266 0.4742453214 480 0.0585915683 53 0.0009885988 267 0.4855253091 481 0.0571616450 54 0.0011250155 268 0.4967708254 482 0.0557173648 55 0.0012577884 269 0.5079817500 483 0.0542452768 56 0.0013902494 270 0.5191234970 484 0.0527630746 57 0.0015443219 271 0.5302240895 485 0.0512556155 58 0.0016868083 272 0.5412553448 486 0.0497385755 59 0.0018348265 273 0.5522051258 487 0.0482165720 60 0.0019841140 274 0.5630789140 488 0.0466843027 61 0.0021461583 275 0.5738524131 489 0.0451488405 62 0.0023017254 276 0.5845403235 490 0.0436097542 63 0.0024625616 277 0.5951123086 491 0.0420649094 64 0.0026201758 278 0.6055783538 492 0.0405349170 65 0.0027870464 279 0.6159109932 493 0.0390053679 66 0.0029469447 280 0.6261242695 494 0.0374812850 67 0.0031125420 281 0.6361980107 495 0.0359697560 68 0.0032739613 282 0.6461269695 496 0.0344620948 69 0.0034418874 283 0.6559016302 497 0.0329754081 70 0.0036008268 284 0.6655139880 498 0.0315017608 71 0.0037603922 285 0.6749663190 499 0.0300502657 72 0.0039207432 286 0.6842353293 500 0.0286072173 73 0.0040819753 287 0.6933282376 501 0.0271859429 74 0.0042264269 288 0.7022388719 502 0.0257875847 75 0.0043730719 289 0.7109410426 503 0.0244160992 76 0.0045209852 290 0.7194462634 504 0.0230680169 77 0.0046606460 291 0.7277448900 505 0.0217467550 78 0.0047932560 292 0.7358211758 506 0.0204531793 79 0.0049137603 293 0.7436827863 507 0.0191872431 80 0.0050393022 294 0.7513137456 508 0.0179433381 81 0.0051407353 295 0.7587080760 509 0.0167324712 82 0.0052461166 296 0.7658674865 510 0.0155405553 83 0.0053471681 297 0.7727780881 511 0.0143904666 84 0.0054196775 298 0.7794287519 512 -0.0132718220 85 0.0054876040 299 0.7858353120 513 -0.0121849995 86 0.0055475714 300 0.7919735841 514 -0.0111315548 87 0.0055938023 301 0.7978466413 515 -0.0101150215 88 0.0056220643 302 0.8034485751 516 -0.0091325329 89 0.0056455196 303 0.8087695004 517 -0.0081798233 90 0.0056389199 304 0.8138191270 518 -0.0072615816 91 0.0056266114 305 0.8185776004 519 -0.0063792293 92 0.0055917128 306 0.8230419890 520 -0.0055337211 93 0.0055404363 307 0.8272275347 521 -0.0047222596 94 0.0054753783 308 0.8311038457 522 -0.0039401124 95 0.0053838975 309 0.8346937361 523 -0.0031933778 96 0.0052715758 310 0.8379717337 524 -0.0024826723 97 0.0051382275 311 0.8409541392 525 -0.0018039472 98 0.0049839687 312 0.8436238281 526 -0.0011568135 99 0.0048109469 313 0.8459818469 527 -0.0005464280 100 0.0046039530 314 0.8480315777 528 0.0000276045 101 0.0043801861 315 0.8497805198 529 0.0005832264 102 0.0041251642 316 0.8511971524 530 0.0010902329 103 0.0038456408 317 0.8523047035 531 0.0015784682 104 0.0035401246 318 0.8531020949 532 0.0020274176 105 0.0032091885 319 0.8535720573 533 0.0024508540 106 0.0028446757 320 0.8537385600 534 0.0028446757 107 0.0024508540 321 0.8535720573 535 0.0032091885 108 0.0020274176 322 0.8531020949 536 0.0035401246 109 0.0015784682 323 0.8523047035 537 0.0038456408 110 0.0010902329 324 0.8511971524 538 0.0041251642 111 0.0005832264 325 0.8497805198 539 0.0043801861 112 0.0000276045 326 0.8480315777 540 0.0046039530 113 -0.0005464280 327 0.8459818469 541 0.0048109469 114 -0.0011568135 328 0.8436238281 542 0.0049839687 115 -0.0018039472 329 0.8409541392 543 0.0051382275 116 -0.0024826723 330 0.8379717337 544 0.0052715758 117 -0.0031933778 331 0.8346937361 545 0.0053838975 118 -0.0039401124 332 0.8311038457 546 0.0054753783 119 -0.0047222596 333 0.8272275347 547 0.0055404363 120 -0.0055337211 334 0.8230419890 548 0.0055917128 121 -0.0063792293 335 0.8185776004 549 0.0056266114 122 -0.0072615816 336 0.8138191270 550 0.0056389199 123 -0.0081798233 337 0.8087695004 551 0.0056455196 124 -0.0091325329 338 0.8034485751 552 0.0056220643 125 -0.0101150215 339 0.7978466413 553 0.0055938023 126 -0.0111315548 340 0.7919735841 554 0.0055475714 127 -0.0121849995 341 0.7858353120 555 0.0054876040 128 0.0132718220 342 0.7794287519 556 0.0054196775 129 0.0143904666 343 0.7727780881 557 0.0053471681 130 0.0155405553 344 0.7658674865 558 0.0052461166 131 0.0167324712 345 0.7587080760 559 0.0051407353 132 0.0179433381 346 0.7513137456 560 0.0050393022 133 0.0191872431 347 0.7436827863 561 0.0049137603 134 0.0204531793 348 0.7358211758 562 0.0047932560 135 0.0217467550 349 0.7277448900 563 0.0046606460 136 0.0230680169 350 0.7194462634 564 0.0045209852 137 0.0244160992 351 0.7109410426 565 0.0043730719 138 0.0257875847 352 0.7022388719 566 0.0042264269 139 0.0271859429 353 0.6933282376 567 0.0040819753 140 0.0286072173 354 0.6842353293 568 0.0039207432 141 0.0300502657 355 0.6749663190 569 0.0037603922 142 0.0315017608 356 0.6655139880 570 0.0036008268 143 0.0329754081 357 0.6559016302 571 0.0034418874 144 0.0344620948 358 0.6461269695 572 0.0032739613 145 0.0359697560 359 0.6361980107 573 0.0031125420 146 0.0374812850 360 0.6261242695 574 0.0029469447 147 0.0390053679 361 0.6159109932 575 0.0027870464 148 0.0405349170 362 0.6055783538 576 0.0026201758 149 0.0420649094 363 0.5951123086 577 0.0024625616 150 0.0436097542 364 0.5845403235 578 0.0023017254 151 0.0451488405 365 0.5738524131 579 0.0021461583 152 0.0466843027 366 0.5630789140 580 0.0019841140 153 0.0482165720 367 0.5522051258 581 0.0018348265 154 0.0497385755 368 0.5412553448 582 0.0016868083 155 0.0512556155 369 0.5302240895 583 0.0015443219 156 0.0527630746 370 0.5191234970 584 0.0013902494 157 0.0542452768 371 0.5079817500 585 0.0012577884 158 0.0557173648 372 0.4967708254 586 0.0011250155 159 0.0571616450 373 0.4855253091 587 0.0009885988 160 0.0585915683 374 0.4742453214 588 0.0008608443 161 0.0599837480 375 0.4629308085 589 0.0007458025 162 0.0613455171 376 0.4515996535 590 0.0006239376 163 0.0626857808 377 0.4402553754 591 0.0005107388 164 0.0639715898 378 0.4289119920 592 0.0004026540 165 0.0652247106 379 0.4175696896 593 0.0002949531 166 0.0664367512 380 0.4062317676 594 0.0002043017 167 0.0676075985 381 0.3949211761 595 0.0001094383 168 0.0687043828 382 0.3836350013 596 0.0000134949 169 0.0697630244 383 0.3723795546 597 -0.0000617334 170 0.0707628710 384 -0.3611589903 598 -0.0001446380 171 0.0717002673 385 -0.3499914122 599 -0.0002098337 172 0.0725682583 386 -0.3388722693 600 -0.0002896981 173 0.0733620255 387 -0.3278113727 601 -0.0003501175 174 0.0741003642 388 -0.3168278913 602 -0.0004095121 175 0.0747452558 389 -0.3059098575 603 -0.0004606325 176 0.0753137336 390 -0.2950716717 604 -0.0005145572 177 0.0758008358 391 -0.2843214189 605 -0.0005564576 178 0.0761992479 392 -0.2736634040 606 -0.0005946118 179 0.0764992170 393 -0.2631053299 607 -0.0006341594 180 0.0767093490 394 -0.2526480309 608 -0.0006650415 181 0.0768173975 395 -0.2423016884 609 -0.0006917937 182 0.0768230011 396 -0.2320690870 610 -0.0007215391 183 0.0767204924 397 -0.2219652696 611 -0.0007319357 184 0.0765050718 398 -0.2119735853 612 -0.0007530001 185 0.0761748321 399 -0.2021250176 613 -0.0007630793 186 0.0757305756 400 -0.1923966745 614 -0.0007757977 187 0.0751576255 401 -0.1828172548 615 -0.0007801449 188 0.0744664394 402 -0.1733808172 616 -0.0007803664 189 0.0736406005 403 -0.1640958855 617 -0.0007779869 190 0.0726774642 404 -0.1549607071 618 -0.0007834332 191 0.0715826364 405 -0.1459766491 619 -0.0007724848 192 0.0703533073 406 -0.1371551761 620 -0.0007681371 193 0.0689664013 407 -0.1285002850 621 -0.0007490598 194 0.0674525021 408 -0.1200077984 622 -0.0007440941 195 0.0657690668 409 -0.1116826931 623 -0.0007255043 196 0.0639444805 410 -0.1035329531 624 -0.0007157736 197 0.0619602779 411 -0.0955533352 625 -0.0006941614 198 0.0598166570 412 -0.0877547536 626 -0.0006777690 199 0.0575152691 413 -0.0801372934 627 -0.0006540333 200 0.0550460034 414 -0.0726943300 628 -0.0006312493 201 0.0524093821 415 -0.0654409853 629 -0.0006132747 202 0.0495978676 416 -0.0583705326 630 -0.0005870930 203 0.0466303305 417 -0.0514804176 631 -0.0005677802 204 0.0434768782 418 -0.0447806821 632 -0.0005466565 205 0.0401458278 419 -0.0382776572 633 -0.0005226564 206 0.0366418116 420 -0.0319531274 634 -0.0005040714 207 0.0329583930 421 -0.0258227288 635 -0.0004893791 208 0.0290824006 422 -0.0198834129 636 -0.0004875227 209 0.0250307561 423 -0.0141288827 637 -0.0004947518 210 0.0207997072 424 -0.0085711749 638 -0.0005617692 211 0.0163701258 425 -0.0032086896 639 -0.0005525280 212 0.0117623832 426 0.0019765601 213 0.0069636862 427 0.0069636862 。.
4. The method of request item 1, wherein the prototype filter p0(n) is derived from the coefficients in Table 4 by one or more mathematical operations selected from a group consisting of rounding, subsampling, interpolation, or integer multiple downsampling.
5. A non-transitory computer-readable medium containing instructions that, when executed by a processor, perform the method as requested in claim 1.
6. A decoder for decoding an encoded audio bitstream, the decoder comprising: An input interface for receiving the encoded audio bitstream, the encoded audio bitstream containing audio data representing a low-frequency band portion of an audio signal, wherein the encoded audio bitstream further includes a padding element having an identifier indicating the start of the padding element and padding data following the identifier, and wherein the padding element includes an extension payload containing spectral band copy extension data, and the extension payload is identified by a four-bit unsigned integer having a value of either "1101" or "1110" first transmitted as the most significant bit; and a core decoder for decoding the audio data to generate a decoded low-frequency band audio signal; A deformatter for extracting high-frequency reconstruction post-processing data from the encoded audio bitstream, the high-frequency reconstruction post-processing data including operational parameters for a high-frequency reconstruction procedure that linearly transforms a consecutive number of subbands from a low-frequency portion of the audio signal to a high-frequency portion of the audio signal, wherein the deformatter further extracts a flag from the encoded audio bitstream indicating whether to perform a linear transformation on the audio data, wherein the padding data includes the flag; an analysis filter bank for filtering the decoded low-frequency audio signal to generate a filtered low-frequency audio signal; and a high-frequency regenerator for regenerating the high-frequency portion of the audio signal using the filtered low-frequency audio signal and the high-frequency reconstruction post-processing data according to the flag, wherein the analysis filter bank includes an analysis filter hk(n) that is a modulation version of a prototype filter p0(n): Where p0(n) is a real-valued symmetric or asymmetric prototype filter, M is the number of channels in the analysis filter bank, and N is the order of the prototype filter.