• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

libavcodec/truespeech_data.h

Go to the documentation of this file.
00001 /*
00002  * DSP Group TrueSpeech compatible decoder
00003  * copyright (c) 2005 Konstantin Shishkov
00004  *
00005  * This file is part of FFmpeg.
00006  *
00007  * FFmpeg is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * FFmpeg is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with FFmpeg; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00020  */
00021 
00022 #ifndef AVCODEC_TRUESPEECH_DATA_H
00023 #define AVCODEC_TRUESPEECH_DATA_H
00024 
00025 #include <stdint.h>
00026 
00027 /* codebooks fo expanding input filter */
00028 static const int16_t ts_cb_0[32] = {
00029     0x8240, 0x8364, 0x84CE, 0x865D, 0x8805, 0x89DE, 0x8BD7, 0x8DF4,
00030     0x9051, 0x92E2, 0x95DE, 0x990F, 0x9C81, 0xA079, 0xA54C, 0xAAD2,
00031     0xB18A, 0xB90A, 0xC124, 0xC9CC, 0xD339, 0xDDD3, 0xE9D6, 0xF893,
00032     0x096F, 0x1ACA, 0x29EC, 0x381F, 0x45F9, 0x546A, 0x63C3, 0x73B5,
00033 };
00034 
00035 static const int16_t ts_cb_1[32] = {
00036     0x9F65, 0xB56B, 0xC583, 0xD371, 0xE018, 0xEBB4, 0xF61C, 0xFF59,
00037     0x085B, 0x1106, 0x1952, 0x214A, 0x28C9, 0x2FF8, 0x36E6, 0x3D92,
00038     0x43DF, 0x49BB, 0x4F46, 0x5467, 0x5930, 0x5DA3, 0x61EC, 0x65F9,
00039     0x69D4, 0x6D5A, 0x709E, 0x73AD, 0x766B, 0x78F0, 0x7B5A, 0x7DA5,
00040 };
00041 
00042 static const int16_t ts_cb_2[16] = {
00043     0x96F8, 0xA3B4, 0xAF45, 0xBA53, 0xC4B1, 0xCECC, 0xD86F, 0xE21E,
00044     0xEBF3, 0xF640, 0x00F7, 0x0C20, 0x1881, 0x269A, 0x376B, 0x4D60,
00045 };
00046 
00047 static const int16_t ts_cb_3[16] = {
00048     0xC654, 0xDEF2, 0xEFAA, 0xFD94, 0x096A, 0x143F, 0x1E7B, 0x282C,
00049     0x3176, 0x3A89, 0x439F, 0x4CA2, 0x557F, 0x5E50, 0x6718, 0x6F8D,
00050 };
00051 
00052 static const int16_t ts_cb_4[16] = {
00053     0xABE7, 0xBBA8, 0xC81C, 0xD326, 0xDD0E, 0xE5D4, 0xEE22, 0xF618,
00054     0xFE28, 0x064F, 0x0EB7, 0x17B8, 0x21AA, 0x2D8B, 0x3BA2, 0x4DF9,
00055 };
00056 
00057 static const int16_t ts_cb_5[8] = {
00058     0xD51B, 0xF12E, 0x042E, 0x13C7, 0x2260, 0x311B, 0x40DE, 0x5385,
00059 };
00060 
00061 static const int16_t ts_cb_6[8] = {
00062     0xB550, 0xC825, 0xD980, 0xE997, 0xF883, 0x0752, 0x1811, 0x2E18,
00063 };
00064 
00065 static const int16_t ts_cb_7[8] = {
00066     0xCEF0, 0xE4F9, 0xF6BB, 0x0646, 0x14F5, 0x23FF, 0x356F, 0x4A8D,
00067 };
00068 
00069 static const int16_t * const ts_codebook[8] = {
00070     ts_cb_0, ts_cb_1, ts_cb_2, ts_cb_3, ts_cb_4, ts_cb_5, ts_cb_6, ts_cb_7
00071 };
00072 
00073 /* table used for decoding pulse positions */
00074 static const int16_t ts_140[120] = {
00075     0x0E46, 0x0CCC, 0x0B6D, 0x0A28, 0x08FC, 0x07E8, 0x06EB, 0x0604,
00076     0x0532, 0x0474, 0x03C9, 0x0330, 0x02A8, 0x0230, 0x01C7, 0x016C,
00077     0x011E, 0x00DC, 0x00A5, 0x0078, 0x0054, 0x0038, 0x0023, 0x0014,
00078     0x000A, 0x0004, 0x0001, 0x0000, 0x0000, 0x0000,
00079 
00080     0x0196, 0x017A, 0x015F, 0x0145, 0x012C, 0x0114, 0x00FD, 0x00E7,
00081     0x00D2, 0x00BE, 0x00AB, 0x0099, 0x0088, 0x0078, 0x0069, 0x005B,
00082     0x004E, 0x0042, 0x0037, 0x002D, 0x0024, 0x001C, 0x0015, 0x000F,
00083     0x000A, 0x0006, 0x0003, 0x0001, 0x0000, 0x0000,
00084 
00085     0x001D, 0x001C, 0x001B, 0x001A, 0x0019, 0x0018, 0x0017, 0x0016,
00086     0x0015, 0x0014, 0x0013, 0x0012, 0x0011, 0x0010, 0x000F, 0x000E,
00087     0x000D, 0x000C, 0x000B, 0x000A, 0x0009, 0x0008, 0x0007, 0x0006,
00088     0x0005, 0x0004, 0x0003, 0x0002, 0x0001, 0x0000,
00089 
00090     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
00091     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
00092     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
00093     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001
00094 };
00095 
00096 /* filter for correlated input filter */
00097 static const int16_t ts_230[8] =
00098     { 0x7F3B, 0x7E78, 0x7DB6, 0x7CF5, 0x7C35, 0x7B76, 0x7AB8, 0x79FC };
00099 
00100 /* two-point filters table */
00101 static const int16_t ts_240[25 * 2] = {
00102     0xED2F, 0x5239,
00103     0x54F1, 0xE4A9,
00104     0x2620, 0xEE3E,
00105     0x09D6, 0x2C40,
00106     0xEFB5, 0x2BE0,
00107 
00108     0x3FE1, 0x3339,
00109     0x442F, 0xE6FE,
00110     0x4458, 0xF9DF,
00111     0xF231, 0x43DB,
00112     0x3DB0, 0xF705,
00113 
00114     0x4F7B, 0xFEFB,
00115     0x26AD, 0x0CDC,
00116     0x33C2, 0x0739,
00117     0x12BE, 0x43A2,
00118     0x1BDF, 0x1F3E,
00119 
00120     0x0211, 0x0796,
00121     0x2AEB, 0x163F,
00122     0x050D, 0x3A38,
00123     0x0D1E, 0x0D78,
00124     0x150F, 0x3346,
00125 
00126     0x38A4, 0x0B7D,
00127     0x2D5D, 0x1FDF,
00128     0x19B7, 0x2822,
00129     0x0D99, 0x1F12,
00130     0x194C, 0x0CE6
00131 };
00132 
00133 /* possible pulse values */
00134 static const int16_t ts_562[64] = {
00135     0x0002, 0x0006, 0xFFFE, 0xFFFA,
00136     0x0004, 0x000C, 0xFFFC, 0xFFF4,
00137     0x0006, 0x0012, 0xFFFA, 0xFFEE,
00138     0x000A, 0x001E, 0xFFF6, 0xFFE2,
00139     0x0010, 0x0030, 0xFFF0, 0xFFD0,
00140     0x0019, 0x004B, 0xFFE7, 0xFFB5,
00141     0x0028, 0x0078, 0xFFD8, 0xFF88,
00142     0x0040, 0x00C0, 0xFFC0, 0xFF40,
00143     0x0065, 0x012F, 0xFF9B, 0xFED1,
00144     0x00A1, 0x01E3, 0xFF5F, 0xFE1D,
00145     0x0100, 0x0300, 0xFF00, 0xFD00,
00146     0x0196, 0x04C2, 0xFE6A, 0xFB3E,
00147     0x0285, 0x078F, 0xFD7B, 0xF871,
00148     0x0400, 0x0C00, 0xFC00, 0xF400,
00149     0x0659, 0x130B, 0xF9A7, 0xECF5,
00150     0x0A14, 0x1E3C, 0xF5EC, 0xE1C4
00151 };
00152 
00153 /* filters used in final output calculations */
00154 static const int16_t ts_5E2[8] =
00155     { 0x4666, 0x26B8, 0x154C, 0x0BB6, 0x0671, 0x038B, 0x01F3, 0x0112 };
00156 static const int16_t ts_5F2[8] =
00157     { 0x6000, 0x4800, 0x3600, 0x2880, 0x1E60, 0x16C8, 0x1116, 0x0CD1 };
00158 
00159 #endif /* AVCODEC_TRUESPEECH_DATA_H */

Generated on Fri Sep 16 2011 17:17:44 for FFmpeg by  doxygen 1.7.1