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

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

?? sp_frm.c

?? GSM半數率源代碼(VSELP) GSM半數率源代碼(VSELP)
?? C
?? 第 1 頁 / 共 5 頁
字號:

      /* initialize candidate list */
      /*---------------------------*/

      quantList.iNum = psrPreQSz[iSeg - 1];
      quantList.iRCIndex = 0;

      /* do aflat for all vectors in the list */
      /*--------------------------------------*/

      setupPreQ(iSeg, quantList.iRCIndex);        /* set up vector ptrs */

      for (iCnt = 0; iCnt < quantList.iNum; iCnt++)
      {
        /* get a vector */
        /*--------------*/

        getNextVec(pswRc);

        /* clear the limiter flag */
        /*------------------------*/

        iLimit = 0;

        /* find the error values for each vector */
        /*---------------------------------------*/

        quantList.pswPredErr[iCnt] =
                aflatRecursion(&pswRc[psvqIndex[iSeg - 1].l],
                               pswPBar, pswVBar,
                               ppswPAddrs, ppswVAddrs,
                               psvqIndex[iSeg - 1].len);

        /* check the limiter flag */
        /*------------------------*/

        if (iLimit)
        {
          quantList.pswPredErr[iCnt] = 0x7fff;    /* set error to bad value */
        }

      }                                  /* done list loop */

      /* find 4 best prequantizer levels */
      /*---------------------------------*/

      findBestInQuantList(quantList, 4, bestPql);

      for (iVec = 0; iVec < 4; iVec++)
      {

        /* initialize quantizer list */  
        /*---------------------------*/

        quantList.iNum = psrQuantSz[iSeg - 1];
        quantList.iRCIndex = bestPql[iVec].iRCIndex * psrQuantSz[iSeg - 1];

        setupQuant(iSeg, quantList.iRCIndex);     /* set up vector ptrs */

        /* do aflat recursion on each element of list */
        /*--------------------------------------------*/

        for (iCnt = 0; iCnt < quantList.iNum; iCnt++)
        {

          /* get a vector */
          /*--------------*/

          getNextVec(pswRc);

          /* clear the limiter flag */
          /*------------------------*/

          iLimit = 0;

          /* find the error values for each vector */
          /*---------------------------------------*/

          quantList.pswPredErr[iCnt] =
                  aflatRecursion(&pswRc[psvqIndex[iSeg - 1].l],
                                 pswPBar, pswVBar,
                                 ppswPAddrs, ppswVAddrs,
                                 psvqIndex[iSeg - 1].len);

          /* check the limiter flag */
          /*------------------------*/

          if (iLimit)
          {
            quantList.pswPredErr[iCnt] = 0x7fff;  /* set error to the worst
                                                   * value */
          }

        }                                /* done list loop */

        /* find best quantizer vector for this segment, and save it */
        /*----------------------------------------------------------*/

        findBestInQuantList(quantList, 1, bestQl);
        if (iVec == 0)
        {
          bestQl[iSeg] = bestQl[0];
        }
        else
        {
          if (sub(bestQl[iSeg].pswPredErr[0],
                  bestQl[0].pswPredErr[0]) > 0)
          {
            bestQl[iSeg] = bestQl[0];
          }
        }
      }

      /* find the quantized reflection coefficients */
      /*--------------------------------------------*/

      setupQuant(iSeg, bestQl[iSeg].iRCIndex);    /* set up vector ptrs */
      getNextVec((Shortword *) (pswFinalRc - 1));


      /* Update pBarFull and vBarFull for the next Rc-VQ segment, and */
      /* update the pswPBar and pswVBar for the next Rc-VQ segment    */
      /*--------------------------------------------------------------*/

      if (iSeg < LPC_VQ_SEG)
      {

        aflatNewBarRecursionL(&pswFinalRc[psvqIndex[iSeg - 1].l - 1], iSeg,
                              pL_PBarFull, pL_VBarFull, pswPBar, pswVBar);

      }

    }

    /* find the quantizer index (the values */
    /* to be output in the symbol file)     */
    /*--------------------------------------*/

    for (iSeg = 1; iSeg <= LPC_VQ_SEG; iSeg++)
    {
      piVQCodewds[iSeg - 1] = bestQl[iSeg].iRCIndex;
    }

  }
  
}

/***************************************************************************
 *
 *    FUNCTION NAME: aflatNewBarRecursionL
 *
 *    PURPOSE:  Given the Longword initial condition arrays, pL_PBarFull and
 *              pL_VBarFull, a reflection coefficient vector selected from
 *              the Rc-VQ at the current stage, and index of the current
 *              Rc-VQ stage, the AFLAT recursion is evaluated to obtain the
 *              updated initial conditions for the AFLAT recursion at the
 *              next Rc-VQ stage. At each lattice stage the pL_PBarFull and
 *              pL_VBarFull arrays are shifted to be RSHIFT down from full
 *              scale. Two sets of initial conditions are output:
 *
 *              1) pswPBar and pswVBar Shortword arrays are used at the
 *                 next Rc-VQ segment as the AFLAT initial conditions
 *                 for the Rc prequantizer and the Rc quantizer searches.
 *              2) pL_PBarFull and pL_VBarFull arrays are output and serve
 *                 as the initial conditions for the function call to
 *                 aflatNewBarRecursionL at the next lattice stage.
 *
 *
 *              This is an implementation of equations 4.24 through
 *              4.27.
 *    INPUTS:
 *
 *        pswQntRc[0:NP_AFLAT-1]
 *                     An input reflection coefficient vector selected from
 *                     the Rc-VQ quantizer at the current stage.
 *
 *        iSegment
 *                    An input describing the current Vector quantizer
 *                    quantizer segment (1, 2, or 3).
 *
 *        RSHIFT      The number of shifts down from full scale the
 *                     pL_PBarFull and pL_VBarFull arrays are to be shifted
 *                     at each lattice stage. RSHIFT is a global constant.
 *
 *        pL_PBar[0:NP-1]
 *                     A Longword input array containing the P initial
 *                     conditions for the full 10-th order LPC filter.
 *                     The address of the 0-th element of  pL_PBarFull
 *                     is passed in when function aflatNewBarRecursionL
 *                     is called.
 *
 *        pL_VBar[-NP+1:NP-1]
 *                     A Longword input array containing the V initial
 *                     conditions for the full 10-th order LPC filter.
 *                     The address of the 0-th element of  pL_VBarFull
 *                     is passed in when function aflatNewBarRecursionL
 *                     is called.
 *
 *    OUTPUTS:
 *
 *        pL_PBar[0:NP-1]
 *                     A Longword output array containing the updated P
 *                     initial conditions for the full 10-th order LPC
 *                     filter.
 *
 *        pL_VBar[-NP+1:NP-1]
 *                     A Longword output array containing the updated V
 *                     initial conditions for the full 10-th order LPC
 *                     filter.
 *
 *        pswPBar[0:NP_AFLAT-1]
 *                     An output Shortword array containing the P initial
 *                     conditions for the P-V AFLAT recursion for the next
 *                     Rc-VQ segment. The address of the 0-th element of
 *                     pswVBar is passed in.
 *
 *        pswVBar[-NP_AFLAT+1:NP_AFLAT-1]
 *                     The output Shortword array containing the V initial
 *                     conditions for the P-V AFLAT recursion, for the next
 *                     Rc-VQ segment. The address of the 0-th element of
 *                     pswVBar is passed in.
 *
 *    RETURN:
 *        None.
 *
 *    REFERENCE:  Sub-clause 4.1.4.1 GSM Recommendation 06.20
 *
 *************************************************************************/

void   aflatNewBarRecursionL(Shortword pswQntRc[], int iSegment,
                                    Longword pL_PBar[], Longword pL_VBar[],
                                 Shortword pswPBar[], Shortword pswVBar[])
{

/*_________________________________________________________________________
 |                                                                         |
 |                            Automatic Variables                          |
 |_________________________________________________________________________|
*/
  Longword *pL_VOld,
        *pL_VNew,
        *pL_POld,
        *pL_PNew,
        *ppL_PAddrs[2],
        *ppL_VAddrs[2],
         pL_VOldSpace[2 * NP - 1],
         pL_VNewSpace[2 * NP - 1],
         pL_POldSpace[NP],
         pL_PNewSpace[NP],
         L_temp,
         L_sum;
  Shortword swQntRcSq,
         swNShift;
  short int i,
         j,
         bound;

/*_________________________________________________________________________
 |                                                                         |
 |                              Executable Code                            |
 |_________________________________________________________________________|
*/
  /* Copy the addresses of the input PBar and VBar arrays into  */
  /* pL_POld and pL_VOld respectively.                          */
  /*------------------------------------------------------------*/

  pL_POld = pL_PBar;
  pL_VOld = pL_VBar;

  /* Point to PNew and VNew temporary arrays */
  /*-----------------------------------------*/

  pL_PNew = pL_PNewSpace;
  pL_VNew = pL_VNewSpace + NP - 1;

  /* Load the addresses of the temporary buffers into the address arrays. */
  /* The address arrays are used to swap PNew and POld (VNew and VOLd)    */
  /* buffers to avoid copying of the buffer contents at the end of a      */
  /* lattice filter stage.                                                */
  /*----------------------------------------------------------------------*/

  ppL_PAddrs[0] = pL_POldSpace;
  ppL_PAddrs[1] = pL_PNewSpace;
  ppL_VAddrs[0] = pL_VOldSpace + NP - 1;
  ppL_VAddrs[1] = pL_VNewSpace + NP - 1;


  /* Update AFLAT recursion initial conditions for searching the Rc vector */
  /* quantizer at the next VQ segment.                                     */
  /*-------------------------------------------------------------------*/

  for (j = 0; j < psvqIndex[iSegment - 1].len; j++)
  {
    bound = NP - psvqIndex[iSegment - 1].l - j - 1;

    /* Compute rc squared, used by the recursion at the j-th lattice stage. */
    /*---------------------------------------------------------------------*/

    swQntRcSq = mult_r(pswQntRc[j], pswQntRc[j]);

    /* Calculate PNew(i) */
    /*-------------------*/

    L_temp = L_mpy_ls(pL_VOld[0], pswQntRc[j]);
    L_sum = L_add(L_temp, pL_POld[0]);
    L_temp = L_mpy_ls(pL_POld[0], swQntRcSq);
    L_sum = L_add(L_temp, L_sum);
    L_temp = L_mpy_ls(pL_VOld[0], pswQntRc[j]);
    L_temp = L_add(L_sum, L_temp);

    /* Compute the number of bits to shift left by to achieve  */
    /* the nominal value of PNew[0] which is right shifted by  */
    /* RSHIFT bits relative to full scale.                     */
    /*---------------------------------------------------------*/

    swNShift = sub(norm_s(extract_h(L_temp)), RSHIFT);

    /* Rescale PNew[0] by shifting left by swNShift bits */
    /*---------------------------------------------------*/

    pL_PNew[0] = L_shl(L_temp, swNShift);

    for (i = 1; i <= bound; i++)
    {
      L_temp = L_mpy_ls(pL_VOld[i], pswQntRc[j]);
      L_sum = L_add(L_temp, pL_POld[i]);
      L_temp = L_mpy_ls(pL_POld[i], swQntRcSq);
      L_sum = L_add(L_temp, L_sum);
      L_temp = L_mpy_ls(pL_VOld[-i], pswQntRc[j]);
      L_temp = L_add(L_sum, L_temp);
      pL_PNew[i] = L_shl(L_temp, swNShift);
    }

    /* Calculate VNew(i) */
    /*-------------------*/

    for (i = -bound; i < 0; i++)
    {
      L_temp = L_mpy_ls(pL_VOld[-i - 1], swQntRcSq);
      L_sum = L_add(L_temp, pL_VOld[i + 1]);
      L_temp = L_mpy_ls(pL_POld[-i - 1], pswQntRc[j]);
      L_temp = L_shl(L_temp, 1);
      L_temp = L_add(L_temp, L_sum);
      pL_VNew[i] = L_shl(L_temp, swNShift);
    }
    for (i = 0; i <= bound; i++)
    {
      L_temp = L_mpy_ls(pL_VOld[-i - 1], swQntRcSq);
      L_sum = L_add(L_temp, pL_VOld[i + 1]);
      L_temp = L_mpy_ls(pL_POld[i + 1], pswQntRc[j]);
      L_temp = L_shl(L_temp, 1);
      L_temp = L_add(L_temp, L_sum);
      pL_VNew[i] = L_shl(L_temp, swNShift);
    }

    if (j < psvqIndex[iSegment - 1].len - 2)
    {

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

      pL_POld = ppL_PAddrs[(j + 1) % 2];
      pL_PNew = ppL_PAddrs[j % 2];

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

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产一区二区三区| 欧美在线观看18| 美日韩一级片在线观看| 国产在线看一区| www.亚洲在线| 欧美一级生活片| 国产精品区一区二区三| 亚洲黄色av一区| 一本大道久久a久久综合| 欧美艳星brazzers| 国产三级三级三级精品8ⅰ区| 亚洲婷婷综合色高清在线| 日本视频在线一区| 色综合天天综合| 久久奇米777| 亚洲国产美女搞黄色| 日韩av网站免费在线| 成人福利视频在线看| 9191久久久久久久久久久| 欧美国产一区二区在线观看| 日韩精品一区第一页| 国产成人在线色| 欧美嫩在线观看| 亚洲美女在线一区| 日韩va亚洲va欧美va久久| 日韩电影在线免费观看| aaa国产一区| 2023国产精品视频| 图片区小说区区亚洲影院| 成人性生交大片免费看视频在线| 91精品免费在线| 国产精品视频免费看| 久久精品国产**网站演员| 91福利在线播放| 国产精品进线69影院| 国产麻豆一精品一av一免费| 日韩一区二区三| 亚洲国产精品一区二区www在线 | 国产成人免费视频| 91麻豆精品国产91久久久使用方法 | 91在线国内视频| 久久久精品免费观看| 蜜乳av一区二区| 欧美老年两性高潮| 亚洲精品高清视频在线观看| 麻豆国产精品777777在线| 欧美挠脚心视频网站| 亚洲自拍与偷拍| 欧美三级欧美一级| 国产精品久久久久久久裸模| 国产成人在线网站| 国产日韩一级二级三级| 日韩成人午夜电影| 欧美成人乱码一区二区三区| 日韩黄色免费网站| 日韩欧美一级片| 久久99这里只有精品| 精品区一区二区| 精品一区二区免费| 久久伊人中文字幕| heyzo一本久久综合| 1024精品合集| 欧美影视一区二区三区| 日韩av电影天堂| 日韩精品中文字幕一区二区三区 | 欧美精品一区二区三| 国产精品一区二区久久不卡| 日本一区免费视频| 99久久99精品久久久久久| 一区二区三区波多野结衣在线观看| 色婷婷久久久久swag精品 | 2023国产精品| av一区二区三区四区| 亚洲乱码国产乱码精品精可以看| 91日韩精品一区| 丝袜亚洲另类丝袜在线| 欧美精品一区二区在线观看| 成人h版在线观看| 樱桃国产成人精品视频| 欧美一区二区国产| 成人一区二区在线观看| 一区二区三区不卡视频| 亚洲精品一区二区三区香蕉| 99免费精品在线观看| 日本不卡免费在线视频| 中文字幕在线观看一区二区| 欧美午夜精品久久久久久孕妇 | 免费看精品久久片| 久久久三级国产网站| 色综合久久综合中文综合网| 日本va欧美va精品发布| 亚洲欧洲精品一区二区三区不卡| 欧美日韩精品欧美日韩精品| 免费高清视频精品| |精品福利一区二区三区| 日韩三级中文字幕| 色噜噜狠狠成人中文综合| 亚洲永久免费av| 国产欧美日韩久久| 69久久99精品久久久久婷婷| 国产成+人+日韩+欧美+亚洲| 亚洲福利一二三区| 国产精品午夜久久| 日韩精品一区二区三区四区| 欧美在线free| 91传媒视频在线播放| 成人国产视频在线观看| 成人中文字幕在线| 国产一区二区三区四| 激情综合一区二区三区| 热久久久久久久| 青青草伊人久久| 美脚の诱脚舐め脚责91| 久久国内精品自在自线400部| 日韩国产精品91| 天堂一区二区在线免费观看| 亚洲午夜视频在线| 污片在线观看一区二区| 日韩国产欧美在线视频| 亚洲mv在线观看| 日本一道高清亚洲日美韩| 免费成人在线影院| 国产一区二区三区免费观看| 国产剧情av麻豆香蕉精品| 国产麻豆9l精品三级站| 国产v日产∨综合v精品视频| 波多野洁衣一区| 在线观看网站黄不卡| 欧美乱妇一区二区三区不卡视频| 91精品国产美女浴室洗澡无遮挡| 日韩精品一区二区三区中文不卡 | 激情亚洲综合在线| 国产盗摄女厕一区二区三区| www.色精品| 欧美性大战xxxxx久久久| 91精品婷婷国产综合久久性色| 日韩精品中文字幕在线不卡尤物| 久久丝袜美腿综合| 亚洲女性喷水在线观看一区| 亚洲午夜久久久| 精品一区精品二区高清| 99精品视频在线观看免费| 欧美精品在线一区二区| 2014亚洲片线观看视频免费| 久久免费看少妇高潮| 国产精品自在欧美一区| 欧洲色大大久久| 中文字幕一区二区三中文字幕| 亚洲一区二区三区免费视频| 久久99国产精品麻豆| av综合在线播放| 欧美放荡的少妇| 亚洲精品一区二区三区蜜桃下载 | 91社区在线播放| 一本大道综合伊人精品热热| 日韩欧美久久久| 91婷婷韩国欧美一区二区| 欧美午夜不卡视频| 337p日本欧洲亚洲大胆精品 | 激情欧美一区二区| 99re成人精品视频| 精品久久久久久综合日本欧美| 亚洲日本欧美天堂| 激情综合色综合久久综合| 欧美在线999| 国产免费观看久久| 麻豆精品视频在线观看视频| 99久久99久久精品免费看蜜桃| 欧美不卡一区二区三区| 亚洲一级不卡视频| 99精品视频在线观看| 国产亚洲一区二区在线观看| 亚洲午夜三级在线| 99久久婷婷国产| 国产亚洲短视频| 麻豆精品久久精品色综合| 欧美日韩一区成人| 最新高清无码专区| 国产麻豆精品theporn| 555www色欧美视频| 一区二区三区久久久| 成人黄色电影在线| 中文天堂在线一区| 国产一级精品在线| 精品国产区一区| 日本强好片久久久久久aaa| 91黄色小视频| 综合av第一页| 一本色道久久综合亚洲精品按摩 | 99视频在线观看一区三区| 精品国产电影一区二区| 日韩va欧美va亚洲va久久| 欧美日韩二区三区| 亚洲成av人影院| 91精品欧美综合在线观看最新| 天堂蜜桃91精品| 日韩一二三四区| 麻豆freexxxx性91精品| 91精品国产手机| 久草精品在线观看|