亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sp_frm.c

?? GSM半數率源代碼(VSELP) GSM半數率源代碼(VSELP)
?? C
?? 第 1 頁 / 共 5 頁
字號:
    }
    else
    {
      if (j == psvqIndex[iSegment - 1].len - 2)
      {

        /* Then recursion to be done for one more lattice stage */
        /*------------------------------------------------------*/

        /* Copy address of PNew into POld */
        /*--------------------------------*/
        pL_POld = ppL_PAddrs[(j + 1) % 2];

        /* Copy address of the input pL_PBar array into pswPNew; this will */
        /* cause the PNew array to overwrite the input pL_PBar array, thus */
        /* updating it at the final lattice stage of the current segment   */
        /*-----------------------------------------------------------------*/

        pL_PNew = pL_PBar;

        /* Copy address of VNew into VOld */
        /*--------------------------------*/

        pL_VOld = ppL_VAddrs[(j + 1) % 2];

        /* Copy address of the input pL_VBar array into pswVNew; this will */
        /* cause the VNew array to overwrite the input pL_VBar array, thus */
        /* updating it at the final lattice stage of the current segment   */
        /*-----------------------------------------------------------------*/

        pL_VNew = pL_VBar;

      }
    }
  }

  /* Update the pswPBar and pswVBar initial conditions for the AFLAT      */
  /* Rc-VQ search at the next segment.                                    */
  /*----------------------------------------------------------------------*/

  bound = psvqIndex[iSegment].len - 1;

  for (i = 0; i <= bound; i++)
  {
    pswPBar[i] = round(pL_PBar[i]);
    pswVBar[i] = round(pL_VBar[i]);
  }
  for (i = -bound; i < 0; i++)
  {
    pswVBar[i] = round(pL_VBar[i]);
  }

  return;
}

/***************************************************************************
 *
 *    FUNCTION NAME: aflatRecursion
 *
 *    PURPOSE:  Given the Shortword initial condition arrays, pswPBar and
 *              pswVBar, a reflection coefficient vector from the quantizer
 *              (or a prequantizer), and the order of the current Rc-VQ
 *              segment, function aflatRecursion computes and returns the
 *              residual error energy by evaluating the AFLAT recursion.
 *
 *              This is an implementation of equations 4.18 to 4.23.
 *    INPUTS:
 *
 *        pswQntRc[0:NP_AFLAT-1]
 *                     An input reflection coefficient vector from the
 *                     Rc-prequantizer or the Rc-VQ codebook.
 *
 *        pswPBar[0:NP_AFLAT-1]
 *                     The input Shortword array containing the P initial
 *                     conditions for the P-V AFLAT recursion at the current
 *                     Rc-VQ segment. The address of the 0-th element of
 *                     pswVBar is passed in.
 *
 *        pswVBar[-NP_AFLAT+1:NP_AFLAT-1]
 *                     The input Shortword array containing the V initial
 *                     conditions for the P-V AFLAT recursion, at the current
 *                     Rc-VQ segment. The address of the 0-th element of
 *                     pswVBar is passed in.
 *
 *        *ppswPAddrs[0:1]
 *                     An input array containing the address of temporary
 *                     space P1 in its 0-th element, and the address of
 *                     temporary space P2 in its 1-st element. Each of
 *                     these addresses is alternately assigned onto
 *                     pswPNew and pswPOld pointers using modulo
 *                     arithmetic, so as to avoid copying the contents of
 *                     pswPNew array into the pswPOld array at the end of
 *                     each lattice stage of the AFLAT recursion.
 *                     Temporary space P1 and P2 is allocated outside
 *                     aflatRecursion by the calling function aflat.
 *
 *        *ppswVAddrs[0:1]
 *                     An input array containing the address of temporary
 *                     space V1 in its 0-th element, and the address of
 *                     temporary space V2 in its 1-st element. Each of
 *                     these addresses is alternately assigned onto
 *                     pswVNew and pswVOld pointers using modulo
 *                     arithmetic, so as to avoid copying the contents of
 *                     pswVNew array into the pswVOld array at the end of
 *                     each lattice stage of the AFLAT recursion.
 *                     Temporary space V1 and V2 is allocated outside
 *                     aflatRecursion by the calling function aflat.
 *
 *        swSegmentOrder
 *                     This input short word describes the number of
 *                     stages needed to compute the vector
 *                     quantization of the given segment.
 *
 *    OUTPUTS:
 *        None.
 *
 *    RETURN:
 *        swRe         The Shortword value of residual energy for the
 *                     Rc vector, given the pswPBar and pswVBar initial
 *                     conditions.
 *
 *    REFERENCE:  Sub-clause 4.1.4.1 GSM Recommendation 06.20
 *
 *************************************************************************/

Shortword aflatRecursion(Shortword pswQntRc[],
                                Shortword pswPBar[],
                                Shortword pswVBar[],
                                Shortword *ppswPAddrs[],
                                Shortword *ppswVAddrs[],
                                Shortword swSegmentOrder)
{

/*_________________________________________________________________________
 |                                                                         |
 |                            Automatic Variables                          |
 |_________________________________________________________________________|
*/

  Shortword *pswPOld,
        *pswPNew,
        *pswVOld,
        *pswVNew,
         pswQntRcSqd[NP_AFLAT],
         swRe;
  Longword L_sum;
  short int i,
         j,
         bound;                        /* loop control variables */

/*_________________________________________________________________________
 |                                                                         |
 |                              Executable Code                            |
 |_________________________________________________________________________|
*/

  /* Point to PBar and VBar, the initial condition arrays for the AFLAT  */
  /* recursion.                                                          */
  /*---------------------------------------------------------------------*/

  pswPOld = pswPBar;
  pswVOld = pswVBar;

  /* Point to PNew and VNew, the arrays into which updated values of  P  */
  /* and V functions will be written.                                    */
  /*---------------------------------------------------------------------*/

  pswPNew = ppswPAddrs[1];
  pswVNew = ppswVAddrs[1];

  /* Compute the residual error energy due to the selected Rc vector */
  /* using the AFLAT recursion.                                      */
  /*-----------------------------------------------------------------*/

  /* Compute rc squared, used by the recursion */
  /*-------------------------------------------*/

  for (j = 0; j < swSegmentOrder; j++)
  {
    pswQntRcSqd[j] = mult_r(pswQntRc[j], pswQntRc[j]);
  }

  /* Compute the residual error energy due to the selected Rc vector */
  /* using the AFLAT recursion.                                      */
  /*-----------------------------------------------------------------*/

  for (j = 0; j < swSegmentOrder - 1; j++)
  {
    bound = swSegmentOrder - j - 2;

    /* Compute Psubj(i), for i = 0, bound  */
    /*-------------------------------------*/

    for (i = 0; i <= bound; i++)
    {
      L_sum = L_mac(L_ROUND, pswVOld[i], pswQntRc[j]);
      L_sum = L_mac(L_sum, pswVOld[-i], pswQntRc[j]);
      L_sum = L_mac(L_sum, pswPOld[i], pswQntRcSqd[j]);
      L_sum = L_msu(L_sum, pswPOld[i], SW_MIN);
      pswPNew[i] = extract_h(L_sum);
    }

    /* Check if potential for limiting exists. */
    /*-----------------------------------------*/

    if (sub(pswPNew[0], 0x4000) >= 0)
      iLimit = 1;

    /* Compute the new Vsubj(i) */
    /*--------------------------*/

    for (i = -bound; i < 0; i++)
    {
      L_sum = L_msu(L_ROUND, pswVOld[i + 1], SW_MIN);
      L_sum = L_mac(L_sum, pswQntRcSqd[j], pswVOld[-i - 1]);
      L_sum = L_mac(L_sum, pswQntRc[j], pswPOld[-i - 1]);
      L_sum = L_mac(L_sum, pswQntRc[j], pswPOld[-i - 1]);
      pswVNew[i] = extract_h(L_sum);
    }

    for (i = 0; i <= bound; i++)
    {
      L_sum = L_msu(L_ROUND, pswVOld[i + 1], SW_MIN);
      L_sum = L_mac(L_sum, pswQntRcSqd[j], pswVOld[-i - 1]);
      L_sum = L_mac(L_sum, pswQntRc[j], pswPOld[i + 1]);
      L_sum = L_mac(L_sum, pswQntRc[j], pswPOld[i + 1]);
      pswVNew[i] = extract_h(L_sum);
    }

    if (j < swSegmentOrder - 2)
    {

      /* Swap POld and PNew buffers, using modulo addressing */
      /*-----------------------------------------------------*/

      pswPOld = ppswPAddrs[(j + 1) % 2];
      pswPNew = ppswPAddrs[j % 2];

      /* Swap VOld and VNew buffers, using modulo addressing */
      /*-----------------------------------------------------*/

      pswVOld = ppswVAddrs[(j + 1) % 2];
      pswVNew = ppswVAddrs[j % 2];

    }
  }

  /* Computing Psubj(0) for the last lattice stage */
  /*-----------------------------------------------*/

  j = swSegmentOrder - 1;

  L_sum = L_mac(L_ROUND, pswVNew[0], pswQntRc[j]);
  L_sum = L_mac(L_sum, pswVNew[0], pswQntRc[j]);
  L_sum = L_mac(L_sum, pswPNew[0], pswQntRcSqd[j]);
  L_sum = L_msu(L_sum, pswPNew[0], SW_MIN);
  swRe = extract_h(L_sum);

  /* Return the residual energy corresponding to the reflection   */
  /* coefficient vector being evaluated.                          */
  /*--------------------------------------------------------------*/

  return (swRe);                       /* residual error is returned */

}

/***************************************************************************
 *
 *   FUNCTION NAME: bestDelta
 *
 *   PURPOSE:
 *
 *     This function finds the delta-codeable lag which maximizes CC/G.
 *
 *   INPUTS:
 *
 *     pswLagList[0:siNumLags-1]
 *
 *                     List of delta-codeable lags over which search is done.
 *
 *     pswCSfrm[0:127]
 *
 *                     C(k) sequence, k integer.
 *
 *     pswGSfrm[0:127]
 *
 *                     G(k) sequence, k integer.
 *
 *     siNumLags
 *
 *                     Number of lags in contention.
 *
 *     siSfrmIndex
 *
 *                     The index of the subframe to which the delta-code
 *                     applies.
 *
 *
 *   OUTPUTS:
 *
 *     pswLTraj[0:3]
 *
 *                     The winning lag is put into this array at
 *                     pswLTraj[siSfrmIndex]
 *
 *     pswCCTraj[0:3]
 *
 *                     The corresponding winning C**2 is put into this
 *                     array at pswCCTraj[siSfrmIndex]
 *
 *     pswGTraj[0:3]
 *
 *                     The corresponding winning G is put into this arrray
 *                     at pswGTraj[siSfrmIndex]
 *
 *   RETURN VALUE:
 *
 *     none
 *
 *   DESCRIPTION:
 *
 *   REFERENCE:  Sub-clause 4.1.8.3 of GSM Recommendation 06.20
 *
 *   KEYWORDS:
 *
 *************************************************************************/

void   bestDelta(Shortword pswLagList[],
                        Shortword pswCSfrm[],
                        Shortword pswGSfrm[],
                        short int siNumLags,
                        short int siSfrmIndex,
                        Shortword pswLTraj[],
                        Shortword pswCCTraj[],
                        Shortword pswGTraj[])
{

/*_________________________________________________________________________
 |                                                                         |
 |                            Automatic Variables                          |
 |_________________________________________________________________________|
*/

  Shortword pswCBuf[DELTA_LEVELS + CG_INT_MACS + 2],
         pswGBuf[DELTA_LEVELS + CG_INT_MACS + 2],
         pswCInterp[DELTA_LEVELS + 2],
         pswGInterp[DELTA_LEVELS + 2],
        *psw1,
        *psw2,
         swCmaxSqr,
         swGmax,
         swPeak;
  short int siIPLo,
         siRemLo,
         siIPHi,
         siRemHi,
         siLoLag,
         siHiLag,
         siI;

/*_________________________________________________________________________
 |                                                                         |
 |                              Executable Code                            |
 |_________________________________________________________________________|
*/

  /* get bounds for integer C's and G's needed for interpolation */
  /* get integer and fractional portions of boundary lags        */
  /* ----------------------------------------------------------- */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品伊人久久久久av影院| 中文乱码免费一区二区| 91精品国产黑色紧身裤美女| 国产日韩欧美综合在线| 亚洲综合激情另类小说区| 国产一区二区三区黄视频| 欧美高清视频不卡网| 中文字幕亚洲一区二区av在线| 蜜臀精品一区二区三区在线观看 | 在线国产亚洲欧美| 精品国产免费一区二区三区四区| 中文字幕日韩精品一区| 日本视频在线一区| 日本韩国一区二区三区| 中文子幕无线码一区tr | 精品成人在线观看| 天天爽夜夜爽夜夜爽精品视频| 成人av网站大全| 久久一留热品黄| 久久国产欧美日韩精品| 欧美日韩国产片| 亚洲综合色区另类av| 91在线视频观看| 国产精品美女一区二区| 国产成人自拍网| 国产视频911| 国产91丝袜在线播放| 久久久精品tv| 51精品秘密在线观看| 国产一区二区不卡老阿姨| 日韩免费一区二区| 久久精品国产在热久久| 欧美一区二区日韩| 美女视频网站黄色亚洲| 91精品国产综合久久精品app | 91在线精品一区二区三区| 日韩精品福利网| 国产大陆a不卡| 亚洲人成网站在线| 国产真实乱对白精彩久久| 日韩一级成人av| 免费人成精品欧美精品| 欧美美女一区二区在线观看| 亚洲v日本v欧美v久久精品| 欧美日韩免费不卡视频一区二区三区| 亚洲欧美偷拍三级| 六月丁香综合在线视频| 欧美影院一区二区三区| 欧美一级夜夜爽| 美女免费视频一区二区| 337p粉嫩大胆噜噜噜噜噜91av | 91精品久久久久久蜜臀| 麻豆精品一区二区三区| 日韩欧美精品在线视频| 成人性视频网站| 亚洲精品一卡二卡| 3d成人h动漫网站入口| 蜜桃av一区二区三区| 久久青草国产手机看片福利盒子| 国产99久久久国产精品免费看| **欧美大码日韩| 7777精品伊人久久久大香线蕉完整版| 午夜精品一区二区三区三上悠亚| 欧美午夜精品久久久| 久久99日本精品| 亚洲色图.com| 精品国产91亚洲一区二区三区婷婷| 成人一区二区三区中文字幕| 亚洲国产aⅴ成人精品无吗| 亚洲精品在线观看网站| 91免费在线看| 国产自产v一区二区三区c| 亚洲卡通欧美制服中文| 欧美mv日韩mv国产网站app| 91在线国产观看| 精品一区二区在线视频| 亚洲精品免费在线观看| 精品国产乱码久久久久久老虎 | 久久午夜羞羞影院免费观看| 91网站视频在线观看| 日韩av中文在线观看| 中文字幕在线观看不卡视频| 日韩一区二区不卡| 色哟哟欧美精品| 国产伦精品一区二区三区免费迷 | 国产精品电影一区二区| 制服丝袜亚洲色图| 91网站在线播放| 成人一区二区视频| 国产精品一品二品| 日韩成人精品在线| 亚洲电影一区二区| 国产精品美女久久久久久久久| 欧美一区二区三区在线视频 | 欧美大片拔萝卜| 欧美女孩性生活视频| 91黄色激情网站| 91一区二区在线| 本田岬高潮一区二区三区| 国产电影一区在线| 国产高清视频一区| 九一九一国产精品| 免费在线观看精品| 免费视频最近日韩| 免费观看日韩电影| 秋霞午夜鲁丝一区二区老狼| 亚洲午夜在线电影| 亚洲电影第三页| 午夜精品福利一区二区三区av | 国内一区二区视频| 国产在线看一区| 韩国午夜理伦三级不卡影院| 免播放器亚洲一区| 美女脱光内衣内裤视频久久网站| 偷拍亚洲欧洲综合| 午夜久久福利影院| 日本亚洲视频在线| 久久国产精品99精品国产| 麻豆国产欧美日韩综合精品二区| 天堂蜜桃91精品| 蜜桃视频一区二区三区| 麻豆精品一区二区三区| 狠狠狠色丁香婷婷综合激情| 国产大陆亚洲精品国产| av不卡在线播放| 色婷婷久久一区二区三区麻豆| 日韩视频一区二区三区在线播放| 91.xcao| 678五月天丁香亚洲综合网| 欧美人狂配大交3d怪物一区| 欧美老肥妇做.爰bbww| 欧美一级一级性生活免费录像| 精品三级在线观看| 国产午夜精品久久久久久免费视| av在线不卡网| 蜜臀av一区二区在线观看| 欧美性一区二区| 欧美一区午夜精品| 亚洲精品在线电影| 国产三级欧美三级| 亚洲欧洲韩国日本视频| 亚洲成av人影院| 国产一区在线观看视频| av一区二区不卡| 欧美日韩视频在线第一区| 91精品国产综合久久精品性色| 欧美精品一区二区精品网| 国产精品毛片高清在线完整版| 一区二区在线观看免费视频播放| 日韩影院免费视频| 成人小视频在线观看| 欧美探花视频资源| 久久欧美一区二区| 亚洲成a人v欧美综合天堂下载| 国产一区欧美二区| 91国产成人在线| 精品国产91久久久久久久妲己| 国产精品无圣光一区二区| 亚洲成a人在线观看| 成人自拍视频在线观看| 老司机免费视频一区二区| 欧美不卡一区二区三区四区| 中文字幕一区二区三| 亚洲精品一区二区三区在线观看| 国产精品沙发午睡系列990531| 丝袜亚洲另类丝袜在线| 国产米奇在线777精品观看| 欧美在线不卡一区| 国产午夜精品一区二区| 亚洲国产精品久久人人爱| 国产aⅴ精品一区二区三区色成熟| 欧美午夜电影一区| 国产精品沙发午睡系列990531| 奇米四色…亚洲| 欧美午夜视频网站| 国产精品欧美综合在线| 捆绑变态av一区二区三区 | 亚洲v日本v欧美v久久精品| 高清beeg欧美| 91精品国产一区二区| 曰韩精品一区二区| 成人动漫在线一区| 久久九九全国免费| 国内精品视频一区二区三区八戒| 欧美午夜不卡在线观看免费| 亚洲精品视频一区二区| 国产91精品一区二区麻豆网站| 91国偷自产一区二区使用方法| 日韩专区一卡二卡| 亚洲同性gay激情无套| 国产精品久久久久久亚洲伦| 国内成+人亚洲+欧美+综合在线| 欧美日韩一区二区三区在线看| 亚洲欧美电影院| 成人网页在线观看| 久久久天堂av| 极品少妇xxxx精品少妇偷拍| 欧美草草影院在线视频| 国内成+人亚洲+欧美+综合在线| 欧美大尺度电影在线|