defines.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:5k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2. ***********************************************************************
  3. * COPYRIGHT AND WARRANTY INFORMATION
  4. *
  5. * Copyright 2001, International Telecommunications Union, Geneva
  6. *
  7. * DISCLAIMER OF WARRANTY
  8. *
  9. * These software programs are available to the user without any
  10. * license fee or royalty on an "as is" basis. The ITU disclaims
  11. * any and all warranties, whether express, implied, or
  12. * statutory, including any implied warranties of merchantability
  13. * or of fitness for a particular purpose.  In no event shall the
  14. * contributor or the ITU be liable for any incidental, punitive, or
  15. * consequential damages of any kind whatsoever arising from the
  16. * use of these programs.
  17. *
  18. * This disclaimer of warranty extends to the user of these programs
  19. * and user's customers, employees, agents, transferees, successors,
  20. * and assigns.
  21. *
  22. * The ITU does not represent or warrant that the programs furnished
  23. * hereunder are free of infringement of any third-party patents.
  24. * Commercial implementations of ITU-T Recommendations, including
  25. * shareware, may be subject to royalty fees to patent holders.
  26. * Information regarding the ITU-T patent policy is available from
  27. * the ITU Web site at http://www.itu.int.
  28. *
  29. * THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE ITU-T PATENT POLICY.
  30. ************************************************************************
  31. */
  32. /*!
  33.  **************************************************************************
  34.  * file defines.h
  35.  *
  36.  * brief
  37.  *    Headerfile containing some useful global definitions
  38.  *
  39.  * author
  40.  *    Detlev Marpe                                                        n
  41.  *    Copyright (C) 2000 HEINRICH HERTZ INSTITUTE All Rights Reserved.
  42.  *
  43.  * date
  44.  *    21. March 2001
  45.  **************************************************************************
  46.  */
  47. #ifndef _DEFINES_H_
  48. #define _DEFINES_H_
  49. #define VCEG_M79_PICTURE_HEADER
  50. #define NO_RDQUANT
  51. #define _FAST_FULL_ME_
  52. #define _FULL_SEARCH_RANGE_
  53. #define _ADAPT_LAST_GROUP_
  54. #define _CHANGE_QP_
  55. #define _ADDITIONAL_REFERENCE_FRAME_
  56. #define _LEAKYBUCKET_
  57. #define IMG_PAD_SIZE    4   //!< Number of pixels padded around the reference frame (>=4)
  58. #define TRACE           1        //!< 0:Trace off 1:Trace on
  59. #define absm(A) ((A)<(0) ? (-(A)):(A)) //!< abs macro, faster than procedure
  60. #define MAX_VALUE       999999   //!< used for start value for some variables
  61. // Picture types
  62. #define INTRA_IMG       0   //!< I frame
  63. #define INTER_IMG       1   //!< P frame
  64. #define B_IMG           2   //!< B frame
  65. #define SP_IMG          3   //!< SP frame
  66. // inter MB modes
  67. #define COPY_MB         0        //!< just copy last MB, no motion vectors
  68. #define M16x16_MB       1        //!< 16 x 16 block
  69. #define M16x8_MB        2
  70. #define M8x16_MB        3
  71. #define M8x8_MB         4
  72. #define M8x4_MB         5
  73. #define M4x8_MB         6
  74. #define M4x4_MB         7
  75. // imod constants
  76. #define INTRA_MB_OLD    0       //!< new intra prediction mode in inter frame
  77. #define INTRA_MB_NEW    1       //!< 'old' intra prediction mode in inter frame
  78. #define INTRA_MB_INTER  2       //!< Intra MB in inter frame, use the constants above
  79. // B pictures : img->imod
  80. #define B_Forward       3
  81. #define B_Backward      4
  82. #define B_Bidirect      5
  83. #define B_Direct        6
  84. #define BLOCK_SIZE      4
  85. #define MB_BLOCK_SIZE   16
  86. #define NO_INTRA_PMODE  6        //!< #intra prediction modes
  87. // 4x4 intra prediction modes
  88. #define DC_PRED         0
  89. #define DIAG_PRED_RL    1
  90. #define VERT_PRED       2
  91. #define DIAG_PRED_LR_45 3
  92. #define HOR_PRED        4
  93. #define DIAG_PRED_LR    5
  94. // 16x16 intra prediction modes
  95. #define VERT_PRED_16    0
  96. #define HOR_PRED_16     1
  97. #define DC_PRED_16      2
  98. #define PLANE_16        3
  99. // image formats
  100. #define SUB_QCIF        0       // GH added picture formats
  101. #define QCIF            1
  102. #define CIF             2
  103. #define CIF_4           3       // GH added picture formats
  104. #define CIF_16          4       // GH added picture formats
  105. #define CUSTOM          5       // GH added picture formats
  106. // QCIF format
  107. #define IMG_WIDTH       176
  108. #define IMG_HEIGHT      144
  109. #define IMG_WIDTH_CR    88
  110. #define IMG_HEIGHT_CR   72
  111. #define INIT_FRAME_RATE 30
  112. #define LEN_STARTCODE   31        //!< length of start code
  113. #define EOS             1         //!< End Of Sequence
  114. #define MVPRED_MEDIAN   0
  115. #define MVPRED_L        1
  116. #define MVPRED_U        2
  117. #define MVPRED_UR       3
  118. #define BLOCK_MULTIPLE      (MB_BLOCK_SIZE/BLOCK_SIZE)
  119. #define MAX_SYMBOLS_PER_MB  600 //!< Maximum number of different syntax elements for one MB
  120. #define MAX_PART_NR     8 /*!< Maximum number of different data partitions.
  121.                                Some reasonable number which should reflect
  122.                                what is currently defined in the SE2Partition map (elements.h) */
  123. #define MAXPICTURETYPESEQUENCELEN 100   /*!< Maximum size of the string that defines the picture
  124.                                              types to be coded, e.g. "IBBPBBPBB" */
  125. #endif