Changeset 1356 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TypeDef.h
- Timestamp:
- 27 Oct 2015, 11:33:16 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/TypeDef.h
r1321 r1356 43 43 //! \{ 44 44 ///////////////////////////////////////////////////////////////////////////////////////// 45 ///////////////////////////////// EXTENSION SELECTION /////////////////////////////////// 45 ///////////////////////////////// EXTENSION SELECTION /////////////////////////////////// 46 46 ///////////////////////////////////////////////////////////////////////////////////////// 47 47 /* HEVC_EXT might be defined by compiler/makefile options. 48 Linux makefiles support the following settings: 49 make -> HEVC_EXT not defined 48 Linux makefiles support the following settings: 49 make -> HEVC_EXT not defined 50 50 make HEVC_EXT=0 -> NH_MV=0 H_3D=0 --> plain HM 51 make HEVC_EXT=1 -> NH_MV=1 H_3D=0 --> MV only 52 make HEVC_EXT=2 -> NH_MV=1 H_3D=1 --> full 3D 51 make HEVC_EXT=1 -> NH_MV=1 H_3D=0 --> MV only 52 make HEVC_EXT=2 -> NH_MV=1 H_3D=1 --> full 3D 53 53 */ 54 54 #ifndef HEVC_EXT … … 56 56 #endif 57 57 #if ( HEVC_EXT < 0 )||( HEVC_EXT > 2 ) 58 #error HEVC_EXT must be in the range of 0 to 2, inclusive. 58 #error HEVC_EXT must be in the range of 0 to 2, inclusive. 59 59 #endif 60 60 #define NH_MV ( HEVC_EXT != 0) 61 61 #define NH_3D ( HEVC_EXT == 2) 62 62 ///////////////////////////////////////////////////////////////////////////////////////// 63 /////////////////////////////////// FIXES ///////////////////////////////////63 /////////////////////////////////// FIXES AND INTEGRATIONS //////////////////////// 64 64 ///////////////////////////////////////////////////////////////////////////////////////// 65 65 #if NH_MV 66 #define NH_MV_FIX_TICKET_106 1 // Identical motion check. 67 #define NH_MV_FIX_NO_REF_PICS_CHECK 1 // !!SPEC!! 68 #define NH_MV_FIX_INIT_NUM_ACTIVE_REF_LAYER_PICS 1 // Derivation of NumActiveRefLayerPIcs. !!SPEC!! 66 #define NH_MV_SEI_TBD 0 67 #define NH_MV_SEI 1 68 #define NH_MV_FIX_TICKET_106 1 // Identical motion check. 69 #define NH_MV_FIX_NO_REF_PICS_CHECK 1 // !!SPEC!! 70 #define NH_MV_FIX_INIT_NUM_ACTIVE_REF_LAYER_PICS 1 // Derivation of NumActiveRefLayerPIcs. !!SPEC!! 69 71 #define NH_MV_FIX_NUM_POC_TOTAL_CUR 1 // Derivation of NumPocTotalCur for IDR pictures. !!SPEC!! 72 #define NH_MV_LAYERS_NOT_PRESENT_SEI 1 // Layers not present SEI message JCTMV-M0043 73 #if NH_MV_SEI 74 #define SEI_DRI_F0169 1 75 #endif 70 76 #endif 71 77 #if NH_3D 72 78 #define H_3D_FIX_ARP_CHECK_NOT_IN_DPB 1 79 #define NH_3D_FIX_NBDV_COL 1 73 80 #endif 74 81 ///////////////////////////////////////////////////////////////////////////////////////// 75 /////////////////////////////////// MAJOR DEFINES /////////////////////////////////// 82 /////////////////////////////////// MAJOR DEFINES /////////////////////////////////// 76 83 ///////////////////////////////////////////////////////////////////////////////////////// 77 84 #if NH_MV … … 90 97 // LGE_ARP_CTX_F0161 JCT3V-F0161 91 98 // MTK_ARP_FLAG_CABAC_SIMP_G0061 Use 2 context for ARP flag referring to only left neighbor block in JCT3V-G0061 92 // MTK_ARP_REF_SELECTION_G0053 ARP Reference picture selection in JCT3V-G0053 99 // MTK_ARP_REF_SELECTION_G0053 ARP Reference picture selection in JCT3V-G0053 93 100 // MTK_ALIGN_SW_WD_BI_PRED_ARP_H0085 Align the SW and WD for the bi-prediction ARP PUs by disallowing non-normative fast bi-prediction for ARP PUs, JCT3V-H0085 94 // QC_I0051_ARP_SIMP 95 // SHARP_ARP_CHROMA_I0104 101 // QC_I0051_ARP_SIMP 102 // SHARP_ARP_CHROMA_I0104 96 103 // MTK_I0072_IVARP_SCALING_FIX 97 104 // SEC_ARP_VIEW_REF_CHECK_J0037 Signaling iv_res_pred_weight_idx when the current slice has both view and temporal reference picture(s), JCT3V-J0037 item1 98 105 // SEC_ARP_REM_ENC_RESTRICT_K0035 Removal of encoder restriction of ARP, JCT3V-K0035 99 106 #define NH_3D_QTLPC 1 // OL_QTLIMIT_PREDCODING_B0068 //JCT3V-B0068 100 // HHI_QTLPC_RAU_OFF_C0160 JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units 107 // HHI_QTLPC_RAU_OFF_C0160 JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units 101 108 // MTK_TEX_DEP_PAR_G0055 Texture-partition-dependent depth partition. JCT3V-G0055 102 #define NH_3D_VSO 1 // VSO, View synthesis optimization, includes: 109 #define NH_3D_VSO 1 // VSO, View synthesis optimization, includes: 103 110 // HHI_VSO 104 111 // HHI_VSO_LS_TABLE_M23714 enable table base Lagrange multiplier optimization … … 106 113 // LGE_WVSO_A0119 107 114 // SCU_HS_VSD_BUGFIX_IMPROV_G0163 108 #define NH_3D_NBDV 1 // Neighboring block disparity derivation 109 // QC_JCT3V-A0097 115 #define NH_3D_NBDV 1 // Neighboring block disparity derivation 116 // QC_JCT3V-A0097 110 117 // LGE_DVMCP_A0126 111 // LGE_DVMCP_MEM_REDUCTION_B0135 118 // LGE_DVMCP_MEM_REDUCTION_B0135 112 119 // QC_SIMPLE_NBDV_B0047 113 120 // FIX_LGE_DVMCP_B0133 114 121 // QC_NBDV_LDB_FIX_C0055 115 122 // MTK_SAIT_TEMPORAL_FIRST_ORDER_C0141_C0097 116 // MTK_SIMPLIFY_DVTC_C0135 123 // MTK_SIMPLIFY_DVTC_C0135 117 124 // QC_CU_NBDV_D0181 118 125 // SEC_DEFAULT_DV_D0112 … … 154 161 // NTT_VSP_DC_BUGFIX_E0208 bugfix for sub-PU based DC in VSP, JCT3V-E0208 155 162 // NTT_VSP_COMMON_E0207_E0208 common part of JCT3V-E0207 and JCT3V-E0208 156 // MTK_F0109_LG_F0120_VSP_BLOCK MTK_LG_SIMPLIFY_VSP_BLOCK_PARTITION_F0109_F0120 163 // MTK_F0109_LG_F0120_VSP_BLOCK MTK_LG_SIMPLIFY_VSP_BLOCK_PARTITION_F0109_F0120 157 164 // SHARP_VSP_BLOCK_IN_AMP_F0102 VSP partitioning for AMP 158 165 // MTK_VSP_SIMPLIFICATION_F0111 1. Inherited VSP also use NBDV of current CU, 2. VSP cannot be inherited from above LCU rowss 159 // LGE_SHARP_VSP_INHERIT_F0104 166 // LGE_SHARP_VSP_INHERIT_F0104 160 167 // NTT_STORE_SPDV_VSP_G0148 Storing Sub-PU based DV for VSP 161 168 // Restricted bi-prediction for VSP … … 164 171 #define NH_3D_MLC 1 165 172 #define NH_3D_IV_MERGE 1 // Inter-view motion merge candidate 166 // HHI_INTER_VIEW_MOTION_PRED 173 // HHI_INTER_VIEW_MOTION_PRED 167 174 // SAIT_IMPROV_MOTION_PRED_M24829, improved inter-view motion vector prediction 168 175 // QC_MRG_CANS_B0048 , JCT3V-B0048, B0086, B0069 169 176 // OL_DISMV_POS_B0069 , different pos for disparity MV candidate, B0069 170 177 // MTK_INTERVIEW_MERGE_A0049 , second part 171 // QC_AMVP_MRG_UNIFY_IVCAN_C0051 172 // QC_INRIA_MTK_MRG_E0126 178 // QC_AMVP_MRG_UNIFY_IVCAN_C0051 179 // QC_INRIA_MTK_MRG_E0126 173 180 // ETRIKHU_MERGE_REUSE_F0093 QC_DEPTH_IV_MRG_F0125, JCT3V-F0125: Depth oriented Inter-view MV candidate 174 181 // MTK_NBDV_IVREF_FIX_G0067 , Disable IvMC, VSP when IVREF is not available, JCT3V-G0067 … … 187 194 // TEXTURE MERGING CANDIDATE , JCT3V-C0137 188 195 // EC_MPI_ENABLING_MERGE_F0150, MPI flag in VPS and enabling in Merge mode 189 #define NH_3D_TMVP 1 // QC_TMVP_C0047 196 #define NH_3D_TMVP 1 // QC_TMVP_C0047 190 197 // Sony_M23639 191 198 // H_3D_TMVP_SCALING_FIX_K0053 1 // QC/CY for K0053 … … 207 214 // QC_DIM_DELTADC_UNIFY_F0132 Unify delta DC coding in depth intra modes 208 215 // LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135 Use only one context for CABAC of dim_not_present_flag 209 // QC_SIMP_DELTADC_CODING_H0131 Simplify detaDC entropy coding 216 // QC_SIMP_DELTADC_CODING_H0131 Simplify detaDC entropy coding 210 217 // MTK_DMM_SIMP_CODE_H0092 Remove CABAC context for DMM1 mode coding 211 218 // MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113 Use only one context for CABAC of delta_dc_flag as in JCTVC-H0084, JCTVC-H0100 and JCTVC-H0113 212 219 // HS_DMM_SIGNALLING_I0120 213 // SHARP_DMM1_I0110 LUT size reduction for DMM1 proposed in JCT3V-I0110 220 // SHARP_DMM1_I0110 LUT size reduction for DMM1 proposed in JCT3V-I0110 214 221 // MTK_DMM_SIM_J0035 215 // SHARP_DMM_CLEAN_K0042 1 // Generate DMM pattern with rotation 222 // SHARP_DMM_CLEAN_K0042 1 // Generate DMM pattern with rotation 216 223 #define NH_3D_DLT 1 // Depth Lookup Table 217 224 // HHI_DELTADC_DLT_D0035 218 225 // LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 JCT3V-F0159 219 // SEC_NO_RESI_DLT_H0105 220 // MTK_DLT_CODING_FIX_H0091 226 // SEC_NO_RESI_DLT_H0105 227 // MTK_DLT_CODING_FIX_H0091 221 228 // H_3D_DELTA_DLT 222 229 // RWTH_DLT_CLIP_I0057 223 // SHARP_DLT_SIMP_J0029 DLT(DepthValue2Idx[]) table derivation cleanup 230 // SHARP_DLT_SIMP_J0029 DLT(DepthValue2Idx[]) table derivation cleanup 224 231 #define NH_3D_SDC_INTRA 1 // Segment-wise DC Coding method for INTRA 225 #define NH_3D_SDC_INTER 1 // Segment-wise DC Coding method for INTER 232 #define NH_3D_SDC_INTER 1 // Segment-wise DC Coding method for INTER 226 233 // RWTH_SDC_DLT_B0036 227 234 // INTEL_SDC64_D0193 … … 249 256 // MPI_SUBPU_DEFAULT_MV_H0077_H0099_H0111_H0133 250 257 #define NH_3D_DBBP 1 // DBBP: Depth-based Block Partitioning and Merging 251 // MTK_DBBP_AMP_REM_H0072 252 // RWTH_DBBP_NO_SPU_H0057 253 // SEC_DBBP_FILTERING_H0104 254 // MTK_DBBP_SIGNALING_H0094 255 // H_3D_FIX_DBBP_IVMP Fix . Enable IVMP is always disabled, when DBBP is enabled. The original intention is to disable Sub-PU IVMP when DBBP is enabled, not to disable IVMP itself. 258 // MTK_DBBP_AMP_REM_H0072 259 // RWTH_DBBP_NO_SPU_H0057 260 // SEC_DBBP_FILTERING_H0104 261 // MTK_DBBP_SIGNALING_H0094 262 // H_3D_FIX_DBBP_IVMP Fix . Enable IVMP is always disabled, when DBBP is enabled. The original intention is to disable Sub-PU IVMP when DBBP is enabled, not to disable IVMP itself. 256 263 // SEC_DBBP_EXPLICIT_SIG_I0077 Remove the partition derivation and signal dbbp_flag only when the partition mode is 2NxN/Nx2N, JCT3V-I0077 257 264 // Disallow DBBP in 8x8 CU, JCT3V-I0078 … … 261 268 // RWTH_DBBP_NO_SATD_K0028 262 269 // HS_DBBP_CLEAN_K0048 263 #define NH_3D_DIS 1 // Depth intra skip 270 #define NH_3D_DIS 1 // Depth intra skip 264 271 // SEC_DEPTH_INTRA_SKIP_MODE_K0033 Depth intra skip mode 265 272 #define H_3D_FCO 0 // Flexible coding order for 3D … … 272 279 // HHI_VPS_3D_EXTENSION_I3_J0107 273 280 // HHI_INTER_COMP_PRED_K0052 274 // HHI_RES_PRED_K0052 275 // HHI_CAM_PARA_K0052 276 // H_3D_DIRECT_DEP_TYPE 281 // HHI_RES_PRED_K0052 282 // HHI_CAM_PARA_K0052 283 // H_3D_DIRECT_DEP_TYPE 277 284 // Rate Control 278 285 #define KWU_FIX_URQ 0 … … 281 288 #endif // NH_3D 282 289 ///////////////////////////////////////////////////////////////////////////////////////// 283 /////////////////////////////////// DERIVED DEFINES /////////////////////////////////// 290 /////////////////////////////////// DERIVED DEFINES /////////////////////////////////// 284 291 ///////////////////////////////////////////////////////////////////////////////////////// 285 292 #if NH_3D … … 288 295 #endif 289 296 ///// ***** VIEW SYNTHESIS OPTIMIZAION ********* 290 #if NH_3D_VSO 297 #if NH_3D_VSO 291 298 #define H_3D_VSO_DIST_INT 1 // Allow negative synthesized view distortion change 292 #define H_3D_VSO_COLOR_PLANES 1 // Compute VSO distortion on color planes 299 #define H_3D_VSO_COLOR_PLANES 1 // Compute VSO distortion on color planes 293 300 #define H_3D_VSO_EARLY_SKIP 1 // LGE_VSO_EARLY_SKIP_A0093, A0093 modification 4 294 301 #define H_3D_VSO_RM_ASSERTIONS 0 // Output VSO assertions … … 332 339 /////////////////////////////////// MV_HEVC HLS ////////////////////////////// 333 340 ///////////////////////////////////////////////////////////////////////////////// 334 // TBD: Check if integration is necessary. 341 // TBD: Check if integration is necessary. 335 342 #define H_MV_HLS_PTL_LIMITS 0 336 343 ///////////////////////////////////////////////////////////////////////////////////////// … … 485 492 typedef UInt Distortion; ///< distortion measurement 486 493 #endif 487 #if NH_MV 494 #if NH_MV 495 typedef std::vector< std::string > StringAry1d; 496 typedef std::vector< StringAry1d > StringAry2d; 488 497 typedef std::vector< Int > IntAry1d; 489 typedef std::vector< IntAry1d > IntAry2d; 490 typedef std::vector< IntAry2d > IntAry3d; 491 typedef std::vector< IntAry3d > IntAry4d; 492 typedef std::vector< IntAry4d > IntAry5d; 498 typedef std::vector< IntAry1d > IntAry2d; 499 typedef std::vector< IntAry2d > IntAry3d; 500 typedef std::vector< IntAry3d > IntAry4d; 501 typedef std::vector< IntAry4d > IntAry5d; 493 502 typedef std::vector< Bool > BoolAry1d; 494 typedef std::vector< BoolAry1d > BoolAry2d; 495 typedef std::vector< BoolAry2d > BoolAry3d; 496 typedef std::vector< BoolAry3d > BoolAry4d; 497 typedef std::vector< BoolAry4d > BoolAry5d; 503 typedef std::vector< BoolAry1d > BoolAry2d; 504 typedef std::vector< BoolAry2d > BoolAry3d; 505 typedef std::vector< BoolAry3d > BoolAry4d; 506 typedef std::vector< BoolAry4d > BoolAry5d; 498 507 #endif 499 508 #if NH_3D_VSO … … 504 513 #if H_3D_VSO_DIST_INT 505 514 typedef Int64 Dist; ///< RDO distortion 506 typedef Int64 Dist64; 515 typedef Int64 Dist64; 507 516 #define RDO_DIST_MIN MIN_INT 508 517 #define RDO_DIST_MAX MAX_INT 509 518 #else 510 519 typedef UInt Dist; ///< RDO distortion 511 typedef UInt64 Dist; 520 typedef UInt64 Dist; 512 521 #define RDO_DIST_MIN 0 513 522 #define RDO_DIST_MAX MAX_UINT … … 797 806 ANNEX_G, 798 807 ANNEX_H, 799 ANNEX_I 808 ANNEX_I 800 809 }; 801 810 #endif … … 813 822 ,MULTIVIEWMAIN = 6, 814 823 #if NH_3D 815 MAIN3D = 8, 824 MAIN3D = 8, 816 825 #endif 817 826 #endif … … 941 950 enum ScalabilityType 942 951 { 943 DEPTH_ID = 0, 952 DEPTH_ID = 0, 944 953 VIEW_ORDER_INDEX = 1, 945 954 DEPENDENCY_ID = 2,
Note: See TracChangeset for help on using the changeset viewer.