00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00030 #include "msmpeg4data.h"
00031
00032 uint32_t ff_v2_dc_lum_table[512][2];
00033 uint32_t ff_v2_dc_chroma_table[512][2];
00034 uint8_t ff_static_rl_table_store[NB_RL_TABLES][2][2 * MAX_RUN + MAX_LEVEL + 3];
00035
00036 VLC ff_msmp4_mb_i_vlc;
00037 VLC ff_msmp4_dc_luma_vlc[2];
00038 VLC ff_msmp4_dc_chroma_vlc[2];
00039
00040
00041 const uint16_t ff_msmp4_mb_i_table[64][2] = {
00042 { 0x1, 1 },{ 0x17, 6 },{ 0x9, 5 },{ 0x5, 5 },
00043 { 0x6, 5 },{ 0x47, 9 },{ 0x20, 7 },{ 0x10, 7 },
00044 { 0x2, 5 },{ 0x7c, 9 },{ 0x3a, 7 },{ 0x1d, 7 },
00045 { 0x2, 6 },{ 0xec, 9 },{ 0x77, 8 },{ 0x0, 8 },
00046 { 0x3, 5 },{ 0xb7, 9 },{ 0x2c, 7 },{ 0x13, 7 },
00047 { 0x1, 6 },{ 0x168, 10 },{ 0x46, 8 },{ 0x3f, 8 },
00048 { 0x1e, 6 },{ 0x712, 13 },{ 0xb5, 9 },{ 0x42, 8 },
00049 { 0x22, 7 },{ 0x1c5, 11 },{ 0x11e, 10 },{ 0x87, 9 },
00050 { 0x6, 4 },{ 0x3, 9 },{ 0x1e, 7 },{ 0x1c, 6 },
00051 { 0x12, 7 },{ 0x388, 12 },{ 0x44, 9 },{ 0x70, 9 },
00052 { 0x1f, 6 },{ 0x23e, 11 },{ 0x39, 8 },{ 0x8e, 9 },
00053 { 0x1, 7 },{ 0x1c6, 11 },{ 0xb6, 9 },{ 0x45, 9 },
00054 { 0x14, 6 },{ 0x23f, 11 },{ 0x7d, 9 },{ 0x18, 9 },
00055 { 0x7, 7 },{ 0x1c7, 11 },{ 0x86, 9 },{ 0x19, 9 },
00056 { 0x15, 6 },{ 0x1db, 10 },{ 0x2, 9 },{ 0x46, 9 },
00057 { 0xd, 8 },{ 0x713, 13 },{ 0x1da, 10 },{ 0x169, 10 },
00058 };
00059
00060
00061 const uint32_t ff_table_mb_non_intra[128][2] = {
00062 { 0x40, 7 },{ 0x13c9, 13 },{ 0x9fd, 12 },{ 0x1fc, 15 },
00063 { 0x9fc, 12 },{ 0xa83, 18 },{ 0x12d34, 17 },{ 0x83bc, 16 },
00064 { 0x83a, 12 },{ 0x7f8, 17 },{ 0x3fd, 16 },{ 0x3ff, 16 },
00065 { 0x79, 13 },{ 0xa82, 18 },{ 0x969d, 16 },{ 0x2a4, 16 },
00066 { 0x978, 12 },{ 0x543, 17 },{ 0x41df, 15 },{ 0x7f9, 17 },
00067 { 0x12f3, 13 },{ 0x25a6b, 18 },{ 0x25ef9, 18 },{ 0x3fa, 16 },
00068 { 0x20ee, 14 },{ 0x969ab, 20 },{ 0x969c, 16 },{ 0x25ef8, 18 },
00069 { 0x12d2, 13 },{ 0xa85, 18 },{ 0x969e, 16 },{ 0x4bc8, 15 },
00070 { 0x3d, 12 },{ 0x12f7f, 17 },{ 0x2a2, 16 },{ 0x969f, 16 },
00071 { 0x25ee, 14 },{ 0x12d355, 21 },{ 0x12f7d, 17 },{ 0x12f7e, 17 },
00072 { 0x9e5, 12 },{ 0xa81, 18 },{ 0x4b4d4, 19 },{ 0x83bd, 16 },
00073 { 0x78, 13 },{ 0x969b, 16 },{ 0x3fe, 16 },{ 0x2a5, 16 },
00074 { 0x7e, 13 },{ 0xa80, 18 },{ 0x2a3, 16 },{ 0x3fb, 16 },
00075 { 0x1076, 13 },{ 0xa84, 18 },{ 0x153, 15 },{ 0x4bc9, 15 },
00076 { 0x55, 13 },{ 0x12d354, 21 },{ 0x4bde, 15 },{ 0x25e5, 14 },
00077 { 0x25b, 10 },{ 0x4b4c, 15 },{ 0x96b, 12 },{ 0x96a, 12 },
00078 { 0x1, 2 },{ 0x0, 7 },{ 0x26, 6 },{ 0x12b, 9 },
00079 { 0x7, 3 },{ 0x20f, 10 },{ 0x4, 9 },{ 0x28, 12 },
00080 { 0x6, 3 },{ 0x20a, 10 },{ 0x128, 9 },{ 0x2b, 12 },
00081 { 0x11, 5 },{ 0x1b, 11 },{ 0x13a, 9 },{ 0x4ff, 11 },
00082 { 0x3, 4 },{ 0x277, 10 },{ 0x106, 9 },{ 0x839, 12 },
00083 { 0xb, 4 },{ 0x27b, 10 },{ 0x12c, 9 },{ 0x4bf, 11 },
00084 { 0x9, 6 },{ 0x35, 12 },{ 0x27e, 10 },{ 0x13c8, 13 },
00085 { 0x1, 6 },{ 0x4aa, 11 },{ 0x208, 10 },{ 0x29, 12 },
00086 { 0x1, 4 },{ 0x254, 10 },{ 0x12e, 9 },{ 0x838, 12 },
00087 { 0x24, 6 },{ 0x4f3, 11 },{ 0x276, 10 },{ 0x12f6, 13 },
00088 { 0x1, 5 },{ 0x27a, 10 },{ 0x13e, 9 },{ 0x3e, 12 },
00089 { 0x8, 6 },{ 0x413, 11 },{ 0xc, 10 },{ 0x4be, 11 },
00090 { 0x14, 5 },{ 0x412, 11 },{ 0x253, 10 },{ 0x97a, 12 },
00091 { 0x21, 6 },{ 0x4ab, 11 },{ 0x20b, 10 },{ 0x34, 12 },
00092 { 0x15, 5 },{ 0x278, 10 },{ 0x252, 10 },{ 0x968, 12 },
00093 { 0x5, 5 },{ 0xb, 10 },{ 0x9c, 8 },{ 0xe, 10 },
00094 };
00095
00096
00097
00098 const uint32_t ff_table0_dc_lum[120][2] = {
00099 { 0x1, 1 },{ 0x1, 2 },{ 0x1, 4 },{ 0x1, 5 },
00100 { 0x5, 5 },{ 0x7, 5 },{ 0x8, 6 },{ 0xc, 6 },
00101 { 0x0, 7 },{ 0x2, 7 },{ 0x12, 7 },{ 0x1a, 7 },
00102 { 0x3, 8 },{ 0x7, 8 },{ 0x27, 8 },{ 0x37, 8 },
00103 { 0x5, 9 },{ 0x4c, 9 },{ 0x6c, 9 },{ 0x6d, 9 },
00104 { 0x8, 10 },{ 0x19, 10 },{ 0x9b, 10 },{ 0x1b, 10 },
00105 { 0x9a, 10 },{ 0x13, 11 },{ 0x34, 11 },{ 0x35, 11 },
00106 { 0x61, 12 },{ 0x48, 13 },{ 0xc4, 13 },{ 0x4a, 13 },
00107 { 0xc6, 13 },{ 0xc7, 13 },{ 0x92, 14 },{ 0x18b, 14 },
00108 { 0x93, 14 },{ 0x183, 14 },{ 0x182, 14 },{ 0x96, 14 },
00109 { 0x97, 14 },{ 0x180, 14 },{ 0x314, 15 },{ 0x315, 15 },
00110 { 0x605, 16 },{ 0x604, 16 },{ 0x606, 16 },{ 0xc0e, 17 },
00111 { 0x303cd, 23 },{ 0x303c9, 23 },{ 0x303c8, 23 },{ 0x303ca, 23 },
00112 { 0x303cb, 23 },{ 0x303cc, 23 },{ 0x303ce, 23 },{ 0x303cf, 23 },
00113 { 0x303d0, 23 },{ 0x303d1, 23 },{ 0x303d2, 23 },{ 0x303d3, 23 },
00114 { 0x303d4, 23 },{ 0x303d5, 23 },{ 0x303d6, 23 },{ 0x303d7, 23 },
00115 { 0x303d8, 23 },{ 0x303d9, 23 },{ 0x303da, 23 },{ 0x303db, 23 },
00116 { 0x303dc, 23 },{ 0x303dd, 23 },{ 0x303de, 23 },{ 0x303df, 23 },
00117 { 0x303e0, 23 },{ 0x303e1, 23 },{ 0x303e2, 23 },{ 0x303e3, 23 },
00118 { 0x303e4, 23 },{ 0x303e5, 23 },{ 0x303e6, 23 },{ 0x303e7, 23 },
00119 { 0x303e8, 23 },{ 0x303e9, 23 },{ 0x303ea, 23 },{ 0x303eb, 23 },
00120 { 0x303ec, 23 },{ 0x303ed, 23 },{ 0x303ee, 23 },{ 0x303ef, 23 },
00121 { 0x303f0, 23 },{ 0x303f1, 23 },{ 0x303f2, 23 },{ 0x303f3, 23 },
00122 { 0x303f4, 23 },{ 0x303f5, 23 },{ 0x303f6, 23 },{ 0x303f7, 23 },
00123 { 0x303f8, 23 },{ 0x303f9, 23 },{ 0x303fa, 23 },{ 0x303fb, 23 },
00124 { 0x303fc, 23 },{ 0x303fd, 23 },{ 0x303fe, 23 },{ 0x303ff, 23 },
00125 { 0x60780, 24 },{ 0x60781, 24 },{ 0x60782, 24 },{ 0x60783, 24 },
00126 { 0x60784, 24 },{ 0x60785, 24 },{ 0x60786, 24 },{ 0x60787, 24 },
00127 { 0x60788, 24 },{ 0x60789, 24 },{ 0x6078a, 24 },{ 0x6078b, 24 },
00128 { 0x6078c, 24 },{ 0x6078d, 24 },{ 0x6078e, 24 },{ 0x6078f, 24 },
00129 };
00130
00131 const uint32_t ff_table0_dc_chroma[120][2] = {
00132 { 0x0, 2 },{ 0x1, 2 },{ 0x5, 3 },{ 0x9, 4 },
00133 { 0xd, 4 },{ 0x11, 5 },{ 0x1d, 5 },{ 0x1f, 5 },
00134 { 0x21, 6 },{ 0x31, 6 },{ 0x38, 6 },{ 0x33, 6 },
00135 { 0x39, 6 },{ 0x3d, 6 },{ 0x61, 7 },{ 0x79, 7 },
00136 { 0x80, 8 },{ 0xc8, 8 },{ 0xca, 8 },{ 0xf0, 8 },
00137 { 0x81, 8 },{ 0xc0, 8 },{ 0xc9, 8 },{ 0x107, 9 },
00138 { 0x106, 9 },{ 0x196, 9 },{ 0x183, 9 },{ 0x1e3, 9 },
00139 { 0x1e2, 9 },{ 0x20a, 10 },{ 0x20b, 10 },{ 0x609, 11 },
00140 { 0x412, 11 },{ 0x413, 11 },{ 0x60b, 11 },{ 0x411, 11 },
00141 { 0x60a, 11 },{ 0x65f, 11 },{ 0x410, 11 },{ 0x65d, 11 },
00142 { 0x65e, 11 },{ 0xcb8, 12 },{ 0xc10, 12 },{ 0xcb9, 12 },
00143 { 0x1823, 13 },{ 0x3045, 14 },{ 0x6089, 15 },{ 0xc110, 16 },
00144 { 0x304448, 22 },{ 0x304449, 22 },{ 0x30444a, 22 },{ 0x30444b, 22 },
00145 { 0x30444c, 22 },{ 0x30444d, 22 },{ 0x30444e, 22 },{ 0x30444f, 22 },
00146 { 0x304450, 22 },{ 0x304451, 22 },{ 0x304452, 22 },{ 0x304453, 22 },
00147 { 0x304454, 22 },{ 0x304455, 22 },{ 0x304456, 22 },{ 0x304457, 22 },
00148 { 0x304458, 22 },{ 0x304459, 22 },{ 0x30445a, 22 },{ 0x30445b, 22 },
00149 { 0x30445c, 22 },{ 0x30445d, 22 },{ 0x30445e, 22 },{ 0x30445f, 22 },
00150 { 0x304460, 22 },{ 0x304461, 22 },{ 0x304462, 22 },{ 0x304463, 22 },
00151 { 0x304464, 22 },{ 0x304465, 22 },{ 0x304466, 22 },{ 0x304467, 22 },
00152 { 0x304468, 22 },{ 0x304469, 22 },{ 0x30446a, 22 },{ 0x30446b, 22 },
00153 { 0x30446c, 22 },{ 0x30446d, 22 },{ 0x30446e, 22 },{ 0x30446f, 22 },
00154 { 0x304470, 22 },{ 0x304471, 22 },{ 0x304472, 22 },{ 0x304473, 22 },
00155 { 0x304474, 22 },{ 0x304475, 22 },{ 0x304476, 22 },{ 0x304477, 22 },
00156 { 0x304478, 22 },{ 0x304479, 22 },{ 0x30447a, 22 },{ 0x30447b, 22 },
00157 { 0x30447c, 22 },{ 0x30447d, 22 },{ 0x30447e, 22 },{ 0x30447f, 22 },
00158 { 0x608880, 23 },{ 0x608881, 23 },{ 0x608882, 23 },{ 0x608883, 23 },
00159 { 0x608884, 23 },{ 0x608885, 23 },{ 0x608886, 23 },{ 0x608887, 23 },
00160 { 0x608888, 23 },{ 0x608889, 23 },{ 0x60888a, 23 },{ 0x60888b, 23 },
00161 { 0x60888c, 23 },{ 0x60888d, 23 },{ 0x60888e, 23 },{ 0x60888f, 23 },
00162 };
00163
00164
00165
00166 const uint32_t ff_table1_dc_lum[120][2] = {
00167 { 0x2, 2 },{ 0x3, 2 },{ 0x3, 3 },{ 0x2, 4 },
00168 { 0x5, 4 },{ 0x1, 5 },{ 0x3, 5 },{ 0x8, 5 },
00169 { 0x0, 6 },{ 0x5, 6 },{ 0xd, 6 },{ 0xf, 6 },
00170 { 0x13, 6 },{ 0x8, 7 },{ 0x18, 7 },{ 0x1c, 7 },
00171 { 0x24, 7 },{ 0x4, 8 },{ 0x6, 8 },{ 0x12, 8 },
00172 { 0x32, 8 },{ 0x3b, 8 },{ 0x4a, 8 },{ 0x4b, 8 },
00173 { 0xb, 9 },{ 0x26, 9 },{ 0x27, 9 },{ 0x66, 9 },
00174 { 0x74, 9 },{ 0x75, 9 },{ 0x14, 10 },{ 0x1c, 10 },
00175 { 0x1f, 10 },{ 0x1d, 10 },{ 0x2b, 11 },{ 0x3d, 11 },
00176 { 0x19d, 11 },{ 0x19f, 11 },{ 0x54, 12 },{ 0x339, 12 },
00177 { 0x338, 12 },{ 0x33d, 12 },{ 0xab, 13 },{ 0xf1, 13 },
00178 { 0x678, 13 },{ 0xf2, 13 },{ 0x1e0, 14 },{ 0x1e1, 14 },
00179 { 0x154, 14 },{ 0xcf2, 14 },{ 0x3cc, 15 },{ 0x2ab, 15 },
00180 { 0x19e7, 15 },{ 0x3ce, 15 },{ 0x19e6, 15 },{ 0x554, 16 },
00181 { 0x79f, 16 },{ 0x555, 16 },{ 0xf3d, 17 },{ 0xf37, 17 },
00182 { 0xf3c, 17 },{ 0xf35, 17 },{ 0x1e6d, 18 },{ 0x1e68, 18 },
00183 { 0x3cd8, 19 },{ 0x3cd3, 19 },{ 0x3cd9, 19 },{ 0x79a4, 20 },
00184 { 0xf34ba, 25 },{ 0xf34b4, 25 },{ 0xf34b5, 25 },{ 0xf34b6, 25 },
00185 { 0xf34b7, 25 },{ 0xf34b8, 25 },{ 0xf34b9, 25 },{ 0xf34bb, 25 },
00186 { 0xf34bc, 25 },{ 0xf34bd, 25 },{ 0xf34be, 25 },{ 0xf34bf, 25 },
00187 { 0x1e6940, 26 },{ 0x1e6941, 26 },{ 0x1e6942, 26 },{ 0x1e6943, 26 },
00188 { 0x1e6944, 26 },{ 0x1e6945, 26 },{ 0x1e6946, 26 },{ 0x1e6947, 26 },
00189 { 0x1e6948, 26 },{ 0x1e6949, 26 },{ 0x1e694a, 26 },{ 0x1e694b, 26 },
00190 { 0x1e694c, 26 },{ 0x1e694d, 26 },{ 0x1e694e, 26 },{ 0x1e694f, 26 },
00191 { 0x1e6950, 26 },{ 0x1e6951, 26 },{ 0x1e6952, 26 },{ 0x1e6953, 26 },
00192 { 0x1e6954, 26 },{ 0x1e6955, 26 },{ 0x1e6956, 26 },{ 0x1e6957, 26 },
00193 { 0x1e6958, 26 },{ 0x1e6959, 26 },{ 0x1e695a, 26 },{ 0x1e695b, 26 },
00194 { 0x1e695c, 26 },{ 0x1e695d, 26 },{ 0x1e695e, 26 },{ 0x1e695f, 26 },
00195 { 0x1e6960, 26 },{ 0x1e6961, 26 },{ 0x1e6962, 26 },{ 0x1e6963, 26 },
00196 { 0x1e6964, 26 },{ 0x1e6965, 26 },{ 0x1e6966, 26 },{ 0x1e6967, 26 },
00197 };
00198
00199 const uint32_t ff_table1_dc_chroma[120][2] = {
00200 { 0x0, 2 },{ 0x1, 2 },{ 0x4, 3 },{ 0x7, 3 },
00201 { 0xb, 4 },{ 0xd, 4 },{ 0x15, 5 },{ 0x28, 6 },
00202 { 0x30, 6 },{ 0x32, 6 },{ 0x52, 7 },{ 0x62, 7 },
00203 { 0x66, 7 },{ 0xa6, 8 },{ 0xc6, 8 },{ 0xcf, 8 },
00204 { 0x14f, 9 },{ 0x18e, 9 },{ 0x19c, 9 },{ 0x29d, 10 },
00205 { 0x33a, 10 },{ 0x538, 11 },{ 0x63c, 11 },{ 0x63e, 11 },
00206 { 0x63f, 11 },{ 0x676, 11 },{ 0xa73, 12 },{ 0xc7a, 12 },
00207 { 0xcef, 12 },{ 0x14e5, 13 },{ 0x19dd, 13 },{ 0x29c8, 14 },
00208 { 0x29c9, 14 },{ 0x63dd, 15 },{ 0x33b8, 14 },{ 0x33b9, 14 },
00209 { 0xc7b6, 16 },{ 0x63d8, 15 },{ 0x63df, 15 },{ 0xc7b3, 16 },
00210 { 0xc7b4, 16 },{ 0xc7b5, 16 },{ 0x63de, 15 },{ 0xc7b7, 16 },
00211 { 0xc7b8, 16 },{ 0xc7b9, 16 },{ 0x18f65, 17 },{ 0x31ec8, 18 },
00212 { 0xc7b248, 24 },{ 0xc7b249, 24 },{ 0xc7b24a, 24 },{ 0xc7b24b, 24 },
00213 { 0xc7b24c, 24 },{ 0xc7b24d, 24 },{ 0xc7b24e, 24 },{ 0xc7b24f, 24 },
00214 { 0xc7b250, 24 },{ 0xc7b251, 24 },{ 0xc7b252, 24 },{ 0xc7b253, 24 },
00215 { 0xc7b254, 24 },{ 0xc7b255, 24 },{ 0xc7b256, 24 },{ 0xc7b257, 24 },
00216 { 0xc7b258, 24 },{ 0xc7b259, 24 },{ 0xc7b25a, 24 },{ 0xc7b25b, 24 },
00217 { 0xc7b25c, 24 },{ 0xc7b25d, 24 },{ 0xc7b25e, 24 },{ 0xc7b25f, 24 },
00218 { 0xc7b260, 24 },{ 0xc7b261, 24 },{ 0xc7b262, 24 },{ 0xc7b263, 24 },
00219 { 0xc7b264, 24 },{ 0xc7b265, 24 },{ 0xc7b266, 24 },{ 0xc7b267, 24 },
00220 { 0xc7b268, 24 },{ 0xc7b269, 24 },{ 0xc7b26a, 24 },{ 0xc7b26b, 24 },
00221 { 0xc7b26c, 24 },{ 0xc7b26d, 24 },{ 0xc7b26e, 24 },{ 0xc7b26f, 24 },
00222 { 0xc7b270, 24 },{ 0xc7b271, 24 },{ 0xc7b272, 24 },{ 0xc7b273, 24 },
00223 { 0xc7b274, 24 },{ 0xc7b275, 24 },{ 0xc7b276, 24 },{ 0xc7b277, 24 },
00224 { 0xc7b278, 24 },{ 0xc7b279, 24 },{ 0xc7b27a, 24 },{ 0xc7b27b, 24 },
00225 { 0xc7b27c, 24 },{ 0xc7b27d, 24 },{ 0xc7b27e, 24 },{ 0xc7b27f, 24 },
00226 { 0x18f6480, 25 },{ 0x18f6481, 25 },{ 0x18f6482, 25 },{ 0x18f6483, 25 },
00227 { 0x18f6484, 25 },{ 0x18f6485, 25 },{ 0x18f6486, 25 },{ 0x18f6487, 25 },
00228 { 0x18f6488, 25 },{ 0x18f6489, 25 },{ 0x18f648a, 25 },{ 0x18f648b, 25 },
00229 { 0x18f648c, 25 },{ 0x18f648d, 25 },{ 0x18f648e, 25 },{ 0x18f648f, 25 },
00230 };
00231
00232
00233
00234 static const uint16_t table0_vlc[133][2] = {
00235 { 0x1, 2 },{ 0x6, 3 },{ 0xf, 4 },{ 0x16, 5 },
00236 { 0x20, 6 },{ 0x18, 7 },{ 0x8, 8 },{ 0x9a, 8 },
00237 { 0x56, 9 },{ 0x13e, 9 },{ 0xf0, 10 },{ 0x3a5, 10 },
00238 { 0x77, 11 },{ 0x1ef, 11 },{ 0x9a, 12 },{ 0x5d, 13 },
00239 { 0x1, 4 },{ 0x11, 5 },{ 0x2, 7 },{ 0xb, 8 },
00240 { 0x12, 9 },{ 0x1d6, 9 },{ 0x27e, 10 },{ 0x191, 11 },
00241 { 0xea, 12 },{ 0x3dc, 12 },{ 0x13b, 13 },{ 0x4, 5 },
00242 { 0x14, 7 },{ 0x9e, 8 },{ 0x9, 10 },{ 0x1ac, 11 },
00243 { 0x1e2, 11 },{ 0x3ca, 12 },{ 0x5f, 13 },{ 0x17, 5 },
00244 { 0x4e, 7 },{ 0x5e, 9 },{ 0xf3, 10 },{ 0x1ad, 11 },
00245 { 0xec, 12 },{ 0x5f0, 13 },{ 0xe, 6 },{ 0xe1, 8 },
00246 { 0x3a4, 10 },{ 0x9c, 12 },{ 0x13d, 13 },{ 0x3b, 6 },
00247 { 0x1c, 9 },{ 0x14, 11 },{ 0x9be, 12 },{ 0x6, 7 },
00248 { 0x7a, 9 },{ 0x190, 11 },{ 0x137, 13 },{ 0x1b, 7 },
00249 { 0x8, 10 },{ 0x75c, 11 },{ 0x71, 7 },{ 0xd7, 10 },
00250 { 0x9bf, 12 },{ 0x7, 8 },{ 0xaf, 10 },{ 0x4cc, 11 },
00251 { 0x34, 8 },{ 0x265, 10 },{ 0x9f, 12 },{ 0xe0, 8 },
00252 { 0x16, 11 },{ 0x327, 12 },{ 0x15, 9 },{ 0x17d, 11 },
00253 { 0xebb, 12 },{ 0x14, 9 },{ 0xf6, 10 },{ 0x1e4, 11 },
00254 { 0xcb, 10 },{ 0x99d, 12 },{ 0xca, 10 },{ 0x2fc, 12 },
00255 { 0x17f, 11 },{ 0x4cd, 11 },{ 0x2fd, 12 },{ 0x4fe, 11 },
00256 { 0x13a, 13 },{ 0xa, 4 },{ 0x42, 7 },{ 0x1d3, 9 },
00257 { 0x4dd, 11 },{ 0x12, 5 },{ 0xe8, 8 },{ 0x4c, 11 },
00258 { 0x136, 13 },{ 0x39, 6 },{ 0x264, 10 },{ 0xeba, 12 },
00259 { 0x0, 7 },{ 0xae, 10 },{ 0x99c, 12 },{ 0x1f, 7 },
00260 { 0x4de, 11 },{ 0x43, 7 },{ 0x4dc, 11 },{ 0x3, 8 },
00261 { 0x3cb, 12 },{ 0x6, 8 },{ 0x99e, 12 },{ 0x2a, 8 },
00262 { 0x5f1, 13 },{ 0xf, 8 },{ 0x9fe, 12 },{ 0x33, 8 },
00263 { 0x9ff, 12 },{ 0x98, 8 },{ 0x99f, 12 },{ 0xea, 8 },
00264 { 0x13c, 13 },{ 0x2e, 8 },{ 0x192, 11 },{ 0x136, 9 },
00265 { 0x6a, 9 },{ 0x15, 11 },{ 0x3af, 10 },{ 0x1e3, 11 },
00266 { 0x74, 11 },{ 0xeb, 12 },{ 0x2f9, 12 },{ 0x5c, 13 },
00267 { 0xed, 12 },{ 0x3dd, 12 },{ 0x326, 12 },{ 0x5e, 13 },
00268 { 0x16, 7 },
00269 };
00270
00271 static const int8_t table0_level[132] = {
00272 1, 2, 3, 4, 5, 6, 7, 8,
00273 9, 10, 11, 12, 13, 14, 15, 16,
00274 1, 2, 3, 4, 5, 6, 7, 8,
00275 9, 10, 11, 1, 2, 3, 4, 5,
00276 6, 7, 8, 1, 2, 3, 4, 5,
00277 6, 7, 1, 2, 3, 4, 5, 1,
00278 2, 3, 4, 1, 2, 3, 4, 1,
00279 2, 3, 1, 2, 3, 1, 2, 3,
00280 1, 2, 3, 1, 2, 3, 1, 2,
00281 3, 1, 2, 3, 1, 2, 1, 2,
00282 1, 1, 1, 1, 1, 1, 2, 3,
00283 4, 1, 2, 3, 4, 1, 2, 3,
00284 1, 2, 3, 1, 2, 1, 2, 1,
00285 2, 1, 2, 1, 2, 1, 2, 1,
00286 2, 1, 2, 1, 2, 1, 2, 1,
00287 1, 1, 1, 1, 1, 1, 1, 1,
00288 1, 1, 1, 1,
00289 };
00290
00291 static const int8_t table0_run[132] = {
00292 0, 0, 0, 0, 0, 0, 0, 0,
00293 0, 0, 0, 0, 0, 0, 0, 0,
00294 1, 1, 1, 1, 1, 1, 1, 1,
00295 1, 1, 1, 2, 2, 2, 2, 2,
00296 2, 2, 2, 3, 3, 3, 3, 3,
00297 3, 3, 4, 4, 4, 4, 4, 5,
00298 5, 5, 5, 6, 6, 6, 6, 7,
00299 7, 7, 8, 8, 8, 9, 9, 9,
00300 10, 10, 10, 11, 11, 11, 12, 12,
00301 12, 13, 13, 13, 14, 14, 15, 15,
00302 16, 17, 18, 19, 20, 0, 0, 0,
00303 0, 1, 1, 1, 1, 2, 2, 2,
00304 3, 3, 3, 4, 4, 5, 5, 6,
00305 6, 7, 7, 8, 8, 9, 9, 10,
00306 10, 11, 11, 12, 12, 13, 13, 14,
00307 15, 16, 17, 18, 19, 20, 21, 22,
00308 23, 24, 25, 26,
00309 };
00310
00311
00312
00313 static const uint16_t table1_vlc[149][2] = {
00314 { 0x4, 3 },{ 0x14, 5 },{ 0x17, 7 },{ 0x7f, 8 },
00315 { 0x154, 9 },{ 0x1f2, 10 },{ 0xbf, 11 },{ 0x65, 12 },
00316 { 0xaaa, 12 },{ 0x630, 13 },{ 0x1597, 13 },{ 0x3b7, 14 },
00317 { 0x2b22, 14 },{ 0xbe6, 15 },{ 0xb, 4 },{ 0x37, 7 },
00318 { 0x62, 9 },{ 0x7, 11 },{ 0x166, 12 },{ 0xce, 13 },
00319 { 0x1590, 13 },{ 0x5f6, 14 },{ 0xbe7, 15 },{ 0x7, 5 },
00320 { 0x6d, 8 },{ 0x3, 11 },{ 0x31f, 12 },{ 0x5f2, 14 },
00321 { 0x2, 6 },{ 0x61, 9 },{ 0x55, 12 },{ 0x1df, 14 },
00322 { 0x1a, 6 },{ 0x1e, 10 },{ 0xac9, 12 },{ 0x2b23, 14 },
00323 { 0x1e, 6 },{ 0x1f, 10 },{ 0xac3, 12 },{ 0x2b2b, 14 },
00324 { 0x6, 7 },{ 0x4, 11 },{ 0x2f8, 13 },{ 0x19, 7 },
00325 { 0x6, 11 },{ 0x63d, 13 },{ 0x57, 7 },{ 0x182, 11 },
00326 { 0x2aa2, 14 },{ 0x4, 8 },{ 0x180, 11 },{ 0x59c, 14 },
00327 { 0x7d, 8 },{ 0x164, 12 },{ 0x76d, 15 },{ 0x2, 9 },
00328 { 0x18d, 11 },{ 0x1581, 13 },{ 0xad, 8 },{ 0x60, 12 },
00329 { 0xc67, 14 },{ 0x1c, 9 },{ 0xee, 13 },{ 0x3, 9 },
00330 { 0x2cf, 13 },{ 0xd9, 9 },{ 0x1580, 13 },{ 0x2, 11 },
00331 { 0x183, 11 },{ 0x57, 12 },{ 0x61, 12 },{ 0x31, 11 },
00332 { 0x66, 12 },{ 0x631, 13 },{ 0x632, 13 },{ 0xac, 13 },
00333 { 0x31d, 12 },{ 0x76, 12 },{ 0x3a, 11 },{ 0x165, 12 },
00334 { 0xc66, 14 },{ 0x3, 2 },{ 0x54, 7 },{ 0x2ab, 10 },
00335 { 0x16, 13 },{ 0x5f7, 14 },{ 0x5, 4 },{ 0xf8, 9 },
00336 { 0xaa9, 12 },{ 0x5f, 15 },{ 0x4, 4 },{ 0x1c, 10 },
00337 { 0x1550, 13 },{ 0x4, 5 },{ 0x77, 11 },{ 0x76c, 15 },
00338 { 0xe, 5 },{ 0xa, 12 },{ 0xc, 5 },{ 0x562, 11 },
00339 { 0x4, 6 },{ 0x31c, 12 },{ 0x6, 6 },{ 0xc8, 13 },
00340 { 0xd, 6 },{ 0x1da, 13 },{ 0x7, 6 },{ 0xc9, 13 },
00341 { 0x1, 7 },{ 0x2e, 14 },{ 0x14, 7 },{ 0x1596, 13 },
00342 { 0xa, 7 },{ 0xac2, 12 },{ 0x16, 7 },{ 0x15b, 14 },
00343 { 0x15, 7 },{ 0x15a, 14 },{ 0xf, 8 },{ 0x5e, 15 },
00344 { 0x7e, 8 },{ 0xab, 8 },{ 0x2d, 9 },{ 0xd8, 9 },
00345 { 0xb, 9 },{ 0x14, 10 },{ 0x2b3, 10 },{ 0x1f3, 10 },
00346 { 0x3a, 10 },{ 0x0, 10 },{ 0x58, 10 },{ 0x2e, 9 },
00347 { 0x5e, 10 },{ 0x563, 11 },{ 0xec, 12 },{ 0x54, 12 },
00348 { 0xac1, 12 },{ 0x1556, 13 },{ 0x2fa, 13 },{ 0x181, 11 },
00349 { 0x1557, 13 },{ 0x59d, 14 },{ 0x2aa3, 14 },{ 0x2b2a, 14 },
00350 { 0x1de, 14 },{ 0x63c, 13 },{ 0xcf, 13 },{ 0x1594, 13 },
00351 { 0xd, 9 },
00352 };
00353
00354 static const int8_t table1_level[148] = {
00355 1, 2, 3, 4, 5, 6, 7, 8,
00356 9, 10, 11, 12, 13, 14, 1, 2,
00357 3, 4, 5, 6, 7, 8, 9, 1,
00358 2, 3, 4, 5, 1, 2, 3, 4,
00359 1, 2, 3, 4, 1, 2, 3, 4,
00360 1, 2, 3, 1, 2, 3, 1, 2,
00361 3, 1, 2, 3, 1, 2, 3, 1,
00362 2, 3, 1, 2, 3, 1, 2, 1,
00363 2, 1, 2, 1, 1, 1, 1, 1,
00364 1, 1, 1, 1, 1, 1, 1, 1,
00365 1, 1, 2, 3, 4, 5, 1, 2,
00366 3, 4, 1, 2, 3, 1, 2, 3,
00367 1, 2, 1, 2, 1, 2, 1, 2,
00368 1, 2, 1, 2, 1, 2, 1, 2,
00369 1, 2, 1, 2, 1, 2, 1, 2,
00370 1, 1, 1, 1, 1, 1, 1, 1,
00371 1, 1, 1, 1, 1, 1, 1, 1,
00372 1, 1, 1, 1, 1, 1, 1, 1,
00373 1, 1, 1, 1,
00374 };
00375
00376 static const int8_t table1_run[148] = {
00377 0, 0, 0, 0, 0, 0, 0, 0,
00378 0, 0, 0, 0, 0, 0, 1, 1,
00379 1, 1, 1, 1, 1, 1, 1, 2,
00380 2, 2, 2, 2, 3, 3, 3, 3,
00381 4, 4, 4, 4, 5, 5, 5, 5,
00382 6, 6, 6, 7, 7, 7, 8, 8,
00383 8, 9, 9, 9, 10, 10, 10, 11,
00384 11, 11, 12, 12, 12, 13, 13, 14,
00385 14, 15, 15, 16, 17, 18, 19, 20,
00386 21, 22, 23, 24, 25, 26, 27, 28,
00387 29, 0, 0, 0, 0, 0, 1, 1,
00388 1, 1, 2, 2, 2, 3, 3, 3,
00389 4, 4, 5, 5, 6, 6, 7, 7,
00390 8, 8, 9, 9, 10, 10, 11, 11,
00391 12, 12, 13, 13, 14, 14, 15, 15,
00392 16, 17, 18, 19, 20, 21, 22, 23,
00393 24, 25, 26, 27, 28, 29, 30, 31,
00394 32, 33, 34, 35, 36, 37, 38, 39,
00395 40, 41, 42, 43,
00396 };
00397
00398
00399
00400 static const uint16_t table2_vlc[186][2] = {
00401 { 0x1, 2 },{ 0x5, 3 },{ 0xd, 4 },{ 0x12, 5 },
00402 { 0xe, 6 },{ 0x15, 7 },{ 0x13, 8 },{ 0x3f, 8 },
00403 { 0x4b, 9 },{ 0x11f, 9 },{ 0xb8, 10 },{ 0x3e3, 10 },
00404 { 0x172, 11 },{ 0x24d, 12 },{ 0x3da, 12 },{ 0x2dd, 13 },
00405 { 0x1f55, 13 },{ 0x5b9, 14 },{ 0x3eae, 14 },{ 0x0, 4 },
00406 { 0x10, 5 },{ 0x8, 7 },{ 0x20, 8 },{ 0x29, 9 },
00407 { 0x1f4, 9 },{ 0x233, 10 },{ 0x1e0, 11 },{ 0x12a, 12 },
00408 { 0x3dd, 12 },{ 0x50a, 13 },{ 0x1f29, 13 },{ 0xa42, 14 },
00409 { 0x1272, 15 },{ 0x1737, 15 },{ 0x3, 5 },{ 0x11, 7 },
00410 { 0xc4, 8 },{ 0x4b, 10 },{ 0xb4, 11 },{ 0x7d4, 11 },
00411 { 0x345, 12 },{ 0x2d7, 13 },{ 0x7bf, 13 },{ 0x938, 14 },
00412 { 0xbbb, 14 },{ 0x95e, 15 },{ 0x13, 5 },{ 0x78, 7 },
00413 { 0x69, 9 },{ 0x232, 10 },{ 0x461, 11 },{ 0x3ec, 12 },
00414 { 0x520, 13 },{ 0x1f2a, 13 },{ 0x3e50, 14 },{ 0x3e51, 14 },
00415 { 0x1486, 15 },{ 0xc, 6 },{ 0x24, 9 },{ 0x94, 11 },
00416 { 0x8c0, 12 },{ 0xf09, 14 },{ 0x1ef0, 15 },{ 0x3d, 6 },
00417 { 0x53, 9 },{ 0x1a0, 11 },{ 0x2d6, 13 },{ 0xf08, 14 },
00418 { 0x13, 7 },{ 0x7c, 9 },{ 0x7c1, 11 },{ 0x4ac, 14 },
00419 { 0x1b, 7 },{ 0xa0, 10 },{ 0x344, 12 },{ 0xf79, 14 },
00420 { 0x79, 7 },{ 0x3e1, 10 },{ 0x2d4, 13 },{ 0x2306, 14 },
00421 { 0x21, 8 },{ 0x23c, 10 },{ 0xfae, 12 },{ 0x23de, 14 },
00422 { 0x35, 8 },{ 0x175, 11 },{ 0x7b3, 13 },{ 0xc5, 8 },
00423 { 0x174, 11 },{ 0x785, 13 },{ 0x48, 9 },{ 0x1a3, 11 },
00424 { 0x49e, 13 },{ 0x2c, 9 },{ 0xfa, 10 },{ 0x7d6, 11 },
00425 { 0x92, 10 },{ 0x5cc, 13 },{ 0x1ef1, 15 },{ 0xa3, 10 },
00426 { 0x3ed, 12 },{ 0x93e, 14 },{ 0x1e2, 11 },{ 0x1273, 15 },
00427 { 0x7c4, 11 },{ 0x1487, 15 },{ 0x291, 12 },{ 0x293, 12 },
00428 { 0xf8a, 12 },{ 0x509, 13 },{ 0x508, 13 },{ 0x78d, 13 },
00429 { 0x7be, 13 },{ 0x78c, 13 },{ 0x4ae, 14 },{ 0xbba, 14 },
00430 { 0x2307, 14 },{ 0xb9a, 14 },{ 0x1736, 15 },{ 0xe, 4 },
00431 { 0x45, 7 },{ 0x1f3, 9 },{ 0x47a, 11 },{ 0x5dc, 13 },
00432 { 0x23df, 14 },{ 0x19, 5 },{ 0x28, 9 },{ 0x176, 11 },
00433 { 0x49d, 13 },{ 0x23dd, 14 },{ 0x30, 6 },{ 0xa2, 10 },
00434 { 0x2ef, 12 },{ 0x5b8, 14 },{ 0x3f, 6 },{ 0xa5, 10 },
00435 { 0x3db, 12 },{ 0x93f, 14 },{ 0x44, 7 },{ 0x7cb, 11 },
00436 { 0x95f, 15 },{ 0x63, 7 },{ 0x3c3, 12 },{ 0x15, 8 },
00437 { 0x8f6, 12 },{ 0x17, 8 },{ 0x498, 13 },{ 0x2c, 8 },
00438 { 0x7b2, 13 },{ 0x2f, 8 },{ 0x1f54, 13 },{ 0x8d, 8 },
00439 { 0x7bd, 13 },{ 0x8e, 8 },{ 0x1182, 13 },{ 0xfb, 8 },
00440 { 0x50b, 13 },{ 0x2d, 8 },{ 0x7c0, 11 },{ 0x79, 9 },
00441 { 0x1f5f, 13 },{ 0x7a, 9 },{ 0x1f56, 13 },{ 0x231, 10 },
00442 { 0x3e4, 10 },{ 0x1a1, 11 },{ 0x143, 11 },{ 0x1f7, 11 },
00443 { 0x16f, 12 },{ 0x292, 12 },{ 0x2e7, 12 },{ 0x16c, 12 },
00444 { 0x16d, 12 },{ 0x3dc, 12 },{ 0xf8b, 12 },{ 0x499, 13 },
00445 { 0x3d8, 12 },{ 0x78e, 13 },{ 0x2d5, 13 },{ 0x1f5e, 13 },
00446 { 0x1f2b, 13 },{ 0x78f, 13 },{ 0x4ad, 14 },{ 0x3eaf, 14 },
00447 { 0x23dc, 14 },{ 0x4a, 9 },
00448 };
00449
00450 static const int8_t table2_level[185] = {
00451 1, 2, 3, 4, 5, 6, 7, 8,
00452 9, 10, 11, 12, 13, 14, 15, 16,
00453 17, 18, 19, 1, 2, 3, 4, 5,
00454 6, 7, 8, 9, 10, 11, 12, 13,
00455 14, 15, 1, 2, 3, 4, 5, 6,
00456 7, 8, 9, 10, 11, 12, 1, 2,
00457 3, 4, 5, 6, 7, 8, 9, 10,
00458 11, 1, 2, 3, 4, 5, 6, 1,
00459 2, 3, 4, 5, 1, 2, 3, 4,
00460 1, 2, 3, 4, 1, 2, 3, 4,
00461 1, 2, 3, 4, 1, 2, 3, 1,
00462 2, 3, 1, 2, 3, 1, 2, 3,
00463 1, 2, 3, 1, 2, 3, 1, 2,
00464 1, 2, 1, 1, 1, 1, 1, 1,
00465 1, 1, 1, 1, 1, 1, 1, 1,
00466 2, 3, 4, 5, 6, 1, 2, 3,
00467 4, 5, 1, 2, 3, 4, 1, 2,
00468 3, 4, 1, 2, 3, 1, 2, 1,
00469 2, 1, 2, 1, 2, 1, 2, 1,
00470 2, 1, 2, 1, 2, 1, 2, 1,
00471 2, 1, 2, 1, 1, 1, 1, 1,
00472 1, 1, 1, 1, 1, 1, 1, 1,
00473 1, 1, 1, 1, 1, 1, 1, 1,
00474 1,
00475 };
00476
00477 static const int8_t table2_run[185] = {
00478 0, 0, 0, 0, 0, 0, 0, 0,
00479 0, 0, 0, 0, 0, 0, 0, 0,
00480 0, 0, 0, 1, 1, 1, 1, 1,
00481 1, 1, 1, 1, 1, 1, 1, 1,
00482 1, 1, 2, 2, 2, 2, 2, 2,
00483 2, 2, 2, 2, 2, 2, 3, 3,
00484 3, 3, 3, 3, 3, 3, 3, 3,
00485 3, 4, 4, 4, 4, 4, 4, 5,
00486 5, 5, 5, 5, 6, 6, 6, 6,
00487 7, 7, 7, 7, 8, 8, 8, 8,
00488 9, 9, 9, 9, 10, 10, 10, 11,
00489 11, 11, 12, 12, 12, 13, 13, 13,
00490 14, 14, 14, 15, 15, 15, 16, 16,
00491 17, 17, 18, 19, 20, 21, 22, 23,
00492 24, 25, 26, 27, 28, 29, 30, 0,
00493 0, 0, 0, 0, 0, 1, 1, 1,
00494 1, 1, 2, 2, 2, 2, 3, 3,
00495 3, 3, 4, 4, 4, 5, 5, 6,
00496 6, 7, 7, 8, 8, 9, 9, 10,
00497 10, 11, 11, 12, 12, 13, 13, 14,
00498 14, 15, 15, 16, 17, 18, 19, 20,
00499 21, 22, 23, 24, 25, 26, 27, 28,
00500 29, 30, 31, 32, 33, 34, 35, 36,
00501 37,
00502 };
00503
00504
00505 static const uint16_t table4_vlc[169][2] = {
00506 { 0x0, 3 },{ 0x3, 4 },{ 0xb, 5 },{ 0x14, 6 },
00507 { 0x3f, 6 },{ 0x5d, 7 },{ 0xa2, 8 },{ 0xac, 9 },
00508 { 0x16e, 9 },{ 0x20a, 10 },{ 0x2e2, 10 },{ 0x432, 11 },
00509 { 0x5c9, 11 },{ 0x827, 12 },{ 0xb54, 12 },{ 0x4e6, 13 },
00510 { 0x105f, 13 },{ 0x172a, 13 },{ 0x20b2, 14 },{ 0x2d4e, 14 },
00511 { 0x39f0, 14 },{ 0x4175, 15 },{ 0x5a9e, 15 },{ 0x4, 4 },
00512 { 0x1e, 5 },{ 0x42, 7 },{ 0xb6, 8 },{ 0x173, 9 },
00513 { 0x395, 10 },{ 0x72e, 11 },{ 0xb94, 12 },{ 0x16a4, 13 },
00514 { 0x20b3, 14 },{ 0x2e45, 14 },{ 0x5, 5 },{ 0x40, 7 },
00515 { 0x49, 9 },{ 0x28f, 10 },{ 0x5cb, 11 },{ 0x48a, 13 },
00516 { 0x9dd, 14 },{ 0x73e2, 15 },{ 0x18, 5 },{ 0x25, 8 },
00517 { 0x8a, 10 },{ 0x51b, 11 },{ 0xe5f, 12 },{ 0x9c9, 14 },
00518 { 0x139c, 15 },{ 0x29, 6 },{ 0x4f, 9 },{ 0x412, 11 },
00519 { 0x48d, 13 },{ 0x2e41, 14 },{ 0x38, 6 },{ 0x10e, 9 },
00520 { 0x5a8, 11 },{ 0x105c, 13 },{ 0x39f2, 14 },{ 0x58, 7 },
00521 { 0x21f, 10 },{ 0xe7e, 12 },{ 0x39ff, 14 },{ 0x23, 8 },
00522 { 0x2e3, 10 },{ 0x4e5, 13 },{ 0x2e40, 14 },{ 0xa1, 8 },
00523 { 0x5be, 11 },{ 0x9c8, 14 },{ 0x83, 8 },{ 0x13a, 11 },
00524 { 0x1721, 13 },{ 0x44, 9 },{ 0x276, 12 },{ 0x39f6, 14 },
00525 { 0x8b, 10 },{ 0x4ef, 13 },{ 0x5a9b, 15 },{ 0x208, 10 },
00526 { 0x1cfe, 13 },{ 0x399, 10 },{ 0x1cb4, 13 },{ 0x39e, 10 },
00527 { 0x39f3, 14 },{ 0x5ab, 11 },{ 0x73e3, 15 },{ 0x737, 11 },
00528 { 0x5a9f, 15 },{ 0x82d, 12 },{ 0xe69, 12 },{ 0xe68, 12 },
00529 { 0x433, 11 },{ 0xb7b, 12 },{ 0x2df8, 14 },{ 0x2e56, 14 },
00530 { 0x2e57, 14 },{ 0x39f7, 14 },{ 0x51a5, 15 },{ 0x3, 3 },
00531 { 0x2a, 6 },{ 0xe4, 8 },{ 0x28e, 10 },{ 0x735, 11 },
00532 { 0x1058, 13 },{ 0x1cfa, 13 },{ 0x2df9, 14 },{ 0x4174, 15 },
00533 { 0x9, 4 },{ 0x54, 8 },{ 0x398, 10 },{ 0x48b, 13 },
00534 { 0x139d, 15 },{ 0xd, 4 },{ 0xad, 9 },{ 0x826, 12 },
00535 { 0x2d4c, 14 },{ 0x11, 5 },{ 0x16b, 9 },{ 0xb7f, 12 },
00536 { 0x51a4, 15 },{ 0x19, 5 },{ 0x21b, 10 },{ 0x16fd, 13 },
00537 { 0x1d, 5 },{ 0x394, 10 },{ 0x28d3, 14 },{ 0x2b, 6 },
00538 { 0x5bc, 11 },{ 0x5a9a, 15 },{ 0x2f, 6 },{ 0x247, 12 },
00539 { 0x10, 7 },{ 0xa35, 12 },{ 0x3e, 6 },{ 0xb7a, 12 },
00540 { 0x59, 7 },{ 0x105e, 13 },{ 0x26, 8 },{ 0x9cf, 14 },
00541 { 0x55, 8 },{ 0x1cb5, 13 },{ 0x57, 8 },{ 0xe5b, 12 },
00542 { 0xa0, 8 },{ 0x1468, 13 },{ 0x170, 9 },{ 0x90, 10 },
00543 { 0x1ce, 9 },{ 0x21a, 10 },{ 0x218, 10 },{ 0x168, 9 },
00544 { 0x21e, 10 },{ 0x244, 12 },{ 0x736, 11 },{ 0x138, 11 },
00545 { 0x519, 11 },{ 0xe5e, 12 },{ 0x72c, 11 },{ 0xb55, 12 },
00546 { 0x9dc, 14 },{ 0x20bb, 14 },{ 0x48c, 13 },{ 0x1723, 13 },
00547 { 0x2e44, 14 },{ 0x16a5, 13 },{ 0x518, 11 },{ 0x39fe, 14 },
00548 { 0x169, 9 },
00549 };
00550
00551 static const int8_t table4_level[168] = {
00552 1, 2, 3, 4, 5, 6, 7, 8,
00553 9, 10, 11, 12, 13, 14, 15, 16,
00554 17, 18, 19, 20, 21, 22, 23, 1,
00555 2, 3, 4, 5, 6, 7, 8, 9,
00556 10, 11, 1, 2, 3, 4, 5, 6,
00557 7, 8, 1, 2, 3, 4, 5, 6,
00558 7, 1, 2, 3, 4, 5, 1, 2,
00559 3, 4, 5, 1, 2, 3, 4, 1,
00560 2, 3, 4, 1, 2, 3, 1, 2,
00561 3, 1, 2, 3, 1, 2, 3, 1,
00562 2, 1, 2, 1, 2, 1, 2, 1,
00563 2, 1, 1, 1, 1, 1, 1, 1,
00564 1, 1, 1, 1, 2, 3, 4, 5,
00565 6, 7, 8, 9, 1, 2, 3, 4,
00566 5, 1, 2, 3, 4, 1, 2, 3,
00567 4, 1, 2, 3, 1, 2, 3, 1,
00568 2, 3, 1, 2, 1, 2, 1, 2,
00569 1, 2, 1, 2, 1, 2, 1, 2,
00570 1, 2, 1, 1, 1, 1, 1, 1,
00571 1, 1, 1, 1, 1, 1, 1, 1,
00572 1, 1, 1, 1, 1, 1, 1, 1,
00573 };
00574
00575 static const int8_t table4_run[168] = {
00576 0, 0, 0, 0, 0, 0, 0, 0,
00577 0, 0, 0, 0, 0, 0, 0, 0,
00578 0, 0, 0, 0, 0, 0, 0, 1,
00579 1, 1, 1, 1, 1, 1, 1, 1,
00580 1, 1, 2, 2, 2, 2, 2, 2,
00581 2, 2, 3, 3, 3, 3, 3, 3,
00582 3, 4, 4, 4, 4, 4, 5, 5,
00583 5, 5, 5, 6, 6, 6, 6, 7,
00584 7, 7, 7, 8, 8, 8, 9, 9,
00585 9, 10, 10, 10, 11, 11, 11, 12,
00586 12, 13, 13, 14, 14, 15, 15, 16,
00587 16, 17, 18, 19, 20, 21, 22, 23,
00588 24, 25, 26, 0, 0, 0, 0, 0,
00589 0, 0, 0, 0, 1, 1, 1, 1,
00590 1, 2, 2, 2, 2, 3, 3, 3,
00591 3, 4, 4, 4, 5, 5, 5, 6,
00592 6, 6, 7, 7, 8, 8, 9, 9,
00593 10, 10, 11, 11, 12, 12, 13, 13,
00594 14, 14, 15, 16, 17, 18, 19, 20,
00595 21, 22, 23, 24, 25, 26, 27, 28,
00596 29, 30, 31, 32, 33, 34, 35, 36,
00597 };
00598
00599 extern const uint16_t ff_inter_vlc[103][2];
00600 extern const int8_t ff_inter_level[102];
00601 extern const int8_t ff_inter_run[102];
00602
00603 extern const uint16_t ff_mpeg4_intra_vlc[103][2];
00604 extern const int8_t ff_mpeg4_intra_level[102];
00605 extern const int8_t ff_mpeg4_intra_run[102];
00606
00607 RLTable ff_rl_table[NB_RL_TABLES] = {
00608
00609
00610 {
00611 132,
00612 85,
00613 table0_vlc,
00614 table0_run,
00615 table0_level,
00616 },
00617
00618 {
00619 185,
00620 119,
00621 table2_vlc,
00622 table2_run,
00623 table2_level,
00624 },
00625
00626 {
00627 102,
00628 67,
00629 ff_mpeg4_intra_vlc,
00630 ff_mpeg4_intra_run,
00631 ff_mpeg4_intra_level,
00632 },
00633
00634
00635 {
00636 148,
00637 81,
00638 table1_vlc,
00639 table1_run,
00640 table1_level,
00641 },
00642
00643 {
00644 168,
00645 99,
00646 table4_vlc,
00647 table4_run,
00648 table4_level,
00649 },
00650
00651 {
00652 102,
00653 58,
00654 ff_inter_vlc,
00655 ff_inter_run,
00656 ff_inter_level,
00657 },
00658 };
00659
00660
00661
00662 static const uint16_t table0_mv_code[1100] = {
00663 0x0001, 0x0003, 0x0005, 0x0007, 0x0003, 0x0008, 0x000c, 0x0001,
00664 0x0002, 0x001b, 0x0006, 0x000b, 0x0015, 0x0002, 0x000e, 0x000f,
00665 0x0014, 0x0020, 0x0022, 0x0025, 0x0027, 0x0029, 0x002d, 0x004b,
00666 0x004d, 0x0003, 0x0022, 0x0023, 0x0025, 0x0027, 0x0042, 0x0048,
00667 0x0049, 0x0050, 0x005c, 0x0091, 0x009f, 0x000e, 0x0043, 0x004c,
00668 0x0054, 0x0056, 0x008c, 0x0098, 0x009a, 0x009b, 0x00b1, 0x00b2,
00669 0x0120, 0x0121, 0x0126, 0x0133, 0x0139, 0x01a1, 0x01a4, 0x01a5,
00670 0x01a6, 0x01a7, 0x01ae, 0x01af, 0x000b, 0x0019, 0x0085, 0x0090,
00671 0x009b, 0x00aa, 0x00af, 0x010c, 0x010e, 0x011c, 0x011e, 0x0133,
00672 0x0144, 0x0160, 0x0174, 0x0175, 0x0177, 0x0178, 0x0249, 0x024b,
00673 0x0252, 0x0261, 0x0265, 0x0270, 0x0352, 0x0353, 0x0355, 0x0359,
00674 0x0010, 0x0011, 0x0013, 0x0034, 0x0035, 0x0036, 0x0037, 0x003d,
00675 0x003e, 0x0109, 0x0126, 0x0156, 0x021a, 0x021e, 0x023a, 0x023e,
00676 0x028e, 0x028f, 0x02cf, 0x0491, 0x0494, 0x049f, 0x04a0, 0x04a3,
00677 0x04a6, 0x04a7, 0x04ad, 0x04ae, 0x04c0, 0x04c4, 0x04c6, 0x04c8,
00678 0x04c9, 0x04f5, 0x04f6, 0x04f7, 0x0680, 0x0682, 0x0683, 0x0688,
00679 0x0689, 0x068d, 0x068e, 0x068f, 0x06a2, 0x06a3, 0x06a9, 0x06b0,
00680 0x06b1, 0x06b4, 0x06b5, 0x0024, 0x0060, 0x0063, 0x0078, 0x0079,
00681 0x0211, 0x0244, 0x0245, 0x0247, 0x0248, 0x0249, 0x024a, 0x024b,
00682 0x026b, 0x02af, 0x02b8, 0x02bb, 0x0436, 0x0476, 0x0477, 0x047e,
00683 0x04c8, 0x04c9, 0x04ca, 0x0514, 0x0586, 0x0587, 0x0598, 0x059d,
00684 0x05d9, 0x05da, 0x0920, 0x0921, 0x093b, 0x093c, 0x093d, 0x0942,
00685 0x0943, 0x0944, 0x0945, 0x0959, 0x095e, 0x095f, 0x0982, 0x0983,
00686 0x098e, 0x098f, 0x09c4, 0x09e7, 0x09e8, 0x09e9, 0x0d02, 0x0d17,
00687 0x0d18, 0x0d19, 0x0d41, 0x0d42, 0x0d43, 0x0d50, 0x0d5f, 0x0d6d,
00688 0x0d6e, 0x0d6f, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
00689 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x041e, 0x041f, 0x0420, 0x0421,
00690 0x048c, 0x048d, 0x04d3, 0x04d4, 0x04d5, 0x055c, 0x055d, 0x0572,
00691 0x0573, 0x0574, 0x0575, 0x08de, 0x08df, 0x08fe, 0x08ff, 0x0996,
00692 0x0a36, 0x0a37, 0x0b08, 0x0b09, 0x0b0a, 0x0b0b, 0x0b32, 0x0b33,
00693 0x0b34, 0x0b35, 0x0b36, 0x0b37, 0x0b38, 0x0b39, 0x0bb0, 0x0bf7,
00694 0x0bf8, 0x0bf9, 0x0bfa, 0x0bfb, 0x0bfc, 0x0bfd, 0x0bfe, 0x0bff,
00695 0x1254, 0x1255, 0x1256, 0x1257, 0x1270, 0x1271, 0x1272, 0x1273,
00696 0x1274, 0x1275, 0x12ab, 0x12ac, 0x12ad, 0x12ae, 0x12af, 0x12b0,
00697 0x12b1, 0x1315, 0x1316, 0x1317, 0x13bf, 0x13c0, 0x13c1, 0x13c2,
00698 0x13c3, 0x13c4, 0x13c5, 0x13c6, 0x13c7, 0x13c8, 0x13c9, 0x13ca,
00699 0x13cb, 0x13cc, 0x13cd, 0x1a06, 0x1a07, 0x1a28, 0x1a29, 0x1a2a,
00700 0x1a2b, 0x1a2c, 0x1a2d, 0x1a80, 0x1abb, 0x1abc, 0x1abd, 0x1ad8,
00701 0x1ad9, 0x0094, 0x0095, 0x0096, 0x0097, 0x00a0, 0x00a1, 0x00a2,
00702 0x00a3, 0x0831, 0x0832, 0x0833, 0x0834, 0x0835, 0x0836, 0x0837,
00703 0x0838, 0x0839, 0x083a, 0x083b, 0x0939, 0x093a, 0x093b, 0x093c,
00704 0x093d, 0x093e, 0x093f, 0x09a0, 0x09a1, 0x09a2, 0x09a3, 0x09a4,
00705 0x09a5, 0x11ac, 0x11ad, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b2,
00706 0x11b3, 0x11b4, 0x11b5, 0x11b6, 0x11b7, 0x11b8, 0x11b9, 0x11ba,
00707 0x11bb, 0x132f, 0x1454, 0x1455, 0x1456, 0x1457, 0x1458, 0x1459,
00708 0x145a, 0x145b, 0x145c, 0x145d, 0x145e, 0x145f, 0x1460, 0x1461,
00709 0x1462, 0x1463, 0x1464, 0x1465, 0x1466, 0x1467, 0x1468, 0x1469,
00710 0x146a, 0x146b, 0x17de, 0x17df, 0x17e0, 0x17e1, 0x17e2, 0x17e3,
00711 0x17e4, 0x17e5, 0x17e6, 0x17e7, 0x17e8, 0x17e9, 0x17ea, 0x17eb,
00712 0x17ec, 0x17ed, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545,
00713 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d,
00714 0x254e, 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555,
00715 0x2628, 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c,
00716 0x276d, 0x276e, 0x276f, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774,
00717 0x2775, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c,
00718 0x277d, 0x3503, 0x3544, 0x3545, 0x3546, 0x3547, 0x3560, 0x3561,
00719 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569,
00720 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571,
00721 0x3572, 0x3573, 0x3574, 0x3575, 0x03f0, 0x103d, 0x103e, 0x103f,
00722 0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047,
00723 0x1048, 0x1049, 0x104a, 0x104b, 0x104c, 0x104d, 0x104e, 0x104f,
00724 0x1050, 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057,
00725 0x1058, 0x1059, 0x105a, 0x105b, 0x105c, 0x105d, 0x105e, 0x105f,
00726 0x1060, 0x1061, 0x1270, 0x1271, 0x21b8, 0x21b9, 0x21ba, 0x21bb,
00727 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x21f0, 0x21f1, 0x21f2, 0x21f3,
00728 0x21f4, 0x21f5, 0x21f6, 0x21f7, 0x21f8, 0x21f9, 0x21fa, 0x21fb,
00729 0x21fc, 0x21fd, 0x21fe, 0x21ff, 0x2340, 0x2341, 0x2342, 0x2343,
00730 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b,
00731 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353,
00732 0x2354, 0x2355, 0x2356, 0x2357, 0x265c, 0x2f88, 0x2f89, 0x2f8a,
00733 0x2f8b, 0x2f8c, 0x2f8d, 0x2f8e, 0x2f8f, 0x2f90, 0x2f91, 0x2f92,
00734 0x2f93, 0x2f94, 0x2f95, 0x2f96, 0x2f97, 0x2f98, 0x2f99, 0x2f9a,
00735 0x2f9b, 0x2f9c, 0x2f9d, 0x2f9e, 0x2f9f, 0x2fa0, 0x2fa1, 0x2fa2,
00736 0x2fa3, 0x2fa4, 0x2fa5, 0x2fa6, 0x2fa7, 0x2fa8, 0x2fa9, 0x2faa,
00737 0x2fab, 0x2fac, 0x2fad, 0x2fae, 0x2faf, 0x2fb0, 0x2fb1, 0x2fb2,
00738 0x2fb3, 0x2fb4, 0x2fb5, 0x2fb6, 0x2fb7, 0x2fb8, 0x2fb9, 0x2fba,
00739 0x2fbb, 0x4c52, 0x4c53, 0x4e28, 0x4e29, 0x4e2a, 0x4e2b, 0x4e2c,
00740 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32, 0x4e33, 0x4e34,
00741 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a, 0x4e3b, 0x4e3c,
00742 0x4e3d, 0x4e3e, 0x4e3f, 0x4e80, 0x4e81, 0x4e82, 0x4e83, 0x4e84,
00743 0x4e85, 0x4e86, 0x4e87, 0x4e88, 0x4e89, 0x4e8a, 0x4e8b, 0x4e8c,
00744 0x4e8d, 0x4e8e, 0x4e8f, 0x4e90, 0x4e91, 0x4e92, 0x4e93, 0x4e94,
00745 0x4e95, 0x4e96, 0x4e97, 0x4e98, 0x4e99, 0x4e9a, 0x4e9b, 0x4e9c,
00746 0x4e9d, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea1, 0x4ea2, 0x4ea3, 0x4ea4,
00747 0x4ea5, 0x4ea6, 0x4ea7, 0x4ea8, 0x4ea9, 0x4eaa, 0x4eab, 0x4eac,
00748 0x4ead, 0x4eae, 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb2, 0x4eb3, 0x4eb4,
00749 0x4eb5, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9, 0x4eba, 0x4ebb, 0x4ebc,
00750 0x4ebd, 0x4ebe, 0x4ebf, 0x4ec0, 0x4ec1, 0x4ec2, 0x4ec3, 0x4ec4,
00751 0x4ec5, 0x4ec6, 0x4ec7, 0x4ec8, 0x4ec9, 0x4eca, 0x4ecb, 0x6a04,
00752 0x6a05, 0x07e2, 0x07e3, 0x07e4, 0x07e5, 0x07e6, 0x07e7, 0x07e8,
00753 0x07e9, 0x07ea, 0x07eb, 0x07ec, 0x07ed, 0x07ee, 0x07ef, 0x07f0,
00754 0x07f1, 0x07f2, 0x07f3, 0x07f4, 0x07f5, 0x07f6, 0x07f7, 0x07f8,
00755 0x07f9, 0x07fa, 0x07fb, 0x07fc, 0x07fd, 0x07fe, 0x07ff, 0x2000,
00756 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
00757 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 0x2010,
00758 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2018,
00759 0x2019, 0x201a, 0x201b, 0x201c, 0x201d, 0x201e, 0x201f, 0x2020,
00760 0x2021, 0x2022, 0x2023, 0x2024, 0x2025, 0x2026, 0x2027, 0x2028,
00761 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f, 0x2030,
00762 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, 0x2036, 0x2037, 0x2038,
00763 0x2039, 0x203a, 0x203b, 0x203c, 0x203d, 0x203e, 0x203f, 0x2040,
00764 0x2041, 0x2042, 0x2043, 0x2044, 0x2045, 0x2046, 0x2047, 0x2048,
00765 0x2049, 0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x204f, 0x2050,
00766 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058,
00767 0x2059, 0x205a, 0x205b, 0x205c, 0x205d, 0x205e, 0x205f, 0x2060,
00768 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068,
00769 0x2069, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 0x2070,
00770 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078,
00771 0x2079, 0x4cba, 0x4cbb, 0x5d88, 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c,
00772 0x5d8d, 0x5d8e, 0x5d8f, 0x5db0, 0x5db1, 0x5db2, 0x5db3, 0x5db4,
00773 0x5db5, 0x5db6, 0x5db7, 0x5db8, 0x5db9, 0x5dba, 0x5dbb, 0x5dbc,
00774 0x5dbd, 0x5dbe, 0x5dbf, 0x5e40, 0x5e41, 0x5e42, 0x5e43, 0x5e44,
00775 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4c,
00776 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5e54,
00777 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, 0x5e5b, 0x5e5c,
00778 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61, 0x5e62, 0x5e63, 0x5e64,
00779 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c,
00780 0x5e6d, 0x5e6e, 0x5e6f, 0x5e70, 0x5e71, 0x5e72, 0x5e73, 0x5e74,
00781 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79, 0x5e7a, 0x5e7b, 0x5e7c,
00782 0x5e7d, 0x5e7e, 0x5e7f, 0x5e80, 0x5e81, 0x5e82, 0x5e83, 0x5e84,
00783 0x5e85, 0x5e86, 0x5e87, 0x5e88, 0x5e89, 0x5e8a, 0x5e8b, 0x5e8c,
00784 0x5e8d, 0x5e8e, 0x5e8f, 0x5e90, 0x5e91, 0x5e92, 0x5e93, 0x5e94,
00785 0x5e95, 0x5e96, 0x5e97, 0x5e98, 0x5e99, 0x5e9a, 0x5e9b, 0x5e9c,
00786 0x5e9d, 0x5e9e, 0x5e9f, 0x5ea0, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4,
00787 0x5ea5, 0x5ea6, 0x5ea7, 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac,
00788 0x5ead, 0x5eae, 0x5eaf, 0x5eb0, 0x5eb1, 0x5eb2, 0x5eb3, 0x5eb4,
00789 0x5eb5, 0x5eb6, 0x5eb7, 0x5eb8, 0x5eb9, 0x5eba, 0x5ebb, 0x5ebc,
00790 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4,
00791 0x5ec5, 0x5ec6, 0x5ec7, 0x5ec8, 0x5ec9, 0x5eca, 0x5ecb, 0x5ecc,
00792 0x5ecd, 0x5ece, 0x5ecf, 0x5ed0, 0x5ed1, 0x5ed2, 0x5ed3, 0x5ed4,
00793 0x5ed5, 0x5ed6, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edb, 0x5edc,
00794 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4,
00795 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee8, 0x5ee9, 0x5eea, 0x5eeb, 0x5eec,
00796 0x5eed, 0x5eee, 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef4,
00797 0x5ef5, 0x5ef6, 0x5ef7, 0x5ef8, 0x5ef9, 0x5efa, 0x5efb, 0x5efc,
00798 0x5efd, 0x5efe, 0x5eff, 0x5f00, 0x5f01, 0x5f02, 0x5f03, 0x5f04,
00799 0x5f05, 0x5f06, 0x5f07, 0x5f08, 0x5f09, 0x5f0a, 0x5f0b, 0x5f0c,
00800 0x5f0d, 0x5f0e, 0x5f0f, 0x0000,
00801 };
00802
00803 static const uint8_t table0_mv_bits[1100] = {
00804 1, 4, 4, 4, 5, 5, 5, 6,
00805 6, 6, 7, 7, 7, 8, 8, 8,
00806 8, 8, 8, 8, 8, 8, 8, 8,
00807 8, 9, 9, 9, 9, 9, 9, 9,
00808 9, 9, 9, 9, 9, 10, 10, 10,
00809 10, 10, 10, 10, 10, 10, 10, 10,
00810 10, 10, 10, 10, 10, 10, 10, 10,
00811 10, 10, 10, 10, 11, 11, 11, 11,
00812 11, 11, 11, 11, 11, 11, 11, 11,
00813 11, 11, 11, 11, 11, 11, 11, 11,
00814 11, 11, 11, 11, 11, 11, 11, 11,
00815 12, 12, 12, 12, 12, 12, 12, 12,
00816 12, 12, 12, 12, 12, 12, 12, 12,
00817 12, 12, 12, 12, 12, 12, 12, 12,
00818 12, 12, 12, 12, 12, 12, 12, 12,
00819 12, 12, 12, 12, 12, 12, 12, 12,
00820 12, 12, 12, 12, 12, 12, 12, 12,
00821 12, 12, 12, 13, 13, 13, 13, 13,
00822 13, 13, 13, 13, 13, 13, 13, 13,
00823 13, 13, 13, 13, 13, 13, 13, 13,
00824 13, 13, 13, 13, 13, 13, 13, 13,
00825 13, 13, 13, 13, 13, 13, 13, 13,
00826 13, 13, 13, 13, 13, 13, 13, 13,
00827 13, 13, 13, 13, 13, 13, 13, 13,
00828 13, 13, 13, 13, 13, 13, 13, 13,
00829 13, 13, 14, 14, 14, 14, 14, 14,
00830 14, 14, 14, 14, 14, 14, 14, 14,
00831 14, 14, 14, 14, 14, 14, 14, 14,
00832 14, 14, 14, 14, 14, 14, 14, 14,
00833 14, 14, 14, 14, 14, 14, 14, 14,
00834 14, 14, 14, 14, 14, 14, 14, 14,
00835 14, 14, 14, 14, 14, 14, 14, 14,
00836 14, 14, 14, 14, 14, 14, 14, 14,
00837 14, 14, 14, 14, 14, 14, 14, 14,
00838 14, 14, 14, 14, 14, 14, 14, 14,
00839 14, 14, 14, 14, 14, 14, 14, 14,
00840 14, 14, 14, 14, 14, 14, 14, 14,
00841 14, 14, 14, 14, 14, 14, 14, 14,
00842 14, 15, 15, 15, 15, 15, 15, 15,
00843 15, 15, 15, 15, 15, 15, 15, 15,
00844 15, 15, 15, 15, 15, 15, 15, 15,
00845 15, 15, 15, 15, 15, 15, 15, 15,
00846 15, 15, 15, 15, 15, 15, 15, 15,
00847 15, 15, 15, 15, 15, 15, 15, 15,
00848 15, 15, 15, 15, 15, 15, 15, 15,
00849 15, 15, 15, 15, 15, 15, 15, 15,
00850 15, 15, 15, 15, 15, 15, 15, 15,
00851 15, 15, 15, 15, 15, 15, 15, 15,
00852 15, 15, 15, 15, 15, 15, 15, 15,
00853 15, 15, 15, 15, 15, 15, 15, 15,
00854 15, 15, 15, 15, 15, 15, 15, 15,
00855 15, 15, 15, 15, 15, 15, 15, 15,
00856 15, 15, 15, 15, 15, 15, 15, 15,
00857 15, 15, 15, 15, 15, 15, 15, 15,
00858 15, 15, 15, 15, 15, 15, 15, 15,
00859 15, 15, 15, 15, 15, 15, 15, 15,
00860 15, 15, 15, 15, 15, 15, 15, 15,
00861 15, 15, 15, 15, 15, 15, 15, 15,
00862 15, 15, 15, 15, 16, 16, 16, 16,
00863 16, 16, 16, 16, 16, 16, 16, 16,
00864 16, 16, 16, 16, 16, 16, 16, 16,
00865 16, 16, 16, 16, 16, 16, 16, 16,
00866 16, 16, 16, 16, 16, 16, 16, 16,
00867 16, 16, 16, 16, 16, 16, 16, 16,
00868 16, 16, 16, 16, 16, 16, 16, 16,
00869 16, 16, 16, 16, 16, 16, 16, 16,
00870 16, 16, 16, 16, 16, 16, 16, 16,
00871 16, 16, 16, 16, 16, 16, 16, 16,
00872 16, 16, 16, 16, 16, 16, 16, 16,
00873 16, 16, 16, 16, 16, 16, 16, 16,
00874 16, 16, 16, 16, 16, 16, 16, 16,
00875 16, 16, 16, 16, 16, 16, 16, 16,
00876 16, 16, 16, 16, 16, 16, 16, 16,
00877 16, 16, 16, 16, 16, 16, 16, 16,
00878 16, 16, 16, 16, 16, 16, 16, 16,
00879 16, 16, 16, 16, 16, 16, 16, 16,
00880 16, 16, 16, 16, 16, 16, 16, 16,
00881 16, 16, 16, 16, 16, 16, 16, 16,
00882 16, 16, 16, 16, 16, 16, 16, 16,
00883 16, 16, 16, 16, 16, 16, 16, 16,
00884 16, 16, 16, 16, 16, 16, 16, 16,
00885 16, 16, 16, 16, 16, 16, 16, 16,
00886 16, 16, 16, 16, 16, 16, 16, 16,
00887 16, 16, 16, 16, 16, 16, 16, 16,
00888 16, 16, 16, 16, 16, 16, 16, 16,
00889 16, 16, 16, 16, 16, 16, 16, 16,
00890 16, 16, 16, 16, 16, 16, 16, 16,
00891 16, 16, 16, 16, 16, 16, 16, 16,
00892 16, 16, 16, 16, 16, 16, 16, 16,
00893 16, 17, 17, 17, 17, 17, 17, 17,
00894 17, 17, 17, 17, 17, 17, 17, 17,
00895 17, 17, 17, 17, 17, 17, 17, 17,
00896 17, 17, 17, 17, 17, 17, 17, 17,
00897 17, 17, 17, 17, 17, 17, 17, 17,
00898 17, 17, 17, 17, 17, 17, 17, 17,
00899 17, 17, 17, 17, 17, 17, 17, 17,
00900 17, 17, 17, 17, 17, 17, 17, 17,
00901 17, 17, 17, 17, 17, 17, 17, 17,
00902 17, 17, 17, 17, 17, 17, 17, 17,
00903 17, 17, 17, 17, 17, 17, 17, 17,
00904 17, 17, 17, 17, 17, 17, 17, 17,
00905 17, 17, 17, 17, 17, 17, 17, 17,
00906 17, 17, 17, 17, 17, 17, 17, 17,
00907 17, 17, 17, 17, 17, 17, 17, 17,
00908 17, 17, 17, 17, 17, 17, 17, 17,
00909 17, 17, 17, 17, 17, 17, 17, 17,
00910 17, 17, 17, 17, 17, 17, 17, 17,
00911 17, 17, 17, 17, 17, 17, 17, 17,
00912 17, 17, 17, 17, 17, 17, 17, 17,
00913 17, 17, 17, 17, 17, 17, 17, 17,
00914 17, 17, 17, 17, 17, 17, 17, 17,
00915 17, 17, 17, 17, 17, 17, 17, 17,
00916 17, 17, 17, 17, 17, 17, 17, 17,
00917 17, 17, 17, 17, 17, 17, 17, 17,
00918 17, 17, 17, 17, 17, 17, 17, 17,
00919 17, 17, 17, 17, 17, 17, 17, 17,
00920 17, 17, 17, 17, 17, 17, 17, 17,
00921 17, 17, 17, 17, 17, 17, 17, 17,
00922 17, 17, 17, 17, 17, 17, 17, 17,
00923 17, 17, 17, 17, 17, 17, 17, 17,
00924 17, 17, 17, 17, 17, 17, 17, 17,
00925 17, 17, 17, 17, 17, 17, 17, 17,
00926 17, 17, 17, 17, 17, 17, 17, 17,
00927 17, 17, 17, 17, 17, 17, 17, 17,
00928 17, 17, 17, 17, 17, 17, 17, 17,
00929 17, 17, 17, 17, 17, 17, 17, 17,
00930 17, 17, 17, 17, 17, 17, 17, 17,
00931 17, 17, 17, 17, 17, 17, 17, 17,
00932 17, 17, 17, 17, 17, 17, 17, 17,
00933 17, 17, 17, 17, 17, 17, 17, 17,
00934 17, 17, 17, 17, 17, 17, 17, 17,
00935 17, 17, 17, 17, 17, 17, 17, 17,
00936 17, 17, 17, 17, 17, 17, 17, 17,
00937 17, 17, 17, 17, 17, 17, 17, 17,
00938 17, 17, 17, 17, 17, 17, 17, 17,
00939 17, 17, 17, 17, 17, 17, 17, 17,
00940 17, 17, 17, 17, 17, 17, 17, 17,
00941 17, 17, 17, 8,
00942 };
00943
00944 static const uint8_t table0_mvx[1099] = {
00945 32, 32, 31, 32, 33, 31, 33, 31,
00946 33, 32, 34, 32, 30, 32, 31, 34,
00947 35, 32, 34, 33, 29, 33, 30, 30,
00948 31, 31, 35, 29, 33, 35, 33, 34,
00949 31, 29, 30, 34, 30, 36, 28, 32,
00950 34, 37, 30, 27, 32, 25, 39, 32,
00951 34, 32, 35, 35, 35, 31, 35, 29,
00952 32, 29, 30, 29, 37, 27, 36, 38,
00953 37, 33, 32, 31, 29, 31, 28, 36,
00954 33, 30, 34, 33, 33, 28, 27, 25,
00955 31, 26, 39, 32, 32, 31, 33, 39,
00956 31, 38, 28, 36, 21, 23, 43, 36,
00957 34, 41, 30, 25, 28, 31, 30, 34,
00958 38, 35, 61, 34, 28, 30, 37, 37,
00959 35, 27, 36, 3, 59, 38, 37, 32,
00960 31, 29, 26, 33, 37, 33, 27, 27,
00961 35, 34, 34, 40, 42, 33, 32, 29,
00962 4, 5, 28, 24, 25, 35, 39, 38,
00963 32, 23, 27, 32, 30, 35, 26, 34,
00964 60, 36, 29, 22, 26, 41, 7, 30,
00965 38, 30, 36, 29, 30, 41, 26, 25,
00966 32, 34, 24, 39, 1, 25, 39, 32,
00967 28, 29, 32, 38, 26, 36, 28, 63,
00968 28, 39, 23, 21, 26, 35, 31, 35,
00969 57, 31, 29, 29, 28, 30, 27, 35,
00970 2, 38, 40, 34, 37, 29, 38, 43,
00971 26, 32, 33, 42, 24, 40, 28, 32,
00972 32, 32, 36, 32, 43, 25, 21, 31,
00973 30, 31, 41, 29, 33, 37, 26, 37,
00974 27, 59, 23, 33, 35, 31, 31, 37,
00975 38, 39, 32, 23, 32, 27, 37, 36,
00976 31, 40, 25, 27, 38, 31, 36, 28,
00977 31, 36, 25, 45, 3, 34, 38, 39,
00978 40, 38, 30, 32, 19, 24, 25, 26,
00979 45, 20, 24, 33, 33, 31, 41, 34,
00980 39, 47, 40, 58, 59, 41, 33, 3,
00981 17, 61, 42, 30, 26, 29, 36, 61,
00982 33, 37, 62, 28, 25, 38, 25, 38,
00983 17, 23, 34, 33, 21, 33, 49, 27,
00984 32, 23, 27, 22, 24, 22, 39, 43,
00985 27, 37, 6, 42, 47, 26, 30, 31,
00986 41, 39, 33, 22, 45, 36, 32, 45,
00987 19, 22, 30, 5, 5, 17, 29, 22,
00988 31, 31, 43, 37, 27, 32, 32, 32,
00989 33, 34, 43, 35, 29, 26, 22, 32,
00990 19, 32, 25, 31, 41, 49, 28, 34,
00991 28, 39, 34, 19, 37, 38, 29, 21,
00992 36, 42, 24, 48, 16, 28, 49, 22,
00993 34, 31, 38, 39, 44, 11, 35, 30,
00994 33, 33, 23, 28, 33, 46, 15, 13,
00995 24, 41, 24, 34, 34, 30, 26, 24,
00996 14, 60, 21, 29, 39, 23, 35, 37,
00997 63, 45, 33, 34, 47, 41, 22, 42,
00998 35, 35, 23, 32, 35, 43, 32, 7,
00999 31, 41, 20, 31, 16, 13, 63, 25,
01000 30, 32, 35, 30, 30, 31, 42, 47,
01001 39, 38, 40, 40, 51, 55, 56, 18,
01002 21, 39, 39, 33, 17, 41, 23, 24,
01003 43, 25, 31, 20, 19, 45, 1, 34,
01004 31, 22, 35, 15, 46, 46, 35, 31,
01005 28, 29, 29, 23, 41, 27, 14, 53,
01006 53, 27, 24, 32, 57, 32, 17, 42,
01007 37, 29, 33, 1, 25, 32, 32, 63,
01008 26, 40, 44, 36, 31, 39, 20, 20,
01009 44, 23, 33, 34, 35, 33, 33, 28,
01010 41, 23, 41, 41, 29, 25, 26, 49,
01011 29, 24, 37, 49, 50, 51, 51, 26,
01012 39, 25, 26, 15, 39, 18, 42, 17,
01013 4, 31, 32, 32, 60, 1, 42, 32,
01014 0, 12, 19, 35, 21, 41, 17, 26,
01015 20, 45, 46, 32, 37, 22, 47, 29,
01016 31, 27, 29, 30, 21, 33, 35, 18,
01017 25, 33, 50, 51, 42, 2, 15, 51,
01018 53, 33, 25, 29, 55, 37, 38, 33,
01019 38, 59, 38, 33, 39, 13, 32, 40,
01020 61, 61, 32, 9, 44, 3, 31, 29,
01021 25, 31, 27, 23, 9, 25, 9, 29,
01022 20, 30, 30, 42, 18, 28, 25, 28,
01023 28, 21, 29, 43, 29, 43, 26, 44,
01024 44, 21, 38, 21, 24, 45, 45, 35,
01025 39, 22, 35, 36, 34, 34, 45, 34,
01026 29, 31, 46, 25, 46, 16, 17, 31,
01027 20, 32, 47, 47, 47, 32, 49, 49,
01028 49, 31, 1, 27, 28, 39, 39, 21,
01029 36, 23, 51, 2, 40, 51, 32, 53,
01030 24, 30, 24, 30, 21, 40, 57, 57,
01031 31, 41, 58, 32, 12, 4, 32, 34,
01032 59, 31, 32, 13, 9, 35, 26, 35,
01033 37, 61, 37, 63, 26, 29, 41, 38,
01034 23, 20, 41, 26, 41, 42, 42, 42,
01035 26, 26, 26, 26, 1, 26, 37, 37,
01036 37, 23, 34, 42, 27, 43, 34, 27,
01037 31, 24, 33, 16, 3, 31, 24, 33,
01038 24, 4, 44, 44, 11, 44, 31, 13,
01039 13, 44, 45, 13, 25, 22, 38, 26,
01040 38, 38, 39, 32, 30, 39, 30, 22,
01041 32, 26, 30, 47, 47, 47, 19, 47,
01042 30, 31, 35, 8, 23, 47, 47, 27,
01043 35, 47, 31, 48, 35, 19, 36, 49,
01044 49, 33, 31, 39, 27, 39, 49, 49,
01045 50, 50, 50, 39, 31, 51, 51, 39,
01046 28, 33, 33, 21, 40, 31, 52, 53,
01047 40, 53, 9, 33, 31, 53, 54, 54,
01048 54, 55, 55, 34, 15, 56, 25, 56,
01049 21, 21, 40, 40, 25, 40, 58, 36,
01050 5, 41, 41, 12, 60, 41, 41, 37,
01051 22, 61, 18, 29, 29, 30, 61, 30,
01052 61, 62, 62, 30, 30, 63, 18, 13,
01053 30, 23, 19, 20, 20, 41, 13, 2,
01054 5, 5, 1, 5, 32, 6, 32, 35,
01055 20, 35, 27, 35, 35, 36, 36, 13,
01056 36, 41, 41, 41, 3, 30, 42, 27,
01057 20, 30, 27, 28, 30, 21, 33, 33,
01058 14, 24, 30, 42, 24, 33, 25, 42,
01059 43, 14, 43, 43, 14, 43, 7, 36,
01060 37, 37, 37, 37, 7, 14, 25, 43,
01061 43, 44, 15, 37, 7, 7, 3, 1,
01062 8, 15, 15, 8, 44, 44, 44, 45,
01063 45, 45, 45, 8, 8, 45, 21, 45,
01064 28, 28, 28, 21, 28, 28, 22, 37,
01065 46, 46, 37, 8, 29, 37, 29, 22,
01066 46, 37, 22, 29, 47, 47, 38, 38,
01067 16, 38, 38, 33, 38, 22, 47, 47,
01068 29, 25, 16, 0, 48, 1, 34, 48,
01069 48, 34, 25, 26, 26, 49, 49, 26,
01070 1, 49, 4, 26, 4, 49, 1, 9,
01071 49, 49, 49, 10, 49, 17, 38, 17,
01072 17, 50, 38, 50, 50, 22, 38, 51,
01073 38, 38, 51, 39, 39, 18, 22, 39,
01074 51, 22, 52, 52, 52, 39, 53, 53,
01075 10, 23, 18, 29, 10, 53, 29, 54,
01076 11, 54, 11, 11, 55, 1, 18, 55,
01077 55, 55, 55, 55, 55, 29, 34, 18,
01078 29, 56, 56, 34, 57, 34, 34, 29,
01079 29, 57, 57, 35, 35, 35, 35, 35,
01080 39, 35, 59, 59, 18, 59, 39, 30,
01081 18, 40, 60, 60, 61, 30, 18, 61,
01082 61, 19, 19,
01083 };
01084
01085 static const uint8_t table0_mvy[1099] = {
01086 32, 31, 32, 33, 32, 31, 31, 33,
01087 33, 34, 32, 30, 32, 35, 34, 31,
01088 32, 29, 33, 30, 32, 34, 33, 31,
01089 30, 35, 31, 31, 29, 33, 35, 30,
01090 29, 33, 34, 34, 30, 32, 32, 36,
01091 29, 32, 35, 32, 28, 32, 32, 27,
01092 35, 37, 34, 29, 30, 36, 35, 34,
01093 25, 30, 29, 35, 33, 31, 31, 32,
01094 31, 28, 39, 28, 29, 37, 31, 33,
01095 27, 36, 28, 36, 37, 33, 33, 31,
01096 27, 32, 31, 38, 26, 25, 25, 33,
01097 39, 31, 34, 30, 32, 32, 32, 34,
01098 36, 32, 28, 33, 30, 38, 37, 27,
01099 33, 28, 32, 37, 35, 38, 29, 34,
01100 27, 29, 29, 32, 32, 34, 35, 3,
01101 26, 36, 31, 38, 30, 26, 35, 34,
01102 37, 26, 25, 32, 32, 39, 23, 37,
01103 32, 32, 29, 32, 29, 36, 29, 30,
01104 41, 31, 30, 21, 39, 25, 34, 38,
01105 32, 35, 39, 32, 33, 33, 32, 27,
01106 29, 25, 28, 27, 26, 31, 30, 35,
01107 24, 24, 31, 34, 32, 30, 35, 40,
01108 28, 38, 5, 35, 29, 36, 36, 32,
01109 38, 30, 33, 31, 35, 26, 23, 38,
01110 32, 41, 28, 25, 37, 40, 37, 39,
01111 32, 36, 33, 39, 25, 26, 28, 31,
01112 28, 42, 23, 31, 33, 31, 39, 1,
01113 59, 22, 27, 4, 33, 34, 33, 24,
01114 41, 3, 35, 41, 41, 28, 36, 36,
01115 28, 33, 35, 21, 23, 21, 22, 37,
01116 27, 27, 43, 29, 60, 39, 27, 25,
01117 59, 34, 27, 27, 26, 40, 37, 27,
01118 61, 26, 39, 33, 31, 22, 37, 25,
01119 30, 25, 24, 61, 31, 34, 25, 38,
01120 32, 32, 30, 3, 61, 43, 29, 23,
01121 28, 32, 28, 32, 31, 34, 5, 33,
01122 32, 33, 33, 42, 37, 23, 38, 31,
01123 40, 26, 32, 26, 37, 38, 36, 24,
01124 29, 30, 20, 22, 29, 24, 32, 41,
01125 2, 34, 25, 33, 29, 31, 39, 35,
01126 36, 24, 32, 30, 33, 27, 44, 60,
01127 30, 36, 19, 34, 31, 24, 16, 35,
01128 32, 38, 21, 33, 31, 31, 21, 35,
01129 5, 17, 29, 38, 38, 18, 58, 19,
01130 43, 41, 30, 41, 43, 39, 29, 7,
01131 29, 17, 28, 19, 28, 31, 25, 19,
01132 40, 26, 21, 33, 39, 23, 40, 30,
01133 39, 34, 35, 32, 32, 24, 33, 30,
01134 40, 47, 39, 37, 32, 33, 24, 23,
01135 45, 47, 27, 23, 42, 32, 32, 33,
01136 36, 37, 37, 17, 18, 22, 40, 38,
01137 32, 31, 35, 24, 17, 25, 17, 23,
01138 33, 34, 51, 42, 31, 36, 36, 29,
01139 21, 22, 37, 44, 43, 25, 47, 33,
01140 45, 27, 31, 58, 31, 32, 31, 38,
01141 43, 20, 47, 45, 54, 1, 26, 34,
01142 38, 14, 22, 24, 33, 34, 32, 32,
01143 37, 21, 23, 49, 35, 23, 28, 39,
01144 39, 23, 55, 33, 30, 30, 63, 16,
01145 42, 28, 13, 33, 33, 35, 19, 46,
01146 43, 17, 19, 36, 39, 24, 31, 32,
01147 33, 26, 28, 62, 33, 63, 33, 39,
01148 19, 49, 17, 31, 43, 13, 15, 29,
01149 25, 35, 33, 23, 49, 41, 28, 29,
01150 34, 38, 7, 61, 11, 50, 13, 41,
01151 19, 47, 25, 26, 15, 42, 41, 29,
01152 45, 27, 17, 35, 32, 29, 32, 24,
01153 13, 26, 26, 31, 24, 33, 28, 30,
01154 31, 11, 45, 46, 33, 33, 35, 57,
01155 32, 32, 35, 45, 34, 11, 37, 42,
01156 39, 37, 31, 49, 21, 27, 29, 47,
01157 53, 40, 51, 16, 26, 1, 40, 30,
01158 41, 44, 34, 25, 27, 31, 35, 35,
01159 31, 15, 49, 1, 35, 40, 5, 58,
01160 21, 29, 22, 59, 45, 31, 9, 26,
01161 9, 29, 11, 32, 30, 3, 13, 20,
01162 18, 20, 11, 3, 29, 40, 31, 53,
01163 30, 17, 20, 37, 31, 42, 47, 47,
01164 54, 38, 9, 34, 13, 37, 21, 25,
01165 27, 43, 42, 45, 40, 25, 27, 46,
01166 22, 25, 53, 20, 2, 14, 39, 15,
01167 22, 44, 34, 21, 38, 33, 27, 48,
01168 34, 52, 35, 47, 49, 54, 2, 13,
01169 23, 52, 29, 45, 22, 49, 54, 21,
01170 40, 42, 31, 30, 29, 34, 0, 25,
01171 23, 51, 24, 59, 28, 38, 29, 31,
01172 2, 13, 31, 8, 31, 33, 12, 45,
01173 41, 7, 14, 30, 25, 18, 43, 20,
01174 43, 35, 44, 1, 49, 42, 42, 18,
01175 41, 38, 41, 44, 53, 11, 20, 25,
01176 45, 46, 47, 48, 39, 52, 46, 49,
01177 63, 55, 44, 38, 13, 13, 57, 22,
01178 51, 16, 12, 28, 35, 57, 25, 20,
01179 26, 28, 28, 29, 32, 31, 62, 34,
01180 35, 35, 19, 49, 48, 39, 40, 18,
01181 43, 46, 11, 6, 48, 19, 49, 41,
01182 10, 23, 58, 17, 21, 23, 34, 30,
01183 60, 0, 44, 34, 26, 37, 46, 43,
01184 49, 59, 4, 34, 59, 37, 22, 25,
01185 28, 46, 6, 40, 59, 42, 36, 61,
01186 28, 30, 31, 43, 10, 22, 23, 47,
01187 20, 52, 55, 36, 25, 16, 1, 11,
01188 27, 29, 5, 63, 18, 41, 31, 34,
01189 38, 1, 5, 13, 28, 31, 17, 38,
01190 39, 41, 36, 37, 22, 39, 33, 43,
01191 43, 15, 17, 49, 30, 21, 22, 20,
01192 10, 17, 25, 54, 57, 3, 34, 8,
01193 36, 25, 31, 14, 15, 19, 29, 25,
01194 18, 39, 53, 22, 27, 20, 29, 33,
01195 41, 42, 35, 62, 50, 29, 53, 50,
01196 35, 55, 42, 61, 63, 4, 7, 42,
01197 21, 46, 47, 49, 27, 46, 17, 55,
01198 41, 50, 63, 4, 56, 18, 8, 10,
01199 18, 51, 63, 36, 55, 18, 5, 55,
01200 9, 29, 17, 21, 30, 27, 1, 59,
01201 7, 11, 12, 15, 5, 42, 24, 41,
01202 43, 7, 27, 22, 25, 31, 30, 37,
01203 22, 39, 53, 29, 36, 37, 48, 0,
01204 5, 13, 17, 31, 32, 26, 46, 28,
01205 44, 45, 46, 53, 49, 51, 3, 41,
01206 3, 22, 42, 33, 5, 45, 7, 22,
01207 40, 53, 24, 14, 25, 27, 10, 12,
01208 34, 16, 17, 53, 20, 26, 39, 45,
01209 18, 45, 35, 33, 31, 49, 4, 39,
01210 42, 11, 51, 5, 13, 26, 27, 17,
01211 52, 30, 0, 22, 12, 34, 62, 36,
01212 38, 41, 47, 30, 63, 38, 41, 43,
01213 59, 33, 45, 37, 38, 40, 47, 24,
01214 48, 49, 30, 1, 10, 22, 49, 15,
01215 39, 59, 31, 32, 33, 18, 13, 15,
01216 31, 21, 27, 44, 42, 39, 46, 17,
01217 26, 32, 30, 31, 0, 30, 34, 9,
01218 12, 13, 25, 31, 32, 55, 43, 35,
01219 61, 33, 35, 46, 25, 47, 48, 62,
01220 63, 38, 61, 1, 2, 5, 7, 9,
01221 46, 10, 34, 35, 36, 55, 51, 7,
01222 40, 23, 34, 37, 5, 13, 42, 18,
01223 25, 27, 28,
01224 };
01225
01226
01227 static const uint16_t table1_mv_code[1100] = {
01228 0x0000, 0x0007, 0x0009, 0x000f, 0x000a, 0x0011, 0x001a, 0x001c,
01229 0x0011, 0x0031, 0x0025, 0x002d, 0x002f, 0x006f, 0x0075, 0x0041,
01230 0x004c, 0x004e, 0x005c, 0x0060, 0x0062, 0x0066, 0x0068, 0x0069,
01231 0x006b, 0x00a6, 0x00c1, 0x00cb, 0x00cc, 0x00ce, 0x00da, 0x00e8,
01232 0x00ee, 0x0087, 0x0090, 0x009e, 0x009f, 0x00ba, 0x00ca, 0x00d8,
01233 0x00db, 0x00df, 0x0104, 0x0109, 0x010c, 0x0143, 0x0145, 0x014a,
01234 0x0156, 0x015c, 0x01b3, 0x01d3, 0x01da, 0x0103, 0x0109, 0x010b,
01235 0x0122, 0x0127, 0x0134, 0x0161, 0x0164, 0x0176, 0x0184, 0x018d,
01236 0x018e, 0x018f, 0x0190, 0x0193, 0x0196, 0x019d, 0x019e, 0x019f,
01237 0x01a9, 0x01b2, 0x01b4, 0x01ba, 0x01bb, 0x01bc, 0x0201, 0x0202,
01238 0x0205, 0x0207, 0x020d, 0x0210, 0x0211, 0x0215, 0x021b, 0x021f,
01239 0x0281, 0x0285, 0x0290, 0x029c, 0x029d, 0x02a2, 0x02a7, 0x02a8,
01240 0x02aa, 0x02b0, 0x02b1, 0x02b4, 0x02bc, 0x02bf, 0x0320, 0x0326,
01241 0x0327, 0x0329, 0x032a, 0x0336, 0x0360, 0x0362, 0x0363, 0x0372,
01242 0x03b2, 0x03bc, 0x03bd, 0x0203, 0x0205, 0x021a, 0x0249, 0x024a,
01243 0x024c, 0x02c7, 0x02ca, 0x02ce, 0x02ef, 0x030d, 0x0322, 0x0325,
01244 0x0338, 0x0373, 0x037a, 0x0409, 0x0415, 0x0416, 0x0418, 0x0428,
01245 0x042d, 0x042f, 0x0434, 0x0508, 0x0509, 0x0510, 0x0511, 0x051c,
01246 0x051e, 0x0524, 0x0541, 0x0543, 0x0546, 0x0547, 0x054d, 0x0557,
01247 0x055f, 0x056a, 0x056c, 0x056d, 0x056f, 0x0576, 0x0577, 0x057a,
01248 0x057b, 0x057c, 0x057d, 0x0600, 0x0601, 0x0603, 0x0614, 0x0616,
01249 0x0617, 0x061c, 0x061f, 0x0642, 0x0648, 0x0649, 0x064a, 0x064b,
01250 0x0657, 0x0668, 0x0669, 0x066b, 0x066e, 0x067f, 0x06c2, 0x06c8,
01251 0x06cb, 0x06de, 0x06df, 0x06e2, 0x06e3, 0x06ef, 0x0748, 0x074b,
01252 0x076e, 0x076f, 0x077c, 0x0409, 0x0423, 0x0428, 0x0429, 0x042a,
01253 0x042b, 0x0432, 0x0433, 0x0496, 0x049a, 0x04d5, 0x04db, 0x0581,
01254 0x0582, 0x058b, 0x058c, 0x058d, 0x0598, 0x0599, 0x059a, 0x059e,
01255 0x05dd, 0x0619, 0x0632, 0x0633, 0x0648, 0x0672, 0x06a1, 0x06a2,
01256 0x06a3, 0x06af, 0x06e2, 0x06e3, 0x06e4, 0x0800, 0x0801, 0x0802,
01257 0x0803, 0x081a, 0x081b, 0x0829, 0x082f, 0x0832, 0x083e, 0x083f,
01258 0x0852, 0x0853, 0x0858, 0x086b, 0x0877, 0x0878, 0x0879, 0x087a,
01259 0x087b, 0x0a00, 0x0a01, 0x0a0d, 0x0a0e, 0x0a0f, 0x0a24, 0x0a37,
01260 0x0a3a, 0x0a3b, 0x0a3e, 0x0a46, 0x0a47, 0x0a4a, 0x0a4b, 0x0a5f,
01261 0x0a79, 0x0a7a, 0x0a7b, 0x0a80, 0x0a81, 0x0a84, 0x0a85, 0x0a99,
01262 0x0aa5, 0x0aa6, 0x0ab8, 0x0aba, 0x0abb, 0x0abc, 0x0abd, 0x0ac8,
01263 0x0ace, 0x0acf, 0x0ad7, 0x0adc, 0x0aeb, 0x0c04, 0x0c25, 0x0c26,
01264 0x0c27, 0x0c2a, 0x0c2b, 0x0c3a, 0x0c3b, 0x0c3c, 0x0c3d, 0x0ca0,
01265 0x0cad, 0x0cd4, 0x0cd5, 0x0cfc, 0x0cfd, 0x0d86, 0x0d92, 0x0d93,
01266 0x0d94, 0x0d95, 0x0db0, 0x0db8, 0x0db9, 0x0dba, 0x0dbb, 0x0dc0,
01267 0x0dc2, 0x0dc3, 0x0dda, 0x0ddb, 0x0ddc, 0x0ddd, 0x0e92, 0x0e93,
01268 0x0e94, 0x0e95, 0x0ec7, 0x0ecc, 0x0ece, 0x0ecf, 0x0ed8, 0x0ed9,
01269 0x0eda, 0x0edb, 0x0808, 0x0809, 0x080a, 0x0810, 0x0811, 0x0844,
01270 0x0845, 0x0861, 0x0862, 0x0863, 0x086c, 0x0922, 0x0923, 0x092e,
01271 0x092f, 0x0936, 0x0937, 0x09b1, 0x09b2, 0x09b3, 0x09b4, 0x09b5,
01272 0x09b8, 0x09b9, 0x09ba, 0x09bb, 0x09bc, 0x09bd, 0x09be, 0x09bf,
01273 0x0b00, 0x0b15, 0x0b2c, 0x0b2d, 0x0b2e, 0x0b2f, 0x0b36, 0x0bb9,
01274 0x0c28, 0x0c2a, 0x0c2b, 0x0c2c, 0x0c2d, 0x0c2e, 0x0c2f, 0x0c30,
01275 0x0c31, 0x0c38, 0x0c60, 0x0c61, 0x0c62, 0x0c63, 0x0c8d, 0x0c8e,
01276 0x0c8f, 0x0c92, 0x0cbe, 0x0cbf, 0x0ce6, 0x0ce7, 0x0d40, 0x0d41,
01277 0x0d57, 0x0d58, 0x0d59, 0x0d5a, 0x0d5b, 0x0d5c, 0x0d5d, 0x0d98,
01278 0x0d99, 0x0d9a, 0x0d9b, 0x0d9c, 0x0d9d, 0x0dad, 0x0dae, 0x0daf,
01279 0x0dc0, 0x0dc1, 0x0dc2, 0x0dc3, 0x0dca, 0x0dcb, 0x0dec, 0x0ded,
01280 0x0dee, 0x0def, 0x1018, 0x1022, 0x1023, 0x1030, 0x1031, 0x1032,
01281 0x1033, 0x1050, 0x1051, 0x105c, 0x1074, 0x1075, 0x1076, 0x1077,
01282 0x1078, 0x1079, 0x107a, 0x107b, 0x10b2, 0x10b3, 0x10b8, 0x10b9,
01283 0x10ba, 0x10bb, 0x10d4, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x1404,
01284 0x1405, 0x1406, 0x1407, 0x1410, 0x1411, 0x1412, 0x1413, 0x1414,
01285 0x1415, 0x1416, 0x1417, 0x1418, 0x1419, 0x1466, 0x1467, 0x1468,
01286 0x1469, 0x146a, 0x146b, 0x146c, 0x146d, 0x147e, 0x147f, 0x1488,
01287 0x1489, 0x148a, 0x148b, 0x14b6, 0x14b7, 0x14b8, 0x14b9, 0x14ba,
01288 0x14bb, 0x14bc, 0x14bd, 0x14f0, 0x14f1, 0x14f8, 0x14f9, 0x14fa,
01289 0x14fb, 0x14fc, 0x14fd, 0x14fe, 0x14ff, 0x152a, 0x152b, 0x152c,
01290 0x152d, 0x152e, 0x152f, 0x1530, 0x1531, 0x1548, 0x1549, 0x154e,
01291 0x154f, 0x1558, 0x1559, 0x155a, 0x155b, 0x1572, 0x159a, 0x159b,
01292 0x15ac, 0x15ba, 0x15bb, 0x15d0, 0x15d1, 0x15d2, 0x15d3, 0x15d4,
01293 0x15d5, 0x181d, 0x181e, 0x181f, 0x1840, 0x1841, 0x1842, 0x1843,
01294 0x1844, 0x1845, 0x1846, 0x1847, 0x1848, 0x1849, 0x1861, 0x1862,
01295 0x1863, 0x1864, 0x1865, 0x1866, 0x1867, 0x1868, 0x1869, 0x186a,
01296 0x186b, 0x186c, 0x186d, 0x186e, 0x191b, 0x191c, 0x191d, 0x191e,
01297 0x191f, 0x1942, 0x1943, 0x1944, 0x1945, 0x1946, 0x1947, 0x1958,
01298 0x1959, 0x19ed, 0x19ee, 0x19ef, 0x19f0, 0x19f1, 0x19f2, 0x19f3,
01299 0x19f4, 0x19f5, 0x19f6, 0x19f7, 0x1b0e, 0x1b0f, 0x1b62, 0x1b63,
01300 0x1b64, 0x1b65, 0x1b66, 0x1b67, 0x1b68, 0x1b69, 0x1b6a, 0x1b6b,
01301 0x1b6c, 0x1b6d, 0x1b6e, 0x1b6f, 0x1b82, 0x1ba8, 0x1ba9, 0x1baa,
01302 0x1bab, 0x1bac, 0x1bad, 0x1bae, 0x1baf, 0x1bb0, 0x1bb1, 0x1bb2,
01303 0x1bb3, 0x1d80, 0x1d81, 0x1d82, 0x1d83, 0x1d84, 0x1d85, 0x1d86,
01304 0x1d87, 0x1d88, 0x1d89, 0x1d8a, 0x1d8b, 0x1d8c, 0x1d8d, 0x1007,
01305 0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e, 0x100f,
01306 0x1016, 0x1080, 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086,
01307 0x1087, 0x10c0, 0x123a, 0x123b, 0x123c, 0x123d, 0x123e, 0x123f,
01308 0x1240, 0x1241, 0x1242, 0x1243, 0x1350, 0x1352, 0x1353, 0x1358,
01309 0x1359, 0x135a, 0x135b, 0x135c, 0x135d, 0x135e, 0x135f, 0x1360,
01310 0x1361, 0x1602, 0x1603, 0x160c, 0x160d, 0x160e, 0x160f, 0x1620,
01311 0x1621, 0x1622, 0x1623, 0x1624, 0x1625, 0x1626, 0x1627, 0x1628,
01312 0x1629, 0x166e, 0x166f, 0x167c, 0x167d, 0x167e, 0x167f, 0x1770,
01313 0x1771, 0x1852, 0x1853, 0x1872, 0x1873, 0x1874, 0x1875, 0x1876,
01314 0x1877, 0x1878, 0x1879, 0x187a, 0x187b, 0x187c, 0x187d, 0x187e,
01315 0x187f, 0x1918, 0x1919, 0x1926, 0x1927, 0x1970, 0x1971, 0x1972,
01316 0x1973, 0x1974, 0x1975, 0x1976, 0x1977, 0x1978, 0x1979, 0x197a,
01317 0x197b, 0x1aa0, 0x1aa1, 0x1aa2, 0x1aa3, 0x1aa4, 0x1aa5, 0x1aa6,
01318 0x1aa7, 0x1aa8, 0x1aa9, 0x1aaa, 0x1aab, 0x1aac, 0x1aad, 0x1b3c,
01319 0x1b3d, 0x1b3e, 0x1b3f, 0x1b50, 0x1b51, 0x1b52, 0x1b53, 0x1b54,
01320 0x1b55, 0x1b56, 0x1b57, 0x1b58, 0x1b59, 0x2032, 0x2033, 0x2034,
01321 0x2035, 0x2036, 0x2037, 0x2038, 0x2039, 0x203a, 0x203b, 0x203c,
01322 0x203d, 0x203e, 0x203f, 0x2040, 0x2041, 0x2042, 0x2043, 0x20ba,
01323 0x20bb, 0x20cc, 0x20cd, 0x20ce, 0x20cf, 0x20e0, 0x20e1, 0x20e2,
01324 0x20e3, 0x20e4, 0x20e5, 0x20e6, 0x20e7, 0x21aa, 0x21ab, 0x21c0,
01325 0x21c1, 0x21c2, 0x21c3, 0x21c4, 0x21c5, 0x21c6, 0x21c7, 0x21c8,
01326 0x21c9, 0x21ca, 0x21cb, 0x21cc, 0x21cd, 0x21ce, 0x21cf, 0x21d0,
01327 0x21d1, 0x21d2, 0x21d3, 0x2894, 0x2895, 0x2896, 0x2897, 0x2898,
01328 0x2899, 0x289a, 0x289b, 0x289c, 0x289d, 0x289e, 0x289f, 0x28c0,
01329 0x28c1, 0x28c2, 0x28c3, 0x28c4, 0x28c5, 0x28c6, 0x28c7, 0x28c8,
01330 0x28c9, 0x28ca, 0x28cb, 0x2930, 0x2931, 0x2932, 0x2933, 0x2934,
01331 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c,
01332 0x293d, 0x293e, 0x293f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964,
01333 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x2a40,
01334 0x2a41, 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48,
01335 0x2a49, 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50,
01336 0x2a51, 0x2a52, 0x2a53, 0x2ae6, 0x2ae7, 0x2b24, 0x2b25, 0x2b26,
01337 0x2b27, 0x2b28, 0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e,
01338 0x2b2f, 0x2b30, 0x2b31, 0x2b32, 0x2b33, 0x2b5a, 0x2b5b, 0x3014,
01339 0x3015, 0x3016, 0x3017, 0x3020, 0x3021, 0x3022, 0x3023, 0x3024,
01340 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c,
01341 0x302d, 0x302e, 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034,
01342 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x30c0, 0x30c1, 0x30de,
01343 0x30df, 0x3218, 0x3219, 0x321a, 0x321b, 0x321c, 0x321d, 0x321e,
01344 0x321f, 0x3220, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226,
01345 0x3227, 0x3228, 0x3229, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e,
01346 0x322f, 0x3230, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x3378,
01347 0x3379, 0x337a, 0x337b, 0x337c, 0x337d, 0x337e, 0x337f, 0x33c0,
01348 0x33c1, 0x33c2, 0x33c3, 0x33c4, 0x33c5, 0x33c6, 0x33c7, 0x33c8,
01349 0x33c9, 0x33ca, 0x33cb, 0x33cc, 0x33cd, 0x33ce, 0x33cf, 0x33d0,
01350 0x33d1, 0x33d2, 0x33d3, 0x33d4, 0x33d5, 0x33d6, 0x33d7, 0x33d8,
01351 0x33d9, 0x3706, 0x3707, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734,
01352 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c,
01353 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744,
01354 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c,
01355 0x374d, 0x374e, 0x374f, 0x3b34, 0x3b35, 0x3b36, 0x3b37, 0x3be8,
01356 0x3be9, 0x3bea, 0x3beb, 0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0,
01357 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4, 0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8,
01358 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd, 0x3bfe, 0x3bff, 0x2000,
01359 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
01360 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x202e, 0x202f, 0x2182,
01361 0x2183, 0x21b4, 0x21b5, 0x21b6, 0x21b7, 0x21b8, 0x21b9, 0x21ba,
01362 0x21bb, 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x2460, 0x2461, 0x2462,
01363 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a,
01364 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472,
01365 0x2473, 0x26a2, 0x26a3, 0x000b,
01366 };
01367
01368 static const uint8_t table1_mv_bits[1100] = {
01369 2, 4, 4, 4, 5, 5, 5, 5,
01370 6, 6, 7, 7, 7, 7, 7, 8,
01371 8, 8, 8, 8, 8, 8, 8, 8,
01372 8, 8, 8, 8, 8, 8, 8, 8,
01373 8, 9, 9, 9, 9, 9, 9, 9,
01374 9, 9, 9, 9, 9, 9, 9, 9,
01375 9, 9, 9, 9, 9, 10, 10, 10,
01376 10, 10, 10, 10, 10, 10, 10, 10,
01377 10, 10, 10, 10, 10, 10, 10, 10,
01378 10, 10, 10, 10, 10, 10, 10, 10,
01379 10, 10, 10, 10, 10, 10, 10, 10,
01380 10, 10, 10, 10, 10, 10, 10, 10,
01381 10, 10, 10, 10, 10, 10, 10, 10,
01382 10, 10, 10, 10, 10, 10, 10, 10,
01383 10, 10, 10, 11, 11, 11, 11, 11,
01384 11, 11, 11, 11, 11, 11, 11, 11,
01385 11, 11, 11, 11, 11, 11, 11, 11,
01386 11, 11, 11, 11, 11, 11, 11, 11,
01387 11, 11, 11, 11, 11, 11, 11, 11,
01388 11, 11, 11, 11, 11, 11, 11, 11,
01389 11, 11, 11, 11, 11, 11, 11, 11,
01390 11, 11, 11, 11, 11, 11, 11, 11,
01391 11, 11, 11, 11, 11, 11, 11, 11,
01392 11, 11, 11, 11, 11, 11, 11, 11,
01393 11, 11, 11, 12, 12, 12, 12, 12,
01394 12, 12, 12, 12, 12, 12, 12, 12,
01395 12, 12, 12, 12, 12, 12, 12, 12,
01396 12, 12, 12, 12, 12, 12, 12, 12,
01397 12, 12, 12, 12, 12, 12, 12, 12,
01398 12, 12, 12, 12, 12, 12, 12, 12,
01399 12, 12, 12, 12, 12, 12, 12, 12,
01400 12, 12, 12, 12, 12, 12, 12, 12,
01401 12, 12, 12, 12, 12, 12, 12, 12,
01402 12, 12, 12, 12, 12, 12, 12, 12,
01403 12, 12, 12, 12, 12, 12, 12, 12,
01404 12, 12, 12, 12, 12, 12, 12, 12,
01405 12, 12, 12, 12, 12, 12, 12, 12,
01406 12, 12, 12, 12, 12, 12, 12, 12,
01407 12, 12, 12, 12, 12, 12, 12, 12,
01408 12, 12, 12, 12, 12, 12, 12, 12,
01409 12, 12, 12, 12, 12, 12, 12, 12,
01410 12, 12, 13, 13, 13, 13, 13, 13,
01411 13, 13, 13, 13, 13, 13, 13, 13,
01412 13, 13, 13, 13, 13, 13, 13, 13,
01413 13, 13, 13, 13, 13, 13, 13, 13,
01414 13, 13, 13, 13, 13, 13, 13, 13,
01415 13, 13, 13, 13, 13, 13, 13, 13,
01416 13, 13, 13, 13, 13, 13, 13, 13,
01417 13, 13, 13, 13, 13, 13, 13, 13,
01418 13, 13, 13, 13, 13, 13, 13, 13,
01419 13, 13, 13, 13, 13, 13, 13, 13,
01420 13, 13, 13, 13, 13, 13, 13, 13,
01421 13, 13, 13, 13, 13, 13, 13, 13,
01422 13, 13, 13, 13, 13, 13, 13, 13,
01423 13, 13, 13, 13, 13, 13, 13, 13,
01424 13, 13, 13, 13, 13, 13, 13, 13,
01425 13, 13, 13, 13, 13, 13, 13, 13,
01426 13, 13, 13, 13, 13, 13, 13, 13,
01427 13, 13, 13, 13, 13, 13, 13, 13,
01428 13, 13, 13, 13, 13, 13, 13, 13,
01429 13, 13, 13, 13, 13, 13, 13, 13,
01430 13, 13, 13, 13, 13, 13, 13, 13,
01431 13, 13, 13, 13, 13, 13, 13, 13,
01432 13, 13, 13, 13, 13, 13, 13, 13,
01433 13, 13, 13, 13, 13, 13, 13, 13,
01434 13, 13, 13, 13, 13, 13, 13, 13,
01435 13, 13, 13, 13, 13, 13, 13, 13,
01436 13, 13, 13, 13, 13, 13, 13, 13,
01437 13, 13, 13, 13, 13, 13, 13, 13,
01438 13, 13, 13, 13, 13, 13, 13, 13,
01439 13, 13, 13, 13, 13, 13, 13, 13,
01440 13, 13, 13, 13, 13, 13, 13, 13,
01441 13, 13, 13, 13, 13, 13, 13, 13,
01442 13, 13, 13, 13, 13, 13, 13, 13,
01443 13, 13, 13, 13, 13, 13, 13, 13,
01444 13, 13, 13, 13, 13, 13, 13, 13,
01445 13, 13, 13, 13, 13, 13, 13, 14,
01446 14, 14, 14, 14, 14, 14, 14, 14,
01447 14, 14, 14, 14, 14, 14, 14, 14,
01448 14, 14, 14, 14, 14, 14, 14, 14,
01449 14, 14, 14, 14, 14, 14, 14, 14,
01450 14, 14, 14, 14, 14, 14, 14, 14,
01451 14, 14, 14, 14, 14, 14, 14, 14,
01452 14, 14, 14, 14, 14, 14, 14, 14,
01453 14, 14, 14, 14, 14, 14, 14, 14,
01454 14, 14, 14, 14, 14, 14, 14, 14,
01455 14, 14, 14, 14, 14, 14, 14, 14,
01456 14, 14, 14, 14, 14, 14, 14, 14,
01457 14, 14, 14, 14, 14, 14, 14, 14,
01458 14, 14, 14, 14, 14, 14, 14, 14,
01459 14, 14, 14, 14, 14, 14, 14, 14,
01460 14, 14, 14, 14, 14, 14, 14, 14,
01461 14, 14, 14, 14, 14, 14, 14, 14,
01462 14, 14, 14, 14, 14, 14, 14, 14,
01463 14, 14, 14, 14, 14, 14, 14, 14,
01464 14, 14, 14, 14, 14, 14, 14, 14,
01465 14, 14, 14, 14, 14, 14, 14, 14,
01466 14, 14, 14, 14, 14, 14, 14, 14,
01467 14, 14, 14, 14, 14, 14, 14, 14,
01468 14, 14, 14, 14, 14, 14, 14, 14,
01469 14, 14, 14, 14, 14, 14, 14, 14,
01470 14, 14, 14, 14, 14, 14, 14, 14,
01471 14, 14, 14, 14, 14, 14, 14, 14,
01472 14, 14, 14, 14, 14, 14, 14, 14,
01473 14, 14, 14, 14, 14, 14, 14, 14,
01474 14, 14, 14, 14, 14, 14, 14, 14,
01475 14, 14, 14, 14, 14, 14, 14, 14,
01476 14, 14, 14, 14, 14, 14, 14, 14,
01477 14, 14, 14, 14, 14, 14, 14, 14,
01478 14, 14, 14, 14, 14, 14, 14, 14,
01479 14, 14, 14, 14, 14, 14, 14, 14,
01480 14, 14, 14, 14, 14, 14, 14, 14,
01481 14, 14, 14, 14, 14, 14, 14, 14,
01482 14, 14, 14, 14, 14, 14, 14, 14,
01483 14, 14, 14, 14, 14, 14, 14, 14,
01484 14, 14, 14, 14, 14, 14, 14, 14,
01485 14, 14, 14, 14, 14, 14, 14, 14,
01486 14, 14, 14, 14, 14, 14, 14, 14,
01487 14, 14, 14, 14, 14, 14, 14, 14,
01488 14, 14, 14, 14, 14, 14, 14, 14,
01489 14, 14, 14, 14, 14, 14, 14, 14,
01490 14, 14, 14, 14, 14, 14, 14, 14,
01491 14, 14, 14, 14, 14, 14, 14, 14,
01492 14, 14, 14, 14, 14, 14, 14, 14,
01493 14, 14, 14, 14, 14, 14, 14, 14,
01494 14, 14, 14, 14, 14, 14, 14, 14,
01495 14, 14, 14, 14, 14, 14, 14, 14,
01496 14, 14, 14, 14, 14, 14, 14, 14,
01497 14, 14, 14, 14, 14, 14, 14, 14,
01498 14, 14, 14, 14, 14, 14, 14, 14,
01499 14, 14, 14, 14, 14, 14, 14, 15,
01500 15, 15, 15, 15, 15, 15, 15, 15,
01501 15, 15, 15, 15, 15, 15, 15, 15,
01502 15, 15, 15, 15, 15, 15, 15, 15,
01503 15, 15, 15, 15, 15, 15, 15, 15,
01504 15, 15, 15, 15, 15, 15, 15, 15,
01505 15, 15, 15, 15, 15, 15, 15, 15,
01506 15, 15, 15, 4,
01507 };
01508
01509 static const uint8_t table1_mvx[1099] = {
01510 32, 31, 32, 31, 33, 32, 33, 33,
01511 31, 34, 30, 32, 32, 34, 35, 32,
01512 34, 33, 29, 30, 30, 32, 31, 31,
01513 33, 35, 35, 33, 31, 29, 29, 33,
01514 34, 30, 31, 28, 36, 30, 34, 32,
01515 32, 37, 32, 32, 25, 27, 39, 32,
01516 32, 32, 38, 35, 36, 32, 37, 61,
01517 26, 32, 34, 35, 3, 35, 27, 28,
01518 29, 34, 28, 37, 31, 36, 32, 27,
01519 31, 30, 29, 39, 33, 29, 33, 35,
01520 25, 25, 29, 33, 31, 31, 31, 33,
01521 32, 30, 32, 32, 41, 39, 33, 36,
01522 32, 28, 34, 36, 38, 24, 60, 31,
01523 23, 28, 32, 33, 59, 32, 40, 30,
01524 5, 34, 32, 38, 32, 30, 43, 4,
01525 32, 32, 42, 31, 31, 32, 26, 38,
01526 26, 22, 21, 37, 61, 63, 37, 31,
01527 32, 33, 2, 1, 23, 33, 41, 27,
01528 35, 30, 38, 23, 33, 3, 28, 34,
01529 34, 27, 41, 29, 39, 35, 36, 29,
01530 32, 27, 30, 32, 24, 61, 37, 26,
01531 59, 25, 35, 27, 36, 37, 30, 31,
01532 34, 40, 3, 28, 34, 39, 32, 31,
01533 32, 30, 24, 28, 35, 36, 26, 32,
01534 31, 33, 29, 33, 39, 25, 30, 24,
01535 35, 59, 29, 34, 25, 30, 21, 35,
01536 43, 40, 32, 29, 5, 28, 31, 62,
01537 33, 33, 25, 31, 21, 31, 43, 31,
01538 34, 33, 20, 40, 39, 31, 31, 57,
01539 38, 32, 42, 33, 32, 31, 32, 29,
01540 30, 44, 5, 31, 22, 34, 36, 17,
01541 38, 58, 38, 35, 32, 60, 35, 24,
01542 32, 38, 16, 45, 42, 32, 31, 29,
01543 4, 30, 17, 40, 46, 48, 63, 32,
01544 42, 19, 41, 22, 28, 36, 45, 33,
01545 33, 32, 29, 7, 41, 42, 18, 33,
01546 33, 32, 22, 37, 1, 26, 22, 23,
01547 49, 28, 26, 27, 32, 33, 27, 23,
01548 28, 36, 15, 6, 34, 27, 31, 26,
01549 23, 2, 33, 32, 34, 41, 28, 32,
01550 41, 0, 36, 38, 34, 31, 47, 32,
01551 17, 31, 39, 33, 37, 51, 30, 47,
01552 32, 50, 32, 19, 63, 30, 25, 27,
01553 33, 62, 24, 31, 27, 30, 37, 31,
01554 45, 32, 39, 20, 46, 47, 35, 19,
01555 34, 1, 49, 21, 21, 14, 51, 26,
01556 23, 31, 36, 35, 58, 29, 29, 21,
01557 20, 42, 13, 28, 12, 40, 31, 33,
01558 39, 60, 32, 44, 33, 31, 28, 37,
01559 29, 32, 30, 49, 43, 28, 39, 25,
01560 32, 48, 2, 15, 20, 25, 31, 28,
01561 21, 24, 25, 15, 31, 17, 37, 43,
01562 18, 32, 33, 24, 33, 36, 13, 33,
01563 31, 39, 11, 31, 33, 32, 39, 37,
01564 32, 32, 29, 17, 44, 46, 36, 35,
01565 26, 37, 58, 32, 34, 38, 8, 38,
01566 38, 22, 29, 25, 16, 35, 32, 35,
01567 33, 43, 18, 46, 38, 50, 33, 18,
01568 53, 60, 13, 32, 36, 33, 51, 36,
01569 43, 45, 27, 42, 29, 24, 30, 25,
01570 31, 52, 31, 35, 38, 9, 22, 34,
01571 4, 17, 28, 55, 42, 25, 17, 20,
01572 47, 34, 33, 16, 40, 25, 16, 30,
01573 53, 29, 10, 11, 14, 26, 33, 4,
01574 35, 44, 26, 16, 31, 26, 34, 38,
01575 29, 31, 30, 24, 22, 61, 32, 9,
01576 45, 34, 31, 19, 9, 31, 46, 31,
01577 35, 54, 29, 57, 30, 50, 3, 31,
01578 63, 34, 47, 41, 51, 18, 31, 14,
01579 37, 38, 31, 24, 32, 31, 50, 33,
01580 31, 54, 27, 9, 33, 23, 19, 32,
01581 29, 29, 33, 28, 47, 49, 30, 47,
01582 33, 27, 25, 54, 44, 45, 50, 58,
01583 51, 48, 33, 59, 33, 34, 57, 13,
01584 26, 33, 13, 48, 30, 11, 7, 56,
01585 34, 55, 26, 0, 26, 35, 1, 51,
01586 33, 53, 31, 45, 12, 29, 29, 51,
01587 31, 48, 2, 6, 34, 30, 28, 33,
01588 60, 40, 27, 46, 31, 9, 35, 29,
01589 31, 39, 55, 46, 19, 37, 62, 34,
01590 30, 16, 19, 49, 41, 41, 39, 37,
01591 14, 5, 13, 35, 55, 30, 40, 40,
01592 42, 8, 20, 25, 45, 35, 33, 36,
01593 54, 38, 27, 37, 62, 40, 15, 59,
01594 49, 31, 29, 34, 34, 39, 24, 29,
01595 25, 29, 21, 29, 10, 61, 33, 49,
01596 35, 34, 3, 38, 39, 29, 7, 41,
01597 1, 35, 4, 23, 15, 23, 11, 37,
01598 28, 35, 30, 30, 24, 1, 43, 56,
01599 8, 34, 42, 24, 45, 30, 20, 23,
01600 8, 38, 22, 33, 17, 52, 34, 22,
01601 53, 43, 44, 1, 27, 31, 41, 43,
01602 41, 30, 31, 36, 30, 5, 55, 31,
01603 33, 30, 40, 23, 15, 29, 34, 34,
01604 59, 34, 30, 11, 13, 38, 5, 0,
01605 30, 42, 5, 30, 29, 34, 10, 44,
01606 30, 63, 35, 12, 3, 26, 15, 17,
01607 25, 34, 43, 39, 34, 56, 29, 23,
01608 30, 12, 30, 10, 35, 9, 24, 58,
01609 10, 12, 54, 33, 37, 20, 41, 35,
01610 29, 18, 61, 30, 40, 24, 39, 53,
01611 62, 26, 29, 33, 34, 53, 49, 21,
01612 27, 11, 63, 20, 26, 23, 7, 13,
01613 6, 47, 29, 30, 9, 51, 22, 34,
01614 21, 25, 33, 56, 57, 30, 38, 51,
01615 51, 38, 63, 28, 40, 35, 33, 18,
01616 33, 33, 24, 58, 58, 34, 49, 29,
01617 43, 4, 1, 4, 42, 35, 35, 30,
01618 17, 5, 56, 61, 25, 37, 36, 55,
01619 28, 35, 29, 50, 48, 52, 2, 42,
01620 34, 40, 46, 46, 43, 35, 29, 48,
01621 20, 29, 31, 41, 7, 30, 35, 19,
01622 14, 21, 8, 39, 39, 40, 46, 55,
01623 34, 6, 30, 34, 37, 25, 37, 33,
01624 22, 44, 52, 17, 35, 29, 36, 35,
01625 40, 37, 28, 30, 50, 14, 28, 55,
01626 6, 23, 19, 14, 30, 3, 30, 28,
01627 28, 61, 61, 47, 45, 48, 40, 40,
01628 34, 34, 25, 30, 29, 35, 4, 26,
01629 53, 50, 26, 41, 27, 59, 27, 38,
01630 39, 3, 50, 43, 47, 23, 33, 55,
01631 35, 21, 23, 35, 61, 33, 46, 52,
01632 35, 34, 24, 30, 43, 16, 37, 21,
01633 2, 24, 45, 34, 30, 55, 55, 1,
01634 29, 29, 26, 28, 25, 31, 36, 22,
01635 17, 30, 52, 2, 44, 44, 57, 26,
01636 62, 41, 39, 57, 26, 46, 49, 11,
01637 16, 19, 5, 59, 38, 39, 58, 38,
01638 25, 49, 50, 22, 28, 59, 9, 59,
01639 7, 28, 55, 17, 4, 35, 50, 21,
01640 29, 44, 47, 18, 24, 19, 25, 42,
01641 35, 3, 51, 35, 16, 35, 30, 63,
01642 57, 39, 39, 25, 35, 38, 9, 16,
01643 36, 45, 31, 60, 14, 34, 42, 24,
01644 0, 37, 18, 61, 57, 37, 28, 53,
01645 20, 46, 14, 47, 38, 38, 38, 9,
01646 34, 39, 43, 17, 39, 59, 5, 27,
01647 0, 12, 27,
01648 };
01649
01650 static const uint8_t table1_mvy[1099] = {
01651 32, 32, 31, 31, 32, 33, 31, 33,
01652 33, 32, 32, 30, 34, 31, 32, 29,
01653 33, 30, 32, 33, 31, 35, 34, 30,
01654 34, 31, 33, 29, 29, 31, 33, 35,
01655 30, 30, 35, 32, 32, 34, 34, 28,
01656 25, 32, 36, 27, 32, 32, 32, 37,
01657 39, 3, 32, 30, 31, 26, 31, 32,
01658 32, 38, 29, 29, 32, 34, 31, 31,
01659 34, 35, 33, 33, 28, 33, 1, 33,
01660 27, 29, 30, 31, 28, 29, 37, 35,
01661 31, 33, 35, 27, 36, 37, 25, 25,
01662 61, 35, 4, 5, 32, 33, 36, 30,
01663 23, 30, 28, 34, 31, 32, 32, 39,
01664 32, 34, 21, 39, 32, 59, 32, 28,
01665 32, 36, 60, 33, 24, 36, 32, 32,
01666 41, 2, 32, 38, 26, 22, 33, 30,
01667 31, 32, 32, 30, 31, 32, 29, 3,
01668 40, 38, 32, 32, 33, 26, 31, 34,
01669 28, 38, 34, 31, 3, 31, 35, 38,
01670 27, 35, 33, 28, 29, 27, 29, 27,
01671 43, 29, 37, 63, 31, 33, 34, 30,
01672 31, 30, 37, 30, 35, 35, 26, 41,
01673 37, 31, 33, 28, 26, 30, 42, 24,
01674 7, 27, 33, 29, 36, 28, 34, 57,
01675 23, 41, 36, 23, 35, 34, 25, 30,
01676 25, 33, 25, 25, 29, 24, 33, 39,
01677 33, 33, 0, 37, 31, 36, 21, 32,
01678 61, 24, 35, 61, 31, 5, 31, 59,
01679 39, 21, 32, 30, 34, 22, 40, 32,
01680 29, 16, 31, 5, 62, 2, 20, 39,
01681 39, 32, 33, 1, 31, 24, 36, 32,
01682 36, 32, 28, 26, 6, 31, 38, 34,
01683 58, 35, 32, 33, 33, 17, 43, 26,
01684 31, 40, 31, 34, 32, 32, 31, 19,
01685 30, 32, 29, 33, 38, 38, 32, 59,
01686 40, 18, 38, 32, 35, 34, 32, 17,
01687 1, 15, 30, 28, 31, 28, 34, 29,
01688 32, 27, 35, 27, 49, 22, 37, 34,
01689 37, 26, 32, 32, 22, 28, 45, 29,
01690 30, 31, 43, 46, 41, 30, 26, 13,
01691 34, 32, 27, 38, 42, 42, 33, 47,
01692 33, 60, 27, 42, 25, 32, 22, 32,
01693 48, 32, 45, 33, 33, 41, 27, 25,
01694 19, 31, 35, 19, 36, 42, 27, 17,
01695 31, 44, 28, 33, 33, 31, 23, 31,
01696 40, 33, 31, 34, 30, 32, 33, 36,
01697 35, 47, 37, 41, 31, 23, 41, 29,
01698 30, 35, 32, 25, 32, 28, 58, 2,
01699 37, 33, 14, 33, 49, 20, 39, 36,
01700 21, 9, 23, 33, 35, 24, 39, 37,
01701 11, 33, 30, 31, 31, 28, 51, 40,
01702 35, 29, 25, 33, 46, 35, 37, 30,
01703 30, 8, 63, 28, 15, 40, 33, 45,
01704 49, 25, 32, 4, 47, 51, 36, 39,
01705 53, 10, 24, 29, 30, 31, 25, 40,
01706 38, 38, 33, 56, 23, 27, 32, 37,
01707 26, 29, 43, 36, 33, 24, 55, 43,
01708 9, 29, 34, 34, 24, 33, 18, 33,
01709 33, 30, 31, 50, 24, 60, 30, 39,
01710 34, 30, 39, 28, 22, 38, 2, 26,
01711 63, 32, 57, 21, 39, 33, 28, 18,
01712 30, 34, 22, 33, 29, 41, 30, 34,
01713 35, 21, 13, 34, 35, 39, 30, 46,
01714 32, 42, 32, 31, 33, 26, 11, 33,
01715 22, 31, 25, 31, 53, 27, 43, 25,
01716 40, 50, 21, 36, 38, 30, 12, 31,
01717 34, 20, 15, 29, 32, 62, 30, 13,
01718 17, 32, 19, 31, 20, 31, 30, 7,
01719 1, 17, 34, 37, 31, 31, 44, 34,
01720 26, 40, 16, 37, 52, 48, 30, 20,
01721 18, 33, 38, 29, 7, 25, 30, 54,
01722 45, 47, 46, 41, 29, 29, 16, 30,
01723 14, 26, 38, 34, 34, 29, 34, 30,
01724 29, 30, 57, 30, 4, 46, 33, 29,
01725 39, 44, 30, 31, 50, 33, 31, 32,
01726 19, 32, 40, 31, 37, 47, 1, 35,
01727 16, 31, 0, 35, 33, 1, 17, 34,
01728 9, 34, 33, 31, 49, 43, 42, 51,
01729 34, 29, 23, 29, 14, 30, 45, 49,
01730 11, 24, 31, 28, 35, 41, 30, 44,
01731 18, 29, 34, 35, 36, 25, 26, 21,
01732 31, 30, 34, 19, 34, 44, 36, 38,
01733 25, 31, 28, 23, 37, 3, 55, 41,
01734 30, 22, 41, 24, 33, 26, 35, 35,
01735 30, 55, 51, 47, 48, 38, 24, 15,
01736 21, 50, 25, 46, 30, 29, 10, 34,
01737 42, 45, 29, 42, 22, 3, 33, 27,
01738 34, 1, 34, 28, 34, 36, 35, 23,
01739 23, 13, 58, 3, 26, 63, 25, 31,
01740 34, 61, 38, 39, 25, 61, 29, 37,
01741 30, 41, 26, 48, 28, 33, 50, 35,
01742 30, 37, 29, 29, 40, 6, 39, 28,
01743 28, 19, 8, 22, 45, 34, 35, 10,
01744 58, 17, 37, 39, 30, 18, 54, 14,
01745 29, 16, 59, 30, 35, 23, 35, 30,
01746 47, 36, 29, 55, 20, 12, 31, 35,
01747 14, 29, 18, 34, 34, 24, 29, 26,
01748 22, 2, 27, 23, 8, 30, 55, 38,
01749 60, 31, 4, 34, 49, 34, 27, 34,
01750 33, 30, 31, 54, 42, 35, 38, 46,
01751 44, 26, 27, 9, 39, 25, 21, 29,
01752 28, 42, 13, 0, 5, 34, 37, 28,
01753 24, 29, 63, 26, 22, 27, 29, 25,
01754 33, 25, 61, 0, 35, 25, 36, 15,
01755 27, 40, 53, 33, 3, 10, 16, 37,
01756 38, 18, 30, 46, 27, 9, 6, 29,
01757 62, 8, 42, 28, 29, 3, 25, 16,
01758 26, 29, 35, 28, 27, 51, 61, 48,
01759 37, 9, 34, 7, 49, 45, 20, 29,
01760 21, 5, 5, 29, 28, 34, 29, 24,
01761 10, 24, 35, 36, 38, 55, 11, 36,
01762 38, 53, 54, 26, 30, 49, 20, 27,
01763 30, 39, 33, 41, 49, 22, 38, 38,
01764 4, 30, 8, 9, 3, 24, 22, 50,
01765 37, 36, 31, 27, 2, 9, 42, 63,
01766 25, 19, 44, 1, 28, 28, 48, 30,
01767 34, 41, 41, 38, 12, 27, 15, 0,
01768 16, 34, 35, 38, 28, 29, 40, 42,
01769 51, 52, 45, 54, 59, 59, 42, 44,
01770 37, 26, 46, 24, 15, 39, 22, 46,
01771 19, 35, 38, 17, 37, 23, 52, 55,
01772 50, 37, 26, 11, 37, 12, 24, 30,
01773 16, 13, 22, 13, 36, 35, 40, 41,
01774 34, 41, 26, 53, 51, 5, 21, 30,
01775 2, 63, 41, 20, 1, 56, 21, 24,
01776 25, 5, 28, 35, 26, 28, 30, 18,
01777 29, 23, 40, 34, 20, 42, 39, 34,
01778 28, 61, 38, 27, 62, 9, 36, 17,
01779 9, 49, 24, 25, 54, 34, 39, 37,
01780 3, 1, 25, 38, 38, 44, 35, 36,
01781 12, 60, 36, 38, 40, 25, 43, 39,
01782 53, 28, 39, 57, 46, 10, 52, 27,
01783 35, 42, 45, 59, 15, 60, 38, 24,
01784 23, 39, 12, 29, 24, 0, 20, 16,
01785 28, 43, 35, 28, 1, 49, 4, 21,
01786 42, 39, 29, 3, 44, 21, 53, 55,
01787 11, 5, 3, 39, 53, 28, 25, 19,
01788 34, 28, 21,
01789 };
01790
01791 MVTable ff_mv_tables[2] = {
01792 {
01793 1099,
01794 table0_mv_code,
01795 table0_mv_bits,
01796 table0_mvx,
01797 table0_mvy,
01798 },
01799 {
01800 1099,
01801 table1_mv_code,
01802 table1_mv_bits,
01803 table1_mvx,
01804 table1_mvy,
01805 }
01806 };
01807
01808 const uint8_t ff_v2_mb_type[8][2] = {
01809 {1, 1}, {0 , 2}, {3 , 3}, {9 , 5},
01810 {5, 4}, {0x21, 7}, {0x20, 7}, {0x11, 6},
01811 };
01812
01813 const uint8_t ff_v2_intra_cbpc[4][2] = {
01814 {1, 1}, {0, 3}, {1, 3}, {1, 2},
01815 };
01816
01817 const uint8_t ff_wmv1_y_dc_scale_table[32]={
01818
01819 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
01820 };
01821 const uint8_t ff_wmv1_c_dc_scale_table[32]={
01822
01823 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
01824 };
01825
01826 const uint8_t ff_old_ff_y_dc_scale_table[32]={
01827
01828 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
01829 };
01830
01831 const uint8_t ff_wmv1_scantable[WMV1_SCANTABLE_COUNT][64]={
01832 {
01833 0x00, 0x08, 0x01, 0x02, 0x09, 0x10, 0x18, 0x11,
01834 0x0A, 0x03, 0x04, 0x0B, 0x12, 0x19, 0x20, 0x28,
01835 0x30, 0x38, 0x29, 0x21, 0x1A, 0x13, 0x0C, 0x05,
01836 0x06, 0x0D, 0x14, 0x1B, 0x22, 0x31, 0x39, 0x3A,
01837 0x32, 0x2A, 0x23, 0x1C, 0x15, 0x0E, 0x07, 0x0F,
01838 0x16, 0x1D, 0x24, 0x2B, 0x33, 0x3B, 0x3C, 0x34,
01839 0x2C, 0x25, 0x1E, 0x17, 0x1F, 0x26, 0x2D, 0x35,
01840 0x3D, 0x3E, 0x36, 0x2E, 0x27, 0x2F, 0x37, 0x3F,
01841 },
01842 {
01843 0x00, 0x08, 0x01, 0x02, 0x09, 0x10, 0x18, 0x11,
01844 0x0A, 0x03, 0x04, 0x0B, 0x12, 0x19, 0x20, 0x28,
01845 0x21, 0x30, 0x1A, 0x13, 0x0C, 0x05, 0x06, 0x0D,
01846 0x14, 0x1B, 0x22, 0x29, 0x38, 0x31, 0x39, 0x2A,
01847 0x23, 0x1C, 0x15, 0x0E, 0x07, 0x0F, 0x16, 0x1D,
01848 0x24, 0x2B, 0x32, 0x3A, 0x33, 0x3B, 0x2C, 0x25,
01849 0x1E, 0x17, 0x1F, 0x26, 0x2D, 0x34, 0x3C, 0x35,
01850 0x3D, 0x2E, 0x27, 0x2F, 0x36, 0x3E, 0x37, 0x3F,
01851 },
01852 {
01853 0x00, 0x01, 0x08, 0x02, 0x03, 0x09, 0x10, 0x18,
01854 0x11, 0x0A, 0x04, 0x05, 0x0B, 0x12, 0x19, 0x20,
01855 0x28, 0x30, 0x21, 0x1A, 0x13, 0x0C, 0x06, 0x07,
01856 0x0D, 0x14, 0x1B, 0x22, 0x29, 0x38, 0x31, 0x39,
01857 0x2A, 0x23, 0x1C, 0x15, 0x0E, 0x0F, 0x16, 0x1D,
01858 0x24, 0x2B, 0x32, 0x3A, 0x33, 0x2C, 0x25, 0x1E,
01859 0x17, 0x1F, 0x26, 0x2D, 0x34, 0x3B, 0x3C, 0x35,
01860 0x2E, 0x27, 0x2F, 0x36, 0x3D, 0x3E, 0x37, 0x3F,
01861 },
01862 {
01863 0x00, 0x08, 0x10, 0x01, 0x18, 0x20, 0x28, 0x09,
01864 0x02, 0x03, 0x0A, 0x11, 0x19, 0x30, 0x38, 0x29,
01865 0x21, 0x1A, 0x12, 0x0B, 0x04, 0x05, 0x0C, 0x13,
01866 0x1B, 0x22, 0x31, 0x39, 0x32, 0x2A, 0x23, 0x1C,
01867 0x14, 0x0D, 0x06, 0x07, 0x0E, 0x15, 0x1D, 0x24,
01868 0x2B, 0x33, 0x3A, 0x3B, 0x34, 0x2C, 0x25, 0x1E,
01869 0x16, 0x0F, 0x17, 0x1F, 0x26, 0x2D, 0x3C, 0x35,
01870 0x2E, 0x27, 0x2F, 0x36, 0x3D, 0x3E, 0x37, 0x3F,
01871 }
01872 };
01873
01874 const uint8_t ff_table_inter_intra[4][2]={
01875 {0,1} ,
01876 {2,2} ,
01877 {6,3} ,
01878 {7,3}
01879 };
01880
01881 static const uint32_t table_mb_non_intra2[128][2] = {
01882 {0x0000A7, 14}, {0x01B2B8, 18}, {0x01B28E, 18}, {0x036575, 19},
01883 {0x006CAC, 16}, {0x000A69, 18}, {0x002934, 20}, {0x00526B, 21},
01884 {0x006CA1, 16}, {0x01B2B9, 18}, {0x0029AD, 20}, {0x029353, 24},
01885 {0x006CA7, 16}, {0x006CAB, 16}, {0x01B2BB, 18}, {0x00029B, 16},
01886 {0x00D944, 17}, {0x000A6A, 18}, {0x0149A8, 23}, {0x03651F, 19},
01887 {0x006CAF, 16}, {0x000A4C, 18}, {0x03651E, 19}, {0x000A48, 18},
01888 {0x00299C, 20}, {0x00299F, 20}, {0x029352, 24}, {0x0029AC, 20},
01889 {0x000296, 16}, {0x00D946, 17}, {0x000A68, 18}, {0x000298, 16},
01890 {0x000527, 17}, {0x00D94D, 17}, {0x0014D7, 19}, {0x036574, 19},
01891 {0x000A5C, 18}, {0x01B299, 18}, {0x00299D, 20}, {0x00299E, 20},
01892 {0x000525, 17}, {0x000A66, 18}, {0x00A4D5, 22}, {0x00149B, 19},
01893 {0x000295, 16}, {0x006CAD, 16}, {0x000A49, 18}, {0x000521, 17},
01894 {0x006CAA, 16}, {0x00D945, 17}, {0x01B298, 18}, {0x00052F, 17},
01895 {0x003654, 15}, {0x006CA0, 16}, {0x000532, 17}, {0x000291, 16},
01896 {0x003652, 15}, {0x000520, 17}, {0x000A5D, 18}, {0x000294, 16},
01897 {0x00009B, 11}, {0x0006E2, 12}, {0x000028, 12}, {0x0001B0, 10},
01898 {0x000001, 3}, {0x000010, 8}, {0x00002F, 6}, {0x00004C, 10},
01899 {0x00000D, 4}, {0x000000, 10}, {0x000006, 9}, {0x000134, 12},
01900 {0x00000C, 4}, {0x000007, 10}, {0x000007, 9}, {0x0006E1, 12},
01901 {0x00000E, 5}, {0x0000DA, 9}, {0x000022, 9}, {0x000364, 11},
01902 {0x00000F, 4}, {0x000006, 10}, {0x00000F, 9}, {0x000135, 12},
01903 {0x000014, 5}, {0x0000DD, 9}, {0x000004, 9}, {0x000015, 11},
01904 {0x00001A, 6}, {0x0001B3, 10}, {0x000005, 10}, {0x0006E3, 12},
01905 {0x00000C, 5}, {0x0000B9, 8}, {0x000004, 8}, {0x0000DB, 9},
01906 {0x00000E, 4}, {0x00000B, 10}, {0x000023, 9}, {0x0006CB, 12},
01907 {0x000005, 6}, {0x0001B1, 10}, {0x000001, 10}, {0x0006E0, 12},
01908 {0x000011, 5}, {0x0000DF, 9}, {0x00000E, 9}, {0x000373, 11},
01909 {0x000003, 5}, {0x0000B8, 8}, {0x000006, 8}, {0x000175, 9},
01910 {0x000015, 5}, {0x000174, 9}, {0x000027, 9}, {0x000372, 11},
01911 {0x000010, 5}, {0x0000BB, 8}, {0x000005, 8}, {0x0000DE, 9},
01912 {0x00000F, 5}, {0x000001, 9}, {0x000012, 8}, {0x000004, 10},
01913 {0x000002, 3}, {0x000016, 5}, {0x000009, 4}, {0x000001, 5},
01914 };
01915
01916 static const uint32_t table_mb_non_intra3[128][2] = {
01917 {0x0002A1, 10}, {0x005740, 15}, {0x01A0BF, 18}, {0x015D19, 17},
01918 {0x001514, 13}, {0x00461E, 15}, {0x015176, 17}, {0x015177, 17},
01919 {0x0011AD, 13}, {0x00682E, 16}, {0x0682F9, 20}, {0x03417D, 19},
01920 {0x001A36, 14}, {0x002A2D, 14}, {0x00D05E, 17}, {0x006824, 16},
01921 {0x001515, 13}, {0x00545C, 15}, {0x0230E9, 18}, {0x011AFA, 17},
01922 {0x0015D7, 13}, {0x005747, 15}, {0x008D79, 16}, {0x006825, 16},
01923 {0x002BA2, 14}, {0x00A8BA, 16}, {0x0235F6, 18}, {0x015D18, 17},
01924 {0x0011AE, 13}, {0x00346F, 15}, {0x008C3B, 16}, {0x00346E, 15},
01925 {0x000D1A, 13}, {0x00461F, 15}, {0x0682F8, 20}, {0x011875, 17},
01926 {0x002BA1, 14}, {0x008D61, 16}, {0x0235F7, 18}, {0x0230E8, 18},
01927 {0x001513, 13}, {0x008D7B, 16}, {0x011AF4, 17}, {0x011AF5, 17},
01928 {0x001185, 13}, {0x0046BF, 15}, {0x008D60, 16}, {0x008D7C, 16},
01929 {0x001512, 13}, {0x00461C, 15}, {0x00AE8D, 16}, {0x008D78, 16},
01930 {0x000D0E, 13}, {0x003413, 15}, {0x0046B1, 15}, {0x003416, 15},
01931 {0x000AEA, 12}, {0x002A2C, 14}, {0x005741, 15}, {0x002A2F, 14},
01932 {0x000158, 9}, {0x0008D2, 12}, {0x00054C, 11}, {0x000686, 12},
01933 {0x000000, 2}, {0x000069, 8}, {0x00006B, 8}, {0x00068C, 12},
01934 {0x000007, 3}, {0x00015E, 9}, {0x0002A3, 10}, {0x000AE9, 12},
01935 {0x000006, 3}, {0x000231, 10}, {0x0002B8, 10}, {0x001A08, 14},
01936 {0x000010, 5}, {0x0001A9, 10}, {0x000342, 11}, {0x000A88, 12},
01937 {0x000004, 4}, {0x0001A2, 10}, {0x0002A4, 10}, {0x001184, 13},
01938 {0x000012, 5}, {0x000232, 10}, {0x0002B2, 10}, {0x000680, 12},
01939 {0x00001B, 6}, {0x00046A, 11}, {0x00068E, 12}, {0x002359, 14},
01940 {0x000016, 5}, {0x00015F, 9}, {0x0002A0, 10}, {0x00054D, 11},
01941 {0x000005, 4}, {0x000233, 10}, {0x0002B9, 10}, {0x0015D6, 13},
01942 {0x000022, 6}, {0x000468, 11}, {0x000683, 12}, {0x001A0A, 14},
01943 {0x000013, 5}, {0x000236, 10}, {0x0002BB, 10}, {0x001186, 13},
01944 {0x000017, 5}, {0x0001AB, 10}, {0x0002A7, 10}, {0x0008D3, 12},
01945 {0x000014, 5}, {0x000237, 10}, {0x000460, 11}, {0x000D0F, 13},
01946 {0x000019, 6}, {0x0001AA, 10}, {0x0002B3, 10}, {0x000681, 12},
01947 {0x000018, 6}, {0x0001A8, 10}, {0x0002A5, 10}, {0x00068F, 12},
01948 {0x000007, 4}, {0x000055, 7}, {0x000047, 7}, {0x0000AD, 8},
01949 };
01950
01951 static const uint32_t table_mb_non_intra4[128][2] = {
01952 {0x0000D4, 8}, {0x0021C5, 14}, {0x00F18A, 16}, {0x00D5BC, 16},
01953 {0x000879, 12}, {0x00354D, 14}, {0x010E3F, 17}, {0x010F54, 17},
01954 {0x000866, 12}, {0x00356E, 14}, {0x010F55, 17}, {0x010E3E, 17},
01955 {0x0010CE, 13}, {0x003C84, 14}, {0x00D5BD, 16}, {0x00F18B, 16},
01956 {0x000868, 12}, {0x00438C, 15}, {0x0087AB, 16}, {0x00790B, 15},
01957 {0x000F10, 12}, {0x00433D, 15}, {0x006AD3, 15}, {0x00790A, 15},
01958 {0x001AA7, 13}, {0x0043D4, 15}, {0x00871E, 16}, {0x006ADF, 15},
01959 {0x000D7C, 12}, {0x003C94, 14}, {0x00438D, 15}, {0x006AD2, 15},
01960 {0x0006BC, 11}, {0x0021E9, 14}, {0x006ADA, 15}, {0x006A99, 15},
01961 {0x0010F7, 13}, {0x004389, 15}, {0x006ADB, 15}, {0x0078C4, 15},
01962 {0x000D56, 12}, {0x0035F7, 14}, {0x00438E, 15}, {0x006A98, 15},
01963 {0x000D52, 12}, {0x003C95, 14}, {0x004388, 15}, {0x00433C, 15},
01964 {0x000D54, 12}, {0x001E4B, 13}, {0x003C63, 14}, {0x003C83, 14},
01965 {0x000861, 12}, {0x0021EB, 14}, {0x00356C, 14}, {0x0035F6, 14},
01966 {0x000863, 12}, {0x00219F, 14}, {0x003568, 14}, {0x003C82, 14},
01967 {0x0001AE, 9}, {0x0010C0, 13}, {0x000F11, 12}, {0x001AFA, 13},
01968 {0x000000, 1}, {0x0000F0, 8}, {0x0001AD, 9}, {0x0010C1, 13},
01969 {0x00000A, 4}, {0x0003C5, 10}, {0x000789, 11}, {0x001AB5, 13},
01970 {0x000009, 4}, {0x000435, 11}, {0x000793, 11}, {0x001E40, 13},
01971 {0x00001D, 5}, {0x0003CB, 10}, {0x000878, 12}, {0x001AAF, 13},
01972 {0x00000B, 4}, {0x0003C7, 10}, {0x000791, 11}, {0x001AAB, 13},
01973 {0x00001F, 5}, {0x000436, 11}, {0x0006BF, 11}, {0x000F19, 12},
01974 {0x00003D, 6}, {0x000D51, 12}, {0x0010C4, 13}, {0x0021E8, 14},
01975 {0x000036, 6}, {0x000437, 11}, {0x0006AF, 11}, {0x0010C5, 13},
01976 {0x00000C, 4}, {0x000432, 11}, {0x000794, 11}, {0x001E30, 13},
01977 {0x000042, 7}, {0x000870, 12}, {0x000F24, 12}, {0x001E43, 13},
01978 {0x000020, 6}, {0x00043E, 11}, {0x000795, 11}, {0x001AAA, 13},
01979 {0x000037, 6}, {0x0006AC, 11}, {0x0006AE, 11}, {0x0010F6, 13},
01980 {0x000034, 6}, {0x00043A, 11}, {0x000D50, 12}, {0x001AAE, 13},
01981 {0x000039, 6}, {0x00043F, 11}, {0x00078D, 11}, {0x0010D2, 13},
01982 {0x000038, 6}, {0x00043B, 11}, {0x0006BD, 11}, {0x0010D3, 13},
01983 {0x000011, 5}, {0x0001AC, 9}, {0x0000F3, 8}, {0x000439, 11},
01984 };
01985
01986 const uint32_t (* const ff_wmv2_inter_table[WMV2_INTER_CBP_TABLE_COUNT])[2]={
01987 table_mb_non_intra2,
01988 table_mb_non_intra3,
01989 table_mb_non_intra4,
01990 ff_table_mb_non_intra,
01991 };
01992
01993 const uint8_t ff_wmv2_scantableA[64]={
01994 0x00, 0x01, 0x02, 0x08, 0x03, 0x09, 0x0A, 0x10,
01995 0x04, 0x0B, 0x11, 0x18, 0x12, 0x0C, 0x05, 0x13,
01996 0x19, 0x0D, 0x14, 0x1A, 0x1B, 0x06, 0x15, 0x1C,
01997 0x0E, 0x16, 0x1D, 0x07, 0x1E, 0x0F, 0x17, 0x1F,
01998 };
01999
02000 const uint8_t ff_wmv2_scantableB[64]={
02001 0x00, 0x08, 0x01, 0x10, 0x09, 0x18, 0x11, 0x02,
02002 0x20, 0x0A, 0x19, 0x28, 0x12, 0x30, 0x21, 0x1A,
02003 0x38, 0x29, 0x22, 0x03, 0x31, 0x39, 0x0B, 0x2A,
02004 0x13, 0x32, 0x1B, 0x3A, 0x23, 0x2B, 0x33, 0x3B,
02005 };