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

📄 funcg722.c

📁 ITU-T G.191中包含的G.722语音压缩编解码程序
💻 C
📖 第 1 页 / 共 4 页
字号:
     .                                                                                                  Inputs :                                                                                                                                                                                                                            Outputs :                                                                                                                                                none                                                                                                                                                   Return Value :                                                                                                                                       ___________________________________________________________________________*/Word16 invqbl (ilr, detl, mode)Word16 ilr;Word16 detl;Word16 mode;{  /* Inverse quantizer 4, 5, and 6 bit tables for the decoder */  static Word16   ril4[16] = {0, 7, 6, 5, 4, 3, 2, 1, 7, 6, 5, 4, 3, 2, 1, 0};  static Word16   risi4[16] = {0, -1, -1, -1, -1, -1, -1, -1,                                0, 0, 0, 0, 0, 0, 0, 0};  static Word16   oq4[8] = {0, 150, 323, 530, 786, 1121, 1612, 2557};  static Word16   ril5[32] = {    1, 1, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2,    15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1};  static Word16   risi5[32] = {    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1};  static Word16   oq5[16] = {    0, 35, 110, 190, 276, 370, 473, 587,    714, 858, 1023, 1219, 1458, 1765, 2195, 2919};  static Word16   ril6[64] = {    1, 1, 1, 1, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20,    19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3,    30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20,    19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 1};  static Word16   risi6[64] = {    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1};  static Word16   oq6[31] = {    0, 17, 54, 91, 130, 170, 211, 254, 300, 347, 396, 447, 501,    558, 618, 682, 750, 822, 899, 982, 1072, 1170, 1279, 1399,    1535, 1689, 1873, 2088, 2376, 2738, 3101};  /* Local variables */  Word16          ril, wd1, wd2;  switch (mode)  {  case 0:  case 1:    ril = ilr;    wd1 = shl (oq6[ril6[ril]], 3);    wd2 = (risi6[ril] == 0) ? add (0, wd1) : sub (0, wd1);    break;  case 2:    ril = shr (ilr, 1);    wd1 = shl (oq5[ril5[ril]], 3);    wd2 = (risi5[ril] == 0) ? add (0, wd1) : sub (0, wd1);    break;  case 3:    ril = shr (ilr, 2);    wd1 = shl (oq4[ril4[ril]], 3);    wd2 = (risi4[ril] == 0) ? add (0, wd1) : sub (0, wd1);    break;  default:    /* default to mode 3 */    ril = shr (ilr, 2);    wd1 = shl (oq4[ril4[ril]], 3);    wd2 = (risi4[ril] == 0) ? add (0, wd1) : sub (0, wd1);    break;  }  return (mult (detl, wd2));}/* ..................... End of invqbl() ..................... *//*___________________________________________________________________________                                                                                Function Name : invqah                                                                                                                                  Purpose :                                                                                                                                                .                                                                                                  Inputs :                                                                                                                                                                                                                            Outputs :                                                                                                                                                none                                                                                                                                                   Return Value :                                                                                                                                       ___________________________________________________________________________*/Word16 invqah (ih, deth)Word16 ih;Word16 deth;{  static Word16   ih2[4] =  {2, 1, 2, 1};  static Word16   sih[4] =  {-1, -1, 0, 0};  static Word16   oq2[3] =  {0, 202, 926};  Word16          wd1, wd2;  wd1 = shl (oq2[ih2[ih]], 3);  wd2 = (sih[ih] == 0) ? wd1 : negate (wd1);  return mult (wd2, deth);}/* ..................... End of invqah() ..................... *//*___________________________________________________________________________                                                                                Function Name : limit                                                                                                                                   Purpose :                                                                                                                                                .                                                                                                  Inputs :                                                                                                                                                                                                                            Outputs :                                                                                                                                                none                                                                                                                                                   Return Value :                                                                                                                                       ___________________________________________________________________________*/Word16 limit (rl)Word16 rl;{  Word16          yl;  yl = (rl > 16383) ? 16383 : ((rl < -16384) ? -16384 : rl);  return (yl);}/* ..................... End of limit() ..................... *//*___________________________________________________________________________                                                                                Function Name : logsch                                                                                                                                  Purpose :                                                                                                                                                .                                                                                                  Inputs :                                                                                                                                                                                                                            Outputs :                                                                                                                                                none                                                                                                                                                   Return Value :                                                                                                                                       ___________________________________________________________________________*/Word16 logsch (ih, nbh)Word16 ih;Word16 nbh;{  static Word16   ih2[4] =  {2, 1, 2, 1};  static Word16   wh[3] =  {0, -214, 798};  Word16          wd, nbph;  wd = mult (nbh, 32512);  nbph = add (wd, wh[ih2[ih]]);  nbph = (nbph < 0) ? 0 : ((nbph > 22528) ? 22528 : nbph);  return (nbph);}/* ..................... End of logsch() ..................... *//*___________________________________________________________________________                                                                                Function Name : logscl                                                                                                                                  Purpose :                                                                                                                                                .                                                                                                  Inputs :                                                                                                                                                                                                                            Outputs :                                                                                                                                                none                                                                                                                                                   Return Value :                                                                                                                                       ___________________________________________________________________________*/Word16 logscl (il,nbl )Word16 il;Word16 nbl;{  static Word16   ril4[16] =  {0, 7, 6, 5, 4, 3, 2, 1, 7, 6, 5, 4, 3, 2, 1, 0};  static Word16   wl[8] =  {-60, -30, 58, 172, 334, 538, 1198, 3042};  Word16          ril, wd, nbpl, il4;  ril = shr (il, 2);  wd = mult (nbl, 32512);  il4 = ril4[ril];  nbpl = add (wd, wl[il4]);  nbpl = (nbpl < 0) ? 0 : ((nbpl > 18432) ? 18432 : nbpl);  return (nbpl);}/* ..................... End of logscl() ..................... *//* ************** Table ILA used by scalel and scaleh ******************** */static Word16   ila[353] =  {    1, 1, 1, 1, 1, 1, 1, 1,    1, 1, 1, 1, 1, 1, 1, 1,    1, 1, 1, 2, 2, 2, 2, 2,    2, 2, 2, 2, 2, 2, 2, 2,    3, 3, 3, 3, 3, 3, 3, 3,    3, 3, 3, 4, 4, 4, 4, 4,    4, 4, 4, 5, 5, 5, 5, 5,    5, 5, 6, 6, 6, 6, 6, 6,    7, 7, 7, 7, 7, 7, 8, 8,    8, 8, 8, 9, 9, 9, 9, 10,    10, 10, 10, 11, 11, 11, 11, 12,    12, 12, 13, 13, 13, 13, 14, 14,    15, 15, 15, 16, 16, 16, 17, 17,    18, 18, 18, 19, 19, 20, 20, 21,    21, 22, 22, 23, 23, 24, 24, 25,    25, 26, 27, 27, 28, 28, 29, 30,    31, 31, 32, 33, 33, 34, 35, 36,    37, 37, 38, 39, 40, 41, 42, 43,    44, 45, 46, 47, 48, 49, 50, 51,    52, 54, 55, 56, 57, 58, 60, 61,    63, 64, 65, 67, 68, 70, 71, 73,    75, 76, 78, 80, 82, 83, 85, 87,    89, 91, 93, 95, 97, 99, 102, 104,    106, 109, 111, 113, 116, 118, 121, 124,    127, 129, 132, 135, 138, 141, 144, 147,    151, 154, 157, 161, 165, 168, 172, 176,    180, 184, 188, 192, 196, 200, 205, 209,    214, 219, 223, 228, 233, 238, 244, 249,    255, 260, 266, 272, 278, 284, 290, 296,    303, 310, 316, 323, 331, 338, 345, 353,    361, 369, 377, 385, 393, 402, 411, 420,    429, 439, 448, 458, 468, 478, 489, 500,    511, 522, 533, 545, 557, 569, 582, 594,    607, 621, 634, 648, 663, 677, 692, 707,    723, 739, 755, 771, 788, 806, 823, 841,    860, 879, 898, 918, 938, 958, 979, 1001,    1023, 1045, 1068, 1092, 1115, 1140, 1165, 1190,    1216, 1243, 1270, 1298, 1327, 1356, 1386, 1416,    1447, 1479, 1511, 1544, 1578, 1613, 1648, 1684,    1721, 1759, 1797, 1837, 1877, 1918, 1960, 2003,    2047, 2092, 2138, 2185, 2232, 2281, 2331, 2382,    2434, 2488, 2542, 2598, 2655, 2713, 2773, 2833,    2895, 2959, 3024, 3090, 3157, 3227, 3297, 3370,    3443, 3519, 3596, 3675, 3755, 3837, 3921, 4007,    4095};/* ************************* End of Table ILA **************************** *//*___________________________________________________________________________                                                                                Function Name : scalel                                                                                                                                  Purpose :                                                                                                                                                .                                                                                                  Inputs :                                                                                                                                                                                                                            Outputs :                                                                                                                                                none                                                                                                                                                   Return Value :                                                                                                                                      

⌨️ 快捷键说明

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