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

📄 tab_ld8k.c

📁 G721-G723编码,G721-G723解码,G728编码,G728解码,G729编码,G729解码
💻 C
📖 第 1 页 / 共 2 页
字号:
{  711,   693,   521,   650,  1305,   -28,  -378,   744, -1005,   240},
{ -112,  -271,  -500,   946,  1733,   271,   -15,   909,  -259,  1688},
{  575,   -10,  -468,  -199,  1101, -1011,   581,   -53,  -747,   878},
{  145,  -285, -1280,  -398,    36,  -498, -1377,    18,  -444,  1483},
{-1133,  -835,  1350,  1284,   -95,  1015,  -222,   443,   372,  -354},
{-1459, -1237,   416,  -213,   466,   669,   659,  1640,   932,   534},
{  -15,    66,   468,  1019,  -748,  1385,  -182,  -907,  -721,  -262},
{ -338,   148,  1445,    75,  -760,   569,  1247,   337,   416,  -121},
{  389,   239,  1568,   981,   113,   369, -1003,  -507,  -587,  -904},
{ -312,   -98,   949,    31,  1104,    72,  -141,  1465,    63,  -785},
{ 1127,   584,   835,   277, -1159,   208,   301,  -882,   117,  -404},
{  539,  -114,   856,  -493,   223,  -912,   623,   -76,   276,  -440},
{ 2197,  2337,  1268,   670,   304,  -267,  -525,   140,   882,  -139},
{-1596,   550,   801,  -456,   -56,  -697,   865,  1060,   413,   446},
{ 1154,   593,   -77,  1237,   -31,   581, -1037,  -895,   669,   297},
{  397,   558,   203,  -797,  -919,     3,   692,  -292,  1050,   782},
{  334,  1475,   632,   -80,    48, -1061,  -484,   362,  -597,  -852},
{ -545,  -330,  -429,  -680,  1133, -1182,  -744,  1340,   262,    63},
{ 1320,   827,  -398,  -576,   341,  -774,  -483, -1247,   -70,    98},
{ -163,   674,   -11,  -886,   531, -1125,  -265,  -242,   724,   934}
};
Word16 fg[2][MA_NP][M] = {       /* Q15 */
  {
    { 8421,  9109,  9175,  8965,  9034,  9057,  8765,  8775,  9106,  8673},
    { 7018,  7189,  7638,  7307,  7444,  7379,  7038,  6956,  6930,  6868},
    { 5472,  4990,  5134,  5177,  5246,  5141,  5206,  5095,  4830,  5147},
    { 4056,  3031,  2614,  3024,  2916,  2713,  3309,  3237,  2857,  3473}
  },
  {
    { 7733,  7880,  8188,  8175,  8247,  8490,  8637,  8601,  8359,  7569},
    { 4210,  3031,  2552,  3473,  3876,  3853,  4184,  4154,  3909,  3968},
    { 3214,  1930,  1313,  2143,  2493,  2385,  2755,  2706,  2542,  2919},
    { 3024,  1592,   940,  1631,  1723,  1579,  2034,  2084,  1913,  2601}
  }
};
Word16 fg_sum[2][M] = {      /* Q15 */
{ 7798,  8447,  8205,  8293,  8126,  8477,  8447,  8703,  9043,  8604},
{14585, 18333, 19772, 17344, 16426, 16459, 15155, 15220, 16043, 15708}
};
Word16 fg_sum_inv[2][M] = {      /* Q12 */
{17210, 15888, 16357, 16183, 16516, 15833, 15888, 15421, 14840, 15597},
{ 9202,  7320,  6788,  7738,  8170,  8154,  8856,  8818,  8366,  8544}
};

/*-------------------------------------------------------------*
 *  Table for az_lsf()                                         *
 *                                                             *
 * Vector grid[] is in Q15                                     *
 *                                                             *
 * grid[0] = 1.0;                                              *
 * grid[grid_points+1] = -1.0;                                 *
 * for (i = 1; i < grid_points; i++)                           *
 *   grid[i] = cos((6.283185307*i)/(2.0*grid_points));         *
 *                                                             *
 *-------------------------------------------------------------*/

Word16 grid[GRID_POINTS+1] ={
      32760,     32723,     32588,     32364,     32051,     31651,
      31164,     30591,     29935,     29196,     28377,     27481,
      26509,     25465,     24351,     23170,     21926,     20621,
      19260,     17846,     16384,     14876,     13327,     11743,
      10125,      8480,      6812,      5126,      3425,      1714,
          0,     -1714,     -3425,     -5126,     -6812,     -8480,
     -10125,    -11743,    -13327,    -14876,    -16384,    -17846,
     -19260,    -20621,    -21926,    -23170,    -24351,    -25465,
     -26509,    -27481,    -28377,    -29196,    -29935,    -30591,
     -31164,    -31651,    -32051,    -32364,    -32588,    -32723,
     -32760};

/*-----------------------------------------------------*
 | Tables for pitch related routines .                 |
 -----------------------------------------------------*/

/* 1/3 resolution interpolation filter  (-3 dB at 3600 Hz) in Q15 */

Word16 inter_3[FIR_SIZE_ANA] = {
   29519,
   24906,   13896,    2755,
   -3459,   -3969,   -1561,
     534,    1023,     516,
       0,    -194,       0};

  /* Coefficients in floating point

  0.900839,
  0.760084,   0.424082,   0.084078,
 -0.105570,  -0.121120,  -0.047624,
  0.016285,   0.031217,   0.015738,
  0.000000,  -0.005925,   0.000000};
  */

/* 1/3 resolution interpolation filter  (-3 dB at 3600 Hz)  in Q15 */

Word16 inter_3l[FIR_SIZE_SYN] = {
   29443,
   25207,   14701,    3143,
   -4402,   -5850,   -2783,
    1211,    3130,    2259,
       0,   -1652,   -1666,
    -464,     756,    1099,
     550,    -245,    -634,
    -451,       0,     308,
     296,      78,    -120,
    -165,     -79,      34,
      91,      70,       0};

  /* Coefficients in floating point

   0.898517,
   0.769271,   0.448635,   0.095915,
  -0.134333,  -0.178528,  -0.084919,
   0.036952,   0.095533,   0.068936,
  -0.000000,  -0.050404,  -0.050835,
  -0.014169,   0.023083,   0.033543,
   0.016774,  -0.007466,  -0.019340,
  -0.013755,   0.000000,   0.009400,
   0.009029,   0.002381,  -0.003658,
  -0.005027,  -0.002405,   0.001050,
   0.002780,   0.002145,   0.000000};
  */

/*-----------------------------------------------------*
 | Tables for gain related routines .                  |
 -----------------------------------------------------*/

/* MA gain prediction coeff ={0.68, 0.58, 0.34, 0.19} in Q13 */
Word16 pred[4] = { 5571, 4751, 2785, 1556 };


Word16 gbk1[NCODE1][2] = {
/* Q14      Q13 */
 {    1 ,  1516 },
 { 1551 ,  2425 },
 { 1831 ,  5022 },
 {   57 ,  5404 },
 { 1921 ,  9291 },
 { 3242 ,  9949 },
 {  356 , 14756 },
 { 2678 , 27162 }
};

Word16 gbk2[NCODE2][2] = {
/* Q14       Q13 */
 {   826 ,  2005 },
 {  1994 ,     0 },
 {  5142 ,   592 },
 {  6160 ,  2395 },
 {  8091 ,  4861 },
 {  9120 ,   525 },
 { 10573 ,  2966 },
 { 11569 ,  1196 },
 { 13260 ,  3256 },
 { 14194 ,  1630 },
 { 15132 ,  4914 },
 { 15161 , 14276 },
 { 15434 ,   237 },
 { 16112 ,  3392 },
 { 17299 ,  1861 },
 { 18973 ,  5935 }
};

Word16 map1[NCODE1] = {
 5, 1, 4, 7, 3, 0, 6, 2
};

Word16 map2[NCODE2] = {
 4, 6, 0, 2,12,14, 8,10,15,11, 9,13, 7, 3, 1, 5
};

/*  [0][0]      [0][1]       [1][0]     [1][1]    */
/*  Q10         Q14          Q16        Q19       */
Word16 coef[2][2] = {
   { 31881 , 26416 },
   { 31548 , 27816 }
};
/*  [0][0]      [0][1]       [1][0]     [1][1]    */
/*  Q26         Q30          Q32        Q35       */
Word32 L_coef[2][2] = {
   { 2089405952L , 1731217536L },
   { 2067549984L , 1822990272L }
};

Word16 thr1[NCODE1-NCAN1] = {  /* Q14 */
   10808 ,
   12374 ,
   19778 ,
   32567
};
Word16 thr2[NCODE2-NCAN2] = {  /* Q15 */
   14087 ,
   16188 ,
   20274 ,
   21321 ,
   23525 ,
   25232 ,
   27873 ,
   30542
};
Word16 imap1[NCODE1] = {
 5, 1, 7, 4, 2, 0, 6, 3
};

Word16 imap2[NCODE2] = {
 2,14, 3,13, 0,15, 1,12, 6,10, 7, 9, 4,11, 5, 8
};

/*-----------------------------------------------------*
 | Table for routine pst().                           |
 -----------------------------------------------------*/

Word16 tab_hup_s[SIZ_TAB_HUP_S] = {
 -188,  2873, 31650, -1597,  -484,  7041, 28469, -2147,  -933, 12266,
23705, -1992, -1492, 18050, 18050, -1492, -1992, 23705, 12266,  -933,
-2147, 28469,  7041,  -484, -1597, 31650,  2873,  -188 };

Word16 tab_hup_l[SIZ_TAB_HUP_L] = {
  -40,    72,  -156,   315,  -579,  1023, -1874,  4439, 31915, -3390,
 1595,  -887,   501,  -266,   130,   -59,   -77,   147,  -317,   631,
-1150,  2030, -3773,  9639, 29436, -5579,  2727, -1527,   859,  -453,
  218,  -101,  -106,   212,  -455,   892, -1614,  2850, -5392, 15206,
25569, -6549,  3303, -1860,  1041,  -543,   258,  -122,  -123,   253,
 -538,  1044, -1876,  3319, -6414, 20676, 20676, -6414,  3319, -1876,
 1044,  -538,   253,  -123,  -122,   258,  -543,  1041, -1860,  3303,
-6549, 25569, 15206, -5392,  2850, -1614,   892,  -455,   212,  -106,
 -101,   218,  -453,   859, -1527,  2727, -5579, 29436,  9639, -3773,
 2030, -1150,   631,  -317,   147,   -77,   -59,   130,  -266,   501,
 -887,  1595, -3390, 31915,  4439, -1874,  1023,  -579,   315,  -156,
   72,   -40 };

/*-----------------------------------------------------*
 | Tables for routines post_pro() & pre_proc().        |
 -----------------------------------------------------*/

/* filter coefficients (fc = 100 Hz) */

Word16 b100[3] = {7699, -15398, 7699};      /* Q13 */
Word16 a100[3] = {8192, 15836, -7667};      /* Q13 */

/* filter coefficients (fc = 140 Hz, coeff. b[] is divided by 2) */

Word16 b140[3] = {1899, -3798, 1899};      /* 1/2 in Q12 */
Word16 a140[3] = {4096, 7807, -3733};      /* Q12 */

/*-----------------------------------------------------*
 | Tables for routine bits().                          |
 -----------------------------------------------------*/

Word16 bitsno[PRM_SIZE] = {1+NC0_B, /* MA + 1st stage */
                                 NC1_B*2, /* 2nd stage */
                                 8,1,  13,4, 7, /* first subframe  */
                                 5,    13,4, 7}; /* second subframe */

/*-----------------------------------------------------*
 | Table for routine Pow2().                           |
 -----------------------------------------------------*/

Word16 tabpow[33] = {
 16384, 16743, 17109, 17484, 17867, 18258, 18658, 19066, 19484, 19911,
 20347, 20792, 21247, 21713, 22188, 22674, 23170, 23678, 24196, 24726,
 25268, 25821, 26386, 26964, 27554, 28158, 28774, 29405, 30048, 30706,
 31379, 32066, 32767 };

/*-----------------------------------------------------*
 | Table for routine Log2().                           |
 -----------------------------------------------------*/

Word16 tablog[33] = {
     0,  1455,  2866,  4236,  5568,  6863,  8124,  9352, 10549, 11716,
 12855, 13967, 15054, 16117, 17156, 18172, 19167, 20142, 21097, 22033,
 22951, 23852, 24735, 25603, 26455, 27291, 28113, 28922, 29716, 30497,
 31266, 32023, 32767 };

/*-----------------------------------------------------*
 | Table for routine Inv_sqrt().                       |
 -----------------------------------------------------*/

Word16 tabsqr[49] = {

 32767, 31790, 30894, 30070, 29309, 28602, 27945, 27330, 26755, 26214,
 25705, 25225, 24770, 24339, 23930, 23541, 23170, 22817, 22479, 22155,
 21845, 21548, 21263, 20988, 20724, 20470, 20225, 19988, 19760, 19539,
 19326, 19119, 18919, 18725, 18536, 18354, 18176, 18004, 17837, 17674,
 17515, 17361, 17211, 17064, 16921, 16782, 16646, 16514, 16384 };

/*-----------------------------------------------------*
 | Table for taming procedure test_err.                |
 -----------------------------------------------------*/

Word16 tab_zone[PIT_MAX+L_INTERPOL-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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 };

⌨️ 快捷键说明

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