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

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*************************************************************************
  2. This software module was originally developed by 
  3. Ming-Chieh Lee (mingcl@microsoft.com), Microsoft Corporation
  4. Wei-ge Chen (wchen@microsoft.com), Microsoft Corporation
  5. Bruce Lin (blin@microsoft.com), Microsoft Corporation
  6. Chuang Gu (chuanggu@microsoft.com), Microsoft Corporation
  7. (date: March, 1996)
  8. and edited by
  9. Yoshihiro Kikuchi (TOSHIBA CORPORATION)
  10. Takeshi Nagai (TOSHIBA CORPORATION)
  11. Toshiaki Watanabe (TOSHIBA CORPORATION)
  12. Noboru Yamaguchi (TOSHIBA CORPORATION)
  13. and also edited by
  14. Dick van Smirren (D.vanSmirren@research.kpn.com), KPN Research
  15. Cor Quist (C.P.Quist@research.kpn.com), KPN Research
  16. (date: July, 1998)
  17. in the course of development of the MPEG-4 Video (ISO/IEC 14496-2). 
  18. This software module is an implementation of a part of one or more MPEG-4 Video tools 
  19. as specified by the MPEG-4 Video. 
  20. ISO/IEC gives users of the MPEG-4 Video free license to this software module or modifications 
  21. thereof for use in hardware or software products claiming conformance to the MPEG-4 Video. 
  22. Those intending to use this software module in hardware or software products are advised that its use may infringe existing patents. 
  23. The original developer of this software module and his/her company, 
  24. the subsequent editors and their companies, 
  25. and ISO/IEC have no liability for use of this software module or modifications thereof in an implementation. 
  26. Copyright is not released for non MPEG-4 Video conforming products. 
  27. Microsoft retains full right to use the code for his/her own purpose, 
  28. assign or donate the code to a third party and to inhibit third parties from using the code for non <MPEG standard> conforming products. 
  29. This copyright notice must be included in all copies or derivative works. 
  30. Copyright (c) 1996, 1997.
  31. Module Name:
  32. codehead.h
  33. Abstract:
  34. define number of bits and some information for encoder/decoder
  35. Revision History:
  36. Sept. 29, 1997: add Video Packet overhead by Toshiba
  37. *************************************************************************/
  38. #ifndef __CODEHEAD_H_ 
  39. #define __CODEHEAD_H_
  40. #define MARKER_BIT 1
  41. #define START_CODE_PREFIX 1
  42. #define NUMBITS_START_CODE_PREFIX 24
  43. // Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC)
  44. #define NUMBITS_START_CODE_SUFFIX 8
  45. // End Toshiba(1998-1-16:DP+RVLC)
  46. // session overhead information
  47. #define SESSION_START_CODE 0xB0
  48. #define SESSION_END_CODE 0xB1
  49. #define USER_DATA_START_CODE 0xB2
  50. #define VISUAL_OBJ_START_CODE 0xB5
  51. // VO overhead information
  52. #define NUMBITS_VO_START_CODE 3
  53. #define VO_START_CODE 0
  54. #define NUMBITS_VO_ID 5
  55. // VOL overhead information
  56. #define NUMBITS_SHORT_HEADER_START_CODE 22 // Added by KPN for short headers (1998-02-07, DS)
  57. #define SHORT_VIDEO_START_MARKER        32 // Added by KPN for short headers (1998-02-07, DS)
  58. #define NUMBITS_VOL_START_CODE 4
  59. #define VOL_START_CODE 2
  60. #define NUMBITS_VOL_ID 4
  61. #define NUMBITS_VOL_SHAPE 2
  62. #define NUMBITS_TIME_RESOLUTION 16
  63. #define NUMBITS_VOL_FCODE 3
  64. #define NUMBITS_SEP_MOTION_TEXTURE 1
  65. #define NUMBITS_QMATRIX 8
  66. // GOV overhead information
  67. #define GOV_START_CODE 0xB3
  68. #define NUMBITS_GOV_START_CODE 8
  69. #define NUMBITS_GOV_TIMECODE_HOUR 5
  70. #define NUMBITS_GOV_TIMECODE_MIN 6
  71. #define NUMBITS_GOV_TIMECODE_SEC 6
  72. #define GOV_CLOSED 0
  73. #define NUMBITS_GOV_CLOSED 1
  74. #define GOV_BROKEN_LINK 0
  75. #define NUMBITS_GOV_BROKEN_LINK 1
  76. // sprite data
  77. #ifdef __VERIFICATION_MODEL_
  78. #define NUMBITS_SPRITE_USAGE 2
  79. #else
  80. #define NUMBITS_SPRITE_USAGE 1
  81. #endif //__VERIFICATION_MODEL_
  82. #define NUMBITS_SPRITE_HDIM 13
  83. #define NUMBITS_SPRITE_VDIM 13
  84. #define NUMBITS_SPRITE_LEFT_EDGE 13
  85. #define NUMBITS_SPRITE_TOP_EDGE 13
  86. #define NUMBITS_NUM_SPRITE_POINTS 6
  87. #define NUMBITS_WARPING_ACCURACY 2
  88. #define SPRITE_MV_ESC 2
  89. #define NUMBITS_SPRITE_MV_ESC 13
  90. #define NUMBITS_SPRITE_MB_OFFSET 9  //low latency stuff
  91. #define NUMBITS_SPRITE_XMIT_MODE 2  //low latency stuff
  92. // VOP overhead information
  93. #define VOP_START_CODE 0xB6
  94. #define NUMBITS_VOP_START_CODE 8
  95. #define NUMBITS_VOP_TIMEINCR 10
  96. #define NUMBITS_VOP_HORIZONTAL_SPA_REF 13
  97. #define NUMBITS_VOP_VERTICAL_SPA_REF 13
  98. #define NUMBITS_VOP_WIDTH 13
  99. #define NUMBITS_VOP_HEIGHT 13
  100. #define NUMBITS_VOP_PRED_TYPE 2
  101. #define NUMBITS_VOP_QUANTIZER 5
  102. #define NUMBITS_VOP_ALPHA_QUANTIZER 6
  103. #define NUMBITS_VOP_FCODE 3
  104. // Video Packet overhead, added by Toshiba
  105. #define NUMBITS_VP_RESYNC_MARKER 17
  106. #define RESYNC_MARKER 0x1
  107. #define NUMBITS_VP_QUANTIZER NUMBITS_VOP_QUANTIZER
  108. #define NUMBITS_VP_HEC 1
  109. #define NUMBITS_VP_PRED_TYPE NUMBITS_VOP_PRED_TYPE
  110. #define NUMBITS_VP_INTRA_DC_SWITCH_THR 3
  111. // for Data Partitioning By Toshiba(1998-1-16:DP+RVLC)
  112. #define NUMBITS_DP_MOTION_MARKER 17
  113. #define MOTION_MARKER 0x1F001
  114. #define NUMBITS_DP_DC_MARKER 19
  115. #define DC_MARKER 0x6B001
  116. // End toshiba(1998-1-16:DP+RVLC)
  117. // for MB ovrehead information
  118. #define NUMBITS_MB_SKIP 1
  119. // for motion estimation
  120. #define EXPANDY_REFVOP 32
  121. #define EXPANDUV_REFVOP 16
  122. #define EXPANDY_REF_FRAME 48
  123. #define EXPANDUV_REF_FRAME 24
  124. #define EXPANDY_REF_FRAMEx2 96
  125. #define EXPANDUV_REF_FRAMEx2 48
  126. //#define MAX_DISP 3
  127. #define ADD_DISP 2
  128. // Block DCT parameters
  129. #define NUMBITS_ESC_RUN 6
  130. #define NUMBITS_ESC_LEVEL 8
  131. // Added for data partitioning mode By Toshiba(1998-1-16:DP+RVLC)
  132. #define NUMBITS_RVLC_ESC_RUN 6
  133. //#define NUMBITS_RVLC_ESC_LEVEL 7
  134. // End Toshiba(1998-1-16:DP+RVLC)
  135. // Shape coding
  136. #define GRAY_ALPHA_THRESHOLD 64
  137. #define MC_BAB_SIZE 18
  138. #define BAB_SIZE 20
  139. #define BAB_BORDER 2
  140. #define MC_BAB_BORDER 1
  141. #define BAB_BORDER_BOTH 4
  142. #define TOTAL_BAB_SIZE 20
  143. #endif // __CODEHEAD_H_