Changeset 1029 in SHVCSoftware for branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.h
- Timestamp:
- 26 Feb 2015, 00:21:54 (10 years ago)
- Location:
- branches/SHM-dev
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev
- Property svn:mergeinfo changed
-
branches/SHM-dev/source
- Property svn:mergeinfo changed
-
branches/SHM-dev/source/App/TAppEncoder/TAppEncCfg.h
r1005 r1029 2 2 * License, included below. This software may be subject to other third party 3 3 * and contributor rights, including patent rights, and no such rights are 4 * granted under this license. 4 * granted under this license. 5 5 * 6 6 * Copyright (c) 2010-2014, ITU/ISO/IEC … … 91 91 std::vector< std::vector<Int> > m_listOfOutputLayers; 92 92 #endif 93 Bool m_isField; ///< enable field coding 94 Bool m_isTopFieldFirst; 93 95 #else 94 96 Char* m_pchInputFile; ///< source file name … … 98 100 // source specification 99 101 Int m_iFrameRate; ///< source frame-rates (Hz) 100 UInt m_FrameSkip; 102 UInt m_FrameSkip; ///< number of skipped frames from the beginning 101 103 Int m_iSourceWidth; ///< source width in pixel 102 104 Int m_iSourceHeight; ///< source height in pixel (when interlaced = field height) 103 105 104 106 Int m_iSourceHeightOrg; ///< original source height in pixel (when interlaced = frame height) 105 106 107 108 Bool m_isField; ///< enable field coding 109 Bool m_isTopFieldFirst; 110 107 111 Int m_conformanceWindowMode; 108 112 Int m_confWinLeft; … … 113 117 Int m_aiPad[2]; ///< number of padded pixels for width and height 114 118 #endif 115 #if AUXILIARY_PICTURES 119 InputColourSpaceConversion m_inputColourSpaceConvert; ///< colour space conversion to apply to input video 120 Bool m_snrInternalColourSpace; ///< if true, then no colour space conversion is applied for snr calculation, otherwise inverse of input is applied. 121 Bool m_outputInternalColourSpace; ///< if true, then no colour space conversion is applied for reconstructed video, otherwise inverse of input is applied. 122 #if !SVC_EXTENSION 116 123 ChromaFormat m_InputChromaFormatIDC; 117 124 #endif 118 Bool m_isField; ///< enable field coding 119 Bool m_isTopFieldFirst; 120 121 // profile/level 122 #if SVC_EXTENSION && MULTIPLE_PTL_SUPPORT 125 126 Bool m_printMSEBasedSequencePSNR; 127 Bool m_printFrameMSE; 128 Bool m_printSequenceMSE; 129 Bool m_cabacZeroWordPaddingEnabled; 130 131 #if MULTIPLE_PTL_SUPPORT 123 132 Int m_numPTLInfo; 124 Int m_layerPTLIdx[MAX_VPS_LAYER_ID_PLUS1]; ///< scalability_mask125 133 Profile::Name m_profileList[MAX_NUM_LAYER_IDS + 1]; 126 134 Level::Tier m_levelTierList[MAX_NUM_LAYER_IDS + 1]; … … 134 142 std::vector< std::vector<Int> > m_listOfLayerPTLofOlss; 135 143 #else 144 // profile/level 136 145 Profile::Name m_profile; 137 146 Level::Tier m_levelTier; 138 147 Level::Name m_level; 148 UInt m_bitDepthConstraint; 149 ChromaFormat m_chromaFormatConstraint; 150 Bool m_intraConstraintFlag; 151 Bool m_lowerBitRateConstraintFlag; 139 152 Bool m_progressiveSourceFlag; 140 153 Bool m_interlacedSourceFlag; … … 164 177 Int m_numReorderPics[MAX_TLAYER]; ///< total number of reorder pictures 165 178 Int m_maxDecPicBuffering[MAX_TLAYER]; ///< total number of pictures in the decoded picture buffer 179 Bool m_useCrossComponentPrediction; ///< flag enabling the use of cross-component prediction 180 Bool m_reconBasedCrossCPredictionEstimate; ///< causes the alpha calculation in encoder search to be based on the decoded residual rather than the pre-transform encoder-side residual 181 UInt m_saoOffsetBitShift[MAX_NUM_CHANNEL_TYPE]; ///< number of bits for the upward bit shift operation on the decoded SAO offsets 166 182 Bool m_useTransformSkip; ///< flag for enabling intra transform skipping 167 183 Bool m_useTransformSkipFast; ///< flag for enabling fast intra transform skipping 184 UInt m_transformSkipLog2MaxSize; ///< transform-skip maximum size (minimum of 2) 185 Bool m_useResidualRotation; ///< control flag for transform-skip/transquant-bypass residual rotation 186 Bool m_useSingleSignificanceMapContext; ///< control flag for transform-skip/transquant-bypass single significance map context 187 Bool m_useResidualDPCM[NUMBER_OF_RDPCM_SIGNALLING_MODES];///< control flags for residual DPCM 168 188 Bool m_enableAMP; 189 Bool m_useGolombRiceParameterAdaptation; ///< control flag for Golomb-Rice parameter adaptation over each slice 190 Bool m_alignCABACBeforeBypass; 191 169 192 // coding quality 170 193 #if !SVC_EXTENSION … … 177 200 UInt m_uiDeltaQpRD; ///< dQP range for multi-pass slice QP optimization 178 201 Int m_iMaxCuDQPDepth; ///< Max. depth for a minimum CuDQPSize (0:default) 179 180 Int m_cbQpOffset; ///< Chroma Cb QP Offset (0:default) 202 Int m_maxCUChromaQpAdjustmentDepth; 203 204 Int m_cbQpOffset; ///< Chroma Cb QP Offset (0:default) 181 205 Int m_crQpOffset; ///< Chroma Cr QP Offset (0:default) 182 206 … … 184 208 Bool m_bUseAdaptQpSelect; 185 209 #endif 210 TComSEIMasteringDisplay m_masteringDisplay; 186 211 187 212 Bool m_bUseAdaptiveQP; ///< Flag for enabling QP adaptation based on a psycho-visual model 188 213 Int m_iQPAdaptationRange; ///< dQP range by QP adaptation 189 214 190 215 Int m_maxTempLayer; ///< Max temporal layer 191 216 #if Q0108_TSA_STSA … … 195 220 #if !LAYER_CTB 196 221 // coding unit (CU) definition 222 // TODO: Remove MaxCUWidth/MaxCUHeight and replace with MaxCUSize. 197 223 UInt m_uiMaxCUWidth; ///< max. CU width in pixel 198 224 UInt m_uiMaxCUHeight; ///< max. CU height in pixel 199 225 UInt m_uiMaxCUDepth; ///< max. CU depth 200 226 201 227 // transfom unit (TU) definition 202 228 UInt m_uiQuadtreeTULog2MaxSize; 203 229 UInt m_uiQuadtreeTULog2MinSize; 204 230 205 231 UInt m_uiQuadtreeTUMaxDepthInter; 206 232 UInt m_uiQuadtreeTUMaxDepthIntra; … … 209 235 // coding tools (bit-depth) 210 236 #if !O0194_DIFFERENT_BITDEPTH_EL_BL 211 Int m_inputBitDepthY; ///< bit-depth of input file (luma component) 212 Int m_inputBitDepthC; ///< bit-depth of input file (chroma component) 213 Int m_outputBitDepthY; ///< bit-depth of output file (luma component) 214 Int m_outputBitDepthC; ///< bit-depth of output file (chroma component) 215 Int m_internalBitDepthY; ///< bit-depth codec operates at in luma (input/output files will be converted) 216 Int m_internalBitDepthC; ///< bit-depth codec operates at in chroma (input/output files will be converted) 217 #endif 218 #if AUXILIARY_PICTURES 237 Int m_inputBitDepth [MAX_NUM_CHANNEL_TYPE]; ///< bit-depth of input file 238 Int m_outputBitDepth [MAX_NUM_CHANNEL_TYPE]; ///< bit-depth of output file 239 Int m_MSBExtendedBitDepth[MAX_NUM_CHANNEL_TYPE]; ///< bit-depth of input samples after MSB extension 240 Int m_internalBitDepth[MAX_NUM_CHANNEL_TYPE]; ///< bit-depth codec operates at (input/output files will be converted) 241 Bool m_useExtendedPrecision; 242 Bool m_useHighPrecisionPredictionWeighting; 243 #endif 244 //coding tools (chroma format) 245 #if !SVC_EXTENSION 219 246 ChromaFormat m_chromaFormatIDC; 220 247 #endif … … 224 251 225 252 // coding tool (SAO) 226 Bool m_bUseSAO; 253 Bool m_bUseSAO; 227 254 Int m_maxNumOffsetsPerPic; ///< SAO maximun number of offset per picture 228 Bool m_sao LcuBoundary; ///< SAO parameter estimation using non-deblocked pixels for LCU bottom and right boundary areas255 Bool m_saoCtuBoundary; ///< SAO parameter estimation using non-deblocked pixels for CTU bottom and right boundary areas 229 256 // coding tools (loop filter) 230 257 Bool m_bLoopFilterDisable; ///< flag for using deblocking filter … … 234 261 Bool m_DeblockingFilterControlPresent; ///< deblocking filter control present flag in PPS 235 262 Bool m_DeblockingFilterMetric; ///< blockiness metric in encoder 236 263 237 264 // coding tools (PCM) 238 265 Bool m_usePCM; ///< flag for using IPCM … … 240 267 UInt m_uiPCMLog2MinSize; ///< log2 of minimum PCM block size 241 268 Bool m_bPCMFilterDisableFlag; ///< PCM filter disable flag 269 Bool m_enableIntraReferenceSmoothing; ///< flag for enabling(default)/disabling intra reference smoothing/filtering 242 270 243 271 // coding tools (encoder-only parameters) … … 246 274 Bool m_useRDOQ; ///< flag for using RD optimized quantization 247 275 Bool m_useRDOQTS; ///< flag for using RD optimized quantization for transform skip 248 Int m_rdPenalty; ///< RD-penalty for 32x32 TU for intra in non-intra slices (0: no RD-penalty, 1: RD-penalty, 2: maximum RD-penalty) 276 Int m_rdPenalty; ///< RD-penalty for 32x32 TU for intra in non-intra slices (0: no RD-penalty, 1: RD-penalty, 2: maximum RD-penalty) 249 277 Int m_iFastSearch; ///< ME mode, 0 = full, 1 = diamond, 2 = PMVFAST 250 278 Int m_iSearchRange; ///< ME search range … … 252 280 Bool m_bUseFastEnc; ///< flag for using fast encoder setting 253 281 Bool m_bUseEarlyCU; ///< flag for using Early CU setting 254 Bool m_useFastDecisionForMerge; ///< flag for using Fast Decision Merge RD-Cost 282 Bool m_useFastDecisionForMerge; ///< flag for using Fast Decision Merge RD-Cost 255 283 Bool m_bUseCbfFastMode; ///< flag for using Cbf Fast PU Mode Decision 256 284 Bool m_useEarlySkipDetection; ///< flag for using Early SKIP Detection 257 #if FAST_INTRA_SHVC 258 Bool m_useFastIntraScalable; ///< flag for using Fast Intra Decision for Scalable HEVC 259 #endif 260 Int m_sliceMode; ///< 0: no slice limits, 1 : max number of CTBs per slice, 2: max number of bytes per slice, 285 Int m_sliceMode; ///< 0: no slice limits, 1 : max number of CTBs per slice, 2: max number of bytes per slice, 261 286 ///< 3: max number of tiles per slice 262 287 Int m_sliceArgument; ///< argument according to selected slice mode 263 Int m_sliceSegmentMode; ///< 0: no slice segment limits, 1 : max number of CTBs per slice segment, 2: max number of bytes per slice segment, 288 Int m_sliceSegmentMode; ///< 0: no slice segment limits, 1 : max number of CTBs per slice segment, 2: max number of bytes per slice segment, 264 289 ///< 3: max number of tiles per slice segment 265 290 Int m_sliceSegmentArgument; ///< argument according to selected slice segment mode … … 274 299 #if !SVC_EXTENSION 275 300 Int m_iWaveFrontSynchro; //< 0: no WPP. >= 1: WPP is enabled, the "Top right" from which inheritance occurs is this LCU offset in the line above the current. 301 Int m_iWaveFrontFlush; //< enable(1)/disable(0) the CABAC flush at the end of each line of LCUs. 276 302 Int m_iWaveFrontSubstreams; //< If iWaveFrontSynchro, this is the number of substreams per frame (dependent tiles) or per tile (independent tiles). 277 303 #endif 278 304 Bool m_bUseConstrainedIntraPred; ///< flag for using constrained intra prediction 305 279 306 Int m_decodedPictureHashSEIEnabled; ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting on decoded picture hash SEI message 280 307 Int m_recoveryPointSEIEnabled; … … 282 309 Int m_pictureTimingSEIEnabled; 283 310 Bool m_toneMappingInfoSEIEnabled; 311 Bool m_chromaSamplingFilterSEIenabled; 312 Int m_chromaSamplingHorFilterIdc; 313 Int m_chromaSamplingVerFilterIdc; 284 314 Int m_toneMapId; 285 315 Bool m_toneMapCancelFlag; … … 287 317 Int m_toneMapCodedDataBitDepth; 288 318 Int m_toneMapTargetBitDepth; 289 Int m_toneMapModelId; 319 Int m_toneMapModelId; 290 320 Int m_toneMapMinValue; 291 321 Int m_toneMapMaxValue; … … 313 343 Int m_framePackingSEIQuincunx; 314 344 Int m_framePackingSEIInterpretation; 345 Int m_segmentedRectFramePackingSEIEnabled; 346 Bool m_segmentedRectFramePackingSEICancel; 347 Int m_segmentedRectFramePackingSEIType; 348 Bool m_segmentedRectFramePackingSEIPersistence; 315 349 Int m_displayOrientationSEIAngle; 316 350 Int m_temporalLevel0IndexSEIEnabled; 317 351 Int m_gradualDecodingRefreshInfoEnabled; 352 Int m_noDisplaySEITLayer; 318 353 Int m_decodingUnitInfoSEIEnabled; 319 #if LAYERS_NOT_PRESENT_SEI320 Int m_layersNotPresentSEIEnabled;321 #endif322 354 Int m_SOPDescriptionSEIEnabled; 323 355 Int m_scalableNestingSEIEnabled; 324 #if Q0189_TMVP_CONSTRAINTS 325 Int m_TMVPConstraintsSEIEnabled; 326 #endif 356 Bool m_tmctsSEIEnabled; 357 Bool m_timeCodeSEIEnabled; 358 Int m_timeCodeSEINumTs; 359 TComSEITimeSet m_timeSetArray[MAX_TIMECODE_SEI_SETS]; 360 Bool m_kneeSEIEnabled; 361 Int m_kneeSEIId; 362 Bool m_kneeSEICancelFlag; 363 Bool m_kneeSEIPersistenceFlag; 364 Int m_kneeSEIInputDrange; 365 Int m_kneeSEIInputDispLuminance; 366 Int m_kneeSEIOutputDrange; 367 Int m_kneeSEIOutputDispLuminance; 368 Int m_kneeSEINumKneePointsMinus1; 369 Int* m_kneeSEIInputKneePoint; 370 Int* m_kneeSEIOutputKneePoint; 327 371 // weighted prediction 328 372 Bool m_useWeightedPred; ///< Use of weighted prediction in P slices 329 373 Bool m_useWeightedBiPred; ///< Use of bi-directional weighted prediction in B slices 330 374 331 375 UInt m_log2ParallelMergeLevel; ///< Parallel merge estimation region 332 376 UInt m_maxNumMergeCand; ///< Max number of merge candidates … … 338 382 Int m_RCTargetBitrate; ///< target bitrate when rate control is enabled 339 383 Int m_RCKeepHierarchicalBit; ///< 0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation 340 Bool m_RCLCULevelRC; ///< true: LCU level rate control; false: picture level rate control 341 Bool m_RCUseLCUSeparateModel; ///< use separate R-lambda model at LCU level 384 Bool m_RCLCULevelRC; ///< true: LCU level rate control; false: picture level rate control NOTE: code-tidy - rename to m_RCCtuLevelRC 385 Bool m_RCUseLCUSeparateModel; ///< use separate R-lambda model at LCU level NOTE: code-tidy - rename to m_RCUseCtuSeparateModel 342 386 Int m_RCInitialQP; ///< inital QP for rate control 343 387 Bool m_RCForceIntraQP; ///< force all intra picture to use initial QP or not 344 388 #endif 345 Int m_useScalingListId;///< using quantization matrix389 ScalingListMode m_useScalingListId; ///< using quantization matrix 346 390 Char* m_scalingListFile; ///< quantization matrix file name 347 391 348 392 Bool m_TransquantBypassEnableFlag; ///< transquant_bypass_enable_flag setting in PPS. 349 393 Bool m_CUTransquantBypassFlagForce; ///< if transquant_bypass_enable_flag, then, if true, all CU transquant bypass flags will be set to true. 394 CostMode m_costMode; ///< Cost mode to use 350 395 351 396 Bool m_recalculateQPAccordingToLambda; ///< recalculate QP value according to the lambda value … … 387 432 Int m_log2MaxMvLengthHorizontal; ///< Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units 388 433 Int m_log2MaxMvLengthVertical; ///< Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units 434 435 #if LAYERS_NOT_PRESENT_SEI 436 Int m_layersNotPresentSEIEnabled; 437 #endif 438 439 #if SVC_EXTENSION 440 #if FAST_INTRA_SHVC 441 Bool m_useFastIntraScalable; ///< flag for using Fast Intra Decision for Scalable HEVC 442 #endif 443 #if Q0189_TMVP_CONSTRAINTS 444 Int m_TMVPConstraintsSEIEnabled; 445 #endif 389 446 #if O0153_ALT_OUTPUT_LAYER_FLAG 390 447 Bool m_altOutputLayerFlag; ///< Specifies the value of alt_output_laye_flag in VPS extension 391 448 #endif 392 393 #if SVC_EXTENSION394 449 Int m_elRapSliceBEnabled; 395 450 #endif 396 451 #if Q0074_COLOUR_REMAPPING_SEI 397 452 #if !SVC_EXTENSION 398 stringm_colourRemapSEIFile;453 Char* m_colourRemapSEIFile; 399 454 Int m_colourRemapSEIId; 400 455 Bool m_colourRemapSEICancelFlag; … … 424 479 Void xSetGlobal (); ///< set global variables 425 480 #endif 481 #if SVC_EXTENSION 482 Void xCheckParameter (UInt layerId); ///< check validity of configuration values per layer 483 #else 426 484 Void xCheckParameter (); ///< check validity of configuration values 485 #endif 427 486 Void xPrintParameter (); ///< print configuration values 428 487 Void xPrintUsage (); ///< print usage … … 452 511 #endif 453 512 Bool m_crossLayerIrapAlignFlag; 454 #if P0050_KNEE_FUNCTION_SEI455 Bool m_kneeSEIEnabled;456 Int m_kneeSEIId;457 Bool m_kneeSEICancelFlag;458 Bool m_kneeSEIPersistenceFlag;459 Bool m_kneeSEIMappingFlag;460 Int m_kneeSEIInputDrange;461 Int m_kneeSEIInputDispLuminance;462 Int m_kneeSEIOutputDrange;463 Int m_kneeSEIOutputDispLuminance;464 Int m_kneeSEINumKneePointsMinus1;465 Int* m_kneeSEIInputKneePoint;466 Int* m_kneeSEIOutputKneePoint;467 #endif468 513 #if Q0096_OVERLAY_SEI 469 514 Bool m_overlaySEIEnabled; … … 514 559 TAppEncCfg(); 515 560 virtual ~TAppEncCfg(); 516 561 517 562 public: 518 563 Void create (); ///< create option handling class … … 525 570 Int getGOPSize() {return m_iGOPSize; } 526 571 #if O0194_DIFFERENT_BITDEPTH_EL_BL 527 UInt getInternalBitDepthY(Int iLayer) {return m_acLayerCfg[iLayer].m_internalBitDepthY; } 528 UInt getInternalBitDepthC(Int iLayer) {return m_acLayerCfg[iLayer].m_internalBitDepthC; } 572 UInt getInternalBitDepth(Int iLayer, ChannelType type) {return m_acLayerCfg[iLayer].m_internalBitDepth[type]; } 529 573 Bool getPCMInputBitDepthFlag() {return m_bPCMInputBitDepthFlag; } 530 574 #else 531 UInt getInternalBitDepthY() {return m_internalBitDepthY; } 532 UInt getInternalBitDepthC() {return m_internalBitDepthC; } 575 UInt getInternalBitDepth( ChannelType type ) {return m_internalBitDepth[type]; } 533 576 #endif 534 577 #if !LAYER_CTB
Note: See TracChangeset for help on using the changeset viewer.