|
|
|
@ -25,522 +25,138 @@ |
|
|
|
|
#include <stdint.h> |
|
|
|
|
|
|
|
|
|
/* 14.4 data tables */ |
|
|
|
|
static const int16_t gain_val_tab[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 int16_t gain_val_tab[256][3] = { |
|
|
|
|
{541, 956, 768}, {877, 581, 568}, {675, 787, 635}, {624, 732, 668}, |
|
|
|
|
{623, 839, 697}, {640, 693, 991}, {925, 687, 608}, {552, 797, 572}, |
|
|
|
|
{535, 832, 799}, {762, 605, 577}, {832, 561, 1003}, {590, 687, 588}, |
|
|
|
|
{646, 901, 732}, {828, 689, 896}, {875, 624, 848}, {571, 942, 1022}, |
|
|
|
|
{824, 736, 643}, {517, 765, 512}, {562, 908, 761}, {694, 913, 675}, |
|
|
|
|
{704, 524, 672}, {721, 757, 558}, {884, 551, 633}, {558, 1007, 846}, |
|
|
|
|
{932, 746, 777}, {566, 822, 926}, {613, 771, 611}, {737, 671, 1008}, |
|
|
|
|
{651, 594, 579}, {801, 636, 564}, {852, 910, 719}, {998, 614, 575}, |
|
|
|
|
{665, 935, 628}, {631, 596, 829}, {644, 926, 526}, {879, 988, 613}, |
|
|
|
|
{941, 692, 693}, {565, 672, 576}, {547, 628, 740}, {639, 532, 537}, |
|
|
|
|
{955, 604, 598}, {562, 580, 900}, {603, 899, 621}, {746, 533, 624}, |
|
|
|
|
{729, 514, 735}, {853, 551, 692}, {949, 1018, 1004}, {544, 988, 735}, |
|
|
|
|
{789, 782, 821}, {897, 516, 754}, {517, 702, 828}, {586, 818, 763}, |
|
|
|
|
{907, 652, 592}, {528, 652, 642}, {531, 708, 780}, {666, 625, 727}, |
|
|
|
|
{947, 727, 554}, {549, 657, 981}, {605, 920, 852}, {624, 619, 983}, |
|
|
|
|
{605, 909, 547}, {690, 935, 516}, {700, 612, 853}, {767, 832, 574}, |
|
|
|
|
{523, 898, 923}, {722, 958, 691}, {613, 771, 928}, {758, 757, 584}, |
|
|
|
|
{512, 567, 577}, {615, 638, 698}, {574, 642, 589}, {993, 682, 878}, |
|
|
|
|
{539, 890, 913}, {694, 928, 544}, {805, 600, 680}, {540, 951, 782}, |
|
|
|
|
{816, 950, 590}, {955, 847, 811}, {547, 883, 556}, {652, 888, 604}, |
|
|
|
|
{863, 585, 855}, {1023, 997, 516}, {932, 614, 640}, {627, 564, 573}, |
|
|
|
|
{876, 900, 724}, {515, 857, 896}, {647, 953, 879}, {806, 854, 857}, |
|
|
|
|
{545, 583, 631}, {657, 601, 751}, {740, 905, 795}, {841, 1016, 568}, |
|
|
|
|
{747, 589, 983}, {878, 613, 526}, {864, 723, 779}, {534, 674, 774}, |
|
|
|
|
{950, 649, 939}, {590, 703, 899}, {618, 527, 579}, {725, 647, 972}, |
|
|
|
|
{641, 647, 707}, {730, 663, 644}, {807, 572, 578}, {879, 611, 821}, |
|
|
|
|
{667, 729, 841}, {782, 585, 751}, {802, 733, 976}, {850, 871, 708}, |
|
|
|
|
{870, 743, 704}, {941, 899, 585}, {943, 632, 875}, {1023, 732, 638}, |
|
|
|
|
{778, 753, 655}, {843, 945, 945}, {942, 969, 572}, {1008, 559, 854}, |
|
|
|
|
{868, 729, 787}, {970, 686, 547}, {535, 635, 674}, {560, 636, 828}, |
|
|
|
|
{994, 592, 833}, {548, 621, 694}, {550, 801, 955}, {582, 522, 646}, |
|
|
|
|
{606, 625, 818}, {623, 591, 874}, {669, 535, 1001}, {701, 938, 592}, |
|
|
|
|
{925, 820, 738}, {735, 790, 544}, {575, 788, 674}, {655, 783, 528}, |
|
|
|
|
{527, 513, 677}, {782, 852, 940}, {578, 910, 513}, {692, 882, 734}, |
|
|
|
|
{586, 683, 715}, {739, 609, 717}, {778, 773, 697}, {922, 785, 813}, |
|
|
|
|
{766, 651, 984}, {978, 596, 515}, {535, 757, 540}, {662, 687, 589}, |
|
|
|
|
{554, 536, 979}, {723, 982, 690}, {936, 956, 527}, {590, 1002, 547}, |
|
|
|
|
{517, 653, 825}, {832, 592, 974}, {512, 957, 903}, {631, 545, 906}, |
|
|
|
|
{514, 720, 649}, {596, 679, 694}, {617, 740, 979}, {711, 685, 877}, |
|
|
|
|
{655, 835, 848}, {754, 839, 698}, {871, 515, 769}, {955, 852, 573}, |
|
|
|
|
{640, 859, 587}, {792, 863, 554}, {843, 708, 682}, {971, 768, 552}, |
|
|
|
|
{891, 536, 690}, {1016, 560, 663}, {543, 870, 674}, {601, 999, 585}, |
|
|
|
|
{945, 966, 889}, {529, 912, 777}, {574, 1020, 714}, {609, 922, 932}, |
|
|
|
|
{598, 778, 929}, {651, 772, 744}, {691, 957, 722}, {729, 766, 984}, |
|
|
|
|
{547, 519, 632}, {583, 532, 922}, {633, 995, 603}, {677, 571, 874}, |
|
|
|
|
{602, 545, 666}, {627, 542, 875}, {672, 983, 598}, {692, 979, 730}, |
|
|
|
|
{668, 634, 872}, {711, 706, 674}, {739, 977, 595}, {759, 905, 763}, |
|
|
|
|
{756, 582, 763}, {748, 1013, 908}, {804, 937, 950}, {785, 543, 998}, |
|
|
|
|
{999, 684, 942}, {626, 633, 996}, {626, 567, 835}, {739, 571, 973}, |
|
|
|
|
{655, 769, 707}, {702, 952, 571}, {727, 712, 514}, {744, 686, 741}, |
|
|
|
|
{731, 552, 714}, {824, 991, 726}, {795, 615, 544}, {870, 575, 824}, |
|
|
|
|
{803, 832, 923}, {819, 839, 531}, {887, 786, 852}, {933, 764, 570}, |
|
|
|
|
{716, 906, 654}, {784, 804, 563}, {774, 535, 876}, {807, 598, 649}, |
|
|
|
|
{817, 759, 718}, {831, 993, 846}, {858, 567, 605}, {876, 1012, 651}, |
|
|
|
|
{852, 548, 549}, {895, 1008, 871}, {892, 1000, 591}, {935, 516, 836}, |
|
|
|
|
{931, 612, 776}, {968, 614, 816}, {524, 777, 719}, {549, 694, 786}, |
|
|
|
|
{882, 754, 534}, {597, 837, 766}, {635, 954, 704}, {803, 550, 798}, |
|
|
|
|
{699, 654, 798}, {924, 767, 738}, {970, 675, 608}, {632, 706, 684}, |
|
|
|
|
{858, 767, 563}, {527, 765, 702}, {559, 924, 1003}, {618, 524, 611}, |
|
|
|
|
{999, 942, 963}, {547, 857, 935}, {734, 926, 569}, {967, 746, 551}, |
|
|
|
|
{834, 633, 881}, {941, 701, 727}, {945, 564, 636}, {512, 563, 793}, |
|
|
|
|
{984, 556, 570}, {984, 540, 740}, {527, 764, 874}, {530, 664, 1014}, |
|
|
|
|
{546, 515, 521}, {554, 934, 672}, {598, 945, 556}, {627, 531, 733}, |
|
|
|
|
{576, 1020, 1014}, {623, 924, 594}, {678, 909, 603}, {814, 744, 543} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static const uint8_t gain_exp_tab[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 uint8_t gain_exp_tab[256][3] = { |
|
|
|
|
{14, 14, 14}, {14, 14, 14}, {14, 13, 14}, {13, 13, 14}, |
|
|
|
|
{13, 14, 13}, {13, 14, 15}, {13, 13, 13}, {12, 14, 13}, |
|
|
|
|
{13, 13, 13}, {13, 13, 12}, {13, 12, 13}, {12, 13, 12}, |
|
|
|
|
{12, 13, 13}, {12, 13, 13}, {12, 12, 13}, {11, 13, 13}, |
|
|
|
|
{13, 12, 13}, {12, 12, 12}, {13, 12, 12}, {13, 12, 11}, |
|
|
|
|
{12, 12, 12}, {12, 13, 11}, {12, 12, 11}, {11, 13, 12}, |
|
|
|
|
{12, 12, 12}, {11, 12, 12}, {11, 12, 12}, {11, 12, 13}, |
|
|
|
|
{11, 12, 11}, {11, 12, 11}, {11, 13, 12}, {11, 12, 12}, |
|
|
|
|
{12, 12, 12}, {12, 11, 12}, {12, 12, 11}, {12, 12, 11}, |
|
|
|
|
{13, 11, 11}, {12, 11, 10}, {11, 11, 11}, {11, 11, 10}, |
|
|
|
|
{12, 11, 12}, {11, 11, 12}, {11, 12, 11}, {11, 11, 11}, |
|
|
|
|
{11, 11, 12}, {11, 11, 12}, {11, 12, 12}, {10, 12, 12}, |
|
|
|
|
{11, 12, 11}, {11, 11, 11}, {10, 12, 11}, {10, 12, 11}, |
|
|
|
|
{11, 11, 11}, {10, 11, 11}, {10, 11, 12}, {10, 11, 12}, |
|
|
|
|
{11, 12, 11}, {10, 12, 12}, {10, 13, 12}, {10, 12, 13}, |
|
|
|
|
{10, 12, 11}, {10, 12, 11}, {10, 12, 12}, {10, 12, 12}, |
|
|
|
|
{12, 11, 12}, {12, 11, 11}, {11, 11, 12}, {11, 11, 11}, |
|
|
|
|
{11, 10, 11}, {11, 10, 11}, {12, 10, 10}, {12, 10, 10}, |
|
|
|
|
{11, 11, 11}, {11, 11, 10}, {11, 11, 10}, {10, 12, 10}, |
|
|
|
|
{11, 11, 11}, {11, 11, 11}, {10, 11, 11}, {10, 11, 11}, |
|
|
|
|
{11, 10, 11}, {11, 11, 10}, {11, 10, 10}, {10, 10, 10}, |
|
|
|
|
{11, 11, 10}, {10, 11, 10}, {10, 11, 10}, {10, 11, 10}, |
|
|
|
|
{10, 10, 11}, {10, 10, 11}, {10, 11, 11}, {10, 11, 11}, |
|
|
|
|
{10, 10, 11}, {10, 10, 10}, {10, 10, 11}, { 9, 10, 11}, |
|
|
|
|
{11, 11, 11}, {10, 11, 11}, {10, 11, 10}, {10, 11, 11}, |
|
|
|
|
{10, 11, 11}, {10, 11, 11}, {10, 11, 11}, {10, 11, 12}, |
|
|
|
|
{10, 12, 11}, {10, 12, 11}, {10, 12, 12}, {10, 13, 12}, |
|
|
|
|
{10, 12, 11}, {10, 12, 11}, {10, 12, 12}, {10, 12, 12}, |
|
|
|
|
{10, 12, 10}, {10, 12, 11}, {10, 12, 10}, {10, 11, 11}, |
|
|
|
|
{10, 11, 11}, {10, 11, 11}, { 9, 11, 11}, { 9, 11, 12}, |
|
|
|
|
{10, 12, 11}, { 9, 12, 11}, { 9, 12, 12}, { 9, 12, 12}, |
|
|
|
|
{ 9, 12, 11}, { 9, 12, 12}, { 9, 12, 12}, { 9, 13, 12}, |
|
|
|
|
{12, 10, 11}, {11, 10, 10}, {10, 10, 11}, {10, 10, 10}, |
|
|
|
|
{11, 9, 10}, {11, 10, 10}, {10, 10, 9}, {10, 10, 9}, |
|
|
|
|
{10, 10, 10}, {10, 10, 10}, {10, 10, 10}, {10, 10, 10}, |
|
|
|
|
{10, 10, 10}, {10, 10, 9}, { 9, 10, 9}, { 9, 10, 9}, |
|
|
|
|
{10, 9, 11}, {10, 10, 10}, {10, 10, 10}, { 9, 10, 10}, |
|
|
|
|
{10, 9, 10}, {10, 9, 10}, { 9, 10, 10}, { 9, 9, 10}, |
|
|
|
|
{ 9, 10, 10}, { 9, 10, 10}, { 9, 10, 11}, { 9, 10, 11}, |
|
|
|
|
{ 9, 10, 10}, { 9, 10, 10}, { 9, 9, 10}, { 9, 10, 10}, |
|
|
|
|
{10, 11, 10}, {10, 11, 10}, {10, 11, 10}, {10, 11, 10}, |
|
|
|
|
{10, 10, 10}, {10, 10, 10}, { 9, 11, 10}, { 9, 11, 10}, |
|
|
|
|
{10, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 12}, |
|
|
|
|
{ 9, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 12}, |
|
|
|
|
{ 9, 11, 10}, { 9, 11, 11}, { 9, 12, 10}, { 9, 11, 11}, |
|
|
|
|
{ 9, 11, 11}, { 9, 11, 12}, { 9, 12, 11}, { 9, 12, 12}, |
|
|
|
|
{ 9, 12, 11}, { 9, 12, 11}, { 9, 12, 11}, { 9, 12, 12}, |
|
|
|
|
{ 9, 12, 11}, { 9, 13, 12}, { 9, 13, 12}, { 9, 12, 13}, |
|
|
|
|
{10, 11, 10}, { 9, 11, 10}, { 9, 10, 10}, { 9, 10, 10}, |
|
|
|
|
{ 9, 11, 10}, { 9, 11, 10}, { 9, 11, 10}, { 9, 11, 11}, |
|
|
|
|
{ 9, 10, 10}, { 9, 11, 10}, { 9, 10, 10}, { 9, 10, 11}, |
|
|
|
|
{ 9, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, |
|
|
|
|
{ 9, 12, 10}, { 9, 12, 10}, { 9, 11, 11}, { 9, 11, 11}, |
|
|
|
|
{ 9, 12, 11}, { 9, 12, 12}, { 9, 12, 11}, { 9, 13, 12}, |
|
|
|
|
{ 9, 11, 10}, { 9, 12, 11}, { 9, 12, 11}, { 9, 11, 12}, |
|
|
|
|
{ 9, 12, 11}, { 9, 12, 12}, { 8, 12, 11}, { 8, 12, 12}, |
|
|
|
|
{10, 9, 9}, { 9, 9, 9}, { 9, 10, 9}, { 9, 9, 9}, |
|
|
|
|
{ 9, 9, 10}, { 9, 9, 10}, { 9, 9, 9}, { 8, 9, 9}, |
|
|
|
|
{ 9, 10, 9}, { 8, 10, 9}, { 8, 10, 10}, { 8, 9, 10}, |
|
|
|
|
{ 9, 9, 9}, { 7, 8, 8}, { 8, 10, 9}, { 8, 9, 9}, |
|
|
|
|
{ 9, 11, 10}, { 9, 11, 10}, { 9, 10, 10}, { 8, 10, 11}, |
|
|
|
|
{ 9, 11, 10}, { 9, 11, 11}, { 8, 11, 11}, { 8, 11, 12}, |
|
|
|
|
{ 8, 10, 9}, { 8, 11, 10}, { 8, 11, 10}, { 8, 10, 11}, |
|
|
|
|
{ 8, 12, 11}, { 8, 12, 11}, { 8, 11, 10}, { 8, 11, 10} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static const int8_t cb1_vects[128][40]={ |
|
|
|
|