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