www.pudn.com > encore50src.zip > vm_common_defs.h


 
#ifndef _VM_COMMON_DEFS_H_ 
#define _VM_COMMON_DEFS_H_ 
 
   #   ifdef __cplusplus 
       extern "C" { 
   #   endif /* __cplusplus */ 
 
#define VERSION		1		/* image structure version */ 
 
 
   #   ifdef __cplusplus 
       } 
   #   endif /* __cplusplus  */  
 
 
 
/* maximum allowed number of VOs and VOLs */ 
 
#define MAX_NUM_VOS 32 
#define MAX_NUM_VOLS 16 
 
/* end of bitstream code */ 
 
#define EOB_CODE                        1 
#define EOB_CODE_LENGTH                32 
 
 
/*** 10/28 TEST */ 
/* #define MB_trace_thres	22 */ 
#define MB_trace_thres	8193 /* changed */ 
/* 10/28 TEST ***/ 
 
#define EXTENDED_PAR 0xF 
 
/* session layer and vop layer start codes */ 
 
#define SESSION_START_CODE 	0x01B0	 
#define SESSION_END_CODE 	0x01B1 
 
#define VO_START_CODE 		0x8       
#define VO_START_CODE_LENGTH	27 
                                          
#define VO_HEADER_LENGTH        32        /* lengtho of VO header: VO_START_CODE +  VO_ID */ 
 
#define SOL_START_CODE          0x01be    
#define SOL_START_CODE_LENGTH   32 
 
#define VOL_START_CODE 0x12             /* 25-MAR-97 JDL : according to WD2 */ 
#define VOL_START_CODE_LENGTH 28 
 
#define VOP_START_CODE 0x1B6		 	/* 25-MAR-97 JDL : according to WD2 */ 
#define VOP_START_CODE_LENGTH	32	 
 
#define GROUP_START_CODE	0x01B3		/* 05-05-1997 Minhua Zhou */ 
#define GROUP_START_CODE_LENGTH  32        /* 10.12.97 Luis Ducla-Soares */ 
 
#define VOP_ID_CODE_LENGTH		5 
#define VOP_TEMP_REF_CODE_LENGTH	16 
 
#define USER_DATA_START_CODE	    0x01B2	/* Due to N2171 Cl. 2.1.9, MW 23-MAR-1998 */ 
#define USER_DATA_START_CODE_LENGTH 32		/* Due to N2171 Cl. 2.1.9, MW 23-MAR-1998 */ 
 
#define START_CODE_PREFIX	    0x01	/* Due to N2171 Cl. 2.1.9, MW 23-MAR-1998 */ 
#define START_CODE_PREFIX_LENGTH    24		/* Due to N2171 Cl. 2.1.9, MW 23-MAR-1998 */ 
 
#define SHORT_VIDEO_START_MARKER         0x20  
#define SHORT_VIDEO_START_MARKER_LENGTH  22    
#define SHORT_VIDEO_END_MARKER            0x3F     
 
#define GOB_RESYNC_MARKER         0x01  
#define GOB_RESYNC_MARKER_LENGTH  17    
 
/* motion and resync markers used in error resilient mode  */ 
 
#define DC_MARKER                      438273    /* 09.10.97 LDS: according to WD4.0 */ 
#define DC_MARKER_LENGTH                19 
 
#define MOTION_MARKER_COMB             126977    /* 26.04.97 LDS: according to VM7.0 */ 
#define MOTION_MARKER_COMB_LENGTH       17 
 
#define MOTION_MARKER_SEP              81921     /* 26.04.97 LDS: according to VM6.0 */ 
#define MOTION_MARKER_SEP_LENGTH        17 
 
#define RESYNC_MARKER           1           /* 26.04.97 LDS: according to VM6.0 */ 
#define RESYNC_MARKER_LENGTH    17 
 
#define SPRITE_NOT_USED		0 
#define STATIC_SPRITE		1 
#define GMC_SPRITE		2		/* NTT for GMC coding */ 
 
/* macroblock size */ 
#define MB_SIZE 16 
 
/* VOL types */ 
 
#define RECTANGULAR 0 
#define BINARY 1 
#define BINARY_SHAPE_ONLY 2 /* HYUNDAI (Grayscale) */ 
#define GREY_SCALE 3 	/* HYUNDAI (Grayscale) */ 
 
/* macroblock modes */ 
 
#define MODE_INTRA                      0 
#define MODE_INTER                      1 
#define MODE_INTRA_Q			2	/* not used currently */ 
#define MODE_INTER_Q			3 	/* not used currently */	 
#define MODE_INTER4V                    4 
#define MODE_GMC                        5	/* NTT for GMC coding */ 
#define MODE_GMC_Q                      6 
 
#define MBM_INTRA 			0 
#define MBM_INTER16 			1 
#define MBM_SPRITE 			3 
#define MBM_INTER8 			4 
#define MBM_TRANSPARENT 		2 
#define MBM_OUT 			5 
#define MBM_SKIPPED			6 
 
 
/* (from mot_est.h) */ 
#define MBM_OPAQUE         7  /* opaque block value (all pixels 1 or 255)          */ 
#define MBM_BOUNDARY       8  /* block in the boundary of the shape => transparent */ 
 
#define MBM_FIELD00         9   /* ref(Top)=Top, ref(Bot)=Top */ 
#define MBM_FIELD01         10  /* ref(Top)=Top, ref(Bot)=Bot */ 
#define MBM_FIELD10         11  /* ref(Top)=Bot, ref(Bot)=Top */ 
#define MBM_FIELD11         12  /* ref(Top)=Bot, ref(Bot)=Bot */ 
 
#define MBM_B_MODE      0x07    /* Mode mask */ 
#define MBM_B_FWDFRM    0       /* Forward frame prediction */ 
#define MBM_B_BAKFRM    1       /* Backward frame prediction */ 
#define MBM_B_AVEFRM    2       /* Average (bidirectional) frame prediction */ 
#define MBM_B_DIRECT    3       /* Direct mode */ 
/* nothing defined */           /* Transparent */ 
#define MBM_B_FWDFLD    5       /* Forward field prediction */ 
#define MBM_B_BAKFLD    6       /* Backward field prediction */ 
#define MBM_B_AVEFLD    7       /* Average (bidirectional) field prediction */ 
#define MBM_B_REFFLDS   0xF0    /* Mask of reference file selectors */ 
#define MBM_B_FWDTOP    0x10    /* Fwd Top fld reference is bot if set */ 
#define MBM_B_FWDBOT    0x20    /* Fwd Bot fld reference is bot if set */ 
#define MBM_B_BAKTOP    0x40    /* Bak Top fld reference is bot if set */ 
#define MBM_B_BAKBOT    0x80    /* Bak Bot fld reference is bot if set */ 
 
  
/* typedef enum 
   { 
   MBMODE_INTRA=0, 
   MBMODE_INTER16=1, 
   MBMODE_INTER8=4, 
   MBMODE_TRANSPARENT=2, 
   MBMODE_OUT=5, 
   MBMODE_SPRITE=3 
   } MBMODE; */ 
/* (from mot_est.h) */ 
 
 
#define BINARY_ALPHA 		255 
#define BINARY_SHAPE 		1 
#define ARB_SHAPE 			1 
 
#define NO_SHAPE_EFFECTS 0 
 
#define REVERSE_VLC          1      /* 26.04.97 LDS */ 
 
#endif