/* * E-AC-3 decoder tables * Copyright (c) 2007 Bartlomiej Wolowiec <bartek.wolowiec@gmail.com> * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /** * @file * Tables taken directly from the E-AC-3 spec. */ #include "eac3dec_data.h"#include "ac3.h" const uint8_t ff_eac3_bits_vs_hebap[20] = { 0, 2, 3, 4, 5, 7, 8, 9, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16,}; /** * Table E3.6, Gk=1 * No gain (Gk=1) inverse quantization, remapping scale factors * ff_eac3_gaq_remap[hebap+8] */const int16_t ff_eac3_gaq_remap_1[12] = { 4681, 2185, 1057, 520, 258, 129, 64, 32, 16, 8, 2, 0}; /** * Table E3.6, Gk=2 & Gk=4, A * Large mantissa inverse quantization, remapping scale factors * ff_eac3_gaq_remap_2_4_a[hebap-8][Gk=2,4] */const int16_t ff_eac3_gaq_remap_2_4_a[9][2] = { { -10923, -4681 }, { -14043, -6554 }, { -15292, -7399 }, { -15855, -7802 }, { -16124, -7998 }, { -16255, -8096 }, { -16320, -8144 }, { -16352, -8168 }, { -16368, -8180 }}; /** * Table E3.6, Gk=2 & Gk=4, B * Large mantissa inverse quantization, negative mantissa remapping offsets * ff_eac3_gaq_remap_3_4_b[hebap-8][Gk=2,4] */const int16_t ff_eac3_gaq_remap_2_4_b[9][2] = { { -5461, -1170 }, { -11703, -4915 }, { -14199, -6606 }, { -15327, -7412 }, { -15864, -7805 }, { -16126, -7999 }, { -16255, -8096 }, { -16320, -8144 }, { -16352, -8168 }}; static const int16_t vq_hebap1[4][6] = {{ 7167, 4739, 1106, 4269, 10412, 4820},{ -5702, -3187, -14483, -1392, -2027, 849},{ 633, 6199, 7009, -12779, -2306, -2636},{ -1468, -7031, 7592, 10617, -5946, -3062},};static const int16_t vq_hebap2[8][6] = {{ -12073, 608, -7019, 590, 4000, 869},{ 6692, 15689, -6178, -9239, -74, 133},{ 1855, -989, 20596, -2920, -4475, 225},{ -1194, -3901, -821, -6566, -875, -20298},{ -2762, -3181, -4094, -5623, -16945, 9765},{ 1547, 6839, 1980, 20233, -1071, -4986},{ 6221, -17915, -5516, 6266, 358, 1162},{ 3753, -1066, 4283, -3227, 15928, 10186},};static const int16_t vq_hebap3[16][6] = {{ -10028, 20779, 10982, -4560, 798, -68},{ 11050, 20490, -6617, -5342, -1797, -1631},{ 3977, -542, 7118, -1166, 18844, 14678},{ -4320, -96, -7295, -492, -22050, -4277},{ 2692, 5856, 5530, 21862, -7212, -5325},{ -135, -23391, 962, 8115, -644, 382},{ -1563, 3400, -3299, 4693, -6892, 22398},{ 3535, 3030, 7296, 6214, 20476, -12099},{ 57, -6823, 1848, -22349, -5919, 6823},{ -821, -3655, -387, -6253, -1735, -22373},{ -6046, 1586, -18890, -14392, 9214, 705},{ -5716, 264, -17964, 14618, 7921, -337},{ -110, 108, 8, 74, -89, -50},{ 6612, -1517, 21687, -1658, -7949, -246},{ 21667, -6335, -8290, -101, -1349, -22},{ -22003, -6476, 7974, 648, 2054, -331},};static const int16_t vq_hebap4[32][6] = {{ 6636, -4593, 14173, -17297, -16523, 864},{ 3658, 22540, 104, -1763, -84, 6},{ 21580, -17815, -7282, -1575, -2078, -320},{ -2233, 10017, -2728, 14938, -13640, -17659},{ -1564, -17738, -19161, 13735, 2757, 2951},{ 4520, 5510, 7393, 10799, 19231, -13770},{ 399, 2976, -1099, 5013, -1159, 22095},{ 3624, -2359, 4680, -2238, 22702, 3765},{ -4201, -8285, -6810, -12390, -18414, 15382},{ -5198, -6869, -10047, -8364, -16022, -20562},{ -142, -22671, -368, 4391, -464, -13},{ 814, -1118, -1089, -22019, 74, 1553},{ -1618, 19222, -17642, -13490, 842, -2309},{ 4689, 16490, 20813, -15387, -4164, -3968},{ -3308, 11214, -13542, 13599, -19473, 13770},{ 1817, 854, 21225, -966, -1643, -268},{ -2587, -107, -20154, 376, 1174, -304},{ -2919, 453, -5390, 750, -22034, -978},{ -19012, 16839, 10000, -3580, 2211, 1459},{ 1363, -2658, -33, -4067, 1165, -21985},{ -8592, -2760, -17520, -15985, 14897, 1323},{ 652, -9331, 3253, -14622, 12181, 19692},{ -6361, 5773, -15395, 17291, 16590, -2922},{ -661, -601, 1609, 22610, 992, -1045},{ 4961, 9107, 11225, 7829, 16320, 18627},{ -21872, -1433, 138, 1470, -1891, -196},{ -19499, -18203, 11056, -516, 2543, -2249},{ -1196, -17574, 20150, 11462, -401, 2619},{ 4638, -8154, 11891, -15759, 17615, -14955},{ -83, 278, 323, 55, -154, 232},{ 7788, 1462, 18395, 15296, -15763, -1131},};static const int16_t vq_hebap5[128][6] = {{ -3394, -19730, 2963, 9590, 4660, 19673},{ -15665, -6405, 17671, 3860, -8232, -19429},{ 4467, 412, -17873, -8037, 691, -17307},{ 3580, 2363, 6886, 3763, 6379, -20522},{ -17230, -14133, -1396, -23939, 8373, -12537},{ -8073, -21469, -15638, 3214, 8105, -5965},{ 4343, 5169, 2683, -16822, -5146, -16558},{ 6348, -10668, 12995, -25500, -22090, 4091},{ -2880, -8366, -5968, -17158, -2638, 23132},{ -5095, -14281, -22371, 21741, 3689, 2961},{ -2443, -17739, 25155, 2707, 1594, 7},{ -18379, 9010, 4270, 731, -426, -640},{ -23695, 24732, 5642, 612, -308, -964},{ -767, 1268, 225, 1635, 173, 916},{ 5455, 6493, 4902, 10560, 23041, -17140},{ 17219, -21054, -18716, 4936, -3420, 3357},{ -1390, 15488, -21946, -14611, 1339, 542},{ -6866, -2254, -12070, -3075, -19981, -20622},{ -1803, 11775, 1343, 8917, 693, 24497},{ -21610, 9462, 4681, 9254, -7815, 15904},{ -5559, -3018, -9169, -1347, -22547, 12868},{ -366, 5076, -1727, 20427, -283, -2923},{ -1886, -6313, -939, -2081, -1399, 3513},{ -3161, -537, -5075, 11268, 19396, 989},{ 2345, 4153, 5769, -4273, 233, -399},{ -21894, -1138, -16474, 5902, 5488, -3211},{ 10007, -12530, 18829, 20932, -1158, 1790},{ -1165, 5014, -1199, 6415, -8418, -21038},{ 1892, -3534, 3815, -5846, 16427, 20288},{ -2664, -11627, -4147, -18311, -22710, 14848},{ 17256, 10419, 7764, 12040, 18956, 2525},{ -21419, -18685, -10897, 4368, -7051, 4539},{ -1574, 2050, 5760, 24756, 15983, 17678},{ -538, -22867, 11067, 10301, 385, 528},{ -8465, -3025, -16357, -23237, 16491, 3654},{ 5840, 575, 11890, 1947, 25157, 6653},{ 6625, -3516, -1964, 3850, -390, -116},{ 18005, 20900, 14323, -7621, -10922, 11802},{ -4857, -2932, -13334, -7815, 21622, 2267},{ -579, -9431, -748, -21321, 12367, 8265},{ -8317, 1375, -17847, 2921, 9062, 22046},{ 18398, 8635, -1503, -2418, -18295, -14734},{ -2987, 15129, -3331, 22300, 13878, -13639},{ 5874, -19026, 15587, 11350, -20738, 1971},{ 1581, -6955, -21440, 2455, 65, 414},{ 515, -4468, -665, -4672, 125, -19222},{ 21495, -20301, -1872, -1926, -211, -1022},{ 5189, -12250, -1775, -23550, -4546, 5813},{ 321, -6331, 14646, 6975, -1773, 867},{ -13814, 3180, 7927, 444, 19552, 3146},{ -6660, 12252, -1972, 17408, -24280, -12956},{ -745, 14356, -1107, 23742, -9631, -18344},{ 18284, -7909, -7531, 19118, 7721, -12659},{ 1926, 15101, -12848, 2153, 21631, 1864},{ -2130, 23416, 17056, -15597, -1544, 87},{ 8314, -11824, 14581, -20591, 7891, -2099},{ 19600, 22814, -17304, -2040, 285, -3863},{ -8214, -18322, 10724, -13744, -13469, -1666},{ 14351, 4880, -20034, 964, -4221, -180},{ -24598, -16635, 19724, 5925, 4777, 4414},{ -2495, 23493, -16141, 2918, -1038, -2010},{ 18974, -2540, 13343, 1405, -6194, -1136},{ 2489, 13670, 22638, -7311, -129, -2792},{ -13962, 16775, 23012, 728, 3397, 162},{ 3038, 993, 8774, -21969, -6609, 910},{ -12444, -22386, -2626, -5295, 19520, 9872},{ -1911, -18274, -18506, -14962, 4760, 7119},{ 8298, -2978, 25886, 7660, -7897, 1020},{ 6132, 15127, 18757, -24370, -6529, -6627},{ 7924, 12125, -9459, -23962, 5502, 937},{ -17056, -5373, 2522, 327, 1129, -390},{ 15774, 19955, -10380, 11172, -3107, 14853},{ -11904, -8091, -17928, -22287, -17237, -6803},{ -12862, -2172, -6509, 5927, 12458, -22355},{ -497, 322, 1038, -6643, -5404, 20311},{ 1083, -22984, -8494, 12130, -762, 2623},{ 5067, 19712, -1901, -30, -325, 85},{ 987, -5830, 4212, -9030, 9121, -25038},{ -7868, 7284, -12292, 12914, -21592, 20941},{ -1630, -7694, -2187, -8525, -5604, -25196},{ -6668, 388, -22535, 1526, 9082, 193},{ -7867, -22308, 5163, 362, 944, -259},{ 3824, -11850, 7591, -23176, 25342, 23771},{ -10504, 4123, -21111, 21173, 22439, -838},{ -4723, 21795, 6184, -122, 1642, -717},{ 24504, 19887, -2043, 986, 7, -55},{ -27313, -135, 2437, 259, 89, 307},{ 24446, -3873, -5391, -820, -2387, 361},{ 5529, 5784, 18682, 242, -21896, -4003},{ 22304, 4483, 722, -12242, 7570, 15448},{ 8673, 3009, 20437, 21108, -21100, -3080},{ -1132, 2705, -1825, 5420, -785, 18532},{ 16932, -13517, -16509, -14858, -20327, -14221},{ 2219, 1380, 21474, -1128, 327, 83},{ -2177, 21517, -3856, -14180, -204, -2191},{ 953, -9426, 15874, -10710, -3231, 21030},{ -421, -1377, 640, -8239, -20976, 2174},{ 4309, 18514, -9100, -18319, -15518, 3704},{ -5943, 449, -8387, 1075, -22210, -4992},{ 2953, 12788, 18285, 1430, 14937, 21731},{ -2913, 401, -4739, -20105, 1699, -1147},{ 3449, 5241, 8853, 22134, -7547, 1451},{ -2154, 8584, 18120, -15614, 19319, -5991},{ 3501, 2841, 5897, 6397, 8630, 23018},{ 2467, 2956, 379, 5703, -22047, -2189},{ -16963, -594, 18822, -5295, 1640, 774},{ 2896, -1424, 3586, -2292, 19910, -1822},{ -18575, 21219, -14001, -12573, 16466, 635},{ -1998, -19314, -16527, 12208, -16576, -7854},{ -9674, 1012, -21645, 2883, -12712, 2321},{ -1005, 471, -3629, 8045, -11087, 25533},{ 4141, -21472, -2673, 756, -663, -523},{ 6490, 8531, 19289, 18949, 6092, -9347},{ 16965, 24599, 14024, 10072, -536, -10438},{ -8147, 2145, -23028, -17073, 5451, -4401},{ -14873, 20520, -18303, -9717, -11885, -17831},{ -2290, -14120, 2070, 22467, 1671, 725},{ -8538, 14629, 3521, -20577, 6673, 8200},{ 20248, 4410, -1366, -585, 1229, -2449},{ 7467, -7148, 13667, -8246, 22392, -17320},{ -1932, 3875, -9064, -3812, 958, 265},{ -4399, 2959, -15911, 19598, 4954, -1105},{ 18009, -9923, -18137, -3862, 11178, 5821},{ -14596, -1227, 9660, 21619, 11228, -11721},{ -721, -1700, 109, -2142, 61, -6772},{ -24619, -22520, 5608, -1957, -1761, -1012},{ -23728, -4451, -2688, -14679, -4266, 9919},{ 8495, -894, 20438, -13820, -17267, 139},};static const int16_t vq_hebap6[256][6] = {{ 10154, 7365, 16861, 18681, -22893, -3636},{ -2619, -3788, -5529, -5192, -9009, -20298},{ -5583, -22800, 21297, 7012, 745, 720},{ 428, -1459, 109, -3082, 361, -8403},{ 8161, 22401, 241, 1755, -874, -2824},{ 1140, 12643, 2306, 22263, -25146, -17557},{ -2609, 3379, 10337, -19730, -15468, -23944},{ -4040, -12796, -25772, 13096, 3905, 1315},{ 4624, -23799, 13608, 25317, -1175, 2173},{ -97, 13747, -5122, 23255, 4214, -22145},{ 6878, -322, 18264, -854, -11916, -733},{ 17280, -12669, -9693, 23563, -16240, -1309},{ 5802, -4968, 19526, -21194, -24622, -183},{ 5851, -16137, 15229, -9496, -1538, 377},{ 14096, 25057, 13419, 8290, 23320, 16818},{ -7261, 118, -15867, 19097, 9781, -277},{ -4288, 21589, -13288, -16259, 16633, -4862},{ 4909, -19217, 23411, 14705, -722, 125},{ 19462, -4732, -1928, -11527, 20770, 5425},{ -27562, -2881, -4331, 384, -2103, 1367},{ -266, -9175, 5441, 26333, -1924, 4221},{ -2970, -20170, -21816, 5450, -7426, 5344},{ -221, -6696, 603, -9140, 1308, -27506},{ 9621, -8380, -1967, 9403, -1651, 22817},{ 7566, -5250, -4165, 1385, -990, 560},{ -1262, 24738, -19057, 10741, 7585, -7098},{ 451, 20130, -9949, -6015, -2188, -1458},{ 22249, 9380, 9096, 10959, -2365, -3724},{ 18668, -650, -1234, 11092, 7678, 5969},{ 19207, -1485, -1076, -731, -684, 43},{ -4973, 13430, 20139, 60, 476, -935},{ -20029, 8710, 2499, 1016, -1158, 335},{ -26413, 18598, -2201, -669, 3409, 793},{ -4726, 8875, -24607, -9646, 3643, -283},{ 13303, -21404, -3691, -1184, -1970, 1612},{ 173, 60, 919, 1229, 6942, -665},{ 16377, 16991, 5341, -14015, -2304, -20390},{ 25334, -10609, 11947, -7653, -6363, 14058},{ 23929, -13259, -7226, -937, 234, -187},{ 6311, -1877, 12506, -1879, 18751, -23341},{ 621, 6445, 3354, -24274, 8406, 5315},{ -3297, -5034, -4704, -5080, -25730, 5347},{ -1275, -13295, -965, -23318, 1214, 26259},{ -6252, 10035, -20105, 15301, -16073, 5136},{ 9562, -3911, -19510, 4745, 22270, -4171},{ 7978, -19600, 14024, -5745, -20855, 8939},{ 7, -4039, 991, -6065, 52, -19423},{ 3485, 2969, 7732, 7786, 25312, 6206},{ -959, -12812, -1840, -22743, 7324, 10830},{ -4686, 1678, -10172, -5205, 4294, -1271},{ 3889, 1302, 7450, 638, 20374, -3133},{ -12496, -9123, 18463, -12343, -7238, 18552},{ -6185, 8649, -6903, -895, 17109, 16604},{ -9896, 28579, 2845, 1640, 2925, -298},{ 14968, -25988, 14878, -24012, 1815, -6474},{ 26107, 5166, 21225, 15873, 21617, 14825},{ -21684, 16438, 20504, -14346, -7114, -4162},{ 28647, 90, -1572, 789, -902, -75},{ -1479, 2471, -4061, 3612, -2240, 10914},{ 8616, 17491, 17255, -17456, 17022, -16357},{ -20722, -18597, 25274, 17720, -3573, 1695},{ -997, 6129, -6303, 11250, -11359, -19739},{ -74, -4001, -1584, 13384, 162, -144},{ -529, 21068, 7923, -11396, 422, -26},{ 7102, -13531, -20055, 2629, -178, -429},{ 9201, 1368, -22238, 2623, -20499, 24889},{ -432, 6675, -266, 8723, 80, 28024},{ 19493, -3108, -9261, 1910, -21777, 5345},{ 14079, -11489, 12604, 6079, 19877, 1315},{ 10947, 9837, -18612, 15742, 4792, 605},{ -1777, 3758, -4087, 21696, 6024, -576},{ 3567, -3578, 16379, 2680, -1752, 716},{ -5049, -1399, -4550, -652, -17721, -3366},{ -3635, -4372, -6522, -22152, 7382, 1458},{ 12242, 19190, 5646, -7815, -20289, 21344},{ -7508, 19952, 23542, -9753, 5669, -1990},{ -2275, 15438, 10907, -17879, 6497, 13582},{ -15894, -15646, -4716, 6019, 24250, -6179},{ -2049, -6856, -1208, 918, 17735, -69},{ -3721, 9099, -16065, -23621, 5981, -2344},{ 7862, -8918, 24033, 25508, -11033, -741},{ -12588, 19468, 14649, 15451, -21226, 1171},{ 2102, 1147, 2789, 4096, 2179, 8750},{ -18214, -17758, -10366, -5203, -1066, -3541},{ -2819, -19958, -11921, 6032, 8315, 10374},{ -9078, -2100, 19431, -17, 732, -689},{ -14512, -19224, -7095, 18727, 1870, 22906},{ 3912, 659, 25597, -4006, 9619, 877},{ 2616, 22695, -5770, 17920, 3812, 20220},{ 2561, 26847, -5245, -10908, 2256, -517},{ -4974, 198, -21983, -3608, 22174, -18924},{ 21308, -1211, 19144, 16691, -1588, 11390},{ -1790, 3959, -3488, 7003, -7107, 20877},{ -6108, -17955, -18722, 24763, 16508, 3211},{ 20462, -24987, -20361, 4484, -5111, -478},{ -6378, -1998, -10229, -561, -22039, -22339},{ 3047, -18850, 7586, 14743, -19862, 6351},{ -5047, 1405, -9672, 1055, -21881, 11170},{ 3481, -9699, 6526, -16655, 22813, 21907},{ -18570, 17501, 14664, 1291, 5026, 19676},{ 16134, -19810, -16956, -17939, -16933, 5800},{ -8224, 4908, 8935, 2272, -1140, -23217},{ 1572, 2753, -1598, 2143, -3346, -21926},{ -9832, -1060, -27818, 1214, 7289, 150},{ 98, 1538, 535, 17429, -23198, -901},{ 21340, -20146, 3297, -1744, -8207, -21462},{ -4166, -4633, -17902, 5478, 1285, 136},{ 18713, 21003, 24818, 11421, 1282, -4618},{ -3535, 7636, -265, 2141, -829, -2035},{ -3184, 19713, 2775, -2, 1090, 104},{ -6771, -20185, 2938, -2125, -36, 1268},{ 9560, 9430, 9586, 22100, 13827, 6296},{ -535, -20018, 4276, -1868, -448, -17183},{ -24352, 14244, -13647, -21040, 2271, 11555},{ -2646, 15437, -4589, 18638, -4299, -622},{ -20064, 4169, 18115, -1404, 13722, -1825},{ -16359, 9080, 744, 22021, 125, 10794},{ 9644, -14607, -18479, -14714, 11174, -20754},{ -326, -23762, 6144, 7909, 602, 1540},{ -6650, 6634, -12683, 21396, 20785, -6839},{ 4252, -21043, 5628, 18687, 23860, 8328},{ 17986, 5704, -5245, -18093, -555, 3219},{ 6091, 14232, -5117, -17456, -19452, -11649},{ -21586, 11302, 15434, 25590, 6777, -26683},{ 21355, -8244, 5877, -3540, 6079, -2567},{ 2603, -2455, 5421, -12286, -19100, 5574},{ -1721, -26393, -23664, 22904, -349, 3787},{ 2189, -1203, 5340, 3249, -22617, 104},{ -1664, -11020, -2857, -20723, -24049, 19900},{ 22873, -7345, -18481, -14616, -8400, -12965},{ 3777, 3958, 8239, 20494, -6991, -1201},{ -160, -1613, -793, -8681, 573, 776},{ 4297, -3786, 20373, 6082, -5321, -18400},{ 18745, 2463, 12546, -7749, -7734, -2183},{ 11074, -4720, 22119, 1825, -24351, 4080},{ 1503, -19178, -1569, 13, -313, 375},{ 318, -575, 2544, 178, 102, 40},{ -15996, -26897, 5008, 3320, 686, 1159},{ 25755, 26886, 574, -5930, -3916, 1407},{ -9148, -7665, -2875, -8384, -18663, 26400},{ -7445, -18040, -18396, 8802, -2252, -21886},{ 7851, 11773, 27485, -12847, -1410, 19590},{ 2240, 5947, 11247, 15980, -6499, 24280},{ 21673, -18515, 9771, 6550, -2730, 334},{ -4149, 1576, -11010, 89, -24429, -5710},{ 7720, 1478, 21412, -25025, -8385, 9},{ -2448, 10218, -12756, -16079, 1161, -21284},{ -8757, -14429, -22918, -14812, 2629, 13844},{ -7252, 2843, -9639, 2882, -14625, 24497},{ -674, -6530, 414, -23333, -21343, 454},{ 2104, -6312, 10887, 18087, -1199, 175},{ -493, -562, -2739, 118, -1074, 93},{ -10011, -4075, -28071, 22180, 15077, -636},{ -4637, -16408, -9003, -20418, -11608, -20932},{ 4815, 15892, 24238, -13634, -3074, -1059},{ -6724, 4610, -18772, -15283, -16685, 23988},{ 15349, -674, -3682, 21679, 4475, -12088},{ 4756, 2593, 5354, 6001, 15063, 26490},{ -23815, -17251, 6944, 378, 694, 670},{ 23392, -8839, -14713, 7544, -876, 11088},{ 3640, 3336, 22593, -3495, -2328, -113},{ 284, 6914, 3097, 10171, 6638, -18621},{ 2472, 5976, 11054, -11936, -603, -663},{ 16175, 16441, 13164, -4043, 4667, 7431},{ 19338, 15534, -6533, 1681, -4857, 17048},{ 17027, 532, -19064, -1441, -5130, 1085},{ -12617, -17609, 2062, -25332, 19009, -16121},{ 10056, -21000, -13634, -2949, 15367, 19934},{ -648, -1605, 10046, -1592, 13296, 19808},{ -1054, 10744, 538, 24938, 9630, -9052},{ -10099, 3042, -25076, -24052, 13971, 100},{ 6547, 6907, 7031, 10348, 23775, -17886},{ -22793, -1984, -1393, -3330, 9267, 14317},{ -14346, -3967, 3042, 16254, -17303, 9646},{ -21393, 23628, 16773, 716, 2663, 114},{ -19016, -3038, 1574, -245, 1463, -793},{ 22410, 23441, -14637, -530, 17310, 13617},{ -11582, 7935, -13954, 23465, -24628, 26550},{ -1045, 3679, -2218, 10572, 20999, -3702},{ -15513, 197, 16718, -24603, 4945, 5},{ 10781, 4335, 26790, -9059, -16152, -2840},{ 16075, -24100, -3933, -6833, 12645, -7029},{ 2096, -25572, -8370, 6814, 11, 1178},{ -11848, -583, -8889, -20543, -10471, -380},{ -2487, 24777, -21639, -19341, 1660, -732},{ 2313, 13679, 4085, 24549, 24691, -21179},{ -2366, -504, -4130, -10570, 23668, 1961},{ 20379, 17809, -9506, 3733, -18954, -6292},{ -3856, 16802, -929, -20310, -17739, 6797},{ 12431, 6078, -11272, -14450, 6913, 23476},{ 7636, -1655, 23017, 10719, -8292, 838},{ -8559, -1235, -18096, 3897, 16093, 1490},{ -3586, 8276, 15165, -3791, -21149, 1741},{ -4497, 21739, 2366, -278, -4792, 15549},{ -23122, -13708, 7668, 16232, 24120, 15025},{ -20043, 12821, -20160, 16691, -11655, -16081},{ -12601, 20239, 3496, -2549, -6745, -11850},{ 4441, 7812, 20783, 17080, 11523, -9643},{ 24766, 8494, -23298, -3262, 11101, -7120},{ -10107, -7623, -22152, -18303, 26645, 9550},{ -25549, 477, 7874, -1538, 1123, -168},{ 470, 9834, -347, 23945, -10381, -9467},{ -4096, -9702, -6856, -21544, 20845, 7174},{ 5370, 9748, -23765, -1190, 512, -1538},{ -1006, -10046, -12649, 19234, -1790, -890},{ 15108, 23620, -15646, -2522, -1203, -1325},{ -7406, -2605, 1095, -247, -473, 177},{ 8089, 4, 12424, -22284, 10405, -7728},{ 22196, 10775, -5043, 690, 534, -212},{ -3153, -1418, -16835, 18426, 15821, 22956},{ 5681, -2229, 3196, -3414, -21817, -14807},{ 19, 787, 1032, 170, -8295, -645},{ -882, -2319, -27105, 432, -4392, 1499},{ -1354, -11819, -76, -20380, -10293, 11328},{ 211, -4753, -4675, -6933, -13538, 14479},{ 6043, 5260, -459, -462, 143, -65},{ -2572, 7256, -3317, 9212, -23184, -9990},{ -24882, -9532, 18874, 6101, 2429, -14482},{ 8314, 2277, 14192, 3512, 25881, 22000},{ 208, 20218, -281, -24778, -63, -1183},{ 1095, -6034, 2706, -21935, -2655, 563},{ 23, -5930, 243, -8989, 5345, 20558},{ -15466, 12699, 4160, 11087, 20621, -10416},{ 20995, -85, -8468, 194, 1003, -9515},{ -19637, -3335, -14081, 3574, -23381, -667},Lines 1–500 of 1134. Load more
/* * E-AC-3 decoder tables * Copyright (c) 2007 Bartlomiej Wolowiec <bartek.wolowiec@gmail.com> * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /** * @file * Tables taken directly from the E-AC-3 spec. */ #include "eac3dec_data.h" #include "ac3.h" const uint8_t ff_eac3_bits_vs_hebap[20] = { 0, 2, 3, 4, 5, 7, 8, 9, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, }; /** * Table E3.6, Gk=1 * No gain (Gk=1) inverse quantization, remapping scale factors * ff_eac3_gaq_remap[hebap+8] */ const int16_t ff_eac3_gaq_remap_1[12] = { 4681, 2185, 1057, 520, 258, 129, 64, 32, 16, 8, 2, 0 }; /** * Table E3.6, Gk=2 & Gk=4, A * Large mantissa inverse quantization, remapping scale factors * ff_eac3_gaq_remap_2_4_a[hebap-8][Gk=2,4] */ const int16_t ff_eac3_gaq_remap_2_4_a[9][2] = { { -10923, -4681 }, { -14043, -6554 }, { -15292, -7399 }, { -15855, -7802 }, { -16124, -7998 }, { -16255, -8096 }, { -16320, -8144 }, { -16352, -8168 }, { -16368, -8180 } }; /** * Table E3.6, Gk=2 & Gk=4, B * Large mantissa inverse quantization, negative mantissa remapping offsets * ff_eac3_gaq_remap_3_4_b[hebap-8][Gk=2,4] */ const int16_t ff_eac3_gaq_remap_2_4_b[9][2] = { { -5461, -1170 }, { -11703, -4915 }, { -14199, -6606 }, { -15327, -7412 }, { -15864, -7805 }, { -16126, -7999 }, { -16255, -8096 }, { -16320, -8144 }, { -16352, -8168 } }; static const int16_t vq_hebap1[4][6] = { { 7167, 4739, 1106, 4269, 10412, 4820}, { -5702, -3187, -14483, -1392, -2027, 849}, { 633, 6199, 7009, -12779, -2306, -2636}, { -1468, -7031, 7592, 10617, -5946, -3062}, }; static const int16_t vq_hebap2[8][6] = { { -12073, 608, -7019, 590, 4000, 869}, { 6692, 15689, -6178, -9239, -74, 133}, { 1855, -989, 20596, -2920, -4475, 225}, { -1194, -3901, -821, -6566, -875, -20298}, { -2762, -3181, -4094, -5623, -16945, 9765}, { 1547, 6839, 1980, 20233, -1071, -4986}, { 6221, -17915, -5516, 6266, 358, 1162}, { 3753, -1066, 4283, -3227, 15928, 10186}, }; static const int16_t vq_hebap3[16][6] = { { -10028, 20779, 10982, -4560, 798, -68}, { 11050, 20490, -6617, -5342, -1797, -1631}, { 3977, -542, 7118, -1166, 18844, 14678}, { -4320, -96, -7295, -492, -22050, -4277}, { 2692, 5856, 5530, 21862, -7212, -5325}, { -135, -23391, 962, 8115, -644, 382}, { -1563, 3400, -3299, 4693, -6892, 22398}, { 3535, 3030, 7296, 6214, 20476, -12099}, { 57, -6823, 1848, -22349, -5919, 6823}, { -821, -3655, -387, -6253, -1735, -22373}, { -6046, 1586, -18890, -14392, 9214, 705}, { -5716, 264, -17964, 14618, 7921, -337}, { -110, 108, 8, 74, -89, -50}, { 6612, -1517, 21687, -1658, -7949, -246}, { 21667, -6335, -8290, -101, -1349, -22}, { -22003, -6476, 7974, 648, 2054, -331}, }; static const int16_t vq_hebap4[32][6] = { { 6636, -4593, 14173, -17297, -16523, 864}, { 3658, 22540, 104, -1763, -84, 6}, { 21580, -17815, -7282, -1575, -2078, -320}, { -2233, 10017, -2728, 14938, -13640, -17659}, { -1564, -17738, -19161, 13735, 2757, 2951}, { 4520, 5510, 7393, 10799, 19231, -13770}, { 399, 2976, -1099, 5013, -1159, 22095}, { 3624, -2359, 4680, -2238, 22702, 3765}, { -4201, -8285, -6810, -12390, -18414, 15382}, { -5198, -6869, -10047, -8364, -16022, -20562}, { -142, -22671, -368, 4391, -464, -13}, { 814, -1118, -1089, -22019, 74, 1553}, { -1618, 19222, -17642, -13490, 842, -2309}, { 4689, 16490, 20813, -15387, -4164, -3968}, { -3308, 11214, -13542, 13599, -19473, 13770}, { 1817, 854, 21225, -966, -1643, -268}, { -2587, -107, -20154, 376, 1174, -304}, { -2919, 453, -5390, 750, -22034, -978}, { -19012, 16839, 10000, -3580, 2211, 1459}, { 1363, -2658, -33, -4067, 1165, -21985}, { -8592, -2760, -17520, -15985, 14897, 1323}, { 652, -9331, 3253, -14622, 12181, 19692}, { -6361, 5773, -15395, 17291, 16590, -2922}, { -661, -601, 1609, 22610, 992, -1045}, { 4961, 9107, 11225, 7829, 16320, 18627}, { -21872, -1433, 138, 1470, -1891, -196}, { -19499, -18203, 11056, -516, 2543, -2249}, { -1196, -17574, 20150, 11462, -401, 2619}, { 4638, -8154, 11891, -15759, 17615, -14955}, { -83, 278, 323, 55, -154, 232}, { 7788, 1462, 18395, 15296, -15763, -1131}, }; static const int16_t vq_hebap5[128][6] = { { -3394, -19730, 2963, 9590, 4660, 19673}, { -15665, -6405, 17671, 3860, -8232, -19429}, { 4467, 412, -17873, -8037, 691, -17307}, { 3580, 2363, 6886, 3763, 6379, -20522}, { -17230, -14133, -1396, -23939, 8373, -12537}, { -8073, -21469, -15638, 3214, 8105, -5965}, { 4343, 5169, 2683, -16822, -5146, -16558}, { 6348, -10668, 12995, -25500, -22090, 4091}, { -2880, -8366, -5968, -17158, -2638, 23132}, { -5095, -14281, -22371, 21741, 3689, 2961}, { -2443, -17739, 25155, 2707, 1594, 7}, { -18379, 9010, 4270, 731, -426, -640}, { -23695, 24732, 5642, 612, -308, -964}, { -767, 1268, 225, 1635, 173, 916}, { 5455, 6493, 4902, 10560, 23041, -17140}, { 17219, -21054, -18716, 4936, -3420, 3357}, { -1390, 15488, -21946, -14611, 1339, 542}, { -6866, -2254, -12070, -3075, -19981, -20622}, { -1803, 11775, 1343, 8917, 693, 24497}, { -21610, 9462, 4681, 9254, -7815, 15904}, { -5559, -3018, -9169, -1347, -22547, 12868}, { -366, 5076, -1727, 20427, -283, -2923}, { -1886, -6313, -939, -2081, -1399, 3513}, { -3161, -537, -5075, 11268, 19396, 989}, { 2345, 4153, 5769, -4273, 233, -399}, { -21894, -1138, -16474, 5902, 5488, -3211}, { 10007, -12530, 18829, 20932, -1158, 1790}, { -1165, 5014, -1199, 6415, -8418, -21038}, { 1892, -3534, 3815, -5846, 16427, 20288}, { -2664, -11627, -4147, -18311, -22710, 14848}, { 17256, 10419, 7764, 12040, 18956, 2525}, { -21419, -18685, -10897, 4368, -7051, 4539}, { -1574, 2050, 5760, 24756, 15983, 17678}, { -538, -22867, 11067, 10301, 385, 528}, { -8465, -3025, -16357, -23237, 16491, 3654}, { 5840, 575, 11890, 1947, 25157, 6653}, { 6625, -3516, -1964, 3850, -390, -116}, { 18005, 20900, 14323, -7621, -10922, 11802}, { -4857, -2932, -13334, -7815, 21622, 2267}, { -579, -9431, -748, -21321, 12367, 8265}, { -8317, 1375, -17847, 2921, 9062, 22046}, { 18398, 8635, -1503, -2418, -18295, -14734}, { -2987, 15129, -3331, 22300, 13878, -13639}, { 5874, -19026, 15587, 11350, -20738, 1971}, { 1581, -6955, -21440, 2455, 65, 414}, { 515, -4468, -665, -4672, 125, -19222}, { 21495, -20301, -1872, -1926, -211, -1022}, { 5189, -12250, -1775, -23550, -4546, 5813}, { 321, -6331, 14646, 6975, -1773, 867}, { -13814, 3180, 7927, 444, 19552, 3146}, { -6660, 12252, -1972, 17408, -24280, -12956}, { -745, 14356, -1107, 23742, -9631, -18344}, { 18284, -7909, -7531, 19118, 7721, -12659}, { 1926, 15101, -12848, 2153, 21631, 1864}, { -2130, 23416, 17056, -15597, -1544, 87}, { 8314, -11824, 14581, -20591, 7891, -2099}, { 19600, 22814, -17304, -2040, 285, -3863}, { -8214, -18322, 10724, -13744, -13469, -1666}, { 14351, 4880, -20034, 964, -4221, -180}, { -24598, -16635, 19724, 5925, 4777, 4414}, { -2495, 23493, -16141, 2918, -1038, -2010}, { 18974, -2540, 13343, 1405, -6194, -1136}, { 2489, 13670, 22638, -7311, -129, -2792}, { -13962, 16775, 23012, 728, 3397, 162}, { 3038, 993, 8774, -21969, -6609, 910}, { -12444, -22386, -2626, -5295, 19520, 9872}, { -1911, -18274, -18506, -14962, 4760, 7119}, { 8298, -2978, 25886, 7660, -7897, 1020}, { 6132, 15127, 18757, -24370, -6529, -6627}, { 7924, 12125, -9459, -23962, 5502, 937}, { -17056, -5373, 2522, 327, 1129, -390}, { 15774, 19955, -10380, 11172, -3107, 14853}, { -11904, -8091, -17928, -22287, -17237, -6803}, { -12862, -2172, -6509, 5927, 12458, -22355}, { -497, 322, 1038, -6643, -5404, 20311}, { 1083, -22984, -8494, 12130, -762, 2623}, { 5067, 19712, -1901, -30, -325, 85}, { 987, -5830, 4212, -9030, 9121, -25038}, { -7868, 7284, -12292, 12914, -21592, 20941}, { -1630, -7694, -2187, -8525, -5604, -25196}, { -6668, 388, -22535, 1526, 9082, 193}, { -7867, -22308, 5163, 362, 944, -259}, { 3824, -11850, 7591, -23176, 25342, 23771}, { -10504, 4123, -21111, 21173, 22439, -838}, { -4723, 21795, 6184, -122, 1642, -717}, { 24504, 19887, -2043, 986, 7, -55}, { -27313, -135, 2437, 259, 89, 307}, { 24446, -3873, -5391, -820, -2387, 361}, { 5529, 5784, 18682, 242, -21896, -4003}, { 22304, 4483, 722, -12242, 7570, 15448}, { 8673, 3009, 20437, 21108, -21100, -3080}, { -1132, 2705, -1825, 5420, -785, 18532}, { 16932, -13517, -16509, -14858, -20327, -14221}, { 2219, 1380, 21474, -1128, 327, 83}, { -2177, 21517, -3856, -14180, -204, -2191}, { 953, -9426, 15874, -10710, -3231, 21030}, { -421, -1377, 640, -8239, -20976, 2174}, { 4309, 18514, -9100, -18319, -15518, 3704}, { -5943, 449, -8387, 1075, -22210, -4992}, { 2953, 12788, 18285, 1430, 14937, 21731}, { -2913, 401, -4739, -20105, 1699, -1147}, { 3449, 5241, 8853, 22134, -7547, 1451}, { -2154, 8584, 18120, -15614, 19319, -5991}, { 3501, 2841, 5897, 6397, 8630, 23018}, { 2467, 2956, 379, 5703, -22047, -2189}, { -16963, -594, 18822, -5295, 1640, 774}, { 2896, -1424, 3586, -2292, 19910, -1822}, { -18575, 21219, -14001, -12573, 16466, 635}, { -1998, -19314, -16527, 12208, -16576, -7854}, { -9674, 1012, -21645, 2883, -12712, 2321}, { -1005, 471, -3629, 8045, -11087, 25533}, { 4141, -21472, -2673, 756, -663, -523}, { 6490, 8531, 19289, 18949, 6092, -9347}, { 16965, 24599, 14024, 10072, -536, -10438}, { -8147, 2145, -23028, -17073, 5451, -4401}, { -14873, 20520, -18303, -9717, -11885, -17831}, { -2290, -14120, 2070, 22467, 1671, 725}, { -8538, 14629, 3521, -20577, 6673, 8200}, { 20248, 4410, -1366, -585, 1229, -2449}, { 7467, -7148, 13667, -8246, 22392, -17320}, { -1932, 3875, -9064, -3812, 958, 265}, { -4399, 2959, -15911, 19598, 4954, -1105}, { 18009, -9923, -18137, -3862, 11178, 5821}, { -14596, -1227, 9660, 21619, 11228, -11721}, { -721, -1700, 109, -2142, 61, -6772}, { -24619, -22520, 5608, -1957, -1761, -1012}, { -23728, -4451, -2688, -14679, -4266, 9919}, { 8495, -894, 20438, -13820, -17267, 139}, }; static const int16_t vq_hebap6[256][6] = { { 10154, 7365, 16861, 18681, -22893, -3636}, { -2619, -3788, -5529, -5192, -9009, -20298}, { -5583, -22800, 21297, 7012, 745, 720}, { 428, -1459, 109, -3082, 361, -8403}, { 8161, 22401, 241, 1755, -874, -2824}, { 1140, 12643, 2306, 22263, -25146, -17557}, { -2609, 3379, 10337, -19730, -15468, -23944}, { -4040, -12796, -25772, 13096, 3905, 1315}, { 4624, -23799, 13608, 25317, -1175, 2173}, { -97, 13747, -5122, 23255, 4214, -22145}, { 6878, -322, 18264, -854, -11916, -733}, { 17280, -12669, -9693, 23563, -16240, -1309}, { 5802, -4968, 19526, -21194, -24622, -183}, { 5851, -16137, 15229, -9496, -1538, 377}, { 14096, 25057, 13419, 8290, 23320, 16818}, { -7261, 118, -15867, 19097, 9781, -277}, { -4288, 21589, -13288, -16259, 16633, -4862}, { 4909, -19217, 23411, 14705, -722, 125}, { 19462, -4732, -1928, -11527, 20770, 5425}, { -27562, -2881, -4331, 384, -2103, 1367}, { -266, -9175, 5441, 26333, -1924, 4221}, { -2970, -20170, -21816, 5450, -7426, 5344}, { -221, -6696, 603, -9140, 1308, -27506}, { 9621, -8380, -1967, 9403, -1651, 22817}, { 7566, -5250, -4165, 1385, -990, 560}, { -1262, 24738, -19057, 10741, 7585, -7098}, { 451, 20130, -9949, -6015, -2188, -1458}, { 22249, 9380, 9096, 10959, -2365, -3724}, { 18668, -650, -1234, 11092, 7678, 5969}, { 19207, -1485, -1076, -731, -684, 43}, { -4973, 13430, 20139, 60, 476, -935}, { -20029, 8710, 2499, 1016, -1158, 335}, { -26413, 18598, -2201, -669, 3409, 793}, { -4726, 8875, -24607, -9646, 3643, -283}, { 13303, -21404, -3691, -1184, -1970, 1612}, { 173, 60, 919, 1229, 6942, -665}, { 16377, 16991, 5341, -14015, -2304, -20390}, { 25334, -10609, 11947, -7653, -6363, 14058}, { 23929, -13259, -7226, -937, 234, -187}, { 6311, -1877, 12506, -1879, 18751, -23341}, { 621, 6445, 3354, -24274, 8406, 5315}, { -3297, -5034, -4704, -5080, -25730, 5347}, { -1275, -13295, -965, -23318, 1214, 26259}, { -6252, 10035, -20105, 15301, -16073, 5136}, { 9562, -3911, -19510, 4745, 22270, -4171}, { 7978, -19600, 14024, -5745, -20855, 8939}, { 7, -4039, 991, -6065, 52, -19423}, { 3485, 2969, 7732, 7786, 25312, 6206}, { -959, -12812, -1840, -22743, 7324, 10830}, { -4686, 1678, -10172, -5205, 4294, -1271}, { 3889, 1302, 7450, 638, 20374, -3133}, { -12496, -9123, 18463, -12343, -7238, 18552}, { -6185, 8649, -6903, -895, 17109, 16604}, { -9896, 28579, 2845, 1640, 2925, -298}, { 14968, -25988, 14878, -24012, 1815, -6474}, { 26107, 5166, 21225, 15873, 21617, 14825}, { -21684, 16438, 20504, -14346, -7114, -4162}, { 28647, 90, -1572, 789, -902, -75}, { -1479, 2471, -4061, 3612, -2240, 10914}, { 8616, 17491, 17255, -17456, 17022, -16357}, { -20722, -18597, 25274, 17720, -3573, 1695}, { -997, 6129, -6303, 11250, -11359, -19739}, { -74, -4001, -1584, 13384, 162, -144}, { -529, 21068, 7923, -11396, 422, -26}, { 7102, -13531, -20055, 2629, -178, -429}, { 9201, 1368, -22238, 2623, -20499, 24889}, { -432, 6675, -266, 8723, 80, 28024}, { 19493, -3108, -9261, 1910, -21777, 5345}, { 14079, -11489, 12604, 6079, 19877, 1315}, { 10947, 9837, -18612, 15742, 4792, 605}, { -1777, 3758, -4087, 21696, 6024, -576}, { 3567, -3578, 16379, 2680, -1752, 716}, { -5049, -1399, -4550, -652, -17721, -3366}, { -3635, -4372, -6522, -22152, 7382, 1458}, { 12242, 19190, 5646, -7815, -20289, 21344}, { -7508, 19952, 23542, -9753, 5669, -1990}, { -2275, 15438, 10907, -17879, 6497, 13582}, { -15894, -15646, -4716, 6019, 24250, -6179}, { -2049, -6856, -1208, 918, 17735, -69}, { -3721, 9099, -16065, -23621, 5981, -2344}, { 7862, -8918, 24033, 25508, -11033, -741}, { -12588, 19468, 14649, 15451, -21226, 1171}, { 2102, 1147, 2789, 4096, 2179, 8750}, { -18214, -17758, -10366, -5203, -1066, -3541}, { -2819, -19958, -11921, 6032, 8315, 10374}, { -9078, -2100, 19431, -17, 732, -689}, { -14512, -19224, -7095, 18727, 1870, 22906}, { 3912, 659, 25597, -4006, 9619, 877}, { 2616, 22695, -5770, 17920, 3812, 20220}, { 2561, 26847, -5245, -10908, 2256, -517}, { -4974, 198, -21983, -3608, 22174, -18924}, { 21308, -1211, 19144, 16691, -1588, 11390}, { -1790, 3959, -3488, 7003, -7107, 20877}, { -6108, -17955, -18722, 24763, 16508, 3211}, { 20462, -24987, -20361, 4484, -5111, -478}, { -6378, -1998, -10229, -561, -22039, -22339}, { 3047, -18850, 7586, 14743, -19862, 6351}, { -5047, 1405, -9672, 1055, -21881, 11170}, { 3481, -9699, 6526, -16655, 22813, 21907}, { -18570, 17501, 14664, 1291, 5026, 19676}, { 16134, -19810, -16956, -17939, -16933, 5800}, { -8224, 4908, 8935, 2272, -1140, -23217}, { 1572, 2753, -1598, 2143, -3346, -21926}, { -9832, -1060, -27818, 1214, 7289, 150}, { 98, 1538, 535, 17429, -23198, -901}, { 21340, -20146, 3297, -1744, -8207, -21462}, { -4166, -4633, -17902, 5478, 1285, 136}, { 18713, 21003, 24818, 11421, 1282, -4618}, { -3535, 7636, -265, 2141, -829, -2035}, { -3184, 19713, 2775, -2, 1090, 104}, { -6771, -20185, 2938, -2125, -36, 1268}, { 9560, 9430, 9586, 22100, 13827, 6296}, { -535, -20018, 4276, -1868, -448, -17183}, { -24352, 14244, -13647, -21040, 2271, 11555}, { -2646, 15437, -4589, 18638, -4299, -622}, { -20064, 4169, 18115, -1404, 13722, -1825}, { -16359, 9080, 744, 22021, 125, 10794}, { 9644, -14607, -18479, -14714, 11174, -20754}, { -326, -23762, 6144, 7909, 602, 1540}, { -6650, 6634, -12683, 21396, 20785, -6839}, { 4252, -21043, 5628, 18687, 23860, 8328}, { 17986, 5704, -5245, -18093, -555, 3219}, { 6091, 14232, -5117, -17456, -19452, -11649}, { -21586, 11302, 15434, 25590, 6777, -26683}, { 21355, -8244, 5877, -3540, 6079, -2567}, { 2603, -2455, 5421, -12286, -19100, 5574}, { -1721, -26393, -23664, 22904, -349, 3787}, { 2189, -1203, 5340, 3249, -22617, 104}, { -1664, -11020, -2857, -20723, -24049, 19900}, { 22873, -7345, -18481, -14616, -8400, -12965}, { 3777, 3958, 8239, 20494, -6991, -1201}, { -160, -1613, -793, -8681, 573, 776}, { 4297, -3786, 20373, 6082, -5321, -18400}, { 18745, 2463, 12546, -7749, -7734, -2183}, { 11074, -4720, 22119, 1825, -24351, 4080}, { 1503, -19178, -1569, 13, -313, 375}, { 318, -575, 2544, 178, 102, 40}, { -15996, -26897, 5008, 3320, 686, 1159}, { 25755, 26886, 574, -5930, -3916, 1407}, { -9148, -7665, -2875, -8384, -18663, 26400}, { -7445, -18040, -18396, 8802, -2252, -21886}, { 7851, 11773, 27485, -12847, -1410, 19590}, { 2240, 5947, 11247, 15980, -6499, 24280}, { 21673, -18515, 9771, 6550, -2730, 334}, { -4149, 1576, -11010, 89, -24429, -5710}, { 7720, 1478, 21412, -25025, -8385, 9}, { -2448, 10218, -12756, -16079, 1161, -21284}, { -8757, -14429, -22918, -14812, 2629, 13844}, { -7252, 2843, -9639, 2882, -14625, 24497}, { -674, -6530, 414, -23333, -21343, 454}, { 2104, -6312, 10887, 18087, -1199, 175}, { -493, -562, -2739, 118, -1074, 93}, { -10011, -4075, -28071, 22180, 15077, -636}, { -4637, -16408, -9003, -20418, -11608, -20932}, { 4815, 15892, 24238, -13634, -3074, -1059}, { -6724, 4610, -18772, -15283, -16685, 23988}, { 15349, -674, -3682, 21679, 4475, -12088}, { 4756, 2593, 5354, 6001, 15063, 26490}, { -23815, -17251, 6944, 378, 694, 670}, { 23392, -8839, -14713, 7544, -876, 11088}, { 3640, 3336, 22593, -3495, -2328, -113}, { 284, 6914, 3097, 10171, 6638, -18621}, { 2472, 5976, 11054, -11936, -603, -663}, { 16175, 16441, 13164, -4043, 4667, 7431}, { 19338, 15534, -6533, 1681, -4857, 17048}, { 17027, 532, -19064, -1441, -5130, 1085}, { -12617, -17609, 2062, -25332, 19009, -16121}, { 10056, -21000, -13634, -2949, 15367, 19934}, { -648, -1605, 10046, -1592, 13296, 19808}, { -1054, 10744, 538, 24938, 9630, -9052}, { -10099, 3042, -25076, -24052, 13971, 100}, { 6547, 6907, 7031, 10348, 23775, -17886}, { -22793, -1984, -1393, -3330, 9267, 14317}, { -14346, -3967, 3042, 16254, -17303, 9646}, { -21393, 23628, 16773, 716, 2663, 114}, { -19016, -3038, 1574, -245, 1463, -793}, { 22410, 23441, -14637, -530, 17310, 13617}, { -11582, 7935, -13954, 23465, -24628, 26550}, { -1045, 3679, -2218, 10572, 20999, -3702}, { -15513, 197, 16718, -24603, 4945, 5}, { 10781, 4335, 26790, -9059, -16152, -2840}, { 16075, -24100, -3933, -6833, 12645, -7029}, { 2096, -25572, -8370, 6814, 11, 1178}, { -11848, -583, -8889, -20543, -10471, -380}, { -2487, 24777, -21639, -19341, 1660, -732}, { 2313, 13679, 4085, 24549, 24691, -21179}, { -2366, -504, -4130, -10570, 23668, 1961}, { 20379, 17809, -9506, 3733, -18954, -6292}, { -3856, 16802, -929, -20310, -17739, 6797}, { 12431, 6078, -11272, -14450, 6913, 23476}, { 7636, -1655, 23017, 10719, -8292, 838}, { -8559, -1235, -18096, 3897, 16093, 1490}, { -3586, 8276, 15165, -3791, -21149, 1741}, { -4497, 21739, 2366, -278, -4792, 15549}, { -23122, -13708, 7668, 16232, 24120, 15025}, { -20043, 12821, -20160, 16691, -11655, -16081}, { -12601, 20239, 3496, -2549, -6745, -11850}, { 4441, 7812, 20783, 17080, 11523, -9643}, { 24766, 8494, -23298, -3262, 11101, -7120}, { -10107, -7623, -22152, -18303, 26645, 9550}, { -25549, 477, 7874, -1538, 1123, -168}, { 470, 9834, -347, 23945, -10381, -9467}, { -4096, -9702, -6856, -21544, 20845, 7174}, { 5370, 9748, -23765, -1190, 512, -1538}, { -1006, -10046, -12649, 19234, -1790, -890}, { 15108, 23620, -15646, -2522, -1203, -1325}, { -7406, -2605, 1095, -247, -473, 177}, { 8089, 4, 12424, -22284, 10405, -7728}, { 22196, 10775, -5043, 690, 534, -212}, { -3153, -1418, -16835, 18426, 15821, 22956}, { 5681, -2229, 3196, -3414, -21817, -14807}, { 19, 787, 1032, 170, -8295, -645}, { -882, -2319, -27105, 432, -4392, 1499}, { -1354, -11819, -76, -20380, -10293, 11328}, { 211, -4753, -4675, -6933, -13538, 14479}, { 6043, 5260, -459, -462, 143, -65}, { -2572, 7256, -3317, 9212, -23184, -9990}, { -24882, -9532, 18874, 6101, 2429, -14482}, { 8314, 2277, 14192, 3512, 25881, 22000}, { 208, 20218, -281, -24778, -63, -1183}, { 1095, -6034, 2706, -21935, -2655, 563}, { 23, -5930, 243, -8989, 5345, 20558}, { -15466, 12699, 4160, 11087, 20621, -10416}, { 20995, -85, -8468, 194, 1003, -9515}, { -19637, -3335, -14081, 3574, -23381, -667},