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

📄 g729ev_g729_de_acelp.c

📁 最新的ITU-T的宽带语音编解码标准G.729.1,是对原先的G.729的最好的调整.码流输出速率可以进行自适应调整.满足未来通信要求.希望对大家有所帮助.
💻 C
字号:
/* ITU-T G.729EV Optimization/Characterization Candidate                         *//* Version:       1.0.a                                                          *//* Revision Date: June 28, 2006                                                  *//*   ITU-T G.729EV Optimization/Characterization Candidate    ANSI-C Source Code   Copyright (c) 2006    France Telecom, Matsushita Electric, Mindspeed, Siemens AG, ETRI, VoiceAge Corp.   All rights reserved*//*-----------------------------------------------------------* *  Function  G729EV_G729_Decod_ACELP()                      * *  ~~~~~~~~~~~~~~~~~~~~~~~                                  * *   Algebraic codebook decoder.                             * *----------------------------------------------------------*/#include "stl.h"#include "G729EV_G729_ld8k.h"void G729EV_G729_Decod_ACELP(Word16 sign,   /* (i)     : signs of 4 pulses.                       */                             Word16 index,  /* (i)     : Positions of the 4 pulses.               */                             Word16 cod[]   /* (o) Q13 : algebraic (fixed) codebook excitation    */    ){  Word16    pos[4];  Word16    i, j;  /* Decode the positions */  i = s_and(index, (Word16) 7);  pos[0] = add(i, shl(i, 2));   /* pos0 =i*5 */#ifdef WMOPS  move16();#endif  index = shr(index, 3);  i = s_and(index, (Word16) 7);  i = add(i, shl(i, 2));        /* pos1 =i*5+1 */  pos[1] = add(i, 1);#ifdef WMOPS  move16();#endif  index = shr(index, 3);  i = s_and(index, (Word16) 7);  i = add(i, shl(i, 2));        /* pos2 =i*5+1 */  pos[2] = add(i, 2);#ifdef WMOPS  move16();#endif  index = shr(index, 3);  j = s_and(index, (Word16) 1);  index = shr(index, 1);  i = s_and(index, (Word16) 7);  i = add(i, shl(i, 2));        /* pos3 =i*5+3+j */  i = add(i, 3);  pos[3] = add(i, j);#ifdef WMOPS  move16();#endif  /* decode the signs  and build the codeword */  FOR(i = 0; i < G729EV_G729_L_SUBFR; i++)  {    cod[i] = 0;#ifdef WMOPS    move16();#endif  }  FOR(j = 0; j < 4; j++)  {    i = s_and(sign, (Word16) 1);    sign = shr(sign, 1);    IF(i != 0)    {      cod[pos[j]] = 8191;       /* Q13 +1.0 */#ifdef WMOPS      move16();#endif    }    ELSE    {      cod[pos[j]] = -8192;      /* Q13 -1.0 */#ifdef WMOPS      move16();#endif    }  }  return;}

⌨️ 快捷键说明

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