⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 omxacaac_longtermreconstruct_s32_i.c

📁 The OpenMAX DL (Development Layer) APIs contain a comprehensive set of audio, video, signal processi
💻 C
字号:
/** *  * File Name:  omxACAAC_LongTermReconstruct_S32_I.c * OpenMAX DL: v1.0.2 * Revision:   10586 * Date:       Wednesday, March 5, 2008 *  * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. *  *  * * Description: * This file contains module for Long Term Reconstruction for an AAC decoder * */#include "omxtypes.h"#include "armOMX.h"#include "omxAC.h"#include "armAC.h"#include "armCOMM.h"#include "armACAAC_Tables.h"/** * Function:  omxACAAC_LongTermReconstruct_S32_I   (3.2.3.7.1) * * Description: * Reconstruction portion of the LTP loop; adds the vector of decoded  * spectral coefficients and the corresponding spectral-domain LTP output  * vector to obtain a vector of reconstructed spectral samples.  * * Reference: [ISO14496-3], sub-clause 4.6.7  * * Input Arguments: *    *   pSrcDstSpec - pointer to decoded spectral coefficients; coefficients are  *            represented using Q28.3  *   pSrcEstSpec - pointer to the spectral-domain LTP output vector;  *            coefficients are represented using Q28.3  *   samplingFreqIndex - sampling frequency index  *   pLtpFlag - pointer to the vector of scalefactor band LTP indicator flags  * * Output Arguments: *   pSrcDstSpec - pointer to reconstructed spectral coefficient vector;  *            coefficients are represented using Q28.3  * * Return Value: *     *    OMX_Sts_NoErr - no error  *    OMX_Sts_BadArgErr - bad arguments  *    -    one or more of the following pointers is NULL:  *            - pSrcDstSpec,  *            - pSrcEstSpec, or  *            - pLtpFlag  *    -    samplingFreqIndex is outside the range [0,12]  * */OMXResult omxACAAC_LongTermReconstruct_S32_I(     OMX_S32 *pSrcDstSpec,     OMX_S32 *pSrcEstSpec,     OMX_INT *pLtpFlag,     OMX_INT samplingFreqIndex ){    OMX_INT numSwb,sfbNum;    OMX_INT ltpFlag,width,coeffNum;    const OMX_U16 *pOffsetTable;         /* Argument Check */    armRetArgErrIf( pSrcEstSpec == NULL, OMX_Sts_BadArgErr);    armRetArgErrIf( pSrcDstSpec == NULL, OMX_Sts_BadArgErr);    armRetArgErrIf( pLtpFlag    == NULL, OMX_Sts_BadArgErr);    armRetArgErrIf( samplingFreqIndex > 12,  OMX_Sts_BadArgErr);    armRetArgErrIf( samplingFreqIndex < 0 , OMX_Sts_BadArgErr);    /* Processing */    numSwb       = armACAAC_numSwbLong[samplingFreqIndex];    pOffsetTable = armACAAC_swbOffsetLongWindow[samplingFreqIndex];        for(sfbNum = 0 ; sfbNum < numSwb ; sfbNum ++)    {        ltpFlag = pLtpFlag[sfbNum];        width   = pOffsetTable[sfbNum + 1] - pOffsetTable[sfbNum];                if(ltpFlag == 1)        {            for(coeffNum = 0; coeffNum < width ; coeffNum++)            {                pSrcDstSpec[coeffNum] = armSatAdd_S32(pSrcDstSpec[coeffNum],pSrcEstSpec[coeffNum]);            }        }        pSrcDstSpec += width;        pSrcEstSpec += width;    }           return OMX_Sts_NoErr;}/*End of File*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -