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

📄 gainquant.cxx

📁 MiniSip Client with DomainKeys Authentication, Sip, Audio communications, Echo Cancel
💻 CXX
字号:
//A.22 gainquant.c        /******************************************************************            iLBC Speech Coder ANSI-C Source Code            gainquant.c             Copyright (c) 2001,        Global IP Sound AB.        All rights reserved.        ******************************************************************/        #include <string.h>    #include <math.h> #include"constants.h" #include"filter.h"        /*----------------------------------------------------------------*     *  quantizer for the gain in the gain-shape coding of residual     *---------------------------------------------------------------*/        float gainquant(/* (o) quantized gain value */        float in,       /* (i) gain value */        float maxIn,/* (i) maximum of gain value */        int cblen,      /* (i) number of quantization indices */        int *index      /* (o) quantization index */    ){        int i, tindex;        float minmeasure,measure, *cb, scale;            /* ensure a lower bound on the scaling factor */            scale=maxIn;                if (scale<0.1) {            scale=(float)0.1;        }            /* select the quantization table */                if (cblen == 8) {            cb = gain_sq3Tbl;        } else if (cblen == 16) {            cb = gain_sq4Tbl;             } else  {            cb = gain_sq5Tbl;        }            /* select the best index in the quantization table */                minmeasure=10000000.0;        tindex=0;        for (i=0;i<cblen;i++) {            measure=(in-scale*cb[i])*(in-scale*cb[i]);                        if (measure<minmeasure) {                tindex=i;                minmeasure=measure;            }        }        *index=tindex;                   /* return the quantized value */                return scale*cb[tindex];    }        /*----------------------------------------------------------------*     *  decoder for quantized gains in the gain-shape coding of      *  residual                               *---------------------------------------------------------------*/        float gaindequant(  /* (o) quantized gain value */        int index,      /* (i) quantization index */        float maxIn,/* (i) maximum of unquantized gain */        int cblen       /* (i) number of quantization indices */    ){        float scale;            /* obtain correct scale factor */            scale=(float)fabs(maxIn);                if (scale<0.1) {            scale=(float)0.1;        }            /* select the quantization table and return the decoded value */            if (cblen==8) {            return scale*gain_sq3Tbl[index];        } else if (cblen==16) {            return scale*gain_sq4Tbl[index];        }        else if (cblen==32) {            return scale*gain_sq5Tbl[index];        }                 return 0.0;    }         

⌨️ 快捷键说明

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