global.h

来自「mpeg2编码解码源程序代码」· C头文件 代码 · 共 1,165 行 · 第 1/3 页

H
1,165
字号
	0x82, 0xac, 0x80, 0x9b, 0x25, 0xb9, 0x97, 0x66, 
	0xcc, 0x10, 0x0b, 0xb3, 0x69, 0x5f, 0x4c, 0xb1, 
	0xea, 0x57, 0xca, 0x8f, 0x41, 0xa8, 0xf5, 0x7f, 
	0x5c, 0x02, 0x3d, 0xb0, 0x2d, 0x15, 0x12, 0x51, 
	0xa2, 0x92, 0xe4, 0x94, 0xac, 0x27, 0x23, 0xa8, 
	0x3c, 0x85, 0x3e, 0xbc, 0x40, 0x5c, 0xa7, 0x02, 
	0xaa, 0x5c, 0xcd, 0xa9, 0x68, 0x36, 0x20, 0xe1, 
	0x6c, 0x98, 0x10, 0xd9, 0xa4, 0x78, 0xd6, 0x99, 
	0x13, 0x88, 0x21, 0x01, 0xe0, 0x00, 0x9d, 0x80, 
	0x0c, 0xc3, 0x70, 0xc0, 0x6d, 0xe1, 0xf3, 0x9d, 
	0x35, 0x3b, 0x8a, 0x7a, 0xce, 0xec, 0x81, 0x96, 
	0x26, 0x90, 0xe5, 0x2a, 0x68, 0x84, 0x40, 0xb4, 
	0x00, 0xe3, 0x20, 0xae, 0xdb, 0x49, 0x10, 0xd7, 
	0x24, 0x12, 0x5d, 0x28, 0x47, 0x5a, 0xd1, 0xde, 
	0xf0, 0xbe, 0xba, 0xf6, 0xcc, 0x19, 0x63, 0xeb, 
	0xc5, 0xc7, 0x99, 0x7a, 0x49, 0xe5, 0x27, 0x1d, 
	0xc4, 0x4d, 0xd9, 0x12, 0xe0, 0xdd, 0xfb, 0x14, 
	0xcb, 0xb1, 0x19, 0xa0, 0x30, 0xa3, 0x80, 0x70, 
	0xfb, 0xd1, 0x7b, 0x02, 0x99, 0x96, 0x56, 0x51, 
	0xf5, 0x4e, 0x9d, 0xda, 0x3b, 0x56, 0x1d, 0x57, 
	0xd7, 0x88, 0xe1, 0x46, 0xb6, 0x02, 0xf5, 0xa2, 
	0xc2, 0xe0, 0x25, 0xe8, 0x2a, 0x3c, 0xbe, 0x92, 
	0x97, 0x74, 0x4b, 0x9e, 0xb6, 0xe3, 0x18, 0x87, 
	0xb4, 0xa5, 0x72, 0x0a, 0x3c, 0x9e, 0x35, 0xa6, 
	0x43, 0xe2, 0x08, 0x40, 0x7e, 0x00, 0x27, 0x60, 
	0x05, 0xb8, 0xf8, 0x6e, 0xc4, 0xee, 0x72, 0xa6, 
	0xed, 0xef, 0xf0, 0x22, 0x97, 0xb0, 0x9f, 0xfc, 
	0xd9, 0x53, 0x41, 0x20, 0xa9, 0xca, 0xf2, 0x99, 
	0x10, 0x0a, 0xc3, 0x61, 0x03, 0x15, 0xa2, 0x73, 
	0x89, 0xfe, 0x8e, 0xeb, 0x9b, 0xa8, 0x87, 0x94, 
	0x3f, 0x26, 0x9b, 0xa8, 0x6b, 0x7b, 0xa9, 0xf3, 
	0x37, 0x9a, 0xd1, 0x9f, 0x8a, 0x87, 0x11, 0x98, 
	0x6b, 0x33, 0x58, 0xd8, 0xd0, 0xc2, 0xb6, 0x7b, 
	0xd2, 0x28, 0x29, 0x5c, 0x76, 0x56, 0xa0, 0x95, 
	0x94, 0x51, 0x2b, 0x12, 0x43, 0x2a, 0xc7, 0xed, 
	0x89, 0xc6, 0x76, 0x12, 0x5f, 0x37, 0x24, 0x8b, 
	0xca, 0x7f, 0xf2, 0x54, 0xb2, 0x83, 0xde, 0x68, 
	0x3e, 0x65, 0xb7, 0xd1, 0x45, 0x18, 0xbd, 0x8a, 
	0xed, 0x9f, 0xce, 0x90, 0x1e, 0xed, 0xd9, 0xeb, 
	0xe0, 0x06, 0x0e, 0x89, 0x37, 0xf7, 0x8d, 0x69, 
	0x80, 0x00, 0x9e, 0x80, 0x2d, 0x2e, 0x0c, 0x76, 
	0x82, 0x3f, 0x12, 0x20, 0xe3, 0xa9, 0xa2, 0x3a, 
	0x5d, 0x69, 0x28, 0x9f, 0x3b, 0x7a, 0x11, 0x2b, 
	0x09, 0x58, 0x07, 0xfa, 0x53, 0xff, 0x78, 0xe8, 
	0xe6, 0xac, 0x10, 0x12, 0x8d, 0x59, 0xf9, 0xd3, 
	0x94, 0x85, 0x21, 0x87, 0xc8, 0x29, 0x73, 0x8b, 
	0x73, 0x83, 0x1b, 0xfa, 0x23, 0x8d, 0xc6, 0x70, 
	0x23, 0xc6, 0x1f, 0x09, 0x40, 0x27, 0x52, 0x61, 
	0xc4, 0xed, 0xcb, 0x95, 0xbd, 0xd5, 0xf7, 0x00, 
	0x76, 0xda, 0xc0, 0xfe, 0xbc, 0x79, 0x54, 0xec, 
	0x1a, 0x2c, 0xdf, 0x64, 0xdc, 0x31, 0xcb, 0xc4, 
	0xce, 0x03, 0xc6, 0xa8, 0x3c, 0x9f, 0x3b, 0xaa, 
	0xb3, 0x7f, 0xd6, 0xe8, 0x7e, 0x21, 0x84, 0xbd, 
	0x69, 0x40, 0xf0, 0x45, 0x80, 0xd9, 0x06, 0x5d, 
	0x10, 0x66, 0xf2, 0x9f, 0xe4, 0x65, 0xa1, 0x29, 
	0xc8, 0x91, 0xfd, 0xd7, 0x08, 0xde, 0x35, 0xa6, 
	0x00, 0x02, 0x78, 0x00, 0x9c, 0xd4, 0x0e, 0xc6, 
	0x86, 0xc9, 0x2d, 0x3a, 0xf6, 0x87, 0x28, 0xae, 
	0xda, 0xbe, 0x71, 0x54, 0x24, 0x1e, 0x77, 0x5b, 
	0xc2, 0x58, 0xaa, 0xf3, 0xa6, 0x1a, 0x7a, 0x4b, 
	0xbe, 0x15, 0x57, 0x95, 0xfb, 0xf9, 0xb1, 0x00, 
	0x4e, 0x76, 0xf8, 0xbb, 0xa5, 0x3d, 0x9c, 0xf8, 
	0xf2, 0xfc, 0x0d, 0xe6, 0x23, 0x64, 0xbb, 0xb4, 
	0x2a, 0x25, 0x16, 0x94, 0xf5, 0xef, 0x8e, 0xb5, 
	0x76, 0x72, 0x93, 0x46, 0x9b, 0x5f, 0x95, 0x79, 
	0x55, 0x64, 0x04, 0x7d, 0x95, 0x32, 0x4f, 0x81, 
	0x49, 0x79, 0xe8, 0xb7, 0x63, 0xe9, 0x3e, 0x4e, 
	0xd1, 0x33, 0xc1, 0x76, 0x85, 0x05, 0xe1, 0x5e, 
	0x6d, 0x10, 0x0e, 0x38, 0x7a, 0x04, 0xb8, 0x33, 
	0x9d, 0x91, 0x4f, 0x7e, 0xc4, 0x68, 0x43, 0x4b, 
	0xe1, 0x37, 0x04, 0xc9, 0xe2, 0xaf, 0x02, 0x27, 
	0xb9, 0x80, 0xad, 0x78, 0xd6, 0x80, 0xea, 0x1e
}
#endif
;

////////////////////////





/* prototypes of global functions *//* readpic.c */void Substitute_Frame_Buffer (int bitstream_framenum,   int sequence_framenum);/* Get_Bits.c */void Initialize_Buffer (void);void Fill_Buffer (void);void Flush_Buffer (int n);/* systems.c */void Next_Packet (void);void Flush_Buffer32 (void);/* getblk.c */void Decode_MPEG1_Intra_Block (int comp, int dc_dct_pred[]);void Decode_MPEG1_Non_Intra_Block (int comp);void Decode_MPEG2_Intra_Block (int comp, int dc_dct_pred[]);void Decode_MPEG2_Non_Intra_Block (int comp);/* gethdr.c */int Get_Hdr (void);void next_start_code (void);int slice_header (void);void marker_bit (char *text);/* getpic.c */void Decode_Picture (int bitstream_framenum,   int sequence_framenum,unsigned char*dst);void Output_Last_Frame_of_Sequence (int framenum,unsigned char *dst);/* getvlc.c */int Get_macroblock_type (void);int Get_motion_code (void);int Get_dmvector (void);int Get_coded_block_pattern (void);int Get_macroblock_address_increment (void);int Get_Luma_DC_dct_diff (void);int Get_Chroma_DC_dct_diff (void);/* idct.c */extern void Fast_IDCT (short *block);extern void Initialize_Fast_IDCT (void);extern void MMX_IDCT(short *block);			//
/* Reference_IDCT.c */void Initialize_Reference_IDCT (void);void Reference_IDCT (short *block);/* motion.c */void motion_vectors (int PMV[2][2][2], int dmvector[2],  int motion_vertical_field_select[2][2], int s, int motion_vector_count,   int mv_format, int h_r_size, int v_r_size, int dmv, int mvscale);void motion_vector (int *PMV, int *dmvector,  int h_r_size, int v_r_size, int dmv, int mvscale, int full_pel_vector);void Dual_Prime_Arithmetic (int DMV[][2], int *dmvector, int mvx, int mvy);/* mpeg2dec.c */void Error (char *text);void Warning (char *text);void Print_Bits (int code, int bits, int len);
int MpegDec(CString infile,CString outfile);
int MpegDecM(CString infile,unsigned char *dst, int framenum,int frameno);
void Decode_BitstreamHead(CString infile);
BOOL Decode_BitstreamFrame(unsigned char *dst);
void Decode_BitstreamEnd();

////////////////////////


HANDLE OpenMpeg2(char* infile, void *callback);
short DecodeMpeg2(HANDLE hDecode, unsigned char *dst, long framenum1,long frameno,short Mode,long stride);
void GetHeader1(HANDLE hDecode);
void CloseMpeg2(HANDLE hDecode);
void GetTotal(HANDLE hDecode,long* total);
/////////
/* recon.c */void form_predictions (int bx, int by, int macroblock_type,   int motion_type, int PMV[2][2][2], int motion_vertical_field_select[2][2],   int dmvector[2], int stwtype);/* spatscal.c */void Spatial_Prediction (void);/* store.c */void Write_Frame (unsigned char *src[], int frame);#ifdef DISPLAY/* display.c */void Initialize_Display_Process (char *name);void Terminate_Display_Process (void);void Display_Second_Field (void);void dither (unsigned char *src[]);void Initialize_Dither_Matrix (void);#endif/* global variables */EXTERN char Version[]#ifdef GLOBAL  ="mpeg2decode V1.2a, 96/07/19"#endif;EXTERN char Author[]#ifdef GLOBAL  ="(C) 1996, MPEG Software Simulation Group"#endif;/* zig-zag and alternate scan patterns */EXTERN unsigned char scan[2][64]#ifdef GLOBAL={  { /* Zig-Zag scan pattern  */    0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,    12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,    35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,    58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63  },  { /* Alternate scan pattern */    0,8,16,24,1,9,2,10,17,25,32,40,48,56,57,49,    41,33,26,18,3,11,4,12,19,27,34,42,50,58,35,43,    51,59,20,28,5,13,6,14,21,29,36,44,52,60,37,45,    53,61,22,30,7,15,23,31,38,46,54,62,39,47,55,63  }}#endif;/* default intra quantization matrix */EXTERN unsigned char default_intra_quantizer_matrix[64]#ifdef GLOBAL={  8, 16, 19, 22, 26, 27, 29, 34,  16, 16, 22, 24, 27, 29, 34, 37,  19, 22, 26, 27, 29, 34, 34, 38,  22, 22, 26, 27, 29, 34, 37, 40,  22, 26, 27, 29, 32, 35, 40, 48,  26, 27, 29, 32, 35, 40, 48, 58,  26, 27, 29, 34, 38, 46, 56, 69,  27, 29, 35, 38, 46, 56, 69, 83}#endif;/* non-linear quantization coefficient table */EXTERN unsigned char Non_Linear_quantizer_scale[32]#ifdef GLOBAL={   0, 1, 2, 3, 4, 5, 6, 7,   8,10,12,14,16,18,20,22,  24,28,32,36,40,44,48,52,  56,64,72,80,88,96,104,112}#endif;/* color space conversion coefficients * for YCbCr -> RGB mapping * * entries are {crv,cbu,cgu,cgv} * * crv=(255/224)*65536*(1-cr)/0.5 * cbu=(255/224)*65536*(1-cb)/0.5 * cgu=(255/224)*65536*(cb/cg)*(1-cb)/0.5 * cgv=(255/224)*65536*(cr/cg)*(1-cr)/0.5 * * where Y=cr*R+cg*G+cb*B (cr+cg+cb=1) *//* ISO/IEC 13818-2 section 6.3.6 sequence_display_extension() */EXTERN int Inverse_Table_6_9[8][4]#ifdef GLOBAL={  {117504, 138453, 13954, 34903}, /* no sequence_display_extension */  {117504, 138453, 13954, 34903}, /* ITU-R Rec. 709 (1990) */  {104597, 132201, 25675, 53279}, /* unspecified */  {104597, 132201, 25675, 53279}, /* reserved */  {104448, 132798, 24759, 53109}, /* FCC */  {104597, 132201, 25675, 53279}, /* ITU-R Rec. 624-4 System B, G */  {104597, 132201, 25675, 53279}, /* SMPTE 170M */  {117579, 136230, 16907, 35559}  /* SMPTE 240M (1987) */}#endif;/* output types (Output_Type) */#define T_YUV   0#define T_SIF   1#define T_TGA   2#define T_PPM   3#define T_X11   4#define T_X11HIQ 5/* decoder operation control variables */EXTERN int Output_Type;EXTERN int hiQdither;


/* decoder operation control flags */EXTERN int Quiet_Flag;EXTERN int Trace_Flag;EXTERN int Verbose_Flag;EXTERN int Two_Streams;EXTERN int Spatial_Flag;EXTERN int Reference_IDCT_Flag;EXTERN int Frame_Store_Flag;EXTERN int System_Stream_Flag;EXTERN int Display_Progressive_Flag;EXTERN int Ersatz_Flag;EXTERN int Big_Picture_Flag;EXTERN int Verify_Flag;EXTERN int Stats_Flag;EXTERN int User_Data_Flag;EXTERN int Main_Bitstream_Flag;
EXTERN int Fault_Flag;/* filenames */EXTERN char *Output_Picture_Filename;EXTERN char *Substitute_Picture_Filename;EXTERN char *Main_Bitstream_Filename; EXTERN char *Enhancement_Layer_Bitstream_Filename; /* buffers for multiuse purposes */EXTERN char Error_Text[256];EXTERN unsigned char *Clip;/* pointers to generic picture buffers */EXTERN unsigned char *backward_reference_frame[3];EXTERN unsigned char *forward_reference_frame[3];EXTERN unsigned char *auxframe[3];EXTERN unsigned char *current_frame[3];EXTERN unsigned char *substitute_frame[3];/* pointers to scalability picture buffers */EXTERN unsigned char *llframe0[3];EXTERN unsigned char *llframe1[3];EXTERN short *lltmp;EXTERN char *Lower_Layer_Picture_Filename;/* non-normative variables derived from normative elements */EXTERN int Coded_Picture_Width;EXTERN int Coded_Picture_Height;EXTERN int Chroma_Width;EXTERN int Chroma_Height;EXTERN int block_count;EXTERN int Second_Field;EXTERN int profile, level;/* normative derived variables (as per ISO/IEC 13818-2) */EXTERN int horizontal_size;EXTERN int vertical_size;EXTERN int mb_width;EXTERN int mb_height;EXTERN double bit_rate;EXTERN double frame_rate; /* headers *//* ISO/IEC 13818-2 section 6.2.2.1:  sequence_header() */EXTERN int aspect_ratio_information;EXTERN int frame_rate_code; EXTERN int bit_rate_value; EXTERN int vbv_buffer_size;EXTERN int constrained_parameters_flag;/* ISO/IEC 13818-2 section 6.2.2.3:  sequence_extension() */EXTERN int profile_and_level_indication;EXTERN int progressive_sequence;EXTERN int chroma_format;EXTERN int low_delay;EXTERN int frame_rate_extension_n;EXTERN int frame_rate_extension_d;/* ISO/IEC 13818-2 section 6.2.2.4:  sequence_display_extension() */EXTERN int video_format;  EXTERN int color_description;EXTERN int color_primaries;EXTERN int transfer_characteristics;EXTERN int matrix_coefficients;EXTERN int display_horizontal_size;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?