⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.h

📁 mpeg2编码解码源程序代码
💻 H
📖 第 1 页 / 共 3 页
字号:
	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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -