亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? global.h

?? Mobile IP VCEG的信道模擬程序
?? H
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************************
*
*  global.h for H.26L encoder.
*  Copyright (C) 1999  Telenor Satellite Services,Norway
*                      Ericsson Radio Systems, Sweden
*
*  Contacts:
*  Inge Lille-Lang鴜               <inge.lille-langoy@telenor.com>
*
*  Telenor Satellite Services
*  Keysers gt.13                       tel.:   +47 23 13 86 98
*  N-0130 Oslo,Norway                  fax.:   +47 22 77 79 80
*
*  Rickard Sjoberg                 <rickard.sjoberg@era.ericsson.se>
*
*  Ericsson Radio Systems
*  KI/ERA/T/VV
*  164 80 Stockholm, Sweden
*
************************************************************************/
#ifndef _GLOBAL_H_
#define _GLOBAL_H_

#include <stdio.h>
#include "defines.h"

#ifndef WIN32
#include "minmax.h"
#endif

/***********************************************************************
 * T y p e    d e f i n i t i o n s    f o r    T M L  
 ***********************************************************************
 */

typedef unsigned char byte;
#define pel_t byte

/* Introduced by TOM */
/* Data Partitioning Modes */
typedef enum
{
	PAR_DP_1,		/* no data partitioning is supported    */
	PAR_DP_CABAC	/*data partitioning for CABAC, extra partition for UVLC-Header*/
} PAR_DP_TYPE;


/* Output File Types */
typedef enum
{
	PAR_OF_26L   /* Current TML description             */
} PAR_OF_TYPE;
/* End Introduced by TOM */


typedef enum {
	FALSE,
	TRUE
} Boolean;


typedef enum {
	SE_HEADER,	
	SE_PTYPE,
	SE_MBTYPE,
	SE_REFFRAME,
#ifdef DQUANT
	SE_DELTA_QUANT,
#endif
	SE_INTRAPREDMODE,
	SE_MVD,
	SE_CBP_INTRA,
	SE_LUM_DC_INTRA,
	SE_CHR_DC_INTRA,
	SE_LUM_AC_INTRA,
	SE_CHR_AC_INTRA,
	SE_CBP_INTER,
	SE_LUM_DC_INTER,
	SE_CHR_DC_INTER,
	SE_LUM_AC_INTER,
	SE_CHR_AC_INTER,
	SE_BFRAME,
	SE_EOS,					
	SE_MAX_ELEMENTS	/* number of maximum syntax elements */
} SE_type;			/* substituting the definitions in element.h */


typedef enum {
	INTER_MB,
	INTRA_MB_4x4,
	INTRA_MB_16x16
} IntraInterDecision;


typedef enum {
	BITS_TOTAL_MB,
	BITS_HEADER_MB,
	BITS_INTER_MB,
#ifdef DQUANT
	BITS_DELTA_QUANT_MB,
#endif
	BITS_CBP_MB,
	BITS_COEFF_Y_MB,
	BITS_COEFF_UV_MB,
	MAX_BITCOUNTER_MB
} BitCountType;


typedef enum {
	SINGLE_SCAN,
	DOUBLE_SCAN
} ScanMode;


typedef enum {
	NO_SLICES,
	FIXED_MB,
	FIXED_RATE,
	CALLBACK
} SliceMode;


typedef enum {
	UVLC,
	CABAC
} SymbolMode;


/***********************************************************************
 * D a t a    t y p e s   f o r  C A B A C  
 ***********************************************************************
 */
typedef struct 
{								
    unsigned int	Elow, Ehigh;
    unsigned int	Ebuffer;
    unsigned int	Ebits_to_go;
    unsigned int	Ebits_to_follow;
    byte			*Ecodestrm;
    int				*Ecodestrm_len;
} EncodingEnvironment;	/* struct to characterize the state of the arithmetic coding engine */

typedef EncodingEnvironment *EncodingEnvironmentPtr;

typedef struct 
{
    unsigned int	cum_freq[2];			/* cumulated frequency counts	*/
    Boolean			in_use;					/* flag for context in use		*/
	unsigned int	max_cum_freq;			/* maximum frequency count		*/ 

} BiContextType;							/* struct for context management*/

typedef BiContextType *BiContextTypePtr;


/**********************************************************************
 * C O N T E X T S   F O R   T M L   S Y N T A X   E L E M E N T S
 **********************************************************************
 */

#define NUM_MB_TYPE_CTX  10
#define NUM_MV_RES_CTX   10
#define NUM_REF_NO_CTX   6

typedef struct
{
	BiContextTypePtr mb_type_contexts[2];
	BiContextTypePtr mv_res_contexts[2];
	BiContextTypePtr ref_no_contexts;
} MotionInfoContexts;

#define NUM_IPR_CTX    2
#define NUM_CBP_CTX    4
#define NUM_TRANS_TYPE 9
#define NUM_LEVEL_CTX  4
#define NUM_RUN_CTX    2

typedef struct 
{
	BiContextTypePtr ipr_contexts[6]; 
	BiContextTypePtr cbp_contexts[2][3]; 
	BiContextTypePtr level_context[NUM_TRANS_TYPE];
	BiContextTypePtr run_context[NUM_TRANS_TYPE];
} TextureInfoContexts;

/************************ end of data type definition for CABAC ********************/


/***********************************************************************
 * N e w   D a t a    t y p e s   f o r    T M L  
 ***********************************************************************
 */

typedef struct syntaxelement {
	int					type;			/* type of syntax element for data part.*/
	int					value1;			/* numerical value of syntax element	*/
	int					value2;			/* for blocked symbols, e.g. run/level	*/
	int					len;			/* length of code						*/
	int					inf;			/* info part of UVLC code				*/
	unsigned int		bitpattern;		/* UVLC bitpattern                      */
	int					context;		/* CABAC context						*/
#if TRACE
	char				tracestring[100];	/* trace string						*/
#endif

	void	(*mapping)(int value1, int value2, int* len_ptr, int* info_ptr); // for mapping of syntaxElement to UVLC
	void	(*writing)(struct syntaxelement *, EncodingEnvironmentPtr);
			/* used for CABAC: refers to actual coding method of each individual syntax element type */
}	SyntaxElement; 

typedef struct macroblock
{
	int					currSEnr;					/* number of current syntax element */
	int					slice_nr;					/* slice number to which the MB belongs */
#ifndef DQUANT
	int					qp;							/* for future use */
#endif
#ifdef DQANT
	int					delte_qp;
#endif
	int					intraOrInter;
	int					bitcounter[MAX_BITCOUNTER_MB];
	struct macroblock	*mb_available[3][3];		/* pointer to neighboring MBs in a 3x3 window of current MB, which is located at [1][1] */
													/* NULL pointer identifies neighboring MBs which are unavailable */ 
		
	/* some storage of macroblock syntax elements for global access */
	int					mb_type;
	int					mb_imode;
	int					ref_frame;
	int					mvd[2][BLOCK_MULTIPLE][BLOCK_MULTIPLE][2];			/* indices correspond to [forw,backw][block_y][block_x][x,y] */
	int					intra_pred_modes[BLOCK_MULTIPLE*BLOCK_MULTIPLE];
	int					cbp;

} Macroblock;

typedef struct {
	int				byte_pos;			// current position in bitstream;
	int				bits_to_go;			// current bitcounter
	byte			byte_buf;			// current buffer for last written byte
	int				stored_byte_pos;	// storage for position in bitstream;
	int				stored_bits_to_go;	// storage for bitcounter
	int				header_len;
	byte			header_byte_buffer;
	byte			stored_byte_buf;	// storage for buffer of last written byte

	byte			*streamBuffer;		//  actual buffer for written bytes

} Bitstream;

typedef struct datapartition {

	Bitstream			*bitstream;
	EncodingEnvironment ee_cabac;
	
	int					(*writeSyntaxElement)(SyntaxElement *, struct datapartition *); 
						// virtual function;
						// actual method depends on chosen data partition and 
						// entropy coding method 
} DataPartition;

typedef struct {
	int					picture_id;
	int					slice_nr;    // not necessary but o.k.
	int					qp;
	int					picture_type; // picture type
	int					start_mb_nr;
	int					dp_mode;     // data partioning mode
	int					max_part_nr; // number of different partitions
	DataPartition		*partArr;    // array of partitions
	MotionInfoContexts	*mot_ctx;    // pointer to struct of context models for use in CABAC
	TextureInfoContexts	*tex_ctx;	 // pointer to struct of context models for use in CABAC


	Boolean				(*slice_too_big)(int bits_slice); // for use of callback functions

} Slice;
/******************************* ~DM ************************************/


/* GH: global picture format dependend buffers, mem allocation in image.c*/ 
byte   **imgY;               /* Encoded luma images  */
byte  ***imgUV;              /* Encoded croma images */
byte   **imgY_org;           /* Reference luma image */
byte  ***imgUV_org;          /* Reference croma image */
byte   **imgY_pf;            /* Post filter luma image */
byte  ***imgUV_pf;           /* Post filter croma image */
byte   **loopb;              /* array containing filter strenght for 4x4 luma block */
byte   **loopc;              /* array containing filter strenght for 4x4 chroma block */
 byte  ***mref;               /* 1/4 pix luma */
byte ****mcef;               /* pix chroma */
int    **img4Y_tmp;			 /* for quarter pel interpolation */
byte   **img8Y_tmp;			 /* for 1/8 pel interpolation */
byte   **imgY_tmp;           /* for loop filter */  
byte  ***imgUV_tmp;
int   ***tmp_mv;             /* motion vector buffer */
int    **refFrArr;           /* Array for reference frames of each block */

/* B pictures */
// motion vector : forward, backward, direct
int  ***tmp_fwMV;
int  ***tmp_bwMV;
int  ***dfMV;
int  ***dbMV;
int   **fw_refFrArr;
int   **bw_refFrArr;
byte  **mref_P;     //for B-frames: 1/4 pix luma for next P picture 
byte ***mcef_P;     //for B-frames: pix chroma for next P picture
byte  **nextP_imgY;
byte ***nextP_imgUV;
pel_t **Refbuf11;	// 1/1th pel (full pel) reference frame buffer
pel_t  *Refbuf11_P;	// 1/1th pel P picture buffer


int  Bframe_ctr, frame_no, nextP_tr;
int  tot_time;

char errortext[300];

typedef struct 
{
  float snr_y;                 /* current Y SNR                       */
  float snr_u;                 /* current U SNR                       */
  float snr_v;                 /* current V SNR                       */
  float snr_y1;                /* SNR Y(dB) first frame               */
  float snr_u1;                /* SNR U(dB) first frame               */
  float snr_v1;                /* SNR V(dB) first frame               */
  float snr_ya;                /* Average SNR Y(dB) remaining frames  */
  float snr_ua;                /* Average SNR U(dB) remaining frames  */
  float snr_va;                /* Average SNR V(dB) remaining frames  */
} SNRParameters;

typedef struct		           /* all input parameters                */
{
  int no_frames;                /* number of frames to be encoded                                              */
  int qp0;                      /* QP of first frame                                                           */
  int qpN;                      /* QP of remaining frames                                                      */
  int jumpd;                    /* number of frames to skip in input sequence (e.g 2 takes frame 0,3,6,9...)   */
  int mv_res;                   /* motion vector resolution: 0: 1/4-pel, 1: 1/8-pel							   */
  int hadamard;                 /* 0: 'normal' SAD in 1/3 pixel search.  1: use 4x4 Haphazard transform and '  */
                                /* Sum of absolute transform difference' in 1/3 pixel search                   */
  int search_range;             /* search range - integer pel search and 16x16 blocks.  The search window is   */
                                /* generally around the predicted vector. Max vector is 2xmcrange.  For 8x8    */
                                /* and 4x4 block sizes the search range is 1/2 of that for 16x16 blocks.       */
  int no_multpred;              /* 1: prediction from the last frame only. 2: prediction from the last or      */
                                /* second last frame etc.  Maximum 5 frames                                    */
  int img_width;                /* GH: if CUSTOM image format is chosen, use this size                         */
  int img_height;               /* GH: width and height must be a multiple of 16 pels                          */
  int yuv_format;               /* GH: YUV format (0=4:0:0, 1=4:2:0, 2=4:2:2, 3=4:4:4,currently only 4:2:0 is supported)*/
  int color_depth;              /* GH: YUV color depth per component in bit/pel (currently only 8 bit/pel is supported) */
  int intra_upd;                /* For error robustness. 0: no special action. 1: One GOB/frame is intra coded */
                                /* as regular 'update'. 2: One GOB every 2 frames is intra coded etc.          */
                                /* In connection with this intra update, restrictions is put on motion vectors */
                                /* to prevent errors to propagate from the past*/
  int blc_size[8][2];           /* array for different block sizes */
  int slice_mode;               /* Indicate what algorithm to use for setting slices */
  int slice_argument;           /* Argument to the specified slice algorithm */
  char infile[100];             /* YUV 4:2:0 input format*/
  char outfile[100];            /* H.26L compressed output bitstream*/
  char ReconFile[100];			// Reconstructed Pictures
  char TraceFile[100];			// Trace Outputs

  /* B pictures */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合色视频| 国产高清不卡一区二区| 国产在线播放一区| 欧美午夜电影网| 久久夜色精品国产欧美乱极品| 亚洲卡通欧美制服中文| 国产成人精品免费看| 日韩一级成人av| 一区二区三区在线观看欧美| 成人av影院在线| 久久美女高清视频| 免费观看一级特黄欧美大片| 欧美揉bbbbb揉bbbbb| 一区二区在线观看免费| 不卡一区二区三区四区| 欧美韩国日本一区| 国内久久精品视频| 日韩三级高清在线| 日韩精品一区第一页| 欧亚一区二区三区| 亚洲综合久久久久| 91久久人澡人人添人人爽欧美| 中文字幕乱码日本亚洲一区二区 | 日韩欧美电影在线| 亚洲不卡在线观看| 欧美午夜在线一二页| 亚洲综合色婷婷| 在线观看区一区二| 亚洲一区中文在线| 欧美性一级生活| 亚洲h在线观看| 在线电影欧美成精品| 亚洲电影中文字幕在线观看| 91黄视频在线观看| 亚洲高清不卡在线观看| 欧美日韩aaa| 日韩高清不卡在线| 欧美第一区第二区| 国产精品一区在线| 国产精品乱码妇女bbbb| jizzjizzjizz欧美| 一区二区理论电影在线观看| 欧美日韩三级在线| 久久电影网站中文字幕| 久久久亚洲国产美女国产盗摄| 国产91丝袜在线观看| 国产精品国产三级国产有无不卡| 91在线视频在线| 亚洲一级在线观看| 日韩精品一区二区三区视频在线观看 | 99精品在线免费| 玉米视频成人免费看| 4438x亚洲最大成人网| 韩国在线一区二区| 亚洲日韩欧美一区二区在线| 在线观看日韩一区| 蜜桃av噜噜一区二区三区小说| 精品国产一区二区亚洲人成毛片| 国产成人啪免费观看软件| 亚洲丝袜自拍清纯另类| 欧美日韩不卡在线| 国产在线国偷精品免费看| 亚洲婷婷综合色高清在线| 欧美色区777第一页| 国产一区二区主播在线| 亚洲蜜臀av乱码久久精品 | 国产精品丝袜久久久久久app| 日本电影亚洲天堂一区| 久久99最新地址| 亚洲精品免费在线播放| 欧美tickle裸体挠脚心vk| av成人动漫在线观看| 日本欧美肥老太交大片| 中文字幕中文字幕中文字幕亚洲无线| 在线一区二区三区四区五区| 激情六月婷婷久久| 亚洲自拍另类综合| 中文字幕免费一区| 精品国产一区二区亚洲人成毛片 | 精品国产精品网麻豆系列| 国产不卡视频一区二区三区| 亚洲一级二级在线| 国产日韩av一区| 欧美美女一区二区在线观看| av在线不卡网| 国产乱国产乱300精品| 亚洲成av人在线观看| 亚洲色图清纯唯美| 久久影音资源网| 欧美精品久久天天躁| 91亚洲精品乱码久久久久久蜜桃| 久久精工是国产品牌吗| 亚洲国产精品一区二区尤物区| 国产精品丝袜91| 欧美tickling网站挠脚心| 欧美乱妇一区二区三区不卡视频| 99r精品视频| 风间由美一区二区三区在线观看 | 亚洲国产综合在线| 亚洲精品在线观看视频| 日本亚洲电影天堂| 亚洲精品成人精品456| 久久综合久久综合亚洲| 日韩欧美aaaaaa| 91精品国产黑色紧身裤美女| 色婷婷久久久亚洲一区二区三区 | 久久九九国产精品| 欧美一区二区三区播放老司机| 欧美午夜片在线看| 91麻豆精品一区二区三区| 成人性视频免费网站| 国产麻豆精品theporn| 精品一区二区三区香蕉蜜桃| 日韩**一区毛片| 蜜臀av性久久久久蜜臀aⅴ流畅 | 成人一区二区视频| 豆国产96在线|亚洲| 成人开心网精品视频| 麻豆一区二区三| 男女男精品视频网| 日韩av电影免费观看高清完整版| 亚洲一区二区av在线| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲视频小说图片| 亚洲自拍偷拍图区| 麻豆精品久久久| 国产精品一二三区在线| 国产成人欧美日韩在线电影| av一区二区三区四区| 欧美性猛片aaaaaaa做受| 欧美理论在线播放| 久久精品亚洲乱码伦伦中文| 中文字幕精品一区 | 日韩一级大片在线观看| 精品卡一卡二卡三卡四在线| 国产欧美精品区一区二区三区 | 国产一区在线观看麻豆| 久久综合综合久久综合| 韩国女主播成人在线| 成人黄色一级视频| 欧美亚洲综合色| 91精品国产福利在线观看| 国产亚洲自拍一区| 亚洲精品欧美激情| 久久国产三级精品| 99这里只有精品| 51午夜精品国产| 国产精品欧美综合在线| 亚洲成人你懂的| 国产高清在线精品| 欧美午夜精品一区二区三区| 在线成人小视频| 国产精品久久久久久久蜜臀| 亚洲成a人在线观看| 国产成人精品三级麻豆| 欧美精品tushy高清| 国产精品少妇自拍| 午夜一区二区三区在线观看| 国产ts人妖一区二区| 欧美老人xxxx18| 亚洲免费在线视频| 麻豆一区二区三区| 一本到不卡免费一区二区| 亚洲精品在线网站| 亚洲成av人影院| 99精品黄色片免费大全| 精品国产一区二区三区忘忧草| 亚洲人成网站在线| 国产精品一区二区x88av| 欧美日韩视频专区在线播放| 综合中文字幕亚洲| 国产传媒欧美日韩成人| 欧美一区二区三区男人的天堂| 一区二区三区91| 99久久99久久久精品齐齐 | 日韩精品中午字幕| 亚洲综合色噜噜狠狠| 成人蜜臀av电影| 国产日韩高清在线| 国产综合久久久久久久久久久久| 欧美日韩国产高清一区| 亚洲免费资源在线播放| 成人网在线免费视频| 久久综合色8888| 国内成人自拍视频| 欧美xxx久久| 蜜桃av噜噜一区| 日韩欧美在线1卡| 日韩1区2区3区| 欧美一级高清片在线观看| 午夜精品久久久久久久久| 欧美性一二三区| 性久久久久久久| 欧美喷潮久久久xxxxx| 亚洲成a人片在线观看中文| 欧美日高清视频| 亚洲444eee在线观看| 91久久精品一区二区三区| 亚洲三级小视频| 在线观看视频一区二区|