Changeset 296 in 3DVCSoftware for trunk/source/App/TAppEncoder


Ignore:
Timestamp:
20 Feb 2013, 22:07:43 (12 years ago)
Author:
tech
Message:

Reintegrated branch 5.1-dev0 rev. 295.

Location:
trunk/source/App/TAppEncoder
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/App/TAppEncoder/TAppEncCfg.cpp

    r210 r296  
    220220 
    221221  /* 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")
    244242  ("InputBitDepth",         m_uiInputBitDepth, 8u, "bit-depth of input file")
    245243  ("BitDepth",              m_uiInputBitDepth, 8u, "deprecated alias of InputBitDepth")
    246244  ("OutputBitDepth",        m_uiOutputBitDepth, 0u, "bit-depth of output file")
    247245  ("InternalBitDepth",      m_uiInternalBitDepth, 0u, "Internal bit-depth (BitDepth+BitIncrement)")
    248 #if !PIC_CROPPING
    249   ("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 #endif
    253246  ("FrameRate,-fr",         m_iFrameRate,        0, "Frame rate")
    254247  ("FrameSkip,-fs",         m_FrameSkip,         0u, "Number of frames to skip at start of input YUV")
    255248  ("FramesToBeEncoded,f",   m_iFrameToBeEncoded, 0, "number of frames to be encoded (default=all)")
    256   ("FrameToBeEncoded",        m_iFrameToBeEncoded, 0, "deprecated alias of FramesToBeEncoded")
     249  ("FrameToBeEncoded",      m_iFrameToBeEncoded, 0, "deprecated alias of FramesToBeEncoded")
    257250 
    258251  ("NumberOfViews",         m_iNumberOfViews,    0, "Number of views")
     
    279272  ("DecodingRefreshType,-dr",m_iDecodingRefreshType, 0, "intra refresh, (0:none 1:CRA 2:IDR)")
    280273  ("GOPSize,g",      m_iGOPSize,      1, "GOP size of temporal structure")
    281 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
    282   ("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 #endif
    285274  ("ListCombination,-lc", m_bUseLComb, true, "combined reference list flag for uni-prediction in B-slices")
    286275  ("LCModification", m_bLCMod, false, "enables signalling of combined reference list derivation")
     
    321310  ("TemporalLayerQPOffset_L3,-tq3", m_aiTLayerQPOffset[3], MAX_QP + 1, "QP offset of temporal layer 3")
    322311 
    323 #if !H0566_TLA
    324   ("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 #endif
    331312
    332313  /* Entropy coding parameters */
     
    340321  ("LoopFilterTcOffset_div2", m_loopFilterTcOffsetDiv2, 0 )
    341322#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
    342326  ("IlluCompEnable",                  m_bUseIC                  , true         , "Use illumination compensation for inter-view prediction" )
    343327#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
    345332  ("DeblockingFilterControlPresent", m_DeblockingFilterControlPresent, true)
    346 #endif
    347333
    348334  /* Camera Paremetes */
     
    391377  ("PredDepthMapGen",  m_uiPredDepthMapGeneration, (UInt)0, "generation of prediction depth maps for motion data prediction" )
    392378#endif
    393 #if HHI_INTER_VIEW_MOTION_PRED
     379#if H3D_IVMP
    394380  ("MultiviewMvPred",  m_uiMultiviewMvPredMode,    (UInt)0, "usage of predicted depth maps" )
    395381  ("MultiviewMvRegMode",        m_uiMultiviewMvRegMode,         (UInt)0, "regularization mode for multiview motion vectors" )
    396382  ("MultiviewMvRegLambdaScale", m_dMultiviewMvRegLambdaScale, (Double)0, "lambda scale for multiview motion vector regularization" )
    397383#endif
    398 #if HHI_INTER_VIEW_RESIDUAL_PRED
     384#if H3D_IVRP
    399385  ("MultiviewResPred", m_uiMultiviewResPredMode,   (UInt)0, "usage of inter-view residual prediction" )
    400386#endif
     
    405391  ("ALF", m_abUseALF, std::vector<Bool>(1,true), "Enables ALF")
    406392  ("SAO", m_abUseSAO, std::vector<Bool>(1, true), "SAO")
    407 #if SAO_UNIT_INTERLEAVING
    408393  ("MaxNumOffsetsPerPic", m_maxNumOffsetsPerPic, 2048, "2048: default")   
    409394  ("SAOInterleaving", m_saoInterleavingFlag, false, "0: SAO Picture Mode, 1: SAO Interleaving ")   
    410 #endif
    411395
    412396  ("ALFEncodePassReduction", m_iALFEncodePassReduction, 0, "0:Original 16-pass, 1: 1-pass, 2: 2-pass encoding")
    413397
    414398  ("ALFMaxNumFilter,-ALFMNF", m_iALFMaxNumberFilters, 16, "16: No Constrained, 1-15: Constrained max number of filter")
    415 #if LCU_SYNTAX_ALF
    416399  ("ALFParamInSlice", m_bALFParamInSlice, false, "ALF parameters in 0: APS, 1: slice header")
    417400  ("ALFPicBasedEncode", m_bALFPicBasedEncode, true, "ALF picture-based encoding 0: false, 1: true")
    418 #endif
    419401
    420402    ("SliceMode",            m_iSliceMode,           0, "0: Disable all Recon slice limits, 1: Enforce max # of LCUs, 2: Enforce max # of bytes")
     
    439421    ("TileInfoPresentFlag",         m_iColumnRowInfoPresent,         1,          "0: tiles parameters are NOT present in the PPS. 1: tiles parameters are present in the PPS")
    440422    ("UniformSpacingIdc",           m_iUniformSpacingIdr,            0,          "Indicates if the column and row boundaries are distributed uniformly")
    441 #if !REMOVE_TILE_DEPENDENCE
    442     ("TileBoundaryIndependenceIdc", m_iTileBoundaryIndependenceIdr,  1,          "Indicates if the column and row boundaries break the prediction")
    443 #endif
    444423    ("NumTileColumnsMinus1",        m_iNumColumnsMinus1,             0,          "Number of columns in a picture minus 1")
    445424    ("ColumnWidthArray",            cfg_ColumnWidth,                 string(""), "Array containing ColumnWidth values in units of LCU")
     
    456435    ("ScalingList",                 m_useScalingListId,              0,          "0: no scaling list, 1: default scaling lists, 2: scaling lists specified in ScalingListFile")
    457436    ("ScalingListFile",             cfg_ScalingListFile,             string(""), "Scaling list file name")
    458 #if MULTIBITS_DATA_HIDING
    459437    ("SignHideFlag,-SBH",                m_signHideFlag, 1)
    460438    ("SignHideThreshold,-TSIG",          m_signHidingThreshold,         4)
    461 #endif
    462439#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
    463440  ("DMM",                         m_bUseDMM,                       false,      "depth model modes flag")
     
    477454  ("FEN", m_bUseFastEnc, false, "fast encoder setting")
    478455  ("ECU", m_bUseEarlyCU, false, "Early CU setting")
    479 #if FAST_DECISION_FOR_MRG_RD_COST
    480456  ("FDM", m_useFastDecisionForMerge, true, "Fast decision for Merge RD Cost")
    481 #endif
    482457  ("CFM", m_bUseCbfFastMode, false, "Cbf fast mode setting")
    483458#if HHI_INTERVIEW_SKIP
     
    617592  }
    618593
    619 #if PIC_CROPPING
    620594  switch (m_croppingMode)
    621595  {
     
    667641    }
    668642  }
    669 #else
    670 
    671   // compute source padding size
    672   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 #endif
    687643 
    688644  // allocate slice-based dQP values
     
    890846  xConfirmPara( (m_iIntraPeriod > 0 && m_iIntraPeriod < m_iGOPSize) || m_iIntraPeriod == 0, "Intra period must be more than GOP size, or -1 , not 0" );
    891847  xConfirmPara( m_iDecodingRefreshType < 0 || m_iDecodingRefreshType > 2,                   "Decoding Refresh Type must be equal to 0, 1 or 2" );
    892 #if H0736_AVC_STYLE_QP_RANGE
    893848  xConfirmPara( m_aiQP[0] < -6 * ((Int)m_uiInternalBitDepth - 8) || m_aiQP[0] > 51,         "QP exceeds supported range (-QpBDOffsety to 51)" );
    894849  if ( m_aiQP.size() >= 2 )
     
    896851    xConfirmPara( m_aiQP[1] < -6 * ((Int)m_uiInternalBitDepth - 8) || m_aiQP[1] > 51,       "QP depth exceeds supported range (-QpBDOffsety to 51)" );
    897852  }
    898 #else
    899   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 #endif
    905853  xConfirmPara( m_iALFEncodePassReduction < 0 || m_iALFEncodePassReduction > 2,             "ALFEncodePassReduction must be equal to 0, 1 or 2");
    906 #if LCU_SYNTAX_ALF
    907854  xConfirmPara( m_iALFMaxNumberFilters < 1,                                                 "ALFMaxNumFilter should be larger than 1"); 
    908 #else
    909   xConfirmPara( m_iALFMaxNumberFilters < 1 || m_iALFMaxNumberFilters > 16,                  "ALFMaxNumFilter exceeds supported range (1 to 16)"); 
    910 #endif
    911855  xConfirmPara( m_loopFilterBetaOffsetDiv2 < -13 || m_loopFilterBetaOffsetDiv2 > 13,          "Loop Filter Beta Offset div. 2 exceeds supported range (-13 to 13)");
    912856  xConfirmPara( m_loopFilterTcOffsetDiv2 < -13 || m_loopFilterTcOffsetDiv2 > 13,              "Loop Filter Tc Offset div. 2 exceeds supported range (-13 to 13)");
     
    934878  xConfirmPara( m_uiMaxCUWidth < 16,                                                        "Maximum partition width size should be larger than or equal to 16");
    935879  xConfirmPara( m_uiMaxCUHeight < 16,                                                       "Maximum partition height size should be larger than or equal to 16");
    936 #if PIC_CROPPING
    937880  xConfirmPara( (m_iSourceWidth  % (m_uiMaxCUWidth  >> (m_uiMaxCUDepth-1)))!=0,             "Resulting coded frame width must be a multiple of the minimum CU size");
    938881  xConfirmPara( (m_iSourceHeight % (m_uiMaxCUHeight >> (m_uiMaxCUDepth-1)))!=0,             "Resulting coded frame height must be a multiple of the minimum CU size");
    939 #else
    940   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 #endif
    943882 
    944883  xConfirmPara( m_uiQuadtreeTULog2MinSize < 2,                                        "QuadtreeTULog2MinSize must be 2 or greater.");
     
    967906  xConfirmPara    ( m_uiPredDepthMapGeneration >= 2 && !m_bUsingDepthMaps,            "PredDepthMapGen >= 2 requires CodeDepthMaps = 1" );
    968907#endif
    969 #if HHI_INTER_VIEW_MOTION_PRED
     908#if H3D_IVMP
    970909  xConfirmPara    ( m_uiMultiviewMvPredMode > 7,                                      "MultiviewMvPred must be less than or equal to 7" );
    971910  xConfirmPara    ( m_uiMultiviewMvPredMode > 0 && m_uiPredDepthMapGeneration == 0 ,  "MultiviewMvPred > 0 requires PredDepthMapGen > 0" );
     
    977916  }
    978917#endif
    979 #if HHI_INTER_VIEW_RESIDUAL_PRED
     918#if H3D_IVRP
    980919  xConfirmPara    ( m_uiMultiviewResPredMode > 1,                                     "MultiviewResPred must be less than or equal to 1" );
    981920  xConfirmPara    ( m_uiMultiviewResPredMode > 0 && m_uiPredDepthMapGeneration == 0 , "MultiviewResPred > 0 requires PredDepthMapGen > 0" );
     
    998937  }
    999938#if ADAPTIVE_QP_SELECTION
    1000 #if H0736_AVC_STYLE_QP_RANGE
    1001939  xConfirmPara( m_bUseAdaptQpSelect == true && m_aiQP[0] < 0,                                              "AdaptiveQpSelection must be disabled when QP < 0.");
    1002940  xConfirmPara( m_bUseAdaptQpSelect == true && m_aiQP[1] < 0,                                              "AdaptiveQpSelection must be disabled when QP < 0.");
    1003941  xConfirmPara( m_bUseAdaptQpSelect == true && (m_iChromaQpOffset !=0 || m_iChromaQpOffset2nd != 0 ),  "AdaptiveQpSelection must be disabled when ChromaQpOffset is not equal to 0.");
    1004 #endif
    1005942#endif
    1006943
     
    1013950  }
    1014951
    1015 #if FIXED_NUMBER_OF_TILES_SLICE_MODE
    1016952  xConfirmPara( m_iSliceMode < 0 || m_iSliceMode > 3, "SliceMode exceeds supported range (0 to 3)" );
    1017 #endif
    1018953  if (m_iSliceMode!=0)
    1019954  {
    1020955    xConfirmPara( m_iSliceArgument < 1 ,         "SliceArgument should be larger than or equal to 1" );
    1021956  }
    1022 #if FIXED_NUMBER_OF_TILES_SLICE_MODE
    1023957  if (m_iSliceMode==3)
    1024958  {
    1025959    xConfirmPara( m_iSliceGranularity > 0 ,      "When SliceMode == 3 is chosen, the SliceGranularity must be 0" );
    1026960  }
    1027 #endif
    1028961  xConfirmPara( m_iEntropySliceMode < 0 || m_iEntropySliceMode > 2, "EntropySliceMode exceeds supported range (0 to 2)" );
    1029962  if (m_iEntropySliceMode!=0)
     
    1035968  xConfirmPara( m_iSliceGranularity > m_iMaxCuDQPDepth, "SliceGranularity must be smaller smaller than or equal to maximum dqp depth" );
    1036969
    1037 #if NO_COMBINED_PARALLEL
    1038970  bool tileFlag = (m_iNumColumnsMinus1 > 0 || m_iNumRowsMinus1 > 0 );
    1039971  xConfirmPara( tileFlag && m_iEntropySliceMode,            "Tile and Entropy Slice can not be applied together");
    1040972  xConfirmPara( tileFlag && m_iWaveFrontSynchro,            "Tile and Wavefront can not be applied together");
    1041973  xConfirmPara( m_iWaveFrontSynchro && m_iEntropySliceMode, "Wavefront and Entropy Slice can not be applied together"); 
    1042 #endif
    1043974
    1044975  // max CU width and height should be power of 2
     
    12321163      for( Int i = 0; i < MAX_GOP; i++ ) { isOK[i] = false; }
    12331164      Int numOK = 0;
    1234 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
    1235       Int numReorderFramesRequired=0;
    1236       m_maxNumberOfReferencePictures=0;
    1237       Int lastDisp = -1;
    1238 #endif
    12391165      m_extraRPSs[viewId] = 0;
    12401166      //start looping through frames in coding order until we can verify that the GOP structure is correct.
     
    14201346            }
    14211347          }
    1422 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
    1423           if(m_maxNumberOfReferencePictures<numRefs)
    1424           {
    1425             m_maxNumberOfReferencePictures=numRefs;
    1426           }
    1427 #endif
    14281348          refList[numRefs] = curPOC;
    14291349          numRefs++;
    1430 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
    1431           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 #endif
    14521350        }
    14531351        checkGOP++;
    14541352      }
    1455 #if !H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
    1456       if (m_numReorderFrames == -1)
    1457       {
    1458         m_numReorderFrames = numReorderFramesRequired;
    1459       }
    1460 #endif
    14611353      xConfirmPara( errorGOP, "Invalid GOP structure given" );
    1462 #if H0566_TLA
    14631354      m_maxTempLayer[viewId] = 1;
    1464 #endif
    14651355      for( Int i = 0; i < m_iGOPSize; i++ )
    14661356      {
    1467 #if H0566_TLA
    14681357        if( m_GOPListsMvc[viewId][i].m_temporalId >= m_maxTempLayer[viewId] )
    14691358        {
    14701359          m_maxTempLayer[viewId] = m_GOPListsMvc[viewId][i].m_temporalId + 1;
    14711360        }
    1472 #endif
    14731361        xConfirmPara( m_GOPListsMvc[viewId][i].m_sliceType != 'B' && m_GOPListsMvc[viewId][i].m_sliceType != 'P', "Slice type must be equal to B or P" );
    14741362      }
    14751363
    1476 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
    14771364      for( Int i = 0; i < MAX_TLAYER; i++ )
    14781365      {
     
    15311418        m_maxDecPicBuffering[viewId][MAX_TLAYER-1] = m_numReorderPics[viewId][MAX_TLAYER-1];
    15321419      }
    1533 #endif
    1534 
    1535 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
     1420
    15361421      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 #else
    1538       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 #endif
    15411422    }
    15421423  }
     
    16481529    }
    16491530  }
    1650 #if PIC_CROPPING
    16511531  printf("Real     Format              : %dx%d %dHz\n", m_iSourceWidth - m_cropLeft - m_cropRight, m_iSourceHeight - m_cropTop - m_cropBottom, m_iFrameRate );
    1652 #else
    1653   printf("Real     Format              : %dx%d %dHz\n", m_iSourceWidth - m_aiPad[0], m_iSourceHeight-m_aiPad[1], m_iFrameRate );
    1654 #endif
    16551532  printf("Internal Format              : %dx%d %dHz\n", m_iSourceWidth, m_iSourceHeight, m_iFrameRate );
    16561533  printf("Frame index                  : %u - %d (%d frames)\n", m_FrameSkip, m_FrameSkip+m_iFrameToBeEncoded-1, m_iFrameToBeEncoded );
     
    17201597 
    17211598  printf("TOOL CFG General: "); 
    1722 #if LCU_SYNTAX_ALF
    17231599  printf("ALFMNF:%d ", m_iALFMaxNumberFilters);
    17241600  printf("ALFInSlice:%d ", m_bALFParamInSlice);
    17251601  printf("ALFPicEnc:%d ", m_bALFPicBasedEncode);
    1726 #endif
    17271602  printf("IBD:%d ", !!g_uiBitIncrement);
    17281603  printf("HAD:%d ", m_bUseHADME           );
     
    17301605  printf("SQP:%d ", m_uiDeltaQpRD         );
    17311606  printf("ASR:%d ", m_bUseASR             );
    1732 #if !PIC_CROPPING
    1733   printf("PAD:%d ", m_bUsePAD             );
    1734 #endif
    17351607  printf("LComb:%d ", m_bUseLComb         );
    17361608  printf("LCMod:%d ", m_bLCMod         );
    17371609  printf("FEN:%d ", m_bUseFastEnc         );
    17381610  printf("ECU:%d ", m_bUseEarlyCU         );
    1739 #if FAST_DECISION_FOR_MRG_RD_COST
    17401611  printf("FDM:%d ", m_useFastDecisionForMerge );
    1741 #endif
    17421612  printf("CFM:%d ", m_bUseCbfFastMode         );
    17431613  printf("RQT:%d ", 1     );
     
    17541624  }
    17551625  printf("CIP:%d ", m_bUseConstrainedIntraPred);
    1756 #if BURST_IPCM
    17571626  printf("PCM:%d ", (m_usePCM && (1<<m_uiPCMLog2MinSize) <= m_uiMaxCUWidth)? 1 : 0);
    1758 #else
    1759   printf("PCM:%d ", ((1<<m_uiPCMLog2MinSize) <= m_uiMaxCUWidth)? 1 : 0);
    1760 #endif
    1761 #if SAO_UNIT_INTERLEAVING
    17621627  printf("SAOInterleaving:%d ", (m_saoInterleavingFlag)?(1):(0));
    1763 #endif
    17641628#if LOSSLESS_CODING
    17651629  printf("LosslessCuEnabled:%d ", (m_useLossless)? 1:0 );
     
    17671631  printf("WPP:%d ", (Int)m_bUseWeightPred);
    17681632  printf("WPB:%d ", m_uiBiPredIdc);
    1769 #if !REMOVE_TILE_DEPENDENCE
    1770   printf("TileBoundaryIndependence:%d ", m_iTileBoundaryIndependenceIdr );
    1771 #endif
    17721633  printf("TileLocationInSliceHdr:%d ", m_iTileLocationInSliceHeaderFlag);
    17731634  printf("TileMarker:%d", m_iTileMarkerFlag);
     
    17921653#endif
    17931654
    1794 #if MULTIBITS_DATA_HIDING
    17951655  printf(" SignBitHidingFlag:%d SignBitHidingThreshold:%d", m_signHideFlag, m_signHidingThreshold);
    1796 #endif
    17971656  printf("\n");
    17981657  printf("TOOL CFG VIDEO  : ");
     
    18041663#endif
    18051664#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
    18061668  printf("IlluCompEnable: %d ", m_bUseIC);
    18071669#endif
    1808 
     1670#endif
     1671#if INTER_VIEW_VECTOR_SCALING_C0115
     1672  printf("IVSEnable: %d ", m_bUseIVS);
     1673#endif
    18091674  printf("\n");
    18101675
  • trunk/source/App/TAppEncoder/TAppEncCfg.h

    r210 r296  
    7373  Int       m_iSourceWidth;                                   ///< source width in pixel
    7474  Int       m_iSourceHeight;                                  ///< source height in pixel
    75 #if PIC_CROPPING
    7675  Int       m_croppingMode;
    7776  Int       m_cropLeft;
     
    7978  Int       m_cropTop;
    8079  Int       m_cropBottom;
    81 #endif
    8280  Int       m_iFrameToBeEncoded;                              ///< number of encoded frames
    83 #if !PIC_CROPPING
    84   Bool      m_bUsePAD;                                        ///< flag for using source padding
    85 #endif
    8681  Int       m_aiPad[2];                                       ///< number of padded pixels for width and height
    8782 
     
    10095  Int       m_extraRPSs[MAX_VIEW_NUM];
    10196  GOPEntryMvc m_GOPListsMvc[MAX_VIEW_NUM][MAX_GOP+1];
    102 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
    10397  Int       m_numReorderPics[MAX_VIEW_NUM][MAX_TLAYER];       ///< total number of reorder pictures
    10498  Int       m_maxDecPicBuffering[MAX_VIEW_NUM][MAX_TLAYER];   ///< total number of reference pictures needed for decoding
    105 #else
    106   Int       m_numReorderFrames;                               ///< total number of reorder pictures
    107   Int       m_maxNumberOfReferencePictures;                   ///< total number of reference pictures needed for decoding
    108 #endif
    10999  Bool      m_bUseLComb;                                      ///< flag for using combined reference list for uni-prediction in B-slices (JCTVC-D421)
    110100  Bool      m_bLCMod;                                         ///< flag for specifying whether the combined reference list for uni-prediction in B-slices is uploaded explicitly
     
    136126  Int       m_iQPAdaptationRange;                             ///< dQP range by QP adaptation
    137127 
    138 #if H0566_TLA
    139128  Int       m_maxTempLayer[MAX_VIEW_NUM];                     ///< Max temporal layer
    140 #else
    141   Bool      m_bTLayering;                                     ///< indicates whether temporal IDs are set based on the hierarchical coding structure
    142   Bool      m_abTLayerSwitchingFlag[MAX_TLAYER];              ///< temporal layer switching flags corresponding to each temporal layer
    143 #endif
    144129
    145130  // coding unit (CU) definition
     
    170155  vector<Bool> m_abUseSAO;
    171156#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
    172160  Bool      m_bUseIC;                                     ///< flag for using illumination compensation for inter-view prediction
    173161#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
    175166  Int       m_maxNumOffsetsPerPic;                            ///< SAO maximun number of offset per picture
    176167  Bool      m_saoInterleavingFlag;                            ///< SAO interleaving flag
    177 #endif
    178168  // coding tools (loop filter)
    179169  vector<Bool> m_abUseALF;                                    ///< flag for using adaptive loop filter [0] - video, [1] - depth
     
    181171 
    182172  Int       m_iALFMaxNumberFilters;                           ///< ALF Max Number Filters in one picture
    183 #if LCU_SYNTAX_ALF
    184173  Bool      m_bALFParamInSlice;
    185174  Bool      m_bALFPicBasedEncode;
    186 #endif
    187175
    188176  vector<Bool> m_abLoopFilterDisable;                         ///< flag for using deblocking filter filter [0] - video, [1] - depth
     
    190178  Int       m_loopFilterBetaOffsetDiv2;                     ///< beta offset for deblocking filter
    191179  Int       m_loopFilterTcOffsetDiv2;                       ///< tc offset for deblocking filter
    192 #if DBL_CONTROL
    193180  Bool      m_DeblockingFilterControlPresent;                 ///< deblocking filter control present flag in PPS
    194 #endif
    195181 
    196182  Bool      m_bUseLMChroma;                                  ///< JL: Chroma intra prediction based on luma signal
     
    226212  UInt      m_uiPredDepthMapGeneration;                       ///< using of (virtual) depth maps for texture coding
    227213#endif
    228 #if HHI_INTER_VIEW_MOTION_PRED
     214#if H3D_IVMP
    229215  UInt      m_uiMultiviewMvPredMode;                          ///< usage of predictors for multi-view mv prediction
    230216  UInt      m_uiMultiviewMvRegMode;                           ///< regularization for multiview motion vectors
    231217  Double    m_dMultiviewMvRegLambdaScale;                     ///< lambda scale for multiview motion vectors regularization
    232218#endif
    233 #if HHI_INTER_VIEW_RESIDUAL_PRED
     219#if H3D_IVRP
    234220  UInt      m_uiMultiviewResPredMode;          ///< using multiview residual prediction
    235221#endif
    236222
    237 #if FAST_DECISION_FOR_MRG_RD_COST
    238223  Bool      m_useFastDecisionForMerge;         ///< flag for using Fast Decision Merge RD-Cost
    239 #endif
    240224  Bool      m_bUseCbfFastMode;                 ///< flag for using Cbf Fast PU Mode Decision
    241225  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
     
    250234  Int       m_iColumnRowInfoPresent;
    251235  Int       m_iUniformSpacingIdr;
    252 #if !REMOVE_TILE_DEPENDENCE
    253   Int       m_iTileBoundaryIndependenceIdr;
    254 #endif
    255236  Int       m_iNumColumnsMinus1;
    256237  char*     m_pchColumnWidth;
     
    280261#endif
    281262
    282 #if MULTIBITS_DATA_HIDING
    283263  Int       m_signHideFlag;
    284264  Int       m_signHidingThreshold;
    285 #endif
    286265#if HHI_MPI
    287266  Bool      m_bUseMVI;  ///< flag for using Motion Vector Inheritance for depth map coding
  • trunk/source/App/TAppEncoder/TAppEncTop.cpp

    r210 r296  
    9797    m_acTEncTopList[iViewIdx]->setSourceWidth                  ( m_iSourceWidth );
    9898    m_acTEncTopList[iViewIdx]->setSourceHeight                 ( m_iSourceHeight );
    99 #if PIC_CROPPING
    10099    m_acTEncTopList[iViewIdx]->setCroppingMode                 ( m_croppingMode );
    101100    m_acTEncTopList[iViewIdx]->setCropLeft                     ( m_cropLeft );
     
    103102    m_acTEncTopList[iViewIdx]->setCropTop                      ( m_cropTop );
    104103    m_acTEncTopList[iViewIdx]->setCropBottom                   ( m_cropBottom );
    105 #endif
    106104    m_acTEncTopList[iViewIdx]->setFrameToBeEncoded             ( m_iFrameToBeEncoded );
    107105    m_acTEncTopList[iViewIdx]->setViewId                       ( iViewIdx );
     
    121119    m_cVPS.setDependentFlag                                    ( iViewIdx ? true:false, layerId );
    122120    m_cVPS.setDependentLayer                                   ( layerId - (m_bUsingDepthMaps ? 2:1), layerId );
     121#if INTER_VIEW_VECTOR_SCALING_C0115
     122    m_cVPS.setIVScalingFlag                                    ( m_bUseIVS );
     123#endif
    123124#endif
    124125   
     
    135136    m_acTEncTopList[iViewIdx]->setGopList                      ( m_GOPListsMvc[iViewIdx] );
    136137    m_acTEncTopList[iViewIdx]->setExtraRPSs                    ( m_extraRPSs[iViewIdx] );
    137 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
    138138    for(Int i = 0; i < MAX_TLAYER; i++)
    139139    {
     
    141141      m_acTEncTopList[iViewIdx]->setMaxDecPicBuffering         ( m_maxDecPicBuffering[iViewIdx][i], i );
    142142    }
    143 #else
    144     m_acTEncTopList[iViewIdx]->setNumReorderFrames             ( m_numReorderFrames );
    145     m_acTEncTopList[iViewIdx]->setMaxNumberOfReferencePictures ( m_maxNumberOfReferencePictures );
    146 #endif
    147143    for( UInt uiLoop = 0; uiLoop < MAX_TLAYER; ++uiLoop )
    148144    {
     
    154150    m_acTEncTopList[iViewIdx]->setPad                          ( m_aiPad );
    155151   
    156 #if H0566_TLA
    157152    m_acTEncTopList[iViewIdx]->setMaxTempLayer                 ( m_maxTempLayer[iViewIdx] );
    158 #else
    159     m_acTEncTopList[iViewIdx]->setTLayering                    ( m_bTLayering );
    160     m_acTEncTopList[iViewIdx]->setTLayerSwitchingFlag          ( m_abTLayerSwitchingFlag );
    161 #endif
    162153
    163154    m_acTEncTopList[iViewIdx]->setDisInter4x4                  ( m_bDisInter4x4);
     
    173164    m_acTEncTopList[iViewIdx]->setLoopFilterBetaOffset         ( m_loopFilterBetaOffsetDiv2  );
    174165    m_acTEncTopList[iViewIdx]->setLoopFilterTcOffset           ( m_loopFilterTcOffsetDiv2    );
    175 #if DBL_CONTROL
    176166    m_acTEncTopList[iViewIdx]->setDeblockingFilterControlPresent( m_DeblockingFilterControlPresent);
    177 #endif
    178167
    179168  //====== Motion search ========
     
    198187#if LOSSLESS_CODING
    199188    Int lowestQP;
    200 #if H0736_AVC_STYLE_QP_RANGE
    201189    lowestQP =  - ( (Int)(6*(g_uiBitDepth + g_uiBitIncrement - 8)) );
    202 #else
    203     lowestQP = 0;
    204 #endif
    205190    if ((m_iMaxDeltaQP == 0 ) && (m_aiQP[0] == lowestQP) && (m_useLossless == true))
    206191    {
     
    232217    m_acTEncTopList[iViewIdx]->setPdmOffset                    (       m_cCameraData.getPdmOffset        () );
    233218#endif
    234 #if HHI_INTER_VIEW_MOTION_PRED
     219#if H3D_IVMP
    235220    m_acTEncTopList[iViewIdx]->setMultiviewMvPredMode          ( m_uiMultiviewMvPredMode );
    236221    m_acTEncTopList[iViewIdx]->setMultiviewMvRegMode           ( iViewIdx ? m_uiMultiviewMvRegMode       : 0   );
    237222    m_acTEncTopList[iViewIdx]->setMultiviewMvRegLambdaScale    ( iViewIdx ? m_dMultiviewMvRegLambdaScale : 0.0 );
    238223#endif
    239 #if HHI_INTER_VIEW_RESIDUAL_PRED
     224#if H3D_IVRP
    240225    m_acTEncTopList[iViewIdx]->setMultiviewResPredMode         ( m_uiMultiviewResPredMode );
    241226#endif
     
    257242    m_acTEncTopList[iViewIdx]->setdQPs                         ( m_aidQP        );
    258243    m_acTEncTopList[iViewIdx]->setUseRDOQ                      ( m_abUseRDOQ[0] );
    259 #if !PIC_CROPPING
    260     m_acTEncTopList[iViewIdx]->setUsePAD                       ( m_bUsePAD      );
    261 #endif
    262244    m_acTEncTopList[iViewIdx]->setQuadtreeTULog2MaxSize        ( m_uiQuadtreeTULog2MaxSize );
    263245    m_acTEncTopList[iViewIdx]->setQuadtreeTULog2MinSize        ( m_uiQuadtreeTULog2MinSize );
     
    266248    m_acTEncTopList[iViewIdx]->setUseFastEnc                   ( m_bUseFastEnc  );
    267249    m_acTEncTopList[iViewIdx]->setUseEarlyCU                   ( m_bUseEarlyCU  );
    268 #if FAST_DECISION_FOR_MRG_RD_COST
    269250    m_acTEncTopList[iViewIdx]->setUseFastDecisionForMerge      ( m_useFastDecisionForMerge  );
    270 #endif
    271251    m_acTEncTopList[iViewIdx]->setUseCbfFastMode               ( m_bUseCbfFastMode  );
    272252#if HHI_INTERVIEW_SKIP
     
    301281      m_acTEncTopList[iViewIdx]->setSliceArgument ( m_iSliceArgument * ( iNumPartInCU >> ( m_iSliceGranularity << 1 ) ) );
    302282    }
    303 #if FIXED_NUMBER_OF_TILES_SLICE_MODE
    304283    if(m_iSliceMode==AD_HOC_SLICES_FIXED_NUMBER_OF_TILES_IN_SLICE)
    305284    {
    306285      m_acTEncTopList[iViewIdx]->setSliceArgument ( m_iSliceArgument );
    307286    }
    308 #endif
    309287    m_acTEncTopList[iViewIdx]->setSliceGranularity        ( m_iSliceGranularity         );
    310288    if(m_iSliceMode == 0 )
     
    315293    m_acTEncTopList[iViewIdx]->setUseSAO               ( m_abUseSAO[0]     );
    316294#if LGE_ILLUCOMP_B0045
     295#if LGE_ILLUCOMP_DEPTH_C0046
     296    m_acTEncTopList[iViewIdx]->setUseIC                ( m_abUseIC[0]      );
     297#else
    317298    m_acTEncTopList[iViewIdx]->setUseIC                ( m_bUseIC          );
    318299#endif
    319 #if SAO_UNIT_INTERLEAVING
     300#endif
     301#if INTER_VIEW_VECTOR_SCALING_C0115
     302    m_acTEncTopList[iViewIdx]->setUseIVS               ( m_bUseIVS          );
     303#endif
    320304    m_acTEncTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic);
    321305    m_acTEncTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag);
    322 #endif
    323306    m_acTEncTopList[iViewIdx]->setPCMInputBitDepthFlag  ( m_bPCMInputBitDepthFlag);
    324307    m_acTEncTopList[iViewIdx]->setPCMFilterDisableFlag  ( m_bPCMFilterDisableFlag);
     
    328311    m_acTEncTopList[iViewIdx]->setColumnRowInfoPresent       ( m_iColumnRowInfoPresent );
    329312    m_acTEncTopList[iViewIdx]->setUniformSpacingIdr          ( m_iUniformSpacingIdr );
    330 #if !REMOVE_TILE_DEPENDENCE
    331     m_acTEncTopList[iViewIdx]->setTileBoundaryIndependenceIdr( m_iTileBoundaryIndependenceIdr );
    332 #endif
    333313    m_acTEncTopList[iViewIdx]->setNumColumnsMinus1           ( m_iNumColumnsMinus1 );
    334314    m_acTEncTopList[iViewIdx]->setNumRowsMinus1              ( m_iNumRowsMinus1 );
     
    347327    m_acTEncTopList[iViewIdx]->setMaxTileMarkerOffset         ( m_dMaxTileMarkerOffset );
    348328    m_acTEncTopList[iViewIdx]->setTileBehaviorControlPresentFlag( m_iTileBehaviorControlPresentFlag );
    349 #if !REMOVE_TILE_DEPENDENCE
    350     if(m_iTileBoundaryIndependenceIdr == 0 || uiTilesCount == 1)
    351 #else
    352329    if(uiTilesCount == 1)
    353 #endif
    354330    {
    355331      m_bLFCrossTileBoundaryFlag = true;
     
    366342    m_acTEncTopList[iViewIdx]->setUseScalingListId           ( m_useScalingListId  );
    367343    m_acTEncTopList[iViewIdx]->setScalingListFile            ( m_scalingListFile   );
    368 #if MULTIBITS_DATA_HIDING
    369344    m_acTEncTopList[iViewIdx]->setSignHideFlag(m_signHideFlag);
    370345    m_acTEncTopList[iViewIdx]->setTSIG(m_signHidingThreshold);
    371 #endif
    372 
    373 #if LCU_SYNTAX_ALF
     346
    374347    if(uiTilesCount > 1)
    375348    {
     
    379352    m_acTEncTopList[iViewIdx]->setALFParamInSlice              ( m_bALFParamInSlice);
    380353    m_acTEncTopList[iViewIdx]->setALFPicBasedEncode            ( m_bALFPicBasedEncode);
    381 #endif
    382354
    383355    //====== Depth tools ========
     
    435407      m_acTEncDepthTopList[iViewIdx]->setSourceWidth                  ( m_iSourceWidth );
    436408      m_acTEncDepthTopList[iViewIdx]->setSourceHeight                 ( m_iSourceHeight );
    437 #if PIC_CROPPING
    438409      m_acTEncDepthTopList[iViewIdx]->setCroppingMode                 ( m_croppingMode );
    439410      m_acTEncDepthTopList[iViewIdx]->setCropLeft                     ( m_cropLeft );
     
    441412      m_acTEncDepthTopList[iViewIdx]->setCropTop                      ( m_cropTop );
    442413      m_acTEncDepthTopList[iViewIdx]->setCropBottom                   ( m_cropBottom );
    443 #endif
    444414      m_acTEncDepthTopList[iViewIdx]->setFrameToBeEncoded             ( m_iFrameToBeEncoded );
    445415      m_acTEncDepthTopList[iViewIdx]->setViewId                       ( iViewIdx );
     
    470440      m_acTEncDepthTopList[iViewIdx]->setGopList                      ( m_GOPListsMvc[iViewIdx] );
    471441      m_acTEncDepthTopList[iViewIdx]->setExtraRPSs                    ( m_extraRPSs[iViewIdx] );
    472 #if H0567_DPB_PARAMETERS_PER_TEMPORAL_LAYER
    473442      for(Int i = 0; i < MAX_TLAYER; i++)
    474443      {
     
    476445        m_acTEncDepthTopList[iViewIdx]->setMaxDecPicBuffering         ( m_maxDecPicBuffering[iViewIdx][i], i );
    477446      }
    478 #else
    479       m_acTEncDepthTopList[iViewIdx]->setNumReorderFrames             ( m_numReorderFrames );
    480       m_acTEncDepthTopList[iViewIdx]->setMaxNumberOfReferencePictures ( m_maxNumberOfReferencePictures );
    481 #endif
    482447      for( UInt uiLoop = 0; uiLoop < MAX_TLAYER; ++uiLoop )
    483448      {
     
    489454      m_acTEncDepthTopList[iViewIdx]->setPad                          ( m_aiPad );
    490455
    491 #if H0566_TLA
    492456      m_acTEncDepthTopList[iViewIdx]->setMaxTempLayer                 ( m_maxTempLayer[iViewIdx] );
    493 #else
    494       m_acTEncDepthTopList[iViewIdx]->setTLayering                    ( m_bTLayering );
    495       m_acTEncDepthTopList[iViewIdx]->setTLayerSwitchingFlag          ( m_abTLayerSwitchingFlag );
    496 #endif
    497457
    498458      m_acTEncDepthTopList[iViewIdx]->setDisInter4x4                  ( m_bDisInter4x4);
     
    508468      m_acTEncDepthTopList[iViewIdx]->setLoopFilterBetaOffset         ( m_loopFilterBetaOffsetDiv2  );
    509469      m_acTEncDepthTopList[iViewIdx]->setLoopFilterTcOffset           ( m_loopFilterTcOffsetDiv2    );
    510 #if DBL_CONTROL
    511470      m_acTEncDepthTopList[iViewIdx]->setDeblockingFilterControlPresent( m_DeblockingFilterControlPresent);
    512 #endif
    513471
    514472      //====== Motion search ========
     
    550508      m_acTEncDepthTopList[iViewIdx]->setdQPs                         ( m_aidQPdepth   );
    551509      m_acTEncDepthTopList[iViewIdx]->setUseRDOQ                      ( m_abUseRDOQ[1] );
    552 #if !PIC_CROPPING
    553       m_acTEncDepthTopList[iViewIdx]->setUsePAD                       ( m_bUsePAD      );
    554 #endif
    555510      m_acTEncDepthTopList[iViewIdx]->setQuadtreeTULog2MaxSize        ( m_uiQuadtreeTULog2MaxSize );
    556511      m_acTEncDepthTopList[iViewIdx]->setQuadtreeTULog2MinSize        ( m_uiQuadtreeTULog2MinSize );
     
    559514      m_acTEncDepthTopList[iViewIdx]->setUseFastEnc                   ( m_bUseFastEnc  );
    560515      m_acTEncDepthTopList[iViewIdx]->setUseEarlyCU                   ( m_bUseEarlyCU  );
    561 #if FAST_DECISION_FOR_MRG_RD_COST
    562516      m_acTEncDepthTopList[iViewIdx]->setUseFastDecisionForMerge      ( m_useFastDecisionForMerge  );
    563 #endif
    564517      m_acTEncDepthTopList[iViewIdx]->setUseCbfFastMode               ( m_bUseCbfFastMode  );
    565518#if HHI_INTERVIEW_SKIP
     
    595548      m_acTEncDepthTopList[iViewIdx]->setPredDepthMapGeneration       ( 0 );
    596549#endif
    597 #if HHI_INTER_VIEW_MOTION_PRED
     550#if H3D_IVMP
    598551      m_acTEncDepthTopList[iViewIdx]->setMultiviewMvPredMode          ( 0 );
    599552      m_acTEncDepthTopList[iViewIdx]->setMultiviewMvRegMode           ( 0 );
    600553      m_acTEncDepthTopList[iViewIdx]->setMultiviewMvRegLambdaScale    ( 0.0 );
    601554#endif
    602 #if HHI_INTER_VIEW_RESIDUAL_PRED
     555#if H3D_IVRP
    603556      m_acTEncDepthTopList[iViewIdx]->setMultiviewResPredMode         ( 0 );
    604557#endif
     
    623576        m_acTEncDepthTopList[iViewIdx]->setSliceArgument ( m_iSliceArgument * ( iNumPartInCU >> ( m_iSliceGranularity << 1 ) ) );
    624577      }
    625 #if FIXED_NUMBER_OF_TILES_SLICE_MODE
    626578      if(m_iSliceMode==AD_HOC_SLICES_FIXED_NUMBER_OF_TILES_IN_SLICE)
    627579      {
    628580        m_acTEncDepthTopList[iViewIdx]->setSliceArgument ( m_iSliceArgument );
    629581      }
    630 #endif
    631582      m_acTEncDepthTopList[iViewIdx]->setSliceGranularity        ( m_iSliceGranularity         );
    632583      if(m_iSliceMode == 0 )
     
    639590      m_acTEncDepthTopList[iViewIdx]->setUseIC                ( false     );
    640591#endif
    641 #if SAO_UNIT_INTERLEAVING
     592#if INTER_VIEW_VECTOR_SCALING_C0115
     593     m_acTEncDepthTopList[iViewIdx]->setUseIVS                ( m_bUseIVS );
     594#endif
    642595      m_acTEncDepthTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic);
    643596      m_acTEncDepthTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag);
    644 #endif
    645597      m_acTEncDepthTopList[iViewIdx]->setPCMInputBitDepthFlag  ( m_bPCMInputBitDepthFlag);
    646598      m_acTEncDepthTopList[iViewIdx]->setPCMFilterDisableFlag  ( m_bPCMFilterDisableFlag);
     
    650602      m_acTEncDepthTopList[iViewIdx]->setColumnRowInfoPresent       ( m_iColumnRowInfoPresent );
    651603      m_acTEncDepthTopList[iViewIdx]->setUniformSpacingIdr          ( m_iUniformSpacingIdr );
    652 #if !REMOVE_TILE_DEPENDENCE
    653       m_acTEncDepthTopList[iViewIdx]->setTileBoundaryIndependenceIdr( m_iTileBoundaryIndependenceIdr );
    654 #endif
    655604      m_acTEncDepthTopList[iViewIdx]->setNumColumnsMinus1           ( m_iNumColumnsMinus1 );
    656605      m_acTEncDepthTopList[iViewIdx]->setNumRowsMinus1              ( m_iNumRowsMinus1 );
     
    669618      m_acTEncDepthTopList[iViewIdx]->setMaxTileMarkerOffset         ( m_dMaxTileMarkerOffset );
    670619      m_acTEncDepthTopList[iViewIdx]->setTileBehaviorControlPresentFlag( m_iTileBehaviorControlPresentFlag );
    671 #if !REMOVE_TILE_DEPENDENCE
    672       if(m_iTileBoundaryIndependenceIdr == 0 || uiTilesCount == 1)
    673 #else
    674620      if(uiTilesCount == 1)
    675 #endif
    676621      {
    677622        m_bLFCrossTileBoundaryFlag = true;
     
    688633      m_acTEncDepthTopList[iViewIdx]->setUseScalingListId           ( m_useScalingListId  );
    689634      m_acTEncDepthTopList[iViewIdx]->setScalingListFile            ( m_scalingListFile   );
    690 #if MULTIBITS_DATA_HIDING
    691635      m_acTEncDepthTopList[iViewIdx]->setSignHideFlag(m_signHideFlag);
    692636      m_acTEncDepthTopList[iViewIdx]->setTSIG(m_signHidingThreshold);
    693 #endif
    694 
    695 #if LCU_SYNTAX_ALF
     637
    696638      if(uiTilesCount > 1)
    697639      {
     
    701643      m_acTEncDepthTopList[iViewIdx]->setALFParamInSlice              ( m_bALFParamInSlice);
    702644      m_acTEncDepthTopList[iViewIdx]->setALFPicBasedEncode            ( m_bALFPicBasedEncode);
    703 #endif
    704645
    705646  //====== Depth tools ========
     
    728669  }
    729670
    730 #if HHI_INTER_VIEW_MOTION_PRED
     671#if H3D_IVMP
    731672  else if( m_uiMultiviewMvRegMode )
    732673  {
     
    815756      m_acTEncDepthTopList[iViewIdx]->create();
    816757    }
    817 #if HHI_INTER_VIEW_MOTION_PRED
     758#if H3D_IVMP
    818759    else if( m_uiMultiviewMvRegMode )
    819760    {
     
    931872  TComPicYuv*       pcPicYuvRec = NULL;
    932873  TComPicYuv*       pcDepthPicYuvRec = NULL;
    933  
     874
    934875  // initialize internal class & member variables
    935876  xInitLibCfg();
     
    962903  pcDepthPicYuvOrg->create( m_iSourceWidth, m_iSourceHeight, m_uiMaxCUWidth, m_uiMaxCUHeight, m_uiMaxCUDepth );
    963904
    964 #if HHI_INTER_VIEW_MOTION_PRED
     905#if H3D_IVMP
    965906  if( m_uiMultiviewMvRegMode )
    966907  {
     
    982923        m_acTVideoIOYuvInputFileList[iViewIdx]->read( pcPicYuvOrg, m_aiPad );
    983924     
    984 #if HHI_INTER_VIEW_MOTION_PRED
     925#if H3D_IVMP
    985926        if( m_uiMultiviewMvRegMode && iViewIdx )
    986927        {
     
    989930#endif
    990931
    991 #if HHI_INTER_VIEW_MOTION_PRED
     932#if H3D_IVMP
    992933        m_acTEncTopList[iViewIdx]->initNewPic( pcPicYuvOrg, ( m_uiMultiviewMvRegMode && iViewIdx ? pcPdmDepthOrg : 0 ) );
    993934#else
     
    1033974      if ( iNextPoc < m_iFrameToBeEncoded )
    1034975      {
    1035       m_cCameraData.update( iNextPoc );
     976        m_cCameraData.update( iNextPoc );
    1036977      }
    1037978#endif
     
    10961037#endif
    10971038        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
    10981052        // call encoding function for one frame
    10991053        m_acTEncTopList[iViewIdx]->encode( eos[iViewIdx], pcPicYuvOrg, *m_picYuvRec[iViewIdx], outputAccessUnits, iNumEncoded, gopId );
     
    11031057        {
    11041058          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
    11051070          // call encoding function for one depth frame
    11061071          m_acTEncDepthTopList[iViewIdx]->encode( depthEos[iViewIdx], pcDepthPicYuvOrg, *m_picYuvDepthRec[iViewIdx], outputAccessUnits, iNumDepthEncoded, gopId );
     
    11141079#endif
    11151080
    1116 #if HHI_INTERVIEW_SKIP || HHI_INTER_VIEW_MOTION_PRED || HHI_INTER_VIEW_RESIDUAL_PRED
     1081#if HHI_INTERVIEW_SKIP || H3D_IVMP || H3D_IVRP
    11171082      for( Int iViewIdx = 0; iViewIdx < m_iNumberOfViews; iViewIdx++ )
    11181083      {
     
    11471112 
    11481113#if !QC_MVHEVC_B0046
    1149 #if FIX_DEL_NULLPTR
    11501114  if ( pcPdmDepthOrg != NULL && m_uiMultiviewMvRegMode )
    1151 #else
    1152   if ( pcPdmDepthOrg != NULL )
    1153 #endif
    11541115  {
    11551116    pcPdmDepthOrg->destroy();
     
    12921253        if (m_pchReconFileList[iViewIdx])
    12931254        {
    1294 #if PIC_CROPPING
    12951255          m_acTVideoIOYuvReconFileList[iViewIdx]->write( pcPicYuvRec, m_cropLeft, m_cropRight, m_cropTop, m_cropBottom );
    1296 #else
    1297           m_acTVideoIOYuvReconFileList[iViewIdx]->write( pcPicYuvRec, m_aiPad );
    1298 #endif
    12991256        }
    13001257      }
     
    13031260        if (m_pchDepthReconFileList[iViewIdx])
    13041261        {
    1305 #if PIC_CROPPING
    13061262          m_acTVideoIOYuvDepthReconFileList[iViewIdx]->write( pcPicYuvRec, m_cropLeft, m_cropRight, m_cropTop, m_cropBottom );
    1307 #else
    1308           m_acTVideoIOYuvDepthReconFileList[iViewIdx]->write( pcPicYuvRec, m_aiPad );
    1309 #endif
    13101263        }
    13111264      }
     
    13601313    {
    13611314    case NAL_UNIT_CODED_SLICE:
    1362 #if H0566_TLA
    13631315#if !QC_REM_IDV_B0046
    13641316    case NAL_UNIT_CODED_SLICE_IDV:
     
    13661318    case NAL_UNIT_CODED_SLICE_TLA:
    13671319    case NAL_UNIT_CODED_SLICE_CRA:
    1368 #else
    1369     case NAL_UNIT_CODED_SLICE_DATAPART_A:
    1370     case NAL_UNIT_CODED_SLICE_DATAPART_B:
    1371     case NAL_UNIT_CODED_SLICE_CDR:
    1372 #endif
    13731320    case NAL_UNIT_CODED_SLICE_IDR:
    13741321    case NAL_UNIT_SPS:
     
    16341581#endif
    16351582
     1583#if MERL_VSP_C0152
     1584Void 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
    16361610//! \}
  • trunk/source/App/TAppEncoder/TAppEncTop.h

    r210 r296  
    9999  TRenTop  m_cUsedPelsRenderer;                               ///< renderer for used pels map
    100100#endif
     101
    101102protected:
    102103  // initialization
     
    165166#endif
    166167
     168#if MERL_VSP_C0152
     169  Void setBWVSPLUT( Int iCodedViewIdx, Int gopId, Bool isDepth);
     170#endif
    167171};// END CLASS DEFINITION TAppEncTop
    168172
Note: See TracChangeset for help on using the changeset viewer.