Ignore:
Timestamp:
19 Dec 2013, 14:29:43 (11 years ago)
Author:
rwth
Message:
  • added functions for Delta-DLT (not used yet)
Location:
branches/HTM-9.1-dev0-RWTH/source/Lib/TLibCommon
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.1-dev0-RWTH/source/Lib/TLibCommon/TComSlice.cpp

    r748 r751  
    25802580  m_iBitsPerDepthValue[layerIdInVps] = numBitsForValue(m_iNumDepthmapValues[layerIdInVps]);
    25812581}
     2582
     2583#if RWTH_DELTA_DLT
     2584Void TComDLT::getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, Int iDLTInRefNum, Int* piDeltaDLTOut, Int *piDeltaDLTOutNum )
     2585{
     2586  Bool abBM0[ 256 ];
     2587  Bool abBM1[ 256 ];
     2588 
     2589  memset( abBM0, 0, sizeof( abBM0 ));
     2590  memset( abBM1, 0, sizeof( abBM1 ));
     2591 
     2592  // convert reference DLT to bit string
     2593  for( Int i = 0; i < iDLTInRefNum; i++ )
     2594  {
     2595    abBM0[ piDLTInRef[ i ] ] = true;
     2596  }
     2597  // convert internal DLT to bit string
     2598  for( Int i = 0; i < m_iNumDepthmapValues[ layerIdInVps ]; i++ )
     2599  {
     2600    abBM1[ m_iIdx2DepthValue[ layerIdInVps ][ i ] ] = true;
     2601  }
     2602 
     2603  *piDeltaDLTOutNum = 0;
     2604  for( Int i = 0; i < 256; i++ )
     2605  {
     2606    if( abBM0[ i ] ^ abBM1[ i ] )
     2607    {
     2608      piDeltaDLTOut[ *piDeltaDLTOutNum ] = i;
     2609      *piDeltaDLTOutNum = *piDeltaDLTOutNum + 1;
     2610    }
     2611  }
     2612}
     2613
     2614Void TComDLT::setDeltaDLT( Int layerIdInVps, Int* piDLTInRef, Int iDLTInRefNum, Int* piDeltaDLTIn, Int piDeltaDLTInNum )
     2615{
     2616  Bool abBM0[ 256 ];
     2617  Bool abBM1[ 256 ];
     2618 
     2619  memset( abBM0, 0, sizeof( abBM0 ));
     2620  memset( abBM1, 0, sizeof( abBM1 ));
     2621 
     2622  // convert reference DLT to bit string
     2623  for( Int i = 0; i < iDLTInRefNum; i++ )
     2624  {
     2625    abBM0[ piDLTInRef[ i ] ] = true;
     2626  }
     2627  // convert delta DLT to bit string
     2628  for( Int i = 0; i < piDeltaDLTInNum; i++ )
     2629  {
     2630    abBM1[ piDeltaDLTIn[ i ] ] = true;
     2631  }
     2632 
     2633  Int aiIdx2DepthValue[256];
     2634  UInt uiNumDepthValues = 0;
     2635  memset( aiIdx2DepthValue, 0, sizeof( aiIdx2DepthValue ));
     2636 
     2637  for( Int i = 0; i < 256; i++ )
     2638  {
     2639    if( abBM0[ i ] ^ abBM1[ i ] )
     2640    {
     2641      aiIdx2DepthValue[ uiNumDepthValues++ ] = i;
     2642    }
     2643  }
     2644 
     2645  // update internal tables
     2646  setDepthLUTs(layerIdInVps, aiIdx2DepthValue, uiNumDepthValues);
     2647}
     2648#endif
     2649
    25822650#endif
    25832651
  • branches/HTM-9.1-dev0-RWTH/source/Lib/TLibCommon/TComSlice.h

    r748 r751  
    10391039#endif
    10401040
    1041   Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx  = val ]; } 
     1041  Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx  = val ]; }
    10421042  Int     getProfileLevelTierIdx( Int outLayerSetIdx )                     { return m_profileLevelTierIdx[ outLayerSetIdx ]; }
    10431043#if H_MV_6_GEN_0153_28
     
    12041204  Int         m_iNumDepthViews;
    12051205  UInt        m_uiDepthViewBitDepth;
     1206 
     1207#if RWTH_DELTA_DLT
     1208  Bool        m_bUseDeltaDLTFlag         [ MAX_NUM_LAYERS ];
     1209#endif
    12061210
    12071211public:
     
    12151219  Void    setUseDLTFlag      ( Int layerIdInVps, Bool b ) { m_bUseDLTFlag[ layerIdInVps ]  = b;   }
    12161220
     1221#if RWTH_DELTA_DLT
     1222  Bool    getUseDeltaDLTFlag      ( Int layerIdInVps )         { return m_bUseDeltaDLTFlag[ layerIdInVps ]; }
     1223  Void    setUseDeltaDLTFlag      ( Int layerIdInVps, Bool b ) { m_bUseDeltaDLTFlag[ layerIdInVps ]  = b;   }
     1224#endif
     1225 
    12171226  Bool    getInterViewDltPredEnableFlag( Int layerIdInVps )         { return m_bInterViewDltPredEnableFlag[ layerIdInVps ]; }
    12181227  Void    setInterViewDltPredEnableFlag( Int layerIdInVps, Bool b ) { m_bInterViewDltPredEnableFlag[ layerIdInVps ] = b;    }
     
    12301239  Pel     idx2DepthValue( Int layerIdInVps, UInt uiIdx )  { return getUseDLTFlag(layerIdInVps)?m_iIdx2DepthValue[layerIdInVps][uiIdx]:uiIdx; }
    12311240  Void    setDepthLUTs( Int layerIdInVps, Int* idx2DepthValue = NULL, Int iNumDepthValues = 0 );
     1241#if RWTH_DELTA_DLT
     1242  Void    getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, Int iDLTInRefNum, Int* piDeltaDLTOut, Int *piDeltaDLTOutNum );
     1243  Void    setDeltaDLT( Int layerIdInVps, Int* piDLTInRef, Int iDLTInRefNum, Int* piDeltaDLTIn, Int piDeltaDLTInNum );
     1244#endif
    12321245};
    12331246#endif
  • branches/HTM-9.1-dev0-RWTH/source/Lib/TLibCommon/TypeDef.h

    r748 r751  
    222222#define Log2( n ) ( log((double)n) / log(2.0) )
    223223#endif
     224#define RWTH_DELTA_DLT                    1
    224225#endif
    225226
Note: See TracChangeset for help on using the changeset viewer.