comparison truespeech_data.h @ 3006:4007989367bc libavcodec

TrueSpeech compatible audio decoder by Konstantin Shishkov
author diego
date Tue, 03 Jan 2006 02:30:38 +0000
parents
children 5d9d55e2a8c6
comparison
equal deleted inserted replaced
3005:6f6f307cffac 3006:4007989367bc
1 #ifndef __TRUESPEECH_DATA__
2 #define __TRUESPEECH_DATA__
3
4 /* codebooks fo expanding input filter */
5 const int16_t ts_cb_0[32] = {
6 0x8240, 0x8364, 0x84CE, 0x865D, 0x8805, 0x89DE, 0x8BD7, 0x8DF4,
7 0x9051, 0x92E2, 0x95DE, 0x990F, 0x9C81, 0xA079, 0xA54C, 0xAAD2,
8 0xB18A, 0xB90A, 0xC124, 0xC9CC, 0xD339, 0xDDD3, 0xE9D6, 0xF893,
9 0x096F, 0x1ACA, 0x29EC, 0x381F, 0x45F9, 0x546A, 0x63C3, 0x73B5,
10 };
11
12 const int16_t ts_cb_1[32] = {
13 0x9F65, 0xB56B, 0xC583, 0xD371, 0xE018, 0xEBB4, 0xF61C, 0xFF59,
14 0x085B, 0x1106, 0x1952, 0x214A, 0x28C9, 0x2FF8, 0x36E6, 0x3D92,
15 0x43DF, 0x49BB, 0x4F46, 0x5467, 0x5930, 0x5DA3, 0x61EC, 0x65F9,
16 0x69D4, 0x6D5A, 0x709E, 0x73AD, 0x766B, 0x78F0, 0x7B5A, 0x7DA5,
17 };
18
19 const int16_t ts_cb_2[16] = {
20 0x96F8, 0xA3B4, 0xAF45, 0xBA53, 0xC4B1, 0xCECC, 0xD86F, 0xE21E,
21 0xEBF3, 0xF640, 0x00F7, 0x0C20, 0x1881, 0x269A, 0x376B, 0x4D60,
22 };
23
24 const int16_t ts_cb_3[16] = {
25 0xC654, 0xDEF2, 0xEFAA, 0xFD94, 0x096A, 0x143F, 0x1E7B, 0x282C,
26 0x3176, 0x3A89, 0x439F, 0x4CA2, 0x557F, 0x5E50, 0x6718, 0x6F8D,
27 };
28
29 const int16_t ts_cb_4[16] = {
30 0xABE7, 0xBBA8, 0xC81C, 0xD326, 0xDD0E, 0xE5D4, 0xEE22, 0xF618,
31 0xFE28, 0x064F, 0x0EB7, 0x17B8, 0x21AA, 0x2D8B, 0x3BA2, 0x4DF9,
32 };
33
34 const int16_t ts_cb_5[8] = {
35 0xD51B, 0xF12E, 0x042E, 0x13C7, 0x2260, 0x311B, 0x40DE, 0x5385,
36 };
37
38 const int16_t ts_cb_6[8] = {
39 0xB550, 0xC825, 0xD980, 0xE997, 0xF883, 0x0752, 0x1811, 0x2E18,
40 };
41
42 const int16_t ts_cb_7[8] = {
43 0xCEF0, 0xE4F9, 0xF6BB, 0x0646, 0x14F5, 0x23FF, 0x356F, 0x4A8D,
44 };
45
46 const int16_t *ts_codebook[8] = {
47 ts_cb_0, ts_cb_1, ts_cb_2, ts_cb_3, ts_cb_4, ts_cb_5, ts_cb_6, ts_cb_7
48 };
49
50 /* table used for decoding pulse positions */
51 const int16_t ts_140[120] = {
52 0x0E46, 0x0CCC, 0x0B6D, 0x0A28, 0x08FC, 0x07E8, 0x06EB, 0x0604,
53 0x0532, 0x0474, 0x03C9, 0x0330, 0x02A8, 0x0230, 0x01C7, 0x016C,
54 0x011E, 0x00DC, 0x00A5, 0x0078, 0x0054, 0x0038, 0x0023, 0x0014,
55 0x000A, 0x0004, 0x0001, 0x0000, 0x0000, 0x0000,
56
57 0x0196, 0x017A, 0x015F, 0x0145, 0x012C, 0x0114, 0x00FD, 0x00E7,
58 0x00D2, 0x00BE, 0x00AB, 0x0099, 0x0088, 0x0078, 0x0069, 0x005B,
59 0x004E, 0x0042, 0x0037, 0x002D, 0x0024, 0x001C, 0x0015, 0x000F,
60 0x000A, 0x0006, 0x0003, 0x0001, 0x0000, 0x0000,
61
62 0x001D, 0x001C, 0x001B, 0x001A, 0x0019, 0x0018, 0x0017, 0x0016,
63 0x0015, 0x0014, 0x0013, 0x0012, 0x0011, 0x0010, 0x000F, 0x000E,
64 0x000D, 0x000C, 0x000B, 0x000A, 0x0009, 0x0008, 0x0007, 0x0006,
65 0x0005, 0x0004, 0x0003, 0x0002, 0x0001, 0x0000,
66
67 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
68 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
69 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
70 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
71 };
72
73 /* filter for correlated input filter */
74 const int16_t ts_230[8] =
75 { 0x7F3B, 0x7E78, 0x7DB6, 0x7CF5, 0x7C35, 0x7B76, 0x7AB8, 0x79FC };
76
77 /* two-point filters table */
78 const int16_t ts_240[25 * 2] = {
79 0xED2F, 0x5239,
80 0x54F1, 0xE4A9,
81 0x2620, 0xEE3E,
82 0x09D6, 0x2C40,
83 0xEFB5, 0x2BE0,
84
85 0x3FE1, 0x3339,
86 0x442F, 0xE6FE,
87 0x4458, 0xF9DF,
88 0xF231, 0x43DB,
89 0x3DB0, 0xF705,
90
91 0x4F7B, 0xFEFB,
92 0x26AD, 0x0CDC,
93 0x33C2, 0x0739,
94 0x12BE, 0x43A2,
95 0x1BDF, 0x1F3E,
96
97 0x0211, 0x0796,
98 0x2AEB, 0x163F,
99 0x050D, 0x3A38,
100 0x0D1E, 0x0D78,
101 0x150F, 0x3346,
102
103 0x38A4, 0x0B7D,
104 0x2D5D, 0x1FDF,
105 0x19B7, 0x2822,
106 0x0D99, 0x1F12,
107 0x194C, 0x0CE6
108 };
109
110 /* possible pulse values */
111 const int16_t ts_562[64] = {
112 0x0002, 0x0006, 0xFFFE, 0xFFFA,
113 0x0004, 0x000C, 0xFFFC, 0xFFF4,
114 0x0006, 0x0012, 0xFFFA, 0xFFEE,
115 0x000A, 0x001E, 0xFFF6, 0xFFE2,
116 0x0010, 0x0030, 0xFFF0, 0xFFD0,
117 0x0019, 0x004B, 0xFFE7, 0xFFB5,
118 0x0028, 0x0078, 0xFFD8, 0xFF88,
119 0x0040, 0x00C0, 0xFFC0, 0xFF40,
120 0x0065, 0x012F, 0xFF9B, 0xFED1,
121 0x00A1, 0x01E3, 0xFF5F, 0xFE1D,
122 0x0100, 0x0300, 0xFF00, 0xFD00,
123 0x0196, 0x04C2, 0xFE6A, 0xFB3E,
124 0x0285, 0x078F, 0xFD7B, 0xF871,
125 0x0400, 0x0C00, 0xFC00, 0xF400,
126 0x0659, 0x130B, 0xF9A7, 0xECF5,
127 0x0A14, 0x1E3C, 0xF5EC, 0xE1C4
128 };
129
130 /* filters used in final output calculations */
131 const int16_t ts_5E2[8] =
132 { 0x4666, 0x26B8, 0x154C, 0x0BB6, 0x0671, 0x038B, 0x01F3, 0x0112 };
133 const int16_t ts_5F2[8] =
134 { 0x6000, 0x4800, 0x3600, 0x2880, 0x1E60, 0x16C8, 0x1116, 0x0CD1 };
135
136 #endif