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

  1. // shapes
  2. #define RECT_SHAPE       0
  3. #define BIN_SHAPE        1
  4. #define BIN_ONLY_SHAPE   2
  5. #define GRAY_SHAPE       3
  6.  
  7. #define SIMPLE_VO_TYPE 1
  8. #define CORE_VO_TYPE   3
  9.  
  10. // aspect_ratio_info
  11. #define EXTENDED_PAR 15
  12.  
  13. //vol_sprite_usage / sprite_enable
  14. #define STATIC_SPRITE 1
  15. #define GMC_SPRITE 2
  16.  
  17. #define MOTION_MARKER 0x1F001
  18. #define DC_MARKER     0x6B001
  19.  
  20.  
  21. /* dc encoding for mpeg4 */
  22. const UINT8 DCtab_lum[13][2] =
  23. {
  24.     {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
  25.     {1,8}, {1,9}, {1,10}, {1,11},
  26. }; 
  27.  
  28. const UINT8 DCtab_chrom[13][2] =
  29. {
  30.     {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
  31.     {1,9}, {1,10}, {1,11}, {1,12},
  32. }; 
  33.  
  34. const UINT16 intra_vlc[103][2] = {
  35. { 0x2, 2 },
  36. { 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
  37. { 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
  38. { 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
  39. { 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
  40. { 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
  41. { 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
  42. { 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
  43. { 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
  44. { 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
  45. { 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
  46. { 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
  47. { 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
  48. { 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
  49. { 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
  50. { 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
  51. { 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
  52. { 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
  53. { 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
  54. { 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
  55. { 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
  56. { 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
  57. { 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
  58. { 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
  59. { 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
  60. { 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
  61. { 0x5f, 12 },{ 0x3, 7 },
  62. };
  63.  
  64. const INT8 intra_level[102] = {
  65.   1,  2,  3,  4,  5,  6,  7,  8,
  66.   9, 10, 11, 12, 13, 14, 15, 16,
  67.  17, 18, 19, 20, 21, 22, 23, 24,
  68.  25, 26, 27,  1,  2,  3,  4,  5,
  69.   6,  7,  8,  9, 10,  1,  2,  3,
  70.   4,  5,  1,  2,  3,  4,  1,  2,
  71.   3,  1,  2,  3,  1,  2,  3,  1,
  72.   2,  3,  1,  2,  1,  2,  1,  1,
  73.   1,  1,  1,  1,  2,  3,  4,  5,
  74.   6,  7,  8,  1,  2,  3,  1,  2,
  75.   1,  2,  1,  2,  1,  2,  1,  2,
  76.   1,  1,  1,  1,  1,  1,  1,  1,
  77.   1,  1,  1,  1,  1,  1,
  78. };
  79.  
  80. const INT8 intra_run[102] = {
  81.   0,  0,  0,  0,  0,  0,  0,  0,
  82.   0,  0,  0,  0,  0,  0,  0,  0,
  83.   0,  0,  0,  0,  0,  0,  0,  0,
  84.   0,  0,  0,  1,  1,  1,  1,  1,
  85.   1,  1,  1,  1,  1,  2,  2,  2,
  86.   2,  2,  3,  3,  3,  3,  4,  4,
  87.   4,  5,  5,  5,  6,  6,  6,  7,
  88.   7,  7,  8,  8,  9,  9, 10, 11,
  89.  12, 13, 14,  0,  0,  0,  0,  0,
  90.   0,  0,  0,  1,  1,  1,  2,  2,
  91.   3,  3,  4,  4,  5,  5,  6,  6,
  92.   7,  8,  9, 10, 11, 12, 13, 14,
  93.  15, 16, 17, 18, 19, 20,
  94. };
  95.  
  96. static RLTable rl_intra = {
  97.     102,
  98.     67,
  99.     intra_vlc,
  100.     intra_run,
  101.     intra_level,
  102. };
  103.  
  104. static const UINT16 sprite_trajectory_tab[15][2] = {
  105.  {0x00, 2}, {0x02, 3},  {0x03, 3},  {0x04, 3}, {0x05, 3}, {0x06, 3},
  106.  {0x0E, 4}, {0x1E, 5},  {0x3E, 6},  {0x7E, 7}, {0xFE, 8}, 
  107.  {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
  108. };
  109.  
  110. static const UINT8 mb_type_b_tab[4][2] = {
  111.  {1, 1}, {1, 2}, {1, 3}, {1, 4},
  112. };
  113.  
  114. static const UINT16 pixel_aspect[16][2]={
  115.  {0, 0},
  116.  {1, 1},
  117.  {12, 11},
  118.  {10, 11},
  119.  {16, 11},
  120.  {40, 33},
  121.  {0, 0},
  122.  {0, 0},
  123.  {0, 0},
  124.  {0, 0},
  125.  {0, 0},
  126.  {0, 0},
  127.  {0, 0},
  128.  {0, 0},
  129.  {0, 0},
  130.  {0, 0},
  131. };
  132.  
  133. /* these matrixes will be permuted for the idct */
  134. INT16 ff_mpeg4_default_intra_matrix[64] = {
  135.   8, 17, 18, 19, 21, 23, 25, 27,
  136.  17, 18, 19, 21, 23, 25, 27, 28,
  137.  20, 21, 22, 23, 24, 26, 28, 30,
  138.  21, 22, 23, 24, 26, 28, 30, 32,
  139.  22, 23, 24, 26, 28, 30, 32, 35,
  140.  23, 24, 26, 28, 30, 32, 35, 38,
  141.  25, 26, 28, 30, 32, 35, 38, 41,
  142.  27, 28, 30, 32, 35, 38, 41, 45, 
  143. };
  144.  
  145. INT16 ff_mpeg4_default_non_intra_matrix[64] = {
  146.  16, 17, 18, 19, 20, 21, 22, 23,
  147.  17, 18, 19, 20, 21, 22, 23, 24,
  148.  18, 19, 20, 21, 22, 23, 24, 25,
  149.  19, 20, 21, 22, 23, 24, 26, 27,
  150.  20, 21, 22, 23, 25, 26, 27, 28,
  151.  21, 22, 23, 24, 26, 27, 28, 30,
  152.  22, 23, 24, 26, 27, 28, 30, 31,
  153.  23, 24, 25, 27, 28, 30, 31, 33,
  154. };
  155.  
  156. UINT8 ff_mpeg4_y_dc_scale_table[32]={
  157. //  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
  158.     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,34,36,38,40,42,44,46
  159. };
  160. UINT8 ff_mpeg4_c_dc_scale_table[32]={
  161. //  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
  162.     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,20,21,22,23,24,25
  163. };
  164.  
  165.  
  166.