Mercurial > libavcodec.hg
annotate msmpeg4data.h @ 4580:55d7ebd2d699 libavcodec
fix chroma mc2 bug, this is based on a patch by (Oleg Metelitsa oleg hitron co kr)
and does slow the mc2 chroma put down, avg interrestingly seems unaffected speedwise on duron
this of course should be rather done in a way which doesnt slow it down but its better a few %
slower but correct then incorrect
author | michael |
---|---|
date | Fri, 23 Feb 2007 14:29:13 +0000 |
parents | c8c591fe26f8 |
children | d9ea176a6621 |
rev | line source |
---|---|
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
1 /* |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
2 * MSMPEG4 backend for ffmpeg encoder and decoder |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
3 * copyright (c) 2001 Fabrice Bellard |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
4 * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at> |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
5 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
6 * This file is part of FFmpeg. |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
7 * |
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
9 * modify it under the terms of the GNU Lesser General Public |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
10 * 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:
3699
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
12 * |
3947
c8c591fe26f8
Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents:
3699
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
16 * Lesser General Public License for more details. |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
17 * |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
18 * 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:
3699
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
3699
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
21 * |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
22 * msmpeg4v1 & v2 stuff by Michael Niedermayer <michaelni@gmx.at> |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
23 */ |
c537a97eec66
Add official LGPL license headers to the files that were missing them.
diego
parents:
2967
diff
changeset
|
24 |
1106 | 25 /** |
26 * @file msmpeg4data.h | |
2967 | 27 * MSMPEG4 data tables. |
0 | 28 */ |
29 | |
30 /* intra picture macro block coded block pattern */ | |
2474 | 31 const uint16_t ff_msmp4_mb_i_table[64][2] = { |
0 | 32 { 0x1, 1 },{ 0x17, 6 },{ 0x9, 5 },{ 0x5, 5 }, |
33 { 0x6, 5 },{ 0x47, 9 },{ 0x20, 7 },{ 0x10, 7 }, | |
34 { 0x2, 5 },{ 0x7c, 9 },{ 0x3a, 7 },{ 0x1d, 7 }, | |
35 { 0x2, 6 },{ 0xec, 9 },{ 0x77, 8 },{ 0x0, 8 }, | |
36 { 0x3, 5 },{ 0xb7, 9 },{ 0x2c, 7 },{ 0x13, 7 }, | |
37 { 0x1, 6 },{ 0x168, 10 },{ 0x46, 8 },{ 0x3f, 8 }, | |
38 { 0x1e, 6 },{ 0x712, 13 },{ 0xb5, 9 },{ 0x42, 8 }, | |
39 { 0x22, 7 },{ 0x1c5, 11 },{ 0x11e, 10 },{ 0x87, 9 }, | |
40 { 0x6, 4 },{ 0x3, 9 },{ 0x1e, 7 },{ 0x1c, 6 }, | |
41 { 0x12, 7 },{ 0x388, 12 },{ 0x44, 9 },{ 0x70, 9 }, | |
42 { 0x1f, 6 },{ 0x23e, 11 },{ 0x39, 8 },{ 0x8e, 9 }, | |
43 { 0x1, 7 },{ 0x1c6, 11 },{ 0xb6, 9 },{ 0x45, 9 }, | |
44 { 0x14, 6 },{ 0x23f, 11 },{ 0x7d, 9 },{ 0x18, 9 }, | |
45 { 0x7, 7 },{ 0x1c7, 11 },{ 0x86, 9 },{ 0x19, 9 }, | |
46 { 0x15, 6 },{ 0x1db, 10 },{ 0x2, 9 },{ 0x46, 9 }, | |
47 { 0xd, 8 },{ 0x713, 13 },{ 0x1da, 10 },{ 0x169, 10 }, | |
48 }; | |
49 | |
50 /* non intra picture macro block coded block pattern + mb type */ | |
936 | 51 static const uint32_t table_mb_non_intra[128][2] = { |
0 | 52 { 0x40, 7 },{ 0x13c9, 13 },{ 0x9fd, 12 },{ 0x1fc, 15 }, |
53 { 0x9fc, 12 },{ 0xa83, 18 },{ 0x12d34, 17 },{ 0x83bc, 16 }, | |
54 { 0x83a, 12 },{ 0x7f8, 17 },{ 0x3fd, 16 },{ 0x3ff, 16 }, | |
55 { 0x79, 13 },{ 0xa82, 18 },{ 0x969d, 16 },{ 0x2a4, 16 }, | |
56 { 0x978, 12 },{ 0x543, 17 },{ 0x41df, 15 },{ 0x7f9, 17 }, | |
57 { 0x12f3, 13 },{ 0x25a6b, 18 },{ 0x25ef9, 18 },{ 0x3fa, 16 }, | |
58 { 0x20ee, 14 },{ 0x969ab, 20 },{ 0x969c, 16 },{ 0x25ef8, 18 }, | |
59 { 0x12d2, 13 },{ 0xa85, 18 },{ 0x969e, 16 },{ 0x4bc8, 15 }, | |
60 { 0x3d, 12 },{ 0x12f7f, 17 },{ 0x2a2, 16 },{ 0x969f, 16 }, | |
61 { 0x25ee, 14 },{ 0x12d355, 21 },{ 0x12f7d, 17 },{ 0x12f7e, 17 }, | |
62 { 0x9e5, 12 },{ 0xa81, 18 },{ 0x4b4d4, 19 },{ 0x83bd, 16 }, | |
63 { 0x78, 13 },{ 0x969b, 16 },{ 0x3fe, 16 },{ 0x2a5, 16 }, | |
64 { 0x7e, 13 },{ 0xa80, 18 },{ 0x2a3, 16 },{ 0x3fb, 16 }, | |
65 { 0x1076, 13 },{ 0xa84, 18 },{ 0x153, 15 },{ 0x4bc9, 15 }, | |
66 { 0x55, 13 },{ 0x12d354, 21 },{ 0x4bde, 15 },{ 0x25e5, 14 }, | |
67 { 0x25b, 10 },{ 0x4b4c, 15 },{ 0x96b, 12 },{ 0x96a, 12 }, | |
68 { 0x1, 2 },{ 0x0, 7 },{ 0x26, 6 },{ 0x12b, 9 }, | |
69 { 0x7, 3 },{ 0x20f, 10 },{ 0x4, 9 },{ 0x28, 12 }, | |
70 { 0x6, 3 },{ 0x20a, 10 },{ 0x128, 9 },{ 0x2b, 12 }, | |
71 { 0x11, 5 },{ 0x1b, 11 },{ 0x13a, 9 },{ 0x4ff, 11 }, | |
72 { 0x3, 4 },{ 0x277, 10 },{ 0x106, 9 },{ 0x839, 12 }, | |
73 { 0xb, 4 },{ 0x27b, 10 },{ 0x12c, 9 },{ 0x4bf, 11 }, | |
74 { 0x9, 6 },{ 0x35, 12 },{ 0x27e, 10 },{ 0x13c8, 13 }, | |
75 { 0x1, 6 },{ 0x4aa, 11 },{ 0x208, 10 },{ 0x29, 12 }, | |
76 { 0x1, 4 },{ 0x254, 10 },{ 0x12e, 9 },{ 0x838, 12 }, | |
77 { 0x24, 6 },{ 0x4f3, 11 },{ 0x276, 10 },{ 0x12f6, 13 }, | |
78 { 0x1, 5 },{ 0x27a, 10 },{ 0x13e, 9 },{ 0x3e, 12 }, | |
79 { 0x8, 6 },{ 0x413, 11 },{ 0xc, 10 },{ 0x4be, 11 }, | |
80 { 0x14, 5 },{ 0x412, 11 },{ 0x253, 10 },{ 0x97a, 12 }, | |
81 { 0x21, 6 },{ 0x4ab, 11 },{ 0x20b, 10 },{ 0x34, 12 }, | |
82 { 0x15, 5 },{ 0x278, 10 },{ 0x252, 10 },{ 0x968, 12 }, | |
83 { 0x5, 5 },{ 0xb, 10 },{ 0x9c, 8 },{ 0xe, 10 }, | |
84 }; | |
85 | |
86 /* dc table 0 */ | |
87 | |
2465
5565203c95ee
use dc tables from msmpeg4 instead of duplicating them patch by anonymous
michael
parents:
1106
diff
changeset
|
88 const uint32_t ff_table0_dc_lum[120][2] = { |
0 | 89 { 0x1, 1 },{ 0x1, 2 },{ 0x1, 4 },{ 0x1, 5 }, |
90 { 0x5, 5 },{ 0x7, 5 },{ 0x8, 6 },{ 0xc, 6 }, | |
91 { 0x0, 7 },{ 0x2, 7 },{ 0x12, 7 },{ 0x1a, 7 }, | |
92 { 0x3, 8 },{ 0x7, 8 },{ 0x27, 8 },{ 0x37, 8 }, | |
93 { 0x5, 9 },{ 0x4c, 9 },{ 0x6c, 9 },{ 0x6d, 9 }, | |
94 { 0x8, 10 },{ 0x19, 10 },{ 0x9b, 10 },{ 0x1b, 10 }, | |
95 { 0x9a, 10 },{ 0x13, 11 },{ 0x34, 11 },{ 0x35, 11 }, | |
96 { 0x61, 12 },{ 0x48, 13 },{ 0xc4, 13 },{ 0x4a, 13 }, | |
97 { 0xc6, 13 },{ 0xc7, 13 },{ 0x92, 14 },{ 0x18b, 14 }, | |
98 { 0x93, 14 },{ 0x183, 14 },{ 0x182, 14 },{ 0x96, 14 }, | |
99 { 0x97, 14 },{ 0x180, 14 },{ 0x314, 15 },{ 0x315, 15 }, | |
100 { 0x605, 16 },{ 0x604, 16 },{ 0x606, 16 },{ 0xc0e, 17 }, | |
101 { 0x303cd, 23 },{ 0x303c9, 23 },{ 0x303c8, 23 },{ 0x303ca, 23 }, | |
102 { 0x303cb, 23 },{ 0x303cc, 23 },{ 0x303ce, 23 },{ 0x303cf, 23 }, | |
103 { 0x303d0, 23 },{ 0x303d1, 23 },{ 0x303d2, 23 },{ 0x303d3, 23 }, | |
104 { 0x303d4, 23 },{ 0x303d5, 23 },{ 0x303d6, 23 },{ 0x303d7, 23 }, | |
105 { 0x303d8, 23 },{ 0x303d9, 23 },{ 0x303da, 23 },{ 0x303db, 23 }, | |
106 { 0x303dc, 23 },{ 0x303dd, 23 },{ 0x303de, 23 },{ 0x303df, 23 }, | |
107 { 0x303e0, 23 },{ 0x303e1, 23 },{ 0x303e2, 23 },{ 0x303e3, 23 }, | |
108 { 0x303e4, 23 },{ 0x303e5, 23 },{ 0x303e6, 23 },{ 0x303e7, 23 }, | |
109 { 0x303e8, 23 },{ 0x303e9, 23 },{ 0x303ea, 23 },{ 0x303eb, 23 }, | |
110 { 0x303ec, 23 },{ 0x303ed, 23 },{ 0x303ee, 23 },{ 0x303ef, 23 }, | |
111 { 0x303f0, 23 },{ 0x303f1, 23 },{ 0x303f2, 23 },{ 0x303f3, 23 }, | |
112 { 0x303f4, 23 },{ 0x303f5, 23 },{ 0x303f6, 23 },{ 0x303f7, 23 }, | |
113 { 0x303f8, 23 },{ 0x303f9, 23 },{ 0x303fa, 23 },{ 0x303fb, 23 }, | |
114 { 0x303fc, 23 },{ 0x303fd, 23 },{ 0x303fe, 23 },{ 0x303ff, 23 }, | |
115 { 0x60780, 24 },{ 0x60781, 24 },{ 0x60782, 24 },{ 0x60783, 24 }, | |
116 { 0x60784, 24 },{ 0x60785, 24 },{ 0x60786, 24 },{ 0x60787, 24 }, | |
117 { 0x60788, 24 },{ 0x60789, 24 },{ 0x6078a, 24 },{ 0x6078b, 24 }, | |
118 { 0x6078c, 24 },{ 0x6078d, 24 },{ 0x6078e, 24 },{ 0x6078f, 24 }, | |
119 }; | |
120 | |
2465
5565203c95ee
use dc tables from msmpeg4 instead of duplicating them patch by anonymous
michael
parents:
1106
diff
changeset
|
121 const uint32_t ff_table0_dc_chroma[120][2] = { |
0 | 122 { 0x0, 2 },{ 0x1, 2 },{ 0x5, 3 },{ 0x9, 4 }, |
123 { 0xd, 4 },{ 0x11, 5 },{ 0x1d, 5 },{ 0x1f, 5 }, | |
124 { 0x21, 6 },{ 0x31, 6 },{ 0x38, 6 },{ 0x33, 6 }, | |
125 { 0x39, 6 },{ 0x3d, 6 },{ 0x61, 7 },{ 0x79, 7 }, | |
126 { 0x80, 8 },{ 0xc8, 8 },{ 0xca, 8 },{ 0xf0, 8 }, | |
127 { 0x81, 8 },{ 0xc0, 8 },{ 0xc9, 8 },{ 0x107, 9 }, | |
128 { 0x106, 9 },{ 0x196, 9 },{ 0x183, 9 },{ 0x1e3, 9 }, | |
129 { 0x1e2, 9 },{ 0x20a, 10 },{ 0x20b, 10 },{ 0x609, 11 }, | |
130 { 0x412, 11 },{ 0x413, 11 },{ 0x60b, 11 },{ 0x411, 11 }, | |
131 { 0x60a, 11 },{ 0x65f, 11 },{ 0x410, 11 },{ 0x65d, 11 }, | |
132 { 0x65e, 11 },{ 0xcb8, 12 },{ 0xc10, 12 },{ 0xcb9, 12 }, | |
133 { 0x1823, 13 },{ 0x3045, 14 },{ 0x6089, 15 },{ 0xc110, 16 }, | |
134 { 0x304448, 22 },{ 0x304449, 22 },{ 0x30444a, 22 },{ 0x30444b, 22 }, | |
135 { 0x30444c, 22 },{ 0x30444d, 22 },{ 0x30444e, 22 },{ 0x30444f, 22 }, | |
136 { 0x304450, 22 },{ 0x304451, 22 },{ 0x304452, 22 },{ 0x304453, 22 }, | |
137 { 0x304454, 22 },{ 0x304455, 22 },{ 0x304456, 22 },{ 0x304457, 22 }, | |
138 { 0x304458, 22 },{ 0x304459, 22 },{ 0x30445a, 22 },{ 0x30445b, 22 }, | |
139 { 0x30445c, 22 },{ 0x30445d, 22 },{ 0x30445e, 22 },{ 0x30445f, 22 }, | |
140 { 0x304460, 22 },{ 0x304461, 22 },{ 0x304462, 22 },{ 0x304463, 22 }, | |
141 { 0x304464, 22 },{ 0x304465, 22 },{ 0x304466, 22 },{ 0x304467, 22 }, | |
142 { 0x304468, 22 },{ 0x304469, 22 },{ 0x30446a, 22 },{ 0x30446b, 22 }, | |
143 { 0x30446c, 22 },{ 0x30446d, 22 },{ 0x30446e, 22 },{ 0x30446f, 22 }, | |
144 { 0x304470, 22 },{ 0x304471, 22 },{ 0x304472, 22 },{ 0x304473, 22 }, | |
145 { 0x304474, 22 },{ 0x304475, 22 },{ 0x304476, 22 },{ 0x304477, 22 }, | |
146 { 0x304478, 22 },{ 0x304479, 22 },{ 0x30447a, 22 },{ 0x30447b, 22 }, | |
147 { 0x30447c, 22 },{ 0x30447d, 22 },{ 0x30447e, 22 },{ 0x30447f, 22 }, | |
148 { 0x608880, 23 },{ 0x608881, 23 },{ 0x608882, 23 },{ 0x608883, 23 }, | |
149 { 0x608884, 23 },{ 0x608885, 23 },{ 0x608886, 23 },{ 0x608887, 23 }, | |
150 { 0x608888, 23 },{ 0x608889, 23 },{ 0x60888a, 23 },{ 0x60888b, 23 }, | |
151 { 0x60888c, 23 },{ 0x60888d, 23 },{ 0x60888e, 23 },{ 0x60888f, 23 }, | |
152 }; | |
153 | |
154 /* dc table 1 */ | |
155 | |
2465
5565203c95ee
use dc tables from msmpeg4 instead of duplicating them patch by anonymous
michael
parents:
1106
diff
changeset
|
156 const uint32_t ff_table1_dc_lum[120][2] = { |
0 | 157 { 0x2, 2 },{ 0x3, 2 },{ 0x3, 3 },{ 0x2, 4 }, |
158 { 0x5, 4 },{ 0x1, 5 },{ 0x3, 5 },{ 0x8, 5 }, | |
159 { 0x0, 6 },{ 0x5, 6 },{ 0xd, 6 },{ 0xf, 6 }, | |
160 { 0x13, 6 },{ 0x8, 7 },{ 0x18, 7 },{ 0x1c, 7 }, | |
161 { 0x24, 7 },{ 0x4, 8 },{ 0x6, 8 },{ 0x12, 8 }, | |
162 { 0x32, 8 },{ 0x3b, 8 },{ 0x4a, 8 },{ 0x4b, 8 }, | |
163 { 0xb, 9 },{ 0x26, 9 },{ 0x27, 9 },{ 0x66, 9 }, | |
164 { 0x74, 9 },{ 0x75, 9 },{ 0x14, 10 },{ 0x1c, 10 }, | |
165 { 0x1f, 10 },{ 0x1d, 10 },{ 0x2b, 11 },{ 0x3d, 11 }, | |
166 { 0x19d, 11 },{ 0x19f, 11 },{ 0x54, 12 },{ 0x339, 12 }, | |
167 { 0x338, 12 },{ 0x33d, 12 },{ 0xab, 13 },{ 0xf1, 13 }, | |
168 { 0x678, 13 },{ 0xf2, 13 },{ 0x1e0, 14 },{ 0x1e1, 14 }, | |
169 { 0x154, 14 },{ 0xcf2, 14 },{ 0x3cc, 15 },{ 0x2ab, 15 }, | |
170 { 0x19e7, 15 },{ 0x3ce, 15 },{ 0x19e6, 15 },{ 0x554, 16 }, | |
171 { 0x79f, 16 },{ 0x555, 16 },{ 0xf3d, 17 },{ 0xf37, 17 }, | |
172 { 0xf3c, 17 },{ 0xf35, 17 },{ 0x1e6d, 18 },{ 0x1e68, 18 }, | |
173 { 0x3cd8, 19 },{ 0x3cd3, 19 },{ 0x3cd9, 19 },{ 0x79a4, 20 }, | |
174 { 0xf34ba, 25 },{ 0xf34b4, 25 },{ 0xf34b5, 25 },{ 0xf34b6, 25 }, | |
175 { 0xf34b7, 25 },{ 0xf34b8, 25 },{ 0xf34b9, 25 },{ 0xf34bb, 25 }, | |
176 { 0xf34bc, 25 },{ 0xf34bd, 25 },{ 0xf34be, 25 },{ 0xf34bf, 25 }, | |
177 { 0x1e6940, 26 },{ 0x1e6941, 26 },{ 0x1e6942, 26 },{ 0x1e6943, 26 }, | |
178 { 0x1e6944, 26 },{ 0x1e6945, 26 },{ 0x1e6946, 26 },{ 0x1e6947, 26 }, | |
179 { 0x1e6948, 26 },{ 0x1e6949, 26 },{ 0x1e694a, 26 },{ 0x1e694b, 26 }, | |
180 { 0x1e694c, 26 },{ 0x1e694d, 26 },{ 0x1e694e, 26 },{ 0x1e694f, 26 }, | |
181 { 0x1e6950, 26 },{ 0x1e6951, 26 },{ 0x1e6952, 26 },{ 0x1e6953, 26 }, | |
182 { 0x1e6954, 26 },{ 0x1e6955, 26 },{ 0x1e6956, 26 },{ 0x1e6957, 26 }, | |
183 { 0x1e6958, 26 },{ 0x1e6959, 26 },{ 0x1e695a, 26 },{ 0x1e695b, 26 }, | |
184 { 0x1e695c, 26 },{ 0x1e695d, 26 },{ 0x1e695e, 26 },{ 0x1e695f, 26 }, | |
185 { 0x1e6960, 26 },{ 0x1e6961, 26 },{ 0x1e6962, 26 },{ 0x1e6963, 26 }, | |
186 { 0x1e6964, 26 },{ 0x1e6965, 26 },{ 0x1e6966, 26 },{ 0x1e6967, 26 }, | |
187 }; | |
188 | |
2465
5565203c95ee
use dc tables from msmpeg4 instead of duplicating them patch by anonymous
michael
parents:
1106
diff
changeset
|
189 const uint32_t ff_table1_dc_chroma[120][2] = { |
0 | 190 { 0x0, 2 },{ 0x1, 2 },{ 0x4, 3 },{ 0x7, 3 }, |
191 { 0xb, 4 },{ 0xd, 4 },{ 0x15, 5 },{ 0x28, 6 }, | |
192 { 0x30, 6 },{ 0x32, 6 },{ 0x52, 7 },{ 0x62, 7 }, | |
193 { 0x66, 7 },{ 0xa6, 8 },{ 0xc6, 8 },{ 0xcf, 8 }, | |
194 { 0x14f, 9 },{ 0x18e, 9 },{ 0x19c, 9 },{ 0x29d, 10 }, | |
195 { 0x33a, 10 },{ 0x538, 11 },{ 0x63c, 11 },{ 0x63e, 11 }, | |
196 { 0x63f, 11 },{ 0x676, 11 },{ 0xa73, 12 },{ 0xc7a, 12 }, | |
197 { 0xcef, 12 },{ 0x14e5, 13 },{ 0x19dd, 13 },{ 0x29c8, 14 }, | |
198 { 0x29c9, 14 },{ 0x63dd, 15 },{ 0x33b8, 14 },{ 0x33b9, 14 }, | |
199 { 0xc7b6, 16 },{ 0x63d8, 15 },{ 0x63df, 15 },{ 0xc7b3, 16 }, | |
200 { 0xc7b4, 16 },{ 0xc7b5, 16 },{ 0x63de, 15 },{ 0xc7b7, 16 }, | |
201 { 0xc7b8, 16 },{ 0xc7b9, 16 },{ 0x18f65, 17 },{ 0x31ec8, 18 }, | |
202 { 0xc7b248, 24 },{ 0xc7b249, 24 },{ 0xc7b24a, 24 },{ 0xc7b24b, 24 }, | |
203 { 0xc7b24c, 24 },{ 0xc7b24d, 24 },{ 0xc7b24e, 24 },{ 0xc7b24f, 24 }, | |
204 { 0xc7b250, 24 },{ 0xc7b251, 24 },{ 0xc7b252, 24 },{ 0xc7b253, 24 }, | |
205 { 0xc7b254, 24 },{ 0xc7b255, 24 },{ 0xc7b256, 24 },{ 0xc7b257, 24 }, | |
206 { 0xc7b258, 24 },{ 0xc7b259, 24 },{ 0xc7b25a, 24 },{ 0xc7b25b, 24 }, | |
207 { 0xc7b25c, 24 },{ 0xc7b25d, 24 },{ 0xc7b25e, 24 },{ 0xc7b25f, 24 }, | |
208 { 0xc7b260, 24 },{ 0xc7b261, 24 },{ 0xc7b262, 24 },{ 0xc7b263, 24 }, | |
209 { 0xc7b264, 24 },{ 0xc7b265, 24 },{ 0xc7b266, 24 },{ 0xc7b267, 24 }, | |
210 { 0xc7b268, 24 },{ 0xc7b269, 24 },{ 0xc7b26a, 24 },{ 0xc7b26b, 24 }, | |
211 { 0xc7b26c, 24 },{ 0xc7b26d, 24 },{ 0xc7b26e, 24 },{ 0xc7b26f, 24 }, | |
212 { 0xc7b270, 24 },{ 0xc7b271, 24 },{ 0xc7b272, 24 },{ 0xc7b273, 24 }, | |
213 { 0xc7b274, 24 },{ 0xc7b275, 24 },{ 0xc7b276, 24 },{ 0xc7b277, 24 }, | |
214 { 0xc7b278, 24 },{ 0xc7b279, 24 },{ 0xc7b27a, 24 },{ 0xc7b27b, 24 }, | |
215 { 0xc7b27c, 24 },{ 0xc7b27d, 24 },{ 0xc7b27e, 24 },{ 0xc7b27f, 24 }, | |
216 { 0x18f6480, 25 },{ 0x18f6481, 25 },{ 0x18f6482, 25 },{ 0x18f6483, 25 }, | |
217 { 0x18f6484, 25 },{ 0x18f6485, 25 },{ 0x18f6486, 25 },{ 0x18f6487, 25 }, | |
218 { 0x18f6488, 25 },{ 0x18f6489, 25 },{ 0x18f648a, 25 },{ 0x18f648b, 25 }, | |
219 { 0x18f648c, 25 },{ 0x18f648d, 25 },{ 0x18f648e, 25 },{ 0x18f648f, 25 }, | |
220 }; | |
221 | |
222 /* vlc table 0, for intra luma */ | |
223 | |
936 | 224 static const uint16_t table0_vlc[133][2] = { |
0 | 225 { 0x1, 2 },{ 0x6, 3 },{ 0xf, 4 },{ 0x16, 5 }, |
226 { 0x20, 6 },{ 0x18, 7 },{ 0x8, 8 },{ 0x9a, 8 }, | |
227 { 0x56, 9 },{ 0x13e, 9 },{ 0xf0, 10 },{ 0x3a5, 10 }, | |
228 { 0x77, 11 },{ 0x1ef, 11 },{ 0x9a, 12 },{ 0x5d, 13 }, | |
229 { 0x1, 4 },{ 0x11, 5 },{ 0x2, 7 },{ 0xb, 8 }, | |
230 { 0x12, 9 },{ 0x1d6, 9 },{ 0x27e, 10 },{ 0x191, 11 }, | |
231 { 0xea, 12 },{ 0x3dc, 12 },{ 0x13b, 13 },{ 0x4, 5 }, | |
232 { 0x14, 7 },{ 0x9e, 8 },{ 0x9, 10 },{ 0x1ac, 11 }, | |
233 { 0x1e2, 11 },{ 0x3ca, 12 },{ 0x5f, 13 },{ 0x17, 5 }, | |
234 { 0x4e, 7 },{ 0x5e, 9 },{ 0xf3, 10 },{ 0x1ad, 11 }, | |
235 { 0xec, 12 },{ 0x5f0, 13 },{ 0xe, 6 },{ 0xe1, 8 }, | |
236 { 0x3a4, 10 },{ 0x9c, 12 },{ 0x13d, 13 },{ 0x3b, 6 }, | |
237 { 0x1c, 9 },{ 0x14, 11 },{ 0x9be, 12 },{ 0x6, 7 }, | |
238 { 0x7a, 9 },{ 0x190, 11 },{ 0x137, 13 },{ 0x1b, 7 }, | |
239 { 0x8, 10 },{ 0x75c, 11 },{ 0x71, 7 },{ 0xd7, 10 }, | |
240 { 0x9bf, 12 },{ 0x7, 8 },{ 0xaf, 10 },{ 0x4cc, 11 }, | |
241 { 0x34, 8 },{ 0x265, 10 },{ 0x9f, 12 },{ 0xe0, 8 }, | |
242 { 0x16, 11 },{ 0x327, 12 },{ 0x15, 9 },{ 0x17d, 11 }, | |
243 { 0xebb, 12 },{ 0x14, 9 },{ 0xf6, 10 },{ 0x1e4, 11 }, | |
244 { 0xcb, 10 },{ 0x99d, 12 },{ 0xca, 10 },{ 0x2fc, 12 }, | |
245 { 0x17f, 11 },{ 0x4cd, 11 },{ 0x2fd, 12 },{ 0x4fe, 11 }, | |
246 { 0x13a, 13 },{ 0xa, 4 },{ 0x42, 7 },{ 0x1d3, 9 }, | |
247 { 0x4dd, 11 },{ 0x12, 5 },{ 0xe8, 8 },{ 0x4c, 11 }, | |
248 { 0x136, 13 },{ 0x39, 6 },{ 0x264, 10 },{ 0xeba, 12 }, | |
249 { 0x0, 7 },{ 0xae, 10 },{ 0x99c, 12 },{ 0x1f, 7 }, | |
250 { 0x4de, 11 },{ 0x43, 7 },{ 0x4dc, 11 },{ 0x3, 8 }, | |
251 { 0x3cb, 12 },{ 0x6, 8 },{ 0x99e, 12 },{ 0x2a, 8 }, | |
252 { 0x5f1, 13 },{ 0xf, 8 },{ 0x9fe, 12 },{ 0x33, 8 }, | |
253 { 0x9ff, 12 },{ 0x98, 8 },{ 0x99f, 12 },{ 0xea, 8 }, | |
254 { 0x13c, 13 },{ 0x2e, 8 },{ 0x192, 11 },{ 0x136, 9 }, | |
255 { 0x6a, 9 },{ 0x15, 11 },{ 0x3af, 10 },{ 0x1e3, 11 }, | |
256 { 0x74, 11 },{ 0xeb, 12 },{ 0x2f9, 12 },{ 0x5c, 13 }, | |
257 { 0xed, 12 },{ 0x3dd, 12 },{ 0x326, 12 },{ 0x5e, 13 }, | |
258 { 0x16, 7 }, | |
259 }; | |
260 | |
936 | 261 static const int8_t table0_level[132] = { |
0 | 262 1, 2, 3, 4, 5, 6, 7, 8, |
263 9, 10, 11, 12, 13, 14, 15, 16, | |
264 1, 2, 3, 4, 5, 6, 7, 8, | |
265 9, 10, 11, 1, 2, 3, 4, 5, | |
266 6, 7, 8, 1, 2, 3, 4, 5, | |
267 6, 7, 1, 2, 3, 4, 5, 1, | |
268 2, 3, 4, 1, 2, 3, 4, 1, | |
269 2, 3, 1, 2, 3, 1, 2, 3, | |
270 1, 2, 3, 1, 2, 3, 1, 2, | |
271 3, 1, 2, 3, 1, 2, 1, 2, | |
272 1, 1, 1, 1, 1, 1, 2, 3, | |
273 4, 1, 2, 3, 4, 1, 2, 3, | |
274 1, 2, 3, 1, 2, 1, 2, 1, | |
275 2, 1, 2, 1, 2, 1, 2, 1, | |
276 2, 1, 2, 1, 2, 1, 2, 1, | |
277 1, 1, 1, 1, 1, 1, 1, 1, | |
278 1, 1, 1, 1, | |
279 }; | |
280 | |
936 | 281 static const int8_t table0_run[132] = { |
0 | 282 0, 0, 0, 0, 0, 0, 0, 0, |
283 0, 0, 0, 0, 0, 0, 0, 0, | |
284 1, 1, 1, 1, 1, 1, 1, 1, | |
285 1, 1, 1, 2, 2, 2, 2, 2, | |
286 2, 2, 2, 3, 3, 3, 3, 3, | |
287 3, 3, 4, 4, 4, 4, 4, 5, | |
288 5, 5, 5, 6, 6, 6, 6, 7, | |
289 7, 7, 8, 8, 8, 9, 9, 9, | |
290 10, 10, 10, 11, 11, 11, 12, 12, | |
291 12, 13, 13, 13, 14, 14, 15, 15, | |
292 16, 17, 18, 19, 20, 0, 0, 0, | |
293 0, 1, 1, 1, 1, 2, 2, 2, | |
294 3, 3, 3, 4, 4, 5, 5, 6, | |
295 6, 7, 7, 8, 8, 9, 9, 10, | |
296 10, 11, 11, 12, 12, 13, 13, 14, | |
297 15, 16, 17, 18, 19, 20, 21, 22, | |
298 23, 24, 25, 26, | |
299 }; | |
300 | |
301 /* vlc table 1, for intra chroma and P macro blocks */ | |
302 | |
936 | 303 static const uint16_t table1_vlc[149][2] = { |
0 | 304 { 0x4, 3 },{ 0x14, 5 },{ 0x17, 7 },{ 0x7f, 8 }, |
305 { 0x154, 9 },{ 0x1f2, 10 },{ 0xbf, 11 },{ 0x65, 12 }, | |
306 { 0xaaa, 12 },{ 0x630, 13 },{ 0x1597, 13 },{ 0x3b7, 14 }, | |
307 { 0x2b22, 14 },{ 0xbe6, 15 },{ 0xb, 4 },{ 0x37, 7 }, | |
308 { 0x62, 9 },{ 0x7, 11 },{ 0x166, 12 },{ 0xce, 13 }, | |
309 { 0x1590, 13 },{ 0x5f6, 14 },{ 0xbe7, 15 },{ 0x7, 5 }, | |
310 { 0x6d, 8 },{ 0x3, 11 },{ 0x31f, 12 },{ 0x5f2, 14 }, | |
311 { 0x2, 6 },{ 0x61, 9 },{ 0x55, 12 },{ 0x1df, 14 }, | |
312 { 0x1a, 6 },{ 0x1e, 10 },{ 0xac9, 12 },{ 0x2b23, 14 }, | |
313 { 0x1e, 6 },{ 0x1f, 10 },{ 0xac3, 12 },{ 0x2b2b, 14 }, | |
314 { 0x6, 7 },{ 0x4, 11 },{ 0x2f8, 13 },{ 0x19, 7 }, | |
315 { 0x6, 11 },{ 0x63d, 13 },{ 0x57, 7 },{ 0x182, 11 }, | |
316 { 0x2aa2, 14 },{ 0x4, 8 },{ 0x180, 11 },{ 0x59c, 14 }, | |
317 { 0x7d, 8 },{ 0x164, 12 },{ 0x76d, 15 },{ 0x2, 9 }, | |
318 { 0x18d, 11 },{ 0x1581, 13 },{ 0xad, 8 },{ 0x60, 12 }, | |
319 { 0xc67, 14 },{ 0x1c, 9 },{ 0xee, 13 },{ 0x3, 9 }, | |
320 { 0x2cf, 13 },{ 0xd9, 9 },{ 0x1580, 13 },{ 0x2, 11 }, | |
321 { 0x183, 11 },{ 0x57, 12 },{ 0x61, 12 },{ 0x31, 11 }, | |
322 { 0x66, 12 },{ 0x631, 13 },{ 0x632, 13 },{ 0xac, 13 }, | |
323 { 0x31d, 12 },{ 0x76, 12 },{ 0x3a, 11 },{ 0x165, 12 }, | |
324 { 0xc66, 14 },{ 0x3, 2 },{ 0x54, 7 },{ 0x2ab, 10 }, | |
325 { 0x16, 13 },{ 0x5f7, 14 },{ 0x5, 4 },{ 0xf8, 9 }, | |
326 { 0xaa9, 12 },{ 0x5f, 15 },{ 0x4, 4 },{ 0x1c, 10 }, | |
327 { 0x1550, 13 },{ 0x4, 5 },{ 0x77, 11 },{ 0x76c, 15 }, | |
328 { 0xe, 5 },{ 0xa, 12 },{ 0xc, 5 },{ 0x562, 11 }, | |
329 { 0x4, 6 },{ 0x31c, 12 },{ 0x6, 6 },{ 0xc8, 13 }, | |
330 { 0xd, 6 },{ 0x1da, 13 },{ 0x7, 6 },{ 0xc9, 13 }, | |
331 { 0x1, 7 },{ 0x2e, 14 },{ 0x14, 7 },{ 0x1596, 13 }, | |
332 { 0xa, 7 },{ 0xac2, 12 },{ 0x16, 7 },{ 0x15b, 14 }, | |
333 { 0x15, 7 },{ 0x15a, 14 },{ 0xf, 8 },{ 0x5e, 15 }, | |
334 { 0x7e, 8 },{ 0xab, 8 },{ 0x2d, 9 },{ 0xd8, 9 }, | |
335 { 0xb, 9 },{ 0x14, 10 },{ 0x2b3, 10 },{ 0x1f3, 10 }, | |
336 { 0x3a, 10 },{ 0x0, 10 },{ 0x58, 10 },{ 0x2e, 9 }, | |
337 { 0x5e, 10 },{ 0x563, 11 },{ 0xec, 12 },{ 0x54, 12 }, | |
338 { 0xac1, 12 },{ 0x1556, 13 },{ 0x2fa, 13 },{ 0x181, 11 }, | |
339 { 0x1557, 13 },{ 0x59d, 14 },{ 0x2aa3, 14 },{ 0x2b2a, 14 }, | |
340 { 0x1de, 14 },{ 0x63c, 13 },{ 0xcf, 13 },{ 0x1594, 13 }, | |
341 { 0xd, 9 }, | |
342 }; | |
343 | |
936 | 344 static const int8_t table1_level[148] = { |
0 | 345 1, 2, 3, 4, 5, 6, 7, 8, |
346 9, 10, 11, 12, 13, 14, 1, 2, | |
347 3, 4, 5, 6, 7, 8, 9, 1, | |
348 2, 3, 4, 5, 1, 2, 3, 4, | |
349 1, 2, 3, 4, 1, 2, 3, 4, | |
350 1, 2, 3, 1, 2, 3, 1, 2, | |
351 3, 1, 2, 3, 1, 2, 3, 1, | |
352 2, 3, 1, 2, 3, 1, 2, 1, | |
353 2, 1, 2, 1, 1, 1, 1, 1, | |
354 1, 1, 1, 1, 1, 1, 1, 1, | |
355 1, 1, 2, 3, 4, 5, 1, 2, | |
356 3, 4, 1, 2, 3, 1, 2, 3, | |
357 1, 2, 1, 2, 1, 2, 1, 2, | |
358 1, 2, 1, 2, 1, 2, 1, 2, | |
359 1, 2, 1, 2, 1, 2, 1, 2, | |
360 1, 1, 1, 1, 1, 1, 1, 1, | |
361 1, 1, 1, 1, 1, 1, 1, 1, | |
362 1, 1, 1, 1, 1, 1, 1, 1, | |
363 1, 1, 1, 1, | |
364 }; | |
365 | |
936 | 366 static const int8_t table1_run[148] = { |
0 | 367 0, 0, 0, 0, 0, 0, 0, 0, |
368 0, 0, 0, 0, 0, 0, 1, 1, | |
369 1, 1, 1, 1, 1, 1, 1, 2, | |
370 2, 2, 2, 2, 3, 3, 3, 3, | |
371 4, 4, 4, 4, 5, 5, 5, 5, | |
372 6, 6, 6, 7, 7, 7, 8, 8, | |
373 8, 9, 9, 9, 10, 10, 10, 11, | |
374 11, 11, 12, 12, 12, 13, 13, 14, | |
375 14, 15, 15, 16, 17, 18, 19, 20, | |
376 21, 22, 23, 24, 25, 26, 27, 28, | |
377 29, 0, 0, 0, 0, 0, 1, 1, | |
378 1, 1, 2, 2, 2, 3, 3, 3, | |
379 4, 4, 5, 5, 6, 6, 7, 7, | |
380 8, 8, 9, 9, 10, 10, 11, 11, | |
381 12, 12, 13, 13, 14, 14, 15, 15, | |
382 16, 17, 18, 19, 20, 21, 22, 23, | |
383 24, 25, 26, 27, 28, 29, 30, 31, | |
384 32, 33, 34, 35, 36, 37, 38, 39, | |
385 40, 41, 42, 43, | |
386 }; | |
387 | |
388 /* third vlc table */ | |
389 | |
936 | 390 static const uint16_t table2_vlc[186][2] = { |
0 | 391 { 0x1, 2 },{ 0x5, 3 },{ 0xd, 4 },{ 0x12, 5 }, |
392 { 0xe, 6 },{ 0x15, 7 },{ 0x13, 8 },{ 0x3f, 8 }, | |
393 { 0x4b, 9 },{ 0x11f, 9 },{ 0xb8, 10 },{ 0x3e3, 10 }, | |
394 { 0x172, 11 },{ 0x24d, 12 },{ 0x3da, 12 },{ 0x2dd, 13 }, | |
395 { 0x1f55, 13 },{ 0x5b9, 14 },{ 0x3eae, 14 },{ 0x0, 4 }, | |
396 { 0x10, 5 },{ 0x8, 7 },{ 0x20, 8 },{ 0x29, 9 }, | |
397 { 0x1f4, 9 },{ 0x233, 10 },{ 0x1e0, 11 },{ 0x12a, 12 }, | |
398 { 0x3dd, 12 },{ 0x50a, 13 },{ 0x1f29, 13 },{ 0xa42, 14 }, | |
399 { 0x1272, 15 },{ 0x1737, 15 },{ 0x3, 5 },{ 0x11, 7 }, | |
400 { 0xc4, 8 },{ 0x4b, 10 },{ 0xb4, 11 },{ 0x7d4, 11 }, | |
401 { 0x345, 12 },{ 0x2d7, 13 },{ 0x7bf, 13 },{ 0x938, 14 }, | |
402 { 0xbbb, 14 },{ 0x95e, 15 },{ 0x13, 5 },{ 0x78, 7 }, | |
403 { 0x69, 9 },{ 0x232, 10 },{ 0x461, 11 },{ 0x3ec, 12 }, | |
404 { 0x520, 13 },{ 0x1f2a, 13 },{ 0x3e50, 14 },{ 0x3e51, 14 }, | |
405 { 0x1486, 15 },{ 0xc, 6 },{ 0x24, 9 },{ 0x94, 11 }, | |
406 { 0x8c0, 12 },{ 0xf09, 14 },{ 0x1ef0, 15 },{ 0x3d, 6 }, | |
407 { 0x53, 9 },{ 0x1a0, 11 },{ 0x2d6, 13 },{ 0xf08, 14 }, | |
408 { 0x13, 7 },{ 0x7c, 9 },{ 0x7c1, 11 },{ 0x4ac, 14 }, | |
409 { 0x1b, 7 },{ 0xa0, 10 },{ 0x344, 12 },{ 0xf79, 14 }, | |
410 { 0x79, 7 },{ 0x3e1, 10 },{ 0x2d4, 13 },{ 0x2306, 14 }, | |
411 { 0x21, 8 },{ 0x23c, 10 },{ 0xfae, 12 },{ 0x23de, 14 }, | |
412 { 0x35, 8 },{ 0x175, 11 },{ 0x7b3, 13 },{ 0xc5, 8 }, | |
413 { 0x174, 11 },{ 0x785, 13 },{ 0x48, 9 },{ 0x1a3, 11 }, | |
414 { 0x49e, 13 },{ 0x2c, 9 },{ 0xfa, 10 },{ 0x7d6, 11 }, | |
415 { 0x92, 10 },{ 0x5cc, 13 },{ 0x1ef1, 15 },{ 0xa3, 10 }, | |
416 { 0x3ed, 12 },{ 0x93e, 14 },{ 0x1e2, 11 },{ 0x1273, 15 }, | |
417 { 0x7c4, 11 },{ 0x1487, 15 },{ 0x291, 12 },{ 0x293, 12 }, | |
418 { 0xf8a, 12 },{ 0x509, 13 },{ 0x508, 13 },{ 0x78d, 13 }, | |
419 { 0x7be, 13 },{ 0x78c, 13 },{ 0x4ae, 14 },{ 0xbba, 14 }, | |
420 { 0x2307, 14 },{ 0xb9a, 14 },{ 0x1736, 15 },{ 0xe, 4 }, | |
421 { 0x45, 7 },{ 0x1f3, 9 },{ 0x47a, 11 },{ 0x5dc, 13 }, | |
422 { 0x23df, 14 },{ 0x19, 5 },{ 0x28, 9 },{ 0x176, 11 }, | |
423 { 0x49d, 13 },{ 0x23dd, 14 },{ 0x30, 6 },{ 0xa2, 10 }, | |
424 { 0x2ef, 12 },{ 0x5b8, 14 },{ 0x3f, 6 },{ 0xa5, 10 }, | |
425 { 0x3db, 12 },{ 0x93f, 14 },{ 0x44, 7 },{ 0x7cb, 11 }, | |
426 { 0x95f, 15 },{ 0x63, 7 },{ 0x3c3, 12 },{ 0x15, 8 }, | |
427 { 0x8f6, 12 },{ 0x17, 8 },{ 0x498, 13 },{ 0x2c, 8 }, | |
428 { 0x7b2, 13 },{ 0x2f, 8 },{ 0x1f54, 13 },{ 0x8d, 8 }, | |
429 { 0x7bd, 13 },{ 0x8e, 8 },{ 0x1182, 13 },{ 0xfb, 8 }, | |
430 { 0x50b, 13 },{ 0x2d, 8 },{ 0x7c0, 11 },{ 0x79, 9 }, | |
431 { 0x1f5f, 13 },{ 0x7a, 9 },{ 0x1f56, 13 },{ 0x231, 10 }, | |
432 { 0x3e4, 10 },{ 0x1a1, 11 },{ 0x143, 11 },{ 0x1f7, 11 }, | |
433 { 0x16f, 12 },{ 0x292, 12 },{ 0x2e7, 12 },{ 0x16c, 12 }, | |
434 { 0x16d, 12 },{ 0x3dc, 12 },{ 0xf8b, 12 },{ 0x499, 13 }, | |
435 { 0x3d8, 12 },{ 0x78e, 13 },{ 0x2d5, 13 },{ 0x1f5e, 13 }, | |
436 { 0x1f2b, 13 },{ 0x78f, 13 },{ 0x4ad, 14 },{ 0x3eaf, 14 }, | |
437 { 0x23dc, 14 },{ 0x4a, 9 }, | |
438 }; | |
439 | |
936 | 440 static const int8_t table2_level[185] = { |
0 | 441 1, 2, 3, 4, 5, 6, 7, 8, |
442 9, 10, 11, 12, 13, 14, 15, 16, | |
443 17, 18, 19, 1, 2, 3, 4, 5, | |
444 6, 7, 8, 9, 10, 11, 12, 13, | |
445 14, 15, 1, 2, 3, 4, 5, 6, | |
446 7, 8, 9, 10, 11, 12, 1, 2, | |
447 3, 4, 5, 6, 7, 8, 9, 10, | |
448 11, 1, 2, 3, 4, 5, 6, 1, | |
449 2, 3, 4, 5, 1, 2, 3, 4, | |
450 1, 2, 3, 4, 1, 2, 3, 4, | |
451 1, 2, 3, 4, 1, 2, 3, 1, | |
452 2, 3, 1, 2, 3, 1, 2, 3, | |
453 1, 2, 3, 1, 2, 3, 1, 2, | |
454 1, 2, 1, 1, 1, 1, 1, 1, | |
455 1, 1, 1, 1, 1, 1, 1, 1, | |
456 2, 3, 4, 5, 6, 1, 2, 3, | |
457 4, 5, 1, 2, 3, 4, 1, 2, | |
458 3, 4, 1, 2, 3, 1, 2, 1, | |
459 2, 1, 2, 1, 2, 1, 2, 1, | |
460 2, 1, 2, 1, 2, 1, 2, 1, | |
461 2, 1, 2, 1, 1, 1, 1, 1, | |
462 1, 1, 1, 1, 1, 1, 1, 1, | |
463 1, 1, 1, 1, 1, 1, 1, 1, | |
464 1, | |
465 }; | |
466 | |
936 | 467 static const int8_t table2_run[185] = { |
0 | 468 0, 0, 0, 0, 0, 0, 0, 0, |
469 0, 0, 0, 0, 0, 0, 0, 0, | |
470 0, 0, 0, 1, 1, 1, 1, 1, | |
471 1, 1, 1, 1, 1, 1, 1, 1, | |
472 1, 1, 2, 2, 2, 2, 2, 2, | |
473 2, 2, 2, 2, 2, 2, 3, 3, | |
474 3, 3, 3, 3, 3, 3, 3, 3, | |
475 3, 4, 4, 4, 4, 4, 4, 5, | |
476 5, 5, 5, 5, 6, 6, 6, 6, | |
477 7, 7, 7, 7, 8, 8, 8, 8, | |
478 9, 9, 9, 9, 10, 10, 10, 11, | |
479 11, 11, 12, 12, 12, 13, 13, 13, | |
480 14, 14, 14, 15, 15, 15, 16, 16, | |
481 17, 17, 18, 19, 20, 21, 22, 23, | |
482 24, 25, 26, 27, 28, 29, 30, 0, | |
483 0, 0, 0, 0, 0, 1, 1, 1, | |
484 1, 1, 2, 2, 2, 2, 3, 3, | |
485 3, 3, 4, 4, 4, 5, 5, 6, | |
486 6, 7, 7, 8, 8, 9, 9, 10, | |
487 10, 11, 11, 12, 12, 13, 13, 14, | |
488 14, 15, 15, 16, 17, 18, 19, 20, | |
489 21, 22, 23, 24, 25, 26, 27, 28, | |
490 29, 30, 31, 32, 33, 34, 35, 36, | |
491 37, | |
492 }; | |
493 | |
494 /* second non intra vlc table */ | |
936 | 495 static const uint16_t table4_vlc[169][2] = { |
0 | 496 { 0x0, 3 },{ 0x3, 4 },{ 0xb, 5 },{ 0x14, 6 }, |
497 { 0x3f, 6 },{ 0x5d, 7 },{ 0xa2, 8 },{ 0xac, 9 }, | |
498 { 0x16e, 9 },{ 0x20a, 10 },{ 0x2e2, 10 },{ 0x432, 11 }, | |
499 { 0x5c9, 11 },{ 0x827, 12 },{ 0xb54, 12 },{ 0x4e6, 13 }, | |
500 { 0x105f, 13 },{ 0x172a, 13 },{ 0x20b2, 14 },{ 0x2d4e, 14 }, | |
501 { 0x39f0, 14 },{ 0x4175, 15 },{ 0x5a9e, 15 },{ 0x4, 4 }, | |
502 { 0x1e, 5 },{ 0x42, 7 },{ 0xb6, 8 },{ 0x173, 9 }, | |
503 { 0x395, 10 },{ 0x72e, 11 },{ 0xb94, 12 },{ 0x16a4, 13 }, | |
504 { 0x20b3, 14 },{ 0x2e45, 14 },{ 0x5, 5 },{ 0x40, 7 }, | |
505 { 0x49, 9 },{ 0x28f, 10 },{ 0x5cb, 11 },{ 0x48a, 13 }, | |
506 { 0x9dd, 14 },{ 0x73e2, 15 },{ 0x18, 5 },{ 0x25, 8 }, | |
507 { 0x8a, 10 },{ 0x51b, 11 },{ 0xe5f, 12 },{ 0x9c9, 14 }, | |
508 { 0x139c, 15 },{ 0x29, 6 },{ 0x4f, 9 },{ 0x412, 11 }, | |
509 { 0x48d, 13 },{ 0x2e41, 14 },{ 0x38, 6 },{ 0x10e, 9 }, | |
510 { 0x5a8, 11 },{ 0x105c, 13 },{ 0x39f2, 14 },{ 0x58, 7 }, | |
511 { 0x21f, 10 },{ 0xe7e, 12 },{ 0x39ff, 14 },{ 0x23, 8 }, | |
512 { 0x2e3, 10 },{ 0x4e5, 13 },{ 0x2e40, 14 },{ 0xa1, 8 }, | |
513 { 0x5be, 11 },{ 0x9c8, 14 },{ 0x83, 8 },{ 0x13a, 11 }, | |
514 { 0x1721, 13 },{ 0x44, 9 },{ 0x276, 12 },{ 0x39f6, 14 }, | |
515 { 0x8b, 10 },{ 0x4ef, 13 },{ 0x5a9b, 15 },{ 0x208, 10 }, | |
516 { 0x1cfe, 13 },{ 0x399, 10 },{ 0x1cb4, 13 },{ 0x39e, 10 }, | |
517 { 0x39f3, 14 },{ 0x5ab, 11 },{ 0x73e3, 15 },{ 0x737, 11 }, | |
518 { 0x5a9f, 15 },{ 0x82d, 12 },{ 0xe69, 12 },{ 0xe68, 12 }, | |
519 { 0x433, 11 },{ 0xb7b, 12 },{ 0x2df8, 14 },{ 0x2e56, 14 }, | |
520 { 0x2e57, 14 },{ 0x39f7, 14 },{ 0x51a5, 15 },{ 0x3, 3 }, | |
521 { 0x2a, 6 },{ 0xe4, 8 },{ 0x28e, 10 },{ 0x735, 11 }, | |
522 { 0x1058, 13 },{ 0x1cfa, 13 },{ 0x2df9, 14 },{ 0x4174, 15 }, | |
523 { 0x9, 4 },{ 0x54, 8 },{ 0x398, 10 },{ 0x48b, 13 }, | |
524 { 0x139d, 15 },{ 0xd, 4 },{ 0xad, 9 },{ 0x826, 12 }, | |
525 { 0x2d4c, 14 },{ 0x11, 5 },{ 0x16b, 9 },{ 0xb7f, 12 }, | |
526 { 0x51a4, 15 },{ 0x19, 5 },{ 0x21b, 10 },{ 0x16fd, 13 }, | |
527 { 0x1d, 5 },{ 0x394, 10 },{ 0x28d3, 14 },{ 0x2b, 6 }, | |
528 { 0x5bc, 11 },{ 0x5a9a, 15 },{ 0x2f, 6 },{ 0x247, 12 }, | |
529 { 0x10, 7 },{ 0xa35, 12 },{ 0x3e, 6 },{ 0xb7a, 12 }, | |
530 { 0x59, 7 },{ 0x105e, 13 },{ 0x26, 8 },{ 0x9cf, 14 }, | |
531 { 0x55, 8 },{ 0x1cb5, 13 },{ 0x57, 8 },{ 0xe5b, 12 }, | |
532 { 0xa0, 8 },{ 0x1468, 13 },{ 0x170, 9 },{ 0x90, 10 }, | |
533 { 0x1ce, 9 },{ 0x21a, 10 },{ 0x218, 10 },{ 0x168, 9 }, | |
534 { 0x21e, 10 },{ 0x244, 12 },{ 0x736, 11 },{ 0x138, 11 }, | |
535 { 0x519, 11 },{ 0xe5e, 12 },{ 0x72c, 11 },{ 0xb55, 12 }, | |
536 { 0x9dc, 14 },{ 0x20bb, 14 },{ 0x48c, 13 },{ 0x1723, 13 }, | |
537 { 0x2e44, 14 },{ 0x16a5, 13 },{ 0x518, 11 },{ 0x39fe, 14 }, | |
538 { 0x169, 9 }, | |
539 }; | |
540 | |
936 | 541 static const int8_t table4_level[168] = { |
0 | 542 1, 2, 3, 4, 5, 6, 7, 8, |
543 9, 10, 11, 12, 13, 14, 15, 16, | |
544 17, 18, 19, 20, 21, 22, 23, 1, | |
545 2, 3, 4, 5, 6, 7, 8, 9, | |
546 10, 11, 1, 2, 3, 4, 5, 6, | |
547 7, 8, 1, 2, 3, 4, 5, 6, | |
548 7, 1, 2, 3, 4, 5, 1, 2, | |
549 3, 4, 5, 1, 2, 3, 4, 1, | |
550 2, 3, 4, 1, 2, 3, 1, 2, | |
551 3, 1, 2, 3, 1, 2, 3, 1, | |
552 2, 1, 2, 1, 2, 1, 2, 1, | |
553 2, 1, 1, 1, 1, 1, 1, 1, | |
554 1, 1, 1, 1, 2, 3, 4, 5, | |
555 6, 7, 8, 9, 1, 2, 3, 4, | |
556 5, 1, 2, 3, 4, 1, 2, 3, | |
557 4, 1, 2, 3, 1, 2, 3, 1, | |
558 2, 3, 1, 2, 1, 2, 1, 2, | |
559 1, 2, 1, 2, 1, 2, 1, 2, | |
560 1, 2, 1, 1, 1, 1, 1, 1, | |
561 1, 1, 1, 1, 1, 1, 1, 1, | |
562 1, 1, 1, 1, 1, 1, 1, 1, | |
563 }; | |
564 | |
936 | 565 static const int8_t table4_run[168] = { |
0 | 566 0, 0, 0, 0, 0, 0, 0, 0, |
567 0, 0, 0, 0, 0, 0, 0, 0, | |
568 0, 0, 0, 0, 0, 0, 0, 1, | |
569 1, 1, 1, 1, 1, 1, 1, 1, | |
570 1, 1, 2, 2, 2, 2, 2, 2, | |
571 2, 2, 3, 3, 3, 3, 3, 3, | |
572 3, 4, 4, 4, 4, 4, 5, 5, | |
573 5, 5, 5, 6, 6, 6, 6, 7, | |
574 7, 7, 7, 8, 8, 8, 9, 9, | |
575 9, 10, 10, 10, 11, 11, 11, 12, | |
576 12, 13, 13, 14, 14, 15, 15, 16, | |
577 16, 17, 18, 19, 20, 21, 22, 23, | |
578 24, 25, 26, 0, 0, 0, 0, 0, | |
579 0, 0, 0, 0, 1, 1, 1, 1, | |
580 1, 2, 2, 2, 2, 3, 3, 3, | |
581 3, 4, 4, 4, 5, 5, 5, 6, | |
582 6, 6, 7, 7, 8, 8, 9, 9, | |
583 10, 10, 11, 11, 12, 12, 13, 13, | |
584 14, 14, 15, 16, 17, 18, 19, 20, | |
585 21, 22, 23, 24, 25, 26, 27, 28, | |
586 29, 30, 31, 32, 33, 34, 35, 36, | |
587 }; | |
588 | |
936 | 589 extern const uint16_t inter_vlc[103][2]; |
590 extern const int8_t inter_level[102]; | |
591 extern const int8_t inter_run[102]; | |
0 | 592 |
936 | 593 extern const uint16_t intra_vlc[103][2]; |
594 extern const int8_t intra_level[102]; | |
595 extern const int8_t intra_run[102]; | |
0 | 596 |
936 | 597 extern const uint8_t DCtab_lum[13][2]; |
598 extern const uint8_t DCtab_chrom[13][2]; | |
307 | 599 |
936 | 600 extern const uint8_t cbpy_tab[16][2]; |
601 extern const uint8_t mvtab[33][2]; | |
307 | 602 |
2965
40f745e4fdff
wrong sizes, part of [PATCH] from DivX, Part 9: bitstream crashes from (Steve Lhomme | slhomme divxcorp com)
michael
parents:
2753
diff
changeset
|
603 extern const uint8_t intra_MCBPC_code[9]; |
40f745e4fdff
wrong sizes, part of [PATCH] from DivX, Part 9: bitstream crashes from (Steve Lhomme | slhomme divxcorp com)
michael
parents:
2753
diff
changeset
|
604 extern const uint8_t intra_MCBPC_bits[9]; |
457 | 605 |
2965
40f745e4fdff
wrong sizes, part of [PATCH] from DivX, Part 9: bitstream crashes from (Steve Lhomme | slhomme divxcorp com)
michael
parents:
2753
diff
changeset
|
606 extern const uint8_t inter_MCBPC_code[28]; |
40f745e4fdff
wrong sizes, part of [PATCH] from DivX, Part 9: bitstream crashes from (Steve Lhomme | slhomme divxcorp com)
michael
parents:
2753
diff
changeset
|
607 extern const uint8_t inter_MCBPC_bits[28]; |
307 | 608 |
0 | 609 #define NB_RL_TABLES 6 |
610 | |
611 static RLTable rl_table[NB_RL_TABLES] = { | |
612 /* intra luminance tables */ | |
613 { | |
614 132, | |
615 85, | |
616 table0_vlc, | |
617 table0_run, | |
618 table0_level, | |
619 }, | |
620 { | |
621 185, | |
622 119, | |
623 table2_vlc, | |
624 table2_run, | |
625 table2_level, | |
626 }, | |
627 { | |
628 102, | |
629 67, | |
630 intra_vlc, | |
631 intra_run, | |
632 intra_level, | |
633 }, | |
634 /* intra chrominance / non intra tables */ | |
635 { | |
636 148, | |
637 81, | |
638 table1_vlc, | |
639 table1_run, | |
640 table1_level, | |
641 }, | |
642 { | |
643 168, | |
644 99, | |
645 table4_vlc, | |
646 table4_run, | |
647 table4_level, | |
648 }, | |
649 { | |
650 102, | |
651 58, | |
652 inter_vlc, | |
653 inter_run, | |
654 inter_level, | |
655 }, | |
656 }; | |
657 | |
658 /* motion vector table 0 */ | |
659 | |
936 | 660 static const uint16_t table0_mv_code[1100] = { |
0 | 661 0x0001, 0x0003, 0x0005, 0x0007, 0x0003, 0x0008, 0x000c, 0x0001, |
662 0x0002, 0x001b, 0x0006, 0x000b, 0x0015, 0x0002, 0x000e, 0x000f, | |
663 0x0014, 0x0020, 0x0022, 0x0025, 0x0027, 0x0029, 0x002d, 0x004b, | |
664 0x004d, 0x0003, 0x0022, 0x0023, 0x0025, 0x0027, 0x0042, 0x0048, | |
665 0x0049, 0x0050, 0x005c, 0x0091, 0x009f, 0x000e, 0x0043, 0x004c, | |
666 0x0054, 0x0056, 0x008c, 0x0098, 0x009a, 0x009b, 0x00b1, 0x00b2, | |
667 0x0120, 0x0121, 0x0126, 0x0133, 0x0139, 0x01a1, 0x01a4, 0x01a5, | |
668 0x01a6, 0x01a7, 0x01ae, 0x01af, 0x000b, 0x0019, 0x0085, 0x0090, | |
669 0x009b, 0x00aa, 0x00af, 0x010c, 0x010e, 0x011c, 0x011e, 0x0133, | |
670 0x0144, 0x0160, 0x0174, 0x0175, 0x0177, 0x0178, 0x0249, 0x024b, | |
671 0x0252, 0x0261, 0x0265, 0x0270, 0x0352, 0x0353, 0x0355, 0x0359, | |
672 0x0010, 0x0011, 0x0013, 0x0034, 0x0035, 0x0036, 0x0037, 0x003d, | |
673 0x003e, 0x0109, 0x0126, 0x0156, 0x021a, 0x021e, 0x023a, 0x023e, | |
674 0x028e, 0x028f, 0x02cf, 0x0491, 0x0494, 0x049f, 0x04a0, 0x04a3, | |
675 0x04a6, 0x04a7, 0x04ad, 0x04ae, 0x04c0, 0x04c4, 0x04c6, 0x04c8, | |
676 0x04c9, 0x04f5, 0x04f6, 0x04f7, 0x0680, 0x0682, 0x0683, 0x0688, | |
677 0x0689, 0x068d, 0x068e, 0x068f, 0x06a2, 0x06a3, 0x06a9, 0x06b0, | |
678 0x06b1, 0x06b4, 0x06b5, 0x0024, 0x0060, 0x0063, 0x0078, 0x0079, | |
679 0x0211, 0x0244, 0x0245, 0x0247, 0x0248, 0x0249, 0x024a, 0x024b, | |
680 0x026b, 0x02af, 0x02b8, 0x02bb, 0x0436, 0x0476, 0x0477, 0x047e, | |
681 0x04c8, 0x04c9, 0x04ca, 0x0514, 0x0586, 0x0587, 0x0598, 0x059d, | |
682 0x05d9, 0x05da, 0x0920, 0x0921, 0x093b, 0x093c, 0x093d, 0x0942, | |
683 0x0943, 0x0944, 0x0945, 0x0959, 0x095e, 0x095f, 0x0982, 0x0983, | |
684 0x098e, 0x098f, 0x09c4, 0x09e7, 0x09e8, 0x09e9, 0x0d02, 0x0d17, | |
685 0x0d18, 0x0d19, 0x0d41, 0x0d42, 0x0d43, 0x0d50, 0x0d5f, 0x0d6d, | |
686 0x0d6e, 0x0d6f, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, | |
687 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x041e, 0x041f, 0x0420, 0x0421, | |
688 0x048c, 0x048d, 0x04d3, 0x04d4, 0x04d5, 0x055c, 0x055d, 0x0572, | |
689 0x0573, 0x0574, 0x0575, 0x08de, 0x08df, 0x08fe, 0x08ff, 0x0996, | |
690 0x0a36, 0x0a37, 0x0b08, 0x0b09, 0x0b0a, 0x0b0b, 0x0b32, 0x0b33, | |
691 0x0b34, 0x0b35, 0x0b36, 0x0b37, 0x0b38, 0x0b39, 0x0bb0, 0x0bf7, | |
692 0x0bf8, 0x0bf9, 0x0bfa, 0x0bfb, 0x0bfc, 0x0bfd, 0x0bfe, 0x0bff, | |
693 0x1254, 0x1255, 0x1256, 0x1257, 0x1270, 0x1271, 0x1272, 0x1273, | |
694 0x1274, 0x1275, 0x12ab, 0x12ac, 0x12ad, 0x12ae, 0x12af, 0x12b0, | |
695 0x12b1, 0x1315, 0x1316, 0x1317, 0x13bf, 0x13c0, 0x13c1, 0x13c2, | |
696 0x13c3, 0x13c4, 0x13c5, 0x13c6, 0x13c7, 0x13c8, 0x13c9, 0x13ca, | |
697 0x13cb, 0x13cc, 0x13cd, 0x1a06, 0x1a07, 0x1a28, 0x1a29, 0x1a2a, | |
698 0x1a2b, 0x1a2c, 0x1a2d, 0x1a80, 0x1abb, 0x1abc, 0x1abd, 0x1ad8, | |
699 0x1ad9, 0x0094, 0x0095, 0x0096, 0x0097, 0x00a0, 0x00a1, 0x00a2, | |
700 0x00a3, 0x0831, 0x0832, 0x0833, 0x0834, 0x0835, 0x0836, 0x0837, | |
701 0x0838, 0x0839, 0x083a, 0x083b, 0x0939, 0x093a, 0x093b, 0x093c, | |
702 0x093d, 0x093e, 0x093f, 0x09a0, 0x09a1, 0x09a2, 0x09a3, 0x09a4, | |
703 0x09a5, 0x11ac, 0x11ad, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b2, | |
704 0x11b3, 0x11b4, 0x11b5, 0x11b6, 0x11b7, 0x11b8, 0x11b9, 0x11ba, | |
705 0x11bb, 0x132f, 0x1454, 0x1455, 0x1456, 0x1457, 0x1458, 0x1459, | |
706 0x145a, 0x145b, 0x145c, 0x145d, 0x145e, 0x145f, 0x1460, 0x1461, | |
707 0x1462, 0x1463, 0x1464, 0x1465, 0x1466, 0x1467, 0x1468, 0x1469, | |
708 0x146a, 0x146b, 0x17de, 0x17df, 0x17e0, 0x17e1, 0x17e2, 0x17e3, | |
709 0x17e4, 0x17e5, 0x17e6, 0x17e7, 0x17e8, 0x17e9, 0x17ea, 0x17eb, | |
710 0x17ec, 0x17ed, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, | |
711 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, | |
712 0x254e, 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, | |
713 0x2628, 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c, | |
714 0x276d, 0x276e, 0x276f, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774, | |
715 0x2775, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c, | |
716 0x277d, 0x3503, 0x3544, 0x3545, 0x3546, 0x3547, 0x3560, 0x3561, | |
717 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569, | |
718 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571, | |
719 0x3572, 0x3573, 0x3574, 0x3575, 0x03f0, 0x103d, 0x103e, 0x103f, | |
720 0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047, | |
721 0x1048, 0x1049, 0x104a, 0x104b, 0x104c, 0x104d, 0x104e, 0x104f, | |
722 0x1050, 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057, | |
723 0x1058, 0x1059, 0x105a, 0x105b, 0x105c, 0x105d, 0x105e, 0x105f, | |
724 0x1060, 0x1061, 0x1270, 0x1271, 0x21b8, 0x21b9, 0x21ba, 0x21bb, | |
725 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x21f0, 0x21f1, 0x21f2, 0x21f3, | |
726 0x21f4, 0x21f5, 0x21f6, 0x21f7, 0x21f8, 0x21f9, 0x21fa, 0x21fb, | |
727 0x21fc, 0x21fd, 0x21fe, 0x21ff, 0x2340, 0x2341, 0x2342, 0x2343, | |
728 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, | |
729 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, | |
730 0x2354, 0x2355, 0x2356, 0x2357, 0x265c, 0x2f88, 0x2f89, 0x2f8a, | |
731 0x2f8b, 0x2f8c, 0x2f8d, 0x2f8e, 0x2f8f, 0x2f90, 0x2f91, 0x2f92, | |
732 0x2f93, 0x2f94, 0x2f95, 0x2f96, 0x2f97, 0x2f98, 0x2f99, 0x2f9a, | |
733 0x2f9b, 0x2f9c, 0x2f9d, 0x2f9e, 0x2f9f, 0x2fa0, 0x2fa1, 0x2fa2, | |
734 0x2fa3, 0x2fa4, 0x2fa5, 0x2fa6, 0x2fa7, 0x2fa8, 0x2fa9, 0x2faa, | |
735 0x2fab, 0x2fac, 0x2fad, 0x2fae, 0x2faf, 0x2fb0, 0x2fb1, 0x2fb2, | |
736 0x2fb3, 0x2fb4, 0x2fb5, 0x2fb6, 0x2fb7, 0x2fb8, 0x2fb9, 0x2fba, | |
737 0x2fbb, 0x4c52, 0x4c53, 0x4e28, 0x4e29, 0x4e2a, 0x4e2b, 0x4e2c, | |
738 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32, 0x4e33, 0x4e34, | |
739 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a, 0x4e3b, 0x4e3c, | |
740 0x4e3d, 0x4e3e, 0x4e3f, 0x4e80, 0x4e81, 0x4e82, 0x4e83, 0x4e84, | |
741 0x4e85, 0x4e86, 0x4e87, 0x4e88, 0x4e89, 0x4e8a, 0x4e8b, 0x4e8c, | |
742 0x4e8d, 0x4e8e, 0x4e8f, 0x4e90, 0x4e91, 0x4e92, 0x4e93, 0x4e94, | |
743 0x4e95, 0x4e96, 0x4e97, 0x4e98, 0x4e99, 0x4e9a, 0x4e9b, 0x4e9c, | |
744 0x4e9d, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea1, 0x4ea2, 0x4ea3, 0x4ea4, | |
745 0x4ea5, 0x4ea6, 0x4ea7, 0x4ea8, 0x4ea9, 0x4eaa, 0x4eab, 0x4eac, | |
746 0x4ead, 0x4eae, 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb2, 0x4eb3, 0x4eb4, | |
747 0x4eb5, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9, 0x4eba, 0x4ebb, 0x4ebc, | |
748 0x4ebd, 0x4ebe, 0x4ebf, 0x4ec0, 0x4ec1, 0x4ec2, 0x4ec3, 0x4ec4, | |
749 0x4ec5, 0x4ec6, 0x4ec7, 0x4ec8, 0x4ec9, 0x4eca, 0x4ecb, 0x6a04, | |
750 0x6a05, 0x07e2, 0x07e3, 0x07e4, 0x07e5, 0x07e6, 0x07e7, 0x07e8, | |
751 0x07e9, 0x07ea, 0x07eb, 0x07ec, 0x07ed, 0x07ee, 0x07ef, 0x07f0, | |
752 0x07f1, 0x07f2, 0x07f3, 0x07f4, 0x07f5, 0x07f6, 0x07f7, 0x07f8, | |
753 0x07f9, 0x07fa, 0x07fb, 0x07fc, 0x07fd, 0x07fe, 0x07ff, 0x2000, | |
754 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, | |
755 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 0x2010, | |
756 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2018, | |
757 0x2019, 0x201a, 0x201b, 0x201c, 0x201d, 0x201e, 0x201f, 0x2020, | |
758 0x2021, 0x2022, 0x2023, 0x2024, 0x2025, 0x2026, 0x2027, 0x2028, | |
759 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f, 0x2030, | |
760 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, 0x2036, 0x2037, 0x2038, | |
761 0x2039, 0x203a, 0x203b, 0x203c, 0x203d, 0x203e, 0x203f, 0x2040, | |
762 0x2041, 0x2042, 0x2043, 0x2044, 0x2045, 0x2046, 0x2047, 0x2048, | |
763 0x2049, 0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x204f, 0x2050, | |
764 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058, | |
765 0x2059, 0x205a, 0x205b, 0x205c, 0x205d, 0x205e, 0x205f, 0x2060, | |
766 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068, | |
767 0x2069, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 0x2070, | |
768 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, | |
769 0x2079, 0x4cba, 0x4cbb, 0x5d88, 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c, | |
770 0x5d8d, 0x5d8e, 0x5d8f, 0x5db0, 0x5db1, 0x5db2, 0x5db3, 0x5db4, | |
771 0x5db5, 0x5db6, 0x5db7, 0x5db8, 0x5db9, 0x5dba, 0x5dbb, 0x5dbc, | |
772 0x5dbd, 0x5dbe, 0x5dbf, 0x5e40, 0x5e41, 0x5e42, 0x5e43, 0x5e44, | |
773 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4c, | |
774 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5e54, | |
775 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, 0x5e5b, 0x5e5c, | |
776 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61, 0x5e62, 0x5e63, 0x5e64, | |
777 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c, | |
778 0x5e6d, 0x5e6e, 0x5e6f, 0x5e70, 0x5e71, 0x5e72, 0x5e73, 0x5e74, | |
779 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79, 0x5e7a, 0x5e7b, 0x5e7c, | |
780 0x5e7d, 0x5e7e, 0x5e7f, 0x5e80, 0x5e81, 0x5e82, 0x5e83, 0x5e84, | |
781 0x5e85, 0x5e86, 0x5e87, 0x5e88, 0x5e89, 0x5e8a, 0x5e8b, 0x5e8c, | |
782 0x5e8d, 0x5e8e, 0x5e8f, 0x5e90, 0x5e91, 0x5e92, 0x5e93, 0x5e94, | |
783 0x5e95, 0x5e96, 0x5e97, 0x5e98, 0x5e99, 0x5e9a, 0x5e9b, 0x5e9c, | |
784 0x5e9d, 0x5e9e, 0x5e9f, 0x5ea0, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4, | |
785 0x5ea5, 0x5ea6, 0x5ea7, 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac, | |
786 0x5ead, 0x5eae, 0x5eaf, 0x5eb0, 0x5eb1, 0x5eb2, 0x5eb3, 0x5eb4, | |
787 0x5eb5, 0x5eb6, 0x5eb7, 0x5eb8, 0x5eb9, 0x5eba, 0x5ebb, 0x5ebc, | |
788 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4, | |
789 0x5ec5, 0x5ec6, 0x5ec7, 0x5ec8, 0x5ec9, 0x5eca, 0x5ecb, 0x5ecc, | |
790 0x5ecd, 0x5ece, 0x5ecf, 0x5ed0, 0x5ed1, 0x5ed2, 0x5ed3, 0x5ed4, | |
791 0x5ed5, 0x5ed6, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edb, 0x5edc, | |
792 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4, | |
793 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee8, 0x5ee9, 0x5eea, 0x5eeb, 0x5eec, | |
794 0x5eed, 0x5eee, 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef4, | |
795 0x5ef5, 0x5ef6, 0x5ef7, 0x5ef8, 0x5ef9, 0x5efa, 0x5efb, 0x5efc, | |
796 0x5efd, 0x5efe, 0x5eff, 0x5f00, 0x5f01, 0x5f02, 0x5f03, 0x5f04, | |
797 0x5f05, 0x5f06, 0x5f07, 0x5f08, 0x5f09, 0x5f0a, 0x5f0b, 0x5f0c, | |
798 0x5f0d, 0x5f0e, 0x5f0f, 0x0000, | |
799 }; | |
800 | |
936 | 801 static const uint8_t table0_mv_bits[1100] = { |
0 | 802 1, 4, 4, 4, 5, 5, 5, 6, |
803 6, 6, 7, 7, 7, 8, 8, 8, | |
804 8, 8, 8, 8, 8, 8, 8, 8, | |
805 8, 9, 9, 9, 9, 9, 9, 9, | |
806 9, 9, 9, 9, 9, 10, 10, 10, | |
807 10, 10, 10, 10, 10, 10, 10, 10, | |
808 10, 10, 10, 10, 10, 10, 10, 10, | |
809 10, 10, 10, 10, 11, 11, 11, 11, | |
810 11, 11, 11, 11, 11, 11, 11, 11, | |
811 11, 11, 11, 11, 11, 11, 11, 11, | |
812 11, 11, 11, 11, 11, 11, 11, 11, | |
813 12, 12, 12, 12, 12, 12, 12, 12, | |
814 12, 12, 12, 12, 12, 12, 12, 12, | |
815 12, 12, 12, 12, 12, 12, 12, 12, | |
816 12, 12, 12, 12, 12, 12, 12, 12, | |
817 12, 12, 12, 12, 12, 12, 12, 12, | |
818 12, 12, 12, 12, 12, 12, 12, 12, | |
819 12, 12, 12, 13, 13, 13, 13, 13, | |
820 13, 13, 13, 13, 13, 13, 13, 13, | |
821 13, 13, 13, 13, 13, 13, 13, 13, | |
822 13, 13, 13, 13, 13, 13, 13, 13, | |
823 13, 13, 13, 13, 13, 13, 13, 13, | |
824 13, 13, 13, 13, 13, 13, 13, 13, | |
825 13, 13, 13, 13, 13, 13, 13, 13, | |
826 13, 13, 13, 13, 13, 13, 13, 13, | |
827 13, 13, 14, 14, 14, 14, 14, 14, | |
828 14, 14, 14, 14, 14, 14, 14, 14, | |
829 14, 14, 14, 14, 14, 14, 14, 14, | |
830 14, 14, 14, 14, 14, 14, 14, 14, | |
831 14, 14, 14, 14, 14, 14, 14, 14, | |
832 14, 14, 14, 14, 14, 14, 14, 14, | |
833 14, 14, 14, 14, 14, 14, 14, 14, | |
834 14, 14, 14, 14, 14, 14, 14, 14, | |
835 14, 14, 14, 14, 14, 14, 14, 14, | |
836 14, 14, 14, 14, 14, 14, 14, 14, | |
837 14, 14, 14, 14, 14, 14, 14, 14, | |
838 14, 14, 14, 14, 14, 14, 14, 14, | |
839 14, 14, 14, 14, 14, 14, 14, 14, | |
840 14, 15, 15, 15, 15, 15, 15, 15, | |
841 15, 15, 15, 15, 15, 15, 15, 15, | |
842 15, 15, 15, 15, 15, 15, 15, 15, | |
843 15, 15, 15, 15, 15, 15, 15, 15, | |
844 15, 15, 15, 15, 15, 15, 15, 15, | |
845 15, 15, 15, 15, 15, 15, 15, 15, | |
846 15, 15, 15, 15, 15, 15, 15, 15, | |
847 15, 15, 15, 15, 15, 15, 15, 15, | |
848 15, 15, 15, 15, 15, 15, 15, 15, | |
849 15, 15, 15, 15, 15, 15, 15, 15, | |
850 15, 15, 15, 15, 15, 15, 15, 15, | |
851 15, 15, 15, 15, 15, 15, 15, 15, | |
852 15, 15, 15, 15, 15, 15, 15, 15, | |
853 15, 15, 15, 15, 15, 15, 15, 15, | |
854 15, 15, 15, 15, 15, 15, 15, 15, | |
855 15, 15, 15, 15, 15, 15, 15, 15, | |
856 15, 15, 15, 15, 15, 15, 15, 15, | |
857 15, 15, 15, 15, 15, 15, 15, 15, | |
858 15, 15, 15, 15, 15, 15, 15, 15, | |
859 15, 15, 15, 15, 15, 15, 15, 15, | |
860 15, 15, 15, 15, 16, 16, 16, 16, | |
861 16, 16, 16, 16, 16, 16, 16, 16, | |
862 16, 16, 16, 16, 16, 16, 16, 16, | |
863 16, 16, 16, 16, 16, 16, 16, 16, | |
864 16, 16, 16, 16, 16, 16, 16, 16, | |
865 16, 16, 16, 16, 16, 16, 16, 16, | |
866 16, 16, 16, 16, 16, 16, 16, 16, | |
867 16, 16, 16, 16, 16, 16, 16, 16, | |
868 16, 16, 16, 16, 16, 16, 16, 16, | |
869 16, 16, 16, 16, 16, 16, 16, 16, | |
870 16, 16, 16, 16, 16, 16, 16, 16, | |
871 16, 16, 16, 16, 16, 16, 16, 16, | |
872 16, 16, 16, 16, 16, 16, 16, 16, | |
873 16, 16, 16, 16, 16, 16, 16, 16, | |
874 16, 16, 16, 16, 16, 16, 16, 16, | |
875 16, 16, 16, 16, 16, 16, 16, 16, | |
876 16, 16, 16, 16, 16, 16, 16, 16, | |
877 16, 16, 16, 16, 16, 16, 16, 16, | |
878 16, 16, 16, 16, 16, 16, 16, 16, | |
879 16, 16, 16, 16, 16, 16, 16, 16, | |
880 16, 16, 16, 16, 16, 16, 16, 16, | |
881 16, 16, 16, 16, 16, 16, 16, 16, | |
882 16, 16, 16, 16, 16, 16, 16, 16, | |
883 16, 16, 16, 16, 16, 16, 16, 16, | |
884 16, 16, 16, 16, 16, 16, 16, 16, | |
885 16, 16, 16, 16, 16, 16, 16, 16, | |
886 16, 16, 16, 16, 16, 16, 16, 16, | |
887 16, 16, 16, 16, 16, 16, 16, 16, | |
888 16, 16, 16, 16, 16, 16, 16, 16, | |
889 16, 16, 16, 16, 16, 16, 16, 16, | |
890 16, 16, 16, 16, 16, 16, 16, 16, | |
891 16, 17, 17, 17, 17, 17, 17, 17, | |
892 17, 17, 17, 17, 17, 17, 17, 17, | |
893 17, 17, 17, 17, 17, 17, 17, 17, | |
894 17, 17, 17, 17, 17, 17, 17, 17, | |
895 17, 17, 17, 17, 17, 17, 17, 17, | |
896 17, 17, 17, 17, 17, 17, 17, 17, | |
897 17, 17, 17, 17, 17, 17, 17, 17, | |
898 17, 17, 17, 17, 17, 17, 17, 17, | |
899 17, 17, 17, 17, 17, 17, 17, 17, | |
900 17, 17, 17, 17, 17, 17, 17, 17, | |
901 17, 17, 17, 17, 17, 17, 17, 17, | |
902 17, 17, 17, 17, 17, 17, 17, 17, | |
903 17, 17, 17, 17, 17, 17, 17, 17, | |
904 17, 17, 17, 17, 17, 17, 17, 17, | |
905 17, 17, 17, 17, 17, 17, 17, 17, | |
906 17, 17, 17, 17, 17, 17, 17, 17, | |
907 17, 17, 17, 17, 17, 17, 17, 17, | |
908 17, 17, 17, 17, 17, 17, 17, 17, | |
909 17, 17, 17, 17, 17, 17, 17, 17, | |
910 17, 17, 17, 17, 17, 17, 17, 17, | |
911 17, 17, 17, 17, 17, 17, 17, 17, | |
912 17, 17, 17, 17, 17, 17, 17, 17, | |
913 17, 17, 17, 17, 17, 17, 17, 17, | |
914 17, 17, 17, 17, 17, 17, 17, 17, | |
915 17, 17, 17, 17, 17, 17, 17, 17, | |
916 17, 17, 17, 17, 17, 17, 17, 17, | |
917 17, 17, 17, 17, 17, 17, 17, 17, | |
918 17, 17, 17, 17, 17, 17, 17, 17, | |
919 17, 17, 17, 17, 17, 17, 17, 17, | |
920 17, 17, 17, 17, 17, 17, 17, 17, | |
921 17, 17, 17, 17, 17, 17, 17, 17, | |
922 17, 17, 17, 17, 17, 17, 17, 17, | |
923 17, 17, 17, 17, 17, 17, 17, 17, | |
924 17, 17, 17, 17, 17, 17, 17, 17, | |
925 17, 17, 17, 17, 17, 17, 17, 17, | |
926 17, 17, 17, 17, 17, 17, 17, 17, | |
927 17, 17, 17, 17, 17, 17, 17, 17, | |
928 17, 17, 17, 17, 17, 17, 17, 17, | |
929 17, 17, 17, 17, 17, 17, 17, 17, | |
930 17, 17, 17, 17, 17, 17, 17, 17, | |
931 17, 17, 17, 17, 17, 17, 17, 17, | |
932 17, 17, 17, 17, 17, 17, 17, 17, | |
933 17, 17, 17, 17, 17, 17, 17, 17, | |
934 17, 17, 17, 17, 17, 17, 17, 17, | |
935 17, 17, 17, 17, 17, 17, 17, 17, | |
936 17, 17, 17, 17, 17, 17, 17, 17, | |
937 17, 17, 17, 17, 17, 17, 17, 17, | |
938 17, 17, 17, 17, 17, 17, 17, 17, | |
939 17, 17, 17, 8, | |
940 }; | |
941 | |
936 | 942 static const uint8_t table0_mvx[1099] = { |
0 | 943 32, 32, 31, 32, 33, 31, 33, 31, |
944 33, 32, 34, 32, 30, 32, 31, 34, | |
945 35, 32, 34, 33, 29, 33, 30, 30, | |
946 31, 31, 35, 29, 33, 35, 33, 34, | |
947 31, 29, 30, 34, 30, 36, 28, 32, | |
948 34, 37, 30, 27, 32, 25, 39, 32, | |
949 34, 32, 35, 35, 35, 31, 35, 29, | |
950 32, 29, 30, 29, 37, 27, 36, 38, | |
951 37, 33, 32, 31, 29, 31, 28, 36, | |
952 33, 30, 34, 33, 33, 28, 27, 25, | |
953 31, 26, 39, 32, 32, 31, 33, 39, | |
954 31, 38, 28, 36, 21, 23, 43, 36, | |
955 34, 41, 30, 25, 28, 31, 30, 34, | |
956 38, 35, 61, 34, 28, 30, 37, 37, | |
957 35, 27, 36, 3, 59, 38, 37, 32, | |
958 31, 29, 26, 33, 37, 33, 27, 27, | |
959 35, 34, 34, 40, 42, 33, 32, 29, | |
960 4, 5, 28, 24, 25, 35, 39, 38, | |
961 32, 23, 27, 32, 30, 35, 26, 34, | |
962 60, 36, 29, 22, 26, 41, 7, 30, | |
963 38, 30, 36, 29, 30, 41, 26, 25, | |
964 32, 34, 24, 39, 1, 25, 39, 32, | |
965 28, 29, 32, 38, 26, 36, 28, 63, | |
966 28, 39, 23, 21, 26, 35, 31, 35, | |
967 57, 31, 29, 29, 28, 30, 27, 35, | |
968 2, 38, 40, 34, 37, 29, 38, 43, | |
969 26, 32, 33, 42, 24, 40, 28, 32, | |
970 32, 32, 36, 32, 43, 25, 21, 31, | |
971 30, 31, 41, 29, 33, 37, 26, 37, | |
972 27, 59, 23, 33, 35, 31, 31, 37, | |
973 38, 39, 32, 23, 32, 27, 37, 36, | |
974 31, 40, 25, 27, 38, 31, 36, 28, | |
975 31, 36, 25, 45, 3, 34, 38, 39, | |
976 40, 38, 30, 32, 19, 24, 25, 26, | |
977 45, 20, 24, 33, 33, 31, 41, 34, | |
978 39, 47, 40, 58, 59, 41, 33, 3, | |
979 17, 61, 42, 30, 26, 29, 36, 61, | |
980 33, 37, 62, 28, 25, 38, 25, 38, | |
981 17, 23, 34, 33, 21, 33, 49, 27, | |
982 32, 23, 27, 22, 24, 22, 39, 43, | |
983 27, 37, 6, 42, 47, 26, 30, 31, | |
984 41, 39, 33, 22, 45, 36, 32, 45, | |
985 19, 22, 30, 5, 5, 17, 29, 22, | |
986 31, 31, 43, 37, 27, 32, 32, 32, | |
987 33, 34, 43, 35, 29, 26, 22, 32, | |
988 19, 32, 25, 31, 41, 49, 28, 34, | |
989 28, 39, 34, 19, 37, 38, 29, 21, | |
990 36, 42, 24, 48, 16, 28, 49, 22, | |
991 34, 31, 38, 39, 44, 11, 35, 30, | |
992 33, 33, 23, 28, 33, 46, 15, 13, | |
993 24, 41, 24, 34, 34, 30, 26, 24, | |
994 14, 60, 21, 29, 39, 23, 35, 37, | |
995 63, 45, 33, 34, 47, 41, 22, 42, | |
996 35, 35, 23, 32, 35, 43, 32, 7, | |
997 31, 41, 20, 31, 16, 13, 63, 25, | |
998 30, 32, 35, 30, 30, 31, 42, 47, | |
999 39, 38, 40, 40, 51, 55, 56, 18, | |
1000 21, 39, 39, 33, 17, 41, 23, 24, | |
1001 43, 25, 31, 20, 19, 45, 1, 34, | |
1002 31, 22, 35, 15, 46, 46, 35, 31, | |
1003 28, 29, 29, 23, 41, 27, 14, 53, | |
1004 53, 27, 24, 32, 57, 32, 17, 42, | |
1005 37, 29, 33, 1, 25, 32, 32, 63, | |
1006 26, 40, 44, 36, 31, 39, 20, 20, | |
1007 44, 23, 33, 34, 35, 33, 33, 28, | |
1008 41, 23, 41, 41, 29, 25, 26, 49, | |
1009 29, 24, 37, 49, 50, 51, 51, 26, | |
1010 39, 25, 26, 15, 39, 18, 42, 17, | |
1011 4, 31, 32, 32, 60, 1, 42, 32, | |
1012 0, 12, 19, 35, 21, 41, 17, 26, | |
1013 20, 45, 46, 32, 37, 22, 47, 29, | |
1014 31, 27, 29, 30, 21, 33, 35, 18, | |
1015 25, 33, 50, 51, 42, 2, 15, 51, | |
1016 53, 33, 25, 29, 55, 37, 38, 33, | |
1017 38, 59, 38, 33, 39, 13, 32, 40, | |
1018 61, 61, 32, 9, 44, 3, 31, 29, | |
1019 25, 31, 27, 23, 9, 25, 9, 29, | |
1020 20, 30, 30, 42, 18, 28, 25, 28, | |
1021 28, 21, 29, 43, 29, 43, 26, 44, | |
1022 44, 21, 38, 21, 24, 45, 45, 35, | |
1023 39, 22, 35, 36, 34, 34, 45, 34, | |
1024 29, 31, 46, 25, 46, 16, 17, 31, | |
1025 20, 32, 47, 47, 47, 32, 49, 49, | |
1026 49, 31, 1, 27, 28, 39, 39, 21, | |
1027 36, 23, 51, 2, 40, 51, 32, 53, | |
1028 24, 30, 24, 30, 21, 40, 57, 57, | |
1029 31, 41, 58, 32, 12, 4, 32, 34, | |
1030 59, 31, 32, 13, 9, 35, 26, 35, | |
1031 37, 61, 37, 63, 26, 29, 41, 38, | |
1032 23, 20, 41, 26, 41, 42, 42, 42, | |
1033 26, 26, 26, 26, 1, 26, 37, 37, | |
1034 37, 23, 34, 42, 27, 43, 34, 27, | |
1035 31, 24, 33, 16, 3, 31, 24, 33, | |
1036 24, 4, 44, 44, 11, 44, 31, 13, | |
1037 13, 44, 45, 13, 25, 22, 38, 26, | |
1038 38, 38, 39, 32, 30, 39, 30, 22, | |
1039 32, 26, 30, 47, 47, 47, 19, 47, | |
1040 30, 31, 35, 8, 23, 47, 47, 27, | |
1041 35, 47, 31, 48, 35, 19, 36, 49, | |
1042 49, 33, 31, 39, 27, 39, 49, 49, | |
1043 50, 50, 50, 39, 31, 51, 51, 39, | |
1044 28, 33, 33, 21, 40, 31, 52, 53, | |
1045 40, 53, 9, 33, 31, 53, 54, 54, | |
1046 54, 55, 55, 34, 15, 56, 25, 56, | |
1047 21, 21, 40, 40, 25, 40, 58, 36, | |
1048 5, 41, 41, 12, 60, 41, 41, 37, | |
1049 22, 61, 18, 29, 29, 30, 61, 30, | |
1050 61, 62, 62, 30, 30, 63, 18, 13, | |
1051 30, 23, 19, 20, 20, 41, 13, 2, | |
1052 5, 5, 1, 5, 32, 6, 32, 35, | |
1053 20, 35, 27, 35, 35, 36, 36, 13, | |
1054 36, 41, 41, 41, 3, 30, 42, 27, | |
1055 20, 30, 27, 28, 30, 21, 33, 33, | |
1056 14, 24, 30, 42, 24, 33, 25, 42, | |
1057 43, 14, 43, 43, 14, 43, 7, 36, | |
1058 37, 37, 37, 37, 7, 14, 25, 43, | |
1059 43, 44, 15, 37, 7, 7, 3, 1, | |
1060 8, 15, 15, 8, 44, 44, 44, 45, | |
1061 45, 45, 45, 8, 8, 45, 21, 45, | |
1062 28, 28, 28, 21, 28, 28, 22, 37, | |
1063 46, 46, 37, 8, 29, 37, 29, 22, | |
1064 46, 37, 22, 29, 47, 47, 38, 38, | |
1065 16, 38, 38, 33, 38, 22, 47, 47, | |
1066 29, 25, 16, 0, 48, 1, 34, 48, | |
1067 48, 34, 25, 26, 26, 49, 49, 26, | |
1068 1, 49, 4, 26, 4, 49, 1, 9, | |
1069 49, 49, 49, 10, 49, 17, 38, 17, | |
1070 17, 50, 38, 50, 50, 22, 38, 51, | |
1071 38, 38, 51, 39, 39, 18, 22, 39, | |
1072 51, 22, 52, 52, 52, 39, 53, 53, | |
1073 10, 23, 18, 29, 10, 53, 29, 54, | |
1074 11, 54, 11, 11, 55, 1, 18, 55, | |
1075 55, 55, 55, 55, 55, 29, 34, 18, | |
1076 29, 56, 56, 34, 57, 34, 34, 29, | |
1077 29, 57, 57, 35, 35, 35, 35, 35, | |
1078 39, 35, 59, 59, 18, 59, 39, 30, | |
1079 18, 40, 60, 60, 61, 30, 18, 61, | |
1080 61, 19, 19, | |
1081 }; | |
1082 | |
936 | 1083 static const uint8_t table0_mvy[1099] = { |
0 | 1084 32, 31, 32, 33, 32, 31, 31, 33, |
1085 33, 34, 32, 30, 32, 35, 34, 31, | |
1086 32, 29, 33, 30, 32, 34, 33, 31, | |
1087 30, 35, 31, 31, 29, 33, 35, 30, | |
1088 29, 33, 34, 34, 30, 32, 32, 36, | |
1089 29, 32, 35, 32, 28, 32, 32, 27, | |
1090 35, 37, 34, 29, 30, 36, 35, 34, | |
1091 25, 30, 29, 35, 33, 31, 31, 32, | |
1092 31, 28, 39, 28, 29, 37, 31, 33, | |
1093 27, 36, 28, 36, 37, 33, 33, 31, | |
1094 27, 32, 31, 38, 26, 25, 25, 33, | |
1095 39, 31, 34, 30, 32, 32, 32, 34, | |
1096 36, 32, 28, 33, 30, 38, 37, 27, | |
1097 33, 28, 32, 37, 35, 38, 29, 34, | |
1098 27, 29, 29, 32, 32, 34, 35, 3, | |
1099 26, 36, 31, 38, 30, 26, 35, 34, | |
1100 37, 26, 25, 32, 32, 39, 23, 37, | |
1101 32, 32, 29, 32, 29, 36, 29, 30, | |
1102 41, 31, 30, 21, 39, 25, 34, 38, | |
1103 32, 35, 39, 32, 33, 33, 32, 27, | |
1104 29, 25, 28, 27, 26, 31, 30, 35, | |
1105 24, 24, 31, 34, 32, 30, 35, 40, | |
1106 28, 38, 5, 35, 29, 36, 36, 32, | |
1107 38, 30, 33, 31, 35, 26, 23, 38, | |
1108 32, 41, 28, 25, 37, 40, 37, 39, | |
1109 32, 36, 33, 39, 25, 26, 28, 31, | |
1110 28, 42, 23, 31, 33, 31, 39, 1, | |
1111 59, 22, 27, 4, 33, 34, 33, 24, | |
1112 41, 3, 35, 41, 41, 28, 36, 36, | |
1113 28, 33, 35, 21, 23, 21, 22, 37, | |
1114 27, 27, 43, 29, 60, 39, 27, 25, | |
1115 59, 34, 27, 27, 26, 40, 37, 27, | |
1116 61, 26, 39, 33, 31, 22, 37, 25, | |
1117 30, 25, 24, 61, 31, 34, 25, 38, | |
1118 32, 32, 30, 3, 61, 43, 29, 23, | |
1119 28, 32, 28, 32, 31, 34, 5, 33, | |
1120 32, 33, 33, 42, 37, 23, 38, 31, | |
1121 40, 26, 32, 26, 37, 38, 36, 24, | |
1122 29, 30, 20, 22, 29, 24, 32, 41, | |
1123 2, 34, 25, 33, 29, 31, 39, 35, | |
1124 36, 24, 32, 30, 33, 27, 44, 60, | |
1125 30, 36, 19, 34, 31, 24, 16, 35, | |
1126 32, 38, 21, 33, 31, 31, 21, 35, | |
1127 5, 17, 29, 38, 38, 18, 58, 19, | |
1128 43, 41, 30, 41, 43, 39, 29, 7, | |
1129 29, 17, 28, 19, 28, 31, 25, 19, | |
1130 40, 26, 21, 33, 39, 23, 40, 30, | |
1131 39, 34, 35, 32, 32, 24, 33, 30, | |
1132 40, 47, 39, 37, 32, 33, 24, 23, | |
1133 45, 47, 27, 23, 42, 32, 32, 33, | |
1134 36, 37, 37, 17, 18, 22, 40, 38, | |
1135 32, 31, 35, 24, 17, 25, 17, 23, | |
1136 33, 34, 51, 42, 31, 36, 36, 29, | |
1137 21, 22, 37, 44, 43, 25, 47, 33, | |
1138 45, 27, 31, 58, 31, 32, 31, 38, | |
1139 43, 20, 47, 45, 54, 1, 26, 34, | |
1140 38, 14, 22, 24, 33, 34, 32, 32, | |
1141 37, 21, 23, 49, 35, 23, 28, 39, | |
1142 39, 23, 55, 33, 30, 30, 63, 16, | |
1143 42, 28, 13, 33, 33, 35, 19, 46, | |
1144 43, 17, 19, 36, 39, 24, 31, 32, | |
1145 33, 26, 28, 62, 33, 63, 33, 39, | |
1146 19, 49, 17, 31, 43, 13, 15, 29, | |
1147 25, 35, 33, 23, 49, 41, 28, 29, | |
1148 34, 38, 7, 61, 11, 50, 13, 41, | |
1149 19, 47, 25, 26, 15, 42, 41, 29, | |
1150 45, 27, 17, 35, 32, 29, 32, 24, | |
1151 13, 26, 26, 31, 24, 33, 28, 30, | |
1152 31, 11, 45, 46, 33, 33, 35, 57, | |
1153 32, 32, 35, 45, 34, 11, 37, 42, | |
1154 39, 37, 31, 49, 21, 27, 29, 47, | |
1155 53, 40, 51, 16, 26, 1, 40, 30, | |
1156 41, 44, 34, 25, 27, 31, 35, 35, | |
1157 31, 15, 49, 1, 35, 40, 5, 58, | |
1158 21, 29, 22, 59, 45, 31, 9, 26, | |
1159 9, 29, 11, 32, 30, 3, 13, 20, | |
1160 18, 20, 11, 3, 29, 40, 31, 53, | |
1161 30, 17, 20, 37, 31, 42, 47, 47, | |
1162 54, 38, 9, 34, 13, 37, 21, 25, | |
1163 27, 43, 42, 45, 40, 25, 27, 46, | |
1164 22, 25, 53, 20, 2, 14, 39, 15, | |
1165 22, 44, 34, 21, 38, 33, 27, 48, | |
1166 34, 52, 35, 47, 49, 54, 2, 13, | |
1167 23, 52, 29, 45, 22, 49, 54, 21, | |
1168 40, 42, 31, 30, 29, 34, 0, 25, | |
1169 23, 51, 24, 59, 28, 38, 29, 31, | |
1170 2, 13, 31, 8, 31, 33, 12, 45, | |
1171 41, 7, 14, 30, 25, 18, 43, 20, | |
1172 43, 35, 44, 1, 49, 42, 42, 18, | |
1173 41, 38, 41, 44, 53, 11, 20, 25, | |
1174 45, 46, 47, 48, 39, 52, 46, 49, | |
1175 63, 55, 44, 38, 13, 13, 57, 22, | |
1176 51, 16, 12, 28, 35, 57, 25, 20, | |
1177 26, 28, 28, 29, 32, 31, 62, 34, | |
1178 35, 35, 19, 49, 48, 39, 40, 18, | |
1179 43, 46, 11, 6, 48, 19, 49, 41, | |
1180 10, 23, 58, 17, 21, 23, 34, 30, | |
1181 60, 0, 44, 34, 26, 37, 46, 43, | |
1182 49, 59, 4, 34, 59, 37, 22, 25, | |
1183 28, 46, 6, 40, 59, 42, 36, 61, | |
1184 28, 30, 31, 43, 10, 22, 23, 47, | |
1185 20, 52, 55, 36, 25, 16, 1, 11, | |
1186 27, 29, 5, 63, 18, 41, 31, 34, | |
1187 38, 1, 5, 13, 28, 31, 17, 38, | |
1188 39, 41, 36, 37, 22, 39, 33, 43, | |
1189 43, 15, 17, 49, 30, 21, 22, 20, | |
1190 10, 17, 25, 54, 57, 3, 34, 8, | |
1191 36, 25, 31, 14, 15, 19, 29, 25, | |
1192 18, 39, 53, 22, 27, 20, 29, 33, | |
1193 41, 42, 35, 62, 50, 29, 53, 50, | |
1194 35, 55, 42, 61, 63, 4, 7, 42, | |
1195 21, 46, 47, 49, 27, 46, 17, 55, | |
1196 41, 50, 63, 4, 56, 18, 8, 10, | |
1197 18, 51, 63, 36, 55, 18, 5, 55, | |
1198 9, 29, 17, 21, 30, 27, 1, 59, | |
1199 7, 11, 12, 15, 5, 42, 24, 41, | |
1200 43, 7, 27, 22, 25, 31, 30, 37, | |
1201 22, 39, 53, 29, 36, 37, 48, 0, | |
1202 5, 13, 17, 31, 32, 26, 46, 28, | |
1203 44, 45, 46, 53, 49, 51, 3, 41, | |
1204 3, 22, 42, 33, 5, 45, 7, 22, | |
1205 40, 53, 24, 14, 25, 27, 10, 12, | |
1206 34, 16, 17, 53, 20, 26, 39, 45, | |
1207 18, 45, 35, 33, 31, 49, 4, 39, | |
1208 42, 11, 51, 5, 13, 26, 27, 17, | |
1209 52, 30, 0, 22, 12, 34, 62, 36, | |
1210 38, 41, 47, 30, 63, 38, 41, 43, | |
1211 59, 33, 45, 37, 38, 40, 47, 24, | |
1212 48, 49, 30, 1, 10, 22, 49, 15, | |
1213 39, 59, 31, 32, 33, 18, 13, 15, | |
1214 31, 21, 27, 44, 42, 39, 46, 17, | |
1215 26, 32, 30, 31, 0, 30, 34, 9, | |
1216 12, 13, 25, 31, 32, 55, 43, 35, | |
1217 61, 33, 35, 46, 25, 47, 48, 62, | |
1218 63, 38, 61, 1, 2, 5, 7, 9, | |
1219 46, 10, 34, 35, 36, 55, 51, 7, | |
1220 40, 23, 34, 37, 5, 13, 42, 18, | |
1221 25, 27, 28, | |
1222 }; | |
1223 | |
1224 /* motion vector table 1 */ | |
936 | 1225 static const uint16_t table1_mv_code[1100] = { |
0 | 1226 0x0000, 0x0007, 0x0009, 0x000f, 0x000a, 0x0011, 0x001a, 0x001c, |
1227 0x0011, 0x0031, 0x0025, 0x002d, 0x002f, 0x006f, 0x0075, 0x0041, | |
1228 0x004c, 0x004e, 0x005c, 0x0060, 0x0062, 0x0066, 0x0068, 0x0069, | |
1229 0x006b, 0x00a6, 0x00c1, 0x00cb, 0x00cc, 0x00ce, 0x00da, 0x00e8, | |
1230 0x00ee, 0x0087, 0x0090, 0x009e, 0x009f, 0x00ba, 0x00ca, 0x00d8, | |
1231 0x00db, 0x00df, 0x0104, 0x0109, 0x010c, 0x0143, 0x0145, 0x014a, | |
1232 0x0156, 0x015c, 0x01b3, 0x01d3, 0x01da, 0x0103, 0x0109, 0x010b, | |
1233 0x0122, 0x0127, 0x0134, 0x0161, 0x0164, 0x0176, 0x0184, 0x018d, | |
1234 0x018e, 0x018f, 0x0190, 0x0193, 0x0196, 0x019d, 0x019e, 0x019f, | |
1235 0x01a9, 0x01b2, 0x01b4, 0x01ba, 0x01bb, 0x01bc, 0x0201, 0x0202, | |
1236 0x0205, 0x0207, 0x020d, 0x0210, 0x0211, 0x0215, 0x021b, 0x021f, | |
1237 0x0281, 0x0285, 0x0290, 0x029c, 0x029d, 0x02a2, 0x02a7, 0x02a8, | |
1238 0x02aa, 0x02b0, 0x02b1, 0x02b4, 0x02bc, 0x02bf, 0x0320, 0x0326, | |
1239 0x0327, 0x0329, 0x032a, 0x0336, 0x0360, 0x0362, 0x0363, 0x0372, | |
1240 0x03b2, 0x03bc, 0x03bd, 0x0203, 0x0205, 0x021a, 0x0249, 0x024a, | |
1241 0x024c, 0x02c7, 0x02ca, 0x02ce, 0x02ef, 0x030d, 0x0322, 0x0325, | |
1242 0x0338, 0x0373, 0x037a, 0x0409, 0x0415, 0x0416, 0x0418, 0x0428, | |
1243 0x042d, 0x042f, 0x0434, 0x0508, 0x0509, 0x0510, 0x0511, 0x051c, | |
1244 0x051e, 0x0524, 0x0541, 0x0543, 0x0546, 0x0547, 0x054d, 0x0557, | |
1245 0x055f, 0x056a, 0x056c, 0x056d, 0x056f, 0x0576, 0x0577, 0x057a, | |
1246 0x057b, 0x057c, 0x057d, 0x0600, 0x0601, 0x0603, 0x0614, 0x0616, | |
1247 0x0617, 0x061c, 0x061f, 0x0642, 0x0648, 0x0649, 0x064a, 0x064b, | |
1248 0x0657, 0x0668, 0x0669, 0x066b, 0x066e, 0x067f, 0x06c2, 0x06c8, | |
1249 0x06cb, 0x06de, 0x06df, 0x06e2, 0x06e3, 0x06ef, 0x0748, 0x074b, | |
1250 0x076e, 0x076f, 0x077c, 0x0409, 0x0423, 0x0428, 0x0429, 0x042a, | |
1251 0x042b, 0x0432, 0x0433, 0x0496, 0x049a, 0x04d5, 0x04db, 0x0581, | |
1252 0x0582, 0x058b, 0x058c, 0x058d, 0x0598, 0x0599, 0x059a, 0x059e, | |
1253 0x05dd, 0x0619, 0x0632, 0x0633, 0x0648, 0x0672, 0x06a1, 0x06a2, | |
1254 0x06a3, 0x06af, 0x06e2, 0x06e3, 0x06e4, 0x0800, 0x0801, 0x0802, | |
1255 0x0803, 0x081a, 0x081b, 0x0829, 0x082f, 0x0832, 0x083e, 0x083f, | |
1256 0x0852, 0x0853, 0x0858, 0x086b, 0x0877, 0x0878, 0x0879, 0x087a, | |
1257 0x087b, 0x0a00, 0x0a01, 0x0a0d, 0x0a0e, 0x0a0f, 0x0a24, 0x0a37, | |
1258 0x0a3a, 0x0a3b, 0x0a3e, 0x0a46, 0x0a47, 0x0a4a, 0x0a4b, 0x0a5f, | |
1259 0x0a79, 0x0a7a, 0x0a7b, 0x0a80, 0x0a81, 0x0a84, 0x0a85, 0x0a99, | |
1260 0x0aa5, 0x0aa6, 0x0ab8, 0x0aba, 0x0abb, 0x0abc, 0x0abd, 0x0ac8, | |
1261 0x0ace, 0x0acf, 0x0ad7, 0x0adc, 0x0aeb, 0x0c04, 0x0c25, 0x0c26, | |
1262 0x0c27, 0x0c2a, 0x0c2b, 0x0c3a, 0x0c3b, 0x0c3c, 0x0c3d, 0x0ca0, | |
1263 0x0cad, 0x0cd4, 0x0cd5, 0x0cfc, 0x0cfd, 0x0d86, 0x0d92, 0x0d93, | |
1264 0x0d94, 0x0d95, 0x0db0, 0x0db8, 0x0db9, 0x0dba, 0x0dbb, 0x0dc0, | |
1265 0x0dc2, 0x0dc3, 0x0dda, 0x0ddb, 0x0ddc, 0x0ddd, 0x0e92, 0x0e93, | |
1266 0x0e94, 0x0e95, 0x0ec7, 0x0ecc, 0x0ece, 0x0ecf, 0x0ed8, 0x0ed9, | |
1267 0x0eda, 0x0edb, 0x0808, 0x0809, 0x080a, 0x0810, 0x0811, 0x0844, | |
1268 0x0845, 0x0861, 0x0862, 0x0863, 0x086c, 0x0922, 0x0923, 0x092e, | |
1269 0x092f, 0x0936, 0x0937, 0x09b1, 0x09b2, 0x09b3, 0x09b4, 0x09b5, | |
1270 0x09b8, 0x09b9, 0x09ba, 0x09bb, 0x09bc, 0x09bd, 0x09be, 0x09bf, | |
1271 0x0b00, 0x0b15, 0x0b2c, 0x0b2d, 0x0b2e, 0x0b2f, 0x0b36, 0x0bb9, | |
1272 0x0c28, 0x0c2a, 0x0c2b, 0x0c2c, 0x0c2d, 0x0c2e, 0x0c2f, 0x0c30, | |
1273 0x0c31, 0x0c38, 0x0c60, 0x0c61, 0x0c62, 0x0c63, 0x0c8d, 0x0c8e, | |
1274 0x0c8f, 0x0c92, 0x0cbe, 0x0cbf, 0x0ce6, 0x0ce7, 0x0d40, 0x0d41, | |
1275 0x0d57, 0x0d58, 0x0d59, 0x0d5a, 0x0d5b, 0x0d5c, 0x0d5d, 0x0d98, | |
1276 0x0d99, 0x0d9a, 0x0d9b, 0x0d9c, 0x0d9d, 0x0dad, 0x0dae, 0x0daf, | |
1277 0x0dc0, 0x0dc1, 0x0dc2, 0x0dc3, 0x0dca, 0x0dcb, 0x0dec, 0x0ded, | |
1278 0x0dee, 0x0def, 0x1018, 0x1022, 0x1023, 0x1030, 0x1031, 0x1032, | |
1279 0x1033, 0x1050, 0x1051, 0x105c, 0x1074, 0x1075, 0x1076, 0x1077, | |
1280 0x1078, 0x1079, 0x107a, 0x107b, 0x10b2, 0x10b3, 0x10b8, 0x10b9, | |
1281 0x10ba, 0x10bb, 0x10d4, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x1404, | |
1282 0x1405, 0x1406, 0x1407, 0x1410, 0x1411, 0x1412, 0x1413, 0x1414, | |
1283 0x1415, 0x1416, 0x1417, 0x1418, 0x1419, 0x1466, 0x1467, 0x1468, | |
1284 0x1469, 0x146a, 0x146b, 0x146c, 0x146d, 0x147e, 0x147f, 0x1488, | |
1285 0x1489, 0x148a, 0x148b, 0x14b6, 0x14b7, 0x14b8, 0x14b9, 0x14ba, | |
1286 0x14bb, 0x14bc, 0x14bd, 0x14f0, 0x14f1, 0x14f8, 0x14f9, 0x14fa, | |
1287 0x14fb, 0x14fc, 0x14fd, 0x14fe, 0x14ff, 0x152a, 0x152b, 0x152c, | |
1288 0x152d, 0x152e, 0x152f, 0x1530, 0x1531, 0x1548, 0x1549, 0x154e, | |
1289 0x154f, 0x1558, 0x1559, 0x155a, 0x155b, 0x1572, 0x159a, 0x159b, | |
1290 0x15ac, 0x15ba, 0x15bb, 0x15d0, 0x15d1, 0x15d2, 0x15d3, 0x15d4, | |
1291 0x15d5, 0x181d, 0x181e, 0x181f, 0x1840, 0x1841, 0x1842, 0x1843, | |
1292 0x1844, 0x1845, 0x1846, 0x1847, 0x1848, 0x1849, 0x1861, 0x1862, | |
1293 0x1863, 0x1864, 0x1865, 0x1866, 0x1867, 0x1868, 0x1869, 0x186a, | |
1294 0x186b, 0x186c, 0x186d, 0x186e, 0x191b, 0x191c, 0x191d, 0x191e, | |
1295 0x191f, 0x1942, 0x1943, 0x1944, 0x1945, 0x1946, 0x1947, 0x1958, | |
1296 0x1959, 0x19ed, 0x19ee, 0x19ef, 0x19f0, 0x19f1, 0x19f2, 0x19f3, | |
1297 0x19f4, 0x19f5, 0x19f6, 0x19f7, 0x1b0e, 0x1b0f, 0x1b62, 0x1b63, | |
1298 0x1b64, 0x1b65, 0x1b66, 0x1b67, 0x1b68, 0x1b69, 0x1b6a, 0x1b6b, | |
1299 0x1b6c, 0x1b6d, 0x1b6e, 0x1b6f, 0x1b82, 0x1ba8, 0x1ba9, 0x1baa, | |
1300 0x1bab, 0x1bac, 0x1bad, 0x1bae, 0x1baf, 0x1bb0, 0x1bb1, 0x1bb2, | |
1301 0x1bb3, 0x1d80, 0x1d81, 0x1d82, 0x1d83, 0x1d84, 0x1d85, 0x1d86, | |
1302 0x1d87, 0x1d88, 0x1d89, 0x1d8a, 0x1d8b, 0x1d8c, 0x1d8d, 0x1007, | |
1303 0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e, 0x100f, | |
1304 0x1016, 0x1080, 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086, | |
1305 0x1087, 0x10c0, 0x123a, 0x123b, 0x123c, 0x123d, 0x123e, 0x123f, | |
1306 0x1240, 0x1241, 0x1242, 0x1243, 0x1350, 0x1352, 0x1353, 0x1358, | |
1307 0x1359, 0x135a, 0x135b, 0x135c, 0x135d, 0x135e, 0x135f, 0x1360, | |
1308 0x1361, 0x1602, 0x1603, 0x160c, 0x160d, 0x160e, 0x160f, 0x1620, | |
1309 0x1621, 0x1622, 0x1623, 0x1624, 0x1625, 0x1626, 0x1627, 0x1628, | |
1310 0x1629, 0x166e, 0x166f, 0x167c, 0x167d, 0x167e, 0x167f, 0x1770, | |
1311 0x1771, 0x1852, 0x1853, 0x1872, 0x1873, 0x1874, 0x1875, 0x1876, | |
1312 0x1877, 0x1878, 0x1879, 0x187a, 0x187b, 0x187c, 0x187d, 0x187e, | |
1313 0x187f, 0x1918, 0x1919, 0x1926, 0x1927, 0x1970, 0x1971, 0x1972, | |
1314 0x1973, 0x1974, 0x1975, 0x1976, 0x1977, 0x1978, 0x1979, 0x197a, | |
1315 0x197b, 0x1aa0, 0x1aa1, 0x1aa2, 0x1aa3, 0x1aa4, 0x1aa5, 0x1aa6, | |
1316 0x1aa7, 0x1aa8, 0x1aa9, 0x1aaa, 0x1aab, 0x1aac, 0x1aad, 0x1b3c, | |
1317 0x1b3d, 0x1b3e, 0x1b3f, 0x1b50, 0x1b51, 0x1b52, 0x1b53, 0x1b54, | |
1318 0x1b55, 0x1b56, 0x1b57, 0x1b58, 0x1b59, 0x2032, 0x2033, 0x2034, | |
1319 0x2035, 0x2036, 0x2037, 0x2038, 0x2039, 0x203a, 0x203b, 0x203c, | |
1320 0x203d, 0x203e, 0x203f, 0x2040, 0x2041, 0x2042, 0x2043, 0x20ba, | |
1321 0x20bb, 0x20cc, 0x20cd, 0x20ce, 0x20cf, 0x20e0, 0x20e1, 0x20e2, | |
1322 0x20e3, 0x20e4, 0x20e5, 0x20e6, 0x20e7, 0x21aa, 0x21ab, 0x21c0, | |
1323 0x21c1, 0x21c2, 0x21c3, 0x21c4, 0x21c5, 0x21c6, 0x21c7, 0x21c8, | |
1324 0x21c9, 0x21ca, 0x21cb, 0x21cc, 0x21cd, 0x21ce, 0x21cf, 0x21d0, | |
1325 0x21d1, 0x21d2, 0x21d3, 0x2894, 0x2895, 0x2896, 0x2897, 0x2898, | |
1326 0x2899, 0x289a, 0x289b, 0x289c, 0x289d, 0x289e, 0x289f, 0x28c0, | |
1327 0x28c1, 0x28c2, 0x28c3, 0x28c4, 0x28c5, 0x28c6, 0x28c7, 0x28c8, | |
1328 0x28c9, 0x28ca, 0x28cb, 0x2930, 0x2931, 0x2932, 0x2933, 0x2934, | |
1329 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c, | |
1330 0x293d, 0x293e, 0x293f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, | |
1331 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x2a40, | |
1332 0x2a41, 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48, | |
1333 0x2a49, 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50, | |
1334 0x2a51, 0x2a52, 0x2a53, 0x2ae6, 0x2ae7, 0x2b24, 0x2b25, 0x2b26, | |
1335 0x2b27, 0x2b28, 0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e, | |
1336 0x2b2f, 0x2b30, 0x2b31, 0x2b32, 0x2b33, 0x2b5a, 0x2b5b, 0x3014, | |
1337 0x3015, 0x3016, 0x3017, 0x3020, 0x3021, 0x3022, 0x3023, 0x3024, | |
1338 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, | |
1339 0x302d, 0x302e, 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, | |
1340 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x30c0, 0x30c1, 0x30de, | |
1341 0x30df, 0x3218, 0x3219, 0x321a, 0x321b, 0x321c, 0x321d, 0x321e, | |
1342 0x321f, 0x3220, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226, | |
1343 0x3227, 0x3228, 0x3229, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e, | |
1344 0x322f, 0x3230, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x3378, | |
1345 0x3379, 0x337a, 0x337b, 0x337c, 0x337d, 0x337e, 0x337f, 0x33c0, | |
1346 0x33c1, 0x33c2, 0x33c3, 0x33c4, 0x33c5, 0x33c6, 0x33c7, 0x33c8, | |
1347 0x33c9, 0x33ca, 0x33cb, 0x33cc, 0x33cd, 0x33ce, 0x33cf, 0x33d0, | |
1348 0x33d1, 0x33d2, 0x33d3, 0x33d4, 0x33d5, 0x33d6, 0x33d7, 0x33d8, | |
1349 0x33d9, 0x3706, 0x3707, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734, | |
1350 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c, | |
1351 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744, | |
1352 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c, | |
1353 0x374d, 0x374e, 0x374f, 0x3b34, 0x3b35, 0x3b36, 0x3b37, 0x3be8, | |
1354 0x3be9, 0x3bea, 0x3beb, 0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0, | |
1355 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4, 0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8, | |
1356 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd, 0x3bfe, 0x3bff, 0x2000, | |
1357 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, | |
1358 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x202e, 0x202f, 0x2182, | |
1359 0x2183, 0x21b4, 0x21b5, 0x21b6, 0x21b7, 0x21b8, 0x21b9, 0x21ba, | |
1360 0x21bb, 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x2460, 0x2461, 0x2462, | |
1361 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, | |
1362 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472, | |
1363 0x2473, 0x26a2, 0x26a3, 0x000b, | |
1364 }; | |
1365 | |
936 | 1366 static const uint8_t table1_mv_bits[1100] = { |
0 | 1367 2, 4, 4, 4, 5, 5, 5, 5, |
1368 6, 6, 7, 7, 7, 7, 7, 8, | |
1369 8, 8, 8, 8, 8, 8, 8, 8, | |
1370 8, 8, 8, 8, 8, 8, 8, 8, | |
1371 8, 9, 9, 9, 9, 9, 9, 9, | |
1372 9, 9, 9, 9, 9, 9, 9, 9, | |
1373 9, 9, 9, 9, 9, 10, 10, 10, | |
1374 10, 10, 10, 10, 10, 10, 10, 10, | |
1375 10, 10, 10, 10, 10, 10, 10, 10, | |
1376 10, 10, 10, 10, 10, 10, 10, 10, | |
1377 10, 10, 10, 10, 10, 10, 10, 10, | |
1378 10, 10, 10, 10, 10, 10, 10, 10, | |
1379 10, 10, 10, 10, 10, 10, 10, 10, | |
1380 10, 10, 10, 10, 10, 10, 10, 10, | |
1381 10, 10, 10, 11, 11, 11, 11, 11, | |
1382 11, 11, 11, 11, 11, 11, 11, 11, | |
1383 11, 11, 11, 11, 11, 11, 11, 11, | |
1384 11, 11, 11, 11, 11, 11, 11, 11, | |
1385 11, 11, 11, 11, 11, 11, 11, 11, | |
1386 11, 11, 11, 11, 11, 11, 11, 11, | |
1387 11, 11, 11, 11, 11, 11, 11, 11, | |
1388 11, 11, 11, 11, 11, 11, 11, 11, | |
1389 11, 11, 11, 11, 11, 11, 11, 11, | |
1390 11, 11, 11, 11, 11, 11, 11, 11, | |
1391 11, 11, 11, 12, 12, 12, 12, 12, | |
1392 12, 12, 12, 12, 12, 12, 12, 12, | |
1393 12, 12, 12, 12, 12, 12, 12, 12, | |
1394 12, 12, 12, 12, 12, 12, 12, 12, | |
1395 12, 12, 12, 12, 12, 12, 12, 12, | |
1396 12, 12, 12, 12, 12, 12, 12, 12, | |
1397 12, 12, 12, 12, 12, 12, 12, 12, | |
1398 12, 12, 12, 12, 12, 12, 12, 12, | |
1399 12, 12, 12, 12, 12, 12, 12, 12, | |
1400 12, 12, 12, 12, 12, 12, 12, 12, | |
1401 12, 12, 12, 12, 12, 12, 12, 12, | |
1402 12, 12, 12, 12, 12, 12, 12, 12, | |
1403 12, 12, 12, 12, 12, 12, 12, 12, | |
1404 12, 12, 12, 12, 12, 12, 12, 12, | |
1405 12, 12, 12, 12, 12, 12, 12, 12, | |
1406 12, 12, 12, 12, 12, 12, 12, 12, | |
1407 12, 12, 12, 12, 12, 12, 12, 12, | |
1408 12, 12, 13, 13, 13, 13, 13, 13, | |
1409 13, 13, 13, 13, 13, 13, 13, 13, | |
1410 13, 13, 13, 13, 13, 13, 13, 13, | |
1411 13, 13, 13, 13, 13, 13, 13, 13, | |
1412 13, 13, 13, 13, 13, 13, 13, 13, | |
1413 13, 13, 13, 13, 13, 13, 13, 13, | |
1414 13, 13, 13, 13, 13, 13, 13, 13, | |
1415 13, 13, 13, 13, 13, 13, 13, 13, | |
1416 13, 13, 13, 13, 13, 13, 13, 13, | |
1417 13, 13, 13, 13, 13, 13, 13, 13, | |
1418 13, 13, 13, 13, 13, 13, 13, 13, | |
1419 13, 13, 13, 13, 13, 13, 13, 13, | |
1420 13, 13, 13, 13, 13, 13, 13, 13, | |
1421 13, 13, 13, 13, 13, 13, 13, 13, | |
1422 13, 13, 13, 13, 13, 13, 13, 13, | |
1423 13, 13, 13, 13, 13, 13, 13, 13, | |
1424 13, 13, 13, 13, 13, 13, 13, 13, | |
1425 13, 13, 13, 13, 13, 13, 13, 13, | |
1426 13, 13, 13, 13, 13, 13, 13, 13, | |
1427 13, 13, 13, 13, 13, 13, 13, 13, | |
1428 13, 13, 13, 13, 13, 13, 13, 13, | |
1429 13, 13, 13, 13, 13, 13, 13, 13, | |
1430 13, 13, 13, 13, 13, 13, 13, 13, | |
1431 13, 13, 13, 13, 13, 13, 13, 13, | |
1432 13, 13, 13, 13, 13, 13, 13, 13, | |
1433 13, 13, 13, 13, 13, 13, 13, 13, | |
1434 13, 13, 13, 13, 13, 13, 13, 13, | |
1435 13, 13, 13, 13, 13, 13, 13, 13, | |
1436 13, 13, 13, 13, 13, 13, 13, 13, | |
1437 13, 13, 13, 13, 13, 13, 13, 13, | |
1438 13, 13, 13, 13, 13, 13, 13, 13, | |
1439 13, 13, 13, 13, 13, 13, 13, 13, | |
1440 13, 13, 13, 13, 13, 13, 13, 13, | |
1441 13, 13, 13, 13, 13, 13, 13, 13, | |
1442 13, 13, 13, 13, 13, 13, 13, 13, | |
1443 13, 13, 13, 13, 13, 13, 13, 14, | |
1444 14, 14, 14, 14, 14, 14, 14, 14, | |
1445 14, 14, 14, 14, 14, 14, 14, 14, | |
1446 14, 14, 14, 14, 14, 14, 14, 14, | |
1447 14, 14, 14, 14, 14, 14, 14, 14, | |
1448 14, 14, 14, 14, 14, 14, 14, 14, | |
1449 14, 14, 14, 14, 14, 14, 14, 14, | |
1450 14, 14, 14, 14, 14, 14, 14, 14, | |
1451 14, 14, 14, 14, 14, 14, 14, 14, | |
1452 14, 14, 14, 14, 14, 14, 14, 14, | |
1453 14, 14, 14, 14, 14, 14, 14, 14, | |
1454 14, 14, 14, 14, 14, 14, 14, 14, | |
1455 14, 14, 14, 14, 14, 14, 14, 14, | |
1456 14, 14, 14, 14, 14, 14, 14, 14, | |
1457 14, 14, 14, 14, 14, 14, 14, 14, | |
1458 14, 14, 14, 14, 14, 14, 14, 14, | |
1459 14, 14, 14, 14, 14, 14, 14, 14, | |
1460 14, 14, 14, 14, 14, 14, 14, 14, | |
1461 14, 14, 14, 14, 14, 14, 14, 14, | |
1462 14, 14, 14, 14, 14, 14, 14, 14, | |
1463 14, 14, 14, 14, 14, 14, 14, 14, | |
1464 14, 14, 14, 14, 14, 14, 14, 14, | |
1465 14, 14, 14, 14, 14, 14, 14, 14, | |
1466 14, 14, 14, 14, 14, 14, 14, 14, | |
1467 14, 14, 14, 14, 14, 14, 14, 14, | |
1468 14, 14, 14, 14, 14, 14, 14, 14, | |
1469 14, 14, 14, 14, 14, 14, 14, 14, | |
1470 14, 14, 14, 14, 14, 14, 14, 14, | |
1471 14, 14, 14, 14, 14, 14, 14, 14, | |
1472 14, 14, 14, 14, 14, 14, 14, 14, | |
1473 14, 14, 14, 14, 14, 14, 14, 14, | |
1474 14, 14, 14, 14, 14, 14, 14, 14, | |
1475 14, 14, 14, 14, 14, 14, 14, 14, | |
1476 14, 14, 14, 14, 14, 14, 14, 14, | |
1477 14, 14, 14, 14, 14, 14, 14, 14, | |
1478 14, 14, 14, 14, 14, 14, 14, 14, | |
1479 14, 14, 14, 14, 14, 14, 14, 14, | |
1480 14, 14, 14, 14, 14, 14, 14, 14, | |
1481 14, 14, 14, 14, 14, 14, 14, 14, | |
1482 14, 14, 14, 14, 14, 14, 14, 14, | |
1483 14, 14, 14, 14, 14, 14, 14, 14, | |
1484 14, 14, 14, 14, 14, 14, 14, 14, | |
1485 14, 14, 14, 14, 14, 14, 14, 14, | |
1486 14, 14, 14, 14, 14, 14, 14, 14, | |
1487 14, 14, 14, 14, 14, 14, 14, 14, | |
1488 14, 14, 14, 14, 14, 14, 14, 14, | |
1489 14, 14, 14, 14, 14, 14, 14, 14, | |
1490 14, 14, 14, 14, 14, 14, 14, 14, | |
1491 14, 14, 14, 14, 14, 14, 14, 14, | |
1492 14, 14, 14, 14, 14, 14, 14, 14, | |
1493 14, 14, 14, 14, 14, 14, 14, 14, | |
1494 14, 14, 14, 14, 14, 14, 14, 14, | |
1495 14, 14, 14, 14, 14, 14, 14, 14, | |
1496 14, 14, 14, 14, 14, 14, 14, 14, | |
1497 14, 14, 14, 14, 14, 14, 14, 15, | |
1498 15, 15, 15, 15, 15, 15, 15, 15, | |
1499 15, 15, 15, 15, 15, 15, 15, 15, | |
1500 15, 15, 15, 15, 15, 15, 15, 15, | |
1501 15, 15, 15, 15, 15, 15, 15, 15, | |
1502 15, 15, 15, 15, 15, 15, 15, 15, | |
1503 15, 15, 15, 15, 15, 15, 15, 15, | |
1504 15, 15, 15, 4, | |
1505 }; | |
1506 | |
936 | 1507 static const uint8_t table1_mvx[1099] = { |
0 | 1508 32, 31, 32, 31, 33, 32, 33, 33, |
1509 31, 34, 30, 32, 32, 34, 35, 32, | |
1510 34, 33, 29, 30, 30, 32, 31, 31, | |
1511 33, 35, 35, 33, 31, 29, 29, 33, | |
1512 34, 30, 31, 28, 36, 30, 34, 32, | |
1513 32, 37, 32, 32, 25, 27, 39, 32, | |
1514 32, 32, 38, 35, 36, 32, 37, 61, | |
1515 26, 32, 34, 35, 3, 35, 27, 28, | |
1516 29, 34, 28, 37, 31, 36, 32, 27, | |
1517 31, 30, 29, 39, 33, 29, 33, 35, | |
1518 25, 25, 29, 33, 31, 31, 31, 33, | |
1519 32, 30, 32, 32, 41, 39, 33, 36, | |
1520 32, 28, 34, 36, 38, 24, 60, 31, | |
1521 23, 28, 32, 33, 59, 32, 40, 30, | |
1522 5, 34, 32, 38, 32, 30, 43, 4, | |
1523 32, 32, 42, 31, 31, 32, 26, 38, | |
1524 26, 22, 21, 37, 61, 63, 37, 31, | |
1525 32, 33, 2, 1, 23, 33, 41, 27, | |
1526 35, 30, 38, 23, 33, 3, 28, 34, | |
1527 34, 27, 41, 29, 39, 35, 36, 29, | |
1528 32, 27, 30, 32, 24, 61, 37, 26, | |
1529 59, 25, 35, 27, 36, 37, 30, 31, | |
1530 34, 40, 3, 28, 34, 39, 32, 31, | |
1531 32, 30, 24, 28, 35, 36, 26, 32, | |
1532 31, 33, 29, 33, 39, 25, 30, 24, | |
1533 35, 59, 29, 34, 25, 30, 21, 35, | |
1534 43, 40, 32, 29, 5, 28, 31, 62, | |
1535 33, 33, 25, 31, 21, 31, 43, 31, | |
1536 34, 33, 20, 40, 39, 31, 31, 57, | |
1537 38, 32, 42, 33, 32, 31, 32, 29, | |
1538 30, 44, 5, 31, 22, 34, 36, 17, | |
1539 38, 58, 38, 35, 32, 60, 35, 24, | |
1540 32, 38, 16, 45, 42, 32, 31, 29, | |
1541 4, 30, 17, 40, 46, 48, 63, 32, | |
1542 42, 19, 41, 22, 28, 36, 45, 33, | |
1543 33, 32, 29, 7, 41, 42, 18, 33, | |
1544 33, 32, 22, 37, 1, 26, 22, 23, | |
1545 49, 28, 26, 27, 32, 33, 27, 23, | |
1546 28, 36, 15, 6, 34, 27, 31, 26, | |
1547 23, 2, 33, 32, 34, 41, 28, 32, | |
1548 41, 0, 36, 38, 34, 31, 47, 32, | |
1549 17, 31, 39, 33, 37, 51, 30, 47, | |
1550 32, 50, 32, 19, 63, 30, 25, 27, | |
1551 33, 62, 24, 31, 27, 30, 37, 31, | |
1552 45, 32, 39, 20, 46, 47, 35, 19, | |
1553 34, 1, 49, 21, 21, 14, 51, 26, | |
1554 23, 31, 36, 35, 58, 29, 29, 21, | |
1555 20, 42, 13, 28, 12, 40, 31, 33, | |
1556 39, 60, 32, 44, 33, 31, 28, 37, | |
1557 29, 32, 30, 49, 43, 28, 39, 25, | |
1558 32, 48, 2, 15, 20, 25, 31, 28, | |
1559 21, 24, 25, 15, 31, 17, 37, 43, | |
1560 18, 32, 33, 24, 33, 36, 13, 33, | |
1561 31, 39, 11, 31, 33, 32, 39, 37, | |
1562 32, 32, 29, 17, 44, 46, 36, 35, | |
1563 26, 37, 58, 32, 34, 38, 8, 38, | |
1564 38, 22, 29, 25, 16, 35, 32, 35, | |
1565 33, 43, 18, 46, 38, 50, 33, 18, | |
1566 53, 60, 13, 32, 36, 33, 51, 36, | |
1567 43, 45, 27, 42, 29, 24, 30, 25, | |
1568 31, 52, 31, 35, 38, 9, 22, 34, | |
1569 4, 17, 28, 55, 42, 25, 17, 20, | |
1570 47, 34, 33, 16, 40, 25, 16, 30, | |
1571 53, 29, 10, 11, 14, 26, 33, 4, | |
1572 35, 44, 26, 16, 31, 26, 34, 38, | |
1573 29, 31, 30, 24, 22, 61, 32, 9, | |
1574 45, 34, 31, 19, 9, 31, 46, 31, | |
1575 35, 54, 29, 57, 30, 50, 3, 31, | |
1576 63, 34, 47, 41, 51, 18, 31, 14, | |
1577 37, 38, 31, 24, 32, 31, 50, 33, | |
1578 31, 54, 27, 9, 33, 23, 19, 32, | |
1579 29, 29, 33, 28, 47, 49, 30, 47, | |
1580 33, 27, 25, 54, 44, 45, 50, 58, | |
1581 51, 48, 33, 59, 33, 34, 57, 13, | |
1582 26, 33, 13, 48, 30, 11, 7, 56, | |
1583 34, 55, 26, 0, 26, 35, 1, 51, | |
1584 33, 53, 31, 45, 12, 29, 29, 51, | |
1585 31, 48, 2, 6, 34, 30, 28, 33, | |
1586 60, 40, 27, 46, 31, 9, 35, 29, | |
1587 31, 39, 55, 46, 19, 37, 62, 34, | |
1588 30, 16, 19, 49, 41, 41, 39, 37, | |
1589 14, 5, 13, 35, 55, 30, 40, 40, | |
1590 42, 8, 20, 25, 45, 35, 33, 36, | |
1591 54, 38, 27, 37, 62, 40, 15, 59, | |
1592 49, 31, 29, 34, 34, 39, 24, 29, | |
1593 25, 29, 21, 29, 10, 61, 33, 49, | |
1594 35, 34, 3, 38, 39, 29, 7, 41, | |
1595 1, 35, 4, 23, 15, 23, 11, 37, | |
1596 28, 35, 30, 30, 24, 1, 43, 56, | |
1597 8, 34, 42, 24, 45, 30, 20, 23, | |
1598 8, 38, 22, 33, 17, 52, 34, 22, | |
1599 53, 43, 44, 1, 27, 31, 41, 43, | |
1600 41, 30, 31, 36, 30, 5, 55, 31, | |
1601 33, 30, 40, 23, 15, 29, 34, 34, | |
1602 59, 34, 30, 11, 13, 38, 5, 0, | |
1603 30, 42, 5, 30, 29, 34, 10, 44, | |
1604 30, 63, 35, 12, 3, 26, 15, 17, | |
1605 25, 34, 43, 39, 34, 56, 29, 23, | |
1606 30, 12, 30, 10, 35, 9, 24, 58, | |
1607 10, 12, 54, 33, 37, 20, 41, 35, | |
1608 29, 18, 61, 30, 40, 24, 39, 53, | |
1609 62, 26, 29, 33, 34, 53, 49, 21, | |
1610 27, 11, 63, 20, 26, 23, 7, 13, | |
1611 6, 47, 29, 30, 9, 51, 22, 34, | |
1612 21, 25, 33, 56, 57, 30, 38, 51, | |
1613 51, 38, 63, 28, 40, 35, 33, 18, | |
1614 33, 33, 24, 58, 58, 34, 49, 29, | |
1615 43, 4, 1, 4, 42, 35, 35, 30, | |
1616 17, 5, 56, 61, 25, 37, 36, 55, | |
1617 28, 35, 29, 50, 48, 52, 2, 42, | |
1618 34, 40, 46, 46, 43, 35, 29, 48, | |
1619 20, 29, 31, 41, 7, 30, 35, 19, | |
1620 14, 21, 8, 39, 39, 40, 46, 55, | |
1621 34, 6, 30, 34, 37, 25, 37, 33, | |
1622 22, 44, 52, 17, 35, 29, 36, 35, | |
1623 40, 37, 28, 30, 50, 14, 28, 55, | |
1624 6, 23, 19, 14, 30, 3, 30, 28, | |
1625 28, 61, 61, 47, 45, 48, 40, 40, | |
1626 34, 34, 25, 30, 29, 35, 4, 26, | |
1627 53, 50, 26, 41, 27, 59, 27, 38, | |
1628 39, 3, 50, 43, 47, 23, 33, 55, | |
1629 35, 21, 23, 35, 61, 33, 46, 52, | |
1630 35, 34, 24, 30, 43, 16, 37, 21, | |
1631 2, 24, 45, 34, 30, 55, 55, 1, | |
1632 29, 29, 26, 28, 25, 31, 36, 22, | |
1633 17, 30, 52, 2, 44, 44, 57, 26, | |
1634 62, 41, 39, 57, 26, 46, 49, 11, | |
1635 16, 19, 5, 59, 38, 39, 58, 38, | |
1636 25, 49, 50, 22, 28, 59, 9, 59, | |
1637 7, 28, 55, 17, 4, 35, 50, 21, | |
1638 29, 44, 47, 18, 24, 19, 25, 42, | |
1639 35, 3, 51, 35, 16, 35, 30, 63, | |
1640 57, 39, 39, 25, 35, 38, 9, 16, | |
1641 36, 45, 31, 60, 14, 34, 42, 24, | |
1642 0, 37, 18, 61, 57, 37, 28, 53, | |
1643 20, 46, 14, 47, 38, 38, 38, 9, | |
1644 34, 39, 43, 17, 39, 59, 5, 27, | |
1645 0, 12, 27, | |
1646 }; | |
1647 | |
936 | 1648 static const uint8_t table1_mvy[1099] = { |
0 | 1649 32, 32, 31, 31, 32, 33, 31, 33, |
1650 33, 32, 32, 30, 34, 31, 32, 29, | |
1651 33, 30, 32, 33, 31, 35, 34, 30, | |
1652 34, 31, 33, 29, 29, 31, 33, 35, | |
1653 30, 30, 35, 32, 32, 34, 34, 28, | |
1654 25, 32, 36, 27, 32, 32, 32, 37, | |
1655 39, 3, 32, 30, 31, 26, 31, 32, | |
1656 32, 38, 29, 29, 32, 34, 31, 31, | |
1657 34, 35, 33, 33, 28, 33, 1, 33, | |
1658 27, 29, 30, 31, 28, 29, 37, 35, | |
1659 31, 33, 35, 27, 36, 37, 25, 25, | |
1660 61, 35, 4, 5, 32, 33, 36, 30, | |
1661 23, 30, 28, 34, 31, 32, 32, 39, | |
1662 32, 34, 21, 39, 32, 59, 32, 28, | |
1663 32, 36, 60, 33, 24, 36, 32, 32, | |
1664 41, 2, 32, 38, 26, 22, 33, 30, | |
1665 31, 32, 32, 30, 31, 32, 29, 3, | |
1666 40, 38, 32, 32, 33, 26, 31, 34, | |
1667 28, 38, 34, 31, 3, 31, 35, 38, | |
1668 27, 35, 33, 28, 29, 27, 29, 27, | |
1669 43, 29, 37, 63, 31, 33, 34, 30, | |
1670 31, 30, 37, 30, 35, 35, 26, 41, | |
1671 37, 31, 33, 28, 26, 30, 42, 24, | |
1672 7, 27, 33, 29, 36, 28, 34, 57, | |
1673 23, 41, 36, 23, 35, 34, 25, 30, | |
1674 25, 33, 25, 25, 29, 24, 33, 39, | |
1675 33, 33, 0, 37, 31, 36, 21, 32, | |
1676 61, 24, 35, 61, 31, 5, 31, 59, | |
1677 39, 21, 32, 30, 34, 22, 40, 32, | |
1678 29, 16, 31, 5, 62, 2, 20, 39, | |
1679 39, 32, 33, 1, 31, 24, 36, 32, | |
1680 36, 32, 28, 26, 6, 31, 38, 34, | |
1681 58, 35, 32, 33, 33, 17, 43, 26, | |
1682 31, 40, 31, 34, 32, 32, 31, 19, | |
1683 30, 32, 29, 33, 38, 38, 32, 59, | |
1684 40, 18, 38, 32, 35, 34, 32, 17, | |
1685 1, 15, 30, 28, 31, 28, 34, 29, | |
1686 32, 27, 35, 27, 49, 22, 37, 34, | |
1687 37, 26, 32, 32, 22, 28, 45, 29, | |
1688 30, 31, 43, 46, 41, 30, 26, 13, | |
1689 34, 32, 27, 38, 42, 42, 33, 47, | |
1690 33, 60, 27, 42, 25, 32, 22, 32, | |
1691 48, 32, 45, 33, 33, 41, 27, 25, | |
1692 19, 31, 35, 19, 36, 42, 27, 17, | |
1693 31, 44, 28, 33, 33, 31, 23, 31, | |
1694 40, 33, 31, 34, 30, 32, 33, 36, | |
1695 35, 47, 37, 41, 31, 23, 41, 29, | |
1696 30, 35, 32, 25, 32, 28, 58, 2, | |
1697 37, 33, 14, 33, 49, 20, 39, 36, | |
1698 21, 9, 23, 33, 35, 24, 39, 37, | |
1699 11, 33, 30, 31, 31, 28, 51, 40, | |
1700 35, 29, 25, 33, 46, 35, 37, 30, | |
1701 30, 8, 63, 28, 15, 40, 33, 45, | |
1702 49, 25, 32, 4, 47, 51, 36, 39, | |
1703 53, 10, 24, 29, 30, 31, 25, 40, | |
1704 38, 38, 33, 56, 23, 27, 32, 37, | |
1705 26, 29, 43, 36, 33, 24, 55, 43, | |
1706 9, 29, 34, 34, 24, 33, 18, 33, | |
1707 33, 30, 31, 50, 24, 60, 30, 39, | |
1708 34, 30, 39, 28, 22, 38, 2, 26, | |
1709 63, 32, 57, 21, 39, 33, 28, 18, | |
1710 30, 34, 22, 33, 29, 41, 30, 34, | |
1711 35, 21, 13, 34, 35, 39, 30, 46, | |
1712 32, 42, 32, 31, 33, 26, 11, 33, | |
1713 22, 31, 25, 31, 53, 27, 43, 25, | |
1714 40, 50, 21, 36, 38, 30, 12, 31, | |
1715 34, 20, 15, 29, 32, 62, 30, 13, | |
1716 17, 32, 19, 31, 20, 31, 30, 7, | |
1717 1, 17, 34, 37, 31, 31, 44, 34, | |
1718 26, 40, 16, 37, 52, 48, 30, 20, | |
1719 18, 33, 38, 29, 7, 25, 30, 54, | |
1720 45, 47, 46, 41, 29, 29, 16, 30, | |
1721 14, 26, 38, 34, 34, 29, 34, 30, | |
1722 29, 30, 57, 30, 4, 46, 33, 29, | |
1723 39, 44, 30, 31, 50, 33, 31, 32, | |
1724 19, 32, 40, 31, 37, 47, 1, 35, | |
1725 16, 31, 0, 35, 33, 1, 17, 34, | |
1726 9, 34, 33, 31, 49, 43, 42, 51, | |
1727 34, 29, 23, 29, 14, 30, 45, 49, | |
1728 11, 24, 31, 28, 35, 41, 30, 44, | |
1729 18, 29, 34, 35, 36, 25, 26, 21, | |
1730 31, 30, 34, 19, 34, 44, 36, 38, | |
1731 25, 31, 28, 23, 37, 3, 55, 41, | |
1732 30, 22, 41, 24, 33, 26, 35, 35, | |
1733 30, 55, 51, 47, 48, 38, 24, 15, | |
1734 21, 50, 25, 46, 30, 29, 10, 34, | |
1735 42, 45, 29, 42, 22, 3, 33, 27, | |
1736 34, 1, 34, 28, 34, 36, 35, 23, | |
1737 23, 13, 58, 3, 26, 63, 25, 31, | |
1738 34, 61, 38, 39, 25, 61, 29, 37, | |
1739 30, 41, 26, 48, 28, 33, 50, 35, | |
1740 30, 37, 29, 29, 40, 6, 39, 28, | |
1741 28, 19, 8, 22, 45, 34, 35, 10, | |
1742 58, 17, 37, 39, 30, 18, 54, 14, | |
1743 29, 16, 59, 30, 35, 23, 35, 30, | |
1744 47, 36, 29, 55, 20, 12, 31, 35, | |
1745 14, 29, 18, 34, 34, 24, 29, 26, | |
1746 22, 2, 27, 23, 8, 30, 55, 38, | |
1747 60, 31, 4, 34, 49, 34, 27, 34, | |
1748 33, 30, 31, 54, 42, 35, 38, 46, | |
1749 44, 26, 27, 9, 39, 25, 21, 29, | |
1750 28, 42, 13, 0, 5, 34, 37, 28, | |
1751 24, 29, 63, 26, 22, 27, 29, 25, | |
1752 33, 25, 61, 0, 35, 25, 36, 15, | |
1753 27, 40, 53, 33, 3, 10, 16, 37, | |
1754 38, 18, 30, 46, 27, 9, 6, 29, | |
1755 62, 8, 42, 28, 29, 3, 25, 16, | |
1756 26, 29, 35, 28, 27, 51, 61, 48, | |
1757 37, 9, 34, 7, 49, 45, 20, 29, | |
1758 21, 5, 5, 29, 28, 34, 29, 24, | |
1759 10, 24, 35, 36, 38, 55, 11, 36, | |
1760 38, 53, 54, 26, 30, 49, 20, 27, | |
1761 30, 39, 33, 41, 49, 22, 38, 38, | |
1762 4, 30, 8, 9, 3, 24, 22, 50, | |
1763 37, 36, 31, 27, 2, 9, 42, 63, | |
1764 25, 19, 44, 1, 28, 28, 48, 30, | |
1765 34, 41, 41, 38, 12, 27, 15, 0, | |
1766 16, 34, 35, 38, 28, 29, 40, 42, | |
1767 51, 52, 45, 54, 59, 59, 42, 44, | |
1768 37, 26, 46, 24, 15, 39, 22, 46, | |
1769 19, 35, 38, 17, 37, 23, 52, 55, | |
1770 50, 37, 26, 11, 37, 12, 24, 30, | |
1771 16, 13, 22, 13, 36, 35, 40, 41, | |
1772 34, 41, 26, 53, 51, 5, 21, 30, | |
1773 2, 63, 41, 20, 1, 56, 21, 24, | |
1774 25, 5, 28, 35, 26, 28, 30, 18, | |
1775 29, 23, 40, 34, 20, 42, 39, 34, | |
1776 28, 61, 38, 27, 62, 9, 36, 17, | |
1777 9, 49, 24, 25, 54, 34, 39, 37, | |
1778 3, 1, 25, 38, 38, 44, 35, 36, | |
1779 12, 60, 36, 38, 40, 25, 43, 39, | |
1780 53, 28, 39, 57, 46, 10, 52, 27, | |
1781 35, 42, 45, 59, 15, 60, 38, 24, | |
1782 23, 39, 12, 29, 24, 0, 20, 16, | |
1783 28, 43, 35, 28, 1, 49, 4, 21, | |
1784 42, 39, 29, 3, 44, 21, 53, 55, | |
1785 11, 5, 3, 39, 53, 28, 25, 19, | |
1786 34, 28, 21, | |
1787 }; | |
1788 | |
500 | 1789 /* motion vector table */ |
1790 typedef struct MVTable { | |
1791 int n; | |
936 | 1792 const uint16_t *table_mv_code; |
1793 const uint8_t *table_mv_bits; | |
1794 const uint8_t *table_mvx; | |
1795 const uint8_t *table_mvy; | |
1796 uint16_t *table_mv_index; /* encoding: convert mv to index in table_mv */ | |
500 | 1797 VLC vlc; /* decoding: vlc */ |
1798 } MVTable; | |
1799 | |
0 | 1800 static MVTable mv_tables[2] = { |
1801 { | |
1802 1099, | |
1803 table0_mv_code, | |
1804 table0_mv_bits, | |
1805 table0_mvx, | |
1806 table0_mvy, | |
1807 }, | |
1808 { | |
1809 1099, | |
1810 table1_mv_code, | |
1811 table1_mv_bits, | |
1812 table1_mvx, | |
1813 table1_mvy, | |
1814 } | |
1815 }; | |
307 | 1816 |
936 | 1817 static const uint8_t v2_mb_type[8][2] = { |
307 | 1818 {1, 1}, {0 , 2}, {3 , 3}, {9 , 5}, |
1819 {5, 4}, {0x21, 7}, {0x20, 7}, {0x11, 6}, | |
1820 }; | |
1821 | |
936 | 1822 static const uint8_t v2_intra_cbpc[4][2] = { |
307 | 1823 {1, 1}, {0, 3}, {1, 3}, {1, 2}, |
1824 }; | |
500 | 1825 |
2753 | 1826 static const uint8_t wmv1_y_dc_scale_table[32]={ |
500 | 1827 // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 |
1828 0, 8, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21 | |
1829 }; | |
2753 | 1830 static const uint8_t wmv1_c_dc_scale_table[32]={ |
500 | 1831 // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 |
1832 0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22 | |
1833 }; | |
1834 | |
2753 | 1835 static const uint8_t old_ff_y_dc_scale_table[32]={ |
500 | 1836 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
1837 0, 8, 8, 8, 8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 | |
1838 }; | |
2753 | 1839 static const uint8_t old_ff_c_dc_scale_table[32]={ |
500 | 1840 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
1841 0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22 | |
1842 }; | |
1843 | |
1844 | |
1845 #define WMV1_SCANTABLE_COUNT 4 | |
1846 | |
936 | 1847 static const uint8_t wmv1_scantable00[64]= { |
2967 | 1848 0x00, 0x08, 0x01, 0x02, 0x09, 0x10, 0x18, 0x11, |
1849 0x0A, 0x03, 0x04, 0x0B, 0x12, 0x19, 0x20, 0x28, | |
1850 0x30, 0x38, 0x29, 0x21, 0x1A, 0x13, 0x0C, 0x05, | |
1851 0x06, 0x0D, 0x14, 0x1B, 0x22, 0x31, 0x39, 0x3A, | |
1852 0x32, 0x2A, 0x23, 0x1C, 0x15, 0x0E, 0x07, 0x0F, | |
1853 0x16, 0x1D, 0x24, 0x2B, 0x33, 0x3B, 0x3C, 0x34, | |
1854 0x2C, 0x25, 0x1E, 0x17, 0x1F, 0x26, 0x2D, 0x35, | |
1855 0x3D, 0x3E, 0x36, 0x2E, 0x27, 0x2F, 0x37, 0x3F, | |
500 | 1856 }; |
936 | 1857 static const uint8_t wmv1_scantable01[64]= { |
2967 | 1858 0x00, 0x08, 0x01, 0x02, 0x09, 0x10, 0x18, 0x11, |
1859 0x0A, 0x03, 0x04, 0x0B, 0x12, 0x19, 0x20, 0x28, | |
1860 0x21, 0x30, 0x1A, 0x13, 0x0C, 0x05, 0x06, 0x0D, | |
1861 0x14, 0x1B, 0x22, 0x29, 0x38, 0x31, 0x39, 0x2A, | |
1862 0x23, 0x1C, 0x15, 0x0E, 0x07, 0x0F, 0x16, 0x1D, | |
1863 0x24, 0x2B, 0x32, 0x3A, 0x33, 0x3B, 0x2C, 0x25, | |
1864 0x1E, 0x17, 0x1F, 0x26, 0x2D, 0x34, 0x3C, 0x35, | |
1865 0x3D, 0x2E, 0x27, 0x2F, 0x36, 0x3E, 0x37, 0x3F, | |
500 | 1866 }; |
936 | 1867 static const uint8_t wmv1_scantable02[64]= { |
2967 | 1868 0x00, 0x01, 0x08, 0x02, 0x03, 0x09, 0x10, 0x18, |
1869 0x11, 0x0A, 0x04, 0x05, 0x0B, 0x12, 0x19, 0x20, | |
1870 0x28, 0x30, 0x21, 0x1A, 0x13, 0x0C, 0x06, 0x07, | |
1871 0x0D, 0x14, 0x1B, 0x22, 0x29, 0x38, 0x31, 0x39, | |
1872 0x2A, 0x23, 0x1C, 0x15, 0x0E, 0x0F, 0x16, 0x1D, | |
1873 0x24, 0x2B, 0x32, 0x3A, 0x33, 0x2C, 0x25, 0x1E, | |
1874 0x17, 0x1F, 0x26, 0x2D, 0x34, 0x3B, 0x3C, 0x35, | |
1875 0x2E, 0x27, 0x2F, 0x36, 0x3D, 0x3E, 0x37, 0x3F, | |
500 | 1876 }; |
936 | 1877 static const uint8_t wmv1_scantable03[64]= { |
2967 | 1878 0x00, 0x08, 0x10, 0x01, 0x18, 0x20, 0x28, 0x09, |
1879 0x02, 0x03, 0x0A, 0x11, 0x19, 0x30, 0x38, 0x29, | |
1880 0x21, 0x1A, 0x12, 0x0B, 0x04, 0x05, 0x0C, 0x13, | |
1881 0x1B, 0x22, 0x31, 0x39, 0x32, 0x2A, 0x23, 0x1C, | |
1882 0x14, 0x0D, 0x06, 0x07, 0x0E, 0x15, 0x1D, 0x24, | |
1883 0x2B, 0x33, 0x3A, 0x3B, 0x34, 0x2C, 0x25, 0x1E, | |
1884 0x16, 0x0F, 0x17, 0x1F, 0x26, 0x2D, 0x3C, 0x35, | |
1885 0x2E, 0x27, 0x2F, 0x36, 0x3D, 0x3E, 0x37, 0x3F, | |
500 | 1886 }; |
1887 | |
936 | 1888 static const uint8_t *wmv1_scantable[WMV1_SCANTABLE_COUNT+1]={ |
500 | 1889 wmv1_scantable00, |
1890 wmv1_scantable01, | |
1891 wmv1_scantable02, | |
1892 wmv1_scantable03, | |
1893 }; | |
1894 | |
936 | 1895 static const uint8_t table_inter_intra[4][2]={ |
1013 | 1896 {0,1} /*Luma-Left Chroma-Left*/, |
1897 {2,2} /*Luma-Top Chroma-Left*/, | |
1898 {6,3} /*luma-Left Chroma-Top */, | |
1899 {7,3} /*luma-Top Chroma-Top */ | |
519 | 1900 }; |
1901 | |
936 | 1902 #define WMV2_INTER_CBP_TABLE_COUNT 4 |
1903 | |
1904 static const uint32_t table_mb_non_intra2[128][2] = { | |
2967 | 1905 {0x0000A7, 14}, {0x01B2B8, 18}, {0x01B28E, 18}, {0x036575, 19}, |
1906 {0x006CAC, 16}, {0x000A69, 18}, {0x002934, 20}, {0x00526B, 21}, | |
1907 {0x006CA1, 16}, {0x01B2B9, 18}, {0x0029AD, 20}, {0x029353, 24}, | |
1908 {0x006CA7, 16}, {0x006CAB, 16}, {0x01B2BB, 18}, {0x00029B, 16}, | |
1909 {0x00D944, 17}, {0x000A6A, 18}, {0x0149A8, 23}, {0x03651F, 19}, | |
1910 {0x006CAF, 16}, {0x000A4C, 18}, {0x03651E, 19}, {0x000A48, 18}, | |
1911 {0x00299C, 20}, {0x00299F, 20}, {0x029352, 24}, {0x0029AC, 20}, | |
1912 {0x000296, 16}, {0x00D946, 17}, {0x000A68, 18}, {0x000298, 16}, | |
1913 {0x000527, 17}, {0x00D94D, 17}, {0x0014D7, 19}, {0x036574, 19}, | |
1914 {0x000A5C, 18}, {0x01B299, 18}, {0x00299D, 20}, {0x00299E, 20}, | |
1915 {0x000525, 17}, {0x000A66, 18}, {0x00A4D5, 22}, {0x00149B, 19}, | |
1916 {0x000295, 16}, {0x006CAD, 16}, {0x000A49, 18}, {0x000521, 17}, | |
1917 {0x006CAA, 16}, {0x00D945, 17}, {0x01B298, 18}, {0x00052F, 17}, | |
1918 {0x003654, 15}, {0x006CA0, 16}, {0x000532, 17}, {0x000291, 16}, | |
1919 {0x003652, 15}, {0x000520, 17}, {0x000A5D, 18}, {0x000294, 16}, | |
1920 {0x00009B, 11}, {0x0006E2, 12}, {0x000028, 12}, {0x0001B0, 10}, | |
1921 {0x000001, 3}, {0x000010, 8}, {0x00002F, 6}, {0x00004C, 10}, | |
1922 {0x00000D, 4}, {0x000000, 10}, {0x000006, 9}, {0x000134, 12}, | |
1923 {0x00000C, 4}, {0x000007, 10}, {0x000007, 9}, {0x0006E1, 12}, | |
1924 {0x00000E, 5}, {0x0000DA, 9}, {0x000022, 9}, {0x000364, 11}, | |
1925 {0x00000F, 4}, {0x000006, 10}, {0x00000F, 9}, {0x000135, 12}, | |
1926 {0x000014, 5}, {0x0000DD, 9}, {0x000004, 9}, {0x000015, 11}, | |
1927 {0x00001A, 6}, {0x0001B3, 10}, {0x000005, 10}, {0x0006E3, 12}, | |
1928 {0x00000C, 5}, {0x0000B9, 8}, {0x000004, 8}, {0x0000DB, 9}, | |
1929 {0x00000E, 4}, {0x00000B, 10}, {0x000023, 9}, {0x0006CB, 12}, | |
1930 {0x000005, 6}, {0x0001B1, 10}, {0x000001, 10}, {0x0006E0, 12}, | |
1931 {0x000011, 5}, {0x0000DF, 9}, {0x00000E, 9}, {0x000373, 11}, | |
1932 {0x000003, 5}, {0x0000B8, 8}, {0x000006, 8}, {0x000175, 9}, | |
1933 {0x000015, 5}, {0x000174, 9}, {0x000027, 9}, {0x000372, 11}, | |
1934 {0x000010, 5}, {0x0000BB, 8}, {0x000005, 8}, {0x0000DE, 9}, | |
1935 {0x00000F, 5}, {0x000001, 9}, {0x000012, 8}, {0x000004, 10}, | |
1936 {0x000002, 3}, {0x000016, 5}, {0x000009, 4}, {0x000001, 5}, | |
936 | 1937 }; |
1938 | |
1939 static const uint32_t table_mb_non_intra3[128][2] = { | |
2967 | 1940 {0x0002A1, 10}, {0x005740, 15}, {0x01A0BF, 18}, {0x015D19, 17}, |
1941 {0x001514, 13}, {0x00461E, 15}, {0x015176, 17}, {0x015177, 17}, | |
1942 {0x0011AD, 13}, {0x00682E, 16}, {0x0682F9, 20}, {0x03417D, 19}, | |
1943 {0x001A36, 14}, {0x002A2D, 14}, {0x00D05E, 17}, {0x006824, 16}, | |
1944 {0x001515, 13}, {0x00545C, 15}, {0x0230E9, 18}, {0x011AFA, 17}, | |
1945 {0x0015D7, 13}, {0x005747, 15}, {0x008D79, 16}, {0x006825, 16}, | |
1946 {0x002BA2, 14}, {0x00A8BA, 16}, {0x0235F6, 18}, {0x015D18, 17}, | |
1947 {0x0011AE, 13}, {0x00346F, 15}, {0x008C3B, 16}, {0x00346E, 15}, | |
1948 {0x000D1A, 13}, {0x00461F, 15}, {0x0682F8, 20}, {0x011875, 17}, | |
1949 {0x002BA1, 14}, {0x008D61, 16}, {0x0235F7, 18}, {0x0230E8, 18}, | |
1950 {0x001513, 13}, {0x008D7B, 16}, {0x011AF4, 17}, {0x011AF5, 17}, | |
1951 {0x001185, 13}, {0x0046BF, 15}, {0x008D60, 16}, {0x008D7C, 16}, | |
1952 {0x001512, 13}, {0x00461C, 15}, {0x00AE8D, 16}, {0x008D78, 16}, | |
1953 {0x000D0E, 13}, {0x003413, 15}, {0x0046B1, 15}, {0x003416, 15}, | |
1954 {0x000AEA, 12}, {0x002A2C, 14}, {0x005741, 15}, {0x002A2F, 14}, | |
1955 {0x000158, 9}, {0x0008D2, 12}, {0x00054C, 11}, {0x000686, 12}, | |
1956 {0x000000, 2}, {0x000069, 8}, {0x00006B, 8}, {0x00068C, 12}, | |
1957 {0x000007, 3}, {0x00015E, 9}, {0x0002A3, 10}, {0x000AE9, 12}, | |
1958 {0x000006, 3}, {0x000231, 10}, {0x0002B8, 10}, {0x001A08, 14}, | |
1959 {0x000010, 5}, {0x0001A9, 10}, {0x000342, 11}, {0x000A88, 12}, | |
1960 {0x000004, 4}, {0x0001A2, 10}, {0x0002A4, 10}, {0x001184, 13}, | |
1961 {0x000012, 5}, {0x000232, 10}, {0x0002B2, 10}, {0x000680, 12}, | |
1962 {0x00001B, 6}, {0x00046A, 11}, {0x00068E, 12}, {0x002359, 14}, | |
1963 {0x000016, 5}, {0x00015F, 9}, {0x0002A0, 10}, {0x00054D, 11}, | |
1964 {0x000005, 4}, {0x000233, 10}, {0x0002B9, 10}, {0x0015D6, 13}, | |
1965 {0x000022, 6}, {0x000468, 11}, {0x000683, 12}, {0x001A0A, 14}, | |
1966 {0x000013, 5}, {0x000236, 10}, {0x0002BB, 10}, {0x001186, 13}, | |
1967 {0x000017, 5}, {0x0001AB, 10}, {0x0002A7, 10}, {0x0008D3, 12}, | |
1968 {0x000014, 5}, {0x000237, 10}, {0x000460, 11}, {0x000D0F, 13}, | |
1969 {0x000019, 6}, {0x0001AA, 10}, {0x0002B3, 10}, {0x000681, 12}, | |
1970 {0x000018, 6}, {0x0001A8, 10}, {0x0002A5, 10}, {0x00068F, 12}, | |
1971 {0x000007, 4}, {0x000055, 7}, {0x000047, 7}, {0x0000AD, 8}, | |
936 | 1972 }; |
1973 | |
1974 static const uint32_t table_mb_non_intra4[128][2] = { | |
2967 | 1975 {0x0000D4, 8}, {0x0021C5, 14}, {0x00F18A, 16}, {0x00D5BC, 16}, |
1976 {0x000879, 12}, {0x00354D, 14}, {0x010E3F, 17}, {0x010F54, 17}, | |
1977 {0x000866, 12}, {0x00356E, 14}, {0x010F55, 17}, {0x010E3E, 17}, | |
1978 {0x0010CE, 13}, {0x003C84, 14}, {0x00D5BD, 16}, {0x00F18B, 16}, | |
1979 {0x000868, 12}, {0x00438C, 15}, {0x0087AB, 16}, {0x00790B, 15}, | |
1980 {0x000F10, 12}, {0x00433D, 15}, {0x006AD3, 15}, {0x00790A, 15}, | |
1981 {0x001AA7, 13}, {0x0043D4, 15}, {0x00871E, 16}, {0x006ADF, 15}, | |
1982 {0x000D7C, 12}, {0x003C94, 14}, {0x00438D, 15}, {0x006AD2, 15}, | |
1983 {0x0006BC, 11}, {0x0021E9, 14}, {0x006ADA, 15}, {0x006A99, 15}, | |
1984 {0x0010F7, 13}, {0x004389, 15}, {0x006ADB, 15}, {0x0078C4, 15}, | |
1985 {0x000D56, 12}, {0x0035F7, 14}, {0x00438E, 15}, {0x006A98, 15}, | |
1986 {0x000D52, 12}, {0x003C95, 14}, {0x004388, 15}, {0x00433C, 15}, | |
1987 {0x000D54, 12}, {0x001E4B, 13}, {0x003C63, 14}, {0x003C83, 14}, | |
1988 {0x000861, 12}, {0x0021EB, 14}, {0x00356C, 14}, {0x0035F6, 14}, | |
1989 {0x000863, 12}, {0x00219F, 14}, {0x003568, 14}, {0x003C82, 14}, | |
1990 {0x0001AE, 9}, {0x0010C0, 13}, {0x000F11, 12}, {0x001AFA, 13}, | |
1991 {0x000000, 1}, {0x0000F0, 8}, {0x0001AD, 9}, {0x0010C1, 13}, | |
1992 {0x00000A, 4}, {0x0003C5, 10}, {0x000789, 11}, {0x001AB5, 13}, | |
1993 {0x000009, 4}, {0x000435, 11}, {0x000793, 11}, {0x001E40, 13}, | |
1994 {0x00001D, 5}, {0x0003CB, 10}, {0x000878, 12}, {0x001AAF, 13}, | |
1995 {0x00000B, 4}, {0x0003C7, 10}, {0x000791, 11}, {0x001AAB, 13}, | |
1996 {0x00001F, 5}, {0x000436, 11}, {0x0006BF, 11}, {0x000F19, 12}, | |
1997 {0x00003D, 6}, {0x000D51, 12}, {0x0010C4, 13}, {0x0021E8, 14}, | |
1998 {0x000036, 6}, {0x000437, 11}, {0x0006AF, 11}, {0x0010C5, 13}, | |
1999 {0x00000C, 4}, {0x000432, 11}, {0x000794, 11}, {0x001E30, 13}, | |
2000 {0x000042, 7}, {0x000870, 12}, {0x000F24, 12}, {0x001E43, 13}, | |
2001 {0x000020, 6}, {0x00043E, 11}, {0x000795, 11}, {0x001AAA, 13}, | |
2002 {0x000037, 6}, {0x0006AC, 11}, {0x0006AE, 11}, {0x0010F6, 13}, | |
2003 {0x000034, 6}, {0x00043A, 11}, {0x000D50, 12}, {0x001AAE, 13}, | |
2004 {0x000039, 6}, {0x00043F, 11}, {0x00078D, 11}, {0x0010D2, 13}, | |
2005 {0x000038, 6}, {0x00043B, 11}, {0x0006BD, 11}, {0x0010D3, 13}, | |
2006 {0x000011, 5}, {0x0001AC, 9}, {0x0000F3, 8}, {0x000439, 11}, | |
936 | 2007 }; |
2008 | |
2009 static const uint32_t (*wmv2_inter_table[WMV2_INTER_CBP_TABLE_COUNT])[2]={ | |
2010 table_mb_non_intra2, | |
2011 table_mb_non_intra3, | |
2012 table_mb_non_intra4, | |
2013 table_mb_non_intra, | |
2014 }; | |
2015 | |
2016 static const uint8_t wmv2_scantableA[64]={ | |
2017 0x00, 0x01, 0x02, 0x08, 0x03, 0x09, 0x0A, 0x10, | |
2018 0x04, 0x0B, 0x11, 0x18, 0x12, 0x0C, 0x05, 0x13, | |
2019 0x19, 0x0D, 0x14, 0x1A, 0x1B, 0x06, 0x15, 0x1C, | |
2020 0x0E, 0x16, 0x1D, 0x07, 0x1E, 0x0F, 0x17, 0x1F, | |
2021 }; | |
2022 | |
2023 static const uint8_t wmv2_scantableB[64]={ | |
2024 0x00, 0x08, 0x01, 0x10, 0x09, 0x18, 0x11, 0x02, | |
2967 | 2025 0x20, 0x0A, 0x19, 0x28, 0x12, 0x30, 0x21, 0x1A, |
2026 0x38, 0x29, 0x22, 0x03, 0x31, 0x39, 0x0B, 0x2A, | |
936 | 2027 0x13, 0x32, 0x1B, 0x3A, 0x23, 0x2B, 0x33, 0x3B, |
2028 }; |