Changeset 296 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TypeDef.h


Ignore:
Timestamp:
20 Feb 2013, 22:07:43 (11 years ago)
Author:
tech
Message:

Reintegrated branch 5.1-dev0 rev. 295.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TypeDef.h

    r211 r296  
    4141//! \ingroup TLibCommon
    4242//! \{
     43
     44// MV-HEVC
     45#define QC_IV_AS_LT_B0046                 1   //JCT3V-B0046: inter-view reference pictures are treated as long-term pictures
     46#define QC_REM_IDV_B0046                  1   //JCT3V-B0046: removal of IDV NAL unit type
     47#define DV_V_RESTRICTION_B0037            1   //JCT3V-B0037: disparity vector vertical range restriction
     48#define QC_TMVP_IDX_MOD_B0046             1   //JCT3V-B0046: the reference index for temporal merging candidate is set to 0, as defined in HEVC
     49
     50// 3D-HEVC
    4351#define QC_MVHEVC_B0046                   0   //JCT3V-B0046: disable 3DHEVC tools
    44 #define QC_IV_AS_LT_B0046                 1   //JCT3V-B0046: inter-view reference pictures are treated as long-term pictures
    45 #define QC_TMVP_IDX_MOD_B0046             1   //JCT3V-B0046: the reference index for temporal merging candidate is set to 0, as defined in HEVC
    46 #define QC_REM_IDV_B0046                  1   //JCT3V-B0046: removal of IDV NAL unit type
    47 #define FIX_DEL_NULLPTR                   1
    48 #define FIX_MISUSE_REFINDEX               1
    49 #define FIX_FCO_COMP_WARNING              1
    50 #define DV_V_RESTRICTION_B0037            1   // JCT3V-B0037 disparity vector vertical range restriction
    5152
    5253#if !QC_MVHEVC_B0046
    53 ///// ***** FIXES *********
    54 // A
    55 #define FIX_POZNAN_CABAC_INIT_FLAG        1
    56 #define FIX_LG_RESTRICTEDRESPRED_M24766   1
    57 
    58 // B
    59 #define FIX_LGE_IVMP_PARALLEL_MERGE_B0136 1
    60 #define FIX_RDO_NEGDIST                   1
    61 #define FIX_DMM_NEG_DIST                  1
    62 #define FIX_LGE_DVMCP_B0133               1
    63 
    64 
    65 // FCO
    66 #define FLEX_CODING_ORDER_M23723          1
    67 #if FLEX_CODING_ORDER_M23723
    68   #define DISABLE_FCO_FOR_VSO             0 // Optional compile settings to disable VSO with FCO.
    69 #endif
    70 
    71 ///// ***** PATCHES *********
    72 #define TMVP_DEPTH_SWITCH                 1   // JCT3V-B0092 additional encoder option only
    73 
    74 ///// ***** DEPTH MODELING MODES *********
     54
     55///// ***** DMM *********
    7556#define HHI_DMM_WEDGE_INTRA               1   // depth model modes independent on texture (explicit and intra-predicted Wedgelet prediction)
    7657#define HHI_DMM_PRED_TEX                  1   // depth model modes dependent on texture (inter-component Wedgelet and Contour prediction )
     58                                              // HHIQC_DMMFASTSEARCH_B0039, fast Wedgelet search for DMM modes 1 and 3
     59
    7760#define LGE_EDGE_INTRA_A0070              1   // JCT3V-A0070
     61
     62#define HHI_DMM_DELTADC_Q1_C0034          1   // JCT3V-C0034: no quantization and fast encoder search for DMM delta DC values
     63#if ( HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA ) && HHI_DMM_PRED_TEX
     64#define LGE_DMM3_SIMP_C0044               1
     65#endif
     66#define FIX_DMM_CTX_INIT_C0034            1   // JCT3V-C0034 fix for wrong init type of DMM contexts (UChar instead of Short)
     67
     68///// ***** SDC *********
    7869#define RWTH_SDC_DLT_B0036                1   // JCT3V-B0036: Simplified Depth Coding + Depth Lookup Table
    79 #define HHIQC_DMMFASTSEARCH_B0039         1   // JCT3V-B0039: fast Wedgelet search for DMM modes 1 and 3
    80 
    81 ///// ***** INTERVIEW MOTION VECTOR PREDICTION *********
    82 #define HHI_INTER_VIEW_MOTION_PRED        1   // inter-view motion parameter prediction
    83 #define SHARP_INTERVIEW_DECOUPLE_B0111    1   // JCT3V-B0111 decoupling inter-view candidate
    84 #define QC_MRG_CANS_B0048                 1   // JCT3V-B0048, B0086, B0069
    85 #if     QC_MRG_CANS_B0048
    86 #define OL_DISMV_POS_B0069                1   // different pos for disparity MV candidate, B0069
    87 #endif
    88 #define MTK_INTERVIEW_MERGE_A0049         1   // JCT3V-A0049 second part
    89 #if HHI_INTER_VIEW_MOTION_PRED         
    90 #define SAIT_IMPROV_MOTION_PRED_M24829    1   // improved inter-view motion vector prediction
    91 #else                                 
    92 #define SAIT_IMPROV_MOTION_PRED_M24829    0   
    93 #endif                                 
     70#if RWTH_SDC_DLT_B0036
     71#define SAIT_SDC_C0096                    1   // JCT3V-C0096: Improved Simple Depth Coding(removal of DMM2 among four SDC modes(DC, Planar, DMM1 and DMM2))
     72#endif
     73#define FIX_SDC_ENC_C0143                 1   // JCT3V-C0143 fix for unnecessary encoder checks in case of SDC
     74
     75///// ***** TMVP/AMVP *********
     76#define TMVP_DEPTH_SWITCH                 1   // JCT3V-B0092 additional encoder option only
     77#define QC_TMVP_MRG_REFIDX_C0047          1   // only enabled when QC_TMVP_IDX_MOD_B0046 is enabled.
     78#define INTER_VIEW_VECTOR_SCALING_C0115   1   // JCT3V-C0115 Inter-view vector scaling for TMVP & flag
     79#define INTER_VIEW_VECTOR_SCALING_C0116   1   // JCT3V-C0116 Inter-view vector scaling for AMVP
     80
     81///// ***** INTERVIEW MOTION PARAMETER PREDICTION *********
     82#define H3D_IVMP                          1   // Inter-view motion parameter prediction
     83                                              // HHI_INTER_VIEW_MOTION_PRED
     84                                              // SAIT_IMPROV_MOTION_PRED_M24829, improved inter-view motion vector prediction
     85                                              // SHARP_INTERVIEW_DECOUPLE_B0111, decoupling inter-view candidate
     86                                              // QC_MRG_CANS_B0048             , JCT3V-B0048, B0086, B0069
     87                                              // OL_DISMV_POS_B0069            , different pos for disparity MV candidate, B0069
     88                                              // MTK_INTERVIEW_MERGE_A0049     , second part
     89#define QC_AMVP_MRG_UNIFY_IVCAN_C0051     1
     90#define QC_C0051_FIXED_BY_MTK             1   // Bug fix for C0051 implementation
     91
    9492
    9593///// ***** INTERVIEW RESIDUAL PREDICTION *********
    96 #define HHI_INTER_VIEW_RESIDUAL_PRED      1   // inter-view residual prediction
    97 #if HHI_INTER_VIEW_RESIDUAL_PRED       
    98 #define LG_RESTRICTEDRESPRED_M24766       1   // restricted inter-view residual prediction
    99 #define QC_SIMPLIFIEDIVRP_M24938          1
     94#define H3D_IVRP                          1   // Inter-view residual prediction
     95                                              // HHI_INTER_VIEW_RESIDUAL_PRED
     96                                              // QC_SIMPLIFIEDIVRP_M24938
     97#if H3D_IVRP       
     98#define LG_RESTRICTEDRESPRED_M24766       1   // Restricted inter-view residual prediction
     99#define FIX_LG_RESTRICTEDRESPRED_M24766   1
    100100#else                                 
    101101#define LG_RESTRICTEDRESPRED_M24766       0
    102 #define QC_SIMPLIFIEDIVRP_M24938          0
    103 #endif
     102#endif
     103
     104#define MTK_MDIVRP_C0138                  1   // Mode-dependent inter-view residual prediction
     105#define MTK_C0138_FIXED                   1   // Fix for IBP coding structure in view direction (not CTC)
     106
    104107
    105108///// ***** DISPARITY VECTOR DERIVATION *********
    106 #define QC_MULTI_DIS_CAN_A0097            1   // JCT3V-A0097
    107 #define LGE_DVMCP_A0126                   1   // JCT3V-A0126     
    108 #define LGE_DVMCP_MEM_REDUCTION_B0135     1   // JCT3V-B0135     
    109 #define DV_DERIVATION_PARALLEL_B0096      1   // JCT3V-B0096, enable parallel derivation of disparity vector
    110 #define QC_SIMPLE_NBDV_B0047              1   // JCT3V-B0047
     109#define H3D_NBDV                          1   // Neighboring block disparity derivation
     110                                              // JCT3V-A0097
     111                                              // LGE_DVMCP_A0126
     112                                              // LGE_DVMCP_MEM_REDUCTION_B0135     
     113                                              // DV_DERIVATION_PARALLEL_B0096, enable parallel derivation of disparity vector
     114                                              // QC_SIMPLE_NBDV_B0047
     115                                              // FIX_LGE_DVMCP_B0133
     116                                              // LGE_IVMP_PARALLEL_MERGE_B0136, B0136 support of parallel merge/skip in disparity vector derivation
     117                                              // FIX_LGE_IVMP_PARALLEL_MERGE_B0136
     118
     119#define QC_NBDV_LDB_FIX_C0055             1   // JCT3V-C0055
     120#define MTK_SAIT_TEMPORAL_FIRST_ORDER_C0141_C0097     1   // JCT3V-C0141/C0097
     121#define MTK_RELEASE_DV_CONSTRAINT_C0129   1   // JCT3V-C0129
     122#define MTK_SIMPLIFY_DVTC_C0135           1   // JCT3V-C0135
    111123
    112124///// ***** MOTION PARAMETER INHERITANCE  *********
    113 #define HHI_MPI                           1   // motion parameter inheritance from texture picture for depth map coding
     125#define MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137   1   // JCT3V-C0137
     126#define HHI_MPI                           0   // motion parameter inheritance from texture picture for depth map coding
    114127#if HHI_MPI
    115128#define FIX_MPI_B0065                     1   // JCT3V-B0065, fix the MPI bug when RQT is off
     
    133146#if LGE_ILLUCOMP_B0045
    134147#define LGE_ILLUCOMP_B0045_ENCSIMP        1
     148#define FIX_LGE_ILLUCOMP_B0045            1
     149#define LGE_ILLUCOMP_DEPTH_C0046          1   // JCT2-C0046 Apply illumination compensation to depth
     150#if LGE_ILLUCOMP_DEPTH_C0046
     151#define FIX_ILLUCOMP_DEPTH                1
     152#endif
    135153#endif
    136154
     
    140158///// ***** QUADTREE LIMITATION *********
    141159#define OL_QTLIMIT_PREDCODING_B0068       1    //JCT3V-B0068
     160#define HHI_QTLPC_RAU_OFF_C0160           1   // JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units
    142161
    143162///// ***** OTHERS *********
    144163#define LG_ZEROINTRADEPTHRESI_A0087       1   // JCT2-A0087
    145 #define SONY_COLPIC_AVAILABILITY          1
    146164#define HHI_FULL_PEL_DEPTH_MAP_MV_ACC     1   // full-pel mv accuracy for depth maps
    147 #define VIDYO_VPS_INTEGRATION             1
    148 
    149 
    150 
    151 ///// ***** DEFINED PARAMETERS *********
    152 #if QC_MULTI_DIS_CAN_A0097                   
     165#define VIDYO_VPS_INTEGRATION             1   // Integration of VPS
     166#define HHI_DEPTH_INTRA_SEARCH_RAU_C0160  1   // JCT3V-C0160 change 1: full Intra search in depth random access units
     167#define FIX_POZNAN_CABAC_INIT_FLAG        1
     168
     169///// ***** FCO  *********
     170#define FLEX_CODING_ORDER_M23723          1
     171#if FLEX_CODING_ORDER_M23723
     172#define DISABLE_FCO_FOR_VSO               0 // Optional compile settings to disable VSO with FCO.
     173#endif
     174
     175///// ***** VSP *********
     176#define MERL_VSP_C0152                    1 // JCT3V-C0152: 1: enable VSP-related tools; 0: disable VSP-related tools
     177#if MERL_VSP_C0152
     178
     179/*
     180 * Two macros are used to configure combinations of JCT3V-C0152 and JCT3V-C0131
     181 *
     182 *   a) (full) A full JCT3V-C0152 implementation, including JCT3V-C0131
     183 *      #define MERL_VSP_COMPENSATION_C0152          1
     184 *      #define MERL_MTK_VSP_DVP_REFINE_C0152_C0131  1
     185 *
     186 *   b) (mvp2off) For partial JCT3V-C0152 excluding overlaps from JCT3V-C0131
     187 *      #define MERL_VSP_COMPENSATION_C0152          1
     188 *      #define MERL_MTK_VSP_DVP_REFINE_C0152_C0131  0
     189 *
     190 *   c) (nocand) For JCT3V-C0131 only
     191 *      #define MERL_VSP_COMPENSATION_C0152          0
     192 *      #define MERL_MTK_VSP_DVP_REFINE_C0152_C0131  1
     193 */
     194
     195#define MERL_VSP_COMPENSATION_C0152          1 // JCT3V-C0152: 1: add VSP merge candidate to merging candidate list; 0: not to add   (nocand).
     196#define MERL_MTK_VSP_DVP_REFINE_C0152_C0131  1 // JCT3V-C0152 && JCT3V-C0131: 1: refine disparity vector using a warped depth block; 0: not to refine  (mvp2off).
     197
     198#define MERL_VSP_BLOCKSIZE_C0152             4 // JCT3V-C0152: VSP block size, supported values: 1, 2 and 4.
     199#define VSP_MERGE_POS                        5 // JCT3V-C0152: fixed position of VSP candidate in merge list, supported values: 5.
     200#define LGE_SIMP_DVP_REFINE_C0112            1 // JCT3V-C0112: 1: simplification of refining disparity vector using a warped depth block
     201
     202#else // !MERL_VSP_C0152
     203#define MERL_VSP_COMPENSATION_C0152          0 // JCT3V-C0152: 1: add VSP merge candidate to merging candidate list; 0: not to add
     204#define MERL_MTK_VSP_DVP_REFINE_C0152_C0131  0 // JCT3V-C0152 && JCT3V-C0131: 1: refine disparity vector using a warped depth block; 0: not to refine
     205#define MERL_VSP_BLOCKSIZE_C0152             4 // JCT3V-C0152: VSP block size, supported values: 1, 2 and 4.
     206#define LGE_SIMP_DVP_REFINE_C0112            0 // JCT3V-C0112: 1: simplification of refining disparity vector using a warped depth block
     207#endif
     208
     209
     210///// ***** DERIVED PARAMETERS *********
     211#if H3D_NBDV                   
    153212#define DIS_CANS                          1
    154213#endif                                 
     
    172231
    173232
    174 #if LGE_DVMCP_A0126                           
     233#if H3D_NBDV                           
    175234#define DVFROM_LEFTBELOW                  1
    176235#define DVFROM_LEFT                       2
     
    182241
    183242
    184 #if HHIQC_DMMFASTSEARCH_B0039
     243#if HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA
    185244#define DMM3_SIMPLIFY_TR                  1
    186245#endif
     
    189248#if RWTH_SDC_DLT_B0036
    190249#define Log2( n ) ( log((double)n) / log(2.0) )
     250#define HS_REFERENCE_SUBSAMPLE_C0154      1
    191251#endif
    192252
    193253#define HHI_MPI_MERGE_POS                 0
    194254#endif
     255
     256
    195257///// ***** HM 6.1 *********
     258
     259//// REMOVED HM 6.1 Guard macros (corresponding to macros removed in HM 6.3.1)
     260/*
    196261#define SKIPFRAME_BUGFIX                  1 ///< bug fix to enable skipFrame at decoder
    197262#define START_DECODING_AT_CRA             1 ///< H0496, start decoding at clear random access point
    198263#define NO_COMBINED_PARALLEL              1 ///< Disallow any combined usage of parallel tools among Tile, EntropySlice and Wavefont
     264#define PARALLEL_MERGE                    1 ///< H0082 parallel merge/skip
     265#define MVP_AT_ENTROPYSLICE_BOUNDARY      1  //< H0362 enable motion prediction accross entropy slice boundary
     266#define FAST_DECISION_FOR_MRG_RD_COST     1  ////< H0178: Fast Decision for Merge 2Nx2N RDCost
     267#define PIC_CROPPING                      1  ///< Picture cropping and size constraints
     268#define NAL_REF_FLAG                      1  ///< Change nal_ref_idc to nal_ref_flag (JCTVC-F463)
     269#define REMOVE_DIV_OPERATION      1  ///< H0238: Simplified intra horizontal and vertical filtering
     270#define LOGI_INTRA_NAME_3MPM      1  ///< H0407: logical Intra mode naming (sequential angular mode numbering) and 3 MPM mode coding
     271#define LEVEL_CTX_LUMA_RED        1  ///<H0130: Luma level context reduction
     272#define REMOVE_INFER_SIGGRP       1  ///<H0131: Remove inferred significant_coeff_group_flag
     273#define SET_MERGE_TMVP_REFIDX     1  ///< H0278/H0199: Setting the merge TMVP refidx to 0 for the non-first partition
     274#define MULTILEVEL_SIGMAP_EXT     1  ///< H0526: multi-level significance map extended to smaller TUs
     275#define MULTIBITS_DATA_HIDING     1  ///< H0481: multiple sign bit hiding
     276#define DEQUANT_CLIPPING          1  ///< H0312/H0541: transformed coefficients clipping before de-quantization
     277#define REMOVE_NON_SCALED         1 ///< H0164/H0250: Removal of non-scaled merge candidate
     278#define MRG_IDX_CTX_RED           1 ///< H0251: Merge index context reduction
     279#define SIMP_MRG_PRUN             1 ///< H0252: simplification of merge pruning process
     280#define AMVP_PRUNING_SIMPLIFICATION         1     ///H0316: simplify the pruning process of AMVP by exempting the temporal candidate
     281#define AMVP_ZERO_CHECKING_REMOVAL          1     ///H0239/H0316: remove zero motion vector checking of AMVP
     282#define H0111_MVD_L1_ZERO         1  ///< H0111: modification of bi-prediction
     283#define CLIPSCALEDMVP               1  ///< H0216: Clipping scaled MV to 16 bit
     284#define UNIFIED_TRANSFORM_TREE      1   ///< H0123: unified tree structure for TU
     285#define SIGMAP_CTX_SUBBLOCK       1 ///< H0290: 4x4 sub-block based region for significant_flag context selection
     286#define LAST_CTX_REDUCTION        1  ///< H0537/H514: contexts reduction for last position coding
     287#define AMP_CTX                   1 ///<H0545: context reduction for asymmetric partition
     288#define RESTRICT_GR1GR2FLAG_NUMBER    1 ///< H0554: Throughput improvement of CABAC coefficients level coding
     289#define EIGHT_BITS_RICE_CODE        1 ///< H0498 : 8 bits rice codes
     290#define SAO_UNIT_INTERLEAVING      1   ///< H0273
     291#define ALF_SINGLE_FILTER_SHAPE    1     //< !!! H0068: Single filter type : 9x7 cross + 3x3 square
     292#define ALF_16_BA_GROUPS        1     ///< H0409 16 BA groups
     293#define LCU_SYNTAX_ALF          1     ///< H0274 LCU-syntax ALF
     294#define ALF_CHROMA_COEF_PRED_HARMONIZATION 1 ///< H0483: ALF chroma coeff pred harmonization
     295#define CABAC_LINEAR_INIT       1     ///< H0535 : linear CABAC initialization
     296#define UNIFIED_TRANSFORM       1     ///< H0492: unify square and non-square transform
     297#define G519_TU_AMP_NSQT_HARMONIZATION  1   ///< G519: Harmonization of implicit TU, AMP and NSQT
     298#define CHROMA_MODE_CODING                   1     //H0326/H0475 : 2-length fixed, bypass coding for chroma intra prediction mode
     299#define NSQT_LFFIX                           1     ///< Bug fix related to NSQT and deblocking filter
     300#define H0736_AVC_STYLE_QP_RANGE             1    ///< H0736: AVC style qp range and wrapping.
     301#define H0204_QP_PREDICTION                  1    ///< H0204: improved QP prediction
     302#define BURST_IPCM                        1           ///< H0051: Burst IPCM
     303#define H0137_0138_LIST_MODIFICATION      1           // Enabled reference picture lists combination (H0137) and reference picture list modification (H0138) updates
     304#define LTRP_MULT                       1           ///< enable/disable multiple long term reference pictures with same POC LSB
     305#define OL_FLUSH 1          // Set to 1 to enable Wavefront Flush.
     306#define FIXED_NUMBER_OF_TILES_SLICE_MODE                1
     307#define SCALING_LIST                  1 //JCTVC-H0230/H0461/H0237
     308#define DEFAULT_DC                    1 // JCTVC-H0242
     309#define RPS_IN_SPS                    1 // Adopted during discussion of JCTVC-H0423
     310#define H0412_REF_PIC_LIST_RESTRICTION 1
     311#define H0566_TLA                     1
     312#define H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER 1
     313#define DBL_H0473_PART_1          1   //Deblocking filtering simplification
     314#define DBL_CONTROL               1   //PPS deblocking_filter_control_present_flag (JCTVC-H0398); condition for inherit params flag in SH (JCTVC-H0424)
     315#define DBL_STRONG_FILTER_CLIP    1   //Introduction of strong filter clipping in deblocking filter (JCTVC-H0275)
     316#define H0388                       1 // JCTVC-H0388
     317#define TILES_WPP_ENTRY_POINT_SIGNALLING        1 // JCTVC-H0556. Assumes either Tiles is ON or WPP is ON (not both simultaneously).
     318#define REMOVE_TILE_DEPENDENCE                  1 // remove tile_boundary_independence_flag and dependent tiles
     319#define TILES_OR_ENTROPY_SYNC_IDC               1 // tiles_or_entropy_coding_sync_idc flag
     320#define COMPLETE_SLICES_IN_TILE     1 // Among the constraints between slices and tiles, all slices within a tile shall be complete (JCTVC-H0348/JCTVC-H0463) for SliceMode 1&2
     321#define WPP_SIMPLIFICATION          1 // JCTVC-H0349/JCTVC-0517
     322*/
     323
    199324
    200325#define LOSSLESS_CODING                   1 ///< H0530: lossless and lossy (mixed) coding
     
    203328#endif
    204329
    205 #define PARALLEL_MERGE  1                   //< H0082 parallel merge/skip
    206 #define LGE_IVMP_PARALLEL_MERGE_B0136     1 //< B0136 support of parallel merge/skip in disparity vector derivation
    207330#define LOG2_PARALLEL_MERGE_LEVEL_MINUS2  0 //< H0082 parallel merge level 0-> 4x4, 1-> 8x8, 2->16x16, 3->32x32, 4->64x64
    208331
    209 #if PARALLEL_MERGE && LOG2_PARALLEL_MERGE_LEVEL_MINUS2
     332#if LOG2_PARALLEL_MERGE_LEVEL_MINUS2
    210333#define CU_BASED_MRG_CAND_LIST            1  //< H0240: single merge candidate list for all PUs inside a 8x8 CU conditioned on LOG2_PARALLEL_MERGE_LEVEL_MINUS2 > 0
    211334#define FIX_CU_BASED_MRG_CAND_LIST_B0136  1  //< B0136 bug fix for CU_BASED_MRG_CAND_LIST
    212335#endif
    213336
    214 #define MVP_AT_ENTROPYSLICE_BOUNDARY      1  //< H0362 enable motion prediction accross entropy slice boundary
    215 
    216 #define FAST_DECISION_FOR_MRG_RD_COST     1  ////< H0178: Fast Decision for Merge 2Nx2N RDCost
    217 
    218 #define PIC_CROPPING              1  ///< Picture cropping and size constraints
    219 #define NAL_REF_FLAG              1  ///< Change nal_ref_idc to nal_ref_flag (JCTVC-F463)
    220 #define REMOVE_DIV_OPERATION      1  ///< H0238: Simplified intra horizontal and vertical filtering
    221 #define LOGI_INTRA_NAME_3MPM      1  ///< H0407: logical Intra mode naming (sequential angular mode numbering) and 3 MPM mode coding
    222 
    223 #define LEVEL_CTX_LUMA_RED        1  ///<H0130: Luma level context reduction
    224 #define REMOVE_INFER_SIGGRP       1  ///<H0131: Remove inferred significant_coeff_group_flag
    225 
    226 #define SET_MERGE_TMVP_REFIDX     1  ///< H0278/H0199: Setting the merge TMVP refidx to 0 for the non-first partition
    227 
    228 #define MULTILEVEL_SIGMAP_EXT     1  ///< H0526: multi-level significance map extended to smaller TUs
    229 #define MULTIBITS_DATA_HIDING     1  ///< H0481: multiple sign bit hiding
    230 
    231 #define DEQUANT_CLIPPING          1  ///< H0312/H0541: transformed coefficients clipping before de-quantization
    232 
    233 #define REMOVE_NON_SCALED         1 ///< H0164/H0250: Removal of non-scaled merge candidate
    234 #define MRG_IDX_CTX_RED           1 ///< H0251: Merge index context reduction
    235 #define SIMP_MRG_PRUN             1 ///< H0252: simplification of merge pruning process
    236 
    237 #define AMVP_PRUNING_SIMPLIFICATION         1     ///H0316: simplify the pruning process of AMVP by exempting the temporal candidate
    238 #define AMVP_ZERO_CHECKING_REMOVAL          1     ///H0239/H0316: remove zero motion vector checking of AMVP
    239 
    240 #define H0111_MVD_L1_ZERO         1  ///< H0111: modification of bi-prediction
    241337#define DISABLING_CLIP_FOR_BIPREDME         1  ///< Ticket #175
    242 
    243 #define CLIPSCALEDMVP               1  ///< H0216: Clipping scaled MV to 16 bit
    244 
    245 #define UNIFIED_TRANSFORM_TREE      1   ///< H0123: unified tree structure for TU
    246 
    247 #define SIGMAP_CTX_SUBBLOCK       1 ///< H0290: 4x4 sub-block based region for significant_flag context selection
    248 
    249338#define SIGMAP_CONST_AT_HIGH_FREQUENCY      1      ///< H0095 method2.1: const significance map at high freaquency
    250339
    251 #define LAST_CTX_REDUCTION        1  ///< H0537/H514: contexts reduction for last position coding
    252 
    253 #define AMP_CTX                   1 ///<H0545: context reduction for asymmetric partition
    254 
    255 #define RESTRICT_GR1GR2FLAG_NUMBER    1 ///< H0554: Throughput improvement of CABAC coefficients level coding
    256 #if RESTRICT_GR1GR2FLAG_NUMBER    //
    257340#define C1FLAG_NUMBER               8 // maximum number of largerThan1 flag coded in one chunk :  16 in HM5
    258341#define C2FLAG_NUMBER               1 // maximum number of largerThan2 flag coded in one chunk:  16 in HM5
    259 #endif
    260 
    261 #define EIGHT_BITS_RICE_CODE        1 ///< H0498 : 8 bits rice codes
    262 
    263 #define SAO_UNIT_INTERLEAVING      1   ///< H0273
     342
    264343#define REMOVE_SAO_LCU_ENC_CONSTRAINTS_1 0  ///< disable the encoder constraint that does not test SAO/BO mode for chroma in interleaved mode
    265344#define REMOVE_SAO_LCU_ENC_CONSTRAINTS_2 0  ///< disable the encoder constraint that reduce the range of SAO/EO for chroma in interleaved mode
    266345#define REMOVE_SAO_LCU_ENC_CONSTRAINTS_3 0  ///< disable the encoder constraint that conditionally disable SAO for chroma for entire slice in interleaved mode
    267 
    268 #define ALF_SINGLE_FILTER_SHAPE    1     //< !!! H0068: Single filter type : 9x7 cross + 3x3 square
    269 
    270 #define ALF_16_BA_GROUPS        1     ///< H0409 16 BA groups
    271 #define LCU_SYNTAX_ALF          1     ///< H0274 LCU-syntax ALF
    272 #define ALF_CHROMA_COEF_PRED_HARMONIZATION 1 ///< H0483: ALF chroma coeff pred harmonization
    273 
    274 #define CABAC_LINEAR_INIT       1     ///< H0535 : linear CABAC initialization
    275 
    276 #define COLLOCATED_REF_IDX      1     ///< H0442: signal collocated reference index
    277 
    278 #define UNIFIED_TRANSFORM       1     ///< H0492: unify square and non-square transform
     346#define COLLOCATED_REF_IDX      1           ///< H0442: signal collocated reference index
     347
    279348
    280349#define MAX_NUM_SPS                32
     
    293362#define FAST_BIT_EST                1   ///< G763: Table-based bit estimation for CABAC
    294363
    295 #define G519_TU_AMP_NSQT_HARMONIZATION  1   ///< G519: Harmonization of implicit TU, AMP and NSQT
    296364
    297365#define MLS_GRP_NUM                         64     ///< G644 : Max number of coefficient groups, max(16, 64)
     
    305373
    306374
    307 #define CHROMA_MODE_CODING                   1     //H0326/H0475 : 2-length fixed, bypass coding for chroma intra prediction mode
    308 
    309 #define NSQT_LFFIX                           1     ///< Bug fix related to NSQT and deblocking filter
    310375#define NS_HAD                               1
    311376
     
    313378#define APS_BITS_FOR_ALF_BYTE_LENGTH 8
    314379
    315 #define H0736_AVC_STYLE_QP_RANGE             1    ///< H0736: AVC style qp range and wrapping.
    316 #define H0204_QP_PREDICTION                  1    ///< H0204: improved QP prediction
     380
    317381
    318382#define HHI_RQT_INTRA_SPEEDUP             1           ///< tests one best mode with full rqt
    319383#define HHI_RQT_INTRA_SPEEDUP_MOD         0           ///< tests two best modes with full rqt
    320384
    321 #define BURST_IPCM                        1           ///< H0051: Burst IPCM
     385
    322386
    323387#if HHI_RQT_INTRA_SPEEDUP_MOD && !HHI_RQT_INTRA_SPEEDUP
     
    325389#endif
    326390
    327 #define H0137_0138_LIST_MODIFICATION      1           // Enabled reference picture lists combination (H0137) and reference picture list modification (H0138) updates
    328 #if !H0137_0138_LIST_MODIFICATION
    329 #error "H0137_0138_LIST_MODIFICATION must be enabled for multi-view coding."
    330 #endif
     391
    331392
    332393#define VERBOSE_RATE 0                               ///< Print additional rate information in encoder
     
    386447
    387448#if LGE_EDGE_INTRA_A0070
    388 #if HHI_DMM_WEDGE_INTRA && HHI_DMM_PRED_TEX
     449#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
    389450#define EDGE_INTRA_IDX  (NUM_INTRA_MODE+NUM_DMM_MODE)
    390 #endif // HHI_DMM_WEDGE_INTRA && HHI_DMM_PRED_TEX
     451#endif // HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
    391452#if LGE_EDGE_INTRA_DELTA_DC
    392453#define EDGE_INTRA_DELTA_IDX          (EDGE_INTRA_IDX+1)
     
    402463                                                    // this should be done with encoder only decision
    403464                                                    // but because of the absence of reference frame management, the related code was hard coded currently
    404 #define LTRP_MULT                       1           ///< enable/disable multiple long term reference pictures with same POC LSB
    405 
    406 #define OL_FLUSH 1          // Set to 1 to enable Wavefront Flush.
    407465#define OL_FLUSH_ALIGN 0    // Align flush to byte boundary.  This preserves byte operations in CABAC (faster) but at the expense of an average
    408466                            // of 4 bits per flush.
     
    413471
    414472#define PLANAR_IDX             0
    415 #if LOGI_INTRA_NAME_3MPM
    416473#define VER_IDX                26                    // index for intra VERTICAL   mode
    417474#define HOR_IDX                10                    // index for intra HORIZONTAL mode
    418475#define DC_IDX                 1                     // index for intra DC mode
    419 #else
    420 #define DC_IDX                 3                     // index for intra DC mode
    421 #endif
    422476#define NUM_CHROMA_MODE        6                     // total number of chroma modes
    423477#define DM_CHROMA_IDX          36                    // chroma mode index for derived from luma intra mode
     
    430484#define FULL_NBIT 0 ///< When enabled, does not use g_uiBitIncrement anymore to support > 8 bit data
    431485
    432 #define FIXED_NUMBER_OF_TILES_SLICE_MODE                1
     486
    433487#define AD_HOC_SLICES_FIXED_NUMBER_OF_LCU_IN_SLICE      1          ///< OPTION IDENTIFIER. mode==1 -> Limit maximum number of largest coding tree blocks in a slice
    434488#define AD_HOC_SLICES_FIXED_NUMBER_OF_BYTES_IN_SLICE    2          ///< OPTION IDENTIFIER. mode==2 -> Limit maximum number of bins/bits in a slice
    435 #if FIXED_NUMBER_OF_TILES_SLICE_MODE
    436489#define AD_HOC_SLICES_FIXED_NUMBER_OF_TILES_IN_SLICE    3
    437 #endif
    438490
    439491// Entropy slice options
     
    459511
    460512#define SCALING_LIST_OUTPUT_RESULT    0 //JCTVC-G880/JCTVC-G1016 quantization matrices
    461 #define SCALING_LIST                  1 //JCTVC-H0230/H0461/H0237
    462 
    463 #define DEFAULT_DC                    1 // JCTVC-H0242
    464 
    465 #define RPS_IN_SPS                    1 // Adopted during discussion of JCTVC-H0423
    466 
    467 #define H0412_REF_PIC_LIST_RESTRICTION 1
    468 
    469 #define H0566_TLA                     1
    470 #if H0566_TLA
    471513#define H0566_TLA_SET_FOR_SWITCHING_POINTS 1
    472 #endif
    473 
    474 #define H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER 1
    475 
    476 #define DBL_H0473_PART_1          1   //Deblocking filtering simplification
    477 #define DBL_CONTROL               1   //PPS deblocking_filter_control_present_flag (JCTVC-H0398); condition for inherit params flag in SH (JCTVC-H0424)
    478 #define DBL_STRONG_FILTER_CLIP    1   //Introduction of strong filter clipping in deblocking filter (JCTVC-H0275)
     514
    479515
    480516#define CABAC_INIT_FLAG             1 // JCTVC-H0540
    481517#define CABAC_INIT_PRESENT_FLAG     1
    482518
    483 #define H0388                       1 // JCTVC-H0388
    484 
    485 #define TILES_WPP_ENTRY_POINT_SIGNALLING        1 // JCTVC-H0556. Assumes either Tiles is ON or WPP is ON (not both simultaneously).
    486 #define REMOVE_TILE_DEPENDENCE                  1 // remove tile_boundary_independence_flag and dependent tiles
    487 #define TILES_OR_ENTROPY_SYNC_IDC               1 // tiles_or_entropy_coding_sync_idc flag
    488 #define COMPLETE_SLICES_IN_TILE     1 // Among the constraints between slices and tiles, all slices within a tile shall be complete (JCTVC-H0348/JCTVC-H0463) for SliceMode 1&2
    489 #define WPP_SIMPLIFICATION          1 // JCTVC-H0349/JCTVC-0517
    490519
    491520// ====================================================================================================================
     
    568597{
    569598  SAO_EO_LEN    = 4,
    570 #if SAO_UNIT_INTERLEAVING
    571599  SAO_BO_LEN    = 4,
    572600  SAO_MAX_BO_CLASSES = 32
    573 #else
    574   SAO_BO_LEN    = 16
    575 #endif
    576601};
    577602
     
    582607  SAO_EO_2,
    583608  SAO_EO_3,
    584 #if SAO_UNIT_INTERLEAVING
    585609  SAO_BO,
    586 #else
    587   SAO_BO_0,
    588   SAO_BO_1,
    589 #endif
    590610  MAX_NUM_SAO_TYPE
    591611};
     
    593613typedef struct _SaoQTPart
    594614{
    595 #if !SAO_UNIT_INTERLEAVING
    596   Bool        bEnableFlag;
    597 #endif
    598615  Int         iBestType;
    599616  Int         iLength;
    600 #if SAO_UNIT_INTERLEAVING
    601617  Int         bandPosition ;
    602618  Int         iOffset[4];
    603 #else
    604   Int         iOffset[32];
    605 #endif
    606619  Int         StartCUX;
    607620  Int         StartCUY;
     
    627640} SAOQTPart;
    628641
    629 #if SAO_UNIT_INTERLEAVING
    630642typedef struct _SaoLcuParam
    631643{
     
    641653  Int        length;
    642654} SaoLcuParam;
    643 #endif
    644655
    645656struct SAOParam
     
    649660  Int        iMaxSplitLevel;
    650661  Int        iNumClass[MAX_NUM_SAO_TYPE];
    651 #if SAO_UNIT_INTERLEAVING
    652662  Bool         oneUnitFlag[3];
    653663  SaoLcuParam* saoLcuParam[3];
    654664  Int          numCuInHeight;
    655665  Int          numCuInWidth;
    656 #endif
    657666  ~SAOParam();
    658667};
     
    661670{
    662671  Int alf_flag;                           ///< indicates use of ALF
    663 #if !LCU_SYNTAX_ALF
    664   Int chroma_idc;                         ///< indicates use of ALF for chroma
    665 #endif
    666672  Int num_coeff;                          ///< number of filter coefficients
    667673  Int filter_shape;
    668 #if !LCU_SYNTAX_ALF
    669   Int filter_shape_chroma;
    670   Int num_coeff_chroma;                   ///< number of filter coefficients (chroma)
    671   Int *coeff_chroma;                      ///< filter coefficient array (chroma)
    672 #endif
    673674  Int *filterPattern;
    674675  Int startSecondFilter;
     
    678679  Int **coeffmulti;
    679680  Int minKStart;
    680 #if !LCU_SYNTAX_ALF
    681   Int maxScanVal;
    682   Int kMinTab[42];
    683 
    684   Int alf_pcr_region_flag;
    685   ~ALFParam();
    686 #endif
    687 #if LCU_SYNTAX_ALF
    688681  Int componentID;
    689682  Int* kMinTab;
     
    698691  Void destroy();
    699692  Void copy(const ALFParam& src);
    700 #endif
    701 };
    702 
    703 #if LCU_SYNTAX_ALF
     693};
     694
    704695struct AlfUnitParam
    705696{
     
    734725  Void destroy();
    735726};
    736 #endif
    737727
    738728
Note: See TracChangeset for help on using the changeset viewer.