Revision 42ef2dbc

View differences:

libavcodec/Makefile
109 109
OBJS-$(CONFIG_MMVIDEO_DECODER)         += mmvideo.o
110 110
OBJS-$(CONFIG_MP2_ENCODER)             += mpegaudio.o
111 111
OBJS-$(CONFIG_MPC7_DECODER)            += mpc.o
112
OBJS-$(CONFIG_MSMPEG4V1_DECODER)       += msmpeg4.o
113
OBJS-$(CONFIG_MSMPEG4V1_ENCODER)       += msmpeg4.o
114
OBJS-$(CONFIG_MSMPEG4V2_DECODER)       += msmpeg4.o
115
OBJS-$(CONFIG_MSMPEG4V2_ENCODER)       += msmpeg4.o
116
OBJS-$(CONFIG_MSMPEG4V3_DECODER)       += msmpeg4.o
117
OBJS-$(CONFIG_MSMPEG4V3_ENCODER)       += msmpeg4.o
112
OBJS-$(CONFIG_MSMPEG4V1_DECODER)       += msmpeg4.o msmpeg4data.o
113
OBJS-$(CONFIG_MSMPEG4V1_ENCODER)       += msmpeg4.o msmpeg4data.o
114
OBJS-$(CONFIG_MSMPEG4V2_DECODER)       += msmpeg4.o msmpeg4data.o
115
OBJS-$(CONFIG_MSMPEG4V2_ENCODER)       += msmpeg4.o msmpeg4data.o
116
OBJS-$(CONFIG_MSMPEG4V3_DECODER)       += msmpeg4.o msmpeg4data.o
117
OBJS-$(CONFIG_MSMPEG4V3_ENCODER)       += msmpeg4.o msmpeg4data.o
118 118
OBJS-$(CONFIG_MSRLE_DECODER)           += msrle.o
119 119
OBJS-$(CONFIG_MSVIDEO1_DECODER)        += msvideo1.o
120 120
OBJS-$(CONFIG_MSZH_DECODER)            += lcl.o
......
164 164
OBJS-$(CONFIG_TTA_DECODER)             += tta.o
165 165
OBJS-$(CONFIG_TXD_DECODER)             += txd.o s3tc.o
166 166
OBJS-$(CONFIG_ULTI_DECODER)            += ulti.o
167
OBJS-$(CONFIG_VC1_DECODER)             += vc1.o vc1data.o vc1dsp.o
167
OBJS-$(CONFIG_VC1_DECODER)             += vc1.o vc1data.o vc1dsp.o msmpeg4data.o
168 168
OBJS-$(CONFIG_VCR1_DECODER)            += vcr1.o
169 169
OBJS-$(CONFIG_VCR1_ENCODER)            += vcr1.o
170 170
OBJS-$(CONFIG_VMDAUDIO_DECODER)        += vmdav.o
......
181 181
OBJS-$(CONFIG_WMAV2_DECODER)           += wmadec.o wma.o
182 182
OBJS-$(CONFIG_WMAV1_ENCODER)           += wmaenc.o wma.o
183 183
OBJS-$(CONFIG_WMAV2_ENCODER)           += wmaenc.o wma.o
184
OBJS-$(CONFIG_WMV2_DECODER)            += msmpeg4.o
185
OBJS-$(CONFIG_WMV2_ENCODER)            += msmpeg4.o
184
OBJS-$(CONFIG_WMV2_DECODER)            += msmpeg4.o msmpeg4data.o
185
OBJS-$(CONFIG_WMV2_ENCODER)            += msmpeg4.o msmpeg4data.o
186 186
OBJS-$(CONFIG_WMV3_DECODER)            += vc1.o vc1data.o vc1dsp.o
187 187
OBJS-$(CONFIG_WNV1_DECODER)            += wnv1.o
188 188
OBJS-$(CONFIG_WS_SND1_DECODER)         += ws-snd1.o
libavcodec/msmpeg4.c
86 86
#endif
87 87

  
88 88
#include "msmpeg4data.h"
89
#include "msmpeg4tab.h"
89 90

  
90 91
#ifdef CONFIG_ENCODERS //strangely gcc includes this even if its not references
91 92
static uint8_t rl_length[NB_RL_TABLES][MAX_LEVEL+1][MAX_RUN+1][2];
......
972 973
/* decoding stuff */
973 974

  
974 975
static VLC mb_non_intra_vlc[4];
975
VLC ff_msmp4_mb_i_vlc;
976
VLC ff_msmp4_dc_luma_vlc[2];
977
VLC ff_msmp4_dc_chroma_vlc[2];
978 976
static VLC v2_dc_lum_vlc;
979 977
static VLC v2_dc_chroma_vlc;
980 978
static VLC cbpy_vlc;
libavcodec/msmpeg4data.c
1
/*
2
 * MSMPEG4 backend for ffmpeg encoder and decoder
3
 * copyright (c) 2001 Fabrice Bellard
4
 * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
5
 *
6
 * This file is part of FFmpeg.
7
 *
8
 * FFmpeg is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU Lesser General Public
10
 * License as published by the Free Software Foundation; either
11
 * version 2.1 of the License, or (at your option) any later version.
12
 *
13
 * FFmpeg is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
 * Lesser General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU Lesser General Public
19
 * License along with FFmpeg; if not, write to the Free Software
20
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
 *
22
 * msmpeg4v1 & v2 stuff by Michael Niedermayer <michaelni@gmx.at>
23
 */
24

  
25
/**
26
 * @file msmpeg4data.c
27
 * MSMPEG4 data tables.
28
 */
29

  
30
#include "msmpeg4data.h"
31

  
32
VLC ff_msmp4_mb_i_vlc;
33
VLC ff_msmp4_dc_luma_vlc[2];
34
VLC ff_msmp4_dc_chroma_vlc[2];
35

  
36
/* intra picture macro block coded block pattern */
37
const uint16_t ff_msmp4_mb_i_table[64][2] = {
38
{ 0x1, 1 },{ 0x17, 6 },{ 0x9, 5 },{ 0x5, 5 },
39
{ 0x6, 5 },{ 0x47, 9 },{ 0x20, 7 },{ 0x10, 7 },
40
{ 0x2, 5 },{ 0x7c, 9 },{ 0x3a, 7 },{ 0x1d, 7 },
41
{ 0x2, 6 },{ 0xec, 9 },{ 0x77, 8 },{ 0x0, 8 },
42
{ 0x3, 5 },{ 0xb7, 9 },{ 0x2c, 7 },{ 0x13, 7 },
43
{ 0x1, 6 },{ 0x168, 10 },{ 0x46, 8 },{ 0x3f, 8 },
44
{ 0x1e, 6 },{ 0x712, 13 },{ 0xb5, 9 },{ 0x42, 8 },
45
{ 0x22, 7 },{ 0x1c5, 11 },{ 0x11e, 10 },{ 0x87, 9 },
46
{ 0x6, 4 },{ 0x3, 9 },{ 0x1e, 7 },{ 0x1c, 6 },
47
{ 0x12, 7 },{ 0x388, 12 },{ 0x44, 9 },{ 0x70, 9 },
48
{ 0x1f, 6 },{ 0x23e, 11 },{ 0x39, 8 },{ 0x8e, 9 },
49
{ 0x1, 7 },{ 0x1c6, 11 },{ 0xb6, 9 },{ 0x45, 9 },
50
{ 0x14, 6 },{ 0x23f, 11 },{ 0x7d, 9 },{ 0x18, 9 },
51
{ 0x7, 7 },{ 0x1c7, 11 },{ 0x86, 9 },{ 0x19, 9 },
52
{ 0x15, 6 },{ 0x1db, 10 },{ 0x2, 9 },{ 0x46, 9 },
53
{ 0xd, 8 },{ 0x713, 13 },{ 0x1da, 10 },{ 0x169, 10 },
54
};
libavcodec/msmpeg4data.h
27 27
 * MSMPEG4 data tables.
28 28
 */
29 29

  
30
/* intra picture macro block coded block pattern */
31
const uint16_t ff_msmp4_mb_i_table[64][2] = {
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 */
51
static const uint32_t table_mb_non_intra[128][2] = {
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

  
88
const uint32_t ff_table0_dc_lum[120][2] = {
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

  
121
const uint32_t ff_table0_dc_chroma[120][2] = {
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

  
156
const uint32_t ff_table1_dc_lum[120][2] = {
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

  
189
const uint32_t ff_table1_dc_chroma[120][2] = {
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

  
224
static const uint16_t table0_vlc[133][2] = {
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

  
261
static const int8_t table0_level[132] = {
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

  
281
static const int8_t table0_run[132] = {
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

  
303
static const uint16_t table1_vlc[149][2] = {
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

  
344
static const int8_t table1_level[148] = {
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

  
366
static const int8_t table1_run[148] = {
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

  
390
static const uint16_t table2_vlc[186][2] = {
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

  
440
static const int8_t table2_level[185] = {
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

  
467
static const int8_t table2_run[185] = {
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 */
495
static const uint16_t table4_vlc[169][2] = {
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

  
541
static const int8_t table4_level[168] = {
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

  
565
static const int8_t table4_run[168] = {
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

  
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];
592

  
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];
596

  
597
extern const uint8_t DCtab_lum[13][2];
598
extern const uint8_t DCtab_chrom[13][2];
599

  
600
extern const uint8_t cbpy_tab[16][2];
601
extern const uint8_t mvtab[33][2];
602

  
603
extern const uint8_t intra_MCBPC_code[9];
604
extern const uint8_t intra_MCBPC_bits[9];
30
#ifndef MSMPEG4DATA_H
31
#define MSMPEG4DATA_H
605 32

  
606
extern const uint8_t inter_MCBPC_code[28];
607
extern const uint8_t inter_MCBPC_bits[28];
33
#include "common.h"
34
#include "bitstream.h"
608 35

  
609
#define NB_RL_TABLES  6
36
extern VLC ff_msmp4_mb_i_vlc;
37
extern VLC ff_msmp4_dc_luma_vlc[2];
38
extern VLC ff_msmp4_dc_chroma_vlc[2];
610 39

  
611
static RLTable rl_table[NB_RL_TABLES] = {
612
    /* intra luminance tables */
613
    /* low motion  */
614
    {
615
        132,
616
        85,
617
        table0_vlc,
618
        table0_run,
619
        table0_level,
620
    },
621
    /* high motion */
622
    {
623
        185,
624
        119,
625
        table2_vlc,
626
        table2_run,
627
        table2_level,
628
    },
629
    /* mid-rate */
630
    {
631
        102,
632
        67,
633
        intra_vlc,
634
        intra_run,
635
        intra_level,
636
    },
637
    /* intra chrominance / non intra tables */
638
    /* low motion inter */
639
    {
640
        148,
641
        81,
642
        table1_vlc,
643
        table1_run,
644
        table1_level,
645
    },
646
    /* high motion inter */
647
    {
648
        168,
649
        99,
650
        table4_vlc,
651
        table4_run,
652
        table4_level,
653
    },
654
    /* mid rate inter */
655
    {
656
        102,
657
        58,
658
        inter_vlc,
659
        inter_run,
660
        inter_level,
661
    },
662
};
663

  
664
/* motion vector table 0 */
665

  
666
static const uint16_t table0_mv_code[1100] = {
667
 0x0001, 0x0003, 0x0005, 0x0007, 0x0003, 0x0008, 0x000c, 0x0001,
668
 0x0002, 0x001b, 0x0006, 0x000b, 0x0015, 0x0002, 0x000e, 0x000f,
669
 0x0014, 0x0020, 0x0022, 0x0025, 0x0027, 0x0029, 0x002d, 0x004b,
670
 0x004d, 0x0003, 0x0022, 0x0023, 0x0025, 0x0027, 0x0042, 0x0048,
671
 0x0049, 0x0050, 0x005c, 0x0091, 0x009f, 0x000e, 0x0043, 0x004c,
672
 0x0054, 0x0056, 0x008c, 0x0098, 0x009a, 0x009b, 0x00b1, 0x00b2,
673
 0x0120, 0x0121, 0x0126, 0x0133, 0x0139, 0x01a1, 0x01a4, 0x01a5,
674
 0x01a6, 0x01a7, 0x01ae, 0x01af, 0x000b, 0x0019, 0x0085, 0x0090,
675
 0x009b, 0x00aa, 0x00af, 0x010c, 0x010e, 0x011c, 0x011e, 0x0133,
676
 0x0144, 0x0160, 0x0174, 0x0175, 0x0177, 0x0178, 0x0249, 0x024b,
677
 0x0252, 0x0261, 0x0265, 0x0270, 0x0352, 0x0353, 0x0355, 0x0359,
678
 0x0010, 0x0011, 0x0013, 0x0034, 0x0035, 0x0036, 0x0037, 0x003d,
679
 0x003e, 0x0109, 0x0126, 0x0156, 0x021a, 0x021e, 0x023a, 0x023e,
680
 0x028e, 0x028f, 0x02cf, 0x0491, 0x0494, 0x049f, 0x04a0, 0x04a3,
681
 0x04a6, 0x04a7, 0x04ad, 0x04ae, 0x04c0, 0x04c4, 0x04c6, 0x04c8,
682
 0x04c9, 0x04f5, 0x04f6, 0x04f7, 0x0680, 0x0682, 0x0683, 0x0688,
683
 0x0689, 0x068d, 0x068e, 0x068f, 0x06a2, 0x06a3, 0x06a9, 0x06b0,
684
 0x06b1, 0x06b4, 0x06b5, 0x0024, 0x0060, 0x0063, 0x0078, 0x0079,
685
 0x0211, 0x0244, 0x0245, 0x0247, 0x0248, 0x0249, 0x024a, 0x024b,
686
 0x026b, 0x02af, 0x02b8, 0x02bb, 0x0436, 0x0476, 0x0477, 0x047e,
687
 0x04c8, 0x04c9, 0x04ca, 0x0514, 0x0586, 0x0587, 0x0598, 0x059d,
688
 0x05d9, 0x05da, 0x0920, 0x0921, 0x093b, 0x093c, 0x093d, 0x0942,
689
 0x0943, 0x0944, 0x0945, 0x0959, 0x095e, 0x095f, 0x0982, 0x0983,
690
 0x098e, 0x098f, 0x09c4, 0x09e7, 0x09e8, 0x09e9, 0x0d02, 0x0d17,
691
 0x0d18, 0x0d19, 0x0d41, 0x0d42, 0x0d43, 0x0d50, 0x0d5f, 0x0d6d,
692
 0x0d6e, 0x0d6f, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
693
 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x041e, 0x041f, 0x0420, 0x0421,
694
 0x048c, 0x048d, 0x04d3, 0x04d4, 0x04d5, 0x055c, 0x055d, 0x0572,
695
 0x0573, 0x0574, 0x0575, 0x08de, 0x08df, 0x08fe, 0x08ff, 0x0996,
696
 0x0a36, 0x0a37, 0x0b08, 0x0b09, 0x0b0a, 0x0b0b, 0x0b32, 0x0b33,
697
 0x0b34, 0x0b35, 0x0b36, 0x0b37, 0x0b38, 0x0b39, 0x0bb0, 0x0bf7,
698
 0x0bf8, 0x0bf9, 0x0bfa, 0x0bfb, 0x0bfc, 0x0bfd, 0x0bfe, 0x0bff,
699
 0x1254, 0x1255, 0x1256, 0x1257, 0x1270, 0x1271, 0x1272, 0x1273,
700
 0x1274, 0x1275, 0x12ab, 0x12ac, 0x12ad, 0x12ae, 0x12af, 0x12b0,
701
 0x12b1, 0x1315, 0x1316, 0x1317, 0x13bf, 0x13c0, 0x13c1, 0x13c2,
702
 0x13c3, 0x13c4, 0x13c5, 0x13c6, 0x13c7, 0x13c8, 0x13c9, 0x13ca,
703
 0x13cb, 0x13cc, 0x13cd, 0x1a06, 0x1a07, 0x1a28, 0x1a29, 0x1a2a,
704
 0x1a2b, 0x1a2c, 0x1a2d, 0x1a80, 0x1abb, 0x1abc, 0x1abd, 0x1ad8,
705
 0x1ad9, 0x0094, 0x0095, 0x0096, 0x0097, 0x00a0, 0x00a1, 0x00a2,
706
 0x00a3, 0x0831, 0x0832, 0x0833, 0x0834, 0x0835, 0x0836, 0x0837,
707
 0x0838, 0x0839, 0x083a, 0x083b, 0x0939, 0x093a, 0x093b, 0x093c,
708
 0x093d, 0x093e, 0x093f, 0x09a0, 0x09a1, 0x09a2, 0x09a3, 0x09a4,
709
 0x09a5, 0x11ac, 0x11ad, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b2,
710
 0x11b3, 0x11b4, 0x11b5, 0x11b6, 0x11b7, 0x11b8, 0x11b9, 0x11ba,
711
 0x11bb, 0x132f, 0x1454, 0x1455, 0x1456, 0x1457, 0x1458, 0x1459,
712
 0x145a, 0x145b, 0x145c, 0x145d, 0x145e, 0x145f, 0x1460, 0x1461,
713
 0x1462, 0x1463, 0x1464, 0x1465, 0x1466, 0x1467, 0x1468, 0x1469,
714
 0x146a, 0x146b, 0x17de, 0x17df, 0x17e0, 0x17e1, 0x17e2, 0x17e3,
715
 0x17e4, 0x17e5, 0x17e6, 0x17e7, 0x17e8, 0x17e9, 0x17ea, 0x17eb,
716
 0x17ec, 0x17ed, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545,
717
 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d,
718
 0x254e, 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555,
719
 0x2628, 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c,
720
 0x276d, 0x276e, 0x276f, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774,
721
 0x2775, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c,
722
 0x277d, 0x3503, 0x3544, 0x3545, 0x3546, 0x3547, 0x3560, 0x3561,
723
 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569,
724
 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571,
725
 0x3572, 0x3573, 0x3574, 0x3575, 0x03f0, 0x103d, 0x103e, 0x103f,
726
 0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047,
727
 0x1048, 0x1049, 0x104a, 0x104b, 0x104c, 0x104d, 0x104e, 0x104f,
728
 0x1050, 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057,
729
 0x1058, 0x1059, 0x105a, 0x105b, 0x105c, 0x105d, 0x105e, 0x105f,
730
 0x1060, 0x1061, 0x1270, 0x1271, 0x21b8, 0x21b9, 0x21ba, 0x21bb,
731
 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x21f0, 0x21f1, 0x21f2, 0x21f3,
732
 0x21f4, 0x21f5, 0x21f6, 0x21f7, 0x21f8, 0x21f9, 0x21fa, 0x21fb,
733
 0x21fc, 0x21fd, 0x21fe, 0x21ff, 0x2340, 0x2341, 0x2342, 0x2343,
734
 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b,
735
 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353,
736
 0x2354, 0x2355, 0x2356, 0x2357, 0x265c, 0x2f88, 0x2f89, 0x2f8a,
737
 0x2f8b, 0x2f8c, 0x2f8d, 0x2f8e, 0x2f8f, 0x2f90, 0x2f91, 0x2f92,
738
 0x2f93, 0x2f94, 0x2f95, 0x2f96, 0x2f97, 0x2f98, 0x2f99, 0x2f9a,
739
 0x2f9b, 0x2f9c, 0x2f9d, 0x2f9e, 0x2f9f, 0x2fa0, 0x2fa1, 0x2fa2,
740
 0x2fa3, 0x2fa4, 0x2fa5, 0x2fa6, 0x2fa7, 0x2fa8, 0x2fa9, 0x2faa,
741
 0x2fab, 0x2fac, 0x2fad, 0x2fae, 0x2faf, 0x2fb0, 0x2fb1, 0x2fb2,
742
 0x2fb3, 0x2fb4, 0x2fb5, 0x2fb6, 0x2fb7, 0x2fb8, 0x2fb9, 0x2fba,
743
 0x2fbb, 0x4c52, 0x4c53, 0x4e28, 0x4e29, 0x4e2a, 0x4e2b, 0x4e2c,
744
 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32, 0x4e33, 0x4e34,
745
 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a, 0x4e3b, 0x4e3c,
746
 0x4e3d, 0x4e3e, 0x4e3f, 0x4e80, 0x4e81, 0x4e82, 0x4e83, 0x4e84,
747
 0x4e85, 0x4e86, 0x4e87, 0x4e88, 0x4e89, 0x4e8a, 0x4e8b, 0x4e8c,
748
 0x4e8d, 0x4e8e, 0x4e8f, 0x4e90, 0x4e91, 0x4e92, 0x4e93, 0x4e94,
749
 0x4e95, 0x4e96, 0x4e97, 0x4e98, 0x4e99, 0x4e9a, 0x4e9b, 0x4e9c,
750
 0x4e9d, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea1, 0x4ea2, 0x4ea3, 0x4ea4,
751
 0x4ea5, 0x4ea6, 0x4ea7, 0x4ea8, 0x4ea9, 0x4eaa, 0x4eab, 0x4eac,
752
 0x4ead, 0x4eae, 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb2, 0x4eb3, 0x4eb4,
753
 0x4eb5, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9, 0x4eba, 0x4ebb, 0x4ebc,
754
 0x4ebd, 0x4ebe, 0x4ebf, 0x4ec0, 0x4ec1, 0x4ec2, 0x4ec3, 0x4ec4,
755
 0x4ec5, 0x4ec6, 0x4ec7, 0x4ec8, 0x4ec9, 0x4eca, 0x4ecb, 0x6a04,
756
 0x6a05, 0x07e2, 0x07e3, 0x07e4, 0x07e5, 0x07e6, 0x07e7, 0x07e8,
757
 0x07e9, 0x07ea, 0x07eb, 0x07ec, 0x07ed, 0x07ee, 0x07ef, 0x07f0,
758
 0x07f1, 0x07f2, 0x07f3, 0x07f4, 0x07f5, 0x07f6, 0x07f7, 0x07f8,
759
 0x07f9, 0x07fa, 0x07fb, 0x07fc, 0x07fd, 0x07fe, 0x07ff, 0x2000,
760
 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
761
 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 0x2010,
762
 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2018,
763
 0x2019, 0x201a, 0x201b, 0x201c, 0x201d, 0x201e, 0x201f, 0x2020,
764
 0x2021, 0x2022, 0x2023, 0x2024, 0x2025, 0x2026, 0x2027, 0x2028,
765
 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f, 0x2030,
766
 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, 0x2036, 0x2037, 0x2038,
767
 0x2039, 0x203a, 0x203b, 0x203c, 0x203d, 0x203e, 0x203f, 0x2040,
768
 0x2041, 0x2042, 0x2043, 0x2044, 0x2045, 0x2046, 0x2047, 0x2048,
769
 0x2049, 0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x204f, 0x2050,
770
 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058,
771
 0x2059, 0x205a, 0x205b, 0x205c, 0x205d, 0x205e, 0x205f, 0x2060,
772
 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068,
773
 0x2069, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 0x2070,
774
 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078,
775
 0x2079, 0x4cba, 0x4cbb, 0x5d88, 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c,
776
 0x5d8d, 0x5d8e, 0x5d8f, 0x5db0, 0x5db1, 0x5db2, 0x5db3, 0x5db4,
777
 0x5db5, 0x5db6, 0x5db7, 0x5db8, 0x5db9, 0x5dba, 0x5dbb, 0x5dbc,
778
 0x5dbd, 0x5dbe, 0x5dbf, 0x5e40, 0x5e41, 0x5e42, 0x5e43, 0x5e44,
779
 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4c,
780
 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5e54,
781
 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, 0x5e5b, 0x5e5c,
782
 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61, 0x5e62, 0x5e63, 0x5e64,
783
 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c,
784
 0x5e6d, 0x5e6e, 0x5e6f, 0x5e70, 0x5e71, 0x5e72, 0x5e73, 0x5e74,
785
 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79, 0x5e7a, 0x5e7b, 0x5e7c,
786
 0x5e7d, 0x5e7e, 0x5e7f, 0x5e80, 0x5e81, 0x5e82, 0x5e83, 0x5e84,
787
 0x5e85, 0x5e86, 0x5e87, 0x5e88, 0x5e89, 0x5e8a, 0x5e8b, 0x5e8c,
788
 0x5e8d, 0x5e8e, 0x5e8f, 0x5e90, 0x5e91, 0x5e92, 0x5e93, 0x5e94,
789
 0x5e95, 0x5e96, 0x5e97, 0x5e98, 0x5e99, 0x5e9a, 0x5e9b, 0x5e9c,
790
 0x5e9d, 0x5e9e, 0x5e9f, 0x5ea0, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4,
791
 0x5ea5, 0x5ea6, 0x5ea7, 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac,
792
 0x5ead, 0x5eae, 0x5eaf, 0x5eb0, 0x5eb1, 0x5eb2, 0x5eb3, 0x5eb4,
793
 0x5eb5, 0x5eb6, 0x5eb7, 0x5eb8, 0x5eb9, 0x5eba, 0x5ebb, 0x5ebc,
794
 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4,
795
 0x5ec5, 0x5ec6, 0x5ec7, 0x5ec8, 0x5ec9, 0x5eca, 0x5ecb, 0x5ecc,
796
 0x5ecd, 0x5ece, 0x5ecf, 0x5ed0, 0x5ed1, 0x5ed2, 0x5ed3, 0x5ed4,
797
 0x5ed5, 0x5ed6, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edb, 0x5edc,
798
 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4,
799
 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee8, 0x5ee9, 0x5eea, 0x5eeb, 0x5eec,
800
 0x5eed, 0x5eee, 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef4,
801
 0x5ef5, 0x5ef6, 0x5ef7, 0x5ef8, 0x5ef9, 0x5efa, 0x5efb, 0x5efc,
802
 0x5efd, 0x5efe, 0x5eff, 0x5f00, 0x5f01, 0x5f02, 0x5f03, 0x5f04,
803
 0x5f05, 0x5f06, 0x5f07, 0x5f08, 0x5f09, 0x5f0a, 0x5f0b, 0x5f0c,
804
 0x5f0d, 0x5f0e, 0x5f0f, 0x0000,
805
};
806

  
807
static const uint8_t table0_mv_bits[1100] = {
808
  1,  4,  4,  4,  5,  5,  5,  6,
809
  6,  6,  7,  7,  7,  8,  8,  8,
810
  8,  8,  8,  8,  8,  8,  8,  8,
811
  8,  9,  9,  9,  9,  9,  9,  9,
812
  9,  9,  9,  9,  9, 10, 10, 10,
813
 10, 10, 10, 10, 10, 10, 10, 10,
814
 10, 10, 10, 10, 10, 10, 10, 10,
815
 10, 10, 10, 10, 11, 11, 11, 11,
816
 11, 11, 11, 11, 11, 11, 11, 11,
817
 11, 11, 11, 11, 11, 11, 11, 11,
818
 11, 11, 11, 11, 11, 11, 11, 11,
819
 12, 12, 12, 12, 12, 12, 12, 12,
820
 12, 12, 12, 12, 12, 12, 12, 12,
821
 12, 12, 12, 12, 12, 12, 12, 12,
822
 12, 12, 12, 12, 12, 12, 12, 12,
823
 12, 12, 12, 12, 12, 12, 12, 12,
824
 12, 12, 12, 12, 12, 12, 12, 12,
825
 12, 12, 12, 13, 13, 13, 13, 13,
826
 13, 13, 13, 13, 13, 13, 13, 13,
827
 13, 13, 13, 13, 13, 13, 13, 13,
828
 13, 13, 13, 13, 13, 13, 13, 13,
829
 13, 13, 13, 13, 13, 13, 13, 13,
830
 13, 13, 13, 13, 13, 13, 13, 13,
831
 13, 13, 13, 13, 13, 13, 13, 13,
832
 13, 13, 13, 13, 13, 13, 13, 13,
833
 13, 13, 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, 14, 14, 14, 14, 14, 14, 14,
841
 14, 14, 14, 14, 14, 14, 14, 14,
842
 14, 14, 14, 14, 14, 14, 14, 14,
843
 14, 14, 14, 14, 14, 14, 14, 14,
844
 14, 14, 14, 14, 14, 14, 14, 14,
845
 14, 14, 14, 14, 14, 14, 14, 14,
846
 14, 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, 15, 15, 15, 15,
861
 15, 15, 15, 15, 15, 15, 15, 15,
862
 15, 15, 15, 15, 15, 15, 15, 15,
863
 15, 15, 15, 15, 15, 15, 15, 15,
864
 15, 15, 15, 15, 15, 15, 15, 15,
865
 15, 15, 15, 15, 15, 15, 15, 15,
866
 15, 15, 15, 15, 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, 16, 16, 16, 16, 16, 16, 16,
892
 16, 16, 16, 16, 16, 16, 16, 16,
893
 16, 16, 16, 16, 16, 16, 16, 16,
894
 16, 16, 16, 16, 16, 16, 16, 16,
895
 16, 16, 16, 16, 16, 16, 16, 16,
896
 16, 16, 16, 16, 16, 16, 16, 16,
897
 16, 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, 17, 17, 17, 17, 17,
940
 17, 17, 17, 17, 17, 17, 17, 17,
941
 17, 17, 17, 17, 17, 17, 17, 17,
942
 17, 17, 17, 17, 17, 17, 17, 17,
943
 17, 17, 17, 17, 17, 17, 17, 17,
944
 17, 17, 17, 17, 17, 17, 17, 17,
945
 17, 17, 17,  8,
946
};
947

  
948
static const uint8_t table0_mvx[1099] = {
949
 32, 32, 31, 32, 33, 31, 33, 31,
950
 33, 32, 34, 32, 30, 32, 31, 34,
951
 35, 32, 34, 33, 29, 33, 30, 30,
952
 31, 31, 35, 29, 33, 35, 33, 34,
953
 31, 29, 30, 34, 30, 36, 28, 32,
954
 34, 37, 30, 27, 32, 25, 39, 32,
955
 34, 32, 35, 35, 35, 31, 35, 29,
956
 32, 29, 30, 29, 37, 27, 36, 38,
957
 37, 33, 32, 31, 29, 31, 28, 36,
958
 33, 30, 34, 33, 33, 28, 27, 25,
959
 31, 26, 39, 32, 32, 31, 33, 39,
960
 31, 38, 28, 36, 21, 23, 43, 36,
961
 34, 41, 30, 25, 28, 31, 30, 34,
962
 38, 35, 61, 34, 28, 30, 37, 37,
963
 35, 27, 36,  3, 59, 38, 37, 32,
964
 31, 29, 26, 33, 37, 33, 27, 27,
965
 35, 34, 34, 40, 42, 33, 32, 29,
966
  4,  5, 28, 24, 25, 35, 39, 38,
967
 32, 23, 27, 32, 30, 35, 26, 34,
968
 60, 36, 29, 22, 26, 41,  7, 30,
969
 38, 30, 36, 29, 30, 41, 26, 25,
970
 32, 34, 24, 39,  1, 25, 39, 32,
971
 28, 29, 32, 38, 26, 36, 28, 63,
972
 28, 39, 23, 21, 26, 35, 31, 35,
973
 57, 31, 29, 29, 28, 30, 27, 35,
974
  2, 38, 40, 34, 37, 29, 38, 43,
975
 26, 32, 33, 42, 24, 40, 28, 32,
976
 32, 32, 36, 32, 43, 25, 21, 31,
977
 30, 31, 41, 29, 33, 37, 26, 37,
978
 27, 59, 23, 33, 35, 31, 31, 37,
979
 38, 39, 32, 23, 32, 27, 37, 36,
980
 31, 40, 25, 27, 38, 31, 36, 28,
981
 31, 36, 25, 45,  3, 34, 38, 39,
982
 40, 38, 30, 32, 19, 24, 25, 26,
983
 45, 20, 24, 33, 33, 31, 41, 34,
984
 39, 47, 40, 58, 59, 41, 33,  3,
985
 17, 61, 42, 30, 26, 29, 36, 61,
986
 33, 37, 62, 28, 25, 38, 25, 38,
987
 17, 23, 34, 33, 21, 33, 49, 27,
988
 32, 23, 27, 22, 24, 22, 39, 43,
989
 27, 37,  6, 42, 47, 26, 30, 31,
990
 41, 39, 33, 22, 45, 36, 32, 45,
991
 19, 22, 30,  5,  5, 17, 29, 22,
992
 31, 31, 43, 37, 27, 32, 32, 32,
993
 33, 34, 43, 35, 29, 26, 22, 32,
994
 19, 32, 25, 31, 41, 49, 28, 34,
995
 28, 39, 34, 19, 37, 38, 29, 21,
996
 36, 42, 24, 48, 16, 28, 49, 22,
997
 34, 31, 38, 39, 44, 11, 35, 30,
998
 33, 33, 23, 28, 33, 46, 15, 13,
999
 24, 41, 24, 34, 34, 30, 26, 24,
1000
 14, 60, 21, 29, 39, 23, 35, 37,
1001
 63, 45, 33, 34, 47, 41, 22, 42,
1002
 35, 35, 23, 32, 35, 43, 32,  7,
1003
 31, 41, 20, 31, 16, 13, 63, 25,
1004
 30, 32, 35, 30, 30, 31, 42, 47,
1005
 39, 38, 40, 40, 51, 55, 56, 18,
1006
 21, 39, 39, 33, 17, 41, 23, 24,
1007
 43, 25, 31, 20, 19, 45,  1, 34,
1008
 31, 22, 35, 15, 46, 46, 35, 31,
1009
 28, 29, 29, 23, 41, 27, 14, 53,
1010
 53, 27, 24, 32, 57, 32, 17, 42,
1011
 37, 29, 33,  1, 25, 32, 32, 63,
1012
 26, 40, 44, 36, 31, 39, 20, 20,
1013
 44, 23, 33, 34, 35, 33, 33, 28,
1014
 41, 23, 41, 41, 29, 25, 26, 49,
1015
 29, 24, 37, 49, 50, 51, 51, 26,
1016
 39, 25, 26, 15, 39, 18, 42, 17,
1017
  4, 31, 32, 32, 60,  1, 42, 32,
1018
  0, 12, 19, 35, 21, 41, 17, 26,
1019
 20, 45, 46, 32, 37, 22, 47, 29,
1020
 31, 27, 29, 30, 21, 33, 35, 18,
1021
 25, 33, 50, 51, 42,  2, 15, 51,
1022
 53, 33, 25, 29, 55, 37, 38, 33,
1023
 38, 59, 38, 33, 39, 13, 32, 40,
1024
 61, 61, 32,  9, 44,  3, 31, 29,
1025
 25, 31, 27, 23,  9, 25,  9, 29,
1026
 20, 30, 30, 42, 18, 28, 25, 28,
1027
 28, 21, 29, 43, 29, 43, 26, 44,
1028
 44, 21, 38, 21, 24, 45, 45, 35,
1029
 39, 22, 35, 36, 34, 34, 45, 34,
1030
 29, 31, 46, 25, 46, 16, 17, 31,
1031
 20, 32, 47, 47, 47, 32, 49, 49,
1032
 49, 31,  1, 27, 28, 39, 39, 21,
1033
 36, 23, 51,  2, 40, 51, 32, 53,
1034
 24, 30, 24, 30, 21, 40, 57, 57,
1035
 31, 41, 58, 32, 12,  4, 32, 34,
1036
 59, 31, 32, 13,  9, 35, 26, 35,
1037
 37, 61, 37, 63, 26, 29, 41, 38,
1038
 23, 20, 41, 26, 41, 42, 42, 42,
1039
 26, 26, 26, 26,  1, 26, 37, 37,
1040
 37, 23, 34, 42, 27, 43, 34, 27,
1041
 31, 24, 33, 16,  3, 31, 24, 33,
1042
 24,  4, 44, 44, 11, 44, 31, 13,
1043
 13, 44, 45, 13, 25, 22, 38, 26,
1044
 38, 38, 39, 32, 30, 39, 30, 22,
1045
 32, 26, 30, 47, 47, 47, 19, 47,
1046
 30, 31, 35,  8, 23, 47, 47, 27,
1047
 35, 47, 31, 48, 35, 19, 36, 49,
1048
 49, 33, 31, 39, 27, 39, 49, 49,
1049
 50, 50, 50, 39, 31, 51, 51, 39,
1050
 28, 33, 33, 21, 40, 31, 52, 53,
1051
 40, 53,  9, 33, 31, 53, 54, 54,
1052
 54, 55, 55, 34, 15, 56, 25, 56,
1053
 21, 21, 40, 40, 25, 40, 58, 36,
1054
  5, 41, 41, 12, 60, 41, 41, 37,
1055
 22, 61, 18, 29, 29, 30, 61, 30,
1056
 61, 62, 62, 30, 30, 63, 18, 13,
1057
 30, 23, 19, 20, 20, 41, 13,  2,
1058
  5,  5,  1,  5, 32,  6, 32, 35,
1059
 20, 35, 27, 35, 35, 36, 36, 13,
1060
 36, 41, 41, 41,  3, 30, 42, 27,
1061
 20, 30, 27, 28, 30, 21, 33, 33,
1062
 14, 24, 30, 42, 24, 33, 25, 42,
1063
 43, 14, 43, 43, 14, 43,  7, 36,
1064
 37, 37, 37, 37,  7, 14, 25, 43,
1065
 43, 44, 15, 37,  7,  7,  3,  1,
1066
  8, 15, 15,  8, 44, 44, 44, 45,
1067
 45, 45, 45,  8,  8, 45, 21, 45,
1068
 28, 28, 28, 21, 28, 28, 22, 37,
1069
 46, 46, 37,  8, 29, 37, 29, 22,
1070
 46, 37, 22, 29, 47, 47, 38, 38,
1071
 16, 38, 38, 33, 38, 22, 47, 47,
1072
 29, 25, 16,  0, 48,  1, 34, 48,
1073
 48, 34, 25, 26, 26, 49, 49, 26,
1074
  1, 49,  4, 26,  4, 49,  1,  9,
1075
 49, 49, 49, 10, 49, 17, 38, 17,
1076
 17, 50, 38, 50, 50, 22, 38, 51,
1077
 38, 38, 51, 39, 39, 18, 22, 39,
1078
 51, 22, 52, 52, 52, 39, 53, 53,
1079
 10, 23, 18, 29, 10, 53, 29, 54,
1080
 11, 54, 11, 11, 55,  1, 18, 55,
1081
 55, 55, 55, 55, 55, 29, 34, 18,
1082
 29, 56, 56, 34, 57, 34, 34, 29,
1083
 29, 57, 57, 35, 35, 35, 35, 35,
1084
 39, 35, 59, 59, 18, 59, 39, 30,
1085
 18, 40, 60, 60, 61, 30, 18, 61,
1086
 61, 19, 19,
1087
};
1088

  
1089
static const uint8_t table0_mvy[1099] = {
1090
 32, 31, 32, 33, 32, 31, 31, 33,
1091
 33, 34, 32, 30, 32, 35, 34, 31,
1092
 32, 29, 33, 30, 32, 34, 33, 31,
1093
 30, 35, 31, 31, 29, 33, 35, 30,
1094
 29, 33, 34, 34, 30, 32, 32, 36,
1095
 29, 32, 35, 32, 28, 32, 32, 27,
1096
 35, 37, 34, 29, 30, 36, 35, 34,
1097
 25, 30, 29, 35, 33, 31, 31, 32,
1098
 31, 28, 39, 28, 29, 37, 31, 33,
1099
 27, 36, 28, 36, 37, 33, 33, 31,
1100
 27, 32, 31, 38, 26, 25, 25, 33,
1101
 39, 31, 34, 30, 32, 32, 32, 34,
1102
 36, 32, 28, 33, 30, 38, 37, 27,
1103
 33, 28, 32, 37, 35, 38, 29, 34,
1104
 27, 29, 29, 32, 32, 34, 35,  3,
1105
 26, 36, 31, 38, 30, 26, 35, 34,
1106
 37, 26, 25, 32, 32, 39, 23, 37,
1107
 32, 32, 29, 32, 29, 36, 29, 30,
1108
 41, 31, 30, 21, 39, 25, 34, 38,
1109
 32, 35, 39, 32, 33, 33, 32, 27,
1110
 29, 25, 28, 27, 26, 31, 30, 35,
1111
 24, 24, 31, 34, 32, 30, 35, 40,
1112
 28, 38,  5, 35, 29, 36, 36, 32,
1113
 38, 30, 33, 31, 35, 26, 23, 38,
1114
 32, 41, 28, 25, 37, 40, 37, 39,
1115
 32, 36, 33, 39, 25, 26, 28, 31,
1116
 28, 42, 23, 31, 33, 31, 39,  1,
1117
 59, 22, 27,  4, 33, 34, 33, 24,
1118
 41,  3, 35, 41, 41, 28, 36, 36,
1119
 28, 33, 35, 21, 23, 21, 22, 37,
1120
 27, 27, 43, 29, 60, 39, 27, 25,
1121
 59, 34, 27, 27, 26, 40, 37, 27,
1122
 61, 26, 39, 33, 31, 22, 37, 25,
1123
 30, 25, 24, 61, 31, 34, 25, 38,
1124
 32, 32, 30,  3, 61, 43, 29, 23,
1125
 28, 32, 28, 32, 31, 34,  5, 33,
1126
 32, 33, 33, 42, 37, 23, 38, 31,
1127
 40, 26, 32, 26, 37, 38, 36, 24,
1128
 29, 30, 20, 22, 29, 24, 32, 41,
1129
  2, 34, 25, 33, 29, 31, 39, 35,
1130
 36, 24, 32, 30, 33, 27, 44, 60,
1131
 30, 36, 19, 34, 31, 24, 16, 35,
1132
 32, 38, 21, 33, 31, 31, 21, 35,
1133
  5, 17, 29, 38, 38, 18, 58, 19,
1134
 43, 41, 30, 41, 43, 39, 29,  7,
1135
 29, 17, 28, 19, 28, 31, 25, 19,
1136
 40, 26, 21, 33, 39, 23, 40, 30,
1137
 39, 34, 35, 32, 32, 24, 33, 30,
1138
 40, 47, 39, 37, 32, 33, 24, 23,
1139
 45, 47, 27, 23, 42, 32, 32, 33,
1140
 36, 37, 37, 17, 18, 22, 40, 38,
1141
 32, 31, 35, 24, 17, 25, 17, 23,
1142
 33, 34, 51, 42, 31, 36, 36, 29,
1143
 21, 22, 37, 44, 43, 25, 47, 33,
1144
 45, 27, 31, 58, 31, 32, 31, 38,
1145
 43, 20, 47, 45, 54,  1, 26, 34,
1146
 38, 14, 22, 24, 33, 34, 32, 32,
1147
 37, 21, 23, 49, 35, 23, 28, 39,
1148
 39, 23, 55, 33, 30, 30, 63, 16,
1149
 42, 28, 13, 33, 33, 35, 19, 46,
1150
 43, 17, 19, 36, 39, 24, 31, 32,
1151
 33, 26, 28, 62, 33, 63, 33, 39,
1152
 19, 49, 17, 31, 43, 13, 15, 29,
1153
 25, 35, 33, 23, 49, 41, 28, 29,
1154
 34, 38,  7, 61, 11, 50, 13, 41,
1155
 19, 47, 25, 26, 15, 42, 41, 29,
1156
 45, 27, 17, 35, 32, 29, 32, 24,
1157
 13, 26, 26, 31, 24, 33, 28, 30,
1158
 31, 11, 45, 46, 33, 33, 35, 57,
1159
 32, 32, 35, 45, 34, 11, 37, 42,
1160
 39, 37, 31, 49, 21, 27, 29, 47,
1161
 53, 40, 51, 16, 26,  1, 40, 30,
1162
 41, 44, 34, 25, 27, 31, 35, 35,
1163
 31, 15, 49,  1, 35, 40,  5, 58,
1164
 21, 29, 22, 59, 45, 31,  9, 26,
1165
  9, 29, 11, 32, 30,  3, 13, 20,
1166
 18, 20, 11,  3, 29, 40, 31, 53,
1167
 30, 17, 20, 37, 31, 42, 47, 47,
1168
 54, 38,  9, 34, 13, 37, 21, 25,
1169
 27, 43, 42, 45, 40, 25, 27, 46,
1170
 22, 25, 53, 20,  2, 14, 39, 15,
1171
 22, 44, 34, 21, 38, 33, 27, 48,
1172
 34, 52, 35, 47, 49, 54,  2, 13,
1173
 23, 52, 29, 45, 22, 49, 54, 21,
1174
 40, 42, 31, 30, 29, 34,  0, 25,
1175
 23, 51, 24, 59, 28, 38, 29, 31,
1176
  2, 13, 31,  8, 31, 33, 12, 45,
1177
 41,  7, 14, 30, 25, 18, 43, 20,
1178
 43, 35, 44,  1, 49, 42, 42, 18,
1179
 41, 38, 41, 44, 53, 11, 20, 25,
1180
 45, 46, 47, 48, 39, 52, 46, 49,
1181
 63, 55, 44, 38, 13, 13, 57, 22,
1182
 51, 16, 12, 28, 35, 57, 25, 20,
1183
 26, 28, 28, 29, 32, 31, 62, 34,
1184
 35, 35, 19, 49, 48, 39, 40, 18,
1185
 43, 46, 11,  6, 48, 19, 49, 41,
1186
 10, 23, 58, 17, 21, 23, 34, 30,
1187
 60,  0, 44, 34, 26, 37, 46, 43,
1188
 49, 59,  4, 34, 59, 37, 22, 25,
1189
 28, 46,  6, 40, 59, 42, 36, 61,
1190
 28, 30, 31, 43, 10, 22, 23, 47,
1191
 20, 52, 55, 36, 25, 16,  1, 11,
1192
 27, 29,  5, 63, 18, 41, 31, 34,
1193
 38,  1,  5, 13, 28, 31, 17, 38,
1194
 39, 41, 36, 37, 22, 39, 33, 43,
1195
 43, 15, 17, 49, 30, 21, 22, 20,
1196
 10, 17, 25, 54, 57,  3, 34,  8,
1197
 36, 25, 31, 14, 15, 19, 29, 25,
1198
 18, 39, 53, 22, 27, 20, 29, 33,
1199
 41, 42, 35, 62, 50, 29, 53, 50,
1200
 35, 55, 42, 61, 63,  4,  7, 42,
1201
 21, 46, 47, 49, 27, 46, 17, 55,
1202
 41, 50, 63,  4, 56, 18,  8, 10,
1203
 18, 51, 63, 36, 55, 18,  5, 55,
1204
  9, 29, 17, 21, 30, 27,  1, 59,
1205
  7, 11, 12, 15,  5, 42, 24, 41,
1206
 43,  7, 27, 22, 25, 31, 30, 37,
1207
 22, 39, 53, 29, 36, 37, 48,  0,
1208
  5, 13, 17, 31, 32, 26, 46, 28,
1209
 44, 45, 46, 53, 49, 51,  3, 41,
1210
  3, 22, 42, 33,  5, 45,  7, 22,
1211
 40, 53, 24, 14, 25, 27, 10, 12,
1212
 34, 16, 17, 53, 20, 26, 39, 45,
1213
 18, 45, 35, 33, 31, 49,  4, 39,
1214
 42, 11, 51,  5, 13, 26, 27, 17,
1215
 52, 30,  0, 22, 12, 34, 62, 36,
1216
 38, 41, 47, 30, 63, 38, 41, 43,
1217
 59, 33, 45, 37, 38, 40, 47, 24,
1218
 48, 49, 30,  1, 10, 22, 49, 15,
1219
 39, 59, 31, 32, 33, 18, 13, 15,
1220
 31, 21, 27, 44, 42, 39, 46, 17,
1221
 26, 32, 30, 31,  0, 30, 34,  9,
1222
 12, 13, 25, 31, 32, 55, 43, 35,
1223
 61, 33, 35, 46, 25, 47, 48, 62,
1224
 63, 38, 61,  1,  2,  5,  7,  9,
1225
 46, 10, 34, 35, 36, 55, 51,  7,
1226
 40, 23, 34, 37,  5, 13, 42, 18,
1227
 25, 27, 28,
1228
};
1229

  
1230
/* motion vector table 1 */
1231
static const uint16_t table1_mv_code[1100] = {
1232
 0x0000, 0x0007, 0x0009, 0x000f, 0x000a, 0x0011, 0x001a, 0x001c,
1233
 0x0011, 0x0031, 0x0025, 0x002d, 0x002f, 0x006f, 0x0075, 0x0041,
1234
 0x004c, 0x004e, 0x005c, 0x0060, 0x0062, 0x0066, 0x0068, 0x0069,
1235
 0x006b, 0x00a6, 0x00c1, 0x00cb, 0x00cc, 0x00ce, 0x00da, 0x00e8,
1236
 0x00ee, 0x0087, 0x0090, 0x009e, 0x009f, 0x00ba, 0x00ca, 0x00d8,
1237
 0x00db, 0x00df, 0x0104, 0x0109, 0x010c, 0x0143, 0x0145, 0x014a,
1238
 0x0156, 0x015c, 0x01b3, 0x01d3, 0x01da, 0x0103, 0x0109, 0x010b,
1239
 0x0122, 0x0127, 0x0134, 0x0161, 0x0164, 0x0176, 0x0184, 0x018d,
1240
 0x018e, 0x018f, 0x0190, 0x0193, 0x0196, 0x019d, 0x019e, 0x019f,
1241
 0x01a9, 0x01b2, 0x01b4, 0x01ba, 0x01bb, 0x01bc, 0x0201, 0x0202,
1242
 0x0205, 0x0207, 0x020d, 0x0210, 0x0211, 0x0215, 0x021b, 0x021f,
1243
 0x0281, 0x0285, 0x0290, 0x029c, 0x029d, 0x02a2, 0x02a7, 0x02a8,
1244
 0x02aa, 0x02b0, 0x02b1, 0x02b4, 0x02bc, 0x02bf, 0x0320, 0x0326,
1245
 0x0327, 0x0329, 0x032a, 0x0336, 0x0360, 0x0362, 0x0363, 0x0372,
1246
 0x03b2, 0x03bc, 0x03bd, 0x0203, 0x0205, 0x021a, 0x0249, 0x024a,
1247
 0x024c, 0x02c7, 0x02ca, 0x02ce, 0x02ef, 0x030d, 0x0322, 0x0325,
1248
 0x0338, 0x0373, 0x037a, 0x0409, 0x0415, 0x0416, 0x0418, 0x0428,
1249
 0x042d, 0x042f, 0x0434, 0x0508, 0x0509, 0x0510, 0x0511, 0x051c,
1250
 0x051e, 0x0524, 0x0541, 0x0543, 0x0546, 0x0547, 0x054d, 0x0557,
1251
 0x055f, 0x056a, 0x056c, 0x056d, 0x056f, 0x0576, 0x0577, 0x057a,
1252
 0x057b, 0x057c, 0x057d, 0x0600, 0x0601, 0x0603, 0x0614, 0x0616,
1253
 0x0617, 0x061c, 0x061f, 0x0642, 0x0648, 0x0649, 0x064a, 0x064b,
1254
 0x0657, 0x0668, 0x0669, 0x066b, 0x066e, 0x067f, 0x06c2, 0x06c8,
1255
 0x06cb, 0x06de, 0x06df, 0x06e2, 0x06e3, 0x06ef, 0x0748, 0x074b,
1256
 0x076e, 0x076f, 0x077c, 0x0409, 0x0423, 0x0428, 0x0429, 0x042a,
1257
 0x042b, 0x0432, 0x0433, 0x0496, 0x049a, 0x04d5, 0x04db, 0x0581,
1258
 0x0582, 0x058b, 0x058c, 0x058d, 0x0598, 0x0599, 0x059a, 0x059e,
1259
 0x05dd, 0x0619, 0x0632, 0x0633, 0x0648, 0x0672, 0x06a1, 0x06a2,
1260
 0x06a3, 0x06af, 0x06e2, 0x06e3, 0x06e4, 0x0800, 0x0801, 0x0802,
1261
 0x0803, 0x081a, 0x081b, 0x0829, 0x082f, 0x0832, 0x083e, 0x083f,
1262
 0x0852, 0x0853, 0x0858, 0x086b, 0x0877, 0x0878, 0x0879, 0x087a,
1263
 0x087b, 0x0a00, 0x0a01, 0x0a0d, 0x0a0e, 0x0a0f, 0x0a24, 0x0a37,
1264
 0x0a3a, 0x0a3b, 0x0a3e, 0x0a46, 0x0a47, 0x0a4a, 0x0a4b, 0x0a5f,
1265
 0x0a79, 0x0a7a, 0x0a7b, 0x0a80, 0x0a81, 0x0a84, 0x0a85, 0x0a99,
1266
 0x0aa5, 0x0aa6, 0x0ab8, 0x0aba, 0x0abb, 0x0abc, 0x0abd, 0x0ac8,
1267
 0x0ace, 0x0acf, 0x0ad7, 0x0adc, 0x0aeb, 0x0c04, 0x0c25, 0x0c26,
1268
 0x0c27, 0x0c2a, 0x0c2b, 0x0c3a, 0x0c3b, 0x0c3c, 0x0c3d, 0x0ca0,
1269
 0x0cad, 0x0cd4, 0x0cd5, 0x0cfc, 0x0cfd, 0x0d86, 0x0d92, 0x0d93,
1270
 0x0d94, 0x0d95, 0x0db0, 0x0db8, 0x0db9, 0x0dba, 0x0dbb, 0x0dc0,
1271
 0x0dc2, 0x0dc3, 0x0dda, 0x0ddb, 0x0ddc, 0x0ddd, 0x0e92, 0x0e93,
1272
 0x0e94, 0x0e95, 0x0ec7, 0x0ecc, 0x0ece, 0x0ecf, 0x0ed8, 0x0ed9,
1273
 0x0eda, 0x0edb, 0x0808, 0x0809, 0x080a, 0x0810, 0x0811, 0x0844,
1274
 0x0845, 0x0861, 0x0862, 0x0863, 0x086c, 0x0922, 0x0923, 0x092e,
1275
 0x092f, 0x0936, 0x0937, 0x09b1, 0x09b2, 0x09b3, 0x09b4, 0x09b5,
1276
 0x09b8, 0x09b9, 0x09ba, 0x09bb, 0x09bc, 0x09bd, 0x09be, 0x09bf,
1277
 0x0b00, 0x0b15, 0x0b2c, 0x0b2d, 0x0b2e, 0x0b2f, 0x0b36, 0x0bb9,
1278
 0x0c28, 0x0c2a, 0x0c2b, 0x0c2c, 0x0c2d, 0x0c2e, 0x0c2f, 0x0c30,
1279
 0x0c31, 0x0c38, 0x0c60, 0x0c61, 0x0c62, 0x0c63, 0x0c8d, 0x0c8e,
1280
 0x0c8f, 0x0c92, 0x0cbe, 0x0cbf, 0x0ce6, 0x0ce7, 0x0d40, 0x0d41,
1281
 0x0d57, 0x0d58, 0x0d59, 0x0d5a, 0x0d5b, 0x0d5c, 0x0d5d, 0x0d98,
1282
 0x0d99, 0x0d9a, 0x0d9b, 0x0d9c, 0x0d9d, 0x0dad, 0x0dae, 0x0daf,
1283
 0x0dc0, 0x0dc1, 0x0dc2, 0x0dc3, 0x0dca, 0x0dcb, 0x0dec, 0x0ded,
1284
 0x0dee, 0x0def, 0x1018, 0x1022, 0x1023, 0x1030, 0x1031, 0x1032,
1285
 0x1033, 0x1050, 0x1051, 0x105c, 0x1074, 0x1075, 0x1076, 0x1077,
1286
 0x1078, 0x1079, 0x107a, 0x107b, 0x10b2, 0x10b3, 0x10b8, 0x10b9,
1287
 0x10ba, 0x10bb, 0x10d4, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x1404,
1288
 0x1405, 0x1406, 0x1407, 0x1410, 0x1411, 0x1412, 0x1413, 0x1414,
1289
 0x1415, 0x1416, 0x1417, 0x1418, 0x1419, 0x1466, 0x1467, 0x1468,
1290
 0x1469, 0x146a, 0x146b, 0x146c, 0x146d, 0x147e, 0x147f, 0x1488,
1291
 0x1489, 0x148a, 0x148b, 0x14b6, 0x14b7, 0x14b8, 0x14b9, 0x14ba,
1292
 0x14bb, 0x14bc, 0x14bd, 0x14f0, 0x14f1, 0x14f8, 0x14f9, 0x14fa,
1293
 0x14fb, 0x14fc, 0x14fd, 0x14fe, 0x14ff, 0x152a, 0x152b, 0x152c,
1294
 0x152d, 0x152e, 0x152f, 0x1530, 0x1531, 0x1548, 0x1549, 0x154e,
1295
 0x154f, 0x1558, 0x1559, 0x155a, 0x155b, 0x1572, 0x159a, 0x159b,
1296
 0x15ac, 0x15ba, 0x15bb, 0x15d0, 0x15d1, 0x15d2, 0x15d3, 0x15d4,
1297
 0x15d5, 0x181d, 0x181e, 0x181f, 0x1840, 0x1841, 0x1842, 0x1843,
1298
 0x1844, 0x1845, 0x1846, 0x1847, 0x1848, 0x1849, 0x1861, 0x1862,
1299
 0x1863, 0x1864, 0x1865, 0x1866, 0x1867, 0x1868, 0x1869, 0x186a,
1300
 0x186b, 0x186c, 0x186d, 0x186e, 0x191b, 0x191c, 0x191d, 0x191e,
1301
 0x191f, 0x1942, 0x1943, 0x1944, 0x1945, 0x1946, 0x1947, 0x1958,
1302
 0x1959, 0x19ed, 0x19ee, 0x19ef, 0x19f0, 0x19f1, 0x19f2, 0x19f3,
1303
 0x19f4, 0x19f5, 0x19f6, 0x19f7, 0x1b0e, 0x1b0f, 0x1b62, 0x1b63,
1304
 0x1b64, 0x1b65, 0x1b66, 0x1b67, 0x1b68, 0x1b69, 0x1b6a, 0x1b6b,
1305
 0x1b6c, 0x1b6d, 0x1b6e, 0x1b6f, 0x1b82, 0x1ba8, 0x1ba9, 0x1baa,
1306
 0x1bab, 0x1bac, 0x1bad, 0x1bae, 0x1baf, 0x1bb0, 0x1bb1, 0x1bb2,
1307
 0x1bb3, 0x1d80, 0x1d81, 0x1d82, 0x1d83, 0x1d84, 0x1d85, 0x1d86,
1308
 0x1d87, 0x1d88, 0x1d89, 0x1d8a, 0x1d8b, 0x1d8c, 0x1d8d, 0x1007,
1309
 0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e, 0x100f,
1310
 0x1016, 0x1080, 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086,
1311
 0x1087, 0x10c0, 0x123a, 0x123b, 0x123c, 0x123d, 0x123e, 0x123f,
1312
 0x1240, 0x1241, 0x1242, 0x1243, 0x1350, 0x1352, 0x1353, 0x1358,
1313
 0x1359, 0x135a, 0x135b, 0x135c, 0x135d, 0x135e, 0x135f, 0x1360,
1314
 0x1361, 0x1602, 0x1603, 0x160c, 0x160d, 0x160e, 0x160f, 0x1620,
1315
 0x1621, 0x1622, 0x1623, 0x1624, 0x1625, 0x1626, 0x1627, 0x1628,
1316
 0x1629, 0x166e, 0x166f, 0x167c, 0x167d, 0x167e, 0x167f, 0x1770,
1317
 0x1771, 0x1852, 0x1853, 0x1872, 0x1873, 0x1874, 0x1875, 0x1876,
1318
 0x1877, 0x1878, 0x1879, 0x187a, 0x187b, 0x187c, 0x187d, 0x187e,
1319
 0x187f, 0x1918, 0x1919, 0x1926, 0x1927, 0x1970, 0x1971, 0x1972,
1320
 0x1973, 0x1974, 0x1975, 0x1976, 0x1977, 0x1978, 0x1979, 0x197a,
1321
 0x197b, 0x1aa0, 0x1aa1, 0x1aa2, 0x1aa3, 0x1aa4, 0x1aa5, 0x1aa6,
1322
 0x1aa7, 0x1aa8, 0x1aa9, 0x1aaa, 0x1aab, 0x1aac, 0x1aad, 0x1b3c,
1323
 0x1b3d, 0x1b3e, 0x1b3f, 0x1b50, 0x1b51, 0x1b52, 0x1b53, 0x1b54,
1324
 0x1b55, 0x1b56, 0x1b57, 0x1b58, 0x1b59, 0x2032, 0x2033, 0x2034,
1325
 0x2035, 0x2036, 0x2037, 0x2038, 0x2039, 0x203a, 0x203b, 0x203c,
1326
 0x203d, 0x203e, 0x203f, 0x2040, 0x2041, 0x2042, 0x2043, 0x20ba,
1327
 0x20bb, 0x20cc, 0x20cd, 0x20ce, 0x20cf, 0x20e0, 0x20e1, 0x20e2,
1328
 0x20e3, 0x20e4, 0x20e5, 0x20e6, 0x20e7, 0x21aa, 0x21ab, 0x21c0,
1329
 0x21c1, 0x21c2, 0x21c3, 0x21c4, 0x21c5, 0x21c6, 0x21c7, 0x21c8,
1330
 0x21c9, 0x21ca, 0x21cb, 0x21cc, 0x21cd, 0x21ce, 0x21cf, 0x21d0,
1331
 0x21d1, 0x21d2, 0x21d3, 0x2894, 0x2895, 0x2896, 0x2897, 0x2898,
1332
 0x2899, 0x289a, 0x289b, 0x289c, 0x289d, 0x289e, 0x289f, 0x28c0,
1333
 0x28c1, 0x28c2, 0x28c3, 0x28c4, 0x28c5, 0x28c6, 0x28c7, 0x28c8,
1334
 0x28c9, 0x28ca, 0x28cb, 0x2930, 0x2931, 0x2932, 0x2933, 0x2934,
1335
 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c,
1336
 0x293d, 0x293e, 0x293f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964,
1337
 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x2a40,
1338
 0x2a41, 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48,
1339
 0x2a49, 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50,
1340
 0x2a51, 0x2a52, 0x2a53, 0x2ae6, 0x2ae7, 0x2b24, 0x2b25, 0x2b26,
1341
 0x2b27, 0x2b28, 0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e,
1342
 0x2b2f, 0x2b30, 0x2b31, 0x2b32, 0x2b33, 0x2b5a, 0x2b5b, 0x3014,
1343
 0x3015, 0x3016, 0x3017, 0x3020, 0x3021, 0x3022, 0x3023, 0x3024,
1344
 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c,
1345
 0x302d, 0x302e, 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034,
1346
 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x30c0, 0x30c1, 0x30de,
1347
 0x30df, 0x3218, 0x3219, 0x321a, 0x321b, 0x321c, 0x321d, 0x321e,
1348
 0x321f, 0x3220, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226,
1349
 0x3227, 0x3228, 0x3229, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e,
1350
 0x322f, 0x3230, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x3378,
1351
 0x3379, 0x337a, 0x337b, 0x337c, 0x337d, 0x337e, 0x337f, 0x33c0,
1352
 0x33c1, 0x33c2, 0x33c3, 0x33c4, 0x33c5, 0x33c6, 0x33c7, 0x33c8,
1353
 0x33c9, 0x33ca, 0x33cb, 0x33cc, 0x33cd, 0x33ce, 0x33cf, 0x33d0,
1354
 0x33d1, 0x33d2, 0x33d3, 0x33d4, 0x33d5, 0x33d6, 0x33d7, 0x33d8,
1355
 0x33d9, 0x3706, 0x3707, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734,
1356
 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c,
1357
 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744,
1358
 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c,
1359
 0x374d, 0x374e, 0x374f, 0x3b34, 0x3b35, 0x3b36, 0x3b37, 0x3be8,
1360
 0x3be9, 0x3bea, 0x3beb, 0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0,
1361
 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4, 0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8,
1362
 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd, 0x3bfe, 0x3bff, 0x2000,
1363
 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
1364
 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x202e, 0x202f, 0x2182,
1365
 0x2183, 0x21b4, 0x21b5, 0x21b6, 0x21b7, 0x21b8, 0x21b9, 0x21ba,
1366
 0x21bb, 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x2460, 0x2461, 0x2462,
1367
 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a,
1368
 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472,
1369
 0x2473, 0x26a2, 0x26a3, 0x000b,
1370
};
1371

  
1372
static const uint8_t table1_mv_bits[1100] = {
1373
  2,  4,  4,  4,  5,  5,  5,  5,
1374
  6,  6,  7,  7,  7,  7,  7,  8,
1375
  8,  8,  8,  8,  8,  8,  8,  8,
1376
  8,  8,  8,  8,  8,  8,  8,  8,
1377
  8,  9,  9,  9,  9,  9,  9,  9,
1378
  9,  9,  9,  9,  9,  9,  9,  9,
1379
  9,  9,  9,  9,  9, 10, 10, 10,
1380
 10, 10, 10, 10, 10, 10, 10, 10,
1381
 10, 10, 10, 10, 10, 10, 10, 10,
1382
 10, 10, 10, 10, 10, 10, 10, 10,
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff