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

📄 global.h

📁 音视频编解码的H.263协议-C语言编写
💻 H
字号:
/* choose between declaration (GLOBAL undefined) * and definition (GLOBAL defined) * GLOBAL is defined in exactly one file (tmndec.c) */#ifndef GLOBAL#define EXTERN extern#else#define EXTERN#endif/* Some macros */#define mmax(a, b)        ((a) > (b) ? (a) : (b))#define mmin(a, b)        ((a) < (b) ? (a) : (b))#define mnint(a)        ((a) < 0 ? (int)(a - 0.5) : (int)(a + 0.5))#define sign(a)         ((a) < 0 ? -1 : 1)/* prototypes of global functions *//* getbits.c */void initbits(void);void fillbfr(void);unsigned int showbits(int n);unsigned int getbits1(void);void flushbits(int n);unsigned int getbits(int n);/* getblk.c */void getblock(int comp, int mode);void get_sac_block(int comp, int mode);/* gethdr.c */int getheader(void);void startcode(void);/* getpic.c */void getpicture(int *framenum);void putlast(int framenum);/* getvlc.c */int getTMNMV(void);int getMCBPC(void);int getMODB(void);int getMCBPCintra(void);int getCBPY(void);/* idct.c */void idct(short *block);void init_idct(void);/* idctref.c */void init_idctref(void);void idctref(short *block);/* tmndec.c */void error(char *text);void printbits(int code, int bits, int len);/* recon.c */void reconstruct(int bx, int by, int P, int bdx, int bdy);/* store.c */void storeframe(unsigned char *src[], int frame);/* sac.c */int decode_a_symbol(int cumul_freq[ ]);void decoder_reset( );void init_display(int);void exit_display(void);void dither(unsigned char *src[]);void init_dither(void);/* dither.c */void ord4x4_dither_init(void);void ord4x4_dither_frame(unsigned char *[], unsigned char *);/* yuv2rgb.c */void Color16DitherImage(unsigned char *[], unsigned char *);void Color32DitherImage(unsigned char *[], unsigned char *);void InitColorDither(int);/* yuvrgb24.c */void ConvertYUVtoRGB(  unsigned char *src0,  unsigned char *src1,  unsigned char *src2,  unsigned char *dst_ori,  int width,  int height);/* global variables */EXTERN char version[]#ifdef GLOBAL  ="tmndecode v2.0\n(C) 1995, 1996 Telenor R&D, Norway\n"#endif;/* zig-zag scan */EXTERN unsigned char zig_zag_scan[64]#ifdef GLOBAL={  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}#endif;/* color space conversion coefficients * * 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) */EXTERN int convmat[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;EXTERN int quiet;EXTERN int trace;EXTERN char errortext[256];EXTERN unsigned char *refframe[3],*oldrefframe[3],*bframe[3],*newframe[3];EXTERN unsigned char *edgeframe[3], *edgeframeorig[3], *exnewframe[3];EXTERN int MV[2][5][MBR+1][MBC+2];EXTERN int modemap[MBR+1][MBC+2];EXTERN unsigned char *clp;EXTERN int horizontal_size,vertical_size,mb_width,mb_height;EXTERN int coded_picture_width, coded_picture_height;EXTERN int chrom_width,chrom_height,blk_cnt;EXTERN int pict_type,newgob;EXTERN int mv_outside_frame,syntax_arith_coding,adv_pred_mode,pb_frame;EXTERN int long_vectors;EXTERN int fault,expand;EXTERN int verbose;EXTERN int refidct;EXTERN int matrix_coefficients;EXTERN int temp_ref, prev_temp_ref, quant, source_format;#ifdef USE_TIMEEXTERN int framerate;#ifndef WIN32EXTERN struct timeval tftarget;#elseEXTERN unsigned int targetTime;#endif#endifEXTERN int trd, trb, bscan, bquant;EXTERN int bscan_tab[]#ifdef GLOBAL= {2,4,6,8}#endif;EXTERN int bquant_tab[]#ifdef GLOBAL= {5,6,7,8}#endif;EXTERN int OM[5][8][8]#ifdef GLOBAL= {{  {4,5,5,5,5,5,5,4},  {5,5,5,5,5,5,5,5},  {5,5,6,6,6,6,5,5},  {5,5,6,6,6,6,5,5},  {5,5,6,6,6,6,5,5},  {5,5,6,6,6,6,5,5},  {5,5,5,5,5,5,5,5},  {4,5,5,5,5,5,5,4},},{  {2,2,2,2,2,2,2,2},  {1,1,2,2,2,2,1,1},  {1,1,1,1,1,1,1,1},  {1,1,1,1,1,1,1,1},  {0,0,0,0,0,0,0,0},  {0,0,0,0,0,0,0,0},  {0,0,0,0,0,0,0,0},  {0,0,0,0,0,0,0,0},},{  {0,0,0,0,0,0,0,0},  {0,0,0,0,0,0,0,0},  {0,0,0,0,0,0,0,0},  {0,0,0,0,0,0,0,0},  {1,1,1,1,1,1,1,1},  {1,1,1,1,1,1,1,1},  {1,1,2,2,2,2,1,1},  {2,2,2,2,2,2,2,2},},{  {0,0,0,0,1,1,1,2},  {0,0,0,0,1,1,2,2},  {0,0,0,0,1,1,2,2},  {0,0,0,0,1,1,2,2},  {0,0,0,0,1,1,2,2},  {0,0,0,0,1,1,2,2},  {0,0,0,0,1,1,2,2},  {0,0,0,0,1,1,1,2},},{  {2,1,1,1,0,0,0,0},  {2,2,1,1,0,0,0,0},  {2,2,1,1,0,0,0,0},  {2,2,1,1,0,0,0,0},  {2,2,1,1,0,0,0,0},  {2,2,1,1,0,0,0,0},  {2,2,1,1,0,0,0,0},  {2,1,1,1,0,0,0,0},}}#endif;EXTERN int roundtab[16]#ifdef GLOBAL=  {0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2}#endif;/* output */EXTERN char *outputname;EXTERN int outtype;#define T_YUV      0#define T_SIF      1#define T_TGA      2#define T_PPM      3#define T_X11      4#define T_YUV_CONC 5#define T_WIN      6EXTERN struct _ld {  /* bit input */  unsigned char *InData;  unsigned char *OutData;  int		InFrameSize;  unsigned char rdbfr[2051];  unsigned char *rdptr;  unsigned char inbfr[16];  int incnt;  int bitcnt;  /* block data */  short block[12][64];};EXTERN struct _ld *ld;

⌨️ 快捷键说明

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