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


Ignore:
Timestamp:
11 May 2012, 21:20:17 (12 years ago)
Author:
hschwarz
Message:

updated trunk (move to HM6.1)

File:
1 edited

Legend:

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

    r42 r56  
    44 * granted under this license.
    55 *
    6  * Copyright (c) 2010-2011, ISO/IEC
     6 * Copyright (c) 2010-2012, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    1515 *    this list of conditions and the following disclaimer in the documentation
    1616 *    and/or other materials provided with the distribution.
    17  *  * Neither the name of the ISO/IEC nor the names of its contributors may
     17 *  * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
    1818 *    be used to endorse or promote products derived from this software without
    1919 *    specific prior written permission.
     
    3939#define _TYPEDEF__
    4040
    41 
    42 #define BITSTREAM_EXTRACTION            1
    43 #define FLEX_CODING_ORDER               1
    44 #define DISABLE_FCO_FOR_VSO             0
    45 
    46 #define SONY_COLPIC_AVAILABILITY        1
    47 
    48 //>>>>> HHI 3DV tools >>>>>
    49 #define HHI_INTER_VIEW_MOTION_PRED      1   // inter-view motion parameter prediction
    50 #define HHI_INTER_VIEW_RESIDUAL_PRED    1   // inter-view residual prediction
     41//! \ingroup TLibCommon
     42//! \{
     43
     44#define SONY_COLPIC_AVAILABILITY          1
     45
     46#define HHI_INTER_VIEW_MOTION_PRED        1   // inter-view motion parameter prediction
     47#define HHI_INTER_VIEW_RESIDUAL_PRED      1   // inter-view residual prediction
     48
     49#define HHI_VSO                           1
     50#define HHI_VSO_LS_TABLE                  1
     51#define HHI_VSO_DIST_INT                  1
     52
     53#define HHI_INTERVIEW_SKIP                1
     54#define HHI_INTERVIEW_SKIP_LAMBDA_SCALE   1
     55
     56#define HHI_DMM_WEDGE_INTRA 1   // depth model modes independent on texture (explicit and intra-predicted Wedgelet prediction)
     57#define HHI_DMM_PRED_TEX    1   // depth model modes dependent on texture (inter-component Wedgelet and Contour prediction )
     58
     59#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     60#define DMM_WEDGEMODEL_MIN_SIZE           4
     61#define DMM_WEDGEMODEL_MAX_SIZE          32
     62#define DMM_WEDGE_PREDDIR_DELTAEND_MAX    4
     63#endif
     64
     65#define HHI_MPI                         1   // motion parameter inheritance from texture picture for depth map coding
     66#define HHI_MPI_MERGE_POS               0
    5167#define HHI_FULL_PEL_DEPTH_MAP_MV_ACC   1   // full-pel mv accuracy for depth maps
    52 #define HHI_MPI                         1   // motion parameter inheritance from texture picture for depth map coding
    53 #define HHI_INTERVIEW_SKIP              1   // skipping of residual for renderable regions
    54 #define HHI_INTERVIEW_SKIP_LAMBDA_SCALE 1   // scaling of lambda in cost calculation in rederable regions
    55 #define HHI_VSO                         1   // view synthesis optimization
    56 #define HHI_VSO_COLOR_PLANES            1   // view synthesis optimization in color planes
    57 #define HHI_VSO_DIST_INT                1   // view synthesis optimization integer distorition in rdo process
    58 #define HHI_VSO_LS_TABLE                1   // table based lambda scaling
    59 #define HHI_VSO_PRINT_DIST              0   // print VSO distortion instead of depth distrotion
    60 
    61 #if HHI_INTERVIEW_SKIP_LAMBDA_SCALE && !HHI_INTERVIEW_SKIP
    62   #error "HHI_INTERVIEW_SKIP_LAMBDA_SCALE cannot be enabled if HHI_INTERVIEW_SKIP is not"
    63 #endif
    64 
    65 #define HHI_DMM_WEDGE_INTRA             1   // depth model modes independent on texture (explicit and intra-predicted Wedgelet prediction)
    66 #define HHI_DMM_PRED_TEX                1   // depth model model dependent on texture (inter-component Wedgelet and Contour prediction )
    67 
    68 #define HHI_NO_LowDelayCoding           0   // old-fashioned encoder control, should be adapted to hm5.0
    69 //<<<<< HHI 3DV tools <<<<<
    70 
    71 
    72 
    73 ////////////////////////////
    74 // AHG18 Weighted Prediction defines section start
    75 ////////////////////////////
    76 #define WEIGHT_PRED           ///< enable AVC based weighted prediction
    77 
    78 //////////////////////////
    79 // AHG18 Weighted Prediction defines section end
    80 //////////////////////////
    81 
    82 ////////////////////////////
    83 // JCT-VC E start
    84 ////////////////////////////
    85 
    86 #define E253                              1
    87 
    88 ////////////////////////////
    89 // JCT-VC E end
    90 ////////////////////////////
    91 
    92 
    93 
    94 #define HHI_DISABLE_INTER_NxN_SPLIT       1           ///< TN: disable redundant use of pu-mode NxN for CTBs larger 8x8 (inter only)
    95 #define HHI_RMP_SWITCH                    0
    96 
    97 #define HHI_RQT_FORCE_SPLIT_NxN           0           ///< MSHK: force split flags of residual quadtree for NxN PUs such that transform blocks are guaranteed to not span NxN PUs
    98 #define HHI_RQT_FORCE_SPLIT_RECT          0           ///< MSHK: force split flags of residual quadtree for rectangular PUs such that transform blocks are guaranteed to not span rectangular PUs
     68
     69
     70
     71
     72
     73#define SKIPFRAME_BUGFIX                  1 ///< bug fix to enable skipFrame at decoder
     74#define START_DECODING_AT_CRA             1 ///< H0496, start decoding at clear random access point
     75#define NO_COMBINED_PARALLEL              1 ///< Disallow any combined usage of parallel tools among Tile, EntropySlice and Wavefont
     76
     77#define LOSSLESS_CODING                   1  ///< H0530: lossless and lossy (mixed) coding
     78#if LOSSLESS_CODING
     79#define SEQUENCE_LEVEL_LOSSLESS           0  ///< H0530: used only for sequence or frame-level lossless coding
     80#endif
     81
     82#define PARALLEL_MERGE  1                   //< H0082 parallel merge/skip
     83#define LOG2_PARALLEL_MERGE_LEVEL_MINUS2 0  //< H0082 parallel merge level 0-> 4x4, 1-> 8x8, 2->16x16, 3->32x32, 4->64x64
     84#if PARALLEL_MERGE && LOG2_PARALLEL_MERGE_LEVEL_MINUS2
     85#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
     86#endif
     87#define MVP_AT_ENTROPYSLICE_BOUNDARY  1     //< H0362 enable motion prediction accross entropy slice boundary
     88
     89#define FAST_DECISION_FOR_MRG_RD_COST  1 ////< H0178: Fast Decision for Merge 2Nx2N RDCost
     90
     91#define PIC_CROPPING              1 ///< Picture cropping and size constraints
     92#define NAL_REF_FLAG              1 ///< Change nal_ref_idc to nal_ref_flag (JCTVC-F463)
     93#define REMOVE_DIV_OPERATION      1 ///< H0238: Simplified intra horizontal and vertical filtering
     94#define LOGI_INTRA_NAME_3MPM      1  ///< H0407: logical Intra mode naming (sequential angular mode numbering) and 3 MPM mode coding
     95
     96#define LEVEL_CTX_LUMA_RED        1  ///<H0130: Luma level context reduction
     97#define REMOVE_INFER_SIGGRP       1  ///<H0131: Remove inferred significant_coeff_group_flag
     98
     99#define SET_MERGE_TMVP_REFIDX     1  ///< H0278/H0199: Setting the merge TMVP refidx to 0 for the non-first partition
     100
     101#define MULTILEVEL_SIGMAP_EXT     1  ///< H0526: multi-level significance map extended to smaller TUs
     102#define MULTIBITS_DATA_HIDING     1  ///< H0481: multiple sign bit hiding
     103
     104#define DEQUANT_CLIPPING           1  ///< H0312/H0541: transformed coefficients clipping before de-quantization
     105
     106#define REMOVE_NON_SCALED         1 ///< H0164/H0250: Removal of non-scaled merge candidate
     107#define MRG_IDX_CTX_RED           1 ///< H0251: Merge index context reduction
     108#define SIMP_MRG_PRUN             1 ///< H0252: simplification of merge pruning process
     109
     110#define AMVP_PRUNING_SIMPLIFICATION         1     ///H0316: simplify the pruning process of AMVP by exempting the temporal candidate
     111#define AMVP_ZERO_CHECKING_REMOVAL          1     ///H0239/H0316: remove zero motion vector checking of AMVP
     112
     113#define H0111_MVD_L1_ZERO         1  ///< H0111: modification of bi-prediction
     114#define DISABLING_CLIP_FOR_BIPREDME         1  ///< Ticket #175
     115
     116#define CLIPSCALEDMVP               1  ///< H0216: Clipping scaled MV to 16 bit
     117
     118#define UNIFIED_TRANSFORM_TREE      1   ///< H0123: unified tree structure for TU
     119
     120#define SIGMAP_CTX_SUBBLOCK       1 ///< H0290: 4x4 sub-block based region for significant_flag context selection
     121
     122#define SIGMAP_CONST_AT_HIGH_FREQUENCY      1      ///< H0095 method2.1: const significance map at high freaquency
     123
     124#define LAST_CTX_REDUCTION        1  ///< H0537/H514: contexts reduction for last position coding
     125
     126#define AMP_CTX                   1 ///<H0545: context reduction for asymmetric partition
     127
     128#define RESTRICT_GR1GR2FLAG_NUMBER    1 ///< H0554: Throughput improvement of CABAC coefficients level coding
     129#if RESTRICT_GR1GR2FLAG_NUMBER    //
     130#define C1FLAG_NUMBER               8 // maximum number of largerThan1 flag coded in one chunk :  16 in HM5
     131#define C2FLAG_NUMBER               1 // maximum number of largerThan2 flag coded in one chunk:  16 in HM5
     132#endif
     133
     134#define EIGHT_BITS_RICE_CODE        1 ///< H0498 : 8 bits rice codes
     135
     136#define SAO_UNIT_INTERLEAVING      1   ///< H0273
     137#define REMOVE_SAO_LCU_ENC_CONSTRAINTS_1 0  ///< disable the encoder constraint that does not test SAO/BO mode for chroma in interleaved mode
     138#define REMOVE_SAO_LCU_ENC_CONSTRAINTS_2 0  ///< disable the encoder constraint that reduce the range of SAO/EO for chroma in interleaved mode
     139#define REMOVE_SAO_LCU_ENC_CONSTRAINTS_3 0  ///< disable the encoder constraint that conditionally disable SAO for chroma for entire slice in interleaved mode
     140
     141#define ALF_SINGLE_FILTER_SHAPE    1     //< !!! H0068: Single filter type : 9x7 cross + 3x3 square
     142
     143#define ALF_16_BA_GROUPS        1     ///< H0409 16 BA groups
     144#define LCU_SYNTAX_ALF          1     ///< H0274 LCU-syntax ALF
     145#define ALF_CHROMA_COEF_PRED_HARMONIZATION 1 ///< H0483: ALF chroma coeff pred harmonization
     146
     147#define CABAC_LINEAR_INIT       1     ///< H0535 : linear CABAC initialization
     148
     149#define COLLOCATED_REF_IDX      1     ///< H0442: signal collocated reference index
     150
     151#define UNIFIED_TRANSFORM       1     ///< H0492: unify square and non-square transform
     152
     153#define MAX_NUM_SPS                32
     154#define MAX_NUM_PPS                256
     155#define MAX_NUM_APS                32         //< !!!KS: number not defined in WD yet
     156
     157#define MRG_MAX_NUM_CANDS_SIGNALED         5   //<G091: value of maxNumMergeCand signaled in slice header
     158
     159#define WEIGHTED_CHROMA_DISTORTION  1   ///< F386: weighting of chroma for RDO
     160#define RDOQ_CHROMA_LAMBDA          1   ///< F386: weighting of chroma for RDOQ
     161#define ALF_CHROMA_LAMBDA           1   ///< F386: weighting of chroma for ALF
     162#define SAO_CHROMA_LAMBDA           1   ///< F386: weighting of chroma for SAO
     163
     164#define MIN_SCAN_POS_CROSS          4
     165
     166#define FAST_BIT_EST                1   ///< G763: Table-based bit estimation for CABAC
     167
     168#define G519_TU_AMP_NSQT_HARMONIZATION  1   ///< G519: Harmonization of implicit TU, AMP and NSQT
     169
     170#define MLS_GRP_NUM                         64     ///< G644 : Max number of coefficient groups, max(16, 64)
     171#define MLS_CG_SIZE                         4      ///< G644 : Coefficient group size of 4x4
     172
     173#define ADAPTIVE_QP_SELECTION               1      ///< G382: Adaptive reconstruction levels, non-normative part for adaptive QP selection
     174#if ADAPTIVE_QP_SELECTION
     175#define ARL_C_PRECISION                     7      ///< G382: 7-bit arithmetic precision
     176#define LEVEL_RANGE                         30     ///< G382: max coefficient level in statistics collection
     177#endif
     178
     179
     180#define CHROMA_MODE_CODING                   1     //H0326/H0475 : 2-length fixed, bypass coding for chroma intra prediction mode
     181
     182#define NSQT_LFFIX                           1     ///< Bug fix related to NSQT and deblocking filter
     183#define NS_HAD                               1
     184
     185#define APS_BITS_FOR_SAO_BYTE_LENGTH 12
     186#define APS_BITS_FOR_ALF_BYTE_LENGTH 8
     187
     188#define H0736_AVC_STYLE_QP_RANGE             1    ///< H0736: AVC style qp range and wrapping.
     189#define H0204_QP_PREDICTION                  1    ///< H0204: improved QP prediction
     190
    99191#define HHI_RQT_INTRA_SPEEDUP             1           ///< tests one best mode with full rqt
    100192#define HHI_RQT_INTRA_SPEEDUP_MOD         0           ///< tests two best modes with full rqt
    101193
    102 #define PART_MRG                          1            // If the number of partitions is two and size > 8, only merging mode is enabled for the first partition & do not code merge_flag for the first partition
    103 #define HHI_MRG_SKIP                      1            // (JCTVC-E481 - merge skip) replaces the AMVP based skip by merge based skip (E481 - MERGE skip)
     194#define BURST_IPCM                        1           ///< H0051: Burst IPCM
    104195
    105196#if HHI_RQT_INTRA_SPEEDUP_MOD && !HHI_RQT_INTRA_SPEEDUP
     
    107198#endif
    108199
    109 #if ( HHI_RQT_FORCE_SPLIT_NxN || HHI_RQT_FORCE_SPLIT_RECT)
    110 #define HHI_RQT_FORCE_SPLIT_ACC2_PU       1
    111 #else
    112 #define HHI_RQT_FORCE_SPLIT_ACC2_PU       0
    113 #endif
    114 
    115 // COLOCATED PREDICTOR
    116 // FOR MERGE
    117 #define MRG_NEIGH_COL                     1           ///< use of colocated MB in MERGE
    118 #define FT_TCTR_MRG                       1           ///< central colocated in MERGE
    119 #if !FT_TCTR_MRG
    120 #define PANASONIC_MERGETEMPORALEXT        1           ///<
    121 #endif
    122 #define MTK_TMVP_H_MRG                    1           ///< (JCTVC-E481 - D125 2.1) right-bottom collocated for merge
    123 #define PANASONIC_MRG_TMVP_REFIDX         1           ///< (JCTVC-E481 - D274 (2) ) refidx derivation for merge TMVP
    124 // FOR AMVP
    125 #define AMVP_NEIGH_COL                    1           ///< use of colocated MB in AMVP
    126 #define FT_TCTR_AMVP                      1           ///< central colocated in AMVP
    127 #if !FT_TCTR_AMVP
    128 #define PANASONIC_AMVPTEMPORALEXT         1           ///<
    129 #endif
    130 #define MTK_TMVP_H_AMVP                   1           ///< (JCTVC-E481 - D125 2.1) right-bottom collocated for amvp
    131 // FOR BOTH
    132 #define PANASONIC_AMVPTEMPORALMOD         1           ///< (JCTVC-E481 - D125 2.4' / D274 3')
    133 #define AMVP_BUFFERCOMPRESS               1           ///< motion vector buffer compression
     200#define H0137_0138_LIST_MODIFICATION      1           // Enabled reference picture lists combination (H0137) and reference picture list modification (H0138) updates
     201#if !H0137_0138_LIST_MODIFICATION
     202#error "H0137_0138_LIST_MODIFICATION must be enabled for multi-view coding."
     203#endif
     204
     205#define VERBOSE_RATE 0                               ///< Print additional rate information in encoder
     206
    134207#define AMVP_DECIMATION_FACTOR            4
    135 #define MV_COMPRESS_MODE_REFIDX           1           ///< (JCTVC-E147) compress all inter prediction parameters according to 1)
    136 
    137 #define HIGH_ACCURACY_BI                  1          // High precision bi-prediction JCTVC-D321
    138 #define REMOVE_INTERMEDIATE_CLIPPING      1          // No intermediate clipping in bi-prediction JCTVC-E242
    139 
    140 ////////////////
    141 // E494 (E227/E338/E344/E489/E494): PCP SIGMAP + REDUCED CONTEXTS
    142 ////////////////
    143 
    144 #define PCP_SIGMAP_SIMPLE_LAST            1
    145 #define SIMPLE_CONTEXT_SIG                1
    146 
    147 
    148 #define QC_MOD_LCEC                       1           // JCTVC-D374: modified LCEC coeff. coding
    149 #define LCEC_INTRA_MODE                   1           // JCTVC-D366: improved luma intra mode coding
    150 #define QC_MOD_LCEC_RDOQ                  1           // JCTVC-D374: improved RDOQ
    151 #define QC_LCEC_INTER_MODE                1
    152 #define QC_MDIS                           1           // JCTVC-D282: enable mode dependent intra smoothing
    153 #define QC_MDCS                           1           // JCTVC-D393: mode dependent coefficients coding
    154 #if QC_MOD_LCEC
    155 #define RUNLEVEL_TABLE_CUT                1           // JCTVC-E384: Run-Level table size reduction
    156 #if RUNLEVEL_TABLE_CUT
    157 #define CAVLC_COEF_LRG_BLK                1           // JCTVC-E383: enable large block coeff. coding
    158 #endif
    159 #endif
    160 
    161 
    162 #define ENABLE_FORCECOEFF0  0
    163 
    164 /* Rounding control */
    165 //#define ROUNDING_CONTROL_BIPRED ///< From JCTVC-B074 This part of the code is not needed anymore : KU
    166 #define TRANS_PRECISION_EXT     ///< From JCTVC-B074
    167 
    168 #define HHI_RQT_DISABLE_SUB                   0           ///< disabling subtree whose node size is smaller than partition size
     208
     209#define SCAN_SET_SIZE                     16
     210#define LOG2_SCAN_SET_SIZE                4
    169211
    170212#define FAST_UDI_MAX_RDMODE_NUM               35          ///< maximum number of RD comparison in fast-UDI estimation loop
    171213
    172 #define SAMSUNG_FAST_UDI_MODESET              0           ///< 0: {9,9,4,4,5} (default) and 1: {9,9,9,9,5} for {4x4,8x8,16x16,32x32,64x64}
    173 
    174214#define ZERO_MVD_EST                          0           ///< Zero Mvd Estimation in normal mode
    175215
    176 #define LM_CHROMA                             1           // JCTVC-E266: Chroma intra prediction based on luma signal
    177 
    178 #define UNIFY_INTER_TABLE                     1           // JCTVC-E381 CAVLC: Inter pred coding
    179 
    180 #define DCM_RDCOST_TEMP_FIX //Enables temporary bug fixes to RD cost computation
    181 
    182 #define DCM_DECODING_REFRESH              1           ///< enable/disable decoding refresh (IDR and CDR)
    183 #if DCM_DECODING_REFRESH
    184 #define DCM_SKIP_DECODING_FRAMES          1           ///< enable/disable the random access by the decoder
    185 #endif
    186 
    187 #define DCM_SIMPLIFIED_MVP                1           ///< enable/disable the simplified motion vector prediction(D231)
    188 #if DCM_SIMPLIFIED_MVP
    189 #define MTK_AMVP_SMVP_DERIVATION          1              ///< (JCTVC-E481 - D125 2.1) amvp spatial candidate derivation
    190 #define TI_AMVP_SMVP_SIMPLIFIED           1              ///< (JCTVC-E481 - F)amvp spatial candidate simplified scanning
    191 #endif
    192 
    193 #define DCM_COMB_LIST                  1           ///< Use of combined list for uni-prediction in B-slices
    194 
    195 #define ADD_PLANAR_MODE                   1           ///< enable/disable Planar mode for intra prediction (JCTVC-E321)
    196 #if ADD_PLANAR_MODE
    197 #define NUM_INTRA_MODE                    35
    198 #define PLANAR_IDX                        (NUM_INTRA_MODE-1)
    199 #endif
    200 
    201 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
    202 #define DMM_WEDGEMODEL_MIN_SIZE           4           
    203 #define DMM_WEDGEMODEL_MAX_SIZE          32
    204 #define DMM_WEDGE_PREDDIR_DELTAEND_MAX    4           
    205 
    206 #if ADD_PLANAR_MODE
    207 #define  MAX_MODE_ID_INTRA_DIR            34
    208 #else
    209 #define  MAX_MODE_ID_INTRA_DIR            33
    210 #endif
     216#define NUM_INTRA_MODE 36
     217#define LM_CHROMA_IDX  35
     218
    211219#if HHI_DMM_WEDGE_INTRA && HHI_DMM_PRED_TEX
    212220enum MODE_IDX
    213221{
    214   DMM_WEDGE_FULL_IDX         = MAX_MODE_ID_INTRA_DIR+1,
    215   DMM_WEDGE_FULL_D_IDX       = MAX_MODE_ID_INTRA_DIR+2,
    216   DMM_WEDGE_PREDTEX_IDX      = MAX_MODE_ID_INTRA_DIR+3,
    217   DMM_WEDGE_PREDTEX_D_IDX    = MAX_MODE_ID_INTRA_DIR+4,
    218   DMM_CONTOUR_PREDTEX_IDX    = MAX_MODE_ID_INTRA_DIR+5,
    219   DMM_CONTOUR_PREDTEX_D_IDX  = MAX_MODE_ID_INTRA_DIR+6,
    220   DMM_WEDGE_PREDDIR_IDX      = MAX_MODE_ID_INTRA_DIR+7,
    221   DMM_WEDGE_PREDDIR_D_IDX    = MAX_MODE_ID_INTRA_DIR+8
    222 };
     222  DMM_WEDGE_FULL_IDX         = NUM_INTRA_MODE,
     223  DMM_WEDGE_FULL_D_IDX       = NUM_INTRA_MODE+1,
     224  DMM_WEDGE_PREDTEX_IDX      = NUM_INTRA_MODE+2,
     225  DMM_WEDGE_PREDTEX_D_IDX    = NUM_INTRA_MODE+3,
     226  DMM_CONTOUR_PREDTEX_IDX    = NUM_INTRA_MODE+4,
     227  DMM_CONTOUR_PREDTEX_D_IDX  = NUM_INTRA_MODE+5,
     228  DMM_WEDGE_PREDDIR_IDX      = NUM_INTRA_MODE+6,
     229  DMM_WEDGE_PREDDIR_D_IDX    = NUM_INTRA_MODE+7
     230};
     231#define NUM_DMM_MODE 8
    223232#elif HHI_DMM_WEDGE_INTRA && !HHI_DMM_PRED_TEX
    224233enum MODE_IDX
    225234{
    226   DMM_WEDGE_FULL_IDX         = MAX_MODE_ID_INTRA_DIR+1,
    227   DMM_WEDGE_FULL_D_IDX       = MAX_MODE_ID_INTRA_DIR+2,
    228   DMM_WEDGE_PREDDIR_IDX      = MAX_MODE_ID_INTRA_DIR+3,
    229   DMM_WEDGE_PREDDIR_D_IDX    = MAX_MODE_ID_INTRA_DIR+4
    230 };
     235  DMM_WEDGE_FULL_IDX         = NUM_INTRA_MODE,
     236  DMM_WEDGE_FULL_D_IDX       = NUM_INTRA_MODE+1,
     237  DMM_WEDGE_PREDDIR_IDX      = NUM_INTRA_MODE+2,
     238  DMM_WEDGE_PREDDIR_D_IDX    = NUM_INTRA_MODE+3
     239};
     240#define NUM_DMM_MODE 4
    231241#elif !HHI_DMM_WEDGE_INTRA && HHI_DMM_PRED_TEX
    232242enum MODE_IDX
    233243{
    234   DMM_WEDGE_PREDTEX_IDX      = MAX_MODE_ID_INTRA_DIR+1,
    235   DMM_WEDGE_PREDTEX_D_IDX    = MAX_MODE_ID_INTRA_DIR+2,
    236   DMM_CONTOUR_PREDTEX_IDX    = MAX_MODE_ID_INTRA_DIR+3,
    237   DMM_CONTOUR_PREDTEX_D_IDX  = MAX_MODE_ID_INTRA_DIR+4,
    238 };
    239 #endif
    240 #endif
    241 
    242 #define TSB_ALF_HEADER                 1           // Send ALF ON/OFF flag in slice header
     244  DMM_WEDGE_PREDTEX_IDX      = NUM_INTRA_MODE,
     245  DMM_WEDGE_PREDTEX_D_IDX    = NUM_INTRA_MODE+1,
     246  DMM_CONTOUR_PREDTEX_IDX    = NUM_INTRA_MODE+2,
     247  DMM_CONTOUR_PREDTEX_D_IDX  = NUM_INTRA_MODE+3,
     248};
     249#define NUM_DMM_MODE 4
     250#endif
     251
    243252#define IBDI_DISTORTION                0           ///< enable/disable SSE modification when IBDI is used (JCTVC-D152)
    244253#define FIXED_ROUNDING_FRAME_MEMORY    0           ///< enable/disable fixed rounding to 8-bitdepth of frame memory when IBDI is used
    245254
    246 #define MS_LCEC_ONE_FRAME               1           // change the initial table in LCEC when there is up to one reference frame in each list, JCTVC-D141
    247 #define MS_LCEC_LOOKUP_TABLE_MAX_VALUE  1           // use the information of the max position in the lookup table, JCTVC-D141
    248 #define MS_LCEC_LOOKUP_TABLE_EXCEPTION  1           // deal with the case when the number of reference frames is greater than 2, JCTVC-D141
    249 #define MS_LCEC_UNI_EXCEPTION_THRES     1           // for GPB case, uni-prediction, > MS_LCEC_UNI_EXCEPTION_THRES is exception
    250 #define CAVLC_COUNTER_ADAPT             1          // counter based CAVLC adaptation, JCTVC-E143
    251 #if CAVLC_COUNTER_ADAPT
    252 #define CAVLC_RQT_CBP                   1           //CAVLC coding of cbf and split flag, JCTVC-E404
    253 #endif
    254 
    255 
    256 #define AVOID_ZERO_MERGE_CANDIDATE      1           // (JCTVC-E146/E118) insert zero MV if no merge candidates are available
    257 #define CHANGE_MERGE_CONTEXT            1           // (JCTVC-E146/E118) change merge flag context derivation
    258 #define CHANGE_GET_MERGE_CANDIDATE      1           // (JCTVC-E146/E118) merge flag parsing independent of number of merge candidates
    259 #if CHANGE_GET_MERGE_CANDIDATE && !CHANGE_MERGE_CONTEXT
    260 #error CHANGE_GET_MERGE_CANDIDATE can only be defined with CHANGE_MERGE_CONTEXT
    261 #endif
    262 
    263 #define MTK_DISABLE_INTRA_NxN_SPLIT       1           ///< Disable use of PUs-mode NxN for CUs larger 8x8 (intra only)
    264 #define MTK_NONCROSS_INLOOP_FILTER        1           ///< Allow non-cross-slice-boundary in-loop filtering, including DB & ALF (JCTVC-D128)
    265 
    266 #define RVM_VCEGAM10 1 // RVM model proposed in VCEG-AM10
    267 #if RVM_VCEGAM10
     255#define WRITE_BACK                      1           ///< Enable/disable the encoder to replace the deltaPOC and Used by current from the config file with the values derived by the refIdc parameter.
     256#define PRINT_RPS_INFO                  0           ///< Enable/disable the printing of bits used to send the RPS.
     257                                                    // using one nearest frame as reference frame, and the other frames are high quality (POC%4==0) frames (1+X)
     258                                                    // this should be done with encoder only decision
     259                                                    // but because of the absence of reference frame management, the related code was hard coded currently
     260#define LTRP_MULT                       1           ///< enable/disable multiple long term reference pictures with same POC LSB
     261
     262#define OL_FLUSH 1          // Set to 1 to enable Wavefront Flush.
     263#define OL_FLUSH_ALIGN 0    // Align flush to byte boundary.  This preserves byte operations in CABAC (faster) but at the expense of an average
     264                            // of 4 bits per flush.
     265                            // Setting to 0 will slow cabac by an as yet unknown amount.
     266                            // This is here just to perform timing tests -- OL_FLUSH_ALIGN should be 0 for WPP.
     267
    268268#define RVM_VCEGAM10_M 4
    269 #endif
    270 
    271 #define MTK_DCM_MPM 1 // MostProbableModeSignaling
     269
     270#define PLANAR_IDX             0
     271#if LOGI_INTRA_NAME_3MPM
     272#define VER_IDX                26                    // index for intra VERTICAL   mode
     273#define HOR_IDX                10                    // index for intra HORIZONTAL mode
     274#define DC_IDX                 1                     // index for intra DC mode
     275#else
     276#define DC_IDX                 3                     // index for intra DC mode
     277#endif
     278#define NUM_CHROMA_MODE        6                     // total number of chroma modes
     279#define DM_CHROMA_IDX          36                    // chroma mode index for derived from luma intra mode
     280
    272281
    273282#define FAST_UDI_USE_MPM 1
    274 #define SONY_SIG_CTX 1
    275 #define SNY_DQP                          1           ///< syntax change of dQP (JCT-VC D258)
    276 
    277 #define TI_ALF_MAX_VSIZE_7 1
    278 
    279 #define CHROMA_CODEWORD 1                             ///< enable new intra chroma mode encoding by setting to 1. setting to 0 should yield same results as TMuC 0.9
    280 #define CHROMA_CODEWORD_SWITCH  1                     ///< Switch the places of the last two codewords
     283
     284#define RDO_WITHOUT_DQP_BITS              0           ///< Disable counting dQP bits in RDO-based mode decision
    281285
    282286#define FULL_NBIT 0 ///< When enabled, does not use g_uiBitIncrement anymore to support > 8 bit data
    283287
    284 /////////////////////////////////
    285 // AHG SLICES defines section start
    286 /////////////////////////////////
     288#define FIXED_NUMBER_OF_TILES_SLICE_MODE                1
    287289#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
    288290#define AD_HOC_SLICES_FIXED_NUMBER_OF_BYTES_IN_SLICE    2          ///< OPTION IDENTIFIER. mode==2 -> Limit maximum number of bins/bits in a slice
     291#if FIXED_NUMBER_OF_TILES_SLICE_MODE
     292#define AD_HOC_SLICES_FIXED_NUMBER_OF_TILES_IN_SLICE    3
     293#endif
    289294
    290295// Entropy slice options
    291296#define SHARP_FIXED_NUMBER_OF_LCU_IN_ENTROPY_SLICE            1          ///< OPTION IDENTIFIER. Limit maximum number of largest coding tree blocks in an entropy slice
    292297#define SHARP_MULTIPLE_CONSTRAINT_BASED_ENTROPY_SLICE         2          ///< OPTION IDENTIFIER. Limit maximum number of bins/bits in an entropy slice
    293 /////////////////////////////////
    294 // AHG SLICES defines section end
    295 /////////////////////////////////
    296 
    297 #define CONSTRAINED_INTRA_PRED            1           // JCTVC-D086: constrained intra prediction
    298 
    299 #define MTK_SAO                           1           // JCTVC-E049: Sample adaptive offset
    300 
    301 #define MQT_ALF_NPASS                       1
    302 
    303 #define MQT_BA_RA                        1  // JCTVC-E323+E046
    304 #if MQT_BA_RA
    305 #define VAR_SIZE_H           4
    306 #define VAR_SIZE_W           4
    307 #define NO_VAR_BIN          16
    308 #endif
    309 
    310 #if QC_MDIS
    311 #define MN_MDIS_SIMPLIFICATION       1       ///< JCTVC-E069: simplification of MDIS
    312 #endif
    313 #define MN_DC_PRED_FILTER            1       ///< JCTVC-E069: DC prediction samples filtering
    314 
    315 #define MVD_CTX            1           // JCTVC-E324: Modified context selection for MVD
    316 #define PARALLEL_DEBLK_DECISION      1 // JCTC-E224: Parallel decisions
    317 #define PARALLEL_MERGED_DEBLK        1 // JCTC-E224, JCTVC-E181: Parallel decisions + Parallel filtering
    318 #define REFERENCE_SAMPLE_PADDING                1   // JCTVC-E488 padding of unavailable reference samples for intra prediction
    319 
    320 #define E243_CORE_TRANSFORMS                    1
    321 #if E243_CORE_TRANSFORMS
     298
     299#define LOG2_MAX_NUM_COLUMNS_MINUS1        7
     300#define LOG2_MAX_NUM_ROWS_MINUS1           7
     301#define LOG2_MAX_COLUMN_WIDTH              13
     302#define LOG2_MAX_ROW_HEIGHT                13
     303
     304#define MAX_MARKER_PER_NALU                 1000
     305
    322306#define MATRIX_MULT                             0   // Brute force matrix multiplication instead of partial butterfly
    323 #endif
    324 
    325 // Discrete Sine Transform (DST) Type - 7
    326 // Currently DST operates with E-243 only
    327 #define INTRA_DST_TYPE_7                      1           // JCTVC-E125 4x4 DST
    328 #if INTRA_DST_TYPE_7
     307
    329308#define REG_DCT 65535
    330 #if !E243_CORE_TRANSFORMS                   // E243_CORE_TRANSFORMS should be ON when DST is used
    331 #error "E243_CORE_TRANSFORMS should be ON"
    332 #endif
    333 #endif
    334 
    335 
    336 
     309
     310#define AMP_SAD                               1           ///< dedicated SAD functions for AMP
     311#define AMP_ENC_SPEEDUP                       1           ///< encoder only speed-up by AMP mode skipping
     312#if AMP_ENC_SPEEDUP
     313#define AMP_MRG                               1           ///< encoder only force merge for AMP partition (no motion search for AMP)
     314#endif
     315
     316#define SCALING_LIST_OUTPUT_RESULT    0 //JCTVC-G880/JCTVC-G1016 quantization matrices
     317#define SCALING_LIST                  1 //JCTVC-H0230/H0461/H0237
     318
     319#define DEFAULT_DC                    1 // JCTVC-H0242
     320
     321#define RPS_IN_SPS                    1 // Adopted during discussion of JCTVC-H0423
     322
     323#define H0412_REF_PIC_LIST_RESTRICTION 1
     324
     325#define H0566_TLA                     1
     326#if H0566_TLA
     327#define H0566_TLA_SET_FOR_SWITCHING_POINTS 1
     328#endif
     329
     330#define H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER 1
     331
     332#define DBL_H0473_PART_1          1   //Deblocking filtering simplification
     333#define DBL_CONTROL               1   //PPS deblocking_filter_control_present_flag (JCTVC-H0398); condition for inherit params flag in SH (JCTVC-H0424)
     334#define DBL_STRONG_FILTER_CLIP    1   //Introduction of strong filter clipping in deblocking filter (JCTVC-H0275)
     335
     336#define CABAC_INIT_FLAG             1 // JCTVC-H0540
     337#define CABAC_INIT_PRESENT_FLAG     1
     338
     339#define H0388                       1 // JCTVC-H0388
     340
     341#define TILES_WPP_ENTRY_POINT_SIGNALLING        1 // JCTVC-H0556. Assumes either Tiles is ON or WPP is ON (not both simultaneously).
     342#define REMOVE_TILE_DEPENDENCE                  1 // remove tile_boundary_independence_flag and dependent tiles
     343#define TILES_OR_ENTROPY_SYNC_IDC               1 // tiles_or_entropy_coding_sync_idc flag
     344#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
     345#define WPP_SIMPLIFICATION          1 // JCTVC-H0349/JCTVC-0517
    337346// ====================================================================================================================
    338347// Basic type redefinition
     
    348357typedef       int                 Int;
    349358typedef       unsigned int        UInt;
    350 typedef       long                Long;
    351 typedef       unsigned long       ULong;
    352359typedef       double              Double;
    353360
     
    379386typedef       Short           Pel;        ///< 16-bit pixel type
    380387typedef       Int             TCoeff;     ///< transform coefficient
    381 
    382388
    383389
     
    400406class TComPicSym;
    401407
    402 #if MTK_SAO
    403 
    404408#define NUM_DOWN_PART 4
    405409
    406 enum QAOTypeLen
     410enum SAOTypeLen
    407411{
    408412  SAO_EO_LEN    = 4,
    409   SAO_EO_LEN_2D = 6,
     413#if SAO_UNIT_INTERLEAVING
     414  SAO_BO_LEN    = 4,
     415  SAO_MAX_BO_CLASSES = 32
     416#else
    410417  SAO_BO_LEN    = 16
    411 };
    412 
    413 enum QAOType
     418#endif
     419};
     420
     421enum SAOType
    414422{
    415423  SAO_EO_0 = 0,
     
    417425  SAO_EO_2,
    418426  SAO_EO_3,
     427#if SAO_UNIT_INTERLEAVING
     428  SAO_BO,
     429#else
    419430  SAO_BO_0,
    420431  SAO_BO_1,
     432#endif
    421433  MAX_NUM_SAO_TYPE
    422434};
     
    424436typedef struct _SaoQTPart
    425437{
     438#if !SAO_UNIT_INTERLEAVING
    426439  Bool        bEnableFlag;
     440#endif
    427441  Int         iBestType;
    428442  Int         iLength;
     443#if SAO_UNIT_INTERLEAVING
     444  Int         bandPosition ;
     445  Int         iOffset[4];
     446#else
    429447  Int         iOffset[32];
    430 
     448#endif
    431449  Int         StartCUX;
    432450  Int         StartCUY;
     
    434452  Int         EndCUY;
    435453
    436   Int         part_xs;
    437   Int         part_xe;
    438   Int         part_ys;
    439   Int         part_ye;
    440   Int         part_width;
    441   Int         part_height;
    442 
    443454  Int         PartIdx;
    444455  Int         PartLevel;
     
    449460  Int         UpPartIdx;
    450461
    451   Int*        pSubPartList;
    452   Int         iLengthSubPartList;
    453 
    454   Bool        bBottomLevel;
    455462  Bool        bSplit;
    456   //    Bool        bAvailable;
    457463
    458464  //---- encoder only start -----//
    459   Int64***    pppiCorr; //[filt_type][corr_row][corr_col]
    460   Int**       ppCoeff;  //[filt_type][coeff]
    461465  Bool        bProcessed;
    462466  Double      dMinCost;
     
    466470} SAOQTPart;
    467471
    468 struct _SaoParam
    469 {
    470   Bool       bSaoFlag;
    471   SAOQTPart* psSaoPart;
     472#if SAO_UNIT_INTERLEAVING
     473typedef struct _SaoLcuParam
     474{
     475  Bool       mergeUpFlag;
     476  Bool       mergeLeftFlag;
     477  Int        typeIdx;
     478  Int        bandPosition;
     479  Int        offset[4];
     480  Int        runDiff;
     481  Int        run;
     482  Int        partIdx;
     483  Int        partIdxTmp;
     484  Int        length;
     485} SaoLcuParam;
     486#endif
     487
     488struct SAOParam
     489{
     490  Bool       bSaoFlag[3];
     491  SAOQTPart* psSaoPart[3];
    472492  Int        iMaxSplitLevel;
    473493  Int        iNumClass[MAX_NUM_SAO_TYPE];
    474 };
    475 
    476 #endif
    477 
    478 struct _AlfParam
     494#if SAO_UNIT_INTERLEAVING
     495  Bool         oneUnitFlag[3];
     496  SaoLcuParam* saoLcuParam[3];
     497  Int          numCuInHeight;
     498  Int          numCuInWidth;
     499#endif
     500  ~SAOParam();
     501};
     502
     503struct ALFParam
    479504{
    480505  Int alf_flag;                           ///< indicates use of ALF
    481   Int cu_control_flag;                    ///< coding unit based control flag
     506#if !LCU_SYNTAX_ALF
    482507  Int chroma_idc;                         ///< indicates use of ALF for chroma
    483 #if TI_ALF_MAX_VSIZE_7
    484   Int tap;                                ///< number of filter taps - horizontal
    485   Int tapV;                               ///< number of filter taps - vertical
    486 #else
    487   Int tap;                                ///< number of filter taps
    488508#endif
    489509  Int num_coeff;                          ///< number of filter coefficients
    490   Int *coeff;                             ///< filter coefficient array
    491   Int tap_chroma;                         ///< number of filter taps (chroma)
     510  Int filter_shape;
     511#if !LCU_SYNTAX_ALF
     512  Int filter_shape_chroma;
    492513  Int num_coeff_chroma;                   ///< number of filter coefficients (chroma)
    493514  Int *coeff_chroma;                      ///< filter coefficient array (chroma)
    494   //CodeAux related
    495   Int realfiltNo;
    496   Int filtNo;
    497 #if MQT_BA_RA
    498   Int filterPattern[NO_VAR_BIN];
    499 #else
    500   Int filterPattern[16];
    501 #endif
     515#endif
     516  Int *filterPattern;
    502517  Int startSecondFilter;
    503   Int noFilters;
    504 #if MQT_BA_RA
    505   Int varIndTab[NO_VAR_BIN];
    506 #else
    507   Int varIndTab[16];
    508 #endif
    509 
    510   //Coeff send related
    511   Int filters_per_group_diff; //this can be updated using codedVarBins
    512518  Int filters_per_group;
    513 #if MQT_BA_RA
    514   Int codedVarBins[NO_VAR_BIN];
    515 #else
    516   Int codedVarBins[16];
    517 #endif
    518   Int forceCoeff0;
    519519  Int predMethod;
     520  Int *nbSPred;
    520521  Int **coeffmulti;
    521522  Int minKStart;
     523#if !LCU_SYNTAX_ALF
    522524  Int maxScanVal;
    523525  Int kMinTab[42];
    524 #if TSB_ALF_HEADER
    525   UInt num_alf_cu_flag;
    526   UInt num_cus_in_frame;
    527   UInt alf_max_depth;
    528   UInt *alf_cu_flag;
    529 #endif
    530 
    531 #if MQT_BA_RA
     526
    532527  Int alf_pcr_region_flag;
    533 #endif
    534 };
     528  ~ALFParam();
     529#endif
     530#if LCU_SYNTAX_ALF
     531  Int componentID;
     532  Int* kMinTab;
     533  //constructor, operator
     534  ALFParam():componentID(-1){}
     535  ALFParam(Int cID){create(cID);}
     536  ALFParam(const ALFParam& src) {*this = src;}
     537  ~ALFParam(){destroy();}
     538  const ALFParam& operator= (const ALFParam& src);
     539private:
     540  Void create(Int cID);
     541  Void destroy();
     542  Void copy(const ALFParam& src);
     543#endif
     544};
     545
     546#if LCU_SYNTAX_ALF
     547struct AlfUnitParam
     548{
     549  Int   mergeType;
     550  Bool  isEnabled;
     551  Bool  isNewFilt;
     552  Int   storedFiltIdx;
     553  ALFParam* alfFiltParam;
     554  //constructor, operator
     555  AlfUnitParam();
     556  AlfUnitParam(const AlfUnitParam& src){ *this = src;}
     557  const AlfUnitParam& operator= (const AlfUnitParam& src);
     558  Bool operator == (const AlfUnitParam& cmp);
     559};
     560
     561struct AlfParamSet
     562{
     563  Bool isEnabled[3];
     564  Bool isUniParam[3];
     565  Int  numLCUInWidth;
     566  Int  numLCUInHeight;
     567  Int  numLCU;
     568  AlfUnitParam* alfUnitParam[3];
     569  //constructor, operator
     570  AlfParamSet(){create();}
     571  ~AlfParamSet(){destroy();}
     572  Void create(Int width =0, Int height=0, Int num=0);
     573  Void init();
     574  Void releaseALFParam();
     575  Void createALFParam();
     576private:
     577  Void destroy();
     578};
     579#endif
     580
     581
    535582
    536583/// parameters for deblocking filter
     
    542589} LFCUParam;
    543590
    544 /// parapeters for TENTM coefficient VLC
    545 typedef struct _LastCoeffStruct
    546 {
    547   int level;
    548   int last_pos;
    549 } LastCoeffStruct;
    550 
    551591// ====================================================================================================================
    552592// Enumeration
     
    559599  P_SLICE,
    560600  B_SLICE
     601};
     602
     603/// chroma formats (according to semantics of chroma_format_idc)
     604enum ChromaFormat
     605{
     606  CHROMA_400  = 0,
     607  CHROMA_420  = 1,
     608  CHROMA_422  = 2,
     609  CHROMA_444  = 3
    561610};
    562611
     
    568617  SIZE_Nx2N,            ///< symmetric motion partition,   Nx2N
    569618  SIZE_NxN,             ///< symmetric motion partition,   Nx N
    570 
     619  SIZE_2NxnU,           ///< asymmetric motion partition, 2Nx( N/2) + 2Nx(3N/2)
     620  SIZE_2NxnD,           ///< asymmetric motion partition, 2Nx(3N/2) + 2Nx( N/2)
     621  SIZE_nLx2N,           ///< asymmetric motion partition, ( N/2)x2N + (3N/2)x2N
     622  SIZE_nRx2N,           ///< asymmetric motion partition, (3N/2)x2N + ( N/2)x2N
    571623  SIZE_NONE = 15
    572 };
    573 
    574 //GT
    575 enum InterViewReference
    576 {
    577   PREVVIEW = 0,
    578   CURRVIEW = 1,
    579   NEXTVIEW = 2
    580624};
    581625
     
    600644};
    601645
    602 enum
    603 {
    604   VIEWPOS_INVALID = -1,
    605   VIEWPOS_LEFT    = 0,
    606   VIEWPOS_RIGHT   = 1,
    607   VIEWPOS_MERGED  = 2
    608 };
    609 
    610646/// reference list index
    611647enum RefPicList
     
    613649  REF_PIC_LIST_0 = 0,   ///< reference list 0
    614650  REF_PIC_LIST_1 = 1,   ///< reference list 1
    615 #if DCM_COMB_LIST
    616651  REF_PIC_LIST_C = 2,   ///< combined reference list for uni-prediction in B-Slices
    617 #endif
    618652  REF_PIC_LIST_X = 100  ///< special mark
    619653};
     
    655689  DF_HADS16N  = 28,     ///< 16NxM HAD with step
    656690
     691#if AMP_SAD
     692  DF_SAD12    = 43,
     693  DF_SAD24    = 44,
     694  DF_SAD48    = 45,
     695
     696  DF_SADS12   = 46,
     697  DF_SADS24   = 47,
     698  DF_SADS48   = 48,
     699
     700  DF_SSE_FRAME = 50     ///< Frame-based SSE
     701#else
    657702  DF_SSE_FRAME = 33     ///< Frame-based SSE
    658 };
    659 
     703#endif
     704};
    660705
    661706/// index for SBAC based RD optimization
     
    688733};
    689734
    690 /// interpolation filter type
    691 enum InterpFilterType
    692 {
    693   IPF_SAMSUNG_DIF_DEFAULT = 0,          ///< Samsung DCT-based filter
    694   IPF_HHI_4TAP_MOMS,                    ///< HHI 4-tap MOMS filter
    695   IPF_HHI_6TAP_MOMS,                    ///< HHI 6-tap MOMS filter
    696   IPF_LAST
    697 };
    698 
    699 #if QC_MDCS
    700735/// coefficient scanning type used in ACS
    701736enum COEFF_SCAN_TYPE
     
    703738  SCAN_ZIGZAG = 0,      ///< typical zigzag scan
    704739  SCAN_HOR,             ///< horizontal first scan
    705   SCAN_VER              ///< vertical first scan
    706 };
    707 #endif //QC_MDCS
    708 
    709 #endif
    710 
     740  SCAN_VER,              ///< vertical first scan
     741  SCAN_DIAG              ///< up-right diagonal scan
     742};
     743
     744// Renderer
     745enum
     746{
     747  VIEWPOS_INVALID = -1,
     748  VIEWPOS_LEFT    = 0,
     749  VIEWPOS_RIGHT   = 1,
     750  VIEWPOS_MERGED  = 2
     751};
     752
     753
     754//! \}
     755
     756#endif
     757
     758
Note: See TracChangeset for help on using the changeset viewer.