Changeset 758 in 3DVCSoftware for trunk/source/App


Ignore:
Timestamp:
3 Jan 2014, 17:43:40 (11 years ago)
Author:
tech
Message:

Merged HTM-9.1-dev0-MediaTek@757. (3D-HEVC HLS)

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

Legend:

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

    r738 r758  
    7676#endif
    7777 
     78#if CAM_HLS_F0136_F0045_F0082
     79  vps.createCamPars(m_iNumberOfViews);
     80#endif
     81
     82#if DLT_DIFF_CODING_IN_PPS
     83  TComDLT& dlt = m_dlt;
     84#endif
     85
    7886#if H_MV
    7987  Int maxTempLayer = -1;
     
    125133#if H_3D
    126134  xSetVPSExtension2        ( vps );
    127   m_ivPicLists.setVPS      ( &vps );
     135  m_ivPicLists.setVPS      ( &vps );
     136#if DLT_DIFF_CODING_IN_PPS
     137  xDeriveDltArray          ( vps, dlt );
     138#endif
    128139#endif
    129140
     
    218229  // H_MV
    219230  m_cTEncTop.setVPS(&vps);
     231
     232#if DLT_DIFF_CODING_IN_PPS
     233  m_cTEncTop.setDLT(&dlt);
     234#endif
    220235
    221236  m_cTEncTop.setProfile(m_profile);
     
    781796Void TAppEncTop::xInitLib(Bool isFieldCoding)
    782797{
     798#if CAM_HLS_F0136_F0045_F0082
     799  for ( Int viewIndex = 0; viewIndex < m_vps.getNumViews(); viewIndex++ )
     800  {
     801    m_vps.initCamParaVPS( viewIndex, true, m_cCameraData.getCamParsCodedPrecision(),
     802      m_cCameraData.getVaryingCameraParameters(), m_cCameraData.getCodedScale(), m_cCameraData.getCodedOffset() );
     803  }
     804#endif
     805
    783806#if H_MV
    784807  for(Int layer=0; layer<m_numberOfLayers; layer++)
     
    12471270
    12481271#if H_3D_DIM_DLT
     1272#if DLT_DIFF_CODING_IN_PPS
     1273Void TAppEncTop::xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps, TComDLT* dlt)
     1274#else
    12491275Void TAppEncTop::xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps)
     1276#endif
    12501277{
    12511278  TComPicYuv*       pcDepthPicYuvOrg = new TComPicYuv;
     
    13071334  if( uiNumFrames == 0 || numBitsForValue(iNumDepthValues) == g_bitDepthY )
    13081335  {
     1336#if DLT_DIFF_CODING_IN_PPS
     1337    dlt->setUseDLTFlag(layer, false);
     1338#else
    13091339    // don't use DLT
    13101340    vps->setUseDLTFlag(layer, false);
     1341#endif
    13111342  }
    13121343 
    13131344  // assign LUT
     1345#if DLT_DIFF_CODING_IN_PPS
     1346  if( dlt->getUseDLTFlag(layer) )
     1347    dlt->setDepthLUTs(layer, aiIdx2DepthValue, iNumDepthValues);
     1348#else
    13141349  if( vps->getUseDLTFlag(layer) )
    13151350    vps->setDepthLUTs(layer, aiIdx2DepthValue, iNumDepthValues);
     1351#endif
    13161352 
    13171353  // free temporary memory
     
    19672003#endif
    19682004#if H_3D_DIM_DLT
     2005#if !DLT_DIFF_CODING_IN_PPS
    19692006    vps.setUseDLTFlag( layer , isDepth && m_useDLT );
    19702007    if( vps.getUseDLTFlag( layer ) )
     
    19762013#endif
    19772014    }
     2015#endif
    19782016#endif
    19792017#endif
     
    20112049}
    20122050#endif
     2051
     2052#if DLT_DIFF_CODING_IN_PPS
     2053Void TAppEncTop::xDeriveDltArray( TComVPS& vps, TComDLT& dlt )
     2054{
     2055  Int  iNumDepthViews  = 0;
     2056  Bool bDltPresentFlag = false;
     2057
     2058  for ( Int layer = 0; layer <= vps.getMaxLayersMinus1(); layer++ )
     2059  {
     2060    Bool isDepth = ( vps.getDepthId( layer ) == 1 );
     2061
     2062    if ( isDepth )
     2063    {
     2064      iNumDepthViews++;
     2065    }
     2066
     2067    dlt.setUseDLTFlag( layer , isDepth && m_useDLT );
     2068    if( dlt.getUseDLTFlag( layer ) )
     2069    {
     2070      xAnalyzeInputBaseDepth(layer, max(m_iIntraPeriod[layer], 24), &vps, &dlt);
     2071      bDltPresentFlag = bDltPresentFlag || dlt.getUseDLTFlag(layer);
     2072#if H_3D_DELTA_DLT
     2073      dlt.setInterViewDltPredEnableFlag(layer, (dlt.getUseDLTFlag(layer) && (layer>1)));
     2074#endif
     2075    }
     2076  }
     2077
     2078  dlt.setDltPresentFlag( bDltPresentFlag );
     2079  dlt.setNumDepthViews ( iNumDepthViews  );
     2080}
     2081#endif
    20132082#endif
    20142083//! \}
  • trunk/source/App/TAppEncoder/TAppEncTop.h

    r738 r758  
    8686#endif
    8787
     88#if DLT_DIFF_CODING_IN_PPS
     89  TComDLT                    m_dlt;                         ///< dlt
     90#endif
     91
    8892  UInt m_essentialBytes;
    8993  UInt m_totalBytes;
     
    135139  Void xSetVPSExtension2( TComVPS& vps );
    136140#endif
     141#if DLT_DIFF_CODING_IN_PPS
     142  Void xDeriveDltArray( TComVPS& vps, TComDLT& dlt );
     143#endif
    137144#if H_3D_DIM_DLT
     145#if DLT_DIFF_CODING_IN_PPS
     146  Void  xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps, TComDLT* dlt);
     147#else
    138148  Void  xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps);
     149#endif
    139150#endif
    140151public:
Note: See TracChangeset for help on using the changeset viewer.