Changeset 773 in 3DVCSoftware for trunk/source/App


Ignore:
Timestamp:
16 Jan 2014, 09:56:13 (11 years ago)
Author:
tech
Message:

Merged branch/9.2-dev0@722.

Location:
trunk/source/App
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/App/TAppDecoder/TAppDecCfg.cpp

    r738 r773  
    8585  ("OutputBitDepthC,d", m_outputBitDepthC, 0, "bit depth of YUV output chroma component (default: use 0 for native depth)")
    8686#if H_MV
    87 #if H_MV_6_HRD_O0217_13
    8887  ("TargetOptLayerSetIdx,x", m_targetOptLayerSetIdx, -1, "Target output layer set index. (default: -1, determine automatically to be equal to highest layer set index") // Should actually equal to 0 as default. However, this would cause only the base layer to be decoded. 
    89 #else
    90   ("MaxLayerId,-ls", m_maxLayerId, MAX_NUM_LAYER_IDS-1, "Maximum LayerId to be decoded.")
    91 #endif
    9288#endif
    9389  ("MaxTemporalLayer,t", m_iMaxTemporalLayer, -1, "Maximum Temporal Layer to be decoded. -1 to decode all layers")
     
    128124  if ( !cfg_TargetDecLayerIdSetFile.empty() )
    129125  {
    130 #if H_MV_6_HRD_O0217_13
     126#if H_MV
    131127    m_targetDecLayerIdSetFileEmpty = false;     
    132128#endif
     
    174170  }
    175171#if H_MV
    176 #if H_MV_6_HRD_O0217_13
    177172  m_targetDecLayerIdSet.push_back( 0 );         // Only base layer at startup
    178 #else
    179   else
    180   {
    181     for ( Int curLayerId = 0; curLayerId <= m_maxLayerId; curLayerId++ )
    182     {
    183       m_targetDecLayerIdSet.push_back( curLayerId );
    184     }
    185   }
    186 #endif
    187173#endif
    188174
  • trunk/source/App/TAppDecoder/TAppDecCfg.h

    r738 r773  
    5959  Char*         m_pchBitstreamFile;                   ///< input bitstream file name
    6060#if H_MV
    61 #if H_MV_6_HRD_O0217_13
    6261  Int           m_targetOptLayerSetIdx;               ///< target output layer set index
    63 #endif
    6462  Int           m_maxLayerId;                         ///< maximum nuh_layer_id decoded
    6563  std::vector<Char*> m_pchReconFiles;                 ///< array of output reconstruction file name create from output reconstruction file name
     
    7775
    7876  std::vector<Int> m_targetDecLayerIdSet;             ///< set of LayerIds to be included in the sub-bitstream extraction process.
    79 #if H_MV_6_HRD_O0217_13
     77#if H_MV
    8078  Bool          m_targetDecLayerIdSetFileEmpty;      ///< indication if target layers are given by file
    8179#endif
     
    8886  TAppDecCfg()
    8987  : m_pchBitstreamFile(NULL)
    90 #if H_MV
    91 #if !H_MV_6_HRD_O0217_13
    92   , m_maxLayerId(0)
    93 #endif
    94 #endif
    9588  , m_pchReconFile(NULL)
    9689  , m_iSkipFrame(0)
     
    9992  , m_iMaxTemporalLayer(-1)
    10093  , m_decodedPictureHashSEIEnabled(0)
    101 #if H_MV_6_HRD_O0217_13
     94#if H_MV
    10295  , m_targetDecLayerIdSetFileEmpty(true)
    10396#endif
  • trunk/source/App/TAppDecoder/TAppDecTop.cpp

    r738 r773  
    6161{
    6262#if H_MV
    63 #if H_MV_LAYER_WISE_STARTUP
    6463  for (Int i = 0; i < MAX_NUM_LAYER_IDS; i++)
    6564  {
     
    6766    m_layerInitilizedFlags[i] = false;
    6867  }
    69 #else
    70   for (Int i = 0; i < MAX_NUM_LAYER_IDS; i++) m_layerIdToDecIdx[i] = -1;
    71 #endif
    7268#endif
    7369#if H_3D
     
    192188    Bool newSliceDiffPoc   = false;
    193189    Bool newSliceDiffLayer = false;
    194 #if H_MV_FIX_SKIP_PICTURES
    195190    Bool sliceSkippedFlag = false;
    196 #endif
    197191#if H_3D
    198192    Bool allLayersDecoded  = false;     
     
    212206      read(nalu, nalUnit);
    213207#if H_MV     
    214 #if !H_MV_6_HRD_O0217_13
    215       Int decIdx     = xGetDecoderIdx( nalu.m_layerId , true );
    216 #endif
    217 #if H_MV_6_LAYER_ID_32
    218208      if( (m_iMaxTemporalLayer >= 0 && nalu.m_temporalId > m_iMaxTemporalLayer) || !isNaluWithinTargetDecLayerIdSet(&nalu) || nalu.m_layerId > MAX_NUM_LAYER_IDS-1 )
    219 #else           
    220       if( (m_iMaxTemporalLayer >= 0 && nalu.m_temporalId > m_iMaxTemporalLayer) || !isNaluWithinTargetDecLayerIdSet(&nalu) )
    221 #endif
    222209      {
    223210        bNewPicture = false;
    224 #if H_MV_6_LAYER_ID_32
    225211        if ( !bitstreamFile )
    226212        {
    227213          decIdxLastPic     = decIdxCurrPic;
    228214        }
    229 #endif
    230215      }
    231216      else
    232217      {
    233 #if H_MV_6_HRD_O0217_13
    234218        Int decIdx     = xGetDecoderIdx( nalu.m_layerId , true );     
    235 #endif
    236219        newSliceDiffLayer = nalu.isSlice() && ( nalu.m_layerId != layerIdCurrPic ) && !firstSlice;
    237 #if H_MV_FIX_SKIP_PICTURES
    238220        newSliceDiffPoc   = m_tDecTop[decIdx]->decode(nalu, m_iSkipFrame, m_pocLastDisplay[decIdx], newSliceDiffLayer, sliceSkippedFlag );
    239 #else
    240         newSliceDiffPoc   = m_tDecTop[decIdx]->decode(nalu, m_iSkipFrame, m_pocLastDisplay[decIdx], newSliceDiffLayer );
    241 #endif
    242221        // decode function only returns true when all of the following conditions are true
    243222        // - poc in particular layer changes
     
    245224        // - nalu.isSlice() == true     
    246225
    247 #if H_MV_6_HRD_O0217_13
    248226        // Update TargetDecLayerIdList only when not specified by layer id file, specification by file might actually out of conformance.
    249227        if (nalu.m_nalUnitType == NAL_UNIT_VPS && m_targetDecLayerIdSetFileEmpty )
     
    258236          m_targetDecLayerIdSet = vps->getTargetDecLayerIdList( m_targetOptLayerSetIdx );
    259237        }
    260 #endif
    261 #if H_MV_FIX_SKIP_PICTURES
    262238        bNewPicture       = ( newSliceDiffLayer || newSliceDiffPoc ) && !sliceSkippedFlag;
    263239        if ( nalu.isSlice() && firstSlice && !sliceSkippedFlag )       
    264 #else
    265         bNewPicture       = newSliceDiffLayer || newSliceDiffPoc;
    266 
    267         if ( nalu.isSlice() && firstSlice )
    268 #endif
    269240        {
    270241          layerIdCurrPic = nalu.m_layerId;
     
    881852  Int decIdx = -1;
    882853
    883 #if H_MV_6_LAYER_ID_32
    884854  if ( layerId > MAX_NUM_LAYER_IDS-1 ) 
    885855  {
    886856    return decIdx;
    887857  }
    888 #endif
    889858
    890859  if ( m_layerIdToDecIdx[ layerId ] != -1 )
     
    906875    m_tDecTop[ decIdx ]->setDecodedPictureHashSEIEnabled(m_decodedPictureHashSEIEnabled);
    907876    m_tDecTop[ decIdx ]->setIvPicLists( &m_ivPicLists );
    908 #if H_MV_LAYER_WISE_STARTUP
    909877    m_tDecTop[ decIdx ]->setLayerInitilizedFlags( m_layerInitilizedFlags );
    910 #endif
    911878
    912879#if H_3D
  • trunk/source/App/TAppDecoder/TAppDecTop.h

    r738 r773  
    6767  Int                             m_numDecoders;                               ///< number of decoder instances
    6868  TComPicLists                    m_ivPicLists;                                ///< picture buffers of decoder instances
    69 #if H_MV_LAYER_WISE_STARTUP
    7069  Bool                            m_layerInitilizedFlags[ MAX_NUM_LAYER_IDS ]; ///< for layerwise startup
    71 #endif
    7270
    7371#else
  • trunk/source/App/TAppEncoder/TAppEncCfg.cpp

    r738 r773  
    378378#if H_3D_DIM
    379379  ("DMM",                   m_useDMM,           true,  "Depth intra model modes")
    380 #if !SEC_DMM3_RBC_F0147
    381   ("RBC",                   m_useRBC,           true,  "Region boundary chain mode")
    382 #endif
    383380  ("SDC",                   m_useSDC,           true,  "Simplified depth coding")
    384381  ("DLT",                   m_useDLT,           true,  "Depth lookup table")
     
    391388  ("VpsNumLayerSets",       m_vpsNumLayerSets    , 1                    , "Number of layer sets")   
    392389  ("LayerIdsInSet_%d",      m_layerIdsInSets     , std::vector<Int>(1,0), MAX_VPS_OP_SETS_PLUS1 ,"LayerIds of Layer set") 
    393 #if H_MV_6_PS_0109_25
    394390  ("DefaultOneTargetOutputLayerFlag"  , m_defaultOneTargetOutputLayerIdc  , 0, "Output highest layer of layer sets by default")
    395 #else
    396   ("DefaultOneTargetOutputLayerFlag", m_defaultOneTargetOutputLayerFlag,  false , "Output highest layer of layer sets by default")     
    397 #endif
    398391  ("OutputLayerSetIdx",     m_outputLayerSetIdx  , std::vector<Int>(0,0), "Indices of layer sets used as additional output layer sets") 
    399392  ("LayerIdsInAddOutputLayerSet_%d", m_layerIdsInAddOutputLayerSet      , std::vector<Int>(1,0), MAX_VPS_ADD_OUTPUT_LAYER_SETS, "LayerIds of additional output layers") 
     
    451444  ("QuadtreeTUMaxDepthIntra", m_uiQuadtreeTUMaxDepthIntra, 1u, "Depth of TU tree for intra CUs")
    452445  ("QuadtreeTUMaxDepthInter", m_uiQuadtreeTUMaxDepthInter, 2u, "Depth of TU tree for inter CUs")
    453  
    454446  // Coding structure parameters
    455 #if H_MV_LAYER_WISE_STARTUP
     447#if H_MV 
    456448  ("IntraPeriod,-ip",         m_iIntraPeriod,std::vector<Int>(1,-1), "Intra period in frames, (-1: only first frame), per layer")
    457449#else
    458   ("IntraPeriod,-ip",         m_iIntraPeriod,              -1, "Intra period in frames, (-1: only first frame)")
     450("IntraPeriod,-ip",         m_iIntraPeriod,              -1, "Intra period in frames, (-1: only first frame)")
    459451#endif
    460452  ("DecodingRefreshType,-dr", m_iDecodingRefreshType,       0, "Intra refresh type (0:none 1:CRA 2:IDR)")
     
    518510  ("AdvMultiviewResPred",      m_uiUseAdvResPred,           (UInt)1, "Usage of Advanced Residual Prediction" )
    519511#endif
    520 #if MTK_SPIVMP_F0110
     512#if H_3D_SPIVMP
    521513  ("SubPULog2Size", m_iSubPULog2Size, (Int)3, "Sub-PU size index: 2^n")
    522514#endif
    523515
    524516#if H_3D_IC
    525 #if SEC_ONLY_TEXTURE_IC_F0151
    526517  ("IlluCompEnable",           m_abUseIC, true, "Enable illumination compensation")
    527 #else
    528   ("IlluCompEnable",           m_abUseIC, std::vector<Bool>(2, true), "Enable illumination compensation")
    529 #endif
    530518#endif
    531519#if H_3D_INTER_SDC
    532520  ("InterSDC",                 m_bDepthInterSDCFlag,        true, "Enable depth inter SDC")
    533521#endif
    534 #if SEC_MPI_ENABLING_MERGE_F0150
     522#if H_3D_IV_MERGE
    535523  ("MPI",                      m_bMPIFlag,        true, "Enable MPI")
    536524#endif
     
    633621#if H_MV
    634622
    635 #if H_MV_6_HRD_O0217_13
    636623  // DBP Size
    637624  ("SubLayerFlagInfoPresentFlag",  m_subLayerFlagInfoPresentFlag , false                                           , "SubLayerFlagInfoPresentFlag")
    638 #endif
    639625  // VPS VUI
    640626  ("VpsVuiPresentFlag"           , m_vpsVuiPresentFlag           , false                                           , "VpsVuiPresentFlag           ")
    641 #if H_MV_6_PS_O0223_29
    642627  ("CrossLayerPicTypeAlignedFlag", m_crossLayerPicTypeAlignedFlag, false                                           , "CrossLayerPicTypeAlignedFlag")  // Could actually be derived by the encoder
    643628  ("CrossLayerIrapAlignedFlag"   , m_crossLayerIrapAlignedFlag   , false                                           , "CrossLayerIrapAlignedFlag   ")  // Could actually be derived by the encoder
    644 #endif
    645629  ("BitRatePresentVpsFlag"       , m_bitRatePresentVpsFlag       , false                                           , "BitRatePresentVpsFlag       ")
    646630  ("PicRatePresentVpsFlag"       , m_picRatePresentVpsFlag       , false                                           , "PicRatePresentVpsFlag       ")
     
    651635  ("ConstantPicRateIdc"          , m_constantPicRateIdc          , std::vector< Int  >(1,0)  ,MAX_VPS_OP_SETS_PLUS1, "ConstantPicRateIdc per sub layer for the N-th layer set")
    652636  ("AvgPicRate"                  , m_avgPicRate                  , std::vector< Int  >(1,0)  ,MAX_VPS_OP_SETS_PLUS1, "AvgPicRate         per sub layer for the N-th layer set")
    653 #if H_MV_6_O0226_37
    654637  ("TilesNotInUseFlag"            , m_tilesNotInUseFlag            , true                                          , "TilesNotInUseFlag            ")
    655638  ("TilesInUseFlag"               , m_tilesInUseFlag               , std::vector< Bool >(1,false)                   , "TilesInUseFlag               ")
     
    657640  ("WppNotInUseFlag"              , m_wppNotInUseFlag              , true                                          , "WppNotInUseFlag              ")
    658641  ("WppInUseFlag"                 , m_wppInUseFlag                 , std::vector< Bool >(1,0)                      , "WppInUseFlag                 ")
    659 #endif
    660642  ("TileBoundariesAlignedFlag"   , m_tileBoundariesAlignedFlag   , std::vector< Bool >(1,0)  ,MAX_NUM_LAYERS       , "TileBoundariesAlignedFlag    per direct reference for the N-th layer")
    661643  ("IlpRestrictedRefLayersFlag"  , m_ilpRestrictedRefLayersFlag  , false                                           , "IlpRestrictedRefLayersFlag")
     
    787769#endif
    788770#if H_3D_IV_MERGE
    789 #if QC_DEPTH_IV_MRG_F0125 
    790771  ("IvMvPred",                        m_ivMvPredFlag            , std::vector<Bool>(2, true)            , "inter view motion prediction " )
    791 #else
    792   ("IvMvPred",                        m_ivMvPredFlag,           true            , "inter view motion prediction " ) 
    793 #endif
    794772#endif
    795773#if H_3D_NBDV_REF
     
    10741052  xResizeVector( m_bLoopFilterDisable );
    10751053  xResizeVector( m_bUseSAO );
    1076 #if H_MV_LAYER_WISE_STARTUP
    10771054  xResizeVector( m_iIntraPeriod );
    1078 #endif
    1079 #if H_MV_6_O0226_37
    10801055  xResizeVector( m_tilesInUseFlag );
    10811056  xResizeVector( m_loopFilterNotAcrossTilesFlag );
    10821057  xResizeVector( m_wppInUseFlag );
    1083 #endif
    10841058#else
    10851059  m_aidQP = new Int[ m_framesToBeEncoded + m_iGOPSize + 1 ];
     
    14261400    for ( Int i = 0; i < m_layerIdsInSets[lsIdx].size(); i++ )
    14271401    {
    1428 #if H_MV_6_LAYER_ID_32
    14291402      xConfirmPara( m_layerIdsInSets[lsIdx][i] < 0 || m_layerIdsInSets[lsIdx].size() >= MAX_NUM_LAYER_IDS, "LayerIdsInSet must be greater than and less than MAX_NUM_LAYER_IDS" );
    1430 #else
    1431       xConfirmPara( m_layerIdsInSets[lsIdx][i] < 0 || m_layerIdsInSets[lsIdx].size() >= MAX_NUM_LAYER_IDS, "LayerIdsInSet must be greater than and less than 64" );
    1432 #endif
    14331403    }
    14341404  }
     
    14561426  }
    14571427
    1458 #if H_MV_6_PS_0109_25
    14591428  xConfirmPara( m_defaultOneTargetOutputLayerIdc < 0 || m_defaultOneTargetOutputLayerIdc > 1, "Default one target output layer idc must be equal to 0 or equal to 1" );
    1460 #endif
    14611429  xConfirmPara( m_profileLevelTierIdx.size() < m_vpsNumLayerSets + m_outputLayerSetIdx.size(), "The number of Profile Level Tier indices must be equal to the number of layer set plus the number of output layer set indices" );
    14621430
     
    14751443  xConfirmPara( m_iGOPSize < 1 ,                                                            "GOP Size must be greater or equal to 1" );
    14761444  xConfirmPara( m_iGOPSize > 1 &&  m_iGOPSize % 2,                                          "GOP Size must be a multiple of 2, if GOP Size is greater than 1" );
    1477 #if H_MV_LAYER_WISE_STARTUP
     1445#if H_MV
    14781446  for( Int layer = 0; layer < m_numberOfLayers; layer++ )
    14791447  {
     
    15081476  if (m_iDecodingRefreshType == 2)
    15091477  {
    1510 #if H_MV_LAYER_WISE_STARTUP
     1478#if H_MV
    15111479    for (Int i = 0; i < m_numberOfLayers; i++ )
    15121480    {
     
    15441512  xConfirmPara( ( 0 != m_uiUseAdvResPred ) &&  ( 1 != m_uiUseAdvResPred ), "UseAdvResPred must be 0 or 1." );
    15451513#endif
    1546 #if MTK_SPIVMP_F0110
     1514#if H_3D_SPIVMP
    15471515  xConfirmPara( m_iSubPULog2Size < 2,                                        "SubPULog2Size must be 2 or greater.");
    15481516  xConfirmPara( m_iSubPULog2Size > 6,                                        "SubPULog2Size must be 6 or smaller.");
     
    17741742  /* if this is an intra-only sequence, ie IntraPeriod=1, don't verify the GOP structure
    17751743   * This permits the ability to omit a GOP structure specification */
    1776 #if H_MV_LAYER_WISE_STARTUP
     1744#if H_MV
    17771745  if (m_iIntraPeriod[layer] == 1 && m_GOPList[0].m_POC == -1) {
    17781746#else
     
    18031771  }
    18041772  Int numOK=0;
    1805 #if H_MV_LAYER_WISE_STARTUP
     1773#if H_MV
    18061774  xConfirmPara( m_iIntraPeriod[layer] >=0&&(m_iIntraPeriod[layer]%m_iGOPSize!=0), "Intra period must be a multiple of GOPSize, or -1" );
    18071775#else
    1808   xConfirmPara( m_iIntraPeriod >=0&&(m_iIntraPeriod%m_iGOPSize!=0), "Intra period must be a multiple of GOPSize, or -1" );
     1776xConfirmPara( m_iIntraPeriod >=0&&(m_iIntraPeriod%m_iGOPSize!=0), "Intra period must be a multiple of GOPSize, or -1" );
    18091777#endif
    18101778
     
    18181786 
    18191787#if H_MV
    1820 #if H_MV_LAYER_WISE_STARTUP
    18211788  if ( (m_iIntraPeriod[layer] != 1) && !m_loopFilterOffsetInPPS && m_DeblockingFilterControlPresent && (!m_bLoopFilterDisable[layer]) )
    1822 #else
    1823   if ( (m_iIntraPeriod != 1) && !m_loopFilterOffsetInPPS && m_DeblockingFilterControlPresent && (!m_bLoopFilterDisable[layer]) )
    1824 #endif
    18251789#else
    18261790  if ( (m_iIntraPeriod != 1) && !m_loopFilterOffsetInPPS && m_DeblockingFilterControlPresent && (!m_bLoopFilterDisable) )
     
    23472311  printf("Min PCM size                 : %d\n", 1 << m_uiPCMLog2MinSize);
    23482312  printf("Motion search range          : %d\n", m_iSearchRange );
    2349 #if H_MV_LAYER_WISE_STARTUP
     2313#if H_MV
    23502314  xPrintParaVector( "Intra period", m_iIntraPeriod );
    23512315#else
     
    25052469#endif
    25062470#if H_3D_IV_MERGE
    2507 #if QC_DEPTH_IV_MRG_F0125
    25082471  printf("IvMvPred:%d %d", m_ivMvPredFlag[0] ? 1 : 0, m_ivMvPredFlag[1] ? 1 : 0);
    2509 #else
    2510   printf("IvMvPred:%d ", m_ivMvPredFlag );
    2511 #endif
    2512 #if MTK_SPIVMP_F0110
     2472#if H_3D_SPIVMP
    25132473  printf(" SubPULog2Size:%d  " , m_iSubPULog2Size  );
    25142474#endif
     
    25182478#endif
    25192479#if H_3D_IC
    2520 #if SEC_ONLY_TEXTURE_IC_F0151
    25212480  printf( "IlluCompEnable: %d ", m_abUseIC);
    2522 #else
    2523   printf( "IlluCompEnable: %d %d ", m_abUseIC[0] ? 1 : 0, m_abUseIC[1] ? 1 : 0 );
    2524 #endif
    25252481#endif
    25262482#if H_3D_NBDV_REF
     
    25352491#if H_3D_DIM
    25362492  printf("DMM:%d ", m_useDMM );
    2537 #if !SEC_DMM3_RBC_F0147
    2538   printf("RBC:%d ", m_useRBC );
    2539 #endif
    25402493  printf("SDC:%d ", m_useSDC );
    25412494  printf("DLT:%d ", m_useDLT );
     
    25442497  printf( "interSDC: %d ", m_bDepthInterSDCFlag ? 1 : 0 );
    25452498#endif
    2546 #if SEC_MPI_ENABLING_MERGE_F0150
     2499#if H_3D_IV_MERGE
    25472500  printf( "MPI: %d ", m_bMPIFlag ? 1 : 0 );
    25482501#endif
  • trunk/source/App/TAppEncoder/TAppEncCfg.h

    r738 r773  
    8989  Int                    m_vpsNumLayerSets;                   ///< Number of layer sets
    9090  std::vector< std::vector<Int> > m_layerIdsInSets;           ///< LayerIds in vps of layer set
    91 #if H_MV_6_PS_0109_25
    9291  Int                    m_defaultOneTargetOutputLayerIdc;    ///< Output highest layer of layer sets by default when equal to 1
    93 #else
    94   Bool                   m_defaultOneTargetOutputLayerFlag;   ///< Output highest layer of layer sets by default 
    95 #endif
    9692  std::vector<Int>       m_outputLayerSetIdx;                 ///< Indices of layer sets used as additional output layer sets 
    9793  std::vector< std::vector<Int> > m_layerIdsInAddOutputLayerSet; ///< LayerIds in vps of additional output layers
     
    10298  std::vector< std::vector<Int> > m_dependencyTypes;          ///< Dependency types of direct reference layers
    10399
    104 #if H_MV_6_HRD_O0217_13
    105100  // DBP Size
    106101  Bool m_subLayerFlagInfoPresentFlag;
    107 #endif
    108102
    109103  // VPS VUI
    110104  Bool m_vpsVuiPresentFlag;
    111 #if H_MV_6_PS_O0223_29
    112105  Bool m_crossLayerPicTypeAlignedFlag;
    113106  Bool m_crossLayerIrapAlignedFlag;
    114 #endif
    115107  Bool m_bitRatePresentVpsFlag;
    116108  Bool m_picRatePresentVpsFlag;
     
    121113  std::vector< std::vector<Int  > > m_constantPicRateIdc;
    122114  std::vector< std::vector<Int  > > m_avgPicRate;
    123 #if H_MV_6_O0226_37
    124115  Bool                              m_tilesNotInUseFlag;
    125116  std::vector< Bool >               m_tilesInUseFlag;
     
    128119  std::vector< Bool >               m_wppInUseFlag;
    129120
    130 #endif
    131121  std::vector< std::vector<Bool > > m_tileBoundariesAlignedFlag; 
    132122  Bool m_ilpRestrictedRefLayersFlag;
     
    136126
    137127#if H_3D_IV_MERGE
    138 #if QC_DEPTH_IV_MRG_F0125
    139128  vector<Bool>           m_ivMvPredFlag;                      ///< Interview motion vector prediction
    140 #else
    141   Bool                   m_ivMvPredFlag;                      ///< Interview motion vector prediction
    142 #endif
    143 #if MTK_SPIVMP_F0110
     129#if H_3D_SPIVMP
    144130  Int                    m_iSubPULog2Size;                   
    145131#endif
     
    150136#endif
    151137#if H_3D_IC
    152 #if SEC_ONLY_TEXTURE_IC_F0151
    153138  Bool   m_abUseIC;
    154 #else
    155   vector<Bool> m_abUseIC;                                    ///< flag for using illumination compensation for inter-view prediction
    156 #endif
    157139#endif
    158140#if H_3D_NBDV_REF
     
    196178 
    197179  // coding structure
    198 #if H_MV_LAYER_WISE_STARTUP
     180#if H_MV
    199181  std::vector<Int> m_iIntraPeriod;                            ///< period of I-slice (random access period)
    200182#else
     
    497479#if H_3D_DIM
    498480  Bool      m_useDMM;                                        ///< flag for using DMM
    499 #if !SEC_DMM3_RBC_F0147
    500   Bool      m_useRBC;                                        ///< flag for using RBC
    501 #endif
    502481  Bool      m_useSDC;                                        ///< flag for using SDC
    503482  Bool      m_useDLT;                                        ///< flag for using DLT
     
    510489  Bool m_bDepthInterSDCFlag;                                ///< flag for inter SDC of depth map coding
    511490#endif
    512 #if SEC_MPI_ENABLING_MERGE_F0150
     491#if H_3D_IV_MERGE
    513492  Bool m_bMPIFlag;                                           ///< flag for MPI of depth map coding
    514493#endif
  • trunk/source/App/TAppEncoder/TAppEncTop.cpp

    r758 r773  
    7676#endif
    7777 
    78 #if CAM_HLS_F0136_F0045_F0082
     78#if H_3D
    7979  vps.createCamPars(m_iNumberOfViews);
    80 #endif
    81 
    82 #if DLT_DIFF_CODING_IN_PPS
    8380  TComDLT& dlt = m_dlt;
    8481#endif
     
    134131  xSetVPSExtension2        ( vps );
    135132  m_ivPicLists.setVPS      ( &vps );
    136 #if DLT_DIFF_CODING_IN_PPS
    137133  xDeriveDltArray          ( vps, dlt );
    138 #endif
    139134#endif
    140135
     
    160155    //====== Camera Parameters =========
    161156    m_cTEncTop.setCameraParameters             ( &m_cCameraData );     
    162 #if QC_DEPTH_IV_MRG_F0125
    163157    m_cTEncTop.setCamParPrecision              ( m_cCameraData.getCamParsCodedPrecision  () );
    164158    m_cTEncTop.setCamParInSliceHeader          ( m_cCameraData.getVaryingCameraParameters() );
    165159    m_cTEncTop.setCodedScale                   ( m_cCameraData.getCodedScale             () );
    166160    m_cTEncTop.setCodedOffset                  ( m_cCameraData.getCodedOffset            () );
    167 #else
    168     m_cTEncTop.setCamParPrecision              ( isDepth ? false : m_cCameraData.getCamParsCodedPrecision  () );
    169     m_cTEncTop.setCamParInSliceHeader          ( isDepth ? 0     : m_cCameraData.getVaryingCameraParameters() );
    170     m_cTEncTop.setCodedScale                   ( isDepth ? 0     : m_cCameraData.getCodedScale             () );
    171     m_cTEncTop.setCodedOffset                  ( isDepth ? 0     : m_cCameraData.getCodedOffset            () );
    172 #endif
    173161#if H_3D_VSO
    174162    //====== VSO =========
     
    194182    m_cTEncTop.setARPStepNum                   ( ( isDepth || 0==layerIdInVps ) ? 1 : H_3D_ARP_WFNR     );
    195183#endif
    196 #if MTK_SPIVMP_F0110
     184#if H_3D_SPIVMP
    197185    m_cTEncTop.setSubPULog2Size                 (( isDepth || 0==layerIdInVps ) ? 0 : m_iSubPULog2Size   );
    198186#endif
    199187#if H_3D_IC
    200 #if SEC_ONLY_TEXTURE_IC_F0151
    201188    m_cTEncTop.setUseIC                        ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC );
    202 #else
    203     m_cTEncTop.setUseIC                        ( vps.getViewIndex( layerId ) == 0 ? false : m_abUseIC[isDepth ? 1 : 0] );
    204 #endif
    205189#endif
    206190  //========== Depth intra modes ==========
    207191#if H_3D_DIM
    208192    m_cTEncTop.setUseDMM                       ( isDepth ? m_useDMM               : false );
    209 #if !SEC_DMM3_RBC_F0147
    210     m_cTEncTop.setUseRBC                       ( isDepth ? m_useRBC               : false );
    211 #endif
    212193    m_cTEncTop.setUseSDC                       ( isDepth ? m_useSDC               : false );
    213194    m_cTEncTop.setUseDLT                       ( isDepth ? m_useDLT               : false );
     
    221202    m_cTEncTop.setInterSDCEnable               ( isDepth ? m_bDepthInterSDCFlag    : false );
    222203#endif
    223 #if SEC_MPI_ENABLING_MERGE_F0150
     204#if H_3D_IV_MERGE
    224205    m_cTEncTop.setUseMPI               ( isDepth ? m_bMPIFlag    : false );
    225206#endif
     
    227208
    228209    m_cTEncTop.setIvPicLists                   ( &m_ivPicLists );
    229   // H_MV
     210#endif  // H_MV
    230211  m_cTEncTop.setVPS(&vps);
    231212
    232 #if DLT_DIFF_CODING_IN_PPS
     213#if H_3D
    233214  m_cTEncTop.setDLT(&dlt);
    234215#endif
     
    249230 
    250231  //====== Coding Structure ========
    251 #if H_MV_LAYER_WISE_STARTUP
     232#if H_MV
    252233  m_cTEncTop.setIntraPeriod                  ( m_iIntraPeriod[ layerIdInVps ] );
    253234#else
     
    796777Void TAppEncTop::xInitLib(Bool isFieldCoding)
    797778{
    798 #if CAM_HLS_F0136_F0045_F0082
     779#if H_3D
    799780  for ( Int viewIndex = 0; viewIndex < m_vps.getNumViews(); viewIndex++ )
    800781  {
     
    12701251
    12711252#if H_3D_DIM_DLT
    1272 #if DLT_DIFF_CODING_IN_PPS
    12731253Void TAppEncTop::xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps, TComDLT* dlt)
    1274 #else
    1275 Void TAppEncTop::xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps)
    1276 #endif
    12771254{
    12781255  TComPicYuv*       pcDepthPicYuvOrg = new TComPicYuv;
     
    13341311  if( uiNumFrames == 0 || numBitsForValue(iNumDepthValues) == g_bitDepthY )
    13351312  {
    1336 #if DLT_DIFF_CODING_IN_PPS
    13371313    dlt->setUseDLTFlag(layer, false);
    1338 #else
    1339     // don't use DLT
    1340     vps->setUseDLTFlag(layer, false);
    1341 #endif
    13421314  }
    13431315 
    13441316  // assign LUT
    1345 #if DLT_DIFF_CODING_IN_PPS
    13461317  if( dlt->getUseDLTFlag(layer) )
     1318  {
    13471319    dlt->setDepthLUTs(layer, aiIdx2DepthValue, iNumDepthValues);
    1348 #else
    1349   if( vps->getUseDLTFlag(layer) )
    1350     vps->setDepthLUTs(layer, aiIdx2DepthValue, iNumDepthValues);
    1351 #endif
     1320  }
    13521321 
    13531322  // free temporary memory
     
    13721341  Int maxViewId = xGetMax( m_viewId );
    13731342
    1374 #if H_MV_6_PS_O0109_22
    13751343  Int viewIdLen = gCeilLog2( maxViewId + 1 );
    13761344  const Int maxViewIdLen = ( 1 << 4 ) - 1;
    13771345  assert( viewIdLen <= maxViewIdLen );
    13781346  vps.setViewIdLen( viewIdLen );
    1379 #else
    1380   Int viewIdLenMinus1 = std::max( gCeilLog2( maxViewId + 1 ) - 1, 0 ) ;
    1381   const Int maxViewIdLenMinus1 = ( 1 << 4 ) - 1;
    1382   assert( viewIdLenMinus1 <= maxViewIdLenMinus1  );
    1383   vps.setViewIdLenMinus1( viewIdLenMinus1 );
    1384 #endif
    13851347  for (Int i = 0; i < m_iNumberOfViews; i++)
    13861348  {
     
    14031365    }
    14041366
    1405 #if H_MV_6_PS_O0096_21
    14061367  Int  defaultDirectDependencyType = -1;
    14071368  Bool defaultDirectDependencyFlag = true;
    1408 #endif
    14091369  for( Int depLayer = 1; depLayer < m_numberOfLayers; depLayer++ )
    14101370  {
     
    14151375      Int refLayer = m_directRefLayers[depLayer][i];
    14161376      vps.setDirectDependencyFlag( depLayer, refLayer, true);
    1417 #if H_MV_6_PS_O0096_21
    14181377      Int curDirectDependencyType = m_dependencyTypes[depLayer][i];
    14191378
     
    14281387     
    14291388      vps.setDirectDependencyType( depLayer, refLayer, curDirectDependencyType);       
    1430 #else
    1431       vps.setDirectDependencyType( depLayer, refLayer,m_dependencyTypes[depLayer][i]);
    1432 #endif
    1433     }
    1434   }
    1435 
    1436 #if H_MV_6_PS_O0096_21
     1389    }
     1390  }
     1391
    14371392  vps.setDefaultDirectDependencyFlag( defaultDirectDependencyFlag );       
    14381393  vps.setDefaultDirectDependencyType( defaultDirectDependencyFlag ? defaultDirectDependencyType : -1 );       
    1439 #endif
    1440 
    1441 #if H_MV_6_ILDSD_O0120_26
     1394
    14421395  // Max sub layers, + presence flag
    14431396  Bool subLayersMaxMinus1PresentFlag = false;
     
    14641417
    14651418  vps.setVpsSubLayersMaxMinus1PresentFlag( subLayersMaxMinus1PresentFlag );
    1466 #endif
    14671419
    14681420
     
    14711423  for ( Int refLayerIdInVps = 0; refLayerIdInVps < m_numberOfLayers; refLayerIdInVps++)
    14721424    {
    1473 #if !H_MV_6_ILDDS_O0225_30
    1474     Int maxTid = -1;
    1475 #endif
    14761425    for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++)
    14771426      {
    1478 #if H_MV_6_ILDDS_O0225_30
    14791427      Int maxTid = -1;
    1480 #endif
    14811428      for( Int i = 0; i < getGOPSize(); i++ )
    14821429      {       
     
    14921439        }
    14931440      }
    1494 #if H_MV_6_ILDDS_O0225_30   
    14951441      vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 );
    14961442      maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 );   
    14971443    }
    1498 #else
    1499     }
    1500     vps.setMaxTidIlRefPicPlus1( refLayerIdInVps, maxTid + 1 );
    1501     maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 );   
    1502 #endif
    15031444  }
    15041445
     
    15181459 
    15191460  // Poc Lsb Not Present Flag
    1520 #if H_MV_6_MISC_O0062_31
    15211461  for ( Int layerIdInVps = 1; layerIdInVps < m_numberOfLayers; layerIdInVps++)
    15221462  {
     
    15261466    }
    15271467  }
    1528 #endif
    15291468 
    15301469  // All Ref layers active flag
     
    15351474    {       
    15361475      GOPEntry ge =  m_GOPListMvc[layerIdInVps][ ( i < getGOPSize()  ? i : MAX_GOP ) ];
    1537 #if H_MV_6_ILDDS_ILREFPICS_27_34
    15381476      Int tId = ge.m_temporalId;  // Should be equal for all layers.
    15391477     
     
    15711509      }
    15721510      assert ( maxTidIlRefAndSubLayerMaxVaildFlag ); // Something wrong with MaxTidIlRefPicsPlus1 or SubLayersVpsMaxMinus1
    1573 #else
    1574       allRefLayersActiveFlag = allRefLayersActiveFlag && (ge.m_numActiveRefLayerPics == m_directRefLayers[ layerIdInVps ].size() );
    1575 #endif
    15761511    }           
    15771512  }
     
    15791514  vps.setAllRefLayersActiveFlag( allRefLayersActiveFlag );
    15801515
    1581 #if !H_MV_6_PS_O0223_29
    1582   // Currently cross layer irap aligned is always true.   
    1583   vps.setCrossLayerIrapAlignedFlag( true );
    1584 #endif
    15851516  vps.setRefLayers();
    15861517};
     
    16521583  repFormat->setPicHeightVpsInLumaSamples ( m_iSourceHeight );
    16531584  repFormat->setPicWidthVpsInLumaSamples  ( m_iSourceWidth  );   
    1654 #if H_MV_6_PS_REP_FORM_18_19_20
    16551585  repFormat->setChromaAndBitDepthVpsPresentFlag( true );   
    1656 #endif
    16571586  // ToDo not supported yet.
    16581587  //repFormat->setSeparateColourPlaneVpsFlag( );
     
    16671596}
    16681597
    1669 #if H_MV_6_HRD_O0217_13
    16701598Void TAppEncTop::xSetDpbSize                ( TComVPS& vps )
    16711599{
     
    17231651  } 
    17241652}
    1725 #endif
    17261653
    17271654
     
    17431670    }
    17441671  }
    1745 #if H_MV_6_HRD_O0217_13
    17461672  vps.deriveLayerSetLayerIdList();
    1747 #endif
    17481673
    17491674  Int numAddOuputLayerSets = (Int) m_outputLayerSetIdx.size();
    17501675  // Additional output layer sets + profileLevelTierIdx
    1751 #if H_MV_6_PS_0109_25
    17521676  vps.setDefaultOneTargetOutputLayerIdc   ( m_defaultOneTargetOutputLayerIdc );
    1753 #else
    1754   vps.setDefaultOneTargetOutputLayerFlag   ( m_defaultOneTargetOutputLayerFlag );
    1755 #endif
    17561677  vps.setMoreOutputLayerSetsThanDefaultFlag( numAddOuputLayerSets       != 0 );   
    17571678  vps.setNumAddOutputLayerSetsMinus1       ( numAddOuputLayerSets - 1        );
     
    17591680
    17601681
    1761 #if H_MV_6_HRD_O0217_13
    17621682  for (Int lsIdx = 0; lsIdx < m_vpsNumLayerSets; lsIdx++)
    17631683  {
     
    17741694    }
    17751695  }
    1776 #else
    1777   for (Int lsIdx = 1; lsIdx < m_vpsNumLayerSets; lsIdx++)
    1778   {
    1779     vps.setProfileLevelTierIdx( lsIdx, m_profileLevelTierIdx[ lsIdx ] );
    1780   }
    1781 #endif
    17821696
    17831697  for (Int addOutLs = 0; addOutLs < numAddOuputLayerSets; addOutLs++ )
     
    18021716    }
    18031717  }
    1804 #if H_MV_6_HRD_O0217_13
    18051718  vps.deriveTargetLayerIdLists();
    1806 #endif
    18071719}
    18081720
     
    18211733    // however preliminary setting it from input parameters
    18221734
    1823 #if H_MV_6_PS_O0223_29
    18241735    pcVPSVUI->setCrossLayerPicTypeAlignedFlag( m_crossLayerPicTypeAlignedFlag );
    18251736    pcVPSVUI->setCrossLayerIrapAlignedFlag   ( m_crossLayerIrapAlignedFlag    );
    1826 #endif
    18271737
    18281738    pcVPSVUI->setBitRatePresentVpsFlag( m_bitRatePresentVpsFlag );
     
    18631773    }
    18641774
    1865 #if H_MV_6_O0226_37
    18661775    pcVPSVUI->setTilesNotInUseFlag( m_tilesNotInUseFlag );
    18671776
     
    18991808      }
    19001809    }
    1901 #else
    1902     for( Int i = 1; i  <=  vps.getMaxLayersMinus1(); i++ )
    1903     {
    1904       for( Int  j = 0; j < vps.getNumDirectRefLayers( vps.getLayerIdInNuh( i ) ); j++ )
    1905       {
    1906         if ( m_tileBoundariesAlignedFlag[i].size() > j )
    1907         {
    1908           pcVPSVUI->setTileBoundariesAlignedFlag( i, j, m_tileBoundariesAlignedFlag[i][j]);
    1909         }
    1910       }
    1911     }
    1912 #endif
    19131810
    19141811    pcVPSVUI->setIlpRestrictedRefLayersFlag( m_ilpRestrictedRefLayersFlag );
     
    19411838      }
    19421839    }     
    1943 #if H_MV_6_PS_O0118_33
    19441840    pcVPSVUI->setVideoSignalInfoIdxPresentFlag( true );
    19451841    pcVPSVUI->setVpsNumVideoSignalInfoMinus1  ( 0    );
     
    19611857      pcVPSVUI->setVpsVideoSignalInfoIdx( i, 0 );
    19621858    }
    1963 #endif
    1964 #if H_MV_6_HRD_O0164_15
    19651859    pcVPSVUI->setVpsVuiBspHrdPresentFlag( false ); // TBD
    1966 #endif
    19671860  }
    19681861}
     
    19711864Void TAppEncTop::xSetVPSExtension2( TComVPS& vps )
    19721865{
    1973 
    19741866  for ( Int layer = 0; layer <= vps.getMaxLayersMinus1(); layer++ )
    19751867  {
     
    19811873    vps.setARPStepNum      ( layer, ( isDepth || isLayerZero ) ? 1 : H_3D_ARP_WFNR     );
    19821874#endif 
    1983 #if MTK_SPIVMP_F0110
     1875#if H_3D_SPIVMP
    19841876    if( isDepth )
    19851877    {
    1986 #if MTK_F0110_FIX
    19871878      vps.setSubPULog2Size         ( layer, (layer != 1) ? 6: 0 );
    1988 #else
    1989       vps.setSubPULog2Size         ( layer, (layer != 1) ? m_iSubPULog2Size: 0 );
    1990 #endif
    19911879    }
    19921880    else
     
    19971885
    19981886#if H_3D_DIM
    1999 #if SEC_DMM3_RBC_F0147
    20001887    vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useSDC || m_useDLT ) );
    2001 #else
    2002     vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useRBC || m_useSDC || m_useDLT ) );
    2003 #endif
    2004 #if H_3D_DIM_DLT
    2005 #if !DLT_DIFF_CODING_IN_PPS
    2006     vps.setUseDLTFlag( layer , isDepth && m_useDLT );
    2007     if( vps.getUseDLTFlag( layer ) )
    2008     {
    2009 #if H_MV_LAYER_WISE_STARTUP
    2010       xAnalyzeInputBaseDepth(layer, max(  m_iIntraPeriod[layer], 24), &vps);
    2011 #else
    2012       xAnalyzeInputBaseDepth(layer, max(m_iIntraPeriod, 24), &vps);
    2013 #endif
    2014     }
    2015 #endif
    2016 #endif
    20171888#endif
    20181889
    20191890#if H_3D_IV_MERGE
    2020 #if QC_DEPTH_IV_MRG_F0125
    20211891    if( isDepth )
    20221892    {
     
    20271897      vps.setIvMvPredFlag         ( layer, !isLayerZero && m_ivMvPredFlag[0] );
    20281898    }
    2029 #else
    2030     vps.setIvMvPredFlag         ( layer, !isLayerZero && !isDepth && m_ivMvPredFlag );
    2031 #endif
    20321899#endif
    20331900#if H_3D_NBDV_REF
     
    20401907    vps.setInterSDCFlag( layer, !isLayerZero && isDepth && m_bDepthInterSDCFlag );
    20411908#endif
    2042 #if SEC_MPI_ENABLING_MERGE_F0150
     1909#if H_3D_IV_MERGE
    20431910    vps.setMPIFlag( layer, !isLayerZero && isDepth && m_bMPIFlag );
    20441911#endif
     
    20481915#endif
    20491916}
    2050 #endif
    2051 
    2052 #if DLT_DIFF_CODING_IN_PPS
     1917
    20531918Void TAppEncTop::xDeriveDltArray( TComVPS& vps, TComDLT& dlt )
    20541919{
     
    20801945}
    20811946#endif
    2082 #endif
     1947
    20831948//! \}
  • trunk/source/App/TAppEncoder/TAppEncTop.h

    r758 r773  
    8686#endif
    8787
    88 #if DLT_DIFF_CODING_IN_PPS
     88#if H_3D
    8989  TComDLT                    m_dlt;                         ///< dlt
    9090#endif
     
    129129  Void xSetProfileTierLevel       ( TComVPS& vps );
    130130  Void xSetRepFormat              ( TComVPS& vps );
    131 #if H_MV_6_HRD_O0217_13
    132131  Void xSetDpbSize                ( TComVPS& vps );
    133 #endif
    134132  Void xSetVPSVUI                 ( TComVPS& vps );
    135133  GOPEntry* xGetGopEntry( Int layerIdInVps, Int poc );
     
    138136#if H_3D
    139137  Void xSetVPSExtension2( TComVPS& vps );
    140 #endif
    141 #if DLT_DIFF_CODING_IN_PPS
    142138  Void xDeriveDltArray( TComVPS& vps, TComDLT& dlt );
    143139#endif
    144140#if H_3D_DIM_DLT
    145 #if DLT_DIFF_CODING_IN_PPS
    146141  Void  xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps, TComDLT* dlt);
    147 #else
    148   Void  xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps);
    149 #endif
    150142#endif
    151143public:
Note: See TracChangeset for help on using the changeset viewer.