Changeset 296 in 3DVCSoftware for trunk/source/App/TAppEncoder
- Timestamp:
- 20 Feb 2013, 22:07:43 (12 years ago)
- Location:
- trunk/source/App/TAppEncoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/App/TAppEncoder/TAppEncCfg.cpp
r210 r296 220 220 221 221 /* File, I/O and source parameters */ 222 ("InputFile_%d,i_%d", m_pchInputFileList, (char *) 0 , MAX_VIEW_NUM , "original Yuv input file name %d") 223 ("DepthInputFile_%d,di_%d", m_pchDepthInputFileList, (char *) 0 , MAX_VIEW_NUM , "original Yuv depth input file name %d") 224 ("ReconFile_%d,o_%d", m_pchReconFileList, (char *) 0 , MAX_VIEW_NUM , "reconstructed Yuv output file name %d") 225 ("DepthReconFile_%d,do_%d", m_pchDepthReconFileList, (char *) 0 , MAX_VIEW_NUM , "reconstructed Yuv depth output file name %d") 226 ("BitstreamFile,b", cfg_BitstreamFile, string(""), "bitstream output file name") 227 ("CodeDepthMaps", m_bUsingDepthMaps, false, "Encode depth maps" ) 228 ("CodedCamParsPrecision", m_iCodedCamParPrecision, STD_CAM_PARAMETERS_PRECISION, "precision for coding of camera parameters (in units of 2^(-x) luma samples)" ) 229 ("LambdaModifier0,-LM0", m_adLambdaModifier[ 0 ], ( double )1.0, "Lambda modifier for temporal layer 0") 230 ("LambdaModifier1,-LM1", m_adLambdaModifier[ 1 ], ( double )1.0, "Lambda modifier for temporal layer 1") 231 ("LambdaModifier2,-LM2", m_adLambdaModifier[ 2 ], ( double )1.0, "Lambda modifier for temporal layer 2") 232 ("LambdaModifier3,-LM3", m_adLambdaModifier[ 3 ], ( double )1.0, "Lambda modifier for temporal layer 3") 233 ("SourceWidth,-wdt", m_iSourceWidth, 0, "Source picture width") 234 ("SourceHeight,-hgt", m_iSourceHeight, 0, "Source picture height") 235 #if PIC_CROPPING 236 ("CroppingMode", m_croppingMode, 0, "Cropping mode (0: no cropping, 1:automatic padding, 2: padding, 3:cropping") 237 ("CropLeft", m_cropLeft, 0, "Left cropping/padding for cropping mode 3") 238 ("CropRight", m_cropRight, 0, "Right cropping/padding for cropping mode 3") 239 ("CropTop", m_cropTop, 0, "Top cropping/padding for cropping mode 3") 240 ("CropBottom", m_cropBottom, 0, "Bottom cropping/padding for cropping mode 3") 241 ("HorizontalPadding,-pdx",m_aiPad[0], 0, "horizontal source padding for cropping mode 2") 242 ("VerticalPadding,-pdy", m_aiPad[1], 0, "vertical source padding for cropping mode 2") 243 #endif 222 ("InputFile_%d,i_%d", m_pchInputFileList, (char *) 0 , MAX_VIEW_NUM , "original Yuv input file name %d") 223 ("DepthInputFile_%d,di_%d", m_pchDepthInputFileList, (char *) 0 , MAX_VIEW_NUM , "original Yuv depth input file name %d") 224 ("ReconFile_%d,o_%d", m_pchReconFileList, (char *) 0 , MAX_VIEW_NUM , "reconstructed Yuv output file name %d") 225 ("DepthReconFile_%d,do_%d", m_pchDepthReconFileList, (char *) 0 , MAX_VIEW_NUM , "reconstructed Yuv depth output file name %d") 226 ("BitstreamFile,b", cfg_BitstreamFile, string(""), "bitstream output file name") 227 ("CodeDepthMaps", m_bUsingDepthMaps, false, "Encode depth maps" ) 228 ("CodedCamParsPrecision", m_iCodedCamParPrecision, STD_CAM_PARAMETERS_PRECISION, "precision for coding of camera parameters (in units of 2^(-x) luma samples)" ) 229 ("LambdaModifier0,-LM0", m_adLambdaModifier[ 0 ], ( double )1.0, "Lambda modifier for temporal layer 0") 230 ("LambdaModifier1,-LM1", m_adLambdaModifier[ 1 ], ( double )1.0, "Lambda modifier for temporal layer 1") 231 ("LambdaModifier2,-LM2", m_adLambdaModifier[ 2 ], ( double )1.0, "Lambda modifier for temporal layer 2") 232 ("LambdaModifier3,-LM3", m_adLambdaModifier[ 3 ], ( double )1.0, "Lambda modifier for temporal layer 3") 233 ("SourceWidth,-wdt", m_iSourceWidth, 0, "Source picture width") 234 ("SourceHeight,-hgt", m_iSourceHeight, 0, "Source picture height") 235 ("CroppingMode", m_croppingMode, 0, "Cropping mode (0: no cropping, 1:automatic padding, 2: padding, 3:cropping") 236 ("CropLeft", m_cropLeft, 0, "Left cropping/padding for cropping mode 3") 237 ("CropRight", m_cropRight, 0, "Right cropping/padding for cropping mode 3") 238 ("CropTop", m_cropTop, 0, "Top cropping/padding for cropping mode 3") 239 ("CropBottom", m_cropBottom, 0, "Bottom cropping/padding for cropping mode 3") 240 ("HorizontalPadding,-pdx", m_aiPad[0], 0, "horizontal source padding for cropping mode 2") 241 ("VerticalPadding,-pdy", m_aiPad[1], 0, "vertical source padding for cropping mode 2") 244 242 ("InputBitDepth", m_uiInputBitDepth, 8u, "bit-depth of input file") 245 243 ("BitDepth", m_uiInputBitDepth, 8u, "deprecated alias of InputBitDepth") 246 244 ("OutputBitDepth", m_uiOutputBitDepth, 0u, "bit-depth of output file") 247 245 ("InternalBitDepth", m_uiInternalBitDepth, 0u, "Internal bit-depth (BitDepth+BitIncrement)") 248 #if !PIC_CROPPING249 ("HorizontalPadding,-pdx",m_aiPad[0], 0, "horizontal source padding size")250 ("VerticalPadding,-pdy", m_aiPad[1], 0, "vertical source padding size")251 ("PAD", m_bUsePAD, false, "automatic source padding of multiple of 16" )252 #endif253 246 ("FrameRate,-fr", m_iFrameRate, 0, "Frame rate") 254 247 ("FrameSkip,-fs", m_FrameSkip, 0u, "Number of frames to skip at start of input YUV") 255 248 ("FramesToBeEncoded,f", m_iFrameToBeEncoded, 0, "number of frames to be encoded (default=all)") 256 ("FrameToBeEncoded", 249 ("FrameToBeEncoded", m_iFrameToBeEncoded, 0, "deprecated alias of FramesToBeEncoded") 257 250 258 251 ("NumberOfViews", m_iNumberOfViews, 0, "Number of views") … … 279 272 ("DecodingRefreshType,-dr",m_iDecodingRefreshType, 0, "intra refresh, (0:none 1:CRA 2:IDR)") 280 273 ("GOPSize,g", m_iGOPSize, 1, "GOP size of temporal structure") 281 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER282 ("MaxNumberOfReorderPictures", m_numReorderFrames, -1, "Max. number of reorder pictures: -1: encoder determines value, >=0: set explicitly")283 ("MaxNumberOfReferencePictures", m_maxNumberOfReferencePictures, 6, "Max. number of reference pictures")284 #endif285 274 ("ListCombination,-lc", m_bUseLComb, true, "combined reference list flag for uni-prediction in B-slices") 286 275 ("LCModification", m_bLCMod, false, "enables signalling of combined reference list derivation") … … 321 310 ("TemporalLayerQPOffset_L3,-tq3", m_aiTLayerQPOffset[3], MAX_QP + 1, "QP offset of temporal layer 3") 322 311 323 #if !H0566_TLA324 ("TLayeringBasedOnCodingStruct,-tl", m_bTLayering, false, "Temporal ID is set based on the hierarchical coding structure")325 326 ("TLayerSwitchingFlag_L0,-ts0", m_abTLayerSwitchingFlag[0], false, "Switching flag for temporal layer 0")327 ("TLayerSwitchingFlag_L1,-ts1", m_abTLayerSwitchingFlag[1], false, "Switching flag for temporal layer 1")328 ("TLayerSwitchingFlag_L2,-ts2", m_abTLayerSwitchingFlag[2], false, "Switching flag for temporal layer 2")329 ("TLayerSwitchingFlag_L3,-ts3", m_abTLayerSwitchingFlag[3], false, "Switching flag for temporal layer 3")330 #endif331 312 332 313 /* Entropy coding parameters */ … … 340 321 ("LoopFilterTcOffset_div2", m_loopFilterTcOffsetDiv2, 0 ) 341 322 #if LGE_ILLUCOMP_B0045 323 #if LGE_ILLUCOMP_DEPTH_C0046 324 ("IlluCompEnable", m_abUseIC, std::vector<Bool>(2, true), "Enable illumination compensation for inter-view prediction") 325 #else 342 326 ("IlluCompEnable", m_bUseIC , true , "Use illumination compensation for inter-view prediction" ) 343 327 #endif 344 #if DBL_CONTROL 328 #endif 329 #if INTER_VIEW_VECTOR_SCALING_C0115 330 ("IVSEnable", m_bUseIVS , true , "Use inter-view vector scaling" ) 331 #endif 345 332 ("DeblockingFilterControlPresent", m_DeblockingFilterControlPresent, true) 346 #endif347 333 348 334 /* Camera Paremetes */ … … 391 377 ("PredDepthMapGen", m_uiPredDepthMapGeneration, (UInt)0, "generation of prediction depth maps for motion data prediction" ) 392 378 #endif 393 #if H HI_INTER_VIEW_MOTION_PRED379 #if H3D_IVMP 394 380 ("MultiviewMvPred", m_uiMultiviewMvPredMode, (UInt)0, "usage of predicted depth maps" ) 395 381 ("MultiviewMvRegMode", m_uiMultiviewMvRegMode, (UInt)0, "regularization mode for multiview motion vectors" ) 396 382 ("MultiviewMvRegLambdaScale", m_dMultiviewMvRegLambdaScale, (Double)0, "lambda scale for multiview motion vector regularization" ) 397 383 #endif 398 #if H HI_INTER_VIEW_RESIDUAL_PRED384 #if H3D_IVRP 399 385 ("MultiviewResPred", m_uiMultiviewResPredMode, (UInt)0, "usage of inter-view residual prediction" ) 400 386 #endif … … 405 391 ("ALF", m_abUseALF, std::vector<Bool>(1,true), "Enables ALF") 406 392 ("SAO", m_abUseSAO, std::vector<Bool>(1, true), "SAO") 407 #if SAO_UNIT_INTERLEAVING408 393 ("MaxNumOffsetsPerPic", m_maxNumOffsetsPerPic, 2048, "2048: default") 409 394 ("SAOInterleaving", m_saoInterleavingFlag, false, "0: SAO Picture Mode, 1: SAO Interleaving ") 410 #endif411 395 412 396 ("ALFEncodePassReduction", m_iALFEncodePassReduction, 0, "0:Original 16-pass, 1: 1-pass, 2: 2-pass encoding") 413 397 414 398 ("ALFMaxNumFilter,-ALFMNF", m_iALFMaxNumberFilters, 16, "16: No Constrained, 1-15: Constrained max number of filter") 415 #if LCU_SYNTAX_ALF416 399 ("ALFParamInSlice", m_bALFParamInSlice, false, "ALF parameters in 0: APS, 1: slice header") 417 400 ("ALFPicBasedEncode", m_bALFPicBasedEncode, true, "ALF picture-based encoding 0: false, 1: true") 418 #endif419 401 420 402 ("SliceMode", m_iSliceMode, 0, "0: Disable all Recon slice limits, 1: Enforce max # of LCUs, 2: Enforce max # of bytes") … … 439 421 ("TileInfoPresentFlag", m_iColumnRowInfoPresent, 1, "0: tiles parameters are NOT present in the PPS. 1: tiles parameters are present in the PPS") 440 422 ("UniformSpacingIdc", m_iUniformSpacingIdr, 0, "Indicates if the column and row boundaries are distributed uniformly") 441 #if !REMOVE_TILE_DEPENDENCE442 ("TileBoundaryIndependenceIdc", m_iTileBoundaryIndependenceIdr, 1, "Indicates if the column and row boundaries break the prediction")443 #endif444 423 ("NumTileColumnsMinus1", m_iNumColumnsMinus1, 0, "Number of columns in a picture minus 1") 445 424 ("ColumnWidthArray", cfg_ColumnWidth, string(""), "Array containing ColumnWidth values in units of LCU") … … 456 435 ("ScalingList", m_useScalingListId, 0, "0: no scaling list, 1: default scaling lists, 2: scaling lists specified in ScalingListFile") 457 436 ("ScalingListFile", cfg_ScalingListFile, string(""), "Scaling list file name") 458 #if MULTIBITS_DATA_HIDING459 437 ("SignHideFlag,-SBH", m_signHideFlag, 1) 460 438 ("SignHideThreshold,-TSIG", m_signHidingThreshold, 4) 461 #endif462 439 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 463 440 ("DMM", m_bUseDMM, false, "depth model modes flag") … … 477 454 ("FEN", m_bUseFastEnc, false, "fast encoder setting") 478 455 ("ECU", m_bUseEarlyCU, false, "Early CU setting") 479 #if FAST_DECISION_FOR_MRG_RD_COST480 456 ("FDM", m_useFastDecisionForMerge, true, "Fast decision for Merge RD Cost") 481 #endif482 457 ("CFM", m_bUseCbfFastMode, false, "Cbf fast mode setting") 483 458 #if HHI_INTERVIEW_SKIP … … 617 592 } 618 593 619 #if PIC_CROPPING620 594 switch (m_croppingMode) 621 595 { … … 667 641 } 668 642 } 669 #else670 671 // compute source padding size672 if ( m_bUsePAD )673 {674 if ( m_iSourceWidth%MAX_PAD_SIZE )675 {676 m_aiPad[0] = (m_iSourceWidth/MAX_PAD_SIZE+1)*MAX_PAD_SIZE - m_iSourceWidth;677 }678 679 if ( m_iSourceHeight%MAX_PAD_SIZE )680 {681 m_aiPad[1] = (m_iSourceHeight/MAX_PAD_SIZE+1)*MAX_PAD_SIZE - m_iSourceHeight;682 }683 }684 m_iSourceWidth += m_aiPad[0];685 m_iSourceHeight += m_aiPad[1];686 #endif687 643 688 644 // allocate slice-based dQP values … … 890 846 xConfirmPara( (m_iIntraPeriod > 0 && m_iIntraPeriod < m_iGOPSize) || m_iIntraPeriod == 0, "Intra period must be more than GOP size, or -1 , not 0" ); 891 847 xConfirmPara( m_iDecodingRefreshType < 0 || m_iDecodingRefreshType > 2, "Decoding Refresh Type must be equal to 0, 1 or 2" ); 892 #if H0736_AVC_STYLE_QP_RANGE893 848 xConfirmPara( m_aiQP[0] < -6 * ((Int)m_uiInternalBitDepth - 8) || m_aiQP[0] > 51, "QP exceeds supported range (-QpBDOffsety to 51)" ); 894 849 if ( m_aiQP.size() >= 2 ) … … 896 851 xConfirmPara( m_aiQP[1] < -6 * ((Int)m_uiInternalBitDepth - 8) || m_aiQP[1] > 51, "QP depth exceeds supported range (-QpBDOffsety to 51)" ); 897 852 } 898 #else899 xConfirmPara( m_aiQP[0] < 0 || m_aiQP[0] > 51, "QP exceeds supported range (0 to 51)" );900 if ( m_aiQP.size() >= 2 )901 {902 xConfirmPara( m_aiQP[1] < 0 || m_aiQP[1] > 51, "QP Depth exceeds supported range (0 to 51)" );903 }904 #endif905 853 xConfirmPara( m_iALFEncodePassReduction < 0 || m_iALFEncodePassReduction > 2, "ALFEncodePassReduction must be equal to 0, 1 or 2"); 906 #if LCU_SYNTAX_ALF907 854 xConfirmPara( m_iALFMaxNumberFilters < 1, "ALFMaxNumFilter should be larger than 1"); 908 #else909 xConfirmPara( m_iALFMaxNumberFilters < 1 || m_iALFMaxNumberFilters > 16, "ALFMaxNumFilter exceeds supported range (1 to 16)");910 #endif911 855 xConfirmPara( m_loopFilterBetaOffsetDiv2 < -13 || m_loopFilterBetaOffsetDiv2 > 13, "Loop Filter Beta Offset div. 2 exceeds supported range (-13 to 13)"); 912 856 xConfirmPara( m_loopFilterTcOffsetDiv2 < -13 || m_loopFilterTcOffsetDiv2 > 13, "Loop Filter Tc Offset div. 2 exceeds supported range (-13 to 13)"); … … 934 878 xConfirmPara( m_uiMaxCUWidth < 16, "Maximum partition width size should be larger than or equal to 16"); 935 879 xConfirmPara( m_uiMaxCUHeight < 16, "Maximum partition height size should be larger than or equal to 16"); 936 #if PIC_CROPPING937 880 xConfirmPara( (m_iSourceWidth % (m_uiMaxCUWidth >> (m_uiMaxCUDepth-1)))!=0, "Resulting coded frame width must be a multiple of the minimum CU size"); 938 881 xConfirmPara( (m_iSourceHeight % (m_uiMaxCUHeight >> (m_uiMaxCUDepth-1)))!=0, "Resulting coded frame height must be a multiple of the minimum CU size"); 939 #else940 xConfirmPara( (m_iSourceWidth % (m_uiMaxCUWidth >> (m_uiMaxCUDepth-1)))!=0, "Frame width should be multiple of minimum CU size");941 xConfirmPara( (m_iSourceHeight % (m_uiMaxCUHeight >> (m_uiMaxCUDepth-1)))!=0, "Frame height should be multiple of minimum CU size");942 #endif943 882 944 883 xConfirmPara( m_uiQuadtreeTULog2MinSize < 2, "QuadtreeTULog2MinSize must be 2 or greater."); … … 967 906 xConfirmPara ( m_uiPredDepthMapGeneration >= 2 && !m_bUsingDepthMaps, "PredDepthMapGen >= 2 requires CodeDepthMaps = 1" ); 968 907 #endif 969 #if H HI_INTER_VIEW_MOTION_PRED908 #if H3D_IVMP 970 909 xConfirmPara ( m_uiMultiviewMvPredMode > 7, "MultiviewMvPred must be less than or equal to 7" ); 971 910 xConfirmPara ( m_uiMultiviewMvPredMode > 0 && m_uiPredDepthMapGeneration == 0 , "MultiviewMvPred > 0 requires PredDepthMapGen > 0" ); … … 977 916 } 978 917 #endif 979 #if H HI_INTER_VIEW_RESIDUAL_PRED918 #if H3D_IVRP 980 919 xConfirmPara ( m_uiMultiviewResPredMode > 1, "MultiviewResPred must be less than or equal to 1" ); 981 920 xConfirmPara ( m_uiMultiviewResPredMode > 0 && m_uiPredDepthMapGeneration == 0 , "MultiviewResPred > 0 requires PredDepthMapGen > 0" ); … … 998 937 } 999 938 #if ADAPTIVE_QP_SELECTION 1000 #if H0736_AVC_STYLE_QP_RANGE1001 939 xConfirmPara( m_bUseAdaptQpSelect == true && m_aiQP[0] < 0, "AdaptiveQpSelection must be disabled when QP < 0."); 1002 940 xConfirmPara( m_bUseAdaptQpSelect == true && m_aiQP[1] < 0, "AdaptiveQpSelection must be disabled when QP < 0."); 1003 941 xConfirmPara( m_bUseAdaptQpSelect == true && (m_iChromaQpOffset !=0 || m_iChromaQpOffset2nd != 0 ), "AdaptiveQpSelection must be disabled when ChromaQpOffset is not equal to 0."); 1004 #endif1005 942 #endif 1006 943 … … 1013 950 } 1014 951 1015 #if FIXED_NUMBER_OF_TILES_SLICE_MODE1016 952 xConfirmPara( m_iSliceMode < 0 || m_iSliceMode > 3, "SliceMode exceeds supported range (0 to 3)" ); 1017 #endif1018 953 if (m_iSliceMode!=0) 1019 954 { 1020 955 xConfirmPara( m_iSliceArgument < 1 , "SliceArgument should be larger than or equal to 1" ); 1021 956 } 1022 #if FIXED_NUMBER_OF_TILES_SLICE_MODE1023 957 if (m_iSliceMode==3) 1024 958 { 1025 959 xConfirmPara( m_iSliceGranularity > 0 , "When SliceMode == 3 is chosen, the SliceGranularity must be 0" ); 1026 960 } 1027 #endif1028 961 xConfirmPara( m_iEntropySliceMode < 0 || m_iEntropySliceMode > 2, "EntropySliceMode exceeds supported range (0 to 2)" ); 1029 962 if (m_iEntropySliceMode!=0) … … 1035 968 xConfirmPara( m_iSliceGranularity > m_iMaxCuDQPDepth, "SliceGranularity must be smaller smaller than or equal to maximum dqp depth" ); 1036 969 1037 #if NO_COMBINED_PARALLEL1038 970 bool tileFlag = (m_iNumColumnsMinus1 > 0 || m_iNumRowsMinus1 > 0 ); 1039 971 xConfirmPara( tileFlag && m_iEntropySliceMode, "Tile and Entropy Slice can not be applied together"); 1040 972 xConfirmPara( tileFlag && m_iWaveFrontSynchro, "Tile and Wavefront can not be applied together"); 1041 973 xConfirmPara( m_iWaveFrontSynchro && m_iEntropySliceMode, "Wavefront and Entropy Slice can not be applied together"); 1042 #endif1043 974 1044 975 // max CU width and height should be power of 2 … … 1232 1163 for( Int i = 0; i < MAX_GOP; i++ ) { isOK[i] = false; } 1233 1164 Int numOK = 0; 1234 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER1235 Int numReorderFramesRequired=0;1236 m_maxNumberOfReferencePictures=0;1237 Int lastDisp = -1;1238 #endif1239 1165 m_extraRPSs[viewId] = 0; 1240 1166 //start looping through frames in coding order until we can verify that the GOP structure is correct. … … 1420 1346 } 1421 1347 } 1422 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER1423 if(m_maxNumberOfReferencePictures<numRefs)1424 {1425 m_maxNumberOfReferencePictures=numRefs;1426 }1427 #endif1428 1348 refList[numRefs] = curPOC; 1429 1349 numRefs++; 1430 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER1431 Int nonDisplayed=0;1432 for(Int i=0; i<numRefs; i++)1433 {1434 if(refList[i]==lastDisp+1)1435 {1436 lastDisp=refList[i];1437 i=0;1438 }1439 }1440 for(Int i=0; i<numRefs; i++)1441 {1442 if(refList[i]>lastDisp)1443 {1444 nonDisplayed++;1445 }1446 }1447 if(nonDisplayed>numReorderFramesRequired)1448 {1449 numReorderFramesRequired=nonDisplayed;1450 }1451 #endif1452 1350 } 1453 1351 checkGOP++; 1454 1352 } 1455 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER1456 if (m_numReorderFrames == -1)1457 {1458 m_numReorderFrames = numReorderFramesRequired;1459 }1460 #endif1461 1353 xConfirmPara( errorGOP, "Invalid GOP structure given" ); 1462 #if H0566_TLA1463 1354 m_maxTempLayer[viewId] = 1; 1464 #endif1465 1355 for( Int i = 0; i < m_iGOPSize; i++ ) 1466 1356 { 1467 #if H0566_TLA1468 1357 if( m_GOPListsMvc[viewId][i].m_temporalId >= m_maxTempLayer[viewId] ) 1469 1358 { 1470 1359 m_maxTempLayer[viewId] = m_GOPListsMvc[viewId][i].m_temporalId + 1; 1471 1360 } 1472 #endif1473 1361 xConfirmPara( m_GOPListsMvc[viewId][i].m_sliceType != 'B' && m_GOPListsMvc[viewId][i].m_sliceType != 'P', "Slice type must be equal to B or P" ); 1474 1362 } 1475 1363 1476 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER1477 1364 for( Int i = 0; i < MAX_TLAYER; i++ ) 1478 1365 { … … 1531 1418 m_maxDecPicBuffering[viewId][MAX_TLAYER-1] = m_numReorderPics[viewId][MAX_TLAYER-1]; 1532 1419 } 1533 #endif 1534 1535 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER 1420 1536 1421 xConfirmPara( m_bUseLComb == false && m_numReorderPics[viewId][MAX_TLAYER-1] != 0, "ListCombination can only be 0 in low delay coding (more precisely when L0 and L1 are identical)" ); // Note however this is not the full necessary condition as ref_pic_list_combination_flag can only be 0 if L0 == L1. 1537 #else1538 xConfirmPara( m_bUseLComb==false && m_numReorderFrames!=0, "ListCombination can only be 0 in low delay coding (more precisely when L0 and L1 are identical)" ); // Note however this is not the full necessary condition as ref_pic_list_combination_flag can only be 0 if L0 == L1.1539 xConfirmPara( m_numReorderFrames < numReorderFramesRequired, "For the used GOP the encoder requires more pictures for reordering than specified in MaxNumberOfReorderPictures" );1540 #endif1541 1422 } 1542 1423 } … … 1648 1529 } 1649 1530 } 1650 #if PIC_CROPPING1651 1531 printf("Real Format : %dx%d %dHz\n", m_iSourceWidth - m_cropLeft - m_cropRight, m_iSourceHeight - m_cropTop - m_cropBottom, m_iFrameRate ); 1652 #else1653 printf("Real Format : %dx%d %dHz\n", m_iSourceWidth - m_aiPad[0], m_iSourceHeight-m_aiPad[1], m_iFrameRate );1654 #endif1655 1532 printf("Internal Format : %dx%d %dHz\n", m_iSourceWidth, m_iSourceHeight, m_iFrameRate ); 1656 1533 printf("Frame index : %u - %d (%d frames)\n", m_FrameSkip, m_FrameSkip+m_iFrameToBeEncoded-1, m_iFrameToBeEncoded ); … … 1720 1597 1721 1598 printf("TOOL CFG General: "); 1722 #if LCU_SYNTAX_ALF1723 1599 printf("ALFMNF:%d ", m_iALFMaxNumberFilters); 1724 1600 printf("ALFInSlice:%d ", m_bALFParamInSlice); 1725 1601 printf("ALFPicEnc:%d ", m_bALFPicBasedEncode); 1726 #endif1727 1602 printf("IBD:%d ", !!g_uiBitIncrement); 1728 1603 printf("HAD:%d ", m_bUseHADME ); … … 1730 1605 printf("SQP:%d ", m_uiDeltaQpRD ); 1731 1606 printf("ASR:%d ", m_bUseASR ); 1732 #if !PIC_CROPPING1733 printf("PAD:%d ", m_bUsePAD );1734 #endif1735 1607 printf("LComb:%d ", m_bUseLComb ); 1736 1608 printf("LCMod:%d ", m_bLCMod ); 1737 1609 printf("FEN:%d ", m_bUseFastEnc ); 1738 1610 printf("ECU:%d ", m_bUseEarlyCU ); 1739 #if FAST_DECISION_FOR_MRG_RD_COST1740 1611 printf("FDM:%d ", m_useFastDecisionForMerge ); 1741 #endif1742 1612 printf("CFM:%d ", m_bUseCbfFastMode ); 1743 1613 printf("RQT:%d ", 1 ); … … 1754 1624 } 1755 1625 printf("CIP:%d ", m_bUseConstrainedIntraPred); 1756 #if BURST_IPCM1757 1626 printf("PCM:%d ", (m_usePCM && (1<<m_uiPCMLog2MinSize) <= m_uiMaxCUWidth)? 1 : 0); 1758 #else1759 printf("PCM:%d ", ((1<<m_uiPCMLog2MinSize) <= m_uiMaxCUWidth)? 1 : 0);1760 #endif1761 #if SAO_UNIT_INTERLEAVING1762 1627 printf("SAOInterleaving:%d ", (m_saoInterleavingFlag)?(1):(0)); 1763 #endif1764 1628 #if LOSSLESS_CODING 1765 1629 printf("LosslessCuEnabled:%d ", (m_useLossless)? 1:0 ); … … 1767 1631 printf("WPP:%d ", (Int)m_bUseWeightPred); 1768 1632 printf("WPB:%d ", m_uiBiPredIdc); 1769 #if !REMOVE_TILE_DEPENDENCE1770 printf("TileBoundaryIndependence:%d ", m_iTileBoundaryIndependenceIdr );1771 #endif1772 1633 printf("TileLocationInSliceHdr:%d ", m_iTileLocationInSliceHeaderFlag); 1773 1634 printf("TileMarker:%d", m_iTileMarkerFlag); … … 1792 1653 #endif 1793 1654 1794 #if MULTIBITS_DATA_HIDING1795 1655 printf(" SignBitHidingFlag:%d SignBitHidingThreshold:%d", m_signHideFlag, m_signHidingThreshold); 1796 #endif1797 1656 printf("\n"); 1798 1657 printf("TOOL CFG VIDEO : "); … … 1804 1663 #endif 1805 1664 #if LGE_ILLUCOMP_B0045 1665 #if LGE_ILLUCOMP_DEPTH_C0046 1666 printf("IlluCompEnable: %d %d", m_abUseIC[0] ? 1 : 0, m_abUseIC[1] ? 1 : 0); 1667 #else 1806 1668 printf("IlluCompEnable: %d ", m_bUseIC); 1807 1669 #endif 1808 1670 #endif 1671 #if INTER_VIEW_VECTOR_SCALING_C0115 1672 printf("IVSEnable: %d ", m_bUseIVS); 1673 #endif 1809 1674 printf("\n"); 1810 1675 -
trunk/source/App/TAppEncoder/TAppEncCfg.h
r210 r296 73 73 Int m_iSourceWidth; ///< source width in pixel 74 74 Int m_iSourceHeight; ///< source height in pixel 75 #if PIC_CROPPING76 75 Int m_croppingMode; 77 76 Int m_cropLeft; … … 79 78 Int m_cropTop; 80 79 Int m_cropBottom; 81 #endif82 80 Int m_iFrameToBeEncoded; ///< number of encoded frames 83 #if !PIC_CROPPING84 Bool m_bUsePAD; ///< flag for using source padding85 #endif86 81 Int m_aiPad[2]; ///< number of padded pixels for width and height 87 82 … … 100 95 Int m_extraRPSs[MAX_VIEW_NUM]; 101 96 GOPEntryMvc m_GOPListsMvc[MAX_VIEW_NUM][MAX_GOP+1]; 102 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER103 97 Int m_numReorderPics[MAX_VIEW_NUM][MAX_TLAYER]; ///< total number of reorder pictures 104 98 Int m_maxDecPicBuffering[MAX_VIEW_NUM][MAX_TLAYER]; ///< total number of reference pictures needed for decoding 105 #else106 Int m_numReorderFrames; ///< total number of reorder pictures107 Int m_maxNumberOfReferencePictures; ///< total number of reference pictures needed for decoding108 #endif109 99 Bool m_bUseLComb; ///< flag for using combined reference list for uni-prediction in B-slices (JCTVC-D421) 110 100 Bool m_bLCMod; ///< flag for specifying whether the combined reference list for uni-prediction in B-slices is uploaded explicitly … … 136 126 Int m_iQPAdaptationRange; ///< dQP range by QP adaptation 137 127 138 #if H0566_TLA139 128 Int m_maxTempLayer[MAX_VIEW_NUM]; ///< Max temporal layer 140 #else141 Bool m_bTLayering; ///< indicates whether temporal IDs are set based on the hierarchical coding structure142 Bool m_abTLayerSwitchingFlag[MAX_TLAYER]; ///< temporal layer switching flags corresponding to each temporal layer143 #endif144 129 145 130 // coding unit (CU) definition … … 170 155 vector<Bool> m_abUseSAO; 171 156 #if LGE_ILLUCOMP_B0045 157 #if LGE_ILLUCOMP_DEPTH_C0046 158 vector<Bool> m_abUseIC; ///< flag for using illumination compensation for inter-view prediction 159 #else 172 160 Bool m_bUseIC; ///< flag for using illumination compensation for inter-view prediction 173 161 #endif 174 #if SAO_UNIT_INTERLEAVING 162 #endif 163 #if INTER_VIEW_VECTOR_SCALING_C0115 164 Bool m_bUseIVS; ///< flag for using inter-view vector scaling 165 #endif 175 166 Int m_maxNumOffsetsPerPic; ///< SAO maximun number of offset per picture 176 167 Bool m_saoInterleavingFlag; ///< SAO interleaving flag 177 #endif178 168 // coding tools (loop filter) 179 169 vector<Bool> m_abUseALF; ///< flag for using adaptive loop filter [0] - video, [1] - depth … … 181 171 182 172 Int m_iALFMaxNumberFilters; ///< ALF Max Number Filters in one picture 183 #if LCU_SYNTAX_ALF184 173 Bool m_bALFParamInSlice; 185 174 Bool m_bALFPicBasedEncode; 186 #endif187 175 188 176 vector<Bool> m_abLoopFilterDisable; ///< flag for using deblocking filter filter [0] - video, [1] - depth … … 190 178 Int m_loopFilterBetaOffsetDiv2; ///< beta offset for deblocking filter 191 179 Int m_loopFilterTcOffsetDiv2; ///< tc offset for deblocking filter 192 #if DBL_CONTROL193 180 Bool m_DeblockingFilterControlPresent; ///< deblocking filter control present flag in PPS 194 #endif195 181 196 182 Bool m_bUseLMChroma; ///< JL: Chroma intra prediction based on luma signal … … 226 212 UInt m_uiPredDepthMapGeneration; ///< using of (virtual) depth maps for texture coding 227 213 #endif 228 #if H HI_INTER_VIEW_MOTION_PRED214 #if H3D_IVMP 229 215 UInt m_uiMultiviewMvPredMode; ///< usage of predictors for multi-view mv prediction 230 216 UInt m_uiMultiviewMvRegMode; ///< regularization for multiview motion vectors 231 217 Double m_dMultiviewMvRegLambdaScale; ///< lambda scale for multiview motion vectors regularization 232 218 #endif 233 #if H HI_INTER_VIEW_RESIDUAL_PRED219 #if H3D_IVRP 234 220 UInt m_uiMultiviewResPredMode; ///< using multiview residual prediction 235 221 #endif 236 222 237 #if FAST_DECISION_FOR_MRG_RD_COST238 223 Bool m_useFastDecisionForMerge; ///< flag for using Fast Decision Merge RD-Cost 239 #endif240 224 Bool m_bUseCbfFastMode; ///< flag for using Cbf Fast PU Mode Decision 241 225 Int m_iSliceMode; ///< 0: Disable all Recon slice limits, 1 : Maximum number of largest coding units per slice, 2: Maximum number of bytes in a slice … … 250 234 Int m_iColumnRowInfoPresent; 251 235 Int m_iUniformSpacingIdr; 252 #if !REMOVE_TILE_DEPENDENCE253 Int m_iTileBoundaryIndependenceIdr;254 #endif255 236 Int m_iNumColumnsMinus1; 256 237 char* m_pchColumnWidth; … … 280 261 #endif 281 262 282 #if MULTIBITS_DATA_HIDING283 263 Int m_signHideFlag; 284 264 Int m_signHidingThreshold; 285 #endif286 265 #if HHI_MPI 287 266 Bool m_bUseMVI; ///< flag for using Motion Vector Inheritance for depth map coding -
trunk/source/App/TAppEncoder/TAppEncTop.cpp
r210 r296 97 97 m_acTEncTopList[iViewIdx]->setSourceWidth ( m_iSourceWidth ); 98 98 m_acTEncTopList[iViewIdx]->setSourceHeight ( m_iSourceHeight ); 99 #if PIC_CROPPING100 99 m_acTEncTopList[iViewIdx]->setCroppingMode ( m_croppingMode ); 101 100 m_acTEncTopList[iViewIdx]->setCropLeft ( m_cropLeft ); … … 103 102 m_acTEncTopList[iViewIdx]->setCropTop ( m_cropTop ); 104 103 m_acTEncTopList[iViewIdx]->setCropBottom ( m_cropBottom ); 105 #endif106 104 m_acTEncTopList[iViewIdx]->setFrameToBeEncoded ( m_iFrameToBeEncoded ); 107 105 m_acTEncTopList[iViewIdx]->setViewId ( iViewIdx ); … … 121 119 m_cVPS.setDependentFlag ( iViewIdx ? true:false, layerId ); 122 120 m_cVPS.setDependentLayer ( layerId - (m_bUsingDepthMaps ? 2:1), layerId ); 121 #if INTER_VIEW_VECTOR_SCALING_C0115 122 m_cVPS.setIVScalingFlag ( m_bUseIVS ); 123 #endif 123 124 #endif 124 125 … … 135 136 m_acTEncTopList[iViewIdx]->setGopList ( m_GOPListsMvc[iViewIdx] ); 136 137 m_acTEncTopList[iViewIdx]->setExtraRPSs ( m_extraRPSs[iViewIdx] ); 137 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER138 138 for(Int i = 0; i < MAX_TLAYER; i++) 139 139 { … … 141 141 m_acTEncTopList[iViewIdx]->setMaxDecPicBuffering ( m_maxDecPicBuffering[iViewIdx][i], i ); 142 142 } 143 #else144 m_acTEncTopList[iViewIdx]->setNumReorderFrames ( m_numReorderFrames );145 m_acTEncTopList[iViewIdx]->setMaxNumberOfReferencePictures ( m_maxNumberOfReferencePictures );146 #endif147 143 for( UInt uiLoop = 0; uiLoop < MAX_TLAYER; ++uiLoop ) 148 144 { … … 154 150 m_acTEncTopList[iViewIdx]->setPad ( m_aiPad ); 155 151 156 #if H0566_TLA157 152 m_acTEncTopList[iViewIdx]->setMaxTempLayer ( m_maxTempLayer[iViewIdx] ); 158 #else159 m_acTEncTopList[iViewIdx]->setTLayering ( m_bTLayering );160 m_acTEncTopList[iViewIdx]->setTLayerSwitchingFlag ( m_abTLayerSwitchingFlag );161 #endif162 153 163 154 m_acTEncTopList[iViewIdx]->setDisInter4x4 ( m_bDisInter4x4); … … 173 164 m_acTEncTopList[iViewIdx]->setLoopFilterBetaOffset ( m_loopFilterBetaOffsetDiv2 ); 174 165 m_acTEncTopList[iViewIdx]->setLoopFilterTcOffset ( m_loopFilterTcOffsetDiv2 ); 175 #if DBL_CONTROL176 166 m_acTEncTopList[iViewIdx]->setDeblockingFilterControlPresent( m_DeblockingFilterControlPresent); 177 #endif178 167 179 168 //====== Motion search ======== … … 198 187 #if LOSSLESS_CODING 199 188 Int lowestQP; 200 #if H0736_AVC_STYLE_QP_RANGE201 189 lowestQP = - ( (Int)(6*(g_uiBitDepth + g_uiBitIncrement - 8)) ); 202 #else203 lowestQP = 0;204 #endif205 190 if ((m_iMaxDeltaQP == 0 ) && (m_aiQP[0] == lowestQP) && (m_useLossless == true)) 206 191 { … … 232 217 m_acTEncTopList[iViewIdx]->setPdmOffset ( m_cCameraData.getPdmOffset () ); 233 218 #endif 234 #if H HI_INTER_VIEW_MOTION_PRED219 #if H3D_IVMP 235 220 m_acTEncTopList[iViewIdx]->setMultiviewMvPredMode ( m_uiMultiviewMvPredMode ); 236 221 m_acTEncTopList[iViewIdx]->setMultiviewMvRegMode ( iViewIdx ? m_uiMultiviewMvRegMode : 0 ); 237 222 m_acTEncTopList[iViewIdx]->setMultiviewMvRegLambdaScale ( iViewIdx ? m_dMultiviewMvRegLambdaScale : 0.0 ); 238 223 #endif 239 #if H HI_INTER_VIEW_RESIDUAL_PRED224 #if H3D_IVRP 240 225 m_acTEncTopList[iViewIdx]->setMultiviewResPredMode ( m_uiMultiviewResPredMode ); 241 226 #endif … … 257 242 m_acTEncTopList[iViewIdx]->setdQPs ( m_aidQP ); 258 243 m_acTEncTopList[iViewIdx]->setUseRDOQ ( m_abUseRDOQ[0] ); 259 #if !PIC_CROPPING260 m_acTEncTopList[iViewIdx]->setUsePAD ( m_bUsePAD );261 #endif262 244 m_acTEncTopList[iViewIdx]->setQuadtreeTULog2MaxSize ( m_uiQuadtreeTULog2MaxSize ); 263 245 m_acTEncTopList[iViewIdx]->setQuadtreeTULog2MinSize ( m_uiQuadtreeTULog2MinSize ); … … 266 248 m_acTEncTopList[iViewIdx]->setUseFastEnc ( m_bUseFastEnc ); 267 249 m_acTEncTopList[iViewIdx]->setUseEarlyCU ( m_bUseEarlyCU ); 268 #if FAST_DECISION_FOR_MRG_RD_COST269 250 m_acTEncTopList[iViewIdx]->setUseFastDecisionForMerge ( m_useFastDecisionForMerge ); 270 #endif271 251 m_acTEncTopList[iViewIdx]->setUseCbfFastMode ( m_bUseCbfFastMode ); 272 252 #if HHI_INTERVIEW_SKIP … … 301 281 m_acTEncTopList[iViewIdx]->setSliceArgument ( m_iSliceArgument * ( iNumPartInCU >> ( m_iSliceGranularity << 1 ) ) ); 302 282 } 303 #if FIXED_NUMBER_OF_TILES_SLICE_MODE304 283 if(m_iSliceMode==AD_HOC_SLICES_FIXED_NUMBER_OF_TILES_IN_SLICE) 305 284 { 306 285 m_acTEncTopList[iViewIdx]->setSliceArgument ( m_iSliceArgument ); 307 286 } 308 #endif309 287 m_acTEncTopList[iViewIdx]->setSliceGranularity ( m_iSliceGranularity ); 310 288 if(m_iSliceMode == 0 ) … … 315 293 m_acTEncTopList[iViewIdx]->setUseSAO ( m_abUseSAO[0] ); 316 294 #if LGE_ILLUCOMP_B0045 295 #if LGE_ILLUCOMP_DEPTH_C0046 296 m_acTEncTopList[iViewIdx]->setUseIC ( m_abUseIC[0] ); 297 #else 317 298 m_acTEncTopList[iViewIdx]->setUseIC ( m_bUseIC ); 318 299 #endif 319 #if SAO_UNIT_INTERLEAVING 300 #endif 301 #if INTER_VIEW_VECTOR_SCALING_C0115 302 m_acTEncTopList[iViewIdx]->setUseIVS ( m_bUseIVS ); 303 #endif 320 304 m_acTEncTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic); 321 305 m_acTEncTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag); 322 #endif323 306 m_acTEncTopList[iViewIdx]->setPCMInputBitDepthFlag ( m_bPCMInputBitDepthFlag); 324 307 m_acTEncTopList[iViewIdx]->setPCMFilterDisableFlag ( m_bPCMFilterDisableFlag); … … 328 311 m_acTEncTopList[iViewIdx]->setColumnRowInfoPresent ( m_iColumnRowInfoPresent ); 329 312 m_acTEncTopList[iViewIdx]->setUniformSpacingIdr ( m_iUniformSpacingIdr ); 330 #if !REMOVE_TILE_DEPENDENCE331 m_acTEncTopList[iViewIdx]->setTileBoundaryIndependenceIdr( m_iTileBoundaryIndependenceIdr );332 #endif333 313 m_acTEncTopList[iViewIdx]->setNumColumnsMinus1 ( m_iNumColumnsMinus1 ); 334 314 m_acTEncTopList[iViewIdx]->setNumRowsMinus1 ( m_iNumRowsMinus1 ); … … 347 327 m_acTEncTopList[iViewIdx]->setMaxTileMarkerOffset ( m_dMaxTileMarkerOffset ); 348 328 m_acTEncTopList[iViewIdx]->setTileBehaviorControlPresentFlag( m_iTileBehaviorControlPresentFlag ); 349 #if !REMOVE_TILE_DEPENDENCE350 if(m_iTileBoundaryIndependenceIdr == 0 || uiTilesCount == 1)351 #else352 329 if(uiTilesCount == 1) 353 #endif354 330 { 355 331 m_bLFCrossTileBoundaryFlag = true; … … 366 342 m_acTEncTopList[iViewIdx]->setUseScalingListId ( m_useScalingListId ); 367 343 m_acTEncTopList[iViewIdx]->setScalingListFile ( m_scalingListFile ); 368 #if MULTIBITS_DATA_HIDING369 344 m_acTEncTopList[iViewIdx]->setSignHideFlag(m_signHideFlag); 370 345 m_acTEncTopList[iViewIdx]->setTSIG(m_signHidingThreshold); 371 #endif 372 373 #if LCU_SYNTAX_ALF 346 374 347 if(uiTilesCount > 1) 375 348 { … … 379 352 m_acTEncTopList[iViewIdx]->setALFParamInSlice ( m_bALFParamInSlice); 380 353 m_acTEncTopList[iViewIdx]->setALFPicBasedEncode ( m_bALFPicBasedEncode); 381 #endif382 354 383 355 //====== Depth tools ======== … … 435 407 m_acTEncDepthTopList[iViewIdx]->setSourceWidth ( m_iSourceWidth ); 436 408 m_acTEncDepthTopList[iViewIdx]->setSourceHeight ( m_iSourceHeight ); 437 #if PIC_CROPPING438 409 m_acTEncDepthTopList[iViewIdx]->setCroppingMode ( m_croppingMode ); 439 410 m_acTEncDepthTopList[iViewIdx]->setCropLeft ( m_cropLeft ); … … 441 412 m_acTEncDepthTopList[iViewIdx]->setCropTop ( m_cropTop ); 442 413 m_acTEncDepthTopList[iViewIdx]->setCropBottom ( m_cropBottom ); 443 #endif444 414 m_acTEncDepthTopList[iViewIdx]->setFrameToBeEncoded ( m_iFrameToBeEncoded ); 445 415 m_acTEncDepthTopList[iViewIdx]->setViewId ( iViewIdx ); … … 470 440 m_acTEncDepthTopList[iViewIdx]->setGopList ( m_GOPListsMvc[iViewIdx] ); 471 441 m_acTEncDepthTopList[iViewIdx]->setExtraRPSs ( m_extraRPSs[iViewIdx] ); 472 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER473 442 for(Int i = 0; i < MAX_TLAYER; i++) 474 443 { … … 476 445 m_acTEncDepthTopList[iViewIdx]->setMaxDecPicBuffering ( m_maxDecPicBuffering[iViewIdx][i], i ); 477 446 } 478 #else479 m_acTEncDepthTopList[iViewIdx]->setNumReorderFrames ( m_numReorderFrames );480 m_acTEncDepthTopList[iViewIdx]->setMaxNumberOfReferencePictures ( m_maxNumberOfReferencePictures );481 #endif482 447 for( UInt uiLoop = 0; uiLoop < MAX_TLAYER; ++uiLoop ) 483 448 { … … 489 454 m_acTEncDepthTopList[iViewIdx]->setPad ( m_aiPad ); 490 455 491 #if H0566_TLA492 456 m_acTEncDepthTopList[iViewIdx]->setMaxTempLayer ( m_maxTempLayer[iViewIdx] ); 493 #else494 m_acTEncDepthTopList[iViewIdx]->setTLayering ( m_bTLayering );495 m_acTEncDepthTopList[iViewIdx]->setTLayerSwitchingFlag ( m_abTLayerSwitchingFlag );496 #endif497 457 498 458 m_acTEncDepthTopList[iViewIdx]->setDisInter4x4 ( m_bDisInter4x4); … … 508 468 m_acTEncDepthTopList[iViewIdx]->setLoopFilterBetaOffset ( m_loopFilterBetaOffsetDiv2 ); 509 469 m_acTEncDepthTopList[iViewIdx]->setLoopFilterTcOffset ( m_loopFilterTcOffsetDiv2 ); 510 #if DBL_CONTROL511 470 m_acTEncDepthTopList[iViewIdx]->setDeblockingFilterControlPresent( m_DeblockingFilterControlPresent); 512 #endif513 471 514 472 //====== Motion search ======== … … 550 508 m_acTEncDepthTopList[iViewIdx]->setdQPs ( m_aidQPdepth ); 551 509 m_acTEncDepthTopList[iViewIdx]->setUseRDOQ ( m_abUseRDOQ[1] ); 552 #if !PIC_CROPPING553 m_acTEncDepthTopList[iViewIdx]->setUsePAD ( m_bUsePAD );554 #endif555 510 m_acTEncDepthTopList[iViewIdx]->setQuadtreeTULog2MaxSize ( m_uiQuadtreeTULog2MaxSize ); 556 511 m_acTEncDepthTopList[iViewIdx]->setQuadtreeTULog2MinSize ( m_uiQuadtreeTULog2MinSize ); … … 559 514 m_acTEncDepthTopList[iViewIdx]->setUseFastEnc ( m_bUseFastEnc ); 560 515 m_acTEncDepthTopList[iViewIdx]->setUseEarlyCU ( m_bUseEarlyCU ); 561 #if FAST_DECISION_FOR_MRG_RD_COST562 516 m_acTEncDepthTopList[iViewIdx]->setUseFastDecisionForMerge ( m_useFastDecisionForMerge ); 563 #endif564 517 m_acTEncDepthTopList[iViewIdx]->setUseCbfFastMode ( m_bUseCbfFastMode ); 565 518 #if HHI_INTERVIEW_SKIP … … 595 548 m_acTEncDepthTopList[iViewIdx]->setPredDepthMapGeneration ( 0 ); 596 549 #endif 597 #if H HI_INTER_VIEW_MOTION_PRED550 #if H3D_IVMP 598 551 m_acTEncDepthTopList[iViewIdx]->setMultiviewMvPredMode ( 0 ); 599 552 m_acTEncDepthTopList[iViewIdx]->setMultiviewMvRegMode ( 0 ); 600 553 m_acTEncDepthTopList[iViewIdx]->setMultiviewMvRegLambdaScale ( 0.0 ); 601 554 #endif 602 #if H HI_INTER_VIEW_RESIDUAL_PRED555 #if H3D_IVRP 603 556 m_acTEncDepthTopList[iViewIdx]->setMultiviewResPredMode ( 0 ); 604 557 #endif … … 623 576 m_acTEncDepthTopList[iViewIdx]->setSliceArgument ( m_iSliceArgument * ( iNumPartInCU >> ( m_iSliceGranularity << 1 ) ) ); 624 577 } 625 #if FIXED_NUMBER_OF_TILES_SLICE_MODE626 578 if(m_iSliceMode==AD_HOC_SLICES_FIXED_NUMBER_OF_TILES_IN_SLICE) 627 579 { 628 580 m_acTEncDepthTopList[iViewIdx]->setSliceArgument ( m_iSliceArgument ); 629 581 } 630 #endif631 582 m_acTEncDepthTopList[iViewIdx]->setSliceGranularity ( m_iSliceGranularity ); 632 583 if(m_iSliceMode == 0 ) … … 639 590 m_acTEncDepthTopList[iViewIdx]->setUseIC ( false ); 640 591 #endif 641 #if SAO_UNIT_INTERLEAVING 592 #if INTER_VIEW_VECTOR_SCALING_C0115 593 m_acTEncDepthTopList[iViewIdx]->setUseIVS ( m_bUseIVS ); 594 #endif 642 595 m_acTEncDepthTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic); 643 596 m_acTEncDepthTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag); 644 #endif645 597 m_acTEncDepthTopList[iViewIdx]->setPCMInputBitDepthFlag ( m_bPCMInputBitDepthFlag); 646 598 m_acTEncDepthTopList[iViewIdx]->setPCMFilterDisableFlag ( m_bPCMFilterDisableFlag); … … 650 602 m_acTEncDepthTopList[iViewIdx]->setColumnRowInfoPresent ( m_iColumnRowInfoPresent ); 651 603 m_acTEncDepthTopList[iViewIdx]->setUniformSpacingIdr ( m_iUniformSpacingIdr ); 652 #if !REMOVE_TILE_DEPENDENCE653 m_acTEncDepthTopList[iViewIdx]->setTileBoundaryIndependenceIdr( m_iTileBoundaryIndependenceIdr );654 #endif655 604 m_acTEncDepthTopList[iViewIdx]->setNumColumnsMinus1 ( m_iNumColumnsMinus1 ); 656 605 m_acTEncDepthTopList[iViewIdx]->setNumRowsMinus1 ( m_iNumRowsMinus1 ); … … 669 618 m_acTEncDepthTopList[iViewIdx]->setMaxTileMarkerOffset ( m_dMaxTileMarkerOffset ); 670 619 m_acTEncDepthTopList[iViewIdx]->setTileBehaviorControlPresentFlag( m_iTileBehaviorControlPresentFlag ); 671 #if !REMOVE_TILE_DEPENDENCE672 if(m_iTileBoundaryIndependenceIdr == 0 || uiTilesCount == 1)673 #else674 620 if(uiTilesCount == 1) 675 #endif676 621 { 677 622 m_bLFCrossTileBoundaryFlag = true; … … 688 633 m_acTEncDepthTopList[iViewIdx]->setUseScalingListId ( m_useScalingListId ); 689 634 m_acTEncDepthTopList[iViewIdx]->setScalingListFile ( m_scalingListFile ); 690 #if MULTIBITS_DATA_HIDING691 635 m_acTEncDepthTopList[iViewIdx]->setSignHideFlag(m_signHideFlag); 692 636 m_acTEncDepthTopList[iViewIdx]->setTSIG(m_signHidingThreshold); 693 #endif 694 695 #if LCU_SYNTAX_ALF 637 696 638 if(uiTilesCount > 1) 697 639 { … … 701 643 m_acTEncDepthTopList[iViewIdx]->setALFParamInSlice ( m_bALFParamInSlice); 702 644 m_acTEncDepthTopList[iViewIdx]->setALFPicBasedEncode ( m_bALFPicBasedEncode); 703 #endif704 645 705 646 //====== Depth tools ======== … … 728 669 } 729 670 730 #if H HI_INTER_VIEW_MOTION_PRED671 #if H3D_IVMP 731 672 else if( m_uiMultiviewMvRegMode ) 732 673 { … … 815 756 m_acTEncDepthTopList[iViewIdx]->create(); 816 757 } 817 #if H HI_INTER_VIEW_MOTION_PRED758 #if H3D_IVMP 818 759 else if( m_uiMultiviewMvRegMode ) 819 760 { … … 931 872 TComPicYuv* pcPicYuvRec = NULL; 932 873 TComPicYuv* pcDepthPicYuvRec = NULL; 933 874 934 875 // initialize internal class & member variables 935 876 xInitLibCfg(); … … 962 903 pcDepthPicYuvOrg->create( m_iSourceWidth, m_iSourceHeight, m_uiMaxCUWidth, m_uiMaxCUHeight, m_uiMaxCUDepth ); 963 904 964 #if H HI_INTER_VIEW_MOTION_PRED905 #if H3D_IVMP 965 906 if( m_uiMultiviewMvRegMode ) 966 907 { … … 982 923 m_acTVideoIOYuvInputFileList[iViewIdx]->read( pcPicYuvOrg, m_aiPad ); 983 924 984 #if H HI_INTER_VIEW_MOTION_PRED925 #if H3D_IVMP 985 926 if( m_uiMultiviewMvRegMode && iViewIdx ) 986 927 { … … 989 930 #endif 990 931 991 #if H HI_INTER_VIEW_MOTION_PRED932 #if H3D_IVMP 992 933 m_acTEncTopList[iViewIdx]->initNewPic( pcPicYuvOrg, ( m_uiMultiviewMvRegMode && iViewIdx ? pcPdmDepthOrg : 0 ) ); 993 934 #else … … 1033 974 if ( iNextPoc < m_iFrameToBeEncoded ) 1034 975 { 1035 m_cCameraData.update( iNextPoc );976 m_cCameraData.update( iNextPoc ); 1036 977 } 1037 978 #endif … … 1096 1037 #endif 1097 1038 iNumEncoded = 0; 1039 1040 #if MERL_VSP_C0152 1041 Int iCurPoc = m_acTEncDepthTopList[iViewIdx]->getFrameId(gopId); 1042 if( iCurPoc < m_acTEncDepthTopList[iViewIdx]->getFrameToBeEncoded() && iViewIdx!=0 ) 1043 { 1044 TComPic* pcBaseTxtPic = getPicFromView( 0, m_acTEncDepthTopList[iViewIdx]->getFrameId(gopId), false ); //get base view reconstructed texture 1045 TComPic* pcBaseDepthPic = getPicFromView( 0, m_acTEncDepthTopList[iViewIdx]->getFrameId(gopId), true ); //get base view reconstructed depth 1046 TEncSlice* pEncSlice = m_acTEncTopList[iViewIdx]->getSliceEncoder(); 1047 pEncSlice->setRefPicBaseTxt(pcBaseTxtPic); 1048 pEncSlice->setRefPicBaseDepth(pcBaseDepthPic); 1049 } 1050 setBWVSPLUT( iViewIdx, gopId, false); 1051 #endif 1098 1052 // call encoding function for one frame 1099 1053 m_acTEncTopList[iViewIdx]->encode( eos[iViewIdx], pcPicYuvOrg, *m_picYuvRec[iViewIdx], outputAccessUnits, iNumEncoded, gopId ); … … 1103 1057 { 1104 1058 Int iNumDepthEncoded = 0; 1059 #if MERL_VSP_C0152 1060 Int iCurPocDepth = m_acTEncDepthTopList[iViewIdx]->getFrameId(gopId); 1061 if( iCurPocDepth < m_acTEncDepthTopList[iViewIdx]->getFrameToBeEncoded() && iViewIdx!=0 ) 1062 { 1063 TComPic* pcBaseDepthPic = getPicFromView( 0, m_acTEncDepthTopList[iViewIdx]->getFrameId(gopId), true ); 1064 TEncSlice* pcSlice = (TEncSlice*) m_acTEncDepthTopList[iViewIdx]->getSliceEncoder(); 1065 pcSlice->setRefPicBaseDepth(pcBaseDepthPic); 1066 } 1067 setBWVSPLUT( iViewIdx, gopId, true); 1068 #endif 1069 1105 1070 // call encoding function for one depth frame 1106 1071 m_acTEncDepthTopList[iViewIdx]->encode( depthEos[iViewIdx], pcDepthPicYuvOrg, *m_picYuvDepthRec[iViewIdx], outputAccessUnits, iNumDepthEncoded, gopId ); … … 1114 1079 #endif 1115 1080 1116 #if HHI_INTERVIEW_SKIP || H HI_INTER_VIEW_MOTION_PRED || HHI_INTER_VIEW_RESIDUAL_PRED1081 #if HHI_INTERVIEW_SKIP || H3D_IVMP || H3D_IVRP 1117 1082 for( Int iViewIdx = 0; iViewIdx < m_iNumberOfViews; iViewIdx++ ) 1118 1083 { … … 1147 1112 1148 1113 #if !QC_MVHEVC_B0046 1149 #if FIX_DEL_NULLPTR1150 1114 if ( pcPdmDepthOrg != NULL && m_uiMultiviewMvRegMode ) 1151 #else1152 if ( pcPdmDepthOrg != NULL )1153 #endif1154 1115 { 1155 1116 pcPdmDepthOrg->destroy(); … … 1292 1253 if (m_pchReconFileList[iViewIdx]) 1293 1254 { 1294 #if PIC_CROPPING1295 1255 m_acTVideoIOYuvReconFileList[iViewIdx]->write( pcPicYuvRec, m_cropLeft, m_cropRight, m_cropTop, m_cropBottom ); 1296 #else1297 m_acTVideoIOYuvReconFileList[iViewIdx]->write( pcPicYuvRec, m_aiPad );1298 #endif1299 1256 } 1300 1257 } … … 1303 1260 if (m_pchDepthReconFileList[iViewIdx]) 1304 1261 { 1305 #if PIC_CROPPING1306 1262 m_acTVideoIOYuvDepthReconFileList[iViewIdx]->write( pcPicYuvRec, m_cropLeft, m_cropRight, m_cropTop, m_cropBottom ); 1307 #else1308 m_acTVideoIOYuvDepthReconFileList[iViewIdx]->write( pcPicYuvRec, m_aiPad );1309 #endif1310 1263 } 1311 1264 } … … 1360 1313 { 1361 1314 case NAL_UNIT_CODED_SLICE: 1362 #if H0566_TLA1363 1315 #if !QC_REM_IDV_B0046 1364 1316 case NAL_UNIT_CODED_SLICE_IDV: … … 1366 1318 case NAL_UNIT_CODED_SLICE_TLA: 1367 1319 case NAL_UNIT_CODED_SLICE_CRA: 1368 #else1369 case NAL_UNIT_CODED_SLICE_DATAPART_A:1370 case NAL_UNIT_CODED_SLICE_DATAPART_B:1371 case NAL_UNIT_CODED_SLICE_CDR:1372 #endif1373 1320 case NAL_UNIT_CODED_SLICE_IDR: 1374 1321 case NAL_UNIT_SPS: … … 1634 1581 #endif 1635 1582 1583 #if MERL_VSP_C0152 1584 Void TAppEncTop::setBWVSPLUT(Int iCodedViewIdx, Int gopId, Bool isDepth) 1585 { 1586 //first view does not have VSP 1587 if((iCodedViewIdx == 0)) return; 1588 1589 AOT( iCodedViewIdx <= 0); 1590 AOT( iCodedViewIdx >= m_iNumberOfViews ); 1591 1592 Int iNeighborViewId = 0; 1593 //setting look-up table 1594 Int* piShiftLUT = m_cCameraData.getBaseViewShiftLUTI()[iNeighborViewId][iCodedViewIdx][0]; 1595 1596 if(isDepth) 1597 { 1598 TEncSlice* pcEncSlice = (TEncSlice*) m_acTEncDepthTopList[iCodedViewIdx]->getSliceEncoder(); 1599 pcEncSlice->setBWVSPLUTParam( piShiftLUT, LOG2_DISP_PREC_LUT ); 1600 } 1601 else 1602 { 1603 TEncSlice* pcEncSlice = (TEncSlice*) m_acTEncTopList[iCodedViewIdx]->getSliceEncoder(); 1604 pcEncSlice->setBWVSPLUTParam( piShiftLUT, LOG2_DISP_PREC_LUT ); 1605 } 1606 1607 } 1608 #endif 1609 1636 1610 //! \} -
trunk/source/App/TAppEncoder/TAppEncTop.h
r210 r296 99 99 TRenTop m_cUsedPelsRenderer; ///< renderer for used pels map 100 100 #endif 101 101 102 protected: 102 103 // initialization … … 165 166 #endif 166 167 168 #if MERL_VSP_C0152 169 Void setBWVSPLUT( Int iCodedViewIdx, Int gopId, Bool isDepth); 170 #endif 167 171 };// END CLASS DEFINITION TAppEncTop 168 172
Note: See TracChangeset for help on using the changeset viewer.