#ifndef _ULAW_H_ #define _ULAW_H_ /* This statically defined lookup table was computed by Bill Fisher */ /* table of linear values for codec bytes: */ static short int ulaw2linear_10_sbf_lut[256] = {-32124, -31100, -30076, -29052, -28028, -27004, -25980, -24956, -23932, -22908, -21884, -20860, -19836, -18812, -17788, -16764, -15996, -15484, -14972, -14460, -13948, -13436, -12924, -12412, -11900, -11388, -10876, -10364, -9852, -9340, -8828, -8316, -7932, -7676, -7420, -7164, -6908, -6652, -6396, -6140, -5884, -5628, -5372, -5116, -4860, -4604, -4348, -4092, -3900, -3772, -3644, -3516, -3388, -3260, -3132, -3004, -2876, -2748, -2620, -2492, -2364, -2236, -2108, -1980, -1884, -1820, -1756, -1692, -1628, -1564, -1500, -1436, -1372, -1308, -1244, -1180, -1116, -1052, -988, -924, -876, -844, -812, -780, -748, -716, -684, -652, -620, -588, -556, -524, -492, -460, -428, -396, -372, -356, -340, -324, -308, -292, -276, -260, -244, -228, -212, -196, -180, -164, -148, -132, -120, -112, -104, -96, -88, -80, -72, -64, -56, -48, -40, -32, -24, -16, -8, 0, 32124, 31100, 30076, 29052, 28028, 27004, 25980, 24956, 23932, 22908, 21884, 20860, 19836, 18812, 17788, 16764, 15996, 15484, 14972, 14460, 13948, 13436, 12924, 12412, 11900, 11388, 10876, 10364, 9852, 9340, 8828, 8316, 7932, 7676, 7420, 7164, 6908, 6652, 6396, 6140, 5884, 5628, 5372, 5116, 4860, 4604, 4348, 4092, 3900, 3772, 3644, 3516, 3388, 3260, 3132, 3004, 2876, 2748, 2620, 2492, 2364, 2236, 2108, 1980, 1884, 1820, 1756, 1692, 1628, 1564, 1500, 1436, 1372, 1308, 1244, 1180, 1116, 1052, 988, 924, 876, 844, 812, 780, 748, 716, 684, 652, 620, 588, 556, 524, 492, 460, 428, 396, 372, 356, 340, 324, 308, 292, 276, 260, 244, 228, 212, 196, 180, 164, 148, 132, 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0}; /* This statically defined lookup table was computed by Bill Fisher */ /* and byte swapped by Jon Fiscus */ static short int ulaw2linear_01_sbf_lut[256] = { -31614, -31610, -31606, -31602, -31598, -31594, -31590, -31586, -31582, -31578, -31574, -31570, -31566, -31562, -31558, -31554, -31551, -31549, -31547, -31545, -31543, -31541, -31539, -31537, -31535, -31533, -31531, -31529, -31527, -31525, -31523, -31521, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, -15120, 17649, -15119, 17650, -15118, 17651, -15117, 17652, -15116, 17653, -15115, 17654, -15114, 17655, -15113, 17656, -23304, -6920, 9465, 25849, -23303, -6919, 9466, 25850, -23302, -6918, 9467, 25851, -23301, -6917, 9468, 25852, -27396, -19204, -11012, -2820, 5373, 13565, 21757, 29949, -27395, -19203, -11011, -2819, 5374, 13566, 21758, 29950, -29442, -25346, -21250, -17154, -13058, -8962, -4866, -770, 3327, 7423, 11519, 15615, 19711, 23807, 27903, 31999, -30465, -28417, -26369, -24321, -22273, -20225, -18177, -16129, -14081, -12033, -9985, -7937, -5889, -3841, -1793, 0, 31869, 31865, 31861, 31857, 31853, 31849, 31845, 31841, 31837, 31833, 31829, 31825, 31821, 31817, 31813, 31809, 31806, 31804, 31802, 31800, 31798, 31796, 31794, 31792, 31790, 31788, 31786, 31784, 31782, 31780, 31778, 31776, -994, -995, -996, -997, -998, -999, -1000, -1001, -1002, -1003, -1004, -1005, -1006, -1007, -1008, -1009, 15375, -17394, 15374, -17395, 15373, -17396, 15372, -17397, 15371, -17398, 15370, -17399, 15369, -17400, 15368, -17401, 23559, 7175, -9210, -25594, 23558, 7174, -9211, -25595, 23557, 7173, -9212, -25596, 23556, 7172, -9213, -25597, 27651, 19459, 11267, 3075, -5118, -13310, -21502, -29694, 27650, 19458, 11266, 3074, -5119, -13311, -21503, -29695, 29697, 25601, 21505, 17409, 13313, 9217, 5121, 1025, -3072, -7168, -11264, -15360, -19456, -23552, -27648, -31744, 30720, 28672, 26624, 24576, 22528, 20480, 18432, 16384, 14336, 12288, 10240, 8192, 6144, 4096, 2048, 0 } ; /* Statically defined lookup table to define bit reversed integers from 0 to 256. This table is used translate ulaw sample to their bit-reverse plaw counterparts. Computed by Jon Fiscus. */ static unsigned char uchar_bitreverse_lut[256] = { 0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240, 8, 136, 72, 200, 40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248, 4, 132, 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, 180, 116, 244, 12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252, 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, 178, 114, 242, 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250, 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, 182, 118, 246, 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254, 1, 129, 65, 193, 33, 161, 97, 225, 17, 145, 81, 209, 49, 177, 113, 241, 9, 137, 73, 201, 41, 169, 105, 233, 25, 153, 89, 217, 57, 185, 121, 249, 5, 133, 69, 197, 37, 165, 101, 229, 21, 149, 85, 213, 53, 181, 117, 245, 13, 141, 77, 205, 45, 173, 109, 237, 29, 157, 93, 221, 61, 189, 125, 253, 3, 131, 67, 195, 35, 163, 99, 227, 19, 147, 83, 211, 51, 179, 115, 243, 11, 139, 75, 203, 43, 171, 107, 235, 27, 155, 91, 219, 59, 187, 123, 251, 7, 135, 71, 199, 39, 167, 103, 231, 23, 151, 87, 215, 55, 183, 119, 247, 15, 143, 79, 207, 47, 175, 111, 239, 31, 159, 95, 223, 63, 191, 127, 255 }; #endif