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

📄 global.h

📁 mpeg2编码解码源程序代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#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;EXTERN int display_vertical_size;


/////////////////////////////////////
EXTERN BOOL SEQEND;
EXTERN double factor;
EXTERN BOOL  OK_ID;
EXTERN long tframe,tsec,tminute,thour;
EXTERN  long TotalFrame;
EXTERN long MaxFrame;
#define PAL 1
#define NTSC 2
EXTERN _int64 FileSize;



EXTERN struct header_data {
 long headsize;
 long totalframe;
/* normative derived variables (as per ISO/IEC 13818-2) */
 short horizontal_size;
 short vertical_size;
 short mb_width;
 short mb_height;
 double bit_rate;
 double frame_rate; 
/* headers */
/* ISO/IEC 13818-2 section 6.2.2.1:  sequence_header() */
 short aspect_ratio_information;
/* ISO/IEC 13818-2 section 6.2.2.3:  sequence_extension() */
 short chroma_format;
/* ISO/IEC 13818-2 section 6.2.2.4:  sequence_display_extension() */
 short video_format; 
 short color_primaries;
 short transfer_characteristics;
 short matrix_coefficients;
 short display_horizontal_size;
 short display_vertical_size;
 long res1;
 long res2;
 long res3;
 long res4;
};
/* ISO/IEC 13818-2 section 6.2.3: picture_header() */EXTERN int temporal_reference;EXTERN int picture_coding_type;EXTERN int vbv_delay;EXTERN int full_pel_forward_vector;EXTERN int forward_f_code;EXTERN int full_pel_backward_vector;EXTERN int backward_f_code;/* ISO/IEC 13818-2 section 6.2.3.1: picture_coding_extension() header */EXTERN int f_code[2][2];EXTERN int intra_dc_precision;EXTERN int picture_structure;EXTERN int top_field_first;EXTERN int frame_pred_frame_dct;EXTERN int concealment_motion_vectors;EXTERN int intra_vlc_format;EXTERN int repeat_first_field;EXTERN int chroma_420_type;EXTERN int progressive_frame;EXTERN int composite_display_flag;EXTERN int v_axis;EXTERN int field_sequence;EXTERN int sub_carrier;EXTERN int burst_amplitude;EXTERN int sub_carrier_phase;/* ISO/IEC 13818-2 section 6.2.3.3: picture_display_extension() header */EXTERN int frame_center_horizontal_offset[3];EXTERN int frame_center_vertical_offset[3];/* ISO/IEC 13818-2 section 6.2.2.5: sequence_scalable_extension() header */EXTERN int layer_id;EXTERN int lower_layer_prediction_horizontal_size;EXTERN int lower_layer_prediction_vertical_size;EXTERN int horizontal_subsampling_factor_m;EXTERN int horizontal_subsampling_factor_n;EXTERN int vertical_subsampling_factor_m;EXTERN int vertical_subsampling_factor_n;/* ISO/IEC 13818-2 section 6.2.3.5: picture_spatial_scalable_extension() header */EXTERN int lower_layer_temporal_reference;EXTERN int lower_layer_horizontal_offset;EXTERN int lower_layer_vertical_offset;EXTERN int spatial_temporal_weight_code_table_index;EXTERN int lower_layer_progressive_frame;EXTERN int lower_layer_deinterlaced_field_select;/* ISO/IEC 13818-2 section 6.2.3.6: copyright_extension() header */EXTERN int copyright_flag;EXTERN int copyright_identifier;EXTERN int original_or_copy;EXTERN int copyright_number_1;EXTERN int copyright_number_2;EXTERN int copyright_number_3;/* ISO/IEC 13818-2 section 6.2.2.6: group_of_pictures_header()  */EXTERN int drop_flag;EXTERN int hour;EXTERN int minute;EXTERN int sec;EXTERN int frame;EXTERN int closed_gop;EXTERN int broken_link;/* layer specific variables (needed for SNR and DP scalability) */EXTERN struct layer_data {  /* bit input */  int Infile;
  LPBYTE lpData;
  long length;
  long size;
  long mode;  unsigned char Rdbfr[2048];  unsigned char *Rdptr;  unsigned char Inbfr[16];  /* from mpeg2play */  unsigned int Bfr;  unsigned char *Rdmax;  int Incnt;  int Bitcnt;  /* sequence header and quant_matrix_extension() */  int intra_quantizer_matrix[64];  int non_intra_quantizer_matrix[64];  int chroma_intra_quantizer_matrix[64];  int chroma_non_intra_quantizer_matrix[64];    int load_intra_quantizer_matrix;  int load_non_intra_quantizer_matrix;  int load_chroma_intra_quantizer_matrix;  int load_chroma_non_intra_quantizer_matrix;  int MPEG2_Flag;  /* sequence scalable extension */  int scalable_mode;  /* picture coding extension */  int q_scale_type;  int alternate_scan;  /* picture spatial scalable extension */  int pict_scal;  /* slice/macroblock */  int priority_breakpoint;  int quantizer_scale;  int intra_slice;  short block[12][64];
  } base, enhan, *ld;///
EXTERN struct environment_data {
 short hFilesize;
 int  infile;
 long I_position;
 long I_bitno;
 long I_sqeno;
 _int64 cur_position;
 long cur_bitno;
 long cur_sqeno;
 short N;
 short M;
 short hour;
 short minute;
 short sec;
 short frame;
 short lframe;
 short thour;
 short tminute;
 short tsec;
 short tframe;
 short tlframe;
 int System_Stream_Flag;
 double factor;
 int block_count;
 int OK_ID;
 _int64 FileSize;

 /* pointers to generic picture buffers */
unsigned char *backward_reference_frame[3];
unsigned char *forward_reference_frame[3];
unsigned char *auxframe[3];
unsigned char *current_frame[3];
unsigned char *substitute_frame[3];
long  mb_width;
long  mb_height;
long Chroma_Width;
long  Chroma_Height;
  



 	
 long res1;
 long res2;
 long res3;
 long res4;
 layer_data *ld;
 long mode;
 long total;
 long width;
 long height;
 long color;
 long frameno;
 double frame_rate;
};#ifdef VERIFYEXTERN int verify_sequence_header;EXTERN int verify_group_of_pictures_header;EXTERN int verify_picture_header;EXTERN int verify_slice_header;EXTERN int verify_sequence_extension;EXTERN int verify_sequence_display_extension;EXTERN int verify_quant_matrix_extension;EXTERN int verify_sequence_scalable_extension;EXTERN int verify_picture_display_extension;EXTERN int verify_picture_coding_extension;EXTERN int verify_picture_spatial_scalable_extension;EXTERN int verify_picture_temporal_scalable_extension;EXTERN int verify_copyright_extension;#endif /* VERIFY */EXTERN int Decode_Layer;/* verify.c */#ifdef VERIFYvoid Check_Headers (int Bitstream_Framenum, int Sequence_Framenum);void Clear_Verify_Headers (void);#endif /* VERIFY */EXTERN int global_MBA;EXTERN int global_pic;EXTERN int True_Framenum;
EXTERN unsigned char* Framedst;

⌨️ 快捷键说明

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