Intel® IPP for audio coding includes general purpose functions applicable in several codecs and a number of specific functions for MPEG-4 audio encoder and decoder (see [ISO14496]), MP3 encoder and decoder. These functions implement pipeline blocks with large computational complexity.
The current set of functions is sufficient to implement a portable optimized MPEG-4 AAC Main profile decoder and a portable optimized MPEG-1, 2 Layer III encoder (see [ISO/IEC 11172-3] and [ISO13818]).
Also this chapter includes Spectral Band Replication (SBR) functions as an audio coding bandwidth extension technology, which is standardized in ISO/IEC 14496-3:2001/Amd.1:2003 [ISO14496A].
The full list of functions is given in the table below.
| Function Base Name | Operation |
|---|---|
| Interleaved to Multi-Row Format Conversion Functions | |
| Interleave | Converts signal from non-interleaved to interleaved format. |
| Deinterleave | Converts signal from interleaved to non-interleaved format. |
| Spectral Data Prequantization Functions | |
| Pow34 | Raises a vector to the power of 3/4. |
| Pow43 | Raises a vector to the power of 4/3. |
| Pow43Scale | Raises a vector to the power of 4/3 with scaling. |
| Scale Factors Calculation Functions | |
| CalcSF | Restores actual scale factors from the bit stream values. |
| Mantissa Conversion and Scaling Functions | |
| Scale | Applies scale factors to spectral bands in accordance with spectral bands boundaries. |
| MakeFloat | Converts mantissa and exponent arrays to float arrays. |
| Modified Discrete Cosine Transform Functions | |
| MDCTFwdInitAlloc, MDCTInvInitAlloc | Create and initialize modified discrete cosine transform specification structure. |
| MDCTFwdInit, MDCTInvInit | Initialize modified discrete cosine transform specification structure. |
| MDCTFwdFree, MDCTInvFree | Close modified discrete cosine transform specification structure. |
| MDCTFwdGetSize, MDCTInvGetSize | Get the size of MDCT specification structure, initialization, and work buffer. |
| MDCTFwdGetBufSize, MDCTInvGetBufSize | Get the size of MDCT work buffer. |
| MDCTFwd, MDCTInv | Compute forward or inverse MDCT of a signal. |
| Block Filtering Functions | |
| FIRBlockInitAlloc | Initializes FIR block filter state. |
| FIRBlockFree | Closes FIR block filter state. |
| FIRBlockOne | Filters vector of sample through FIR block filter. |
| Frequency Domain Prediction Functions | |
| FDPInitAlloc | Creates and initializes predictor state. |
| FDPInit | Initializes FDP state. |
| FDPFree | Closes FDP state. |
| FDPGetSize | Gets size of FDP state structure. |
| FDPReset | Resets predictors for all spectral lines. |
| FDPResetSfb | Resets predictor-specific information in some scale factor bands. |
| FDPResetGroup | Resets predictors for group of spectral lines. |
| FDPFwd | Performs frequency domain prediction procedure and calculates prediction error. |
| FDPInv | Retrieves input signal from prediction error, using frequency domain prediction procedure. |
| VLC Functions | |
| VLCDecodeEscBlock_MP3 | Parses the bitstream and decodes variable length code for MP3 using signed VLC tables. |
| VLCDecodeEscBlock_AAC | Parses the bitstream and decodes variable length code for AAC using signed VLC tables. |
| VLCDecodeUTupleEscBlock_MP3 | Parses the bitstream and decodes variable length code for MP3 using unsigned multi-tupled VLC tables. |
| VLCDecodeUTupleEscBlock_AAC | Parses the bitstream and decodes variable length code for AAC using unsigned multi-tupled VLC tables. |
| VLCCountEscBits_MP3 | Calculates the number of bits necessary for encoding in MP3 format. |
| VLCCountEscBits_AAC | Calculates the number of bits necessary for encoding in AAC format. |
| VLCEncodeEscBlock_MP3 | Encodes an array of values into destination bitstream in MP3 format and advances bitstream pointer. |
| VLCEncodeEscBlock_AAC | Encodes an array of values into destination bitstream in AAC format and advances bitstream pointer. |
| Psychoacoustic Functions | |
| Spread | Computes spreading function. |
| Vector Quantization Functions | |
| VQCodeBookInitAlloc | Allocates memory and initializes the codebook state structure. |
| VQCodeBookInit | Initializes the codebook state structure. |
| VQCodeBookFree | Closes the codebook state structure. |
| VQCodeBookGetSize | Gets size of the codebook state structure. |
| VQPreliminarySelect | Selects candidates for the nearest code vector of codebooks. |
| VQMainSelect | Finds optimal indexes with minimal distortion. |
| VQIndexSelect | Finds optimal vector set for specified number of codebooks. |
| VQReconstruction | Reconstructs vectors from indexes. |
| MP3 Encoder Functions | |
| AnalysisPQMF_MP3 | Implements stage 1 of MP3 hybrid analysis filterbank. |
| AnalysisFilterInit_PQMF_MP3 | Initializes PQMF MP3 analysis specification structure. |
| AnalysisFilterInitAlloc_PQMF_MP3 | Allocates memory and initializes the PQMF MP3 analysis specification structure. |
| AnalysisFilterGetSize_PQMF_MP3 | Returns size of PQMF MP3 analysis specification structure. |
| AnalysisFilterFree_PQMF_MP3 | Frees memory allocated for PQMF MP3 analysis specification structure. |
| AnalysisFilter_PQMF_MP3 | Transforms PQMF MP3-processed subband signals into time domain samples. |
| MDCTFwd_MP3 | Implements stage 2 of the MP3 hybrid analysis filterbank. |
| PsychoacousticModelTwo_MP3 | Implements the ISO/IEC 11172-3 psych-acoustic model recommendation 2 to estimate the masked threshold and perceptual entropy associated with a block of PCM audio input. |
| JointStereoEncode_MP3 | Transforms independent left and right channel spectral coefficient vectors into combined mid/side (MS) and/or intensity (IS) mode coefficient vectors suitable for quantization. |
| Quantize_MP3 | Quantizes the spectral coefficients generated by the analysis filterbank. |
| PackScaleFactors_MP3 | Applies noiseless coding to the scale factors and then packs the output into the bitstream buffer. |
| HuffmanEncode_MP3 | Applies lossless Huffman encoding to the quantized samples and packs the output into the bitstream buffer. |
| PackFrameHeader_MP3 | Packs the content of the frame header into the bitstream. |
| PackSideInfo_MP3 | Packs the side information into the bitstream buffer. |
| BitReservoirInit_MP3 | Initializes all elements of the bit reservoir state structure. |
| MP3 Decoder Functions | |
| UnpackFrameHeader_MP3 | Unpacks the audio frame header. |
| UnpackSideInfo_MP3 | Unpacks the side information from the input bitstream for use during the decoding of the associated frame. |
| UnpackScaleFactors_MP3 | Unpacks scale factors. |
| HuffmanDecode_MP3, HuffmanDecodeSfb_MP3, HuffmanDecodeSfbMbp_MP3 | Decodes Huffman data. |
| ReQuantize_MP3, ReQuantizeSfb_MP3 | Requantizes the decoded Huffman symbols. |
| MDCTInv_MP3 | Performs the first stage of hybrid synthesis filter bank. |
| MDCTInvWindow_MP3 | Performs 36 or 18 points IMDCT and windowing depending on the block type. |
| SynthPQMF_MP3 | Performs the second stage of hybrid synthesis filter bank. |
| SynthesisFilterInit_PQMF_MP3 | Initializes PQMF MP3 synthesis specification structure. |
| SynthesisFilterInitAlloc_PQMF_MP3 | Allocates memory for PQMF MP3 synthesis specification structure and initializes it. |
| SynthesisFilterGetSize_PQMF_MP3 | Returns size of PQMF MP3 synthesis specification structure. |
| SynthesisFilterFree_PQMF_MP3 | Frees memory allocated for PQMF MP3 synthesis specification structure. |
| SynthesisFilter_PQMF_MP3 | Transforms PQMF MP3-processed subband signals into time domain samples. |
| AAC Decoder Functions | |
| UnpackADIFHeader_AAC | Gets the AAC ADIF format header. |
| UnpackADTSFrameHeader_AAC | Gets ADTS frame header from the input bitstream. |
| DecodePrgCfgElt_AAC | Gets program configuration element from the input bitstream. |
| DecodeChanPairElt_AAC | Gets channel_pair_element from the input bitstream. |
| NoiselessDecoder_LC_AAC | Decodes all the data for one channel. |
| DecodeDatStrElt_AAC | Gets data stream element from the input bitstream. |
| DecodeFillElt_AAC | Gets the fill element from the input bitstream. |
| QuantInv_AAC | Performs inverse quantization of Huffman symbols for current channel in-place. |
| DecodeMsStereo_AAC | Processes MS stereo for pair channels in-place. |
| DecodeIsStereo_AAC | Processes intensity stereo for pair channels. |
| DeinterleaveSpectrum_AAC | Deinterleaves the coefficients for short block. |
| DecodeTNS_AAC | Decodes for Temporal Noise Shaping in-place. |
| MDCTInv_AAC_32s16s | Maps the time-frequency domain signal into time domain and generates 1024 reconstructed 16-bit signed little-endian PCM samples. |
| MDCTInv_AAC_32s_I | Computes inverse modified discrete cosine transform (MDCT), windowing and overlapping of signals. |
| DecodeMainHeader_AAC | Gets main header information and main layer information from bit stream. |
| DecodeExtensionHeader_AAC | Get extension header information and extension layer information from bit stream. |
| DecodePNS_AAC | Implements perceptual noise substitution coding within an ICS. |
| DecodeMsPNS_AAC | Implements perceptual noise substitution coding in the case of joint coding. |
| DecodeChanPairElt_MP4_AAC | Gets channel_pair_element from the input bitstream |
| LongTermReconstruct_AAC | Uses Long Term Reconstruct to reduce the redundancy of a signal between successive coding frames. |
| MDCTFwd_AAC_32s | Generates spectrum coefficient of PCM samples. |
| MDCTFwd_AAC_32s_I | Computes forward modified discrete cosine transform (MDCT) of windowed signals. |
| EncodeTNS_AAC | Performs reversion of TNS in the Long Term Reconstruct loop in-place. |
| LongTermPredict_AAC | Gets the predicted time domain signals in the Long Term Reconstruct (LTP) loop. |
| NoiselessDecode_AAC | Performs noiseless decoding. |
| LtpUpdate_AAC | Performs required buffer update in the Long Term Reconstruct (LTP) loop. |
| SBR Audio Encoder Functions | |
| DetectTransient_SBR | Estimates stationarity of signal by calculating deviation of spectrum audio signal. |
| EstimateTNR_SBR | Measures Tonality-to-Noise Ratio of complex QMF subband samples. |
| AnalysisFilterEncGetSize_SBR | Returns sizes of analysis SBR specification structures and work buffers. |
| AnalysisFilterEncInit_SBR | Initializes analysis SBR specification structure. |
| AnalysisFilterEnc_SBR | Performs subband filtering of the input audio signal. |
| AnalysisFilterEncInitAlloc_SBR | Allocates memory and and initializes analysis SBR specification structure. |
| AnalysisFilterFree_SBR | Closes analysis SBR specification structure. |
| SBR Audio Decoder Functions | |
| AnalysisFilterInitAlloc_SBR | Allocates memory and initializes analysis SBR specification structure for real and complex signals. |
| SynthesisFilterInitAlloc_SBR | Allocates memory and initializes synthesis SBR specification structure for real and complex signals. |
| SynthesisDownFilterInitAlloc_SBR | Allocates memory and initializes downsample synthesis SBR specification structure for real and complex signals. |
| AnalysisFilterFree_SBR | Closes analysis SBR specification structure for real and complex signals. |
| SynthesisFilterFree_SBR | Closes synthesis SBR specification structure for real and complex signals. |
| SynthesisDownFilterFree_SBR | Closes downsample synthesis SBR specification structure for real and complex signals. |
| AnalysisFilterGetSize_SBR | Returns size of analysis FilterSpec_SBR specification structures, init and work buffers. |
| SynthesisFilterGetSize_SBR | Returns size of synthesis FilterSpec_SBR specification structures, init and work buffers. |
| SynthesisDownFilterGetSize_SBR | Returns size of downsample synthesis FilterSpec_SBR specification structures, init and work buffers. |
| AnalysisFilterInit_SBR | Initializes analysis SBR specification structure. |
| SynthesisFilterInit_SBR | Initializes synthesis SBR specification structure. |
| SynthesisDownFilterInit_SBR | Initializes downsample synthesis specification structure. |
| AnalysisFilter_SBR | Transforms time domain signal output from the core decoder into frequency subband signals. |
| SynthesisFilter_SBR | Transforms SBR-processed subband signals into time domain samples. |
| SynthesisDownFilter_SBR | Transforms SBR-processed subband signals into time domain samples and performs downsampling at the same time. |
| PredictCoef_SBR | Obtains prediction filter coefficients using covariance method. |
| PredictOneCoef_SBR | Obtains one prediction filter coefficient using covariance method |
| Parametric Stereo Functions | |
| AnalysisFilter_PS | Increases frequency resolution of the first lower subbands by hybrid filtering. |
| DTS Audio Coding Functions | |
| SynthesisFilterInit_DTS | Initializes DTS synthesis filter specification structure. |
| SynthesisFilterInitAlloc_DTS | Allocates memory for DTS synthesis filter specification structure and initilaizes it. |
| SynthesisFilterGetSize_DTS | Returns size of DTS synthesis filter specification structure. |
| SynthesisFilterFree_DTS | Frees memory allocated for DTS synthesis filter specification structure. |
| SynthesisFilter_DTS | Transforms QMF DTS-processed subband signals into time domain samples. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.