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

📄 tmp.c

📁 高通的cmda语音压缩算法is96a源代码. 针对自己的dsp将最耗时的c改成汇编就几乎是商用代码了.
💻 C
字号:
interp_lpcs(rate, prev_lsp, curr_lsp, lpc, rate_cnt, bright)
INTTYPE   rate;
float *prev_lsp;
float *curr_lsp;
float lpc[MAX_PITCH_SF][2][LPCORDER];
INTTYPE   *rate_cnt;
float *bright;
{
    INTTYPE   i,j;
    float wght_factor;
    float tmp_lsp[LPCORDER];
    float current_center;
    float interp_factor;
    float smooth;
    float loops;

    smooth=SMOOTH_FACTOR[rate][0];
    if ((rate==QUARTER)||(rate==EIGHTH)) {
	*rate_cnt+=1;
	if (*rate_cnt>=10) {
	    smooth=SMOOTH_FACTOR[rate][1];
	}
    }
    else if ((rate==FULL)||(rate==HALF)) {
	*rate_cnt=0;
    }
    
    for (i=0; i<LPCORDER; i++) {
	curr_lsp[i]=smooth*prev_lsp[i]+(1-smooth)*curr_lsp[i];
    }
    
    if (rate==EIGHTH) {
	loops=1;
    }
    else if (rate==BLANK) {
	loops=0;
    }
    else {
	loops=PITCHSF[rate];
    }

    for(i=0; i<loops; i++) {
	current_center=(float)(i+0.5)*(float)(FSIZE/loops);
	interp_factor= current_center+(float)(FSIZE)-(float)(LPC_CENTER);
	interp_factor/=(float)(FSIZE);

	bright[i]=0;
	for (j=0; j<LPCORDER; j++) {
	    tmp_lsp[j]=curr_lsp[j]*interp_factor
	      +prev_lsp[j]*(1-interp_factor);
	    bright[i]+=tmp_lsp[j];
	}
	bright[i]/=(float)(LPCORDER);
	if (bright[i]<0.24) {
	    bright[i]=0.25;
	}
	else if (bright[i]>0.26) {
	    bright[i]= -0.25;
	}
	else {
	    bright[i]= -25.0*(bright[i]-0.25);
	}

	lsp2lpc(tmp_lsp, lpc[i][NOT_WGHTED], LPCORDER);

	wght_factor=1;
	for (j=0; j<LPCORDER; j++) {
	    wght_factor*=PERCEPT_WGHT_FACTOR;
	    lpc[i][WGHTED][j]
	      =lpc[i][NOT_WGHTED][j]*wght_factor;
	}
    }

}

⌨️ 快捷键说明

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