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

📄 declagcp.c

📁 语音编码G.729 语音编码G.729
💻 C
字号:
/*   ITU-T G.729 Annex C+ - Reference C code for floating point                         implementation of G.729 Annex C+                         (integration of Annexes B, D and E)                          Version 2.1 of October 1999*//* File : DECLAGCP.C*/#include "typedef.h"#include "ld8k.h"#include "ld8cp.h"/*------------------------------------------------------------------------**    Function dec_lag3cp                                                 **             ~~~~~~~~                                                   **   Decoding of fractional pitch lag with 1/3 resolution.                ** See "enc_lag3.c" for more details about the encoding procedure.        **------------------------------------------------------------------------*/void dec_lag3cp(   /* Decode the pitch lag                   */	int index,       /* input : received pitch index           */	int pit_min,     /* input : minimum pitch lag              */	int pit_max,     /* input : maximum pitch lag              */	int i_subfr,     /* input : subframe flag                  */	int *T0,         /* output: integer part of pitch lag      */	int *T0_frac,    /* output: fractional part of pitch lag   */	int rate){    int i;    int T0_min, T0_max;        if (i_subfr == 0)                  /* if 1st subframe */    {        if (index < 197)        {            *T0 = (index+2)/3 + 19;            *T0_frac = index - *T0*3 + 58;        }        else        {            *T0 = index - 112;            *T0_frac = 0;        }    }        else  /* second subframe */    {        /* find T0_min and T0_max for 2nd subframe */                T0_min = *T0 - 5;        if (T0_min < pit_min)            T0_min = pit_min;                T0_max = T0_min + 9;        if(T0_max > pit_max)        {            T0_max = pit_max;            T0_min = T0_max -9;        }                        if (rate == G729D) {  /* 4 bit lag in 2nd subframe (6.4 kbit/s) */                        index = index & 15; /* 4 bits delta lag; assure only 4 bits used */            if (index <= 3) {                *T0 = T0_min + index;                *T0_frac = 0;            }            else if (index < 12) {                *T0_frac = index % 3;                *T0 = (index - *T0_frac) / 3 + T0_min + 2;                if (*T0_frac == 2) {                    *T0_frac = -1;                    (*T0)++;                }            }            else {                *T0 = T0_min + 6 + index - 12;                *T0_frac = 0;            }        }        else {          /* 5 bit lag in 2nd subframe */            i = (index+2)/3 - 1;            *T0 = i + T0_min;            *T0_frac = index - 2 - i*3;        }    }}

⌨️ 快捷键说明

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