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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ilbc_decoder.java

?? java的ilbc語(yǔ)音編碼器,實(shí)現(xiàn)了其全部功能
?? JAVA
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/*
 * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */
package net.java.sip.communicator.impl.media.codec.audio.ilbc;

import java.lang.*;

/**
 * @author Jean Lorchat
 */
class ilbc_decoder {

    int consPLICount;
    int prevPLI;
    int prevLag;
    int last_lag;
    int prev_enh_pl;
    float per;
    float prevResidual[];
    long seed;
    float prevLpc[];

    ilbc_ulp ULP_inst = null;

    float syntMem[];
    float lsfdeqold[];
    float old_syntdenum[];
    float hpomem[];
    int use_enhancer;
    float enh_buf[];
    float enh_period[];

    // La plupart des variables globales sont dans ilbc_constants.etc...


   void syntFilter(
       float Out[],     /* (i/o) Signal to be filtered */
       int Out_idx,
       float a[],       /* (i) LP parameters */
       int a_idx,
       int len,    /* (i) Length of signal */
       float mem[])      /* (i/o) Filter state */
    {
	int i, j;
	//	float *po, *pi, *pa, *pm;
	int po, pi, pa, pm;

// 	System.out.println("out size : " + Out.length);
// 	System.out.println("out idx : " + Out_idx);
// 	System.out.println("a size : " + a.length);
// 	System.out.println("a idx : " + a_idx);
// 	System.out.println("len : " + len);
// 	System.out.println("mem size : " + mem.length);

	po = Out_idx;

	/* Filter first part using memory from past */

	for (i=0; i<ilbc_constants.LPC_FILTERORDER; i++) {
//            pi=&Out[i-1];
//            pa=&a[1];
//            pm=&mem[LPC_FILTERORDER-1];
	    pi = Out_idx + i - 1;
	    pa = a_idx + 1;
	    pm = ilbc_constants.LPC_FILTERORDER - 1;

	    for (j=1; j<=i; j++) {
		//		*po-=(*pa++)*(*pi--);
// 		System.out.println("1 Soustraction (" + i + "," + j + ") a " + Out[po] + " de " + a[pa] + " * " + Out[pi]);
// 		System.out.println("index " + (po - Out_idx) + " <> " + (pi - Out_idx));
		Out[po] -= a[pa] * Out[pi];
// 		System.out.println("Pour un resultat de " + Out[po]);
		pa++;
		pi--;
	    }
           for (j=i+1; j < ilbc_constants.LPC_FILTERORDER+1; j++) {
	       //               *po-=(*pa++)*(*pm--);
// 	       System.out.println("2 Soustraction a " + Out[po] + " de " + a[pa] + " * " + mem[pm]);
	       Out[po] -= a[pa] * mem[pm];
// 	       System.out.println("Pour un resultat de " + Out[po]);
	       pa++;
	       pm--;
           }
           po++;
	}

       /* Filter last part where the state is entirely in
          the output vector */

       for (i = ilbc_constants.LPC_FILTERORDER; i < len; i++) {
	   //           pi=&Out[i-1];
	   pi = Out_idx + i - 1;
	   //           pa=&a[1];
	   pa = a_idx + 1;
           for (j=1; j < ilbc_constants.LPC_FILTERORDER+1; j++) {
	       //               *po-=(*pa++)*(*pi--);
// 	       System.out.println("3 Soustraction a " + Out[po] + " de " + a[pa] + " * " + Out[pi]);
	       Out[po] -= a[pa] * Out[pi];
// 	       System.out.println("Pour un resultat de " + Out[po]);
	       pa++;
	       pi--;
           }
           po++;
       }

       /* Update state vector */

       System.arraycopy(Out, Out_idx + len - ilbc_constants.LPC_FILTERORDER,
			mem, 0, ilbc_constants.LPC_FILTERORDER);
//        memcpy(mem, &Out[len-LPC_FILTERORDER],
//            LPC_FILTERORDER*sizeof(float));
   }

   /*---------------------------------------------------------------*
    *  interpolation of lsf coefficients for the decoder
    *--------------------------------------------------------------*/

    public void LSFinterpolate2a_dec(
       float a[],           /* (o) lpc coefficients for a sub-frame */
       float lsf1[],    /* (i) first lsf coefficient vector */
       float lsf2[],    /* (i) second lsf coefficient vector */
       int lsf2_idx,
       float coef,         /* (i) interpolation weight */
       int length          /* (i) length of lsf vectors */
   ){
       float  [] lsftmp = new float[ilbc_constants.LPC_FILTERORDER];

       ilbc_common.interpolate(lsftmp, lsf1, lsf2, lsf2_idx, coef, length);
       ilbc_common.lsf2a(a, lsftmp);
   }

   /*---------------------------------------------------------------*
    *  obtain dequantized lsf coefficients from quantization index
    *--------------------------------------------------------------*/

   void SimplelsfDEQ(
       float lsfdeq[],    /* (o) dequantized lsf coefficients */
       int index[],         /* (i) quantization index */
       int lpc_n           /* (i) number of LPCs */
   ){
       int i, j, pos, cb_pos;

       /* decode first LSF */

       pos = 0;
       cb_pos = 0;
       for (i = 0; i < ilbc_constants.LSF_NSPLIT; i++) {
           for (j = 0; j < ilbc_constants.dim_lsfCbTbl[i]; j++) {
               lsfdeq[pos + j] = ilbc_constants.lsfCbTbl[cb_pos + (int)
                   ((long)(index[i])*ilbc_constants.dim_lsfCbTbl[i] + j)];
           }
           pos += ilbc_constants.dim_lsfCbTbl[i];
           cb_pos += ilbc_constants.size_lsfCbTbl[i]*ilbc_constants.dim_lsfCbTbl[i];
       }

       if (lpc_n>1) {

           /* decode last LSF */

           pos = 0;
           cb_pos = 0;
           for (i = 0; i < ilbc_constants.LSF_NSPLIT; i++) {
               for (j = 0; j < ilbc_constants.dim_lsfCbTbl[i]; j++) {
                   lsfdeq[ilbc_constants.LPC_FILTERORDER + pos + j] =
                       ilbc_constants.lsfCbTbl[cb_pos + (int)
                       ((long)(index[ilbc_constants.LSF_NSPLIT + i])*
                       ilbc_constants.dim_lsfCbTbl[i]) + j];
               }
               pos += ilbc_constants.dim_lsfCbTbl[i];
               cb_pos += ilbc_constants.size_lsfCbTbl[i]*ilbc_constants.dim_lsfCbTbl[i];
           }
       }
   }

   /*----------------------------------------------------------------*
    *  obtain synthesis and weighting filters form lsf coefficients
    *---------------------------------------------------------------*/

   void DecoderInterpolateLSF(
       float syntdenum[], /* (o) synthesis filter coefficients */
       float weightdenum[], /* (o) weighting denumerator
                                  coefficients */
       float lsfdeq[],       /* (i) dequantized lsf coefficients */
       int length)         /* (i) length of lsf coefficient vector */
    {
       int    i, pos, lp_length;
       float [] lp = new float[ilbc_constants.LPC_FILTERORDER + 1];
       int lsfdeq2;

       lsfdeq2 = length;
//        lsfdeq2 = lsfdeq + length;
       lp_length = length + 1;

       if (this.ULP_inst.mode==30) {
           /* sub-frame 1: Interpolation between old and first */

           LSFinterpolate2a_dec(lp, this.lsfdeqold, lsfdeq, 0,
				ilbc_constants.lsf_weightTbl_30ms[0], length);
	   System.arraycopy(lp, 0, syntdenum, 0, lp_length);
//            memcpy(syntdenum,lp,lp_length*sizeof(float));
           ilbc_common.bwexpand(weightdenum, 0, lp, ilbc_constants.LPC_CHIRP_WEIGHTDENUM, lp_length);

           /* sub-frames 2 to 6: interpolation between first
              and last LSF */

           pos = lp_length;
           for (i = 1; i < 6; i++) {
               LSFinterpolate2a_dec(lp, lsfdeq, lsfdeq, lsfdeq2,
				    ilbc_constants.lsf_weightTbl_30ms[i], length);
	       System.arraycopy(lp, 0, syntdenum, pos, lp_length);
//                memcpy(syntdenum + pos,lp,lp_length*sizeof(float));
               ilbc_common.bwexpand(weightdenum, pos, lp,
			ilbc_constants.LPC_CHIRP_WEIGHTDENUM, lp_length);
               pos += lp_length;
           }
       }
       else {
           pos = 0;
           for (i = 0; i < this.ULP_inst.nsub; i++) {
               LSFinterpolate2a_dec(lp, this.lsfdeqold,
				    lsfdeq, 0, ilbc_constants.lsf_weightTbl_20ms[i], length);
	       System.arraycopy(lp, 0, syntdenum, pos, lp_length);
//                memcpy(syntdenum+pos,lp,lp_length*sizeof(float));
               ilbc_common.bwexpand(weightdenum, pos, lp, ilbc_constants.LPC_CHIRP_WEIGHTDENUM,
				    lp_length);
               pos += lp_length;
           }
       }

       /* update memory */

       if (this.ULP_inst.mode==30) {
	   System.arraycopy(lsfdeq, lsfdeq2, this.lsfdeqold, 0, length);
//            memcpy(iLBCdec_inst->lsfdeqold, lsfdeq2, length*sizeof(float));
       } else {
	   System.arraycopy(lsfdeq, 0, this.lsfdeqold, 0, length);
//            memcpy(iLBCdec_inst->lsfdeqold, lsfdeq, length*sizeof(float));
       }
   }


    public void index_conv_dec(int index[])          /* (i/o) Codebook indexes */
    {
	int k;

	for (k=1; k<ilbc_constants.CB_NSTAGES; k++) {

	    if ((index[k]>=44)&&(index[k]<108)) {
		index[k]+=64;
	    } else if ((index[k]>=108)&&(index[k]<128)) {
               index[k]+=128;
	    } else {
		/* ERROR */
	    }
	}
    }

    public void hpOutput(
		 float In[],  /* (i) vector to filter */
		 int len,/* (i) length of vector to filter */
		 float Out[], /* (o) the resulting filtered vector */
		 float mem[])  /* (i/o) the filter state */
    {
	int i;
	//	float *pi, *po;
	int pi, po;

       /* all-zero section*/

//        pi = &In[0];
//        po = &Out[0];
	pi = 0;
	po = 0;

	for (i=0; i<len; i++) {
	    Out[po] = ilbc_constants.hpo_zero_coefsTbl[0] * (In[pi]);
	    Out[po] += ilbc_constants.hpo_zero_coefsTbl[1] * mem[0];
	    Out[po] += ilbc_constants.hpo_zero_coefsTbl[2] * mem[1];

           mem[1] = mem[0];
           mem[0] = In[pi];
           po++;
           pi++;

       }

       /* all-pole section*/

	//       po = &Out[0];
	po = 0;
	for (i=0; i<len; i++) {
	    Out[po] -= ilbc_constants.hpo_pole_coefsTbl[1] * mem[2];
	    Out[po] -= ilbc_constants.hpo_pole_coefsTbl[2] * mem[3];

	    mem[3] = mem[2];
	    mem[2] = Out[po];
	    po++;
	}
    }

   /*----------------------------------------------------------------*
    * downsample (LP filter and decimation)
    *---------------------------------------------------------------*/

   void DownSample (
       float  In[],     /* (i) input samples */
       int in_idx,
       float  Coef[],   /* (i) filter coefficients */
       int lengthIn,   /* (i) number of input samples */
       float  state[],  /* (i) filter state */
       float  Out[])     /* (o) downsampled output */
    {
	float o;
	//	float *Out_ptr = Out;
	int out_ptr = 0;
	//float *Coef_ptr, *In_ptr;
	int coef_ptr = 0;
	int in_ptr = in_idx;
	//float *state_ptr;
	int state_ptr = 0;
	int i, j, stop;

       /* LP filter and decimate at the same time */

	for (i = ilbc_constants.DELAY_DS; i < lengthIn; i += ilbc_constants.FACTOR_DS)
	    {
		coef_ptr = 0;
		in_ptr = in_idx + i;
		state_ptr = ilbc_constants.FILTERORDER_DS - 2;

		o = (float)0.0f;

		//		stop = (i < ilbc_constants.FILTERORDER_DS) ? i + 1 : ilbc_constants.FILTERORDER_DS;
		if (i < ilbc_constants.FILTERORDER_DS) {
		    stop = i + 1;
		}
		else {
		    stop = ilbc_constants.FILTERORDER_DS;
		}

		for (j = 0; j < stop; j++)
		    {
			o += Coef[coef_ptr] * In[in_ptr];
			coef_ptr++;
			in_ptr--;
		    }
		for (j = i + 1; j < ilbc_constants.FILTERORDER_DS; j++)
		    {
			o += Coef[coef_ptr] * state[state_ptr];
			coef_ptr++;
			state_ptr--;
		    }
		Out[out_ptr] = o;
		out_ptr++;
		//		*Out_ptr++ = o;
	    }

	/* Get the last part (use zeros as input for the future) */

       for (i=(lengthIn+ilbc_constants.FACTOR_DS); i<(lengthIn+ilbc_constants.DELAY_DS);
               i+=ilbc_constants.FACTOR_DS) {

           o=(float)0.0f;

           if (i<lengthIn) {
               coef_ptr = 0;
               in_ptr = in_idx + i;
               for (j=0; j<ilbc_constants.FILTERORDER_DS; j++) {
		   o += Coef[coef_ptr] * Out[out_ptr];
		   coef_ptr++;
		   out_ptr--;
		   //                       o += *Coef_ptr++ * (*Out_ptr--);
               }
           } else {
               coef_ptr = i-lengthIn;
	       in_ptr = in_idx + lengthIn - 1;
               for (j=0; j<ilbc_constants.FILTERORDER_DS-(i-lengthIn); j++) {
		   o += Coef[coef_ptr] * In[in_ptr];
		   coef_ptr++;
		   in_ptr--;
               }
           }
           Out[out_ptr] = o;
	   out_ptr++;
       }
   }

    /*----------------------------------------------------------------*
     * Find index in array such that the array element with said
     * index is the element of said array closest to "value"
     * according to the squared-error criterion
     *---------------------------------------------------------------*/

    public int NearestNeighbor(
//			 int   index[],   /* (o) index of array element closest
//					    to value */
			       float array[],   /* (i) data array */
			       float value,/* (i) value */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性受xxxx黑人xyx| 日韩欧美成人一区二区| 奇米一区二区三区| 国产精品进线69影院| 91精品国产综合久久小美女| av成人老司机| 国产盗摄一区二区三区| 视频一区在线播放| 亚洲男人的天堂av| 国产欧美日韩中文久久| 欧美刺激午夜性久久久久久久 | 99精品视频一区二区| 久久国产婷婷国产香蕉| 性做久久久久久免费观看 | 亚洲欧美一区二区久久| 国产午夜亚洲精品理论片色戒| 欧美一二三四在线| 欧美色手机在线观看| 91美女片黄在线观看| 成人av网站在线观看免费| 久久国产成人午夜av影院| 蜜桃精品视频在线观看| 日韩一区欧美二区| 丝袜国产日韩另类美女| 亚洲一区在线免费观看| 亚洲欧美一区二区三区久本道91| 国产精品免费av| 国产亚洲欧美一级| 国产日韩精品一区| 国产午夜精品久久久久久久 | 制服丝袜在线91| 欧美在线观看视频一区二区| 91久久奴性调教| 色综合一个色综合| 色偷偷久久人人79超碰人人澡| av高清不卡在线| 色偷偷成人一区二区三区91| 在线免费观看日本欧美| 欧洲av一区二区嗯嗯嗯啊| 欧美性受xxxx| 欧美精品色综合| 制服丝袜成人动漫| 日韩免费观看高清完整版 | 一级做a爱片久久| 亚洲国产成人tv| 图片区小说区区亚洲影院| 日韩高清欧美激情| 久久99久国产精品黄毛片色诱| 精品一区二区免费看| 国产成人在线视频网址| 91一区二区三区在线观看| 91久久国产最好的精华液| 欧美视频在线播放| 日韩亚洲欧美高清| 国产午夜精品一区二区三区四区| 国产精品久久久久久妇女6080| 国产精品久久久久一区二区三区共| 亚洲三级久久久| 亚洲午夜电影网| 另类小说视频一区二区| 国产精品亚洲专一区二区三区| 成人黄色在线看| 色偷偷一区二区三区| 884aa四虎影成人精品一区| 久久一夜天堂av一区二区三区| 国产精品国产精品国产专区不蜜 | 国产成人精品免费| 欧美a级一区二区| 亚洲黄网站在线观看| 亚洲一区二区三区小说| 久久精品国产精品亚洲红杏| 成人黄色软件下载| 久久久久久久综合色一本| 2021中文字幕一区亚洲| 欧美v日韩v国产v| 亚洲制服丝袜av| 成人免费视频一区| 精品国产乱码久久久久久久久| 亚洲国产综合色| 91捆绑美女网站| 国产精品乱码一区二区三区软件 | 亚洲你懂的在线视频| 国产福利一区二区三区视频在线| 91精品国产综合久久精品麻豆| 亚洲自拍另类综合| 99麻豆久久久国产精品免费优播| 久久婷婷国产综合国色天香| 蜜桃视频第一区免费观看| 欧美日韩视频在线第一区| 亚洲天天做日日做天天谢日日欢| 国产69精品久久777的优势| 欧美不卡视频一区| 麻豆成人久久精品二区三区小说| 欧美日韩aaa| 午夜久久电影网| 欧美欧美午夜aⅴ在线观看| 亚洲一区二区三区四区不卡| 色八戒一区二区三区| 亚洲欧美日韩久久精品| 日本韩国视频一区二区| 亚洲精品视频一区| 色吊一区二区三区| 亚洲国产成人91porn| 欧美日韩国产综合草草| 日本网站在线观看一区二区三区| 欧美精品欧美精品系列| 日韩主播视频在线| 日韩欧美在线综合网| 久久综合综合久久综合| 久久九九国产精品| 高清beeg欧美| 中文字幕日韩精品一区| 91美女片黄在线| 午夜精品爽啪视频| 91精品国产麻豆| 国产精一品亚洲二区在线视频| 国产欧美日韩亚州综合| 91香蕉视频mp4| 婷婷国产v国产偷v亚洲高清| 欧美一级在线观看| 国产一区二区三区久久久| 国产精品理伦片| 欧美体内she精视频| 日本成人在线电影网| 亚洲精品在线免费播放| 成人免费看视频| 一区二区三区在线视频观看| 91精品国产综合久久国产大片| 国内精品自线一区二区三区视频| 国产清纯美女被跳蛋高潮一区二区久久w | 日本电影欧美片| 日韩国产精品大片| 国产亚洲va综合人人澡精品| 91女厕偷拍女厕偷拍高清| 亚洲高清视频中文字幕| 精品播放一区二区| 99re在线精品| 蜜桃av一区二区| 中文字幕一区二区三区乱码在线| 欧美中文一区二区三区| 久久99热这里只有精品| 自拍偷拍亚洲激情| 91精品国产综合久久福利| 丁香啪啪综合成人亚洲小说| 亚洲在线观看免费视频| 日韩免费成人网| 91亚洲精品乱码久久久久久蜜桃| 日韩经典中文字幕一区| 欧美高清一级片在线观看| 欧美美女黄视频| 成人福利视频网站| 天堂va蜜桃一区二区三区漫画版| 国产欧美精品一区二区色综合| 欧美日韩一区小说| 国产成人在线视频免费播放| 午夜视频一区在线观看| 国产调教视频一区| 69av一区二区三区| 91网站在线观看视频| 久久国产日韩欧美精品| 一区二区三区中文免费| 国产香蕉久久精品综合网| 欧美精品粉嫩高潮一区二区| 成人av网站免费观看| 久久精品二区亚洲w码| 樱花草国产18久久久久| 国产亚洲制服色| 欧美一区二区三区啪啪| 97超碰欧美中文字幕| 国产激情视频一区二区在线观看| 日本视频在线一区| 一区二区成人在线| 日韩一区欧美小说| 久久久五月婷婷| 67194成人在线观看| 91久久精品国产91性色tv| 高清不卡在线观看av| 精品系列免费在线观看| 日av在线不卡| 偷拍亚洲欧洲综合| 一区二区三区四区不卡在线 | 国产在线不卡一卡二卡三卡四卡| 亚洲成人高清在线| 亚洲欧美国产三级| 国产精品久久久久久户外露出 | 国产精品夜夜嗨| 蜜臀久久99精品久久久久宅男| 亚洲午夜视频在线| 日韩一区日韩二区| 中文字幕久久午夜不卡| 久久日韩粉嫩一区二区三区| 欧美成人一区二区三区| 4438x亚洲最大成人网| 欧美日韩精品是欧美日韩精品| 色94色欧美sute亚洲线路一久| 99久久国产综合精品女不卡| 成人黄色大片在线观看| 国产精品一区二区三区99| 国产一二精品视频| 国产一区 二区 三区一级|