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

📄 icbconstruct.c

📁 视频监控vc源代码.对于做视频系统的朋友们很有帮助
💻 C
字号:
/******************************************************************    iLBC Speech Coder ANSI-C Source Code    iCBConstruct.c     Copyright (C) The Internet Society (2004).     All Rights Reserved.******************************************************************/#include <math.h>#include "iLBC_define.h"#include "iCBConstruct.h"#include "gainquant.h"#include "getCBvec.h"/*----------------------------------------------------------------* *  Convert the codebook indexes to make the search easier *---------------------------------------------------------------*/void index_conv_enc(    int *index          /* (i/o) Codebook indexes */){    int k;    for (k=1; k<CB_NSTAGES; k++) {                if ((index[k]>=108)&&(index[k]<172)) {            index[k]-=64;        } else if (index[k]>=236) {            index[k]-=128;        } else {            /* ERROR */        }    }}void index_conv_dec(    int *index          /* (i/o) Codebook indexes */){    int k;    for (k=1; k<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 */        }    }}/*----------------------------------------------------------------* *  Construct decoded vector from codebook and gains. *---------------------------------------------------------------*/void iCBConstruct(    float *decvector,   /* (o) Decoded vector */    int *index,         /* (i) Codebook indices */    int *gain_index,/* (i) Gain quantization indices */    float *mem,         /* (i) Buffer for codevector construction */    int lMem,           /* (i) Length of buffer */    int veclen,         /* (i) Length of vector */    int nStages         /* (i) Number of codebook stages */){    int j,k;    float gain[CB_NSTAGES];    float cbvec[SUBL];    /* gain de-quantization */    gain[0] = gaindequant(gain_index[0], 1.0, 32);    if (nStages > 1) {        gain[1] = gaindequant(gain_index[1],             (float)fabs(gain[0]), 16);      }    if (nStages > 2) {        gain[2] = gaindequant(gain_index[2],             (float)fabs(gain[1]), 8);    }    /* codebook vector construction and construction of     total vector */    getCBvec(cbvec, mem, index[0], lMem, veclen);    for (j=0;j<veclen;j++){        decvector[j] = gain[0]*cbvec[j];    }    if (nStages > 1) {        for (k=1; k<nStages; k++) {            getCBvec(cbvec, mem, index[k], lMem, veclen);            for (j=0;j<veclen;j++) {                decvector[j] += gain[k]*cbvec[j];            }        }    }}

⌨️ 快捷键说明

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