Changeset 1313 in 3DVCSoftware for trunk/source/App/TAppEncoder/TAppEncCfg.h
- Timestamp:
- 13 Aug 2015, 17:38:13 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/App/TAppEncoder/TAppEncCfg.h
r1196 r1313 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 * Copyright (c) 2010-2015, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 44 44 #include <sstream> 45 45 #include <vector> 46 #if H_3D46 #if NH_3D 47 47 #include "TAppCommon/TAppComCamPara.h" 48 48 #include "TLibRenderer/TRenModel.h" … … 61 61 protected: 62 62 // file I/O 63 #if H_MV63 #if NH_MV 64 64 std::vector<char*> m_pchInputFileList; ///< source file names 65 65 #else … … 67 67 #endif 68 68 Char* m_pchBitstreamFile; ///< output bitstream file 69 #if H_MV69 #if NH_MV 70 70 std::vector<char*> m_pchReconFileList; ///< output reconstruction file names 71 71 Int m_numberOfLayers; ///< number of Layers to Encode … … 74 74 Char* m_pchReconFile; ///< output reconstruction file 75 75 #endif 76 #if H_MV76 #if NH_MV 77 77 // VPS specification 78 std::vector< std::vector<Int> >m_dimIds; ///< dimension ids ( pointers to m_viewId and m_depthFlag78 IntAry2d m_dimIds; ///< dimension ids ( pointers to m_viewId and m_depthFlag 79 79 std::vector<Int> m_viewId; ///< view id 80 80 std::vector<Int> m_viewOrderIndex; ///< view order index 81 81 std::vector<Int> m_auxId; ///< auxiliary id 82 #if H_3D82 #if NH_3D 83 83 std::vector<Int> m_depthFlag; ///< depth flag 84 84 #endif … … 91 91 // layer sets 92 92 Int m_vpsNumLayerSets; ///< Number of layer sets 93 std::vector< std::vector<Int> >m_layerIdsInSets; ///< LayerIds in vps of layer set93 IntAry2d m_layerIdsInSets; ///< LayerIds in vps of layer set 94 94 Int m_numAddLayerSets; ///< Number of additional layer sets 95 std::vector< std::vector<Int> >m_highestLayerIdxPlus1; ///< HighestLayerIdxPlus1 for each additional layer set and each independent layer (value with index 0 will be ignored)95 IntAry2d m_highestLayerIdxPlus1; ///< HighestLayerIdxPlus1 for each additional layer set and each independent layer (value with index 0 will be ignored) 96 96 Int m_defaultOutputLayerIdc; ///< Specifies output layers of layer sets, 0: output all layers, 1: output highest layers, 2: specified by LayerIdsInDefOuputLayerSet 97 97 std::vector<Int> m_outputLayerSetIdx; ///< Indices of layer sets used as additional output layer sets 98 std::vector< std::vector<Int> >m_layerIdsInAddOutputLayerSet; ///< LayerIds in vps of additional output layers99 std::vector< std::vector<Int> >m_layerIdsInDefOutputLayerSet; ///< Indices in vps of output layers in layer sets100 std::vector< std::vector< Int > >m_profileTierLevelIdx; ///< Indices of of profile, per layer in layer set98 IntAry2d m_layerIdsInAddOutputLayerSet; ///< LayerIds in vps of additional output layers 99 IntAry2d m_layerIdsInDefOutputLayerSet; ///< Indices in vps of output layers in layer sets 100 IntAry2d m_profileTierLevelIdx; ///< Indices of of profile, per layer in layer set 101 101 std::vector<Bool> m_altOutputLayerFlag; ///< Alt output layer flag 102 102 103 103 // Dependencies 104 std::vector< std::vector<Int> >m_directRefLayers; ///< LayerIds of direct reference layers105 std::vector< std::vector<Int> >m_dependencyTypes; ///< Dependency types of direct reference layers104 IntAry2d m_directRefLayers; ///< LayerIds of direct reference layers 105 IntAry2d m_dependencyTypes; ///< Dependency types of direct reference layers 106 106 107 107 // VPS VUI … … 119 119 std::vector< std::vector<Int > > m_avgPicRate; 120 120 Bool m_tilesNotInUseFlag; 121 std::vector< Bool >m_tilesInUseFlag;122 std::vector< Bool >m_loopFilterNotAcrossTilesFlag;121 BoolAry1d m_tilesInUseFlag; 122 BoolAry1d m_loopFilterNotAcrossTilesFlag; 123 123 Bool m_wppNotInUseFlag; 124 std::vector< Bool >m_wppInUseFlag;124 BoolAry1d m_wppInUseFlag; 125 125 126 126 std::vector< std::vector<Bool > > m_tileBoundariesAlignedFlag; … … 133 133 134 134 135 #if H_3D_IC136 Bool m_abUseIC;137 Bool m_bUseLowLatencyICEnc;135 #if NH_3D 136 Bool m_abUseIC; 137 Bool m_bUseLowLatencyICEnc; 138 138 #endif 139 139 … … 142 142 // source specification 143 143 Int m_iFrameRate; ///< source frame-rates (Hz) 144 UInt m_FrameSkip; 144 UInt m_FrameSkip; ///< number of skipped frames from the beginning 145 145 Int m_iSourceWidth; ///< source width in pixel 146 146 Int m_iSourceHeight; ///< source height in pixel (when interlaced = field height) 147 147 148 148 Int m_iSourceHeightOrg; ///< original source height in pixel (when interlaced = frame height) 149 150 bool m_isField; ///< enable field coding 151 bool m_isTopFieldFirst; 152 149 150 Bool m_isField; ///< enable field coding 151 Bool m_isTopFieldFirst; 152 Bool m_bEfficientFieldIRAPEnabled; ///< enable an efficient field IRAP structure. 153 Bool m_bHarmonizeGopFirstFieldCoupleEnabled; 154 153 155 Int m_conformanceWindowMode; 154 156 Int m_confWinLeft; … … 158 160 Int m_framesToBeEncoded; ///< number of encoded frames 159 161 Int m_aiPad[2]; ///< number of padded pixels for width and height 160 162 InputColourSpaceConversion m_inputColourSpaceConvert; ///< colour space conversion to apply to input video 163 Bool m_snrInternalColourSpace; ///< if true, then no colour space conversion is applied for snr calculation, otherwise inverse of input is applied. 164 Bool m_outputInternalColourSpace; ///< if true, then no colour space conversion is applied for reconstructed video, otherwise inverse of input is applied. 165 ChromaFormat m_InputChromaFormatIDC; 166 167 Bool m_printMSEBasedSequencePSNR; 168 Bool m_printFrameMSE; 169 Bool m_printSequenceMSE; 170 Bool m_cabacZeroWordPaddingEnabled; 171 Bool m_bClipInputVideoToRec709Range; 172 Bool m_bClipOutputVideoToRec709Range; 173 161 174 // profile/level 162 #if H_MV163 std::vector< Profile::Name > m_profile ;175 #if NH_MV 176 std::vector< Profile::Name > m_profiles; 164 177 std::vector< Level::Tier > m_levelTier; 165 178 std::vector< Level::Name > m_level; … … 170 183 Level::Name m_level; 171 184 #endif 172 185 UInt m_bitDepthConstraint; 186 ChromaFormat m_chromaFormatConstraint; 187 Bool m_intraConstraintFlag; 188 Bool m_onePictureOnlyConstraintFlag; 189 Bool m_lowerBitRateConstraintFlag; 173 190 Bool m_progressiveSourceFlag; 174 191 Bool m_interlacedSourceFlag; 175 192 Bool m_nonPackedConstraintFlag; 176 193 Bool m_frameOnlyConstraintFlag; 194 177 195 // coding structure 178 #if H_MV196 #if NH_MV 179 197 std::vector<Int> m_iIntraPeriod; ///< period of I-slice (random access period) 180 198 #else … … 183 201 Int m_iDecodingRefreshType; ///< random access type 184 202 Int m_iGOPSize; ///< GOP size of hierarchical structure 185 #if H_MV203 #if NH_MV 186 204 Int m_extraRPSsMvc[MAX_NUM_LAYERS]; ///< extra RPSs added to handle CRA for each layer 187 205 std::vector< GOPEntry* > m_GOPListMvc; ///< the coding structure entries from the config file for each layer … … 194 212 Int m_maxDecPicBuffering[MAX_TLAYER]; ///< total number of pictures in the decoded picture buffer 195 213 #endif 214 Bool m_crossComponentPredictionEnabledFlag; ///< flag enabling the use of cross-component prediction 215 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 216 #if NH_MV 217 UInt m_log2SaoOffsetScale[MAX_NUM_LAYERS][MAX_NUM_CHANNEL_TYPE]; ///< number of bits for the upward bit shift operation on the decoded SAO offsets 218 #else 219 UInt m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE]; ///< number of bits for the upward bit shift operation on the decoded SAO offsets 220 #endif 196 221 Bool m_useTransformSkip; ///< flag for enabling intra transform skipping 197 222 Bool m_useTransformSkipFast; ///< flag for enabling fast intra transform skipping 223 UInt m_log2MaxTransformSkipBlockSize; ///< transform-skip maximum size (minimum of 2) 224 Bool m_transformSkipRotationEnabledFlag; ///< control flag for transform-skip/transquant-bypass residual rotation 225 Bool m_transformSkipContextEnabledFlag; ///< control flag for transform-skip/transquant-bypass single significance map context 226 Bool m_rdpcmEnabledFlag[NUMBER_OF_RDPCM_SIGNALLING_MODES];///< control flags for residual DPCM 198 227 Bool m_enableAMP; 228 Bool m_persistentRiceAdaptationEnabledFlag; ///< control flag for Golomb-Rice parameter adaptation over each slice 229 Bool m_cabacBypassAlignmentEnabledFlag; 230 199 231 // coding quality 200 #if H_MV232 #if NH_MV 201 233 std::vector<Double> m_fQP; ///< QP value of key-picture (floating point) for each layer 202 234 std::vector<Int> m_iQP; ///< QP value of key-picture (integer) for each layer … … 206 238 #endif 207 239 Char* m_pchdQPFile; ///< QP offset for each slice (initialized from external file) 208 #if H_MV240 #if NH_MV 209 241 std::vector<Int*> m_aidQP; ///< array of slice QP values for each layer 210 242 #else … … 214 246 UInt m_uiDeltaQpRD; ///< dQP range for multi-pass slice QP optimization 215 247 Int m_iMaxCuDQPDepth; ///< Max. depth for a minimum CuDQPSize (0:default) 216 217 Int m_cbQpOffset; ///< Chroma Cb QP Offset (0:default) 248 Int m_diffCuChromaQpOffsetDepth; ///< If negative, then do not apply chroma qp offsets. 249 Bool m_bFastDeltaQP; ///< Fast Delta QP (false:default) 250 251 Int m_cbQpOffset; ///< Chroma Cb QP Offset (0:default) 218 252 Int m_crQpOffset; ///< Chroma Cr QP Offset (0:default) 219 253 … … 221 255 Bool m_bUseAdaptQpSelect; 222 256 #endif 257 TComSEIMasteringDisplay m_masteringDisplay; 223 258 224 259 Bool m_bUseAdaptiveQP; ///< Flag for enabling QP adaptation based on a psycho-visual model 225 260 Int m_iQPAdaptationRange; ///< dQP range by QP adaptation 226 227 #if H_MV261 262 #if NH_MV 228 263 Int m_maxTempLayerMvc[MAX_NUM_LAYER_IDS]; ///< Max temporal layer for each layer 229 264 #else … … 232 267 233 268 // coding unit (CU) definition 269 // TODO: Remove MaxCUWidth/MaxCUHeight and replace with MaxCUSize. 234 270 UInt m_uiMaxCUWidth; ///< max. CU width in pixel 235 271 UInt m_uiMaxCUHeight; ///< max. CU height in pixel 236 UInt m_uiMaxCUDepth; ///< max. CU depth 237 272 UInt m_uiMaxCUDepth; ///< max. CU depth (as specified by command line) 273 UInt m_uiMaxTotalCUDepth; ///< max. total CU depth - includes depth of transform-block structure 274 UInt m_uiLog2DiffMaxMinCodingBlockSize; ///< difference between largest and smallest CU depth 275 238 276 // transfom unit (TU) definition 239 277 UInt m_uiQuadtreeTULog2MaxSize; 240 278 UInt m_uiQuadtreeTULog2MinSize; 241 279 242 280 UInt m_uiQuadtreeTUMaxDepthInter; 243 281 UInt m_uiQuadtreeTUMaxDepthIntra; 244 282 245 283 // coding tools (bit-depth) 246 Int m_inputBitDepthY; ///< bit-depth of input file (luma component) 247 Int m_inputBitDepthC; ///< bit-depth of input file (chroma component) 248 Int m_outputBitDepthY; ///< bit-depth of output file (luma component) 249 Int m_outputBitDepthC; ///< bit-depth of output file (chroma component) 250 Int m_internalBitDepthY; ///< bit-depth codec operates at in luma (input/output files will be converted) 251 Int m_internalBitDepthC; ///< bit-depth codec operates at in chroma (input/output files will be converted) 284 Int m_inputBitDepth [MAX_NUM_CHANNEL_TYPE]; ///< bit-depth of input file 285 Int m_outputBitDepth [MAX_NUM_CHANNEL_TYPE]; ///< bit-depth of output file 286 Int m_MSBExtendedBitDepth[MAX_NUM_CHANNEL_TYPE]; ///< bit-depth of input samples after MSB extension 287 Int m_internalBitDepth[MAX_NUM_CHANNEL_TYPE]; ///< bit-depth codec operates at (input/output files will be converted) 288 Bool m_extendedPrecisionProcessingFlag; 289 Bool m_highPrecisionOffsetsEnabledFlag; 290 291 //coding tools (chroma format) 292 ChromaFormat m_chromaFormatIDC; 252 293 253 294 // coding tools (PCM bit-depth) … … 255 296 256 297 // coding tool (SAO) 257 #if H_MV298 #if NH_MV 258 299 std::vector<Bool> m_bUseSAO; 259 300 #else 260 Bool m_bUseSAO; 261 #endif 301 Bool m_bUseSAO; 302 #endif 303 Bool m_bTestSAODisableAtPictureLevel; 304 Double m_saoEncodingRate; ///< When >0 SAO early picture termination is enabled for luma and chroma 305 Double m_saoEncodingRateChroma; ///< The SAO early picture termination rate to use for chroma (when m_SaoEncodingRate is >0). If <=0, use results for luma. 262 306 Int m_maxNumOffsetsPerPic; ///< SAO maximun number of offset per picture 263 Bool m_sao LcuBoundary; ///< SAO parameter estimation using non-deblocked pixels for LCU bottom and right boundary areas307 Bool m_saoCtuBoundary; ///< SAO parameter estimation using non-deblocked pixels for CTU bottom and right boundary areas 264 308 // coding tools (loop filter) 265 #if H_MV309 #if NH_MV 266 310 std::vector<Bool> m_bLoopFilterDisable; ///< flag for using deblocking filter for each layer 267 311 #else … … 271 315 Int m_loopFilterBetaOffsetDiv2; ///< beta offset for deblocking filter 272 316 Int m_loopFilterTcOffsetDiv2; ///< tc offset for deblocking filter 273 Bool m_DeblockingFilterControlPresent; ///< deblocking filter control present flag in PPS274 317 Bool m_DeblockingFilterMetric; ///< blockiness metric in encoder 275 318 276 319 // coding tools (PCM) 277 320 Bool m_usePCM; ///< flag for using IPCM … … 279 322 UInt m_uiPCMLog2MinSize; ///< log2 of minimum PCM block size 280 323 Bool m_bPCMFilterDisableFlag; ///< PCM filter disable flag 324 Bool m_enableIntraReferenceSmoothing; ///< flag for enabling(default)/disabling intra reference smoothing/filtering 281 325 282 326 // coding tools (encoder-only parameters) … … 285 329 Bool m_useRDOQ; ///< flag for using RD optimized quantization 286 330 Bool m_useRDOQTS; ///< flag for using RD optimized quantization for transform skip 287 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) 331 #if T0196_SELECTIVE_RDOQ 332 Bool m_useSelectiveRDOQ; ///< flag for using selective RDOQ 333 #endif 334 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) 335 Bool m_bDisableIntraPUsInInterSlices; ///< Flag for disabling intra predicted PUs in inter slices. 288 336 Int m_iFastSearch; ///< ME mode, 0 = full, 1 = diamond, 2 = PMVFAST 289 337 Int m_iSearchRange; ///< ME search range 290 338 Int m_bipredSearchRange; ///< ME search range for bipred refinement 291 #if H_MV 339 Bool m_bClipForBiPredMeEnabled; ///< Enables clipping for Bi-Pred ME. 340 Bool m_bFastMEAssumingSmootherMVEnabled; ///< Enables fast ME assuming a smoother MV. 341 #if NH_MV 292 342 Bool m_bUseDisparitySearchRangeRestriction; ///< restrict vertical search range for inter-view prediction 293 343 Int m_iVerticalDisparitySearchRange; ///< ME vertical search range for inter-view prediction … … 295 345 Bool m_bUseFastEnc; ///< flag for using fast encoder setting 296 346 Bool m_bUseEarlyCU; ///< flag for using Early CU setting 297 Bool m_useFastDecisionForMerge; ///< flag for using Fast Decision Merge RD-Cost 347 Bool m_useFastDecisionForMerge; ///< flag for using Fast Decision Merge RD-Cost 298 348 Bool m_bUseCbfFastMode; ///< flag for using Cbf Fast PU Mode Decision 299 349 Bool m_useEarlySkipDetection; ///< flag for using Early SKIP Detection 300 Int m_sliceMode; ///< 0: no slice limits, 1 : max number of CTBs per slice, 2: max number of bytes per slice, 350 Int m_sliceMode; ///< 0: no slice limits, 1 : max number of CTBs per slice, 2: max number of bytes per slice, 301 351 ///< 3: max number of tiles per slice 302 352 Int m_sliceArgument; ///< argument according to selected slice mode 303 Int m_sliceSegmentMode; ///< 0: no slice segment limits, 1 : max number of CTBs per slice segment, 2: max number of bytes per slice segment, 353 Int m_sliceSegmentMode; ///< 0: no slice segment limits, 1 : max number of CTBs per slice segment, 2: max number of bytes per slice segment, 304 354 ///< 3: max number of tiles per slice segment 305 355 Int m_sliceSegmentArgument; ///< argument according to selected slice segment mode … … 313 363 std::vector<Int> m_tileRowHeight; 314 364 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. 315 Int m_iWaveFront Substreams; //< If iWaveFrontSynchro, this is the number of substreams per frame (dependent tiles) or per tile (independent tiles).365 Int m_iWaveFrontFlush; //< enable(1)/disable(0) the CABAC flush at the end of each line of LCUs. 316 366 317 367 Bool m_bUseConstrainedIntraPred; ///< flag for using constrained intra prediction 318 368 Bool m_bFastUDIUseMPMEnabled; 369 Bool m_bFastMEForGenBLowDelayEnabled; 370 Bool m_bUseBLambdaForNonKeyLowDelayPictures; 371 319 372 Int m_decodedPictureHashSEIEnabled; ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting on decoded picture hash SEI message 320 373 Int m_recoveryPointSEIEnabled; … … 322 375 Int m_pictureTimingSEIEnabled; 323 376 Bool m_toneMappingInfoSEIEnabled; 377 Bool m_chromaSamplingFilterSEIenabled; 378 Int m_chromaSamplingHorFilterIdc; 379 Int m_chromaSamplingVerFilterIdc; 324 380 Int m_toneMapId; 325 381 Bool m_toneMapCancelFlag; … … 327 383 Int m_toneMapCodedDataBitDepth; 328 384 Int m_toneMapTargetBitDepth; 329 Int m_toneMapModelId; 385 Int m_toneMapModelId; 330 386 Int m_toneMapMinValue; 331 387 Int m_toneMapMaxValue; … … 337 393 Int m_exposureIndexIdc; 338 394 Int m_exposureIndexValue; 339 Intm_exposureCompensationValueSignFlag;395 Bool m_exposureCompensationValueSignFlag; 340 396 Int m_exposureCompensationValueNumerator; 341 397 Int m_exposureCompensationValueDenomIdc; … … 353 409 Int m_framePackingSEIQuincunx; 354 410 Int m_framePackingSEIInterpretation; 411 Int m_segmentedRectFramePackingSEIEnabled; 412 Bool m_segmentedRectFramePackingSEICancel; 413 Int m_segmentedRectFramePackingSEIType; 414 Bool m_segmentedRectFramePackingSEIPersistence; 355 415 Int m_displayOrientationSEIAngle; 356 416 Int m_temporalLevel0IndexSEIEnabled; 357 417 Int m_gradualDecodingRefreshInfoEnabled; 418 Int m_noDisplaySEITLayer; 358 419 Int m_decodingUnitInfoSEIEnabled; 359 420 Int m_SOPDescriptionSEIEnabled; 360 421 Int m_scalableNestingSEIEnabled; 422 Bool m_tmctsSEIEnabled; 423 Bool m_timeCodeSEIEnabled; 424 Int m_timeCodeSEINumTs; 425 TComSEITimeSet m_timeSetArray[MAX_TIMECODE_SEI_SETS]; 426 Bool m_kneeSEIEnabled; 427 Int m_kneeSEIId; 428 Bool m_kneeSEICancelFlag; 429 Bool m_kneeSEIPersistenceFlag; 430 Int m_kneeSEIInputDrange; 431 Int m_kneeSEIInputDispLuminance; 432 Int m_kneeSEIOutputDrange; 433 Int m_kneeSEIOutputDispLuminance; 434 Int m_kneeSEINumKneePointsMinus1; 435 Int* m_kneeSEIInputKneePoint; 436 Int* m_kneeSEIOutputKneePoint; 361 437 // weighted prediction 362 438 Bool m_useWeightedPred; ///< Use of weighted prediction in P slices 363 439 Bool m_useWeightedBiPred; ///< Use of bi-directional weighted prediction in B slices 364 440 365 441 UInt m_log2ParallelMergeLevel; ///< Parallel merge estimation region 366 442 UInt m_maxNumMergeCand; ///< Max number of merge candidates 367 443 368 444 Int m_TMVPModeId; 369 Intm_signHideFlag;445 Bool m_signHideFlag; 370 446 Bool m_RCEnableRateControl; ///< enable rate control or not 371 447 Int m_RCTargetBitrate; ///< target bitrate when rate control is enabled 372 448 Int m_RCKeepHierarchicalBit; ///< 0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation 373 Bool m_RCLCULevelRC; ///< true: LCU level rate control; false: picture level rate control 374 Bool m_RCUseLCUSeparateModel; ///< use separate R-lambda model at LCU level 449 Bool m_RCLCULevelRC; ///< true: LCU level rate control; false: picture level rate control NOTE: code-tidy - rename to m_RCCtuLevelRC 450 Bool m_RCUseLCUSeparateModel; ///< use separate R-lambda model at LCU level NOTE: code-tidy - rename to m_RCUseCtuSeparateModel 375 451 Int m_RCInitialQP; ///< inital QP for rate control 376 452 Bool m_RCForceIntraQP; ///< force all intra picture to use initial QP or not 377 453 378 454 #if KWU_RC_VIEWRC_E0227 379 455 vector<Int> m_viewTargetBits; … … 383 459 UInt m_depthMADPred; 384 460 #endif 385 Int m_useScalingListId; ///< using quantization matrix 461 462 ScalingListMode m_useScalingListId; ///< using quantization matrix 386 463 Char* m_scalingListFile; ///< quantization matrix file name 387 464 388 465 Bool m_TransquantBypassEnableFlag; ///< transquant_bypass_enable_flag setting in PPS. 389 466 Bool m_CUTransquantBypassFlagForce; ///< if transquant_bypass_enable_flag, then, if true, all CU transquant bypass flags will be set to true. 467 CostMode m_costMode; ///< Cost mode to use 390 468 391 469 Bool m_recalculateQPAccordingToLambda; ///< recalculate QP value according to the lambda value … … 427 505 Int m_log2MaxMvLengthHorizontal; ///< Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units 428 506 Int m_log2MaxMvLengthVertical; ///< Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units 429 #if H_MV 507 std::string m_summaryOutFilename; ///< filename to use for producing summary output file. 508 std::string m_summaryPicFilenameBase; ///< Base filename to use for producing summary picture output files. The actual filenames used will have I.txt, P.txt and B.txt appended. 509 UInt m_summaryVerboseness; ///< Specifies the level of the verboseness of the text output. 510 #if NH_MV 430 511 Bool m_subBistreamPropSEIEnabled; 431 512 Int m_sbPropNumAdditionalSubStreams; … … 437 518 Bool m_outputVpsInfo; 438 519 #endif 439 #if H_3D 520 #if NH_3D 521 // Output Format 522 Bool m_depth420OutputFlag; ///< Output depth layers in 4:2:0 format 440 523 // Camera parameters 441 524 Char* m_pchCameraParameterFile; ///< camera parameter file … … 443 526 TAppComCamPara m_cCameraData; 444 527 Int m_iCodedCamParPrecision; ///< precision for coding of camera parameters 445 #if H_3D_VSO528 #if NH_3D_VSO 446 529 Char* m_pchVSOConfig; 447 Bool m_bUseVSO; ///< flag for using View Synthesis Optimization448 Bool m_bVSOLSTable; ///< Depth QP dependent Lagrange parameter optimization (m23714)449 Bool m_bVSOEarlySkip; ///< Early skip of VSO computation (JCT3V-A0093 modification 4)450 451 //// Used for development by GT, might be removed later 452 Double m_dLambdaScaleVSO; ///< Scaling factor for Lambda in VSO mode453 Bool m_bForceLambdaScaleVSO; ///< Use Lambda Scale for depth even if VSO is turned off454 Bool m_bAllowNegDist; ///< Allow negative distortion in VSO455 UInt m_uiVSOMode; ///< Number of VSO Mode, 1 = , 2 = simple, org vs. ren, 3 = simple, ren vs. ren, 4 = full456 457 // SAIT_VSO_EST_A0033 458 Bool m_bUseEstimatedVSD; ///< Flag for using model based VSD estimation instead of VSO for some encoder decisions (JCT3V-A0033 modification 3)459 460 // LGE_WVSO_A0119 461 Bool m_bUseWVSO; ///< flag for using View Synthesis Optimization530 Bool m_bUseVSO; ///< flag for using View Synthesis Optimization 531 Bool m_bVSOLSTable; ///< Depth QP dependent Lagrange parameter optimization (m23714) 532 Bool m_bVSOEarlySkip; ///< Early skip of VSO computation (JCT3V-A0093 modification 4) 533 534 //// Used for development by GT, might be removed later 535 Double m_dLambdaScaleVSO; ///< Scaling factor for Lambda in VSO mode 536 Bool m_bForceLambdaScaleVSO; ///< Use Lambda Scale for depth even if VSO is turned off 537 Bool m_bAllowNegDist; ///< Allow negative distortion in VSO 538 UInt m_uiVSOMode; ///< Number of VSO Mode, 1 = , 2 = simple, org vs. ren, 3 = simple, ren vs. ren, 4 = full 539 540 // SAIT_VSO_EST_A0033 541 Bool m_bUseEstimatedVSD; ///< Flag for using model based VSD estimation instead of VSO for some encoder decisions (JCT3V-A0033 modification 3) 542 543 // LGE_WVSO_A0119 544 Bool m_bUseWVSO; ///< flag for using View Synthesis Optimization 462 545 Int m_iVSOWeight; 463 546 Int m_iVSDWeight; … … 467 550 TRenModSetupStrParser m_cRenModStrParser; 468 551 #endif 469 #if H_3D_DIM 470 Bool m_useDLT; ///< flag for using DLT 471 #endif 472 #if H_3D_QTLPC 473 Bool m_bUseQTL; ///< flag for using depth QuadTree Limitation 474 #endif 475 476 std::vector< Bool > m_ivMvPredFlag; 477 std::vector< Bool > m_ivMvScalingFlag; 478 Int m_log2SubPbSizeMinus3; 479 Bool m_ivResPredFlag; 480 Bool m_depthRefinementFlag; 481 Bool m_viewSynthesisPredFlag; 482 Bool m_depthBasedBlkPartFlag; 483 Bool m_mpiFlag; 484 Int m_log2MpiSubPbSizeMinus3; 485 Bool m_intraContourFlag; 486 Bool m_intraWedgeFlag; 487 Bool m_intraSdcFlag; 488 Bool m_qtPredFlag; 489 Bool m_interSdcFlag; 490 Bool m_depthIntraSkipFlag; 552 553 Bool m_useDLT; ///< flag for using DLT 554 Bool m_bUseQTL; ///< flag for using depth QuadTree Limitation 555 BoolAry1d m_ivMvPredFlag; 556 BoolAry1d m_ivMvScalingFlag; 557 Int m_log2SubPbSizeMinus3; 558 Bool m_ivResPredFlag; 559 Bool m_depthRefinementFlag; 560 Bool m_viewSynthesisPredFlag; 561 Bool m_depthBasedBlkPartFlag; 562 Bool m_mpiFlag; 563 Int m_log2MpiSubPbSizeMinus3; 564 Bool m_intraContourFlag; 565 Bool m_intraWedgeFlag; 566 Bool m_intraSdcFlag; 567 Bool m_qtPredFlag; 568 Bool m_interSdcFlag; 569 Bool m_depthIntraSkipFlag; 491 570 #endif 492 571 // internal member functions 493 Void xSetGlobal (); ///< set global variables494 572 Void xCheckParameter (); ///< check validity of configuration values 495 573 Void xPrintParameter (); ///< print configuration values 496 574 Void xPrintUsage (); ///< print usage 497 #if H_MV575 #if NH_MV 498 576 499 577 template<typename T> … … 533 611 } 534 612 } 613 614 template <typename T> 615 Void xResizeVector( std::vector<T> & rpcVector, UInt n ) 616 { 617 for( Int layer = 0; rpcVector.size() < n; layer++ ) 618 { 619 assert( rpcVector.size() > 0 ); 620 rpcVector.push_back( rpcVector[layer] ); 621 } 622 623 for( ; rpcVector.size() > n; ) 624 { 625 rpcVector.pop_back( ); 626 } 627 } 628 535 629 536 630 template <typename T> … … 561 655 Void xPrintVectorElem( Bool elem ) { printf(" %d" , ( elem ? 1 : 0 ));}; 562 656 #endif 563 #if H_MV657 #if NH_MV 564 658 Int getGOPSize() { return m_iGOPSize; } 565 659 #endif … … 567 661 TAppEncCfg(); 568 662 virtual ~TAppEncCfg(); 569 663 570 664 public: 571 665 Void create (); ///< create option handling class 572 666 Void destroy (); ///< destroy option handling class 573 667 Bool parseCfg ( Int argc, Char* argv[] ); ///< parse configuration file to fill member variables 574 668 575 669 };// END CLASS DEFINITION TAppEncCfg 576 670
Note: See TracChangeset for help on using the changeset viewer.