Mercurial > libavcodec.hg
annotate ra144.c @ 12197:fbf4d5b1b664 libavcodec
Remove FF_MM_SSE2/3 flags for CPUs where this is generally not faster than
regular MMX code. Examples of this are the Core1 CPU. Instead, set a new flag,
FF_MM_SSE2/3SLOW, which can be checked for particular SSE2/3 functions that
have been checked specifically on such CPUs and are actually faster than
their MMX counterparts.
In addition, use this flag to enable particular VP8 and LPC SSE2 functions
that are faster than their MMX counterparts.
Based on a patch by Loren Merritt <lorenm AT u washington edu>.
author | rbultje |
---|---|
date | Mon, 19 Jul 2010 22:38:23 +0000 |
parents | 159554445343 |
children |
rev | line source |
---|---|
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1 /* |
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
2 * Real Audio 1.0 (14.4K) |
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
3 * Copyright (c) 2003 the ffmpeg project |
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
4 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
5 * This file is part of FFmpeg. |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
6 * |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Lesser General Public |
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
9 * License as published by the Free Software Foundation; either |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
11 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
15 * Lesser General Public License for more details. |
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
16 * |
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
17 * You should have received a copy of the GNU Lesser General Public |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3036
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
3036
0b546eab515d
Update licensing information: The FSF changed postal address.
diego
parents:
2967
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
20 */ |
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
21 |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
22 #include <stdint.h> |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
23 #include "avcodec.h" |
11868
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
24 #include "celp_filters.h" |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
25 #include "ra144.h" |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
26 |
11866 | 27 const int16_t ff_gain_val_tab[256][3] = { |
7834
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
28 { 541, 956, 768}, { 877, 581, 568}, { 675,1574, 635}, {1248,1464, 668}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
29 {1246, 839, 1394}, {2560,1386, 991}, { 925, 687, 608}, {2208, 797, 1144}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
30 { 535, 832, 799}, { 762, 605, 1154}, { 832,1122, 1003}, {1180, 687, 1176}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
31 {1292, 901, 732}, {1656, 689, 896}, {1750,1248, 848}, {2284, 942, 1022}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
32 { 824,1472, 643}, { 517, 765, 512}, { 562,1816, 1522}, { 694,1826, 2700}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
33 { 704, 524, 672}, {1442, 757, 2232}, { 884, 551, 1266}, {2232,1007, 1692}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
34 { 932, 746, 777}, {1132, 822, 926}, {1226, 771, 611}, {2948,1342, 1008}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
35 {1302, 594, 1158}, {1602, 636, 1128}, {3408, 910, 1438}, {1996, 614, 575}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
36 { 665, 935, 628}, { 631,1192, 829}, { 644, 926, 1052}, { 879, 988, 1226}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
37 { 941,2768, 2772}, { 565,1344, 2304}, { 547, 628, 740}, { 639, 532, 1074}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
38 { 955,1208, 598}, {1124,1160, 900}, {1206, 899, 1242}, { 746, 533, 624}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
39 {1458,1028, 735}, {1706,1102, 692}, {1898,1018, 1004}, {2176, 988, 735}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
40 {1578, 782, 1642}, { 897, 516, 754}, {2068, 702, 1656}, {2344, 818, 1526}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
41 { 907, 652, 592}, {1056, 652, 642}, {2124,1416, 780}, {2664,1250, 727}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
42 {1894, 727, 1108}, {2196, 657, 981}, {4840, 920, 1704}, {4992,1238, 983}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
43 {2420, 909, 1094}, {2760, 935, 1032}, {2800, 612, 853}, {3068, 832, 574}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
44 { 523,1796, 923}, { 722,1916, 1382}, {1226,1542, 928}, { 758, 757, 584}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
45 { 512,1134, 577}, { 615,1276, 698}, { 574,2568, 2356}, { 993,2728, 3512}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
46 { 539, 890, 913}, { 694, 928, 1088}, { 805, 600, 1360}, {2160, 951, 3128}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
47 { 816, 950, 590}, { 955, 847, 811}, {1094, 883, 556}, {1304, 888, 604}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
48 { 863,1170, 855}, {1023, 997, 1032}, { 932,1228, 1280}, { 627, 564, 573}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
49 { 876, 900, 1448}, {1030, 857, 1792}, {1294, 953, 1758}, {1612, 854, 1714}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
50 {1090,1166, 631}, {1314,1202, 751}, {1480, 905, 795}, {1682,1016, 568}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
51 {1494,1178, 983}, { 878, 613, 526}, {1728,1446, 779}, {2136,1348, 774}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
52 { 950, 649, 939}, {1180, 703, 899}, {1236, 527, 1158}, {1450, 647, 972}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
53 {1282, 647, 707}, {1460, 663, 644}, {1614, 572, 578}, {3516,1222, 821}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
54 {2668, 729, 1682}, {3128, 585, 1502}, {3208, 733, 976}, {6800, 871, 1416}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
55 {3480, 743, 1408}, {3764, 899, 1170}, {3772, 632, 875}, {4092, 732, 638}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
56 {3112, 753, 2620}, {3372, 945, 1890}, {3768, 969, 2288}, {2016, 559, 854}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
57 {1736, 729, 787}, {1940, 686, 547}, {2140, 635, 674}, {4480,1272, 828}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
58 {3976, 592, 1666}, {4384, 621, 1388}, {4400, 801, 955}, {4656, 522, 646}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
59 {4848, 625, 1636}, {4984, 591, 874}, {5352, 535, 1001}, {11216,938, 1184}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
60 { 925,3280, 1476}, { 735,1580, 1088}, {1150,1576, 674}, { 655, 783, 528}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
61 { 527,2052, 1354}, { 782,1704, 1880}, { 578, 910, 1026}, { 692, 882, 1468}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
62 { 586, 683, 715}, { 739, 609, 717}, { 778, 773, 697}, { 922, 785, 813}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
63 { 766, 651, 984}, { 978, 596, 1030}, {1070, 757, 1080}, {1324, 687, 1178}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
64 {1108,2144, 979}, { 723, 982, 690}, { 936, 956, 527}, {1180,1002, 547}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
65 { 517,1306, 825}, { 832,1184, 974}, {1024, 957, 903}, {1262,1090, 906}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
66 {1028, 720, 649}, {1192, 679, 694}, {2468,1480, 979}, {2844,1370, 877}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
67 {1310, 835, 848}, {1508, 839, 698}, {1742,1030, 769}, {1910, 852, 573}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
68 {1280, 859, 1174}, {1584, 863, 1108}, {1686, 708, 1364}, {1942, 768, 1104}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
69 { 891, 536, 690}, {1016, 560, 663}, {2172, 870, 1348}, {2404, 999, 1170}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
70 {1890, 966, 889}, {2116, 912, 777}, {2296,1020, 714}, {4872,1844, 932}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
71 {2392, 778, 929}, {2604, 772, 744}, {2764, 957, 722}, {5832,1532, 984}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
72 {2188, 519, 1264}, {2332, 532, 922}, {5064, 995, 2412}, {2708, 571, 874}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
73 {2408, 545, 666}, {5016,1084, 875}, {5376, 983, 1196}, {5536, 979, 730}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
74 {5344, 634, 1744}, {5688, 706, 1348}, {5912, 977, 1190}, {6072, 905, 763}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
75 {6048, 582, 1526}, {11968,1013,1816}, {12864,937, 1900}, {12560,1086, 998}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
76 {1998, 684, 1884}, {2504, 633, 1992}, {1252, 567, 835}, {1478, 571, 973}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
77 {2620, 769, 1414}, {2808, 952, 1142}, {2908, 712, 1028}, {2976, 686, 741}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
78 {1462, 552, 714}, {3296, 991, 1452}, {1590, 615, 544}, {3480,1150, 824}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
79 {3212, 832, 923}, {3276, 839, 531}, {3548, 786, 852}, {3732, 764, 570}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
80 {5728, 906, 2616}, {6272, 804, 2252}, {3096, 535, 876}, {3228, 598, 649}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
81 {6536, 759, 1436}, {6648, 993, 846}, {6864, 567, 1210},{14016,1012, 1302}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
82 {3408, 548, 1098}, {7160,1008, 1742}, {7136,1000, 1182}, {7480,1032, 836}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
83 {7448, 612, 1552}, {7744, 614, 816}, {8384, 777, 1438}, {8784, 694, 786}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
84 { 882,1508, 1068}, { 597, 837, 766}, {1270, 954, 1408}, { 803, 550, 798}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
85 {1398,1308, 798}, {1848,1534, 738}, { 970, 675, 608}, {1264, 706, 684}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
86 {1716, 767, 1126}, {2108, 765, 1404}, {2236, 924, 1003}, {2472,1048, 611}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
87 { 999, 942, 963}, {1094, 857, 935}, {2936, 926, 1138}, {1934, 746, 551}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
88 {3336, 633, 1762}, {3764, 701, 1454}, {1890, 564, 636}, {4096,1126, 793}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
89 {3936, 556, 1140}, {3936, 540, 740}, {4216, 764, 874}, {8480,1328, 1014}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
90 {2184, 515, 1042}, {4432, 934, 1344}, {4784, 945, 1112}, {5016,1062, 733}, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
91 {9216,1020, 2028}, {9968, 924, 1188}, {5424, 909, 1206}, {6512, 744, 1086} |
6824 | 92 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
93 |
11866 | 94 const uint8_t ff_gain_exp_tab[256] = { |
7834
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
95 15, 15, 15, 15, 15, 16, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
96 14, 13, 14, 14, 13, 14, 13, 14, 13, 13, 13, 14, 13, 13, 14, 13, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
97 13, 13, 13, 13, 14, 13, 12, 12, 13, 13, 13, 12, 13, 13, 13, 13, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
98 13, 12, 13, 13, 12, 12, 13, 13, 13, 13, 14, 14, 13, 13, 13, 13, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
99 13, 13, 13, 12, 12, 12, 13, 13, 12, 12, 12, 13, 12, 12, 12, 12, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
100 12, 12, 12, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 12, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
101 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 13, 13, 13, 13, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
102 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
103 13, 12, 12, 11, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
104 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 11, 11, 11, 11, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
105 12, 12, 12, 12, 11, 11, 12, 12, 12, 12, 12, 13, 12, 12, 12, 13, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
106 12, 12, 13, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
107 12, 12, 11, 11, 12, 12, 12, 12, 11, 12, 11, 12, 12, 12, 12, 12, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
108 13, 13, 12, 12, 13, 13, 13, 14, 12, 13, 13, 13, 13, 13, 13, 13, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
109 11, 10, 11, 10, 11, 11, 10, 10, 11, 11, 11, 11, 10, 9, 11, 10, |
b9a26c7e64ef
Normalize triplets in gain_val_tab[][] so gain_exp_tab[] can be just an
vitor
parents:
7760
diff
changeset
|
110 12, 12, 11, 12, 12, 12, 12, 13, 11, 12, 12, 12, 13, 13, 12, 12 |
6824 | 111 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
112 |
11866 | 113 const int8_t ff_cb1_vects[128][40]={ |
6835 | 114 { |
6824 | 115 38, -4, 15, -4, 14, -13, 12, -11, -2, -6, |
116 -6, -11, -45, -16, -11, -13, -7, 6, -12, 4, | |
117 -20, 3, -16, 12, -1, 12, 46, 24, 0, 33, | |
118 -3, 9, -12, -12, -8, -7, 17, -6, 0, -2, | |
6835 | 119 }, { |
6824 | 120 60, -16, 3, -22, 10, -32, 0, -28, -17, -18, |
121 -3, -25, -37, -23, -10, 3, 2, 3, 0, 3, | |
122 -14, 0, -14, -1, 0, 2, 32, 9, -1, 25, | |
123 7, 13, -5, 13, 8, 1, 2, 8, -10, 6, | |
6835 | 124 }, { |
6824 | 125 27, -12, 28, -2, 6, -7, 15, 9, -11, 1, |
126 -13, -11, -40, 4, -29, -14, -19, -5, -23, -8, | |
127 -30, -13, -17, 0, -14, 12, 34, 20, -2, 25, | |
128 2, -16, -4, -12, 15, 16, 29, 7, 24, 10, | |
6835 | 129 }, { |
6824 | 130 49, -24, 16, -20, 2, -26, 2, -7, -25, -10, |
131 -11, -25, -32, -3, -27, 2, -8, -8, -11, -9, | |
132 -24, -17, -16, -14, -13, 2, 20, 5, -4, 17, | |
133 14, -12, 3, 13, 33, 25, 14, 23, 15, 19, | |
6835 | 134 }, { |
6824 | 135 46, -6, 21, 8, -2, -16, -5, -8, -11, 4, |
136 8, 15, -24, 4, -2, -26, -3, -16, -16, -14, | |
137 -9, -2, -1, 4, 19, 7, 36, 17, 9, 13, | |
138 0, 31, -5, -12, 7, -8, 11, -15, -13, -4, | |
6835 | 139 }, { |
6824 | 140 68, -18, 9, -9, -6, -35, -18, -25, -26, -7, |
141 10, 1, -16, -3, -1, -9, 6, -19, -4, -15, | |
142 -4, -6, 0, -8, 20, -2, 23, 2, 7, 5, | |
143 12, 35, 1, 13, 24, 0, -3, 0, -22, 4, | |
6835 | 144 }, { |
6824 | 145 35, -14, 34, 10, -10, -10, -1, 12, -20, 12, |
146 0, 15, -18, 24, -20, -27, -14, -28, -27, -27, | |
147 -20, -19, -2, -8, 5, 7, 25, 13, 5, 5, | |
148 6, 5, 2, -12, 31, 15, 23, -1, 12, 8, | |
6835 | 149 }, { |
6824 | 150 57, -26, 22, -7, -14, -28, -14, -3, -35, 0, |
151 3, 1, -11, 16, -18, -10, -4, -31, -15, -28, | |
152 -14, -23, -1, -21, 7, -2, 11, -1, 3, -1, | |
153 18, 9, 10, 13, 49, 24, 8, 14, 2, 16, | |
6835 | 154 }, { |
6824 | 155 25, 15, 22, 11, 18, 4, 15, -22, 8, -2, |
156 -17, -9, -48, -20, -30, -17, -16, 11, -1, 16, | |
157 2, 10, -5, 26, -2, -4, 22, 0, 2, 10, | |
158 -6, 13, -14, 10, -23, 0, 10, -2, 1, 0, | |
6835 | 159 }, { |
6824 | 160 47, 3, 11, -6, 15, -13, 2, -38, -6, -13, |
161 -15, -22, -40, -28, -28, 0, -5, 8, 10, 15, | |
162 7, 7, -4, 13, -1, -14, 9, -14, 0, 2, | |
163 4, 18, -7, 36, -6, 8, -3, 13, -7, 8, | |
6835 | 164 }, { |
6824 | 165 14, 7, 36, 13, 10, 10, 18, 0, 0, 5, |
166 -25, -8, -43, 0, -48, -18, -27, 0, -12, 3, | |
167 -7, -6, -7, 13, -15, -5, 11, -3, 0, 2, | |
168 0, -12, -6, 10, 0, 23, 22, 11, 26, 12, | |
6835 | 169 }, { |
6824 | 170 36, -5, 24, -4, 7, -7, 6, -17, -14, -5, |
171 -22, -22, -35, -8, -46, -1, -17, -3, 0, 2, | |
172 -2, -10, -5, 0, -14, -15, -2, -18, -2, -4, | |
173 11, -7, 1, 36, 18, 32, 7, 27, 17, 20, | |
6835 | 174 }, { |
6824 | 175 33, 13, 29, 24, 1, 1, -2, -18, 0, 9, |
176 -3, 17, -27, 0, -21, -30, -12, -11, -5, -2, | |
177 12, 4, 9, 19, 18, -9, 13, -6, 11, -8, | |
178 -2, 35, -8, 10, -7, -1, 4, -11, -10, -2, | |
6835 | 179 }, { |
6824 | 180 55, 1, 17, 6, -1, -16, -15, -35, -15, -2, |
181 0, 4, -19, -8, -20, -13, -1, -14, 7, -3, | |
182 18, 0, 10, 5, 19, -19, 0, -21, 8, -16, | |
183 9, 39, 0, 36, 10, 7, -9, 4, -20, 5, | |
6835 | 184 }, { |
6824 | 185 22, 5, 42, 26, -6, 8, 1, 2, -9, 17, |
186 -10, 18, -21, 19, -39, -31, -23, -23, -16, -15, | |
187 2, -12, 7, 6, 5, -9, 1, -10, 7, -16, | |
188 4, 9, 0, 10, 17, 22, 16, 2, 14, 9, | |
6835 | 189 }, { |
6824 | 190 44, -6, 30, 8, -9, -10, -11, -14, -23, 5, |
191 -8, 4, -14, 12, -37, -14, -12, -26, -4, -16, | |
192 8, -16, 9, -7, 6, -19, -12, -25, 5, -24, | |
193 15, 13, 8, 36, 34, 31, 1, 18, 4, 18, | |
6835 | 194 }, { |
6824 | 195 -3, -5, -9, -7, 15, -1, 5, 13, 2, 12, |
196 5, 2, -21, -23, -2, -16, 0, 5, -6, 13, | |
197 -23, 3, -32, 10, -15, 8, 44, 28, 9, 37, | |
198 -2, 13, -9, -15, -12, -27, -7, -12, 0, -11, | |
6835 | 199 }, { |
6824 | 200 18, -17, -21, -25, 11, -19, -6, -3, -11, 0, |
201 7, -11, -13, -31, -1, 0, 9, 1, 5, 12, | |
202 -18, 0, -31, -2, -13, -1, 30, 14, 7, 29, | |
203 9, 18, -1, 10, 4, -18, -22, 3, -10, -2, | |
6835 | 204 }, { |
6824 | 205 -13, -13, 3, -5, 7, 4, 9, 34, -5, 20, |
206 -2, 3, -16, -3, -20, -17, -11, -7, -17, 0, | |
207 -34, -13, -33, -2, -28, 8, 32, 24, 5, 29, | |
208 3, -12, 0, -15, 11, -3, 3, 2, 24, 1, | |
6835 | 209 }, { |
6824 | 210 8, -25, -8, -23, 3, -13, -3, 17, -20, 8, |
211 0, -10, -8, -11, -18, 0, -1, -10, -5, 0, | |
212 -28, -17, -32, -15, -26, -1, 19, 9, 3, 21, | |
213 15, -7, 6, 9, 29, 5, -10, 17, 15, 9, | |
6835 | 214 }, { |
6824 | 215 4, -6, -3, 5, -1, -4, -11, 16, -6, 23, |
216 19, 29, 0, -3, 6, -30, 3, -17, -10, -5, | |
217 -13, -2, -17, 3, 5, 3, 35, 21, 17, 17, | |
218 2, 35, -2, -15, 3, -28, -13, -21, -13, -13, | |
6835 | 219 }, { |
6824 | 220 26, -19, -15, -12, -5, -22, -24, 0, -21, 12, |
221 21, 15, 8, -11, 7, -12, 14, -20, 2, -6, | |
222 -7, -6, -16, -9, 6, -5, 21, 7, 15, 10, | |
223 13, 39, 5, 10, 20, -19, -28, -5, -22, -5, | |
6835 | 224 }, { |
6824 | 225 -5, -15, 9, 7, -9, 2, -8, 37, -14, 31, |
226 11, 29, 5, 16, -11, -30, -7, -29, -21, -18, | |
227 -23, -19, -18, -9, -7, 3, 23, 17, 14, 9, | |
228 8, 9, 6, -15, 27, -4, -2, -6, 12, -1, | |
6835 | 229 }, { |
6824 | 230 16, -27, -2, -10, -13, -16, -20, 20, -29, 20, |
231 14, 16, 13, 8, -9, -13, 2, -33, -9, -19, | |
232 -17, -23, -17, -22, -6, -6, 9, 2, 12, 2, | |
233 20, 13, 13, 10, 45, 4, -16, 8, 2, 7, | |
6835 | 234 }, { |
6824 | 235 -16, 14, -2, 8, 20, 17, 9, 2, 14, 16, |
236 -6, 5, -24, -28, -21, -20, -8, 9, 4, 25, | |
237 -1, 11, -22, 24, -15, -8, 21, 5, 11, 14, | |
238 -5, 18, -11, 7, -27, -20, -14, -7, 1, -9, | |
6835 | 239 }, { |
6824 | 240 6, 2, -14, -9, 16, -1, -3, -14, 0, 5, |
241 -3, -8, -16, -36, -19, -3, 1, 6, 17, 24, | |
242 4, 7, -21, 11, -14, -18, 7, -9, 9, 7, | |
243 6, 22, -3, 33, -10, -11, -28, 7, -7, 0, | |
6835 | 244 }, { |
6824 | 245 -26, 6, 11, 10, 12, 23, 12, 23, 5, 24, |
246 -13, 5, -19, -8, -38, -21, -20, -2, -6, 12, | |
247 -11, -5, -23, 11, -29, -9, 9, 0, 7, 6, | |
248 1, -7, -2, 7, -3, 3, -2, 6, 27, 3, | |
6835 | 249 }, { |
6824 | 250 -4, -6, 0, -7, 8, 4, 0, 6, -9, 13, |
251 -11, -7, -11, -15, -37, -4, -9, -5, 5, 11, | |
252 -5, -9, -22, -1, -27, -18, -4, -14, 5, 0, | |
253 12, -3, 4, 32, 14, 12, -17, 22, 17, 11, | |
6835 | 254 }, { |
6824 | 255 -8, 12, 3, 21, 3, 14, -8, 5, 4, 28, |
256 7, 32, -2, -8, -12, -34, -4, -12, 1, 6, | |
257 9, 4, -7, 17, 4, -13, 11, -1, 19, -4, | |
258 0, 39, -4, 7, -11, -21, -20, -16, -10, -11, | |
6835 | 259 }, { |
6824 | 260 13, 0, -8, 3, 0, -4, -21, -11, -9, 16, |
261 10, 18, 5, -16, -10, -16, 5, -15, 13, 5, | |
262 15, 1, -6, 4, 6, -23, -2, -16, 17, -12, | |
263 10, 44, 3, 33, 6, -12, -34, -1, -20, -3, | |
6835 | 264 }, { |
6824 | 265 -18, 4, 17, 23, -4, 20, -4, 26, -3, 36, |
266 0, 32, 2, 12, -29, -34, -16, -24, -10, -6, | |
267 0, -12, -8, 4, -8, -13, 0, -6, 16, -12, | |
268 5, 13, 3, 7, 13, 3, -8, -2, 14, 0, | |
6835 | 269 }, { |
6824 | 270 3, -7, 5, 5, -8, 2, -17, 9, -18, 24, |
271 2, 19, 10, 4, -28, -17, -5, -28, 2, -7, | |
272 4, -15, -7, -8, -6, -23, -13, -21, 14, -20, | |
273 17, 18, 11, 33, 30, 11, -23, 13, 5, 9, | |
6835 | 274 }, { |
6824 | 275 60, 10, 7, -1, 9, -8, 6, -13, 2, -15, |
276 -1, -10, -13, -11, 15, 0, 6, 9, -1, 0, | |
277 -13, 1, -11, -3, -13, 21, 13, 26, -7, 31, | |
278 -10, -7, -16, -33, -31, -10, 22, -8, 1, -2, | |
6835 | 279 }, { |
6824 | 280 82, -1, -4, -19, 6, -27, -6, -29, -12, -26, |
281 1, -24, -5, -18, 17, 17, 17, 6, 10, 0, | |
282 -7, -2, -9, -16, -12, 11, 0, 11, -9, 23, | |
283 0, -3, -8, -8, -13, -1, 8, 7, -7, 6, | |
6835 | 284 }, { |
6824 | 285 49, 2, 21, 0, 1, -2, 9, 8, -6, -6, |
286 -8, -10, -8, 9, -2, 0, -4, -2, -13, -12, | |
287 -23, -15, -12, -16, -26, 21, 2, 21, -11, 23, | |
288 -4, -33, -7, -33, -6, 13, 34, 5, 27, 10, | |
6835 | 289 }, { |
6824 | 290 71, -10, 9, -17, -1, -20, -3, -8, -21, -18, |
291 -6, -24, 0, 1, 0, 16, 6, -5, 0, -13, | |
292 -17, -19, -11, -29, -25, 11, -11, 6, -13, 15, | |
293 7, -29, 0, -8, 11, 22, 20, 21, 17, 18, | |
6835 | 294 }, { |
6824 | 295 67, 8, 14, 11, -7, -11, -11, -9, -7, -3, |
296 13, 16, 8, 9, 24, -12, 10, -13, -5, -17, | |
297 -2, -4, 3, -10, 6, 17, 4, 19, 0, 11, | |
298 -6, 13, -9, -33, -14, -10, 16, -17, -10, -4, | |
6835 | 299 }, { |
6824 | 300 90, -3, 2, -6, -10, -29, -24, -26, -21, -15, |
301 15, 2, 16, 1, 25, 4, 21, -16, 6, -18, | |
302 3, -8, 5, -24, 8, 7, -9, 4, -1, 3, | |
303 5, 18, -1, -7, 2, -1, 2, -1, -19, 3, | |
6835 | 304 }, { |
6824 | 305 57, 0, 27, 13, -14, -5, -7, 11, -15, 4, |
306 5, 16, 13, 29, 6, -13, 0, -25, -16, -31, | |
307 -12, -22, 2, -23, -6, 16, -7, 14, -2, 3, | |
308 0, -12, 0, -33, 9, 13, 28, -3, 14, 7, | |
6835 | 309 }, { |
6824 | 310 79, -11, 15, -4, -18, -23, -20, -5, -30, -7, |
311 7, 2, 21, 21, 8, 3, 10, -28, -4, -31, | |
312 -6, -25, 3, -37, -4, 7, -20, 0, -4, -4, | |
313 11, -7, 6, -8, 27, 22, 14, 12, 5, 16, | |
6835 | 314 }, { |
6824 | 315 47, 30, 15, 14, 14, 9, 9, -23, 13, -10, |
316 -12, -7, -16, -15, -3, -3, -1, 14, 9, 12, | |
317 9, 8, 0, 10, -14, 4, -9, 2, -5, 8, | |
318 -13, -3, -18, -10, -45, -3, 16, -4, 4, 0, | |
6835 | 319 }, { |
6824 | 320 69, 17, 3, -3, 10, -8, -3, -40, -1, -21, |
321 -10, -21, -8, -23, -1, 13, 8, 11, 21, 11, | |
322 15, 4, 0, -2, -13, -5, -23, -12, -7, 0, | |
323 -1, 0, -10, 14, -28, 5, 1, 11, -5, 7, | |
6835 | 324 }, { |
6824 | 325 36, 21, 28, 16, 6, 16, 12, -2, 4, -2, |
326 -20, -7, -11, 4, -20, -4, -12, 2, -1, 0, | |
327 0, -8, -2, -2, -27, 4, -21, -2, -9, 0, | |
328 -6, -29, -9, -10, -21, 21, 28, 10, 29, 11, | |
6835 | 329 }, { |
6824 | 330 58, 9, 16, -1, 2, -2, 0, -19, -10, -13, |
331 -17, -21, -3, -3, -19, 12, -2, 0, 10, -1, | |
332 5, -12, 0, -15, -26, -5, -34, -16, -11, -7, | |
333 4, -25, -2, 14, -3, 29, 13, 25, 20, 20, | |
6835 | 334 }, { |
6824 | 335 55, 28, 21, 27, -2, 7, -8, -20, 4, 1, |
336 1, 18, 5, 4, 5, -16, 2, -8, 5, -5, | |
337 19, 2, 14, 3, 6, 0, -18, -4, 2, -11, | |
338 -8, 18, -11, -10, -29, -3, 10, -13, -8, -3, | |
6835 | 339 }, { |
6824 | 340 77, 16, 9, 9, -6, -11, -21, -37, -10, -10, |
341 4, 5, 13, -3, 7, 0, 13, -11, 17, -6, | |
342 25, -1, 15, -9, 7, -9, -32, -19, 0, -18, | |
343 2, 22, -3, 15, -12, 5, -4, 2, -17, 5, | |
6835 | 344 }, { |
6824 | 345 44, 20, 34, 29, -10, 13, -4, 0, -4, 9, |
346 -5, 19, 10, 24, -11, -17, -8, -20, -5, -19, | |
347 9, -14, 12, -9, -6, 0, -30, -9, 0, -19, | |
348 -2, -7, -2, -10, -5, 20, 21, 1, 17, 9, | |
6835 | 349 }, { |
6824 | 350 66, 8, 23, 11, -14, -5, -17, -16, -19, -2, |
351 -3, 5, 18, 17, -10, 0, 1, -23, 6, -20, | |
352 15, -18, 14, -22, -5, -10, -44, -23, -2, -26, | |
353 9, -3, 4, 14, 12, 29, 7, 16, 7, 18, | |
6835 | 354 }, { |
6824 | 355 18, 9, -17, -4, 11, 3, 0, 11, 7, 4, |
356 10, 3, 10, -18, 24, -3, 14, 7, 4, 10, | |
357 -16, 1, -27, -4, -27, 17, 12, 30, 0, 35, | |
358 -9, -3, -12, -36, -35, -30, -2, -13, 2, -11, | |
6835 | 359 }, { |
6824 | 360 40, -2, -29, -22, 7, -14, -12, -5, -7, -7, |
361 12, -9, 18, -26, 26, 14, 24, 4, 16, 9, | |
362 -10, -2, -26, -18, -26, 7, -1, 15, -1, 27, | |
363 2, 0, -4, -11, -17, -21, -16, 1, -7, -3, | |
6835 | 364 }, { |
6824 | 365 8, 1, -3, -2, 3, 10, 3, 32, -1, 12, |
366 2, 4, 15, 1, 7, -3, 2, -4, -6, -3, | |
367 -26, -15, -29, -17, -40, 17, 0, 26, -2, 27, | |
368 -2, -29, -4, -36, -10, -6, 9, 0, 27, 0, | |
6835 | 369 }, { |
6824 | 370 30, -11, -15, -20, 0, -8, -9, 15, -15, 0, |
371 5, -9, 23, -6, 8, 13, 13, -7, 5, -3, | |
372 -20, -19, -27, -31, -39, 7, -13, 11, -4, 19, | |
373 8, -25, 3, -11, 7, 2, -4, 16, 18, 9, | |
6835 | 374 }, { |
6824 | 375 26, 7, -11, 8, -5, 1, -17, 14, -1, 15, |
376 24, 30, 32, 1, 33, -16, 18, -14, 0, -8, | |
377 -6, -4, -12, -12, -6, 13, 2, 23, 8, 15, | |
378 -4, 17, -5, -36, -18, -30, -8, -22, -10, -14, | |
6835 | 379 }, { |
6824 | 380 48, -4, -23, -9, -9, -17, -30, -2, -16, 3, |
381 26, 16, 40, -6, 35, 1, 28, -17, 12, -9, | |
382 0, -8, -11, -25, -5, 3, -10, 8, 6, 7, | |
383 6, 22, 1, -11, -1, -21, -22, -7, -19, -5, | |
6835 | 384 }, { |
6824 | 385 15, 0, 2, 10, -13, 7, -14, 35, -10, 23, |
386 16, 31, 37, 21, 16, -17, 6, -26, -10, -21, | |
387 -16, -21, -13, -25, -19, 13, -8, 19, 5, 7, | |
388 1, -8, 2, -36, 5, -6, 3, -8, 15, -1, | |
6835 | 389 }, { |
6824 | 390 37, -12, -9, -7, -17, -11, -26, 18, -25, 12, |
391 19, 17, 45, 14, 17, 0, 17, -30, 1, -22, | |
392 -10, -25, -12, -38, -18, 3, -22, 4, 3, 0, | |
393 13, -3, 10, -11, 23, 2, -10, 7, 5, 7, | |
6835 | 394 }, { |
6824 | 395 5, 29, -9, 11, 15, 22, 3, 0, 18, 8, |
396 -1, 6, 7, -23, 6, -6, 5, 12, 15, 21, | |
397 5, 8, -17, 9, -28, 0, -11, 6, 2, 12, | |
398 -11, 0, -14, -13, -49, -22, -8, -9, 4, -9, | |
6835 | 399 }, { |
6824 | 400 27, 16, -21, -6, 12, 3, -9, -16, 3, -2, |
401 1, -7, 15, -31, 7, 10, 16, 9, 27, 21, | |
402 11, 5, -16, -3, -26, -9, -24, -7, 0, 4, | |
403 0, 4, -6, 11, -32, -14, -23, 6, -5, -1, | |
6835 | 404 }, { |
6824 | 405 -4, 20, 3, 13, 8, 28, 6, 21, 10, 16, |
406 -8, 7, 12, -3, -11, -7, -5, 0, 4, 8, | |
407 -4, -8, -18, -3, -41, 0, -22, 2, 0, 4, | |
408 -5, -25, -6, -14, -25, 1, 2, 4, 29, 2, | |
6835 | 409 }, { |
6824 | 410 17, 8, -8, -4, 4, 10, -6, 5, -4, 5, |
411 -6, -6, 20, -10, -9, 9, 4, -2, 16, 7, | |
412 1, -12, -17, -16, -39, -9, -36, -12, -2, -3, | |
413 6, -21, 1, 11, -7, 10, -11, 20, 20, 11, | |
6835 | 414 }, { |
6824 | 415 13, 27, -3, 24, -1, 19, -14, 3, 9, 20, |
416 12, 33, 29, -3, 15, -20, 9, -9, 11, 3, | |
417 16, 2, -2, 2, -7, -3, -20, 0, 10, -7, | |
418 -7, 22, -7, -13, -33, -23, -14, -18, -7, -12, | |
6835 | 419 }, { |
6824 | 420 35, 15, -15, 6, -4, 1, -27, -12, -5, 8, |
421 15, 19, 37, -11, 16, -2, 20, -12, 23, 2, | |
422 22, -1, -1, -11, -5, -13, -34, -14, 8, -14, | |
423 4, 26, 0, 11, -16, -14, -29, -2, -17, -3, | |
6835 | 424 }, { |
6824 | 425 3, 19, 9, 26, -8, 26, -10, 24, 0, 28, |
426 5, 33, 34, 17, -2, -20, -1, -22, 0, -10, | |
427 6, -14, -3, -10, -20, -4, -32, -4, 7, -15, | |
428 0, -3, 0, -13, -9, 0, -3, -4, 17, 0, | |
6835 | 429 }, { |
6824 | 430 25, 7, -2, 8, -12, 7, -23, 8, -13, 16, |
431 7, 20, 42, 9, 0, -3, 9, -25, 12, -10, | |
432 12, -18, -2, -24, -19, -13, -46, -19, 5, -22, | |
433 10, 0, 8, 11, 8, 9, -17, 11, 7, 8, | |
6835 | 434 }, { |
6824 | 435 -25, -7, 2, -8, 12, -7, 23, -8, 13, -16, |
436 -7, -20, -42, -9, 0, 3, -9, 25, -12, 10, | |
437 -12, 18, 2, 24, 19, 13, 46, 19, -5, 22, | |
438 -10, 0, -8, -11, -8, -9, 17, -11, -7, -8, | |
6835 | 439 }, { |
6824 | 440 -3, -19, -9, -26, 8, -26, 10, -24, 0, -28, |
441 -5, -33, -34, -17, 2, 20, 1, 22, 0, 10, | |
442 -6, 14, 3, 10, 20, 4, 32, 4, -7, 15, | |
443 0, 3, 0, 13, 9, 0, 3, 4, -17, 0, | |
6835 | 444 }, { |
6824 | 445 -35, -15, 15, -6, 4, -1, 27, 12, 5, -8, |
446 -15, -19, -37, 11, -16, 2, -20, 12, -23, -2, | |
447 -22, 1, 1, 11, 5, 13, 34, 14, -8, 14, | |
448 -4, -26, 0, -11, 16, 14, 29, 2, 17, 3, | |
6835 | 449 }, { |
6824 | 450 -13, -27, 3, -24, 1, -19, 14, -3, -9, -20, |
451 -12, -33, -29, 3, -15, 20, -9, 9, -11, -3, | |
452 -16, -2, 2, -2, 7, 3, 20, 0, -10, 7, | |
453 7, -22, 7, 13, 33, 23, 14, 18, 7, 12, | |
6835 | 454 }, { |
6824 | 455 -17, -8, 8, 4, -4, -10, 6, -5, 4, -5, |
456 6, 6, -20, 10, 9, -9, -4, 2, -16, -7, | |
457 -1, 12, 17, 16, 39, 9, 36, 12, 2, 3, | |
458 -6, 21, -1, -11, 7, -10, 11, -20, -20, -11, | |
6835 | 459 }, { |
6824 | 460 4, -20, -3, -13, -8, -28, -6, -21, -10, -16, |
461 8, -7, -12, 3, 11, 7, 5, 0, -4, -8, | |
462 4, 8, 18, 3, 41, 0, 22, -2, 0, -4, | |
463 5, 25, 6, 14, 25, -1, -2, -4, -29, -2, | |
6835 | 464 }, { |
6824 | 465 -27, -16, 21, 6, -12, -3, 9, 16, -3, 2, |
466 -1, 7, -15, 31, -7, -10, -16, -9, -27, -21, | |
467 -11, -5, 16, 3, 26, 9, 24, 7, 0, -4, | |
468 0, -4, 6, -11, 32, 14, 23, -6, 5, 1, | |
6835 | 469 }, { |
6824 | 470 -5, -29, 9, -11, -15, -22, -3, 0, -18, -8, |
471 1, -6, -7, 23, -6, 6, -5, -12, -15, -21, | |
472 -5, -8, 17, -9, 28, 0, 11, -6, -2, -12, | |
473 11, 0, 14, 13, 49, 22, 8, 9, -4, 9, | |
6835 | 474 }, { |
6824 | 475 -37, 12, 9, 7, 17, 11, 26, -18, 25, -12, |
476 -19, -17, -45, -14, -17, 0, -17, 30, -1, 22, | |
477 10, 25, 12, 38, 18, -3, 22, -4, -3, 0, | |
478 -13, 3, -10, 11, -23, -2, 10, -7, -5, -7, | |
6835 | 479 }, { |
6824 | 480 -15, 0, -2, -10, 13, -7, 14, -35, 10, -23, |
481 -16, -31, -37, -21, -16, 17, -6, 26, 10, 21, | |
482 16, 21, 13, 25, 19, -13, 8, -19, -5, -7, | |
483 -1, 8, -2, 36, -5, 6, -3, 8, -15, 1, | |
6835 | 484 }, { |
6824 | 485 -48, 4, 23, 9, 9, 17, 30, 2, 16, -3, |
486 -26, -16, -40, 6, -35, -1, -28, 17, -12, 9, | |
487 0, 8, 11, 25, 5, -3, 10, -8, -6, -7, | |
488 -6, -22, -1, 11, 1, 21, 22, 7, 19, 5, | |
6835 | 489 }, { |
6824 | 490 -26, -7, 11, -8, 5, -1, 17, -14, 1, -15, |
491 -24, -30, -32, -1, -33, 16, -18, 14, 0, 8, | |
492 6, 4, 12, 12, 6, -13, -2, -23, -8, -15, | |
493 4, -17, 5, 36, 18, 30, 8, 22, 10, 14, | |
6835 | 494 }, { |
6824 | 495 -30, 11, 15, 20, 0, 8, 9, -15, 15, 0, |
496 -5, 9, -23, 6, -8, -13, -13, 7, -5, 3, | |
497 20, 19, 27, 31, 39, -7, 13, -11, 4, -19, | |
498 -8, 25, -3, 11, -7, -2, 4, -16, -18, -9, | |
6835 | 499 }, { |
6824 | 500 -8, -1, 3, 2, -3, -10, -3, -32, 1, -12, |
501 -2, -4, -15, -1, -7, 3, -2, 4, 6, 3, | |
502 26, 15, 29, 17, 40, -17, 0, -26, 2, -27, | |
503 2, 29, 4, 36, 10, 6, -9, 0, -27, 0, | |
6835 | 504 }, { |
6824 | 505 -40, 2, 29, 22, -7, 14, 12, 5, 7, 7, |
506 -12, 9, -18, 26, -26, -14, -24, -4, -16, -9, | |
507 10, 2, 26, 18, 26, -7, 1, -15, 1, -27, | |
508 -2, 0, 4, 11, 17, 21, 16, -1, 7, 3, | |
6835 | 509 }, { |
6824 | 510 -18, -9, 17, 4, -11, -3, 0, -11, -7, -4, |
511 -10, -3, -10, 18, -24, 3, -14, -7, -4, -10, | |
512 16, -1, 27, 4, 27, -17, -12, -30, 0, -35, | |
513 9, 3, 12, 36, 35, 30, 2, 13, -2, 11, | |
6835 | 514 }, { |
6824 | 515 -66, -8, -23, -11, 14, 5, 17, 16, 19, 2, |
516 3, -5, -18, -17, 10, 0, -1, 23, -6, 20, | |
517 -15, 18, -14, 22, 5, 10, 44, 23, 2, 26, | |
518 -9, 3, -4, -14, -12, -29, -7, -16, -7, -18, | |
6835 | 519 }, { |
6824 | 520 -44, -20, -34, -29, 10, -13, 4, 0, 4, -9, |
521 5, -19, -10, -24, 11, 17, 8, 20, 5, 19, | |
522 -9, 14, -12, 9, 6, 0, 30, 9, 0, 19, | |
523 2, 7, 2, 10, 5, -20, -21, -1, -17, -9, | |
6835 | 524 }, { |
6824 | 525 -77, -16, -9, -9, 6, 11, 21, 37, 10, 10, |
526 -4, -5, -13, 3, -7, 0, -13, 11, -17, 6, | |
527 -25, 1, -15, 9, -7, 9, 32, 19, 0, 18, | |
528 -2, -22, 3, -15, 12, -5, 4, -2, 17, -5, | |
6835 | 529 }, { |
6824 | 530 -55, -28, -21, -27, 2, -7, 8, 20, -4, -1, |
531 -1, -18, -5, -4, -5, 16, -2, 8, -5, 5, | |
532 -19, -2, -14, -3, -6, 0, 18, 4, -2, 11, | |
533 8, -18, 11, 10, 29, 3, -10, 13, 8, 3, | |
6835 | 534 }, { |
6824 | 535 -58, -9, -16, 1, -2, 2, 0, 19, 10, 13, |
536 17, 21, 3, 3, 19, -12, 2, 0, -10, 1, | |
537 -5, 12, 0, 15, 26, 5, 34, 16, 11, 7, | |
538 -4, 25, 2, -14, 3, -29, -13, -25, -20, -20, | |
6835 | 539 }, { |
6824 | 540 -36, -21, -28, -16, -6, -16, -12, 2, -4, 2, |
541 20, 7, 11, -4, 20, 4, 12, -2, 1, 0, | |
542 0, 8, 2, 2, 27, -4, 21, 2, 9, 0, | |
543 6, 29, 9, 10, 21, -21, -28, -10, -29, -11, | |
6835 | 544 }, { |
6824 | 545 -69, -17, -3, 3, -10, 8, 3, 40, 1, 21, |
546 10, 21, 8, 23, 1, -13, -8, -11, -21, -11, | |
547 -15, -4, 0, 2, 13, 5, 23, 12, 7, 0, | |
548 1, 0, 10, -14, 28, -5, -1, -11, 5, -7, | |
6835 | 549 }, { |
6824 | 550 -47, -30, -15, -14, -14, -9, -9, 23, -13, 10, |
551 12, 7, 16, 15, 3, 3, 1, -14, -9, -12, | |
552 -9, -8, 0, -10, 14, -4, 9, -2, 5, -8, | |
553 13, 3, 18, 10, 45, 3, -16, 4, -4, 0, | |
6835 | 554 }, { |
6824 | 555 -79, 11, -15, 4, 18, 23, 20, 5, 30, 7, |
556 -7, -2, -21, -21, -8, -3, -10, 28, 4, 31, | |
557 6, 25, -3, 37, 4, -7, 20, 0, 4, 4, | |
558 -11, 7, -6, 8, -27, -22, -14, -12, -5, -16, | |
6835 | 559 }, { |
6824 | 560 -57, 0, -27, -13, 14, 5, 7, -11, 15, -4, |
561 -5, -16, -13, -29, -6, 13, 0, 25, 16, 31, | |
562 12, 22, -2, 23, 6, -16, 7, -14, 2, -3, | |
563 0, 12, 0, 33, -9, -13, -28, 3, -14, -7, | |
6835 | 564 }, { |
6824 | 565 -90, 3, -2, 6, 10, 29, 24, 26, 21, 15, |
566 -15, -2, -16, -1, -25, -4, -21, 16, -6, 18, | |
567 -3, 8, -5, 24, -8, -7, 9, -4, 1, -3, | |
568 -5, -18, 1, 7, -2, 1, -2, 1, 19, -3, | |
6835 | 569 }, { |
6824 | 570 -67, -8, -14, -11, 7, 11, 11, 9, 7, 3, |
571 -13, -16, -8, -9, -24, 12, -10, 13, 5, 17, | |
572 2, 4, -3, 10, -6, -17, -4, -19, 0, -11, | |
573 6, -13, 9, 33, 14, 10, -16, 17, 10, 4, | |
6835 | 574 }, { |
6824 | 575 -71, 10, -9, 17, 1, 20, 3, 8, 21, 18, |
576 6, 24, 0, -1, 0, -16, -6, 5, 0, 13, | |
577 17, 19, 11, 29, 25, -11, 11, -6, 13, -15, | |
578 -7, 29, 0, 8, -11, -22, -20, -21, -17, -18, | |
6835 | 579 }, { |
6824 | 580 -49, -2, -21, 0, -1, 2, -9, -8, 6, 6, |
581 8, 10, 8, -9, 2, 0, 4, 2, 13, 12, | |
582 23, 15, 12, 16, 26, -21, -2, -21, 11, -23, | |
583 4, 33, 7, 33, 6, -13, -34, -5, -27, -10, | |
6835 | 584 }, { |
6824 | 585 -82, 1, 4, 19, -6, 27, 6, 29, 12, 26, |
586 -1, 24, 5, 18, -17, -17, -17, -6, -10, 0, | |
587 7, 2, 9, 16, 12, -11, 0, -11, 9, -23, | |
588 0, 3, 8, 8, 13, 1, -8, -7, 7, -6, | |
6835 | 589 }, { |
6824 | 590 -60, -10, -7, 1, -9, 8, -6, 13, -2, 15, |
591 1, 10, 13, 11, -15, 0, -6, -9, 1, 0, | |
592 13, -1, 11, 3, 13, -21, -13, -26, 7, -31, | |
593 10, 7, 16, 33, 31, 10, -22, 8, -1, 2, | |
6835 | 594 }, { |
6824 | 595 -3, 7, -5, -5, 8, -2, 17, -9, 18, -24, |
596 -2, -19, -10, -4, 28, 17, 5, 28, -2, 7, | |
597 -4, 15, 7, 8, 6, 23, 13, 21, -14, 20, | |
598 -17, -18, -11, -33, -30, -11, 23, -13, -5, -9, | |
6835 | 599 }, { |
6824 | 600 18, -4, -17, -23, 4, -20, 4, -26, 3, -36, |
601 0, -32, -2, -12, 29, 34, 16, 24, 10, 6, | |
602 0, 12, 8, -4, 8, 13, 0, 6, -16, 12, | |
603 -5, -13, -3, -7, -13, -3, 8, 2, -14, 0, | |
6835 | 604 }, { |
6824 | 605 -13, 0, 8, -3, 0, 4, 21, 11, 9, -16, |
606 -10, -18, -5, 16, 10, 16, -5, 15, -13, -5, | |
607 -15, -1, 6, -4, -6, 23, 2, 16, -17, 12, | |
608 -10, -44, -3, -33, -6, 12, 34, 1, 20, 3, | |
6835 | 609 }, { |
6824 | 610 8, -12, -3, -21, -3, -14, 8, -5, -4, -28, |
611 -7, -32, 2, 8, 12, 34, 4, 12, -1, -6, | |
612 -9, -4, 7, -17, -4, 13, -11, 1, -19, 4, | |
613 0, -39, 4, -7, 11, 21, 20, 16, 10, 11, | |
6835 | 614 }, { |
6824 | 615 4, 6, 0, 7, -8, -4, 0, -6, 9, -13, |
616 11, 7, 11, 15, 37, 4, 9, 5, -5, -11, | |
617 5, 9, 22, 1, 27, 18, 4, 14, -5, 0, | |
618 -12, 3, -4, -32, -14, -12, 17, -22, -17, -11, | |
6835 | 619 }, { |
6824 | 620 26, -6, -11, -10, -12, -23, -12, -23, -5, -24, |
621 13, -5, 19, 8, 38, 21, 20, 2, 6, -12, | |
622 11, 5, 23, -11, 29, 9, -9, 0, -7, -6, | |
623 -1, 7, 2, -7, 3, -3, 2, -6, -27, -3, | |
6835 | 624 }, { |
6824 | 625 -6, -2, 14, 9, -16, 1, 3, 14, 0, -5, |
626 3, 8, 16, 36, 19, 3, -1, -6, -17, -24, | |
627 -4, -7, 21, -11, 14, 18, -7, 9, -9, -7, | |
628 -6, -22, 3, -33, 10, 11, 28, -7, 7, 0, | |
6835 | 629 }, { |
6824 | 630 16, -14, 2, -8, -20, -17, -9, -2, -14, -16, |
631 6, -5, 24, 28, 21, 20, 8, -9, -4, -25, | |
632 1, -11, 22, -24, 15, 8, -21, -5, -11, -14, | |
633 5, -18, 11, -7, 27, 20, 14, 7, -1, 9, | |
6835 | 634 }, { |
6824 | 635 -16, 27, 2, 10, 13, 16, 20, -20, 29, -20, |
636 -14, -16, -13, -8, 9, 13, -2, 33, 9, 19, | |
637 17, 23, 17, 22, 6, 6, -9, -2, -12, -2, | |
638 -20, -13, -13, -10, -45, -4, 16, -8, -2, -7, | |
6835 | 639 }, { |
6824 | 640 5, 15, -9, -7, 9, -2, 8, -37, 14, -31, |
641 -11, -29, -5, -16, 11, 30, 7, 29, 21, 18, | |
642 23, 19, 18, 9, 7, -3, -23, -17, -14, -9, | |
643 -8, -9, -6, 15, -27, 4, 2, 6, -12, 1, | |
6835 | 644 }, { |
6824 | 645 -26, 19, 15, 12, 5, 22, 24, 0, 21, -12, |
646 -21, -15, -8, 11, -7, 12, -14, 20, -2, 6, | |
647 7, 6, 16, 9, -6, 5, -21, -7, -15, -10, | |
648 -13, -39, -5, -10, -20, 19, 28, 5, 22, 5, | |
6835 | 649 }, { |
6824 | 650 -4, 6, 3, -5, 1, 4, 11, -16, 6, -23, |
651 -19, -29, 0, 3, -6, 30, -3, 17, 10, 5, | |
652 13, 2, 17, -3, -5, -3, -35, -21, -17, -17, | |
653 -2, -35, 2, 15, -3, 28, 13, 21, 13, 13, | |
6835 | 654 }, { |
6824 | 655 -8, 25, 8, 23, -3, 13, 3, -17, 20, -8, |
656 0, 10, 8, 11, 18, 0, 1, 10, 5, 0, | |
657 28, 17, 32, 15, 26, 1, -19, -9, -3, -21, | |
658 -15, 7, -6, -9, -29, -5, 10, -17, -15, -9, | |
6835 | 659 }, { |
6824 | 660 13, 13, -3, 5, -7, -4, -9, -34, 5, -20, |
661 2, -3, 16, 3, 20, 17, 11, 7, 17, 0, | |
662 34, 13, 33, 2, 28, -8, -32, -24, -5, -29, | |
663 -3, 12, 0, 15, -11, 3, -3, -2, -24, -1, | |
6835 | 664 }, { |
6824 | 665 -18, 17, 21, 25, -11, 19, 6, 3, 11, 0, |
666 -7, 11, 13, 31, 1, 0, -9, -1, -5, -12, | |
667 18, 0, 31, 2, 13, 1, -30, -14, -7, -29, | |
668 -9, -18, 1, -10, -4, 18, 22, -3, 10, 2, | |
6835 | 669 }, { |
6824 | 670 3, 5, 9, 7, -15, 1, -5, -13, -2, -12, |
671 -5, -2, 21, 23, 2, 16, 0, -5, 6, -13, | |
672 23, -3, 32, -10, 15, -8, -44, -28, -9, -37, | |
673 2, -13, 9, 15, 12, 27, 7, 12, 0, 11, | |
6835 | 674 }, { |
6824 | 675 -44, 6, -30, -8, 9, 10, 11, 14, 23, -5, |
676 8, -4, 14, -12, 37, 14, 12, 26, 4, 16, | |
677 -8, 16, -9, 7, -6, 19, 12, 25, -5, 24, | |
678 -15, -13, -8, -36, -34, -31, -1, -18, -4, -18, | |
6835 | 679 }, { |
6824 | 680 -22, -5, -42, -26, 6, -8, -1, -2, 9, -17, |
681 10, -18, 21, -19, 39, 31, 23, 23, 16, 15, | |
682 -2, 12, -7, -6, -5, 9, -1, 10, -7, 16, | |
683 -4, -9, 0, -10, -17, -22, -16, -2, -14, -9, | |
6835 | 684 }, { |
6824 | 685 -55, -1, -17, -6, 1, 16, 15, 35, 15, 2, |
686 0, -4, 19, 8, 20, 13, 1, 14, -7, 3, | |
687 -18, 0, -10, -5, -19, 19, 0, 21, -8, 16, | |
688 -9, -39, 0, -36, -10, -7, 9, -4, 20, -5, | |
6835 | 689 }, { |
6824 | 690 -33, -13, -29, -24, -1, -1, 2, 18, 0, -9, |
691 3, -17, 27, 0, 21, 30, 12, 11, 5, 2, | |
692 -12, -4, -9, -19, -18, 9, -13, 6, -11, 8, | |
693 2, -35, 8, -10, 7, 1, -4, 11, 10, 2, | |
6835 | 694 }, { |
6824 | 695 -36, 5, -24, 4, -7, 7, -6, 17, 14, 5, |
696 22, 22, 35, 8, 46, 1, 17, 3, 0, -2, | |
697 2, 10, 5, 0, 14, 15, 2, 18, 2, 4, | |
698 -11, 7, -1, -36, -18, -32, -7, -27, -17, -20, | |
6835 | 699 }, { |
6824 | 700 -14, -7, -36, -13, -10, -10, -18, 0, 0, -5, |
701 25, 8, 43, 0, 48, 18, 27, 0, 12, -3, | |
702 7, 6, 7, -13, 15, 5, -11, 3, 0, -2, | |
703 0, 12, 6, -10, 0, -23, -22, -11, -26, -12, | |
6835 | 704 }, { |
6824 | 705 -47, -3, -11, 6, -15, 13, -2, 38, 6, 13, |
706 15, 22, 40, 28, 28, 0, 5, -8, -10, -15, | |
707 -7, -7, 4, -13, 1, 14, -9, 14, 0, -2, | |
708 -4, -18, 7, -36, 6, -8, 3, -13, 7, -8, | |
6835 | 709 }, { |
6824 | 710 -25, -15, -22, -11, -18, -4, -15, 22, -8, 2, |
711 17, 9, 48, 20, 30, 17, 16, -11, 1, -16, | |
712 -2, -10, 5, -26, 2, 4, -22, 0, -2, -10, | |
713 6, -13, 14, -10, 23, 0, -10, 2, -1, 0, | |
6835 | 714 }, { |
6824 | 715 -57, 26, -22, 7, 14, 28, 14, 3, 35, 0, |
716 -3, -1, 11, -16, 18, 10, 4, 31, 15, 28, | |
717 14, 23, 1, 21, -7, 2, -11, 1, -3, 1, | |
718 -18, -9, -10, -13, -49, -24, -8, -14, -2, -16, | |
6835 | 719 }, { |
6824 | 720 -35, 14, -34, -10, 10, 10, 1, -12, 20, -12, |
721 0, -15, 18, -24, 20, 27, 14, 28, 27, 27, | |
722 20, 19, 2, 8, -5, -7, -25, -13, -5, -5, | |
723 -6, -5, -2, 12, -31, -15, -23, 1, -12, -8, | |
6835 | 724 }, { |
6824 | 725 -68, 18, -9, 9, 6, 35, 18, 25, 26, 7, |
726 -10, -1, 16, 3, 1, 9, -6, 19, 4, 15, | |
727 4, 6, 0, 8, -20, 2, -23, -2, -7, -5, | |
728 -12, -35, -1, -13, -24, 0, 3, 0, 22, -4, | |
6835 | 729 }, { |
6824 | 730 -46, 6, -21, -8, 2, 16, 5, 8, 11, -4, |
731 -8, -15, 24, -4, 2, 26, 3, 16, 16, 14, | |
732 9, 2, 1, -4, -19, -7, -36, -17, -9, -13, | |
733 0, -31, 5, 12, -7, 8, -11, 15, 13, 4, | |
6835 | 734 }, { |
6824 | 735 -49, 24, -16, 20, -2, 26, -2, 7, 25, 10, |
736 11, 25, 32, 3, 27, -2, 8, 8, 11, 9, | |
737 24, 17, 16, 14, 13, -2, -20, -5, 4, -17, | |
738 -14, 12, -3, -13, -33, -25, -14, -23, -15, -19, | |
6835 | 739 }, { |
6824 | 740 -27, 12, -28, 2, -6, 7, -15, -9, 11, -1, |
741 13, 11, 40, -4, 29, 14, 19, 5, 23, 8, | |
742 30, 13, 17, 0, 14, -12, -34, -20, 2, -25, | |
743 -2, 16, 4, 12, -15, -16, -29, -7, -24, -10, | |
6835 | 744 }, { |
6824 | 745 -60, 16, -3, 22, -10, 32, 0, 28, 17, 18, |
746 3, 25, 37, 23, 10, -3, -2, -3, 0, -3, | |
747 14, 0, 14, 1, 0, -2, -32, -9, 1, -25, | |
748 -7, -13, 5, -13, -8, -1, -2, -8, 10, -6, | |
6835 | 749 }, { |
6824 | 750 -38, 4, -15, 4, -14, 13, -12, 11, 2, 6, |
751 6, 11, 45, 16, 11, 13, 7, -6, 12, -4, | |
752 20, -3, 16, -12, 1, -12, -46, -24, 0, -33, | |
753 3, -9, 12, 12, 8, 7, -17, 6, 0, 2 | |
6835 | 754 } |
6824 | 755 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
756 |
11866 | 757 const int8_t ff_cb2_vects[128][40]={ |
6835 | 758 { |
6824 | 759 73, -32, -60, -15, -26, 59, 2, -33, 30, -10, |
760 -3, -17, 8, 30, -1, -26, -4, -22, 10, 16, | |
761 -36, -5, -11, 56, 37, 6, -10, -5, -13, -3, | |
762 6, -5, 11, 4, -19, -5, -16, 41, 24, 13, | |
6835 | 763 }, { |
6824 | 764 4, -11, -37, 23, -5, 46, -2, -29, -5, -39, |
765 -21, -9, 0, 49, 12, -9, -16, -26, 22, 15, | |
766 -45, -20, -5, 40, 22, 17, -26, 31, -14, 2, | |
767 -14, 10, 30, 20, -27, -9, -39, 39, 18, 5, | |
6835 | 768 }, { |
6824 | 769 34, -25, -48, -28, -11, 34, -2, -41, 9, -7, |
770 -17, 21, 20, 24, -17, -33, 0, -24, 10, 42, | |
771 3, -5, 10, 42, 11, 8, -3, 3, 16, 9, | |
772 22, -2, 0, -33, -10, 18, 7, 58, 10, 28, | |
6835 | 773 }, { |
6824 | 774 -34, -4, -25, 10, 9, 21, -7, -36, -26, -36, |
775 -35, 28, 12, 42, -3, -16, -12, -28, 21, 42, | |
776 -5, -21, 16, 26, -4, 19, -19, 39, 15, 15, | |
777 1, 13, 19, -17, -17, 14, -15, 55, 4, 19, | |
6835 | 778 }, { |
6824 | 779 28, -20, -51, -14, -6, 7, 0, -26, 27, -4, |
780 18, -40, -6, 16, -1, -15, 0, -55, -5, -16, | |
781 -19, 14, -3, 49, 14, 1, -22, -30, -12, 0, | |
782 24, 15, 9, -17, -45, -29, 4, 28, 51, 35, | |
6835 | 783 }, { |
6824 | 784 -40, 0, -28, 24, 14, -5, -4, -21, -7, -33, |
785 0, -32, -15, 35, 12, 1, -11, -58, 5, -16, | |
786 -28, 0, 1, 33, 0, 11, -39, 5, -14, 6, | |
787 3, 31, 28, -1, -53, -33, -19, 25, 46, 26, | |
6835 | 788 }, { |
6824 | 789 -11, -14, -39, -27, 9, -17, -4, -33, 6, 0, |
790 4, -1, 5, 10, -17, -22, 5, -57, -5, 9, | |
791 20, 13, 18, 35, -11, 3, -16, -22, 17, 13, | |
792 40, 19, -1, -55, -35, -5, 27, 44, 37, 49, | |
6835 | 793 }, { |
6824 | 794 -80, 6, -16, 11, 30, -30, -9, -28, -28, -29, |
795 -13, 6, -2, 28, -3, -5, -7, -60, 5, 9, | |
796 11, -1, 24, 19, -27, 13, -32, 13, 15, 19, | |
797 19, 35, 17, -39, -43, -9, 4, 42, 32, 41, | |
6835 | 798 }, { |
6824 | 799 78, -21, -43, 4, -38, 17, 17, -5, 55, 24, |
800 -15, -36, 14, 4, 24, -24, 12, 5, 17, 31, | |
801 -54, -5, -2, 27, 43, -12, 2, 9, -9, -15, | |
802 22, -3, 28, 21, -20, 3, 20, 28, 9, -5, | |
6835 | 803 }, { |
6824 | 804 9, -1, -20, 43, -17, 3, 12, 0, 20, -4, |
805 -33, -29, 6, 22, 38, -7, 0, 1, 29, 30, | |
806 -63, -21, 3, 11, 27, -1, -14, 45, -10, -9, | |
807 1, 12, 47, 37, -28, 0, -2, 26, 4, -13, | |
6835 | 808 }, { |
6824 | 809 39, -14, -30, -8, -22, -8, 12, -12, 34, 27, |
810 -29, 2, 26, -2, 8, -31, 16, 3, 17, 57, | |
811 -14, -6, 19, 13, 16, -10, 8, 17, 20, -2, | |
812 38, 0, 17, -16, -11, 27, 44, 45, -4, 8, | |
6835 | 813 }, { |
6824 | 814 -29, 5, -7, 30, -1, -21, 7, -7, 0, 0, |
815 -47, 9, 18, 15, 22, -14, 4, 0, 28, 57, | |
816 -23, -21, 25, -2, 1, 0, -7, 53, 19, 3, | |
817 17, 15, 36, 0, -19, 24, 21, 43, -9, 0, | |
6835 | 818 }, { |
6824 | 819 33, -10, -34, 5, -17, -35, 15, 1, 53, 30, |
820 6, -59, 0, -10, 24, -13, 17, -27, 1, -1, | |
821 -37, 13, 4, 20, 20, -18, -10, -16, -8, -11, | |
822 39, 18, 26, 0, -46, -20, 41, 15, 37, 15, | |
6835 | 823 }, { |
6824 | 824 -35, 10, -11, 44, 3, -48, 10, 6, 17, 2, |
825 -11, -51, -8, 8, 38, 3, 4, -31, 12, -2, | |
826 -46, -1, 10, 4, 5, -7, -26, 19, -10, -5, | |
827 18, 34, 45, 15, -54, -24, 18, 13, 31, 7, | |
6835 | 828 }, { |
6824 | 829 -5, -3, -21, -7, -2, -60, 10, -5, 32, 34, |
830 -7, -20, 11, -16, 8, -20, 21, -29, 1, 24, | |
831 2, 13, 27, 6, -5, -15, -3, -8, 21, 1, | |
832 55, 21, 15, -38, -37, 3, 65, 32, 23, 30, | |
6835 | 833 }, { |
6824 | 834 -74, 17, 0, 31, 18, -73, 5, 0, -3, 5, |
835 -25, -12, 3, 1, 22, -3, 9, -33, 12, 24, | |
836 -6, -2, 33, -9, -21, -5, -20, 27, 19, 7, | |
837 34, 37, 34, -22, -44, 0, 41, 29, 17, 21, | |
6835 | 838 }, { |
6824 | 839 76, -35, -31, -28, -49, 43, -40, 0, 29, -14, |
840 8, 5, 10, 18, -26, -46, 0, 7, 6, 3, | |
841 -25, -7, -2, 40, 28, 14, 18, -3, -27, -28, | |
842 -8, -45, -13, 34, -13, -27, -15, 31, 12, 3, | |
6835 | 843 }, { |
6824 | 844 7, -15, -9, 9, -28, 29, -45, 5, -6, -43, |
845 -9, 12, 2, 36, -12, -30, -11, 3, 17, 3, | |
846 -34, -22, 3, 24, 12, 24, 2, 32, -28, -22, | |
847 -29, -29, 5, 50, -21, -31, -38, 29, 7, -5, | |
6835 | 848 }, { |
6824 | 849 36, -29, -19, -41, -34, 18, -45, -6, 8, -10, |
850 -5, 43, 23, 11, -42, -53, 5, 5, 6, 30, | |
851 14, -8, 20, 26, 1, 16, 25, 4, 3, -15, | |
852 7, -41, -23, -3, -4, -3, 8, 48, -1, 17, | |
6835 | 853 }, { |
6824 | 854 -32, -8, 3, -2, -13, 4, -50, -1, -27, -39, |
855 -23, 51, 15, 30, -27, -37, -7, 1, 17, 29, | |
856 5, -23, 25, 10, -14, 26, 8, 41, 1, -9, | |
857 -13, -26, -5, 12, -12, -7, -14, 45, -6, 9, | |
6835 | 858 }, { |
6824 | 859 31, -24, -23, -27, -29, -9, -43, 8, 26, -7, |
860 30, -17, -4, 3, -26, -35, 5, -24, -10, -28, | |
861 -9, 12, 5, 33, 5, 8, 5, -29, -26, -24, | |
862 9, -23, -14, 12, -39, -52, 5, 18, 39, 24, | |
6835 | 863 }, { |
6824 | 864 -37, -3, 0, 10, -7, -22, -48, 12, -8, -36, |
865 12, -9, -12, 22, -12, -19, -6, -28, 0, -29, | |
866 -18, -3, 11, 17, -10, 18, -10, 7, -27, -18, | |
867 -11, -7, 3, 28, -47, -55, -18, 15, 34, 16, | |
6835 | 868 }, { |
6824 | 869 -8, -17, -10, -40, -13, -34, -47, 0, 5, -4, |
870 16, 21, 8, -2, -42, -43, 10, -26, -10, -2, | |
871 31, 11, 27, 19, -21, 10, 12, -20, 3, -11, | |
872 25, -20, -25, -25, -29, -28, 28, 34, 25, 38, | |
6835 | 873 }, { |
6824 | 874 -77, 2, 11, -1, 7, -47, -52, 5, -29, -33, |
875 -1, 28, 0, 15, -28, -26, -2, -30, 0, -2, | |
876 22, -4, 33, 3, -36, 21, -3, 15, 2, -5, | |
877 4, -4, -6, -9, -37, -31, 5, 32, 20, 30, | |
6835 | 878 }, { |
6824 | 879 81, -25, -14, -8, -61, 0, -25, 28, 54, 20, |
880 -3, -14, 17, -8, 0, -44, 16, 35, 13, 18, | |
881 -43, -7, 6, 11, 33, -4, 30, 11, -22, -40, | |
882 6, -43, 3, 50, -14, -18, 22, 18, -1, -16, | |
6835 | 883 }, { |
6824 | 884 12, -4, 8, 29, -39, -12, -30, 33, 19, -8, |
885 -21, -6, 8, 9, 13, -28, 4, 31, 24, 18, | |
886 -52, -23, 12, -4, 18, 5, 14, 47, -24, -34, | |
887 -14, -27, 22, 66, -22, -22, -1, 16, -6, -24, | |
6835 | 888 }, { |
6824 | 889 41, -18, -2, -21, -45, -24, -30, 21, 33, 24, |
890 -17, 24, 29, -15, -16, -51, 21, 33, 13, 45, | |
891 -3, -8, 28, -2, 7, -2, 37, 19, 7, -27, | |
892 22, -39, -7, 12, -5, 5, 45, 35, -15, -1, | |
6835 | 893 }, { |
6824 | 894 -27, 1, 20, 17, -24, -38, -35, 26, -1, -4, |
895 -35, 32, 21, 3, -2, -35, 8, 29, 24, 44, | |
896 -12, -24, 34, -18, -8, 7, 21, 55, 5, -21, | |
897 2, -23, 11, 28, -13, 1, 22, 33, -21, -10, | |
6835 | 898 }, { |
6824 | 899 36, -13, -5, -7, -40, -51, -28, 36, 52, 27, |
900 18, -36, 2, -22, 0, -33, 21, 2, -3, -13, | |
901 -26, 11, 14, 4, 10, -10, 18, -14, -22, -36, | |
902 24, -21, 1, 28, -40, -42, 42, 5, 25, 5, | |
6835 | 903 }, { |
6824 | 904 -32, 6, 17, 31, -19, -65, -33, 41, 16, -1, |
905 0, -29, -6, -4, 13, -17, 9, -1, 8, -14, | |
906 -35, -3, 19, -11, -4, 0, 1, 21, -23, -30, | |
907 3, -5, 20, 44, -48, -46, 19, 3, 20, -3, | |
6835 | 908 }, { |
6824 | 909 -3, -7, 6, -20, -25, -77, -32, 29, 31, 30, |
910 4, 2, 14, -29, -16, -40, 26, 0, -3, 12, | |
911 13, 10, 36, -9, -15, -8, 24, -6, 7, -22, | |
912 40, -17, -8, -9, -31, -18, 66, 22, 11, 19, | |
6835 | 913 }, { |
6824 | 914 -72, 13, 29, 18, -4, -90, -37, 34, -4, 1, |
915 -13, 9, 6, -11, -2, -24, 13, -3, 7, 11, | |
916 4, -4, 42, -25, -31, 1, 8, 29, 6, -17, | |
917 19, -2, 10, 6, -38, -22, 42, 19, 6, 11, | |
6835 | 918 }, { |
6824 | 919 116, -20, -68, -30, -28, 83, 28, -18, 32, -22, |
920 -13, -21, 5, 28, 5, -7, -24, -8, -22, 17, | |
921 -23, 30, -25, 45, 15, -9, -11, -18, 22, -10, | |
922 4, -2, 19, -12, 23, 3, -43, 2, 12, -4, | |
6835 | 923 }, { |
6824 | 924 47, 0, -45, 7, -7, 69, 23, -13, -2, -51, |
925 -32, -14, -3, 47, 19, 8, -37, -11, -10, 16, | |
926 -32, 15, -19, 29, 0, 1, -28, 18, 20, -4, | |
927 -16, 13, 38, 3, 15, 0, -66, 0, 7, -13, | |
6835 | 928 }, { |
6824 | 929 77, -13, -56, -43, -13, 57, 23, -26, 11, -19, |
930 -27, 16, 17, 22, -10, -15, -19, -10, -22, 43, | |
931 16, 30, -2, 31, -11, -6, -5, -9, 52, 2, | |
932 20, 0, 8, -50, 33, 27, -19, 19, -1, 9, | |
6835 | 933 }, { |
6824 | 934 8, 6, -33, -4, 7, 44, 18, -21, -23, -48, |
935 -46, 24, 9, 40, 3, 1, -32, -13, -11, 43, | |
936 7, 14, 3, 15, -26, 3, -21, 26, 50, 8, | |
937 0, 16, 27, -34, 25, 23, -43, 17, -6, 1, | |
6835 | 938 }, { |
6824 | 939 71, -9, -59, -29, -8, 30, 26, -11, 30, -16, |
940 8, -44, -9, 14, 5, 2, -19, -40, -38, -15, | |
941 -7, 50, -17, 38, -7, -14, -24, -43, 22, -6, | |
942 22, 19, 17, -34, -2, -20, -23, -10, 39, 16, | |
6835 | 943 }, { |
6824 | 944 2, 11, -36, 9, 13, 17, 21, -6, -5, -45, |
945 -10, -36, -18, 33, 19, 19, -31, -44, -27, -15, | |
946 -16, 34, -11, 22, -22, -4, -40, -7, 21, 0, | |
947 1, 35, 36, -18, -10, -24, -46, -12, 34, 8, | |
6835 | 948 }, { |
6824 | 949 32, -2, -47, -42, 7, 5, 21, -18, 9, -12, |
950 -5, -5, 2, 8, -10, -4, -14, -42, -38, 10, | |
951 33, 49, 5, 24, -33, -12, -17, -35, 52, 6, | |
952 38, 22, 7, -72, 7, 3, 0, 6, 25, 30, | |
6835 | 953 }, { |
6824 | 954 -36, 18, -24, -3, 28, -7, 16, -13, -26, -41, |
955 -24, 1, -5, 26, 3, 12, -27, -46, -27, 10, | |
956 24, 34, 10, 8, -49, -2, -34, 0, 51, 12, | |
957 17, 38, 25, -56, 0, 0, -22, 3, 20, 22, | |
6835 | 958 }, { |
6824 | 959 121, -9, -50, -10, -40, 40, 43, 9, 58, 12, |
960 -25, -41, 11, 2, 31, -5, -8, 19, -15, 32, | |
961 -41, 30, -16, 16, 20, -28, 0, -3, 26, -22, | |
962 19, 0, 36, 4, 22, 12, -6, -9, -1, -24, | |
6835 | 963 }, { |
6824 | 964 52, 10, -27, 27, -18, 26, 38, 14, 23, -16, |
965 -44, -33, 3, 20, 45, 10, -20, 15, -3, 31, | |
966 -50, 14, -10, 0, 5, -17, -15, 32, 24, -16, | |
967 -1, 15, 55, 20, 14, 8, -29, -12, -7, -32, | |
6835 | 968 }, { |
6824 | 969 82, -3, -38, -23, -24, 15, 38, 2, 37, 15, |
970 -39, -2, 23, -4, 15, -12, -3, 17, -15, 58, | |
971 -1, 29, 6, 2, -5, -26, 7, 4, 56, -9, | |
972 35, 3, 25, -33, 32, 36, 17, 7, -15, -9, | |
6835 | 973 }, { |
6824 | 974 13, 17, -15, 15, -3, 1, 33, 7, 1, -12, |
975 -58, 5, 15, 13, 29, 3, -16, 13, -4, 57, | |
976 -10, 13, 11, -13, -21, -15, -9, 40, 55, -3, | |
977 14, 19, 44, -17, 24, 32, -5, 4, -21, -18, | |
6835 | 978 }, { |
6824 | 979 76, 1, -41, -9, -19, -12, 41, 17, 55, 18, |
980 -3, -63, -3, -12, 30, 5, -3, -12, -31, 0, | |
981 -24, 49, -8, 9, -1, -33, -12, -29, 27, -18, | |
982 37, 21, 34, -17, -3, -11, 14, -23, 25, -2, | |
6835 | 983 }, { |
6824 | 984 7, 22, -18, 29, 1, -25, 36, 21, 20, -9, |
985 -22, -56, -11, 6, 45, 21, -15, -16, -20, -1, | |
986 -33, 34, -2, -6, -17, -23, -28, 6, 25, -12, | |
987 16, 37, 53, -1, -11, -15, -8, -25, 20, -11, | |
6835 | 988 }, { |
6824 | 989 37, 8, -29, -22, -4, -37, 36, 9, 34, 22, |
990 -17, -24, 8, -18, 15, -2, 1, -14, -31, 25, | |
991 15, 48, 13, -4, -28, -31, -5, -21, 57, -4, | |
992 53, 24, 23, -55, 6, 12, 37, -6, 11, 11, | |
6835 | 993 }, { |
6824 | 994 -31, 28, -6, 16, 16, -50, 31, 14, 0, -6, |
995 -36, -17, 0, 0, 29, 14, -11, -18, -20, 25, | |
996 6, 33, 19, -20, -43, -21, -21, 14, 55, 0, | |
997 32, 40, 42, -39, -1, 8, 14, -8, 6, 3, | |
6835 | 998 }, { |
6824 | 999 119, -24, -39, -44, -51, 66, -14, 15, 31, -26, |
1000 -1, 0, 7, 16, -19, -28, -19, 22, -26, 4, | |
1001 -13, 28, -16, 29, 5, -1, 16, -16, 8, -35, | |
1002 -10, -42, -4, 17, 29, -19, -42, -7, 0, -15, | |
6835 | 1003 }, { |
6824 | 1004 50, -3, -16, -5, -30, 53, -19, 20, -3, -55, |
1005 -19, 8, 0, 34, -5, -11, -32, 18, -15, 4, | |
1006 -22, 13, -10, 13, -9, 8, 0, 19, 7, -29, | |
1007 -31, -26, 13, 33, 21, -22, -65, -9, -4, -23, | |
6835 | 1008 }, { |
6824 | 1009 79, -17, -27, -56, -36, 41, -19, 8, 10, -22, |
1010 -15, 39, 20, 9, -35, -35, -15, 20, -26, 31, | |
1011 26, 27, 6, 15, -20, 0, 23, -8, 38, -22, | |
1012 5, -38, -15, -20, 39, 4, -18, 9, -13, -1, | |
6835 | 1013 }, { |
6824 | 1014 10, 3, -4, -18, -15, 27, -24, 13, -24, -51, |
1015 -34, 47, 12, 28, -21, -19, -27, 16, -15, 30, | |
1016 17, 12, 12, 0, -36, 10, 7, 27, 37, -16, | |
1017 -15, -22, 3, -4, 31, 1, -42, 7, -18, -9, | |
6835 | 1018 }, { |
6824 | 1019 74, -12, -30, -42, -30, 14, -16, 23, 29, -19, |
1020 20, -21, -7, 1, -19, -17, -14, -10, -43, -27, | |
1021 3, 48, -8, 22, -16, -7, 4, -42, 9, -31, | |
1022 6, -20, -6, -4, 3, -43, -22, -20, 28, 5, | |
6835 | 1023 }, { |
6824 | 1024 5, 7, -7, -4, -9, 0, -21, 28, -6, -48, |
1025 2, -14, -15, 20, -5, 0, -27, -14, -32, -28, | |
1026 -5, 32, -2, 6, -32, 3, -12, -5, 8, -25, | |
1027 -14, -4, 12, 11, -4, -47, -45, -22, 22, -2, | |
6835 | 1028 }, { |
6824 | 1029 34, -6, -18, -55, -15, -11, -21, 16, 8, -16, |
1030 6, 16, 5, -4, -35, -24, -10, -12, -43, -1, | |
1031 43, 47, 14, 8, -43, -5, 10, -34, 39, -18, | |
1032 22, -16, -17, -42, 13, -19, 1, -3, 14, 20, | |
6835 | 1033 }, { |
6824 | 1034 -34, 14, 4, -17, 5, -24, -26, 20, -27, -45, |
1035 -12, 24, -2, 13, -21, -8, -22, -16, -32, -2, | |
1036 34, 31, 20, -7, -58, 5, -5, 2, 38, -12, | |
1037 2, -1, 1, -26, 5, -23, -21, -6, 8, 11, | |
6835 | 1038 }, { |
6824 | 1039 124, -13, -21, -23, -62, 23, 0, 43, 57, 8, |
1040 -13, -18, 14, -10, 6, -26, -3, 49, -19, 19, | |
1041 -31, 27, -7, 0, 11, -20, 29, -1, 12, -47, | |
1042 4, -39, 11, 34, 28, -9, -5, -19, -13, -34, | |
6835 | 1043 }, { |
6824 | 1044 55, 6, 1, 14, -41, 10, -4, 48, 22, -20, |
1045 -31, -10, 5, 7, 20, -9, -16, 45, -8, 19, | |
1046 -40, 12, -1, -15, -4, -10, 12, 34, 11, -41, | |
1047 -16, -24, 30, 49, 20, -13, -28, -22, -18, -43, | |
6835 | 1048 }, { |
6824 | 1049 84, -6, -9, -36, -47, -1, -4, 36, 36, 12, |
1050 -27, 20, 26, -17, -9, -33, 1, 47, -19, 46, | |
1051 9, 27, 15, -13, -15, -18, 35, 6, 42, -33, | |
1052 20, -36, 1, -4, 38, 14, 18, -2, -27, -20, | |
6835 | 1053 }, { |
6824 | 1054 15, 13, 13, 1, -26, -14, -9, 41, 1, -16, |
1055 -46, 27, 18, 1, 4, -16, -11, 43, -8, 45, | |
1056 0, 11, 21, -29, -30, -8, 19, 42, 41, -28, | |
1057 0, -20, 20, 11, 30, 10, -4, -5, -32, -28, | |
6835 | 1058 }, { |
6824 | 1059 79, -2, -12, -22, -42, -28, -1, 51, 54, 15, |
1060 8, -41, 0, -24, 6, -15, 1, 17, -36, -12, | |
1061 -14, 47, 0, -6, -11, -26, 16, -27, 13, -43, | |
1062 22, -18, 10, 12, 2, -34, 15, -33, 13, -13, | |
6835 | 1063 }, { |
6824 | 1064 10, 18, 10, 15, -21, -41, -6, 56, 19, -13, |
1065 -9, -33, -9, -6, 20, 1, -11, 13, -24, -13, | |
1066 -23, 32, 6, -22, -26, -15, 0, 8, 12, -37, | |
1067 1, -2, 28, 27, -5, -37, -7, -35, 8, -21, | |
6835 | 1068 }, { |
6824 | 1069 39, 4, 0, -35, -27, -53, -6, 44, 33, 18, |
1070 -5, -2, 11, -31, -9, -22, 6, 15, -36, 13, | |
1071 25, 46, 23, -20, -37, -24, 23, -19, 43, -29, | |
1072 38, -14, 0, -26, 12, -10, 38, -16, 0, 0, | |
6835 | 1073 }, { |
6824 | 1074 -29, 25, 22, 2, -6, -67, -11, 49, -1, -10, |
1075 -24, 5, 3, -13, 4, -5, -6, 11, -25, 12, | |
1076 16, 31, 28, -36, -53, -13, 6, 16, 42, -24, | |
1077 17, 1, 18, -10, 4, -13, 15, -18, -5, -7, | |
6835 | 1078 }, { |
6824 | 1079 29, -25, -22, -2, 6, 67, 11, -49, 1, 10, |
1080 24, -5, -3, 13, -4, 5, 6, -11, 25, -12, | |
1081 -16, -31, -28, 36, 53, 13, -6, -16, -42, 24, | |
1082 -17, -1, -18, 10, -4, 13, -15, 18, 5, 7, | |
6835 | 1083 }, { |
6824 | 1084 -39, -4, 0, 35, 27, 53, 6, -44, -33, -18, |
1085 5, 2, -11, 31, 9, 22, -6, -15, 36, -13, | |
1086 -25, -46, -23, 20, 37, 24, -23, 19, -43, 29, | |
1087 -38, 14, 0, 26, -12, 10, -38, 16, 0, 0, | |
6835 | 1088 }, { |
6824 | 1089 -10, -18, -10, -15, 21, 41, 6, -56, -19, 13, |
1090 9, 33, 9, 6, -20, -1, 11, -13, 24, 13, | |
1091 23, -32, -6, 22, 26, 15, 0, -8, -12, 37, | |
1092 -1, 2, -28, -27, 5, 37, 7, 35, -8, 21, | |
6835 | 1093 }, { |
6824 | 1094 -79, 2, 12, 22, 42, 28, 1, -51, -54, -15, |
1095 -8, 41, 0, 24, -6, 15, -1, -17, 36, 12, | |
1096 14, -47, 0, 6, 11, 26, -16, 27, -13, 43, | |
1097 -22, 18, -10, -12, -2, 34, -15, 33, -13, 13, | |
6835 | 1098 }, { |
6824 | 1099 -15, -13, -13, -1, 26, 14, 9, -41, -1, 16, |
1100 46, -27, -18, -1, -4, 16, 11, -43, 8, -45, | |
1101 0, -11, -21, 29, 30, 8, -19, -42, -41, 28, | |
1102 0, 20, -20, -11, -30, -10, 4, 5, 32, 28, | |
6835 | 1103 }, { |
6824 | 1104 -84, 6, 9, 36, 47, 1, 4, -36, -36, -12, |
1105 27, -20, -26, 17, 9, 33, -1, -47, 19, -46, | |
1106 -9, -27, -15, 13, 15, 18, -35, -6, -42, 33, | |
1107 -20, 36, -1, 4, -38, -14, -18, 2, 27, 20, | |
6835 | 1108 }, { |
6824 | 1109 -55, -6, -1, -14, 41, -10, 4, -48, -22, 20, |
1110 31, 10, -5, -7, -20, 9, 16, -45, 8, -19, | |
1111 40, -12, 1, 15, 4, 10, -12, -34, -11, 41, | |
1112 16, 24, -30, -49, -20, 13, 28, 22, 18, 43, | |
6835 | 1113 }, { |
6824 | 1114 -124, 13, 21, 23, 62, -23, 0, -43, -57, -8, |
1115 13, 18, -14, 10, -6, 26, 3, -49, 19, -19, | |
1116 31, -27, 7, 0, -11, 20, -29, 1, -12, 47, | |
1117 -4, 39, -11, -34, -28, 9, 5, 19, 13, 34, | |
6835 | 1118 }, { |
6824 | 1119 34, -14, -4, 17, -5, 24, 26, -20, 27, 45, |
1120 12, -24, 2, -13, 21, 8, 22, 16, 32, 2, | |
1121 -34, -31, -20, 7, 58, -5, 5, -2, -38, 12, | |
1122 -2, 1, -1, 26, -5, 23, 21, 6, -8, -11, | |
6835 | 1123 }, { |
6824 | 1124 -34, 6, 18, 55, 15, 11, 21, -16, -8, 16, |
1125 -6, -16, -5, 4, 35, 24, 10, 12, 43, 1, | |
1126 -43, -47, -14, -8, 43, 5, -10, 34, -39, 18, | |
1127 -22, 16, 17, 42, -13, 19, -1, 3, -14, -20, | |
6835 | 1128 }, { |
6824 | 1129 -5, -7, 7, 4, 9, 0, 21, -28, 6, 48, |
1130 -2, 14, 15, -20, 5, 0, 27, 14, 32, 28, | |
1131 5, -32, 2, -6, 32, -3, 12, 5, -8, 25, | |
1132 14, 4, -12, -11, 4, 47, 45, 22, -22, 2, | |
6835 | 1133 }, { |
6824 | 1134 -74, 12, 30, 42, 30, -14, 16, -23, -29, 19, |
1135 -20, 21, 7, -1, 19, 17, 14, 10, 43, 27, | |
1136 -3, -48, 8, -22, 16, 7, -4, 42, -9, 31, | |
1137 -6, 20, 6, 4, -3, 43, 22, 20, -28, -5, | |
6835 | 1138 }, { |
6824 | 1139 -10, -3, 4, 18, 15, -27, 24, -13, 24, 51, |
1140 34, -47, -12, -28, 21, 19, 27, -16, 15, -30, | |
1141 -17, -12, -12, 0, 36, -10, -7, -27, -37, 16, | |
1142 15, 22, -3, 4, -31, -1, 42, -7, 18, 9, | |
6835 | 1143 }, { |
6824 | 1144 -79, 17, 27, 56, 36, -41, 19, -8, -10, 22, |
1145 15, -39, -20, -9, 35, 35, 15, -20, 26, -31, | |
1146 -26, -27, -6, -15, 20, 0, -23, 8, -38, 22, | |
1147 -5, 38, 15, 20, -39, -4, 18, -9, 13, 1, | |
6835 | 1148 }, { |
6824 | 1149 -50, 3, 16, 5, 30, -53, 19, -20, 3, 55, |
1150 19, -8, 0, -34, 5, 11, 32, -18, 15, -4, | |
1151 22, -13, 10, -13, 9, -8, 0, -19, -7, 29, | |
1152 31, 26, -13, -33, -21, 22, 65, 9, 4, 23, | |
6835 | 1153 }, { |
6824 | 1154 -119, 24, 39, 44, 51, -66, 14, -15, -31, 26, |
1155 1, 0, -7, -16, 19, 28, 19, -22, 26, -4, | |
1156 13, -28, 16, -29, -5, 1, -16, 16, -8, 35, | |
1157 10, 42, 4, -17, -29, 19, 42, 7, 0, 15, | |
6835 | 1158 }, { |
6824 | 1159 31, -28, 6, -16, -16, 50, -31, -14, 0, 6, |
1160 36, 17, 0, 0, -29, -14, 11, 18, 20, -25, | |
1161 -6, -33, -19, 20, 43, 21, 21, -14, -55, 0, | |
1162 -32, -40, -42, 39, 1, -8, -14, 8, -6, -3, | |
6835 | 1163 }, { |
6824 | 1164 -37, -8, 29, 22, 4, 37, -36, -9, -34, -22, |
1165 17, 24, -8, 18, -15, 2, -1, 14, 31, -25, | |
1166 -15, -48, -13, 4, 28, 31, 5, 21, -57, 4, | |
1167 -53, -24, -23, 55, -6, -12, -37, 6, -11, -11, | |
6835 | 1168 }, { |
6824 | 1169 -7, -22, 18, -29, -1, 25, -36, -21, -20, 9, |
1170 22, 56, 11, -6, -45, -21, 15, 16, 20, 1, | |
1171 33, -34, 2, 6, 17, 23, 28, -6, -25, 12, | |
1172 -16, -37, -53, 1, 11, 15, 8, 25, -20, 11, | |
6835 | 1173 }, { |
6824 | 1174 -76, -1, 41, 9, 19, 12, -41, -17, -55, -18, |
1175 3, 63, 3, 12, -30, -5, 3, 12, 31, 0, | |
1176 24, -49, 8, -9, 1, 33, 12, 29, -27, 18, | |
1177 -37, -21, -34, 17, 3, 11, -14, 23, -25, 2, | |
6835 | 1178 }, { |
6824 | 1179 -13, -17, 15, -15, 3, -1, -33, -7, -1, 12, |
1180 58, -5, -15, -13, -29, -3, 16, -13, 4, -57, | |
1181 10, -13, -11, 13, 21, 15, 9, -40, -55, 3, | |
1182 -14, -19, -44, 17, -24, -32, 5, -4, 21, 18, | |
6835 | 1183 }, { |
6824 | 1184 -82, 3, 38, 23, 24, -15, -38, -2, -37, -15, |
1185 39, 2, -23, 4, -15, 12, 3, -17, 15, -58, | |
1186 1, -29, -6, -2, 5, 26, -7, -4, -56, 9, | |
1187 -35, -3, -25, 33, -32, -36, -17, -7, 15, 9, | |
6835 | 1188 }, { |
6824 | 1189 -52, -10, 27, -27, 18, -26, -38, -14, -23, 16, |
1190 44, 33, -3, -20, -45, -10, 20, -15, 3, -31, | |
1191 50, -14, 10, 0, -5, 17, 15, -32, -24, 16, | |
1192 1, -15, -55, -20, -14, -8, 29, 12, 7, 32, | |
6835 | 1193 }, { |
6824 | 1194 -121, 9, 50, 10, 40, -40, -43, -9, -58, -12, |
1195 25, 41, -11, -2, -31, 5, 8, -19, 15, -32, | |
1196 41, -30, 16, -16, -20, 28, 0, 3, -26, 22, | |
1197 -19, 0, -36, -4, -22, -12, 6, 9, 1, 24, | |
6835 | 1198 }, { |
6824 | 1199 36, -18, 24, 3, -28, 7, -16, 13, 26, 41, |
1200 24, -1, 5, -26, -3, -12, 27, 46, 27, -10, | |
1201 -24, -34, -10, -8, 49, 2, 34, 0, -51, -12, | |
1202 -17, -38, -25, 56, 0, 0, 22, -3, -20, -22, | |
6835 | 1203 }, { |
6824 | 1204 -32, 2, 47, 42, -7, -5, -21, 18, -9, 12, |
1205 5, 5, -2, -8, 10, 4, 14, 42, 38, -10, | |
1206 -33, -49, -5, -24, 33, 12, 17, 35, -52, -6, | |
1207 -38, -22, -7, 72, -7, -3, 0, -6, -25, -30, | |
6835 | 1208 }, { |
6824 | 1209 -2, -11, 36, -9, -13, -17, -21, 6, 5, 45, |
1210 10, 36, 18, -33, -19, -19, 31, 44, 27, 15, | |
1211 16, -34, 11, -22, 22, 4, 40, 7, -21, 0, | |
1212 -1, -35, -36, 18, 10, 24, 46, 12, -34, -8, | |
6835 | 1213 }, { |
6824 | 1214 -71, 9, 59, 29, 8, -30, -26, 11, -30, 16, |
1215 -8, 44, 9, -14, -5, -2, 19, 40, 38, 15, | |
1216 7, -50, 17, -38, 7, 14, 24, 43, -22, 6, | |
1217 -22, -19, -17, 34, 2, 20, 23, 10, -39, -16, | |
6835 | 1218 }, { |
6824 | 1219 -8, -6, 33, 4, -7, -44, -18, 21, 23, 48, |
1220 46, -24, -9, -40, -3, -1, 32, 13, 11, -43, | |
1221 -7, -14, -3, -15, 26, -3, 21, -26, -50, -8, | |
1222 0, -16, -27, 34, -25, -23, 43, -17, 6, -1, | |
6835 | 1223 }, { |
6824 | 1224 -77, 13, 56, 43, 13, -57, -23, 26, -11, 19, |
1225 27, -16, -17, -22, 10, 15, 19, 10, 22, -43, | |
1226 -16, -30, 2, -31, 11, 6, 5, 9, -52, -2, | |
1227 -20, 0, -8, 50, -33, -27, 19, -19, 1, -9, | |
6835 | 1228 }, { |
6824 | 1229 -47, 0, 45, -7, 7, -69, -23, 13, 2, 51, |
1230 32, 14, 3, -47, -19, -8, 37, 11, 10, -16, | |
1231 32, -15, 19, -29, 0, -1, 28, -18, -20, 4, | |
1232 16, -13, -38, -3, -15, 0, 66, 0, -7, 13, | |
6835 | 1233 }, { |
6824 | 1234 -116, 20, 68, 30, 28, -83, -28, 18, -32, 22, |
1235 13, 21, -5, -28, -5, 7, 24, 8, 22, -17, | |
1236 23, -30, 25, -45, -15, 9, 11, 18, -22, 10, | |
1237 -4, 2, -19, 12, -23, -3, 43, -2, -12, 4, | |
6835 | 1238 }, { |
6824 | 1239 72, -13, -29, -18, 4, 90, 37, -34, 4, -1, |
1240 13, -9, -6, 11, 2, 24, -13, 3, -7, -11, | |
1241 -4, 4, -42, 25, 31, -1, -8, -29, -6, 17, | |
1242 -19, 2, -10, -6, 38, 22, -42, -19, -6, -11, | |
6835 | 1243 }, { |
6824 | 1244 3, 7, -6, 20, 25, 77, 32, -29, -31, -30, |
1245 -4, -2, -14, 29, 16, 40, -26, 0, 3, -12, | |
1246 -13, -10, -36, 9, 15, 8, -24, 6, -7, 22, | |
1247 -40, 17, 8, 9, 31, 18, -66, -22, -11, -19, | |
6835 | 1248 }, { |
6824 | 1249 32, -6, -17, -31, 19, 65, 33, -41, -16, 1, |
1250 0, 29, 6, 4, -13, 17, -9, 1, -8, 14, | |
1251 35, 3, -19, 11, 4, 0, -1, -21, 23, 30, | |
1252 -3, 5, -20, -44, 48, 46, -19, -3, -20, 3, | |
6835 | 1253 }, { |
6824 | 1254 -36, 13, 5, 7, 40, 51, 28, -36, -52, -27, |
1255 -18, 36, -2, 22, 0, 33, -21, -2, 3, 13, | |
1256 26, -11, -14, -4, -10, 10, -18, 14, 22, 36, | |
1257 -24, 21, -1, -28, 40, 42, -42, -5, -25, -5, | |
6835 | 1258 }, { |
6824 | 1259 27, -1, -20, -17, 24, 38, 35, -26, 1, 4, |
1260 35, -32, -21, -3, 2, 35, -8, -29, -24, -44, | |
1261 12, 24, -34, 18, 8, -7, -21, -55, -5, 21, | |
1262 -2, 23, -11, -28, 13, -1, -22, -33, 21, 10, | |
6835 | 1263 }, { |
6824 | 1264 -41, 18, 2, 21, 45, 24, 30, -21, -33, -24, |
1265 17, -24, -29, 15, 16, 51, -21, -33, -13, -45, | |
1266 3, 8, -28, 2, -7, 2, -37, -19, -7, 27, | |
1267 -22, 39, 7, -12, 5, -5, -45, -35, 15, 1, | |
6835 | 1268 }, { |
6824 | 1269 -12, 4, -8, -29, 39, 12, 30, -33, -19, 8, |
1270 21, 6, -8, -9, -13, 28, -4, -31, -24, -18, | |
1271 52, 23, -12, 4, -18, -5, -14, -47, 24, 34, | |
1272 14, 27, -22, -66, 22, 22, 1, -16, 6, 24, | |
6835 | 1273 }, { |
6824 | 1274 -81, 25, 14, 8, 61, 0, 25, -28, -54, -20, |
1275 3, 14, -17, 8, 0, 44, -16, -35, -13, -18, | |
1276 43, 7, -6, -11, -33, 4, -30, -11, 22, 40, | |
1277 -6, 43, -3, -50, 14, 18, -22, -18, 1, 16, | |
6835 | 1278 }, { |
6824 | 1279 77, -2, -11, 1, -7, 47, 52, -5, 29, 33, |
1280 1, -28, 0, -15, 28, 26, 2, 30, 0, 2, | |
1281 -22, 4, -33, -3, 36, -21, 3, -15, -2, 5, | |
1282 -4, 4, 6, 9, 37, 31, -5, -32, -20, -30, | |
6835 | 1283 }, { |
6824 | 1284 8, 17, 10, 40, 13, 34, 47, 0, -5, 4, |
1285 -16, -21, -8, 2, 42, 43, -10, 26, 10, 2, | |
1286 -31, -11, -27, -19, 21, -10, -12, 20, -3, 11, | |
1287 -25, 20, 25, 25, 29, 28, -28, -34, -25, -38, | |
6835 | 1288 }, { |
6824 | 1289 37, 3, 0, -10, 7, 22, 48, -12, 8, 36, |
1290 -12, 9, 12, -22, 12, 19, 6, 28, 0, 29, | |
1291 18, 3, -11, -17, 10, -18, 10, -7, 27, 18, | |
1292 11, 7, -3, -28, 47, 55, 18, -15, -34, -16, | |
6835 | 1293 }, { |
6824 | 1294 -31, 24, 23, 27, 29, 9, 43, -8, -26, 7, |
1295 -30, 17, 4, -3, 26, 35, -5, 24, 10, 28, | |
1296 9, -12, -5, -33, -5, -8, -5, 29, 26, 24, | |
1297 -9, 23, 14, -12, 39, 52, -5, -18, -39, -24, | |
6835 | 1298 }, { |
6824 | 1299 32, 8, -3, 2, 13, -4, 50, 1, 27, 39, |
1300 23, -51, -15, -30, 27, 37, 7, -1, -17, -29, | |
1301 -5, 23, -25, -10, 14, -26, -8, -41, -1, 9, | |
1302 13, 26, 5, -12, 12, 7, 14, -45, 6, -9, | |
6835 | 1303 }, { |
6824 | 1304 -36, 29, 19, 41, 34, -18, 45, 6, -8, 10, |
1305 5, -43, -23, -11, 42, 53, -5, -5, -6, -30, | |
1306 -14, 8, -20, -26, -1, -16, -25, -4, -3, 15, | |
1307 -7, 41, 23, 3, 4, 3, -8, -48, 1, -17, | |
6835 | 1308 }, { |
6824 | 1309 -7, 15, 9, -9, 28, -29, 45, -5, 6, 43, |
1310 9, -12, -2, -36, 12, 30, 11, -3, -17, -3, | |
1311 34, 22, -3, -24, -12, -24, -2, -32, 28, 22, | |
1312 29, 29, -5, -50, 21, 31, 38, -29, -7, 5, | |
6835 | 1313 }, { |
6824 | 1314 -76, 35, 31, 28, 49, -43, 40, 0, -29, 14, |
1315 -8, -5, -10, -18, 26, 46, 0, -7, -6, -3, | |
1316 25, 7, 2, -40, -28, -14, -18, 3, 27, 28, | |
1317 8, 45, 13, -34, 13, 27, 15, -31, -12, -3, | |
6835 | 1318 }, { |
6824 | 1319 74, -17, 0, -31, -18, 73, -5, 0, 3, -5, |
1320 25, 12, -3, -1, -22, 3, -9, 33, -12, -24, | |
1321 6, 2, -33, 9, 21, 5, 20, -27, -19, -7, | |
1322 -34, -37, -34, 22, 44, 0, -41, -29, -17, -21, | |
6835 | 1323 }, { |
6824 | 1324 5, 3, 21, 7, 2, 60, -10, 5, -32, -34, |
1325 7, 20, -11, 16, -8, 20, -21, 29, -1, -24, | |
1326 -2, -13, -27, -6, 5, 15, 3, 8, -21, -1, | |
1327 -55, -21, -15, 38, 37, -3, -65, -32, -23, -30, | |
6835 | 1328 }, { |
6824 | 1329 35, -10, 11, -44, -3, 48, -10, -6, -17, -2, |
1330 11, 51, 8, -8, -38, -3, -4, 31, -12, 2, | |
1331 46, 1, -10, -4, -5, 7, 26, -19, 10, 5, | |
1332 -18, -34, -45, -15, 54, 24, -18, -13, -31, -7, | |
6835 | 1333 }, { |
6824 | 1334 -33, 10, 34, -5, 17, 35, -15, -1, -53, -30, |
1335 -6, 59, 0, 10, -24, 13, -17, 27, -1, 1, | |
1336 37, -13, -4, -20, -20, 18, 10, 16, 8, 11, | |
1337 -39, -18, -26, 0, 46, 20, -41, -15, -37, -15, | |
6835 | 1338 }, { |
6824 | 1339 29, -5, 7, -30, 1, 21, -7, 7, 0, 0, |
1340 47, -9, -18, -15, -22, 14, -4, 0, -28, -57, | |
1341 23, 21, -25, 2, -1, 0, 7, -53, -19, -3, | |
1342 -17, -15, -36, 0, 19, -24, -21, -43, 9, 0, | |
6835 | 1343 }, { |
6824 | 1344 -39, 14, 30, 8, 22, 8, -12, 12, -34, -27, |
1345 29, -2, -26, 2, -8, 31, -16, -3, -17, -57, | |
1346 14, 6, -19, -13, -16, 10, -8, -17, -20, 2, | |
1347 -38, 0, -17, 16, 11, -27, -44, -45, 4, -8, | |
6835 | 1348 }, { |
6824 | 1349 -9, 1, 20, -43, 17, -3, -12, 0, -20, 4, |
1350 33, 29, -6, -22, -38, 7, 0, -1, -29, -30, | |
1351 63, 21, -3, -11, -27, 1, 14, -45, 10, 9, | |
1352 -1, -12, -47, -37, 28, 0, 2, -26, -4, 13, | |
6835 | 1353 }, { |
6824 | 1354 -78, 21, 43, -4, 38, -17, -17, 5, -55, -24, |
1355 15, 36, -14, -4, -24, 24, -12, -5, -17, -31, | |
1356 54, 5, 2, -27, -43, 12, -2, -9, 9, 15, | |
1357 -22, 3, -28, -21, 20, -3, -20, -28, -9, 5, | |
6835 | 1358 }, { |
6824 | 1359 80, -6, 16, -11, -30, 30, 9, 28, 28, 29, |
1360 13, -6, 2, -28, 3, 5, 7, 60, -5, -9, | |
1361 -11, 1, -24, -19, 27, -13, 32, -13, -15, -19, | |
1362 -19, -35, -17, 39, 43, 9, -4, -42, -32, -41, | |
6835 | 1363 }, { |
6824 | 1364 11, 14, 39, 27, -9, 17, 4, 33, -6, 0, |
1365 -4, 1, -5, -10, 17, 22, -5, 57, 5, -9, | |
1366 -20, -13, -18, -35, 11, -3, 16, 22, -17, -13, | |
1367 -40, -19, 1, 55, 35, 5, -27, -44, -37, -49, | |
6835 | 1368 }, { |
6824 | 1369 40, 0, 28, -24, -14, 5, 4, 21, 7, 33, |
1370 0, 32, 15, -35, -12, -1, 11, 58, -5, 16, | |
1371 28, 0, -1, -33, 0, -11, 39, -5, 14, -6, | |
1372 -3, -31, -28, 1, 53, 33, 19, -25, -46, -26, | |
6835 | 1373 }, { |
6824 | 1374 -28, 20, 51, 14, 6, -7, 0, 26, -27, 4, |
1375 -18, 40, 6, -16, 1, 15, 0, 55, 5, 16, | |
1376 19, -14, 3, -49, -14, -1, 22, 30, 12, 0, | |
1377 -24, -15, -9, 17, 45, 29, -4, -28, -51, -35, | |
6835 | 1378 }, { |
6824 | 1379 34, 4, 25, -10, -9, -21, 7, 36, 26, 36, |
1380 35, -28, -12, -42, 3, 16, 12, 28, -21, -42, | |
1381 5, 21, -16, -26, 4, -19, 19, -39, -15, -15, | |
1382 -1, -13, -19, 17, 17, -14, 15, -55, -4, -19, | |
6835 | 1383 }, { |
6824 | 1384 -34, 25, 48, 28, 11, -34, 2, 41, -9, 7, |
1385 17, -21, -20, -24, 17, 33, 0, 24, -10, -42, | |
1386 -3, 5, -10, -42, -11, -8, 3, -3, -16, -9, | |
1387 -22, 2, 0, 33, 10, -18, -7, -58, -10, -28, | |
6835 | 1388 }, { |
6824 | 1389 -4, 11, 37, -23, 5, -46, 2, 29, 5, 39, |
1390 21, 9, 0, -49, -12, 9, 16, 26, -22, -15, | |
1391 45, 20, 5, -40, -22, -17, 26, -31, 14, -2, | |
1392 14, -10, -30, -20, 27, 9, 39, -39, -18, -5, | |
6835 | 1393 }, { |
6824 | 1394 -73, 32, 60, 15, 26, -59, -2, 33, -30, 10, |
1395 3, 17, -8, -30, 1, 26, 4, 22, -10, -16, | |
1396 36, 5, 11, -56, -37, -6, 10, 5, 13, 3, | |
1397 -6, 5, -11, -4, 19, 5, 16, -41, -24, -13 | |
6835 | 1398 } |
6824 | 1399 }; |
2967 | 1400 |
11866 | 1401 const uint16_t ff_cb1_base[128]={ |
7121 | 1402 19657, 18474, 18365, 17520, 21048, 18231, 18584, 16671, |
1403 20363, 19069, 19409, 18430, 21844, 18753, 19613, 17411, | |
1404 20389, 21772, 20129, 21702, 20978, 20472, 19627, 19387, | |
1405 21477, 23134, 21841, 23919, 22089, 21519, 21134, 20852, | |
1406 19675, 17821, 19044, 17477, 19986, 16955, 18446, 16086, | |
1407 21138, 18899, 20952, 18929, 21452, 17833, 20104, 17159, | |
1408 19770, 20056, 20336, 20866, 19329, 18217, 18908, 18004, | |
1409 21556, 21948, 23079, 23889, 20922, 19544, 20984, 19781, | |
1410 19781, 20984, 19544, 20922, 23889, 23079, 21948, 21556, | |
1411 18004, 18908, 18217, 19329, 20866, 20336, 20056, 19770, | |
1412 17159, 20104, 17833, 21452, 18929, 20952, 18899, 21138, | |
1413 16086, 18446, 16955, 19986, 17477, 19044, 17821, 19675, | |
1414 20852, 21134, 21519, 22089, 23919, 21841, 23134, 21477, | |
1415 19387, 19627, 20472, 20978, 21702, 20129, 21772, 20389, | |
1416 17411, 19613, 18753, 21844, 18430, 19409, 19069, 20363, | |
1417 16671, 18584, 18231, 21048, 17520, 18365, 18474, 19657, | |
6824 | 1418 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1419 |
11866 | 1420 const uint16_t ff_cb2_base[128]={ |
7121 | 1421 12174, 13380, 13879, 13832, 13170, 13227, 13204, 12053, |
1422 12410, 13988, 14348, 14631, 13100, 13415, 13224, 12268, | |
1423 11982, 13825, 13499, 14210, 13877, 14788, 13811, 13109, | |
1424 11449, 13275, 12833, 13717, 12728, 13696, 12759, 12405, | |
1425 10230, 12185, 11628, 13161, 11762, 13458, 12312, 12818, | |
1426 10443, 12773, 12011, 14020, 11818, 13825, 12453, 13226, | |
1427 10446, 13162, 11881, 14300, 12859, 16288, 13490, 15053, | |
1428 10155, 12820, 11519, 13973, 12041, 15081, 12635, 14198, | |
1429 14198, 12635, 15081, 12041, 13973, 11519, 12820, 10155, | |
1430 15053, 13490, 16288, 12859, 14300, 11881, 13162, 10446, | |
1431 13226, 12453, 13825, 11818, 14020, 12011, 12773, 10443, | |
1432 12818, 12312, 13458, 11762, 13161, 11628, 12185, 10230, | |
1433 12405, 12759, 13696, 12728, 13717, 12833, 13275, 11449, | |
1434 13109, 13811, 14788, 13877, 14210, 13499, 13825, 11982, | |
1435 12268, 13224, 13415, 13100, 14631, 14348, 13988, 12410, | |
1436 12053, 13204, 13227, 13170, 13832, 13879, 13380, 12174, | |
6824 | 1437 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1438 |
11866 | 1439 const int16_t ff_energy_tab[32]={ |
7126 | 1440 0, 16, 20, 25, 32, 41, 51, 65, |
1441 81, 103, 129, 163, 205, 259, 326, 410, | |
1442 516, 650, 819, 1031, 1298, 1634, 2057, 2590, | |
1443 3261, 4105, 5168, 6507, 8192, 10313, 12983, 16345 | |
6824 | 1444 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1445 |
7127 | 1446 static const int16_t lpc_refl_cb1[64]={ |
1447 -4041, -4018, -3998, -3977, -3954, -3930, -3906, -3879, | |
1448 -3852, -3825, -3795, -3764, -3731, -3699, -3666, -3631, | |
1449 -3594, -3555, -3513, -3468, -3420, -3372, -3321, -3268, | |
1450 -3212, -3153, -3090, -3021, -2944, -2863, -2772, -2676, | |
1451 -2565, -2445, -2328, -2202, -2072, -1941, -1808, -1660, | |
1452 -1508, -1348, -1185, -994, -798, -600, -374, -110, | |
1453 152, 447, 720, 982, 1229, 1456, 1682, 1916, | |
1454 2130, 2353, 2595, 2853, 3118, 3363, 3588, 3814 | |
6824 | 1455 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1456 |
7127 | 1457 static const int16_t lpc_refl_cb2[32]={ |
1458 -3091, -2386, -1871, -1425, -1021, -649, -316, -20, | |
1459 267, 544, 810, 1065, 1305, 1534, 1756, 1970, | |
1460 2171, 2359, 2536, 2700, 2854, 2996, 3133, 3263, | |
1461 3386, 3499, 3603, 3701, 3789, 3870, 3947, 4020 | |
1462 }; | |
1463 | |
1464 static const int16_t lpc_refl_cb3[32]={ | |
1465 -3525, -3295, -3081, -2890, -2696, -2511, -2328, -2149, | |
1466 -1979, -1817, -1658, -1498, -1341, -1188, -1032, -876, | |
1467 -721, -561, -394, -228, -54, 119, 296, 484, | |
1468 683, 895, 1123, 1373, 1651, 1965, 2360, 2854 | |
6824 | 1469 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1470 |
7127 | 1471 static const int16_t lpc_refl_cb4[16]={ |
1472 -1845, -1057, -522, -77, 301, 647, 975, 1285, | |
1473 1582, 1873, 2163, 2452, 2735, 3017, 3299, 3569 | |
6824 | 1474 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1475 |
7127 | 1476 static const int16_t lpc_refl_cb5[16]={ |
1477 -2691, -2187, -1788, -1435, -1118, -837, -571, -316, | |
1478 -59, 201, 470, 759, 1077, 1457, 1908, 2495 | |
1479 }; | |
1480 | |
1481 static const int16_t lpc_refl_cb6[8]={ | |
1482 -1372, -474, 133, 632, 1100, 1571, 2075, 2672 | |
6824 | 1483 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1484 |
7127 | 1485 static const int16_t lpc_refl_cb7[8]={ |
1486 -2389, -1787, -1231, -717, -239, 234, 770, 1474 | |
6824 | 1487 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1488 |
7127 | 1489 static const int16_t lpc_refl_cb8[8]={ |
1490 -1569, -864, -296, 200, 670, 1151, 1709, 2385 | |
6824 | 1491 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1492 |
7127 | 1493 static const int16_t lpc_refl_cb9[8]={ |
1494 -2200, -1608, -1062, -569, -120, 338, 863, 1621 | |
6824 | 1495 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1496 |
7127 | 1497 static const int16_t lpc_refl_cb10[4]={ |
1498 -617, 190, 802, 1483 | |
6824 | 1499 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1500 |
11866 | 1501 const int16_t * const ff_lpc_refl_cb[10]={ |
7080 | 1502 lpc_refl_cb1, lpc_refl_cb2, lpc_refl_cb3, lpc_refl_cb4, lpc_refl_cb5, |
7079 | 1503 lpc_refl_cb6, lpc_refl_cb7, lpc_refl_cb8, lpc_refl_cb9, lpc_refl_cb10 |
6883 | 1504 }; |
1335
b4a72edb3a71
moved the tables into header files (and applied the 'static' patch). Nick: why do you like mergeing tables and code into one file, so making it unusable big?
al3x
parents:
diff
changeset
|
1505 |
11866 | 1506 void ff_add_wav(int16_t *dest, int n, int skip_first, int *m, const int16_t *s1, |
11867 | 1507 const int8_t *s2, const int8_t *s3) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1508 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1509 int i; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1510 int v[3]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1511 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1512 v[0] = 0; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1513 for (i=!skip_first; i<3; i++) |
11866 | 1514 v[i] = (ff_gain_val_tab[n][i] * m[i]) >> ff_gain_exp_tab[n]; |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1515 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1516 if (v[0]) { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1517 for (i=0; i < BLOCKSIZE; i++) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1518 dest[i] = (s1[i]*v[0] + s2[i]*v[1] + s3[i]*v[2]) >> 12; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1519 } else { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1520 for (i=0; i < BLOCKSIZE; i++) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1521 dest[i] = ( s2[i]*v[1] + s3[i]*v[2]) >> 12; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1522 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1523 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1524 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1525 /** |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1526 * Copy the last offset values of *source to *target. If those values are not |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1527 * enough to fill the target buffer, fill it with another copy of those values. |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1528 */ |
11866 | 1529 void ff_copy_and_dup(int16_t *target, const int16_t *source, int offset) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1530 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1531 source += BUFFERSIZE - offset; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1532 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1533 memcpy(target, source, FFMIN(BLOCKSIZE, offset)*sizeof(*target)); |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1534 if (offset < BLOCKSIZE) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1535 memcpy(target + offset, source, (BLOCKSIZE - offset)*sizeof(*target)); |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1536 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1537 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1538 /** |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1539 * Evaluate the reflection coefficients from the filter coefficients. |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1540 * |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1541 * @return 1 if one of the reflection coefficients is greater than |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1542 * 4095, 0 if not. |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1543 */ |
11866 | 1544 int ff_eval_refl(int *refl, const int16_t *coefs, AVCodecContext *avctx) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1545 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1546 int b, i, j; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1547 int buffer1[10]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1548 int buffer2[10]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1549 int *bp1 = buffer1; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1550 int *bp2 = buffer2; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1551 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1552 for (i=0; i < 10; i++) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1553 buffer2[i] = coefs[i]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1554 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1555 refl[9] = bp2[9]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1556 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1557 if ((unsigned) bp2[9] + 0x1000 > 0x1fff) { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1558 av_log(avctx, AV_LOG_ERROR, "Overflow. Broken sample?\n"); |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1559 return 1; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1560 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1561 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1562 for (i=8; i >= 0; i--) { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1563 b = 0x1000-((bp2[i+1] * bp2[i+1]) >> 12); |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1564 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1565 if (!b) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1566 b = -2; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1567 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1568 for (j=0; j <= i; j++) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1569 bp1[j] = ((bp2[j] - ((refl[i+1] * bp2[i-j]) >> 12)) * (0x1000000 / b)) >> 12; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1570 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1571 if ((unsigned) bp1[i] + 0x1000 > 0x1fff) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1572 return 1; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1573 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1574 refl[i] = bp1[i]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1575 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1576 FFSWAP(int *, bp1, bp2); |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1577 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1578 return 0; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1579 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1580 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1581 /** |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1582 * Evaluate the LPC filter coefficients from the reflection coefficients. |
11867 | 1583 * Does the inverse of the ff_eval_refl() function. |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1584 */ |
11866 | 1585 void ff_eval_coefs(int *coefs, const int *refl) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1586 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1587 int buffer[10]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1588 int *b1 = buffer; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1589 int *b2 = coefs; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1590 int i, j; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1591 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1592 for (i=0; i < 10; i++) { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1593 b1[i] = refl[i] << 4; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1594 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1595 for (j=0; j < i; j++) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1596 b1[j] = ((refl[i] * b2[i-j-1]) >> 12) + b2[j]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1597 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1598 FFSWAP(int *, b1, b2); |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1599 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1600 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1601 for (i=0; i < 10; i++) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1602 coefs[i] >>= 4; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1603 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1604 |
11866 | 1605 void ff_int_to_int16(int16_t *out, const int *inp) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1606 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1607 int i; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1608 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1609 for (i=0; i < 10; i++) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1610 *out++ = *inp++; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1611 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1612 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1613 /** |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1614 * Evaluate sqrt(x << 24). x must fit in 20 bits. This value is evaluated in an |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1615 * odd way to make the output identical to the binary decoder. |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1616 */ |
11866 | 1617 int ff_t_sqrt(unsigned int x) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1618 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1619 int s = 2; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1620 while (x > 0xfff) { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1621 s++; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1622 x >>= 2; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1623 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1624 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1625 return ff_sqrt(x << 20) << s; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1626 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1627 |
11866 | 1628 unsigned int ff_rms(const int *data) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1629 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1630 int i; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1631 unsigned int res = 0x10000; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1632 int b = 10; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1633 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1634 for (i=0; i < 10; i++) { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1635 res = (((0x1000000 - data[i]*data[i]) >> 12) * res) >> 12; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1636 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1637 if (res == 0) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1638 return 0; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1639 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1640 while (res <= 0x3fff) { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1641 b++; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1642 res <<= 2; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1643 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1644 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1645 |
11866 | 1646 return ff_t_sqrt(res) >> b; |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1647 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1648 |
11866 | 1649 int ff_interp(RA144Context *ractx, int16_t *out, int a, int copyold, int energy) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1650 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1651 int work[10]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1652 int b = NBLOCKS - a; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1653 int i; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1654 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1655 // Interpolate block coefficients from the this frame's forth block and |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1656 // last frame's forth block. |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1657 for (i=0; i<10; i++) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1658 out[i] = (a * ractx->lpc_coef[0][i] + b * ractx->lpc_coef[1][i])>> 2; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1659 |
11866 | 1660 if (ff_eval_refl(work, out, ractx->avctx)) { |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1661 // The interpolated coefficients are unstable, copy either new or old |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1662 // coefficients. |
11866 | 1663 ff_int_to_int16(out, ractx->lpc_coef[copyold]); |
1664 return ff_rescale_rms(ractx->lpc_refl_rms[copyold], energy); | |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1665 } else { |
11866 | 1666 return ff_rescale_rms(ff_rms(work), energy); |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1667 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1668 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1669 |
11866 | 1670 unsigned int ff_rescale_rms(unsigned int rms, unsigned int energy) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1671 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1672 return (rms * energy) >> 10; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1673 } |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1674 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1675 /** inverse root mean square */ |
11866 | 1676 int ff_irms(const int16_t *data) |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1677 { |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1678 unsigned int i, sum = 0; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1679 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1680 for (i=0; i < BLOCKSIZE; i++) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1681 sum += data[i] * data[i]; |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1682 |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1683 if (sum == 0) |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1684 return 0; /* OOPS - division by zero */ |
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1685 |
11866 | 1686 return 0x20000000 / (ff_t_sqrt(sum) >> 8); |
11865
6111134a3d94
Split ra144.c in common code (to be shared with the future encoder) and
vitor
parents:
7835
diff
changeset
|
1687 } |
11868
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1688 |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1689 void ff_subblock_synthesis(RA144Context *ractx, const uint16_t *lpc_coefs, |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1690 int cba_idx, int cb1_idx, int cb2_idx, |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1691 int gval, int gain) |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1692 { |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1693 uint16_t buffer_a[40]; |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1694 uint16_t *block; |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1695 int m[3]; |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1696 |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1697 if (cba_idx) { |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1698 cba_idx += BLOCKSIZE/2 - 1; |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1699 ff_copy_and_dup(buffer_a, ractx->adapt_cb, cba_idx); |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1700 m[0] = (ff_irms(buffer_a) * gval) >> 12; |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1701 } else { |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1702 m[0] = 0; |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1703 } |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1704 m[1] = (ff_cb1_base[cb1_idx] * gval) >> 8; |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1705 m[2] = (ff_cb2_base[cb2_idx] * gval) >> 8; |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1706 memmove(ractx->adapt_cb, ractx->adapt_cb + BLOCKSIZE, |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1707 (BUFFERSIZE - BLOCKSIZE) * sizeof(*ractx->adapt_cb)); |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1708 |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1709 block = ractx->adapt_cb + BUFFERSIZE - BLOCKSIZE; |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1710 |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1711 ff_add_wav(block, gain, cba_idx, m, cba_idx? buffer_a: NULL, |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1712 ff_cb1_vects[cb1_idx], ff_cb2_vects[cb2_idx]); |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1713 |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1714 memcpy(ractx->curr_sblock, ractx->curr_sblock + 40, |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1715 10*sizeof(*ractx->curr_sblock)); |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1716 |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1717 if (ff_celp_lp_synthesis_filter(ractx->curr_sblock + 10, lpc_coefs, |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1718 block, BLOCKSIZE, 10, 1, 0xfff)) |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1719 memset(ractx->curr_sblock, 0, 50*sizeof(*ractx->curr_sblock)); |
159554445343
Split do_output_subblock() into common code and decoder specific parts
vitor
parents:
11867
diff
changeset
|
1720 } |