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

📄 mp3dec_layer3_int.c

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 C
📖 第 1 页 / 共 5 页
字号:
  {    17331497,    57555973,   108133460,   174813955,   536870935,   412195909,   666376477,  1251956820,  1039402258, -1134308520, -1631581894, -1046001545,  -791820975, -1296121091,  -554439031,  -487758516,  -437181022,  -396956545,  -364090208,  -338355488,  -318280992,  -302629280,  -581104896,  -281462400,  -272600668,  -250142024,  -213167061,  -163568839,  -103612219,   -35888559,           0,           0,           0,           0,           0,           0  },  {           0,           0,           0,           0,           0,           0,   161882836,   787012958,   936585517, -1220582009, -1900017357, -1229622214,  -892684672, -1402911360,  -581345472,  -499601056,  -440953440,  -397334720,  -363743675,  -335460810,  -310736462,  -288622674,  -536870920,  -249660198,  -231892947,  -214801826,  -198099932,  -181525144,  -164823238,  -147732101,  -129964873,  -222379216,   -91002380,   -68888615,   -44164253,   -15881392  }};static const Ipp32s _pIMDCTWinShort[]={   280302863,   821806413,  1307305214,  1703713325,  1984016189,  2129111628,  2129111628,  1984016189,  1703713325,  1307305214,   821806413,   280302863};/*///////////////////////////////////////////////////////////////////////////////  Name://    _sIMDCT_36_32s////  Description://    Performs 36 points IMDCT and windowing for long block.////  Input Arguments://    pSrc      - pointer to the input buffer which is the//                output of alias reduction.//    blockType - indication of the window type://                  0: normal window;//                  1: start block;//                  2: short block;//                  3: stop block.////  Output Arguments://    pDst      - pointer to the output buffer of IMDCT for long block.////  Returns://    ippStsNoErr     - no error.//    ippStsBadArgErr - bad arguments.////  Notes://    Input 18 data are in Q = IPP_MP3_REQUANT_Q.//    output 36 data are in Q = IPP_MP3_HYBRID_Q.//    about 460 cycle(evaluate).*/static void _sIMDCT_36_32s(Ipp32s* pSrc, Ipp32s* pDst, int blockType){  int i;  static const Ipp32s c9_50   =  2017974528;    /* Q30, max 1.9 */  static const Ipp32s c9_51   =  1645067904;  static const Ipp32s c9_52   =   372906624;  static const Ipp32s c9_40   =  2114858496;  static const Ipp32s c9_41   =  1380375936;  static const Ipp32s c9_42   =   734482688;  static const Ipp32s c9_43   =  1859775360;  static const Ipp32s const_0 =   759250112;  Ipp64s pSrc64[4];  /* input aliasing for 36 point IDCT */  /* stage 1 */  {    Ipp32s tmp0, tmp2;    Ipp32s t0, t1, t2, t3;    t0 = pSrc[0];    t1 = pSrc[1];    pDst[0] = t0;    tmp0 = t0 + t1;    pDst[1] = tmp0;    for(i = 0; i <= 12; i += 4)    {      t2 = pSrc[2+i];      t0 = pSrc[4+i];      t3 = pSrc[3+i];      pDst[2+i] = t1 + t2;      t1 = pSrc[5+i];      tmp2 = t2 + t3;      pDst[3+i] = tmp0 + tmp2;      pDst[4+i] = t3 + t0;      tmp0 = t0 + t1;      pDst[5+i] = tmp2 + tmp0;    }    /* about 60 cycle */  }  {  /**************************************************************************  //  Fast 9 Point Inverse Discrete Cosine Transform  //  By  Francois-Raymond Boyer  //    mailto:boyerf@iro.umontreal.ca  //    http://www.iro.umontreal.ca/~boyerf  //  The code has been optimized for Intel processors  //  (takes a lot of time to convert float to and from iternal  //  FPU representation)  //  It is a simple "factorization" of the IDCT matrix.  //  ------------------------------------------------------------------------  //  Then the code was optimized by Vadim Pisarevsky  //  (two additions saved using <s> variable)  //  ***************************************************************************/  {    /* stage 2, right shift 2 bits */

⌨️ 快捷键说明

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