Commit d548f09f authored by Vitor Sessak's avatar Vitor Sessak

Make wavtable a table instead of an array

Originally committed as revision 13274 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent d1845b4c
......@@ -128,8 +128,8 @@ static void add_wav(int n, int f, int m1, int m2, int m3, const short *s1,
int b, c, i;
const short *ptr, *ptr2;
ptr = wavtable1 + n * 9;
ptr2 = wavtable2 + n * 9;
ptr = wavtable1[n];
ptr2 = wavtable2[n];
if (f)
a = (ptr[0] * m1) >> (ptr2[0] + 1);
......
......@@ -23,522 +23,522 @@
#define FFMPEG_RA144_H
/* 14.4 data tables */
static const signed short wavtable1[2304]={
541, 956, 768, -1011, -811, -717, -571, -893, -576,
877, 581, 568, -997, -975, -646, -752, -661, -632,
675, 787, 635, -519, -838, -977, -890, -605, -789,
624, 732, 668, -893, -815, -956, -762, -523, -873,
623, 839, 697, -1022, -849, -571, -759, -688, -949,
640, 693, 991, -867, -619, -671, -800, -940, -959,
925, 687, 608, -621, -549, -817, -837, -924, -722,
552, 797, 572, -861, -617, -892, -596, -621, -640,
535, 832, 799, -871, -836, -649, -560, -676, -624,
762, 605, 577, -902, -859, -682, -568, -716, -650,
832, 561, 1003, -913, -815, -550, -676, -616, -982,
590, 687, 588, -793, -679, -790, -681, -923, -677,
646, 901, 732, -569, -924, -645, -816, -794, -524,
828, 689, 896, -557, -725, -603, -670, -927, -784,
875, 624, 848, -533, -725, -516, -748, -760, -702,
571, 942, 1022, -526, -570, -941, -638, -868, -1020,
824, 736, 643, -593, -517, -925, -663, -530, -808,
517, 765, 512, -774, -518, -767, -523, -572, -513,
562, 908, 761, -997, -836, -675, -617, -805, -566,
694, 913, 675, -619, -916, -603, -941, -815, -891,
704, 524, 672, -722, -925, -689, -969, -538, -883,
721, 757, 558, -534, -786, -826, -1018, -561, -608,
884, 551, 633, -951, -546, -681, -763, -592, -784,
558, 1007, 846, -549, -923, -832, -608, -991, -699,
932, 746, 777, -679, -707, -566, -849, -544, -589,
566, 822, 926, -910, -513, -744, -627, -659, -839,
613, 771, 611, -924, -731, -921, -733, -581, -729,
737, 671, 1008, -967, -726, -661, -531, -880, -993,
651, 594, 579, -757, -737, -673, -830, -691, -655,
801, 636, 564, -996, -883, -702, -626, -792, -622,
852, 910, 719, -757, -599, -639, -709, -809, -1012,
998, 614, 575, -599, -561, -691, -974, -737, -647,
665, 935, 628, -607, -816, -574, -863, -854, -771,
631, 596, 829, -735, -1023, -966, -778, -694, -672,
644, 926, 526, -583, -663, -953, -811, -838, -542,
879, 988, 613, -848, -526, -592, -755, -953, -734,
941, 692, 693, -637, -638, -939, -866, -937, -940,
565, 672, 576, -742, -637, -757, -625, -882, -649,
547, 628, 740, -671, -791, -909, -585, -771, -535,
639, 532, 537, -665, -671, -559, -798, -554, -564,
955, 604, 598, -564, -558, -706, -891, -714, -699,
562, 580, 900, -637, -989, -1021, -617, -658, -791,
603, 899, 621, -530, -733, -545, -712, -789, -755,
746, 533, 624, -776, -909, -650, -543, -555, -761,
729, 514, 735, -733, -523, -739, -519, -517, -528,
853, 551, 692, -919, -577, -745, -711, -593, -936,
949, 1018, 1004, -944, -931, -999, -880, -1013, -985,
544, 988, 735, -525, -781, -710, -578, -954, -528,
789, 782, 821, -603, -633, -628, -608, -598, -659,
897, 516, 754, -906, -661, -761, -786, -521, -556,
517, 702, 828, -710, -837, -568, -523, -963, -670,
586, 818, 763, -937, -874, -609, -672, -654, -568,
907, 652, 592, -578, -525, -754, -804, -830, -686,
528, 652, 642, -673, -663, -818, -546, -830, -806,
531, 708, 780, -736, -811, -540, -552, -981, -595,
666, 625, 727, -813, -946, -888, -867, -763, -516,
947, 727, 554, -673, -512, -787, -875, -517, -599,
549, 657, 981, -705, -526, -630, -589, -843, -941,
605, 920, 852, -544, -1008, -766, -716, -827, -709,
624, 619, 983, -755, -599, -595, -761, -750, -944,
605, 909, 547, -537, -646, -971, -715, -807, -584,
690, 935, 516, -631, -697, -944, -932, -855, -521,
700, 612, 853, -838, -584, -1021, -959, -732, -711,
767, 832, 574, -623, -861, -933, -575, -676, -643,
523, 898, 923, -919, -945, -810, -536, -789, -833,
722, 958, 691, -676, -976, -647, -1020, -896, -935,
613, 771, 928, -924, -556, -700, -734, -581, -842,
758, 757, 584, -561, -866, -865, -562, -560, -667,
512, 567, 577, -567, -577, -639, -512, -628, -650,
615, 638, 698, -766, -839, -871, -739, -795, -954,
574, 642, 589, -720, -660, -739, -644, -806, -677,
993, 682, 878, -662, -852, -585, -963, -910, -753,
539, 890, 913, -939, -963, -795, -569, -775, -815,
694, 928, 544, -629, -738, -987, -941, -842, -578,
805, 600, 680, -944, -535, -798, -633, -704, -905,
540, 951, 782, -1004, -825, -727, -570, -884, -597,
816, 950, 590, -757, -941, -548, -650, -881, -681,
955, 847, 811, -790, -757, -671, -891, -700, -643,
547, 883, 556, -945, -595, -960, -586, -762, -605,
652, 888, 604, -565, -770, -524, -831, -770, -713,
863, 585, 855, -986, -721, -978, -727, -668, -715,
1023, 997, 516, -997, -516, -1006, -1023, -972, -520,
932, 614, 640, -560, -583, -769, -850, -738, -800,
627, 564, 573, -691, -702, -631, -769, -621, -641,
876, 900, 724, -770, -620, -637, -750, -792, -512,
515, 857, 896, -863, -902, -750, -519, -718, -784,
647, 953, 879, -602, -555, -818, -817, -888, -755,
806, 854, 857, -672, -675, -715, -634, -712, -718,
545, 583, 631, -621, -672, -719, -581, -664, -778,
657, 601, 751, -772, -963, -882, -843, -707, -550,
740, 905, 795, -654, -575, -704, -535, -801, -618,
841, 1016, 568, -835, -934, -564, -691, -1009, -631,
747, 589, 983, -861, -718, -566, -545, -679, -945,
878, 613, 526, -526, -902, -630, -753, -736, -540,
864, 723, 779, -610, -657, -550, -729, -1022, -592,
534, 674, 774, -703, -808, -1019, -557, -887, -586,
950, 649, 939, -602, -871, -595, -881, -824, -861,
590, 703, 899, -811, -518, -618, -680, -966, -790,
618, 527, 579, -637, -700, -597, -746, -543, -657,
725, 647, 972, -917, -689, -615, -513, -818, -924,
641, 647, 707, -810, -885, -893, -803, -817, -976,
730, 663, 644, -946, -920, -835, -521, -860, -812,
807, 572, 578, -902, -912, -646, -637, -639, -653,
879, 611, 821, -524, -705, -979, -755, -729, -658,
667, 729, 841, -951, -549, -599, -871, -519, -692,
782, 585, 751, -895, -574, -859, -598, -670, -551,
802, 733, 976, -574, -765, -699, -628, -525, -931,
850, 871, 708, -724, -588, -602, -706, -742, -979,
870, 743, 704, -632, -598, -1023, -739, -540, -970,
941, 899, 585, -827, -538, -514, -866, -790, -669,
943, 632, 875, -582, -806, -541, -869, -781, -749,
1023, 732, 638, -731, -637, -912, -1022, -523, -795,
778, 753, 655, -573, -997, -965, -592, -554, -839,
843, 945, 945, -779, -779, -873, -694, -873, -873,
942, 969, 572, -892, -527, -542, -867, -918, -640,
1008, 559, 854, -551, -841, -934, -993, -612, -712,
868, 729, 787, -618, -668, -560, -737, -519, -605,
970, 686, 547, -650, -518, -733, -919, -919, -585,
535, 635, 674, -664, -705, -836, -560, -788, -887,
560, 636, 828, -696, -907, -514, -613, -790, -670,
994, 592, 833, -575, -809, -964, -966, -686, -677,
548, 621, 694, -665, -743, -843, -587, -755, -942,
550, 801, 955, -861, -513, -748, -591, -627, -892,
582, 522, 646, -594, -735, -659, -663, -533, -815,
606, 625, 818, -739, -969, -999, -717, -763, -655,
623, 591, 874, -720, -531, -1010, -758, -683, -746,
669, 535, 1001, -700, -654, -523, -876, -559, -979,
701, 938, 592, -642, -810, -542, -960, -860, -684,
925, 820, 738, -741, -667, -592, -835, -657, -533,
735, 790, 544, -567, -781, -840, -527, -610, -578,
575, 788, 674, -886, -758, -519, -647, -607, -888,
655, 783, 528, -1003, -677, -809, -840, -599, -545,
527, 513, 677, -529, -699, -679, -544, -514, -897,
782, 852, 940, -651, -718, -783, -597, -709, -863,
578, 910, 513, -514, -581, -914, -654, -809, -515,
692, 882, 734, -596, -993, -632, -937, -759, -526,
586, 683, 715, -782, -818, -954, -670, -911, -999,
739, 609, 717, -880, -518, -854, -534, -725, -1006,
778, 773, 697, -588, -530, -527, -592, -584, -951,
922, 785, 813, -707, -732, -624, -830, -602, -646,
766, 651, 984, -974, -736, -626, -573, -827, -946,
978, 596, 515, -569, -984, -600, -934, -694, -518,
535, 757, 540, -792, -565, -799, -560, -559, -571,
662, 687, 589, -890, -762, -791, -857, -924, -678,
554, 536, 979, -580, -530, -512, -601, -561, -936,
723, 982, 690, -694, -976, -662, -1022, -943, -932,
936, 956, 527, -875, -965, -986, -856, -894, -543,
590, 1002, 547, -577, -631, -536, -680, -980, -586,
517, 653, 825, -660, -833, -526, -522, -834, -664,
832, 592, 974, -964, -792, -564, -677, -686, -928,
512, 957, 903, -957, -903, -844, -512, -894, -796,
631, 545, 906, -672, -558, -965, -777, -581, -802,
514, 720, 649, -723, -652, -913, -516, -1012, -824,
596, 679, 694, -790, -807, -920, -693, -900, -940,
617, 740, 979, -892, -590, -708, -743, -535, -936,
711, 685, 877, -952, -609, -587, -987, -917, -752,
655, 835, 848, -534, -542, -691, -838, -681, -702,
754, 839, 698, -618, -515, -573, -556, -688, -954,
871, 515, 769, -877, -655, -774, -742, -518, -578,
955, 852, 573, -795, -535, -955, -892, -709, -643,
640, 859, 587, -537, -735, -986, -801, -721, -674,
792, 863, 554, -667, -858, -935, -612, -727, -601,
843, 708, 682, -583, -562, -944, -694, -979, -910,
971, 768, 552, -728, -524, -829, -921, -576, -596,
891, 536, 690, -935, -601, -724, -776, -563, -931,
1016, 560, 663, -556, -659, -727, -1009, -614, -860,
543, 870, 674, -924, -716, -573, -577, -739, -889,
601, 999, 585, -586, -686, -571, -705, -975, -668,
945, 966, 889, -892, -821, -840, -872, -912, -773,
529, 912, 777, -943, -804, -692, -547, -812, -590,
574, 1020, 714, -572, -801, -711, -643, -1016, -997,
609, 922, 932, -549, -555, -840, -725, -831, -848,
598, 778, 929, -909, -543, -707, -698, -592, -844,
651, 772, 744, -982, -947, -561, -827, -582, -541,
691, 957, 722, -646, -976, -675, -934, -894, -1020,
729, 766, 984, -546, -701, -736, -520, -573, -945,
547, 519, 632, -555, -675, -640, -585, -526, -780,
583, 532, 922, -607, -525, -960, -664, -554, -831,
633, 995, 603, -615, -745, -586, -783, -968, -710,
677, 571, 874, -757, -578, -977, -896, -638, -747,
602, 545, 666, -641, -783, -709, -708, -580, -866,
627, 542, 875, -665, -536, -928, -769, -575, -748,
672, 983, 598, -645, -786, -575, -882, -944, -700,
692, 979, 730, -662, -988, -698, -937, -937, -521,
668, 634, 872, -827, -569, -540, -871, -785, -742,
711, 706, 674, -982, -937, -931, -988, -975, -889,
739, 977, 595, -706, -860, -568, -534, -932, -691,
759, 905, 763, -671, -566, -675, -563, -799, -569,
756, 582, 763, -860, -563, -868, -558, -663, -568,
748, 1013, 908, -741, -664, -898, -547, -1002, -805,
804, 937, 950, -736, -746, -869, -631, -858, -882,
785, 543, 998, -833, -766, -529, -602, -576, -973,
999, 684, 942, -668, -920, -630, -975, -915, -868,
626, 633, 996, -774, -609, -616, -765, -783, -970,
626, 567, 835, -693, -1021, -925, -765, -628, -681,
739, 571, 973, -825, -702, -543, -533, -637, -925,
655, 769, 707, -984, -906, -531, -839, -577, -978,
702, 952, 571, -653, -785, -532, -964, -886, -638,
727, 712, 514, -1012, -730, -715, -516, -990, -516,
744, 686, 741, -998, -539, -994, -541, -921, -536,
731, 552, 714, -789, -1021, -772, -522, -596, -998,
824, 991, 726, -798, -585, -703, -664, -959, -515,
795, 615, 544, -955, -844, -653, -617, -738, -578,
870, 575, 824, -978, -700, -926, -739, -646, -664,
803, 832, 923, -653, -724, -750, -630, -677, -832,
819, 839, 531, -671, -849, -871, -655, -688, -550,
887, 786, 852, -681, -738, -654, -769, -603, -709,
933, 764, 570, -696, -519, -851, -850, -570, -634,
716, 906, 654, -634, -916, -579, -1003, -802, -837,
784, 804, 563, -616, -864, -885, -601, -631, -620,
774, 535, 876, -809, -662, -915, -585, -559, -749,
807, 598, 649, -943, -1023, -758, -636, -699, -822,
817, 759, 718, -606, -573, -533, -652, -563, -1008,
831, 993, 846, -806, -687, -821, -675, -963, -699,
858, 567, 605, -951, -1015, -670, -720, -628, -716,
876, 1012, 651, -866, -557, -643, -750, -1001, -827,
852, 548, 549, -913, -914, -588, -710, -587, -589,
895, 1008, 871, -881, -761, -858, -782, -993, -741,
892, 1000, 591, -872, -515, -578, -777, -977, -683,
935, 516, 836, -944, -764, -844, -855, -521, -682,
931, 612, 776, -557, -706, -929, -847, -733, -589,
968, 614, 816, -581, -771, -980, -915, -738, -651,
524, 777, 719, -796, -737, -546, -537, -590, -1012,
549, 694, 786, -744, -843, -533, -589, -941, -603,
882, 754, 534, -649, -920, -787, -759, -555, -557,
597, 837, 766, -977, -895, -627, -697, -684, -574,
635, 954, 704, -592, -873, -656, -788, -890, -969,
803, 550, 798, -863, -626, -858, -630, -591, -622,
699, 654, 798, -894, -545, -1021, -954, -837, -622,
924, 767, 738, -693, -666, -553, -834, -575, -531,
970, 675, 608, -639, -576, -801, -919, -890, -722,
632, 706, 684, -873, -844, -944, -780, -976, -914,
858, 767, 563, -643, -945, -844, -719, -574, -620,
527, 765, 702, -788, -724, -525, -543, -572, -964,
559, 924, 1003, -1009, -547, -905, -610, -833, -983,
618, 524, 611, -633, -738, -625, -747, -536, -729,
999, 942, 963, -920, -940, -886, -976, -867, -905,
547, 857, 935, -916, -999, -783, -584, -718, -854,
734, 926, 569, -665, -818, -515, -527, -838, -634,
967, 746, 551, -705, -520, -804, -913, -544, -593,
834, 633, 881, -515, -718, -545, -679, -783, -758,
941, 701, 727, -645, -668, -997, -865, -961, -516,
945, 564, 636, -521, -587, -701, -873, -623, -790,
512, 563, 793, -563, -794, -873, -512, -619, -615,
984, 556, 570, -534, -548, -620, -945, -604, -636,
984, 540, 740, -519, -712, -782, -946, -570, -536,
527, 764, 874, -787, -901, -652, -543, -570, -747,
530, 664, 1014, -688, -525, -658, -549, -862, -1005,
546, 515, 521, -550, -556, -525, -584, -519, -531,
554, 934, 672, -1011, -728, -613, -600, -852, -882,
598, 945, 556, -552, -650, -513, -700, -872, -603,
627, 531, 733, -651, -899, -760, -769, -551, -525,
576, 1020, 1014, -574, -571, -1011, -650, -1016, -1005,
623, 924, 594, -563, -724, -537, -759, -835, -691,
678, 909, 603, -602, -800, -536, -899, -807, -712,
814, 744, 543, -592, -865, -790, -648, -541, -577
static const signed short wavtable1[256][9] = {
{ 541, 956, 768, -1011, -811, -717, -571, -893, -576},
{ 877, 581, 568, -997, -975, -646, -752, -661, -632},
{ 675, 787, 635, -519, -838, -977, -890, -605, -789},
{ 624, 732, 668, -893, -815, -956, -762, -523, -873},
{ 623, 839, 697, -1022, -849, -571, -759, -688, -949},
{ 640, 693, 991, -867, -619, -671, -800, -940, -959},
{ 925, 687, 608, -621, -549, -817, -837, -924, -722},
{ 552, 797, 572, -861, -617, -892, -596, -621, -640},
{ 535, 832, 799, -871, -836, -649, -560, -676, -624},
{ 762, 605, 577, -902, -859, -682, -568, -716, -650},
{ 832, 561, 1003, -913, -815, -550, -676, -616, -982},
{ 590, 687, 588, -793, -679, -790, -681, -923, -677},
{ 646, 901, 732, -569, -924, -645, -816, -794, -524},
{ 828, 689, 896, -557, -725, -603, -670, -927, -784},
{ 875, 624, 848, -533, -725, -516, -748, -760, -702},
{ 571, 942, 1022, -526, -570, -941, -638, -868, -1020},
{ 824, 736, 643, -593, -517, -925, -663, -530, -808},
{ 517, 765, 512, -774, -518, -767, -523, -572, -513},
{ 562, 908, 761, -997, -836, -675, -617, -805, -566},
{ 694, 913, 675, -619, -916, -603, -941, -815, -891},
{ 704, 524, 672, -722, -925, -689, -969, -538, -883},
{ 721, 757, 558, -534, -786, -826, -1018, -561, -608},
{ 884, 551, 633, -951, -546, -681, -763, -592, -784},
{ 558, 1007, 846, -549, -923, -832, -608, -991, -699},
{ 932, 746, 777, -679, -707, -566, -849, -544, -589},
{ 566, 822, 926, -910, -513, -744, -627, -659, -839},
{ 613, 771, 611, -924, -731, -921, -733, -581, -729},
{ 737, 671, 1008, -967, -726, -661, -531, -880, -993},
{ 651, 594, 579, -757, -737, -673, -830, -691, -655},
{ 801, 636, 564, -996, -883, -702, -626, -792, -622},
{ 852, 910, 719, -757, -599, -639, -709, -809, -1012},
{ 998, 614, 575, -599, -561, -691, -974, -737, -647},
{ 665, 935, 628, -607, -816, -574, -863, -854, -771},
{ 631, 596, 829, -735, -1023, -966, -778, -694, -672},
{ 644, 926, 526, -583, -663, -953, -811, -838, -542},
{ 879, 988, 613, -848, -526, -592, -755, -953, -734},
{ 941, 692, 693, -637, -638, -939, -866, -937, -940},
{ 565, 672, 576, -742, -637, -757, -625, -882, -649},
{ 547, 628, 740, -671, -791, -909, -585, -771, -535},
{ 639, 532, 537, -665, -671, -559, -798, -554, -564},
{ 955, 604, 598, -564, -558, -706, -891, -714, -699},
{ 562, 580, 900, -637, -989, -1021, -617, -658, -791},
{ 603, 899, 621, -530, -733, -545, -712, -789, -755},
{ 746, 533, 624, -776, -909, -650, -543, -555, -761},
{ 729, 514, 735, -733, -523, -739, -519, -517, -528},
{ 853, 551, 692, -919, -577, -745, -711, -593, -936},
{ 949, 1018, 1004, -944, -931, -999, -880, -1013, -985},
{ 544, 988, 735, -525, -781, -710, -578, -954, -528},
{ 789, 782, 821, -603, -633, -628, -608, -598, -659},
{ 897, 516, 754, -906, -661, -761, -786, -521, -556},
{ 517, 702, 828, -710, -837, -568, -523, -963, -670},
{ 586, 818, 763, -937, -874, -609, -672, -654, -568},
{ 907, 652, 592, -578, -525, -754, -804, -830, -686},
{ 528, 652, 642, -673, -663, -818, -546, -830, -806},
{ 531, 708, 780, -736, -811, -540, -552, -981, -595},
{ 666, 625, 727, -813, -946, -888, -867, -763, -516},
{ 947, 727, 554, -673, -512, -787, -875, -517, -599},
{ 549, 657, 981, -705, -526, -630, -589, -843, -941},
{ 605, 920, 852, -544, -1008, -766, -716, -827, -709},
{ 624, 619, 983, -755, -599, -595, -761, -750, -944},
{ 605, 909, 547, -537, -646, -971, -715, -807, -584},
{ 690, 935, 516, -631, -697, -944, -932, -855, -521},
{ 700, 612, 853, -838, -584, -1021, -959, -732, -711},
{ 767, 832, 574, -623, -861, -933, -575, -676, -643},
{ 523, 898, 923, -919, -945, -810, -536, -789, -833},
{ 722, 958, 691, -676, -976, -647, -1020, -896, -935},
{ 613, 771, 928, -924, -556, -700, -734, -581, -842},
{ 758, 757, 584, -561, -866, -865, -562, -560, -667},
{ 512, 567, 577, -567, -577, -639, -512, -628, -650},
{ 615, 638, 698, -766, -839, -871, -739, -795, -954},
{ 574, 642, 589, -720, -660, -739, -644, -806, -677},
{ 993, 682, 878, -662, -852, -585, -963, -910, -753},
{ 539, 890, 913, -939, -963, -795, -569, -775, -815},
{ 694, 928, 544, -629, -738, -987, -941, -842, -578},
{ 805, 600, 680, -944, -535, -798, -633, -704, -905},
{ 540, 951, 782, -1004, -825, -727, -570, -884, -597},
{ 816, 950, 590, -757, -941, -548, -650, -881, -681},
{ 955, 847, 811, -790, -757, -671, -891, -700, -643},
{ 547, 883, 556, -945, -595, -960, -586, -762, -605},
{ 652, 888, 604, -565, -770, -524, -831, -770, -713},
{ 863, 585, 855, -986, -721, -978, -727, -668, -715},
{1023, 997, 516, -997, -516, -1006, -1023, -972, -520},
{ 932, 614, 640, -560, -583, -769, -850, -738, -800},
{ 627, 564, 573, -691, -702, -631, -769, -621, -641},
{ 876, 900, 724, -770, -620, -637, -750, -792, -512},
{ 515, 857, 896, -863, -902, -750, -519, -718, -784},
{ 647, 953, 879, -602, -555, -818, -817, -888, -755},
{ 806, 854, 857, -672, -675, -715, -634, -712, -718},
{ 545, 583, 631, -621, -672, -719, -581, -664, -778},
{ 657, 601, 751, -772, -963, -882, -843, -707, -550},
{ 740, 905, 795, -654, -575, -704, -535, -801, -618},
{ 841, 1016, 568, -835, -934, -564, -691, -1009, -631},
{ 747, 589, 983, -861, -718, -566, -545, -679, -945},
{ 878, 613, 526, -526, -902, -630, -753, -736, -540},
{ 864, 723, 779, -610, -657, -550, -729, -1022, -592},
{ 534, 674, 774, -703, -808, -1019, -557, -887, -586},
{ 950, 649, 939, -602, -871, -595, -881, -824, -861},
{ 590, 703, 899, -811, -518, -618, -680, -966, -790},
{ 618, 527, 579, -637, -700, -597, -746, -543, -657},
{ 725, 647, 972, -917, -689, -615, -513, -818, -924},
{ 641, 647, 707, -810, -885, -893, -803, -817, -976},
{ 730, 663, 644, -946, -920, -835, -521, -860, -812},
{ 807, 572, 578, -902, -912, -646, -637, -639, -653},
{ 879, 611, 821, -524, -705, -979, -755, -729, -658},
{ 667, 729, 841, -951, -549, -599, -871, -519, -692},
{ 782, 585, 751, -895, -574, -859, -598, -670, -551},
{ 802, 733, 976, -574, -765, -699, -628, -525, -931},
{ 850, 871, 708, -724, -588, -602, -706, -742, -979},
{ 870, 743, 704, -632, -598, -1023, -739, -540, -970},
{ 941, 899, 585, -827, -538, -514, -866, -790, -669},
{ 943, 632, 875, -582, -806, -541, -869, -781, -749},
{1023, 732, 638, -731, -637, -912, -1022, -523, -795},
{ 778, 753, 655, -573, -997, -965, -592, -554, -839},
{ 843, 945, 945, -779, -779, -873, -694, -873, -873},
{ 942, 969, 572, -892, -527, -542, -867, -918, -640},
{1008, 559, 854, -551, -841, -934, -993, -612, -712},
{ 868, 729, 787, -618, -668, -560, -737, -519, -605},
{ 970, 686, 547, -650, -518, -733, -919, -919, -585},
{ 535, 635, 674, -664, -705, -836, -560, -788, -887},
{ 560, 636, 828, -696, -907, -514, -613, -790, -670},
{ 994, 592, 833, -575, -809, -964, -966, -686, -677},
{ 548, 621, 694, -665, -743, -843, -587, -755, -942},
{ 550, 801, 955, -861, -513, -748, -591, -627, -892},
{ 582, 522, 646, -594, -735, -659, -663, -533, -815},
{ 606, 625, 818, -739, -969, -999, -717, -763, -655},
{ 623, 591, 874, -720, -531, -1010, -758, -683, -746},
{ 669, 535, 1001, -700, -654, -523, -876, -559, -979},
{ 701, 938, 592, -642, -810, -542, -960, -860, -684},
{ 925, 820, 738, -741, -667, -592, -835, -657, -533},
{ 735, 790, 544, -567, -781, -840, -527, -610, -578},
{ 575, 788, 674, -886, -758, -519, -647, -607, -888},
{ 655, 783, 528, -1003, -677, -809, -840, -599, -545},
{ 527, 513, 677, -529, -699, -679, -544, -514, -897},
{ 782, 852, 940, -651, -718, -783, -597, -709, -863},
{ 578, 910, 513, -514, -581, -914, -654, -809, -515},
{ 692, 882, 734, -596, -993, -632, -937, -759, -526},
{ 586, 683, 715, -782, -818, -954, -670, -911, -999},
{ 739, 609, 717, -880, -518, -854, -534, -725, -1006},
{ 778, 773, 697, -588, -530, -527, -592, -584, -951},
{ 922, 785, 813, -707, -732, -624, -830, -602, -646},
{ 766, 651, 984, -974, -736, -626, -573, -827, -946},
{ 978, 596, 515, -569, -984, -600, -934, -694, -518},
{ 535, 757, 540, -792, -565, -799, -560, -559, -571},
{ 662, 687, 589, -890, -762, -791, -857, -924, -678},
{ 554, 536, 979, -580, -530, -512, -601, -561, -936},
{ 723, 982, 690, -694, -976, -662, -1022, -943, -932},
{ 936, 956, 527, -875, -965, -986, -856, -894, -543},
{ 590, 1002, 547, -577, -631, -536, -680, -980, -586},
{ 517, 653, 825, -660, -833, -526, -522, -834, -664},
{ 832, 592, 974, -964, -792, -564, -677, -686, -928},
{ 512, 957, 903, -957, -903, -844, -512, -894, -796},
{ 631, 545, 906, -672, -558, -965, -777, -581, -802},
{ 514, 720, 649, -723, -652, -913, -516, -1012, -824},
{ 596, 679, 694, -790, -807, -920, -693, -900, -940},
{ 617, 740, 979, -892, -590, -708, -743, -535, -936},
{ 711, 685, 877, -952, -609, -587, -987, -917, -752},
{ 655, 835, 848, -534, -542, -691, -838, -681, -702},
{ 754, 839, 698, -618, -515, -573, -556, -688, -954},
{ 871, 515, 769, -877, -655, -774, -742, -518, -578},
{ 955, 852, 573, -795, -535, -955, -892, -709, -643},
{ 640, 859, 587, -537, -735, -986, -801, -721, -674},
{ 792, 863, 554, -667, -858, -935, -612, -727, -601},
{ 843, 708, 682, -583, -562, -944, -694, -979, -910},
{ 971, 768, 552, -728, -524, -829, -921, -576, -596},
{ 891, 536, 690, -935, -601, -724, -776, -563, -931},
{1016, 560, 663, -556, -659, -727, -1009, -614, -860},
{ 543, 870, 674, -924, -716, -573, -577, -739, -889},
{ 601, 999, 585, -586, -686, -571, -705, -975, -668},
{ 945, 966, 889, -892, -821, -840, -872, -912, -773},
{ 529, 912, 777, -943, -804, -692, -547, -812, -590},
{ 574, 1020, 714, -572, -801, -711, -643, -1016, -997},
{ 609, 922, 932, -549, -555, -840, -725, -831, -848},
{ 598, 778, 929, -909, -543, -707, -698, -592, -844},
{ 651, 772, 744, -982, -947, -561, -827, -582, -541},
{ 691, 957, 722, -646, -976, -675, -934, -894, -1020},
{ 729, 766, 984, -546, -701, -736, -520, -573, -945},
{ 547, 519, 632, -555, -675, -640, -585, -526, -780},
{ 583, 532, 922, -607, -525, -960, -664, -554, -831},
{ 633, 995, 603, -615, -745, -586, -783, -968, -710},
{ 677, 571, 874, -757, -578, -977, -896, -638, -747},
{ 602, 545, 666, -641, -783, -709, -708, -580, -866},
{ 627, 542, 875, -665, -536, -928, -769, -575, -748},
{ 672, 983, 598, -645, -786, -575, -882, -944, -700},
{ 692, 979, 730, -662, -988, -698, -937, -937, -521},
{ 668, 634, 872, -827, -569, -540, -871, -785, -742},
{ 711, 706, 674, -982, -937, -931, -988, -975, -889},
{ 739, 977, 595, -706, -860, -568, -534, -932, -691},
{ 759, 905, 763, -671, -566, -675, -563, -799, -569},
{ 756, 582, 763, -860, -563, -868, -558, -663, -568},
{ 748, 1013, 908, -741, -664, -898, -547, -1002, -805},
{ 804, 937, 950, -736, -746, -869, -631, -858, -882},
{ 785, 543, 998, -833, -766, -529, -602, -576, -973},
{ 999, 684, 942, -668, -920, -630, -975, -915, -868},
{ 626, 633, 996, -774, -609, -616, -765, -783, -970},
{ 626, 567, 835, -693, -1021, -925, -765, -628, -681},
{ 739, 571, 973, -825, -702, -543, -533, -637, -925},
{ 655, 769, 707, -984, -906, -531, -839, -577, -978},
{ 702, 952, 571, -653, -785, -532, -964, -886, -638},
{ 727, 712, 514, -1012, -730, -715, -516, -990, -516},
{ 744, 686, 741, -998, -539, -994, -541, -921, -536},
{ 731, 552, 714, -789, -1021, -772, -522, -596, -998},
{ 824, 991, 726, -798, -585, -703, -664, -959, -515},
{ 795, 615, 544, -955, -844, -653, -617, -738, -578},
{ 870, 575, 824, -978, -700, -926, -739, -646, -664},
{ 803, 832, 923, -653, -724, -750, -630, -677, -832},
{ 819, 839, 531, -671, -849, -871, -655, -688, -550},
{ 887, 786, 852, -681, -738, -654, -769, -603, -709},
{ 933, 764, 570, -696, -519, -851, -850, -570, -634},
{ 716, 906, 654, -634, -916, -579, -1003, -802, -837},
{ 784, 804, 563, -616, -864, -885, -601, -631, -620},
{ 774, 535, 876, -809, -662, -915, -585, -559, -749},
{ 807, 598, 649, -943, -1023, -758, -636, -699, -822},
{ 817, 759, 718, -606, -573, -533, -652, -563, -1008},
{ 831, 993, 846, -806, -687, -821, -675, -963, -699},
{ 858, 567, 605, -951, -1015, -670, -720, -628, -716},
{ 876, 1012, 651, -866, -557, -643, -750, -1001, -827},
{ 852, 548, 549, -913, -914, -588, -710, -587, -589},
{ 895, 1008, 871, -881, -761, -858, -782, -993, -741},
{ 892, 1000, 591, -872, -515, -578, -777, -977, -683},
{ 935, 516, 836, -944, -764, -844, -855, -521, -682},
{ 931, 612, 776, -557, -706, -929, -847, -733, -589},
{ 968, 614, 816, -581, -771, -980, -915, -738, -651},
{ 524, 777, 719, -796, -737, -546, -537, -590, -1012},
{ 549, 694, 786, -744, -843, -533, -589, -941, -603},
{ 882, 754, 534, -649, -920, -787, -759, -555, -557},
{ 597, 837, 766, -977, -895, -627, -697, -684, -574},
{ 635, 954, 704, -592, -873, -656, -788, -890, -969},
{ 803, 550, 798, -863, -626, -858, -630, -591, -622},
{ 699, 654, 798, -894, -545, -1021, -954, -837, -622},
{ 924, 767, 738, -693, -666, -553, -834, -575, -531},
{ 970, 675, 608, -639, -576, -801, -919, -890, -722},
{ 632, 706, 684, -873, -844, -944, -780, -976, -914},
{ 858, 767, 563, -643, -945, -844, -719, -574, -620},
{ 527, 765, 702, -788, -724, -525, -543, -572, -964},
{ 559, 924, 1003, -1009, -547, -905, -610, -833, -983},
{ 618, 524, 611, -633, -738, -625, -747, -536, -729},
{ 999, 942, 963, -920, -940, -886, -976, -867, -905},
{ 547, 857, 935, -916, -999, -783, -584, -718, -854},
{ 734, 926, 569, -665, -818, -515, -527, -838, -634},
{ 967, 746, 551, -705, -520, -804, -913, -544, -593},
{ 834, 633, 881, -515, -718, -545, -679, -783, -758},
{ 941, 701, 727, -645, -668, -997, -865, -961, -516},
{ 945, 564, 636, -521, -587, -701, -873, -623, -790},
{ 512, 563, 793, -563, -794, -873, -512, -619, -615},
{ 984, 556, 570, -534, -548, -620, -945, -604, -636},
{ 984, 540, 740, -519, -712, -782, -946, -570, -536},
{ 527, 764, 874, -787, -901, -652, -543, -570, -747},
{ 530, 664, 1014, -688, -525, -658, -549, -862, -1005},
{ 546, 515, 521, -550, -556, -525, -584, -519, -531},
{ 554, 934, 672, -1011, -728, -613, -600, -852, -882},
{ 598, 945, 556, -552, -650, -513, -700, -872, -603},
{ 627, 531, 733, -651, -899, -760, -769, -551, -525},
{ 576, 1020, 1014, -574, -571, -1011, -650, -1016, -1005},
{ 623, 924, 594, -563, -724, -537, -759, -835, -691},
{ 678, 909, 603, -602, -800, -536, -899, -807, -712},
{ 814, 744, 543, -592, -865, -790, -648, -541, -577}
};
static const unsigned short wavtable2[2304]={
14, 14, 14, 20, 20, 19, 21, 20, 20,
14, 14, 14, 20, 20, 20, 20, 21, 21,
14, 13, 14, 18, 20, 19, 21, 18, 21,
13, 13, 14, 18, 19, 19, 19, 18, 21,
13, 14, 13, 19, 18, 18, 19, 20, 19,
13, 14, 15, 19, 19, 20, 19, 21, 22,
13, 13, 13, 17, 17, 18, 18, 19, 19,
12, 14, 13, 18, 17, 19, 17, 20, 19,
13, 13, 13, 18, 18, 17, 19, 18, 18,
13, 13, 12, 18, 17, 17, 18, 19, 17,
13, 12, 13, 17, 17, 16, 18, 17, 18,
12, 13, 12, 17, 16, 17, 17, 19, 17,
12, 13, 13, 16, 17, 17, 17, 18, 18,
12, 13, 13, 16, 16, 17, 16, 19, 18,
12, 12, 13, 15, 16, 16, 16, 17, 18,
11, 13, 13, 15, 15, 17, 15, 18, 18,
13, 12, 13, 16, 17, 17, 18, 16, 19,
12, 12, 12, 16, 16, 16, 17, 16, 17,
13, 12, 12, 17, 17, 15, 19, 16, 16,
13, 12, 11, 16, 16, 14, 19, 16, 15,
12, 12, 12, 16, 16, 16, 17, 17, 17,
12, 13, 11, 16, 15, 16, 17, 18, 15,
12, 12, 11, 16, 14, 15, 16, 17, 15,
11, 13, 12, 15, 15, 16, 15, 18, 16,
12, 12, 12, 15, 15, 15, 16, 16, 16,
11, 12, 12, 15, 14, 15, 15, 16, 16,
11, 12, 12, 15, 15, 16, 15, 16, 17,
11, 12, 13, 15, 15, 16, 14, 17, 18,
11, 12, 11, 15, 14, 15, 15, 17, 15,
11, 12, 11, 15, 14, 15, 14, 17, 15,
11, 13, 12, 15, 14, 16, 14, 18, 17,
11, 12, 12, 14, 14, 16, 14, 17, 17,
12, 12, 12, 15, 16, 15, 17, 16, 17,
12, 11, 12, 15, 16, 15, 17, 15, 16,
12, 12, 11, 15, 15, 15, 17, 16, 15,
12, 12, 11, 15, 14, 14, 16, 16, 15,
13, 11, 11, 15, 15, 14, 18, 15, 15,
12, 11, 10, 15, 14, 13, 17, 15, 13,
11, 11, 11, 14, 14, 14, 15, 15, 14,
11, 11, 10, 14, 13, 13, 15, 15, 13,
12, 11, 12, 14, 15, 15, 16, 15, 17,
11, 11, 12, 14, 15, 15, 15, 15, 16,
11, 12, 11, 14, 14, 14, 15, 16, 15,
11, 11, 11, 14, 14, 14, 14, 15, 15,
11, 11, 12, 14, 14, 15, 14, 15, 16,
11, 11, 12, 14, 14, 15, 14, 15, 17,
11, 12, 12, 14, 14, 15, 14, 16, 16,
10, 12, 12, 13, 14, 15, 13, 16, 16,
11, 12, 11, 14, 13, 14, 14, 16, 14,
11, 11, 11, 14, 13, 14, 14, 15, 14,
10, 12, 11, 14, 13, 14, 13, 17, 14,
10, 12, 11, 14, 13, 14, 13, 16, 14,
11, 11, 11, 13, 13, 14, 14, 15, 15,
10, 11, 11, 13, 13, 14, 13, 15, 15,
10, 11, 12, 13, 14, 14, 13, 15, 16,
10, 11, 12, 13, 14, 15, 13, 15, 16,
11, 12, 11, 14, 13, 15, 14, 16, 15,
10, 12, 12, 14, 13, 15, 13, 17, 16,
10, 13, 12, 14, 14, 16, 13, 18, 16,
10, 12, 13, 14, 14, 16, 13, 17, 18,
10, 12, 11, 13, 13, 15, 13, 16, 15,
10, 12, 11, 13, 13, 15, 13, 16, 15,
10, 12, 12, 14, 13, 16, 13, 17, 16,
10, 12, 12, 13, 14, 16, 12, 16, 17,
12, 11, 12, 15, 16, 14, 17, 14, 16,
12, 11, 11, 14, 15, 13, 17, 14, 15,
11, 11, 12, 14, 14, 14, 15, 14, 16,
11, 11, 11, 13, 14, 14, 14, 14, 15,
11, 10, 11, 13, 14, 13, 15, 13, 15,
11, 10, 11, 13, 14, 13, 15, 13, 15,
12, 10, 10, 14, 14, 12, 17, 13, 13,
12, 10, 10, 13, 13, 11, 16, 13, 12,
11, 11, 11, 14, 14, 13, 15, 14, 14,
11, 11, 10, 13, 13, 13, 15, 14, 13,
11, 11, 10, 14, 12, 13, 14, 15, 13,
10, 12, 10, 14, 12, 13, 13, 16, 12,
11, 11, 11, 13, 14, 13, 14, 14, 15,
11, 11, 11, 13, 13, 13, 14, 14, 14,
10, 11, 11, 13, 13, 14, 13, 14, 15,
10, 11, 11, 12, 13, 13, 13, 14, 15,
11, 10, 11, 13, 13, 13, 14, 13, 14,
11, 11, 10, 13, 12, 13, 14, 14, 13,
11, 10, 10, 12, 12, 12, 14, 13, 13,
10, 10, 10, 12, 12, 12, 13, 13, 13,
11, 11, 10, 13, 12, 12, 14, 14, 12,
10, 11, 10, 13, 12, 12, 13, 14, 12,
10, 11, 10, 12, 11, 12, 13, 14, 12,
10, 11, 10, 12, 11, 12, 12, 14, 12,
10, 10, 11, 12, 13, 13, 13, 13, 15,
10, 10, 11, 12, 13, 13, 13, 13, 14,
10, 11, 11, 12, 12, 13, 12, 14, 14,
10, 11, 11, 12, 13, 13, 12, 14, 15,
10, 10, 11, 12, 12, 12, 12, 13, 14,
10, 10, 10, 11, 12, 12, 12, 13, 13,
10, 10, 11, 11, 12, 12, 12, 13, 14,
9, 10, 11, 11, 12, 13, 11, 13, 14,
11, 11, 11, 13, 13, 13, 14, 15, 14,
10, 11, 11, 13, 12, 13, 13, 15, 14,
10, 11, 10, 13, 12, 13, 13, 15, 13,
10, 11, 11, 13, 12, 13, 12, 15, 14,
10, 11, 11, 13, 13, 14, 13, 15, 15,
10, 11, 11, 13, 13, 14, 12, 15, 15,
10, 11, 11, 13, 13, 14, 12, 15, 15,
10, 11, 12, 12, 13, 15, 12, 15, 16,
10, 12, 11, 14, 12, 14, 13, 16, 14,
10, 12, 11, 14, 12, 15, 12, 17, 14,
10, 12, 12, 13, 13, 15, 12, 16, 16,
10, 13, 12, 14, 13, 16, 12, 18, 17,
10, 12, 11, 13, 12, 15, 12, 16, 15,
10, 12, 11, 13, 12, 14, 12, 16, 15,
10, 12, 12, 13, 13, 15, 12, 17, 16,
10, 12, 12, 13, 13, 16, 12, 16, 17,
10, 12, 10, 13, 12, 14, 12, 16, 13,
10, 12, 11, 13, 12, 14, 12, 16, 14,
10, 12, 10, 13, 11, 13, 12, 16, 13,
10, 11, 11, 12, 12, 14, 12, 15, 14,
10, 11, 11, 12, 12, 13, 12, 14, 14,
10, 11, 11, 12, 12, 14, 12, 15, 15,
9, 11, 11, 12, 12, 14, 11, 15, 15,
9, 11, 12, 12, 13, 14, 11, 15, 16,
10, 12, 11, 13, 12, 15, 12, 17, 14,
9, 12, 11, 13, 12, 15, 11, 17, 15,
9, 12, 12, 13, 12, 15, 11, 16, 16,
9, 12, 12, 13, 13, 16, 11, 17, 17,
9, 12, 11, 13, 12, 15, 11, 17, 14,
9, 12, 12, 13, 12, 16, 11, 17, 16,
9, 12, 12, 13, 12, 15, 11, 17, 16,
9, 13, 12, 13, 13, 16, 11, 18, 17,
12, 10, 11, 13, 14, 12, 16, 12, 14,
11, 10, 10, 12, 13, 12, 14, 12, 13,
10, 10, 11, 12, 13, 12, 13, 12, 15,
10, 10, 10, 12, 12, 12, 13, 12, 13,
11, 9, 10, 12, 13, 11, 15, 11, 13,
11, 10, 10, 12, 12, 11, 14, 12, 12,
10, 10, 9, 11, 11, 11, 13, 12, 11,
10, 10, 9, 11, 11, 10, 13, 12, 10,
10, 10, 10, 12, 12, 12, 13, 13, 13,
10, 10, 10, 12, 11, 12, 12, 13, 13,
10, 10, 10, 11, 11, 11, 12, 12, 13,
10, 10, 10, 11, 11, 11, 12, 12, 12,
10, 10, 10, 12, 11, 11, 12, 13, 12,
10, 10, 9, 11, 11, 11, 12, 13, 11,
9, 10, 9, 11, 10, 11, 11, 12, 11,
9, 10, 9, 11, 10, 11, 11, 13, 11,
10, 9, 11, 11, 12, 11, 13, 11, 14,
10, 10, 10, 11, 12, 11, 13, 12, 13,
10, 10, 10, 11, 12, 12, 12, 12, 13,
9, 10, 10, 10, 11, 11, 11, 12, 13,
10, 9, 10, 11, 12, 10, 13, 11, 12,
10, 9, 10, 11, 11, 10, 12, 11, 12,
9, 10, 10, 11, 11, 11, 11, 12, 12,
9, 9, 10, 10, 10, 11, 11, 11, 12,
9, 10, 10, 11, 11, 12, 11, 13, 13,
9, 10, 10, 11, 11, 12, 11, 13, 13,
9, 10, 11, 11, 11, 12, 11, 12, 14,
9, 10, 11, 11, 11, 12, 11, 13, 14,
9, 10, 10, 10, 10, 11, 11, 12, 12,
9, 10, 10, 10, 10, 11, 10, 12, 13,
9, 9, 10, 10, 10, 11, 10, 11, 12,
9, 10, 10, 10, 10, 12, 10, 12, 13,
10, 11, 10, 12, 12, 13, 13, 14, 13,
10, 11, 10, 12, 12, 13, 12, 14, 13,
10, 11, 10, 12, 11, 13, 12, 15, 13,
10, 11, 10, 12, 11, 13, 12, 14, 13,
10, 10, 10, 12, 11, 12, 12, 13, 13,
10, 10, 10, 11, 11, 12, 12, 13, 13,
9, 11, 10, 12, 11, 12, 11, 14, 13,
9, 11, 10, 11, 11, 12, 11, 14, 13,
10, 11, 11, 12, 12, 13, 12, 14, 14,
9, 11, 11, 12, 12, 13, 11, 14, 14,
9, 11, 11, 11, 12, 13, 11, 14, 15,
9, 11, 12, 11, 12, 14, 11, 14, 16,
9, 11, 11, 12, 11, 13, 11, 14, 14,
9, 11, 11, 12, 12, 13, 11, 14, 14,
9, 11, 11, 11, 12, 13, 11, 14, 15,
9, 11, 12, 11, 12, 14, 10, 14, 16,
9, 11, 10, 12, 11, 13, 11, 15, 13,
9, 11, 11, 12, 11, 14, 11, 15, 14,
9, 12, 10, 12, 11, 13, 11, 16, 13,
9, 11, 11, 12, 11, 14, 11, 15, 14,
9, 11, 11, 12, 12, 14, 11, 15, 15,
9, 11, 12, 12, 12, 15, 11, 15, 16,
9, 12, 11, 12, 12, 14, 11, 16, 15,
9, 12, 12, 12, 13, 15, 11, 16, 16,
9, 12, 11, 13, 11, 14, 11, 17, 14,
9, 12, 11, 13, 12, 15, 11, 17, 15,
9, 12, 11, 12, 12, 14, 10, 16, 15,
9, 12, 12, 12, 12, 15, 10, 16, 16,
9, 12, 11, 13, 11, 15, 10, 17, 14,
9, 13, 12, 13, 12, 16, 10, 18, 16,
9, 13, 12, 13, 12, 16, 10, 18, 16,
9, 12, 13, 13, 13, 16, 10, 17, 18,
10, 11, 10, 12, 11, 12, 12, 15, 12,
9, 11, 10, 12, 10, 12, 11, 15, 12,
9, 10, 10, 11, 11, 12, 11, 13, 12,
9, 10, 10, 11, 10, 11, 10, 13, 12,
9, 11, 10, 12, 11, 12, 11, 14, 13,
9, 11, 10, 11, 11, 12, 11, 14, 13,
9, 11, 10, 12, 11, 13, 10, 15, 13,
9, 11, 11, 12, 11, 14, 10, 15, 14,
9, 10, 10, 11, 11, 12, 10, 13, 13,
9, 11, 10, 11, 10, 12, 10, 14, 12,
9, 10, 10, 11, 11, 12, 10, 13, 13,
9, 10, 11, 11, 11, 13, 10, 13, 14,
9, 11, 11, 11, 11, 13, 10, 14, 14,
9, 11, 11, 11, 12, 14, 10, 14, 15,
9, 11, 11, 11, 11, 13, 10, 14, 14,
9, 11, 11, 11, 11, 14, 10, 14, 15,
9, 12, 10, 12, 11, 13, 11, 16, 13,
9, 12, 10, 12, 11, 14, 10, 16, 13,
9, 11, 11, 12, 11, 14, 10, 15, 14,
9, 11, 11, 12, 12, 14, 10, 15, 15,
9, 12, 11, 12, 11, 14, 10, 16, 15,
9, 12, 12, 12, 12, 15, 10, 16, 16,
9, 12, 11, 13, 12, 15, 10, 17, 15,
9, 13, 12, 13, 12, 16, 10, 18, 17,
9, 11, 10, 12, 11, 13, 10, 15, 13,
9, 12, 11, 12, 11, 14, 10, 16, 14,
9, 12, 11, 12, 11, 14, 10, 16, 15,
9, 11, 12, 12, 12, 15, 10, 15, 16,
9, 12, 11, 12, 11, 15, 10, 17, 14,
9, 12, 12, 12, 12, 16, 10, 17, 16,
8, 12, 11, 12, 11, 14, 9, 16, 15,
8, 12, 12, 12, 12, 15, 9, 17, 16,
10, 9, 9, 10, 11, 10, 12, 10, 11,
9, 9, 9, 10, 10, 9, 11, 10, 10,
9, 10, 9, 10, 10, 10, 11, 12, 11,
9, 9, 9, 10, 9, 10, 10, 11, 10,
9, 9, 10, 10, 10, 11, 11, 11, 12,
9, 9, 10, 9, 10, 10, 10, 10, 12,
9, 9, 9, 9, 9, 10, 10, 11, 11,
8, 9, 9, 9, 9, 10, 9, 11, 11,
9, 10, 9, 10, 10, 11, 10, 12, 11,
8, 10, 9, 10, 9, 10, 9, 12, 11,
8, 10, 10, 10, 9, 11, 9, 12, 12,
8, 9, 10, 9, 10, 11, 9, 11, 13,
9, 9, 9, 9, 9, 9, 10, 10, 10,
7, 8, 8, 7, 7, 7, 7, 8, 8,
8, 10, 9, 9, 9, 10, 8, 12, 11,
8, 9, 9, 8, 8, 10, 8, 10, 11,
9, 11, 10, 11, 10, 12, 10, 15, 12,
9, 11, 10, 11, 10, 13, 10, 15, 12,
9, 10, 10, 10, 10, 12, 10, 13, 13,
8, 10, 11, 10, 11, 13, 9, 13, 14,
9, 11, 10, 11, 10, 13, 10, 15, 13,
9, 11, 11, 11, 11, 14, 10, 15, 14,
8, 11, 11, 11, 11, 13, 9, 14, 14,
8, 11, 12, 11, 11, 14, 9, 15, 16,
8, 10, 9, 10, 9, 11, 9, 13, 11,
8, 11, 10, 11, 10, 12, 9, 14, 13,
8, 11, 10, 10, 10, 12, 9, 14, 13,
8, 10, 11, 10, 11, 13, 9, 13, 14,
8, 12, 11, 11, 10, 14, 9, 16, 14,
8, 12, 11, 11, 11, 14, 9, 16, 15,
8, 11, 10, 10, 10, 12, 9, 14, 13,
8, 11, 10, 10, 10, 13, 8, 14, 13
static const unsigned short wavtable2[256][9] = {
{14, 14, 14, 20, 20, 19, 21, 20, 20},
{14, 14, 14, 20, 20, 20, 20, 21, 21},
{14, 13, 14, 18, 20, 19, 21, 18, 21},
{13, 13, 14, 18, 19, 19, 19, 18, 21},
{13, 14, 13, 19, 18, 18, 19, 20, 19},
{13, 14, 15, 19, 19, 20, 19, 21, 22},
{13, 13, 13, 17, 17, 18, 18, 19, 19},
{12, 14, 13, 18, 17, 19, 17, 20, 19},
{13, 13, 13, 18, 18, 17, 19, 18, 18},
{13, 13, 12, 18, 17, 17, 18, 19, 17},
{13, 12, 13, 17, 17, 16, 18, 17, 18},
{12, 13, 12, 17, 16, 17, 17, 19, 17},
{12, 13, 13, 16, 17, 17, 17, 18, 18},
{12, 13, 13, 16, 16, 17, 16, 19, 18},
{12, 12, 13, 15, 16, 16, 16, 17, 18},
{11, 13, 13, 15, 15, 17, 15, 18, 18},
{13, 12, 13, 16, 17, 17, 18, 16, 19},
{12, 12, 12, 16, 16, 16, 17, 16, 17},
{13, 12, 12, 17, 17, 15, 19, 16, 16},
{13, 12, 11, 16, 16, 14, 19, 16, 15},
{12, 12, 12, 16, 16, 16, 17, 17, 17},
{12, 13, 11, 16, 15, 16, 17, 18, 15},
{12, 12, 11, 16, 14, 15, 16, 17, 15},
{11, 13, 12, 15, 15, 16, 15, 18, 16},
{12, 12, 12, 15, 15, 15, 16, 16, 16},
{11, 12, 12, 15, 14, 15, 15, 16, 16},
{11, 12, 12, 15, 15, 16, 15, 16, 17},
{11, 12, 13, 15, 15, 16, 14, 17, 18},
{11, 12, 11, 15, 14, 15, 15, 17, 15},
{11, 12, 11, 15, 14, 15, 14, 17, 15},
{11, 13, 12, 15, 14, 16, 14, 18, 17},
{11, 12, 12, 14, 14, 16, 14, 17, 17},
{12, 12, 12, 15, 16, 15, 17, 16, 17},
{12, 11, 12, 15, 16, 15, 17, 15, 16},
{12, 12, 11, 15, 15, 15, 17, 16, 15},
{12, 12, 11, 15, 14, 14, 16, 16, 15},
{13, 11, 11, 15, 15, 14, 18, 15, 15},
{12, 11, 10, 15, 14, 13, 17, 15, 13},
{11, 11, 11, 14, 14, 14, 15, 15, 14},
{11, 11, 10, 14, 13, 13, 15, 15, 13},
{12, 11, 12, 14, 15, 15, 16, 15, 17},
{11, 11, 12, 14, 15, 15, 15, 15, 16},
{11, 12, 11, 14, 14, 14, 15, 16, 15},
{11, 11, 11, 14, 14, 14, 14, 15, 15},
{11, 11, 12, 14, 14, 15, 14, 15, 16},
{11, 11, 12, 14, 14, 15, 14, 15, 17},
{11, 12, 12, 14, 14, 15, 14, 16, 16},
{10, 12, 12, 13, 14, 15, 13, 16, 16},
{11, 12, 11, 14, 13, 14, 14, 16, 14},
{11, 11, 11, 14, 13, 14, 14, 15, 14},
{10, 12, 11, 14, 13, 14, 13, 17, 14},
{10, 12, 11, 14, 13, 14, 13, 16, 14},
{11, 11, 11, 13, 13, 14, 14, 15, 15},
{10, 11, 11, 13, 13, 14, 13, 15, 15},
{10, 11, 12, 13, 14, 14, 13, 15, 16},
{10, 11, 12, 13, 14, 15, 13, 15, 16},
{11, 12, 11, 14, 13, 15, 14, 16, 15},
{10, 12, 12, 14, 13, 15, 13, 17, 16},
{10, 13, 12, 14, 14, 16, 13, 18, 16},
{10, 12, 13, 14, 14, 16, 13, 17, 18},
{10, 12, 11, 13, 13, 15, 13, 16, 15},
{10, 12, 11, 13, 13, 15, 13, 16, 15},
{10, 12, 12, 14, 13, 16, 13, 17, 16},
{10, 12, 12, 13, 14, 16, 12, 16, 17},
{12, 11, 12, 15, 16, 14, 17, 14, 16},
{12, 11, 11, 14, 15, 13, 17, 14, 15},
{11, 11, 12, 14, 14, 14, 15, 14, 16},
{11, 11, 11, 13, 14, 14, 14, 14, 15},
{11, 10, 11, 13, 14, 13, 15, 13, 15},
{11, 10, 11, 13, 14, 13, 15, 13, 15},
{12, 10, 10, 14, 14, 12, 17, 13, 13},
{12, 10, 10, 13, 13, 11, 16, 13, 12},
{11, 11, 11, 14, 14, 13, 15, 14, 14},
{11, 11, 10, 13, 13, 13, 15, 14, 13},
{11, 11, 10, 14, 12, 13, 14, 15, 13},
{10, 12, 10, 14, 12, 13, 13, 16, 12},
{11, 11, 11, 13, 14, 13, 14, 14, 15},
{11, 11, 11, 13, 13, 13, 14, 14, 14},
{10, 11, 11, 13, 13, 14, 13, 14, 15},
{10, 11, 11, 12, 13, 13, 13, 14, 15},
{11, 10, 11, 13, 13, 13, 14, 13, 14},
{11, 11, 10, 13, 12, 13, 14, 14, 13},
{11, 10, 10, 12, 12, 12, 14, 13, 13},
{10, 10, 10, 12, 12, 12, 13, 13, 13},
{11, 11, 10, 13, 12, 12, 14, 14, 12},
{10, 11, 10, 13, 12, 12, 13, 14, 12},
{10, 11, 10, 12, 11, 12, 13, 14, 12},
{10, 11, 10, 12, 11, 12, 12, 14, 12},
{10, 10, 11, 12, 13, 13, 13, 13, 15},
{10, 10, 11, 12, 13, 13, 13, 13, 14},
{10, 11, 11, 12, 12, 13, 12, 14, 14},
{10, 11, 11, 12, 13, 13, 12, 14, 15},
{10, 10, 11, 12, 12, 12, 12, 13, 14},
{10, 10, 10, 11, 12, 12, 12, 13, 13},
{10, 10, 11, 11, 12, 12, 12, 13, 14},
{ 9, 10, 11, 11, 12, 13, 11, 13, 14},
{11, 11, 11, 13, 13, 13, 14, 15, 14},
{10, 11, 11, 13, 12, 13, 13, 15, 14},
{10, 11, 10, 13, 12, 13, 13, 15, 13},
{10, 11, 11, 13, 12, 13, 12, 15, 14},
{10, 11, 11, 13, 13, 14, 13, 15, 15},
{10, 11, 11, 13, 13, 14, 12, 15, 15},
{10, 11, 11, 13, 13, 14, 12, 15, 15},
{10, 11, 12, 12, 13, 15, 12, 15, 16},
{10, 12, 11, 14, 12, 14, 13, 16, 14},
{10, 12, 11, 14, 12, 15, 12, 17, 14},
{10, 12, 12, 13, 13, 15, 12, 16, 16},
{10, 13, 12, 14, 13, 16, 12, 18, 17},
{10, 12, 11, 13, 12, 15, 12, 16, 15},
{10, 12, 11, 13, 12, 14, 12, 16, 15},
{10, 12, 12, 13, 13, 15, 12, 17, 16},
{10, 12, 12, 13, 13, 16, 12, 16, 17},
{10, 12, 10, 13, 12, 14, 12, 16, 13},
{10, 12, 11, 13, 12, 14, 12, 16, 14},
{10, 12, 10, 13, 11, 13, 12, 16, 13},
{10, 11, 11, 12, 12, 14, 12, 15, 14},
{10, 11, 11, 12, 12, 13, 12, 14, 14},
{10, 11, 11, 12, 12, 14, 12, 15, 15},
{ 9, 11, 11, 12, 12, 14, 11, 15, 15},
{ 9, 11, 12, 12, 13, 14, 11, 15, 16},
{10, 12, 11, 13, 12, 15, 12, 17, 14},
{ 9, 12, 11, 13, 12, 15, 11, 17, 15},
{ 9, 12, 12, 13, 12, 15, 11, 16, 16},
{ 9, 12, 12, 13, 13, 16, 11, 17, 17},
{ 9, 12, 11, 13, 12, 15, 11, 17, 14},
{ 9, 12, 12, 13, 12, 16, 11, 17, 16},
{ 9, 12, 12, 13, 12, 15, 11, 17, 16},
{ 9, 13, 12, 13, 13, 16, 11, 18, 17},
{12, 10, 11, 13, 14, 12, 16, 12, 14},
{11, 10, 10, 12, 13, 12, 14, 12, 13},
{10, 10, 11, 12, 13, 12, 13, 12, 15},
{10, 10, 10, 12, 12, 12, 13, 12, 13},
{11, 9, 10, 12, 13, 11, 15, 11, 13},
{11, 10, 10, 12, 12, 11, 14, 12, 12},
{10, 10, 9, 11, 11, 11, 13, 12, 11},
{10, 10, 9, 11, 11, 10, 13, 12, 10},
{10, 10, 10, 12, 12, 12, 13, 13, 13},
{10, 10, 10, 12, 11, 12, 12, 13, 13},
{10, 10, 10, 11, 11, 11, 12, 12, 13},
{10, 10, 10, 11, 11, 11, 12, 12, 12},
{10, 10, 10, 12, 11, 11, 12, 13, 12},
{10, 10, 9, 11, 11, 11, 12, 13, 11},
{ 9, 10, 9, 11, 10, 11, 11, 12, 11},
{ 9, 10, 9, 11, 10, 11, 11, 13, 11},
{10, 9, 11, 11, 12, 11, 13, 11, 14},
{10, 10, 10, 11, 12, 11, 13, 12, 13},
{10, 10, 10, 11, 12, 12, 12, 12, 13},
{ 9, 10, 10, 10, 11, 11, 11, 12, 13},
{10, 9, 10, 11, 12, 10, 13, 11, 12},
{10, 9, 10, 11, 11, 10, 12, 11, 12},
{ 9, 10, 10, 11, 11, 11, 11, 12, 12},
{ 9, 9, 10, 10, 10, 11, 11, 11, 12},
{ 9, 10, 10, 11, 11, 12, 11, 13, 13},
{ 9, 10, 10, 11, 11, 12, 11, 13, 13},
{ 9, 10, 11, 11, 11, 12, 11, 12, 14},
{ 9, 10, 11, 11, 11, 12, 11, 13, 14},
{ 9, 10, 10, 10, 10, 11, 11, 12, 12},
{ 9, 10, 10, 10, 10, 11, 10, 12, 13},
{ 9, 9, 10, 10, 10, 11, 10, 11, 12},
{ 9, 10, 10, 10, 10, 12, 10, 12, 13},
{10, 11, 10, 12, 12, 13, 13, 14, 13},
{10, 11, 10, 12, 12, 13, 12, 14, 13},
{10, 11, 10, 12, 11, 13, 12, 15, 13},
{10, 11, 10, 12, 11, 13, 12, 14, 13},
{10, 10, 10, 12, 11, 12, 12, 13, 13},
{10, 10, 10, 11, 11, 12, 12, 13, 13},
{ 9, 11, 10, 12, 11, 12, 11, 14, 13},
{ 9, 11, 10, 11, 11, 12, 11, 14, 13},
{10, 11, 11, 12, 12, 13, 12, 14, 14},
{ 9, 11, 11, 12, 12, 13, 11, 14, 14},
{ 9, 11, 11, 11, 12, 13, 11, 14, 15},
{ 9, 11, 12, 11, 12, 14, 11, 14, 16},
{ 9, 11, 11, 12, 11, 13, 11, 14, 14},
{ 9, 11, 11, 12, 12, 13, 11, 14, 14},
{ 9, 11, 11, 11, 12, 13, 11, 14, 15},
{ 9, 11, 12, 11, 12, 14, 10, 14, 16},
{ 9, 11, 10, 12, 11, 13, 11, 15, 13},
{ 9, 11, 11, 12, 11, 14, 11, 15, 14},
{ 9, 12, 10, 12, 11, 13, 11, 16, 13},
{ 9, 11, 11, 12, 11, 14, 11, 15, 14},
{ 9, 11, 11, 12, 12, 14, 11, 15, 15},
{ 9, 11, 12, 12, 12, 15, 11, 15, 16},
{ 9, 12, 11, 12, 12, 14, 11, 16, 15},
{ 9, 12, 12, 12, 13, 15, 11, 16, 16},
{ 9, 12, 11, 13, 11, 14, 11, 17, 14},
{ 9, 12, 11, 13, 12, 15, 11, 17, 15},
{ 9, 12, 11, 12, 12, 14, 10, 16, 15},
{ 9, 12, 12, 12, 12, 15, 10, 16, 16},
{ 9, 12, 11, 13, 11, 15, 10, 17, 14},
{ 9, 13, 12, 13, 12, 16, 10, 18, 16},
{ 9, 13, 12, 13, 12, 16, 10, 18, 16},
{ 9, 12, 13, 13, 13, 16, 10, 17, 18},
{10, 11, 10, 12, 11, 12, 12, 15, 12},
{ 9, 11, 10, 12, 10, 12, 11, 15, 12},
{ 9, 10, 10, 11, 11, 12, 11, 13, 12},
{ 9, 10, 10, 11, 10, 11, 10, 13, 12},
{ 9, 11, 10, 12, 11, 12, 11, 14, 13},
{ 9, 11, 10, 11, 11, 12, 11, 14, 13},
{ 9, 11, 10, 12, 11, 13, 10, 15, 13},
{ 9, 11, 11, 12, 11, 14, 10, 15, 14},
{ 9, 10, 10, 11, 11, 12, 10, 13, 13},
{ 9, 11, 10, 11, 10, 12, 10, 14, 12},
{ 9, 10, 10, 11, 11, 12, 10, 13, 13},
{ 9, 10, 11, 11, 11, 13, 10, 13, 14},
{ 9, 11, 11, 11, 11, 13, 10, 14, 14},
{ 9, 11, 11, 11, 12, 14, 10, 14, 15},
{ 9, 11, 11, 11, 11, 13, 10, 14, 14},
{ 9, 11, 11, 11, 11, 14, 10, 14, 15},
{ 9, 12, 10, 12, 11, 13, 11, 16, 13},
{ 9, 12, 10, 12, 11, 14, 10, 16, 13},
{ 9, 11, 11, 12, 11, 14, 10, 15, 14},
{ 9, 11, 11, 12, 12, 14, 10, 15, 15},
{ 9, 12, 11, 12, 11, 14, 10, 16, 15},
{ 9, 12, 12, 12, 12, 15, 10, 16, 16},
{ 9, 12, 11, 13, 12, 15, 10, 17, 15},
{ 9, 13, 12, 13, 12, 16, 10, 18, 17},
{ 9, 11, 10, 12, 11, 13, 10, 15, 13},
{ 9, 12, 11, 12, 11, 14, 10, 16, 14},
{ 9, 12, 11, 12, 11, 14, 10, 16, 15},
{ 9, 11, 12, 12, 12, 15, 10, 15, 16},
{ 9, 12, 11, 12, 11, 15, 10, 17, 14},
{ 9, 12, 12, 12, 12, 16, 10, 17, 16},
{ 8, 12, 11, 12, 11, 14, 9, 16, 15},
{ 8, 12, 12, 12, 12, 15, 9, 17, 16},
{10, 9, 9, 10, 11, 10, 12, 10, 11},
{ 9, 9, 9, 10, 10, 9, 11, 10, 10},
{ 9, 10, 9, 10, 10, 10, 11, 12, 11},
{ 9, 9, 9, 10, 9, 10, 10, 11, 10},
{ 9, 9, 10, 10, 10, 11, 11, 11, 12},
{ 9, 9, 10, 9, 10, 10, 10, 10, 12},
{ 9, 9, 9, 9, 9, 10, 10, 11, 11},
{ 8, 9, 9, 9, 9, 10, 9, 11, 11},
{ 9, 10, 9, 10, 10, 11, 10, 12, 11},
{ 8, 10, 9, 10, 9, 10, 9, 12, 11},
{ 8, 10, 10, 10, 9, 11, 9, 12, 12},
{ 8, 9, 10, 9, 10, 11, 9, 11, 13},
{ 9, 9, 9, 9, 9, 9, 10, 10, 10},
{ 7, 8, 8, 7, 7, 7, 7, 8, 8},
{ 8, 10, 9, 9, 9, 10, 8, 12, 11},
{ 8, 9, 9, 8, 8, 10, 8, 10, 11},
{ 9, 11, 10, 11, 10, 12, 10, 15, 12},
{ 9, 11, 10, 11, 10, 13, 10, 15, 12},
{ 9, 10, 10, 10, 10, 12, 10, 13, 13},
{ 8, 10, 11, 10, 11, 13, 9, 13, 14},
{ 9, 11, 10, 11, 10, 13, 10, 15, 13},
{ 9, 11, 11, 11, 11, 14, 10, 15, 14},
{ 8, 11, 11, 11, 11, 13, 9, 14, 14},
{ 8, 11, 12, 11, 11, 14, 9, 15, 16},
{ 8, 10, 9, 10, 9, 11, 9, 13, 11},
{ 8, 11, 10, 11, 10, 12, 9, 14, 13},
{ 8, 11, 10, 10, 10, 12, 9, 14, 13},
{ 8, 10, 11, 10, 11, 13, 9, 13, 14},
{ 8, 12, 11, 11, 10, 14, 9, 16, 14},
{ 8, 12, 11, 11, 11, 14, 9, 16, 15},
{ 8, 11, 10, 10, 10, 12, 9, 14, 13},
{ 8, 11, 10, 10, 10, 13, 8, 14, 13}
};
static const signed short etable1[128][40]={
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment