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

📄 defines.h

📁 H.264编码解码器源码(c语言).zip
💻 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 + -