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

📄 g729ev_main_table.c

📁 最新的ITU-T的宽带语音编解码标准G.729.1,是对原先的G.729的最好的调整.码流输出速率可以进行自适应调整.满足未来通信要求.希望对大家有所帮助.
💻 C
📖 第 1 页 / 共 5 页
字号:
/* 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*/#include <stdlib.h>#include "stl.h"#include "G729EV_MAIN_defines.h"/************************ * Tables for filtering * ************************/const Word16 G729EV_MAIN_lp3k_b_hi[5] = /* Q27 tables */{  (Word16) 716, (Word16) 2671, (Word16) 3917,  (Word16) 2671, (Word16) 716,};const Word16 G729EV_MAIN_lp3k_b_lo[5] = /* Q27 tables */{  (Word16) 28078, (Word16) 24525, (Word16) 11556,  (Word16) 24525, (Word16) 28078,};const Word16 G729EV_MAIN_lp3k_a_hi[5] = /* Q27 tables */{  (Word16) 2048, (Word16) - 3684, (Word16) - 3481,  (Word16) - 1448, (Word16) - 348,};const Word16 G729EV_MAIN_lp3k_a_lo[5] = /* Q27 tables */{  (Word16) 0, (Word16) 17073, (Word16) 5765,  (Word16) 22456, (Word16) 25151,};/* 50 Hz high-pass filter coefficients (preprocessing of lower band at 8kHz) Q14*/const Word16 G729EV_MAIN_hp50_b[3] = { (Word16) 15655, (Word16) - 31310, (Word16) 15655 };const Word16 G729EV_MAIN_hp50_a[3] = { (Word16) 16384, (Word16) 32219, (Word16) - 15846 };/* filter coefficients (fc = 100 Hz) */const Word16 G729EV_MAIN_b100[3] = { 15398, -30795, 15398 };  /* Q14 */const Word16 G729EV_MAIN_a100[3] = { 16384, 31671, -15334 };  /* Q14 *//* Window Fir filter (even coefficiens):  fc=0.51fs, gain=1.0, nbcoeff=64 (symetric order of 63)*//* Generated by kaiser window : beta =3.2, order = 63, wc = 0.51*/const Word16 G729EV_MAIN_qmf_J64D[G729EV_MAIN_S_QMF] = {  /* First 13 Coeffs are Rescaled to 32768/31838 */  31034,  9324,  -6596,  -3437,  3739,  1784,  -2539,  -1002,  1832,  559,  -1345,  -291,  984,  /* Last Coeffs are Rescaled to 32768/1378 */  2953,  -16374,  -757,  11481,  -403,  -7775,  895,  5043,  -973,  -3095,  827,  1774,  -596,  -928,  358,  435,  -172,  -175,  56};/* table for bitrate switching high-band attenuation */const Word16 G729EV_MAIN_switching_gain[G729EV_MAIN_COUNT_RCV_MAX + 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,      0,     0,     0,     0,     0,      0,     0,     0,     0,     0,*/  0, 0, 0, 0, 0,  1, 1, 2, 2, 3,  3, 4, 5, 6, 8,  10, 13, 16, 20, 25,  32, 40, 51, 64, 81,  102, 128, 161, 203, 256,  323, 406, 512, 645, 813,  1024, 1290, 1625, 2048, 2580,  3251, 4096, 5161, 6502, 8192,  10321, 13004, 16384, 20643, 26008,  32767};/* codebook for fixed-codebook gain correction in cascade CELP (3 bits) Q14*/const Word16 G729EV_MAIN_tab_gain_enha[8] = {  5428, 7184, 8656, 10110, 11710, 13716, 16840, 23448};/* codebook for fixed-codebook gain correction in cascade CELP (2 bits) Q14*/const Word16 G729EV_MAIN_tab_gain_enha2bits[4] = {  8211, 11599, 16384, 23143};const Word16 Sqrt_han_wind8k[G729EV_MAIN_L_FRAME4 + 1] = {  0, 161, 322, 482, 643, 803, 963, 1122,  1282, 1440, 1598, 1756, 1912, 2068, 2224, 2378,  2531, 2684, 2835, 2986, 3135, 3283, 3430, 3575,  3719, 3862, 4003, 4142, 4280, 4417, 4551, 4684,  4815, 4944, 5072, 5197, 5320, 5442, 5561, 5678,  5793, 5905, 6016, 6124, 6229, 6333, 6433, 6532,  6627, 6721, 6811, 6899, 6985, 7068, 7147, 7225,  7299, 7371, 7440, 7505, 7568, 7629, 7686, 7740,  7791, 7839, 7884, 7927, 7966, 8002, 8035, 8064,  8091, 8115, 8135, 8153, 8167, 8178, 8186, 8190,  8192};const Word16 G729EV_FEC_h_low[5] = { -410, 3572, 25602, 3572, -410 };const Word16 G729EV_FEC_h_high[5] = { -410, -3572, 25602, -3572, -410 };const Word16 interpol_frac1[G729EV_MAIN_NB_SUBFR] = { 14746, 26214, 31547, 32767 };const Word16 interpol_frac2[G729EV_MAIN_NB_SUBFR] = { 16384, 16384, 16384, 16384 };const Word16 sqi[7] = { 4,      /*2 */  9,                            /*3 */  16,                           /*4 */  25,                           /*5 */  36,                           /*6 */  49,                           /*7 */  64};                              /*8 */const Word16 inv_sqi[7] = { 8192, /*1/4 */  3641,                         /*1/9 */  2048,                         /*1/16 */  1311,                         /*1/25 */  910,                          /*1/36 */  669,                          /*1/49 */  512};                              /*1/64 *//**************************** * Tables for MDCT subbands * ****************************//* subband division */const Word16 G729EV_TDAC_sb_bound[G729EV_TDAC_NB_SB + 1] =    { 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224,  240, 256, 272, 280};const Word16 G729EV_TDAC_nb_coef[G729EV_TDAC_NB_SB] =    { 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8};/***************************** * Tables for Huffman coding * *****************************//* Masks for bitstream packing */const UWord16 G729EV_MAIN_maskBit[G729EV_TDAC_MAX_LONG_HUFF + 1] =    { 0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383,  32767, 0xFFFF};const Word16 G729EV_TDAC_len_huff_diff[25] = {  11, 11, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 14,};const UWord16 G729EV_TDAC_code_huff_diff[25] = {  0x0006, 0x0007, 0x0012, 0x0008, 0x0005, 0x0003, 0x0003, 0x0002, 0x0002, 0x000c, 0x0001, 0x0001, 0x0002, 0x0007,      0x000d, 0x0003, 0x0003, 0x0002, 0x0001, 000000, 0x0002, 0x0027, 0x004c, 0x009b, 0x009a,};/***************************************************************//*                                                             *//*                         MDCT TABLES                         *//*                                                             *//***************************************************************//* Cos table in Q15 */const Word16 G729EV_TDAC_xcos[25] = {  (Word16) 32767, (Word16) 32767, (Word16) 32767, (Word16) 32767, (Word16) 32767,  (Word16) 32767, (Word16) 10126, (Word16) - 26510, (Word16) - 26510, (Word16) 10126,  (Word16) 32767, (Word16) - 26510, (Word16) 10126, (Word16) 10126, (Word16) - 26510,  (Word16) 32767, (Word16) - 26510, (Word16) 10126, (Word16) 10126, (Word16) - 26510,  (Word16) 32767, (Word16) 10126, (Word16) - 26510, (Word16) - 26510, (Word16) 10126};/* Sin table in Q15 */const Word16 G729EV_TDAC_xsin[25] = {  (Word16) 0, (Word16) 0, (Word16) 0, (Word16) 0, (Word16) 0,  (Word16) 0, (Word16) - 31164, (Word16) - 19261, (Word16) 19261, (Word16) 31164,  (Word16) 0, (Word16) - 19261, (Word16) 31164, (Word16) - 31164, (Word16) 19261,  (Word16) 0, (Word16) 19261, (Word16) - 31164, (Word16) 31164, (Word16) - 19261,  (Word16) 0, (Word16) 31164, (Word16) 19261, (Word16) - 19261, (Word16) - 31164};const Word16 G729EV_TDAC_tab_map[G729EV_TDAC_NP * G729EV_TDAC_NPP] = {  0, 65, 50, 35, 20, 5, 70, 55, 40, 25,  10, 75, 60, 45, 30, 15, 16, 1, 66, 51,  36, 21, 6, 71, 56, 41, 26, 11, 76, 61,  46, 31, 32, 17, 2, 67, 52, 37, 22, 7,  72, 57, 42, 27, 12, 77, 62, 47, 48, 33,  18, 3, 68, 53, 38, 23, 8, 73, 58, 43,  28, 13, 78, 63, 64, 49, 34, 19, 4, 69,  54, 39, 24, 9, 74, 59, 44, 29, 14, 79};const Word16 G729EV_TDAC_tab_map2[G729EV_TDAC_NP * G729EV_TDAC_NPP] = {  0, 5, 10, 15, 20, 25, 30, 35, 40, 45,  50, 55, 60, 65, 70, 75, 16, 21, 26, 31,  36, 41, 46, 51, 56, 61, 66, 71, 76, 1,  6, 11, 32, 37, 42, 47, 52, 57, 62, 67,  72, 77, 2, 7, 12, 17, 22, 27, 48, 53,  58, 63, 68, 73, 78, 3, 8, 13, 18, 23,  28, 33, 38, 43, 64, 69, 74, 79, 4, 9,  14, 19, 24, 29, 34, 39, 44, 49, 54, 59};const Word16 G729EV_TDAC_tab_rev_ipp[G729EV_TDAC_NB_REV] = {  1, 2, 3, 5, 7, 11};const Word16 G729EV_TDAC_tab_rev_i[G729EV_TDAC_NB_REV] = {  8, 4, 12, 10, 14, 13};/* Q15 table */const Word16 G729EV_TDAC_rw1[G729EV_TDAC_L_WIN4] = {  (Word16) 32767, (Word16) 32667, (Word16) 32365, (Word16) 31863, (Word16) 31164,  (Word16) 30274, (Word16) 29197, (Word16) 27939, (Word16) 26510, (Word16) 24917,  (Word16) 23170, (Word16) 21281, (Word16) 19261, (Word16) 17121, (Word16) 14876,  (Word16) 12540, (Word16) 10126, (Word16) 7650, (Word16) 5126, (Word16) 2571,  (Word16) 0, (Word16) - 2571, (Word16) - 5126, (Word16) - 7650, (Word16) - 10126,  (Word16) - 12540, (Word16) - 14876, (Word16) - 17121, (Word16) - 19261, (Word16) - 21281,  (Word16) - 23170, (Word16) - 24917, (Word16) - 26510, (Word16) - 27939, (Word16) - 29197,  (Word16) - 30274, (Word16) - 31164, (Word16) - 31863, (Word16) - 32365, (Word16) - 32667,  (Word16) - 32767, (Word16) - 32667, (Word16) - 32365, (Word16) - 31863, (Word16) - 31164,  (Word16) - 30274, (Word16) - 29197, (Word16) - 27939, (Word16) - 26510, (Word16) - 24917,  (Word16) - 23170, (Word16) - 21281, (Word16) - 19261, (Word16) - 17121, (Word16) - 14876,  (Word16) - 12540, (Word16) - 10126, (Word16) - 7650, (Word16) - 5126, (Word16) - 2571,  (Word16) 0, (Word16) 2571, (Word16) 5126, (Word16) 7650, (Word16) 10126,  (Word16) 12540, (Word16) 14876, (Word16) 17121, (Word16) 19261, (Word16) 21281,  (Word16) 23170, (Word16) 24917, (Word16) 26510, (Word16) 27939, (Word16) 29197,  (Word16) 30274, (Word16) 31164, (Word16) 31863, (Word16) 32365, (Word16) 32667};/* Q15 tables */const Word16 G729EV_TDAC_rw2[G729EV_TDAC_L_WIN4] = {  (Word16) 0, (Word16) 2571, (Word16) 5126, (Word16) 7650, (Word16) 10126,  (Word16) 12540, (Word16) 14876, (Word16) 17121, (Word16) 19261, (Word16) 21281,  (Word16) 23170, (Word16) 24917, (Word16) 26510, (Word16) 27939, (Word16) 29197,  (Word16) 30274, (Word16) 31164, (Word16) 31863, (Word16) 32365, (Word16) 32667,  (Word16) 32767, (Word16) 32667, (Word16) 32365, (Word16) 31863, (Word16) 31164,  (Word16) 30274, (Word16) 29197, (Word16) 27939, (Word16) 26510, (Word16) 24917,

⌨️ 快捷键说明

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