mpeg2enc.h
上传用户:ma_junhua
上传日期:2008-04-11
资源大小:2752k
文件大小:3k
开发平台:

C/C++

  1. /* mpg2enc.h, defines and types                                             */
  2. /* Copyright (C) 1996, MPEG Software Simulation Group. All Rights Reserved. */
  3. /*
  4.  * Disclaimer of Warranty
  5.  *
  6.  * These software programs are available to the user without any license fee or
  7.  * royalty on an "as is" basis.  The MPEG Software Simulation Group disclaims
  8.  * any and all warranties, whether express, implied, or statuary, including any
  9.  * implied warranties or merchantability or of fitness for a particular
  10.  * purpose.  In no event shall the copyright-holder be liable for any
  11.  * incidental, punitive, or consequential damages of any kind whatsoever
  12.  * arising from the use of these programs.
  13.  *
  14.  * This disclaimer of warranty extends to the user of these programs and user's
  15.  * customers, employees, agents, transferees, successors, and assigns.
  16.  *
  17.  * The MPEG Software Simulation Group does not represent or warrant that the
  18.  * programs furnished hereunder are free of infringement of any third-party
  19.  * patents.
  20.  *
  21.  * Commercial implementations of MPEG-1 and MPEG-2 video, including shareware,
  22.  * are subject to royalty fees to patent holders.  Many of these patents are
  23.  * general enough such that they are unavoidable regardless of implementation
  24.  * design.
  25.  *
  26.  */
  27. #define PICTURE_START_CODE 0x100L
  28. #define SLICE_MIN_START    0x101L
  29. #define SLICE_MAX_START    0x1AFL
  30. #define USER_START_CODE    0x1B2L
  31. #define SEQ_START_CODE     0x1B3L
  32. #define EXT_START_CODE     0x1B5L
  33. #define SEQ_END_CODE       0x1B7L
  34. #define GOP_START_CODE     0x1B8L
  35. #define ISO_END_CODE       0x1B9L
  36. #define PACK_START_CODE    0x1BAL
  37. #define SYSTEM_START_CODE  0x1BBL
  38. /* picture coding type */
  39. #define I_TYPE 1
  40. #define P_TYPE 2
  41. #define B_TYPE 3
  42. #define D_TYPE 4
  43. /* picture structure */
  44. #define TOP_FIELD     1
  45. #define BOTTOM_FIELD  2
  46. #define FRAME_PICTURE 3
  47. /* macroblock type */
  48. #define MB_INTRA    1
  49. #define MB_PATTERN  2
  50. #define MB_BACKWARD 4
  51. #define MB_FORWARD  8
  52. #define MB_QUANT    16
  53. /* motion_type */
  54. #define MC_FIELD 1
  55. #define MC_FRAME 2
  56. #define MC_16X8  2
  57. #define MC_DMV   3
  58. /* mv_format */
  59. #define MV_FIELD 0
  60. #define MV_FRAME 1
  61. /* chroma_format */
  62. #define CHROMA420 1
  63. #define CHROMA422 2
  64. #define CHROMA444 3
  65. /* extension start code IDs */
  66. #define SEQ_ID       1
  67. #define DISP_ID      2
  68. #define QUANT_ID     3
  69. #define SEQSCAL_ID   5
  70. #define PANSCAN_ID   7
  71. #define CODING_ID    8
  72. #define SPATSCAL_ID  9
  73. #define TEMPSCAL_ID 10
  74. /* inputtype */
  75. #define T_Y_U_V 0
  76. #define T_YUV   1
  77. #define T_PPM   2
  78. /* macroblock information */
  79. struct mbinfo {
  80.   int mb_type; /* intra/forward/backward/interpolated */
  81.   int motion_type; /* frame/field/16x8/dual_prime */
  82.   int dct_type; /* field/frame DCT */
  83.   int mquant; /* quantization parameter */
  84.   int cbp; /* coded block pattern */
  85.   int skipped; /* skipped macroblock */
  86.   int MV[2][2][2]; /* motion vectors */
  87.   int mv_field_sel[2][2]; /* motion vertical field select */
  88.   int dmvector[2]; /* dual prime vectors */
  89.   double act; /* activity measure */
  90.   int var; /* for debugging */
  91. };
  92. /* motion data */
  93. struct motion_data {
  94.   int forw_hor_f_code,forw_vert_f_code; /* vector range */
  95.   int sxf,syf; /* search range */
  96.   int back_hor_f_code,back_vert_f_code;
  97.   int sxb,syb;
  98. };