Changeset 773 in 3DVCSoftware for trunk/source/App/TAppEncoder/TAppEncTop.cpp


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

Merged branch/9.2-dev0@722.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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//! \}
Note: See TracChangeset for help on using the changeset viewer.