📄 defines.h
字号:
/*! ************************************************************************** * \file defines.h * * \brief * Headerfile containing some useful global definitions * * \author * Detlev Marpe * Copyright (C) 2000 HEINRICH HERTZ INSTITUTE All Rights Reserved. * * \date * 21. March 2001 ************************************************************************** */#ifndef _DEFINES_H_#define _DEFINES_H_
#define G50_SPS
#if defined _DEBUG
#define TRACE 1 //!< 0:Trace off 1:Trace on
#else
#define TRACE 0 //!< 0:Trace off 1:Trace on
#endiftypedef unsigned char byte; //!< byte type definition// APJ: Added the following define#define PROFILE_IDC 88#define LEVEL_IDC 21
#define LIST_0 0
#define LIST_1 1
// CAVLC#define LUMA 0#define LUMA_INTRA16x16DC 1#define LUMA_INTRA16x16AC 2#define LEVEL_NUM 6#define TOTRUN_NUM 15#define RUNBEFORE_NUM 7#define MAX_NO_POC_FRAMES 10 //size of poc ref array#define NONREFFRAME 0 // used with push_poc#define REFFRAME 1
#define ABIPRED//--- block types for CABAC#define LUMA_16DC 0#define LUMA_16AC 1#define LUMA_8x8 2#define LUMA_8x4 3#define LUMA_4x8 4#define LUMA_4x4 5#define CHROMA_DC 6#define CHROMA_AC 7#define NUM_BLOCK_TYPES 8#define clamp(a,b,c) ( (a)<(b) ? (b) : ((a)>(c)?(c):(a)) ) //!< clamp a to the range of [b;c]// Constants for the interim file format#define WORKING_DRAFT_MAJOR_NO 0 // inidicate the working draft version number#define WORKING_DRAFT_MINOR_NO 4#define INTERIM_FILE_MAJOR_NO 0 // indicate interim file format version number#define INTERIM_FILE_MINOR_NO 1#define _FAST_FULL_ME_#define _FULL_SEARCH_RANGE_#define _ADAPT_LAST_GROUP_#define _CHANGE_QP_#define _ADDITIONAL_REFERENCE_FRAME_#define _LEAKYBUCKET_// #define _CHECK_MULTI_BUFFER_1_// #define _CHECK_MULTI_BUFFER_2_// ---------------------------------------------------------------------------------// FLAGS and DEFINES for new chroma intra prediction, Dzung Hoang// Threshold values to zero out quantized transform coefficients.// Recommend that _CHROMA_COEFF_COST_ be low to improve chroma quality#define _LUMA_COEFF_COST_ 4 //!< threshold for luma coeffs#define _CHROMA_COEFF_COST_ 4 //!< threshold for chroma coeffs, used to be 7#define IMG_PAD_SIZE 4 //!< Number of pixels padded around the reference frame (>=4)#define BDIRECTINTRA 1 //!< Direct SpatioTemporal Prediction #define absm(A) ((A)<(0) ? (-(A)):(A)) //!< abs macro, faster than procedure#define MAX_VALUE 999999 //!< used for start value for some variables#define Clip1(a) ((a)>255?255:((a)<0?0:(a)))#define Clip3(min,max,val) (((val)<(min))?(min):(((val)>(max))?(max):(val)))#define P8x8 8#define I4MB 9#define I16MB 10#define IBLOCK 11#define SI4MB 12#define MAXMODE 13#define LAMBDA_ACCURACY_BITS 16#define LAMBDA_FACTOR(lambda) ((int)((double)(1<<LAMBDA_ACCURACY_BITS)*lambda+0.5))#define WEIGHTED_COST(factor,bits) (((factor)*(bits))>>LAMBDA_ACCURACY_BITS)#define MV_COST(f,s,cx,cy,px,py) (WEIGHTED_COST(f,mvbits[((cx)<<(s))-px]+mvbits[((cy)<<(s))-py]))#define REF_COST(f,ref) (WEIGHTED_COST(f,refbits[(ref)]))#define BWD_IDX(ref) (((ref)<2)? 1-(ref): (ref))#define REF_COST_FWD(f,ref) (WEIGHTED_COST(f,((img->num_ref_idx_l0_active==1)? 0:refbits[(ref)])))#define REF_COST_BWD(f,ref) (WEIGHTED_COST(f,((img->num_ref_idx_l1_active==1)? 0:BWD_IDX(refbits[ref]))))#define IS_INTRA(MB) ((MB)->mb_type==I4MB || (MB)->mb_type==I16MB)#define IS_NEWINTRA(MB) ((MB)->mb_type==I16MB)#define IS_OLDINTRA(MB) ((MB)->mb_type==I4MB)#define IS_INTER(MB) ((MB)->mb_type!=I4MB && (MB)->mb_type!=I16MB)#define IS_INTERMV(MB) ((MB)->mb_type!=I4MB && (MB)->mb_type!=I16MB && (MB)->mb_type!=0)
#define IS_DIRECT(MB) ((MB)->mb_type==0 && (img -> type==B_SLICE))#define IS_COPY(MB) ((MB)->mb_type==0 && (img ->type==P_SLICE||img ->type==SP_SLICE));#define IS_P8x8(MB) ((MB)->mb_type==P8x8)// Quantization parameter range#define MIN_QP 0#define MAX_QP 51#define SHIFT_QP 12#define LOG2_MAX_FRAME_NUM_MINUS4 4 // POC200301 moved from defines.h#define LOG2_MAX_PIC_ORDER_CNT_LSB_MINUS4 4 // POC200301 newly added// Direct Mode types#define DIR_TEMPORAL 0 //!< Temporal Direct Mode#define DIR_SPATIAL 1 //!< Spatial Direct Mode#define MAX_REFERENCE_PICTURES 15#define BLOCK_SIZE 4#define MB_BLOCK_SIZE 16#define NO_INTRA_PMODE 9 //!< #intra prediction modes//!< 4x4 intra prediction modes#define VERT_PRED 0#define HOR_PRED 1#define DC_PRED 2#define DIAG_DOWN_LEFT_PRED 3#define DIAG_DOWN_RIGHT_PRED 4#define VERT_RIGHT_PRED 5#define HOR_DOWN_PRED 6#define VERT_LEFT_PRED 7#define HOR_UP_PRED 8// 16x16 intra prediction modes#define VERT_PRED_16 0#define HOR_PRED_16 1#define DC_PRED_16 2#define PLANE_16 3// 8x8 chroma intra prediction modes#define DC_PRED_8 0#define HOR_PRED_8 1#define VERT_PRED_8 2#define PLANE_8 3/*// image formats#define SUB_QCIF 0 // GH added picture formats#define QCIF 1#define CIF 2#define CIF_4 3 // GH added picture formats#define CIF_16 4 // GH added picture formats#define CUSTOM 5 // GH added picture formats// QCIF format#define IMG_WIDTH 176#define IMG_HEIGHT 144#define IMG_WIDTH_CR 88#define IMG_HEIGHT_CR 72*/#define INIT_FRAME_RATE 30#define EOS 1 //!< End Of Sequence#define MVPRED_MEDIAN 0#define MVPRED_L 1#define MVPRED_U 2#define MVPRED_UR 3#define BLOCK_MULTIPLE (MB_BLOCK_SIZE/BLOCK_SIZE)#define MAX_SYMBOLS_PER_MB 1200 //!< Maximum number of different syntax elements for one MB // CAVLC needs more symbols per MB#define MAX_PART_NR 3 /*!< Maximum number of different data partitions. Some reasonable number which should reflect what is currently defined in the SE2Partition map (elements.h) */#define MAXPICTURETYPESEQUENCELEN 100 /*!< Maximum size of the string that defines the picture types to be coded, e.g. "IBBPBBPBB" *///Start code and Emulation Prevention need this to be defined in identical manner at encoder and decoder#define ZEROBYTES_SHORTSTARTCODE 2 //indicates the number of zero bytes in the short start-code prefix#define BIPRED_SIMPLE 1#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -