home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wvis0626.zip / warpvision_20020626.zip / libavcodec / msmpeg4data.h < prev    next >
Text File  |  2002-06-24  |  77KB  |  1,870 lines

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