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

📄 sbrdec_filter_fp.c

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 C
字号:
/*//////////////////////////////////////////////////////////////////////////////////                  INTEL CORPORATION PROPRIETARY INFORMATION//     This software is supplied under the terms of a license agreement or//     nondisclosure agreement with Intel Corporation and may not be copied//     or disclosed except in accordance with the terms of that agreement.//          Copyright(c) 2005 Intel Corporation. All Rights Reserved.//*//********************************************************************/#include<ipps.h>#include<ippac.h>#include<math.h>#include<string.h>#include "sbrdec.h"#include "sbrdec_api_fp.h"#include "aaccmn_chmap.h"/********************************************************************/Ipp32s sbrdecInitFilterOne( sSbrDecFilter* pDC, int* pSizeWorkBuf ){  Ipp8u*  pInitBuf;  Ipp32s  SizeSpec, SizeInitBuf, SizeWorkBuf;  Ipp32s  vecSizeWorkBuf[6];  int ch;  IppStatus status;  //for (ch = 0; ch < 2; ch++) {/* -------------------------------- Analysis_SBR ---------------------------- */// HEAAC_LP_MODE// (1) GetSize    status =      ippsAnalysisFilterGetSize_SBR_RToR_32f(&SizeSpec, &SizeInitBuf,                                             &SizeWorkBuf);// (2) ext allocate    if (SizeSpec != 0) {      pDC->pQmfMemSpec[0] = ippsMalloc_8u(SizeSpec);      pDC->pQmfMemSpec[1] = ippsMalloc_8u(SizeSpec);    } else {      pDC->pQmfMemSpec[0] = NULL;      pDC->pQmfMemSpec[1] = NULL;    }    if (SizeInitBuf != 0) {      pInitBuf = ippsMalloc_8u(SizeInitBuf);    } else {      pInitBuf = NULL;    }    vecSizeWorkBuf[0] = SizeWorkBuf;// (3) init    for(ch=0; ch<2; ch++){      status =      ippsAnalysisFilterInit_SBR_RToR_32f( &(pDC->pAnalysisFilterSpec_LPmode[ch]),                                           pDC->pQmfMemSpec[ch], pInitBuf);    }// (4) free initbuf    if (pInitBuf != NULL) {      ippsFree(pInitBuf);    }// HEAAC_HQ_MODE// (1) GetSize    status = ippsAnalysisFilterGetSize_SBR_RToC_32f(&SizeSpec, &SizeInitBuf,                                             &SizeWorkBuf);// (2) ext allocate    if (SizeSpec != 0) {      pDC->pQmfMemSpec[2] = ippsMalloc_8u(SizeSpec);      pDC->pQmfMemSpec[3] = ippsMalloc_8u(SizeSpec);    } else {      pDC->pQmfMemSpec[2] = NULL;      pDC->pQmfMemSpec[3] = NULL;    }    if (SizeInitBuf != 0) {      pInitBuf = ippsMalloc_8u(SizeInitBuf);    } else {      pInitBuf = NULL;    }    vecSizeWorkBuf[1] = SizeWorkBuf;// (3) init    for(ch=0; ch<2; ch++){      status =      ippsAnalysisFilterInit_SBR_RToC_32f( &(pDC->pAnalysisFilterSpec_HQmode[ch]),                                           pDC->pQmfMemSpec[2+ch], pInitBuf);    }// (4) free initbuf    if (pInitBuf != NULL) {      ippsFree(pInitBuf);    }/* -------------------------------- Synthesis_SBR ---------------------------- */// HEAAC_LP_MODE// (1) GetSize    status =      ippsSynthesisFilterGetSize_SBR_RToR_32f(&SizeSpec, &SizeInitBuf,                                              &SizeWorkBuf);// (2) ext allocate    if (SizeSpec != 0) {      pDC->pQmfMemSpec[4] = ippsMalloc_8u(SizeSpec);      pDC->pQmfMemSpec[5] = ippsMalloc_8u(SizeSpec);    } else {      pDC->pQmfMemSpec[4] = NULL;      pDC->pQmfMemSpec[5] = NULL;    }    if (SizeInitBuf != 0) {      pInitBuf = ippsMalloc_8u(SizeInitBuf);    } else {      pInitBuf = NULL;    }    vecSizeWorkBuf[2] = SizeWorkBuf;// (3) init    for(ch=0; ch<2; ch++){      status =      ippsSynthesisFilterInit_SBR_RToR_32f( &(pDC->pSynthesisFilterSpec_LPmode[ch]),                                           pDC->pQmfMemSpec[4+ch], pInitBuf);    }// (4) free initbuf    if (pInitBuf != NULL) {      ippsFree(pInitBuf);    }// HEAAC_HQ_MODE// (1) GetSize    status =      ippsSynthesisFilterGetSize_SBR_CToR_32f(&SizeSpec, &SizeInitBuf,                                              &SizeWorkBuf);// (2) ext allocate    if (SizeSpec != 0) {      pDC->pQmfMemSpec[6] = ippsMalloc_8u(SizeSpec);      pDC->pQmfMemSpec[7] = ippsMalloc_8u(SizeSpec);    } else {      pDC->pQmfMemSpec[6] = NULL;      pDC->pQmfMemSpec[7] = NULL;    }    if (SizeInitBuf != 0) {      pInitBuf = ippsMalloc_8u(SizeInitBuf);    } else {      pInitBuf = NULL;    }    vecSizeWorkBuf[3] = SizeWorkBuf;// (3) init    for(ch=0; ch<2; ch++){      status =      ippsSynthesisFilterInit_SBR_CToR_32f( &(pDC->pSynthesisFilterSpec_HQmode[ch]),                                            pDC->pQmfMemSpec[6+ch],pInitBuf);    }// (4) free initbuf    if (pInitBuf != NULL) {      ippsFree(pInitBuf);    }/* -------------------------------- Synthesis Down SBR ---------------------------- *///HEAAC_LP_MODE// (1) GetSize    status =      ippsSynthesisDownFilterGetSize_SBR_RToR_32f(&SizeSpec, &SizeInitBuf,                                                  &SizeWorkBuf);// (2) ext allocate    if (SizeSpec != 0) {      pDC->pQmfMemSpec[8] = ippsMalloc_8u(SizeSpec);      pDC->pQmfMemSpec[9] = ippsMalloc_8u(SizeSpec);    } else {      pDC->pQmfMemSpec[8] = NULL;      pDC->pQmfMemSpec[9] = NULL;    }    if (SizeInitBuf != 0) {      pInitBuf = ippsMalloc_8u(SizeInitBuf);    } else {      pInitBuf = NULL;    }    vecSizeWorkBuf[4] = SizeWorkBuf;// (3) init    for(ch=0; ch<2; ch++){      status =      ippsSynthesisDownFilterInit_SBR_RToR_32f( &(pDC->pSynthesisDownFilterSpec_LPmode[ch]),                                                pDC->pQmfMemSpec[8+ch], pInitBuf);    }// (4) free initbuf    if (pInitBuf != NULL) {      ippsFree(pInitBuf);    }// HEAAC_HQ_MODE// (1) GetSize    status =      ippsSynthesisDownFilterGetSize_SBR_CToR_32f(&SizeSpec, &SizeInitBuf,                                                  &SizeWorkBuf);// (2) ext allocate    if (SizeSpec != 0) {      pDC->pQmfMemSpec[10] = ippsMalloc_8u(SizeSpec);      pDC->pQmfMemSpec[11] = ippsMalloc_8u(SizeSpec);    } else {      pDC->pQmfMemSpec[10] = NULL;      pDC->pQmfMemSpec[11] = NULL;    }    if (SizeInitBuf != 0) {      pInitBuf = ippsMalloc_8u(SizeInitBuf);    } else {      pInitBuf = NULL;    }    vecSizeWorkBuf[5] = SizeWorkBuf;// (3) init    for(ch=0; ch<2; ch++){      status =      ippsSynthesisDownFilterInit_SBR_CToR_32f( &(pDC->pSynthesisDownFilterSpec_HQmode[ch]),                                                pDC->pQmfMemSpec[10+ch], pInitBuf);    }// (4) free initbuf    if (pInitBuf != NULL) {      ippsFree(pInitBuf);    }  //} CH  ippsMax_32s(vecSizeWorkBuf, 6, pSizeWorkBuf);  return 0; //OK}/********************************************************************/Ipp32s sbrdecInitFilter( sSbrDecFilter* pDC[CH_MAX], int* pSizeWorkBuf ){  int i;  for (i=0; i<CH_MAX; i++){    pDC[i] = (sSbrDecFilter*)ippsMalloc_8u( sizeof(sSbrDecFilter) );    if( pDC[i] )      sbrdecInitFilterOne( pDC[i], pSizeWorkBuf );  }  return 0;//OK;}/********************************************************************/Ipp32s sbrdecFreeFilter( sSbrDecFilter* pDC[CH_MAX] ){  int ch;  int i;  if( pDC == 0 )    return 0;  for(ch=0; ch<CH_MAX; ch++)  {    if( pDC[ch] == 0 )      continue;    for(i=0; i<2; i++)    {      if( pDC[ch]->pQmfMemSpec[i] )         ippsFree( pDC[ch]->pQmfMemSpec[i] );    }  }  return 0;//OK;}/********************************************************************//* EOF */

⌨️ 快捷键说明

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