Ignore:
Timestamp:
21 May 2015, 14:39:30 (10 years ago)
Author:
rwth
Message:
  • initial implementation of INTRA SDC (still not fully functional)
Location:
branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/ContextTables.h

    r1209 r1221  
    177177#define NUM_DMM_MODE_CTX              1       ///< number of context models for DMM modes
    178178#endif
    179 #if NH_3D_DMM || NH_3D_SDC
     179#if NH_3D_DMM || NH_3D_INTRA_SDC
    180180#define NUM_DDC_DATA_CTX              1       ///< number of context models for deltaDC data (DMM or SDC)
    181181#endif
    182 #if H_3D_DIM_SDC
     182#if NH_3D_INTRA_SDC
    183183#define SDC_NUM_RESIDUAL_FLAG_CTX     1
    184184#define SDC_NUM_RESIDUAL_CTX          1
     
    577577};
    578578#endif
    579 #if NH_3D_DMM || NH_3D_SDC
     579#if NH_3D_DMM || NH_3D_INTRA_SDC
    580580static const UChar
    581581INIT_DDC_DATA[3][NUM_DDC_DATA_CTX] =
     
    586586};
    587587#endif
    588 #if H_3D_DIM_SDC
     588#if NH_3D_INTRA_SDC
    589589static const UChar
    590590INIT_SDC_RESIDUAL_FLAG[3][SDC_NUM_RESIDUAL_FLAG_CTX] =
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComCodingStatistics.h

    r1209 r1221  
    9393  STATS__CABAC_BITS__ALIGNED_ESCAPE_BITS,
    9494
    95 #if NH_3D_DMM || H_3D_DIM_SDC || H_3D_INTER_SDC
     95#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
    9696  STATS__CABAC_BITS__DELTADC_SIGN_EP,
    9797  STATS__CABAC_BITS__DELTADC_PREFIX,
     
    154154    "CABAC_BITS__ALIGNED_SIGN_BIT",
    155155    "CABAC_BITS__ALIGNED_ESCAPE_BITS"
    156 #if NH_3D_DMM || H_3D_DIM_SDC || H_3D_INTER_SDC
     156#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
    157157   ,"STATS__CABAC_BITS__DELTADC_SIGN_EP"
    158158   ,"STATS__CABAC_BITS__DELTADC_PREFIX"
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComDataCU.cpp

    r1209 r1221  
    112112  m_dmm1WedgeTabIdx = NULL;
    113113#endif
    114 #if H_3D_DIM_SDC
     114#if NH_3D_INTRA_SDC
    115115  m_pbSDCFlag             = NULL;
    116116  m_apSegmentDCOffset[0]  = NULL;
     
    258258    m_dmm1WedgeTabIdx    = (UInt*)xMalloc(UInt, uiNumPartition);
    259259#endif
    260 #if H_3D_DIM_SDC
     260#if NH_3D_INTRA_SDC
    261261    m_pbSDCFlag             = (Bool*)xMalloc(Bool, uiNumPartition);
    262262    m_apSegmentDCOffset[0]  = (Pel*)xMalloc(Pel, uiNumPartition);
     
    473473    if ( m_dmm1WedgeTabIdx    ) { xFree( m_dmm1WedgeTabIdx );  m_dmm1WedgeTabIdx = NULL;  }
    474474#endif
    475 #if H_3D_DIM_SDC
     475#if NH_3D_INTRA_SDC
    476476    if ( m_pbSDCFlag            ) { xFree(m_pbSDCFlag);             m_pbSDCFlag             = NULL; }
    477477    if ( m_apSegmentDCOffset[0] ) { xFree(m_apSegmentDCOffset[0]);  m_apSegmentDCOffset[0]  = NULL; }
     
    614614    m_pbSPIVMPFlag[ui] = pcFrom->m_pbSPIVMPFlag[ui];
    615615#endif
    616 #if H_3D_DIM_SDC
    617     m_pbSDCFlag[ui] = pcFrom->m_pbSDCFlag[ui];
     616#if NH_3D_INTRA_SDC
     617  memset( m_pbSDCFlag, false, m_uiNumPartition * sizeof( *m_pbSDCFlag ) );
    618618#endif
    619619#if H_3D_DBBP
     
    653653  memset( m_dmm1WedgeTabIdx,    0,                        m_uiNumPartition * sizeof( *m_dmm1WedgeTabIdx   ) );
    654654#endif
    655 #if H_3D_DIM_SDC
    656     memset( m_pbSDCFlag             + firstElement,     0,                numElements * sizeof( *m_pbSDCFlag            ) );
    657     memset( m_apSegmentDCOffset[0]  + firstElement,     0,                numElements * sizeof( *m_apSegmentDCOffset[0] ) );
    658     memset( m_apSegmentDCOffset[1]  + firstElement,     0,                numElements * sizeof( *m_apSegmentDCOffset[1] ) );
     655#if NH_3D_INTRA_SDC
     656    memset( m_pbSDCFlag,     false,                m_uiNumPartition * sizeof( *m_pbSDCFlag ) );
     657    memset( m_apSegmentDCOffset[0],     0,                m_uiNumPartition * sizeof( *m_apSegmentDCOffset[0] ) );
     658    memset( m_apSegmentDCOffset[1],     0,                m_uiNumPartition * sizeof( *m_apSegmentDCOffset[1] ) );
    659659#if !TEMP_SDC_CLEANUP // PM: should be obsolete after cleanup
    660660    m_apDmmPredictor[0] = 0;
     
    811811    m_dmm1WedgeTabIdx    [ui] = 0;
    812812#endif
    813 #if H_3D_DIM_SDC
     813#if NH_3D_INTRA_SDC
    814814      m_pbSDCFlag           [ui] = false;
    815815      m_apSegmentDCOffset[0][ui] = 0;
     
    917917  memset( m_dmm1WedgeTabIdx,    0, sizeof(UInt) * m_uiNumPartition );
    918918#endif
    919 #if H_3D_DIM_SDC
     919#if NH_3D_INTRA_SDC
    920920  memset( m_pbSDCFlag,            0, sizeof(Bool) * m_uiNumPartition  );
    921921  memset( m_apSegmentDCOffset[0], 0, sizeof(Pel) * m_uiNumPartition   );
     
    974974  m_dmm1WedgeTabIdx    [ui] = pcCU->m_dmm1WedgeTabIdx  [uiPartOffset+ui];
    975975#endif
    976 #if H_3D_DIM_SDC
    977       m_pbSDCFlag           [ui] = pcCU->m_pbSDCFlag            [ uiPartOffset + ui ];
    978       m_apSegmentDCOffset[0][ui] = pcCU->m_apSegmentDCOffset[0] [ uiPartOffset + ui ];
    979       m_apSegmentDCOffset[1][ui] = pcCU->m_apSegmentDCOffset[1] [ uiPartOffset + ui ];
     976#if NH_3D_INTRA_SDC
     977    m_pbSDCFlag           [ui] = pcCU->m_pbSDCFlag            [ uiPartOffset + ui ];
     978    m_apSegmentDCOffset[0][ui] = pcCU->m_apSegmentDCOffset[0] [ uiPartOffset + ui ];
     979    m_apSegmentDCOffset[1][ui] = pcCU->m_apSegmentDCOffset[1] [ uiPartOffset + ui ];
    980980#endif
    981981#if H_3D_DBBP
     
    10921092  m_dmm1WedgeTabIdx    = pcCU->getDmm1WedgeTabIdx()  + uiPart;
    10931093#endif
    1094 #if H_3D_DIM_SDC
     1094#if NH_3D_INTRA_SDC
    10951095  m_pbSDCFlag               = pcCU->getSDCFlag()              + uiPart;
    10961096  m_apSegmentDCOffset[0]    = pcCU->getSDCSegmentDCOffset(0)  + uiPart;
     
    12941294  memcpy( m_dmm1WedgeTabIdx    + uiOffset, pcCU->getDmm1WedgeTabIdx(),         sizeof(UInt) * uiNumPartition );
    12951295#endif
    1296 #if H_3D_DIM_SDC
    1297   memcpy( m_pbSDCFlag             + uiOffset, pcCU->getSDCFlag(),             iSizeInBool  );
     1296#if NH_3D_INTRA_SDC
     1297  memcpy( m_pbSDCFlag             + uiOffset, pcCU->getSDCFlag(), sizeof( *m_pbSDCFlag ) * uiNumPartition  );
    12981298  memcpy( m_apSegmentDCOffset[0]  + uiOffset, pcCU->getSDCSegmentDCOffset(0), sizeof( Pel ) * uiNumPartition);
    12991299  memcpy( m_apSegmentDCOffset[1]  + uiOffset, pcCU->getSDCSegmentDCOffset(1), sizeof( Pel ) * uiNumPartition);
     
    14171417  memcpy( pCtu->getDmm1WedgeTabIdx()           + m_absZIdxInCtu, m_dmm1WedgeTabIdx,  sizeof(UInt) * m_uiNumPartition );
    14181418#endif
    1419 #if H_3D_DIM_SDC
    1420   memcpy( rpcCU->getSDCFlag()             + m_uiAbsIdxInLCU, m_pbSDCFlag,      iSizeInBool );
    1421   memcpy( rpcCU->getSDCSegmentDCOffset(0) + m_uiAbsIdxInLCU, m_apSegmentDCOffset[0], sizeof( Pel ) * m_uiNumPartition);
    1422   memcpy( rpcCU->getSDCSegmentDCOffset(1) + m_uiAbsIdxInLCU, m_apSegmentDCOffset[1], sizeof( Pel ) * m_uiNumPartition);
     1419#if NH_3D_INTRA_SDC
     1420  memcpy( pCtu->getSDCFlag()             + m_absZIdxInCtu, m_pbSDCFlag, sizeof(Bool) * m_uiNumPartition );
     1421  memcpy( pCtu->getSDCSegmentDCOffset(0) + m_absZIdxInCtu, m_apSegmentDCOffset[0], sizeof( Pel ) * m_uiNumPartition);
     1422  memcpy( pCtu->getSDCSegmentDCOffset(1) + m_absZIdxInCtu, m_apSegmentDCOffset[1], sizeof( Pel ) * m_uiNumPartition);
    14231423#endif
    14241424#if H_3D_DBBP
     
    14781478#if H_3D_SPIVMP
    14791479  memcpy( rpcCU->getSPIVMPFlag()        + uiPartOffset, m_pbSPIVMPFlag,        sizeof(Bool) * uiQNumPart );
    1480 #endif
    1481 #if H_3D_DIM_SDC
    1482   memcpy( rpcCU->getSDCFlag()             + uiPartOffset, m_pbSDCFlag,      iSizeInBool  );
    1483   memcpy( rpcCU->getSDCSegmentDCOffset(0) + uiPartOffset, m_apSegmentDCOffset[0], sizeof( Pel ) * uiQNumPart);
    1484   memcpy( rpcCU->getSDCSegmentDCOffset(1) + uiPartOffset, m_apSegmentDCOffset[1], sizeof( Pel ) * uiQNumPart);
    14851480#endif
    14861481#if H_3D_DBBP
     
    21362131#endif
    21372132
    2138 #if H_3D_DIM_SDC
    2139 UInt TComDataCU::getCtxSDCFlag( UInt uiAbsPartIdx )
    2140 {
    2141   return 0;
    2142 }
    2143 
    2144 #endif
    2145 
    21462133
    21472134UInt TComDataCU::getCtxInterDir( UInt uiAbsPartIdx )
     
    23952382}
    23962383
    2397 #if H_3D_DIM_SDC
    2398 Void TComDataCU::setSDCFlagSubParts ( Bool bSDCFlag, UInt uiAbsPartIdx, UInt uiDepth )
     2384#if NH_3D_INTRA_SDC
     2385Void TComDataCU::setSDCFlagSubParts ( Bool bSDCFlag, UInt absPartIdx, UInt depth )
    23992386{
    24002387  assert( sizeof( *m_pbSDCFlag) == 1 );
    2401   memset( m_pbSDCFlag + uiAbsPartIdx, bSDCFlag, m_pcPic->getNumPartInCU() >> ( 2 * uiDepth ) );
     2388  memset( m_pbSDCFlag + absPartIdx, bSDCFlag, m_pcPic->getNumPartitionsInCtu() >> ( 2 * depth ) );
    24022389}
    24032390
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComDataCU.h

    r1209 r1221  
    186186  UInt*         m_dmm1WedgeTabIdx;
    187187#endif
    188 #if H_3D_DIM_SDC
     188#if NH_3D_INTRA_SDC
    189189  Bool*         m_pbSDCFlag;
    190190  Pel*          m_apSegmentDCOffset[2];
     
    563563  Void  setDmm1WedgeTabIdxSubParts    ( UInt tabIdx, UInt uiAbsPartIdx, UInt uiDepth );
    564564#endif
    565 #if H_3D_DIM_SDC
     565#if NH_3D_INTRA_SDC
    566566  Bool*         getSDCFlag          ()                        { return m_pbSDCFlag;               }
    567567  Bool          getSDCFlag          ( UInt uiIdx )            { return m_pbSDCFlag[uiIdx];        }
     
    577577  Pel           getDmmPredictor ( UInt uiSeg) { return m_apDmmPredictor[uiSeg]; }
    578578#endif
    579   UInt          getCtxSDCFlag          ( UInt   uiAbsPartIdx );
    580579#endif
    581580 
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComPrediction.cpp

    r1219 r1221  
    535535  assert( iWidth == iHeight  );
    536536  assert( iWidth >= DMM_MIN_SIZE && iWidth <= DMM_MAX_SIZE );
    537 #if H_3D_DIM_SDC
     537#if NH_3D_INTRA_SDC
    538538  assert( !pcCU->getSDCFlag( uiAbsPartIdx ) );
    539539#endif
     
    569569  assignBiSegDCs( pDst, uiStride, biSegPattern, patternStride, segDC1, segDC2 );
    570570#if !TEMP_SDC_CLEANUP // PM: should be obsolete after cleanup
    571 #if H_3D_DIM_SDC 
     571#if NH_3D_INTRA_SDC
    572572  pcCU->setDmmPredictor(segDC1, 0);
    573573  pcCU->setDmmPredictor(segDC2, 1);
     
    23892389
    23902390#if TEMP_SDC_CLEANUP // PM: consider this cleanup for SDC
    2391 #if NH_3D_SDC
     2391#if NH_3D_INTRA_SDC
    23922392Void TComPrediction::predConstantSDC( Pel* ptrSrc, UInt srcStride, UInt uiSize, Pel& predDC )
    23932393{
     
    24002400#endif
    24012401#else // PM: should be obsolete after cleanup
    2402 #if H_3D_DIM_SDC
     2402#if NH_3D_INTRA_SDC
    24032403Void TComPrediction::analyzeSegmentsSDC( Pel* pOrig, UInt uiStride, UInt uiSize, Pel* rpSegMeans, UInt uiNumSegments, Bool* pMask, UInt uiMaskStride
    24042404                                         ,UInt uiIntraMode
     
    24652465  }
    24662466}
    2467 #endif // H_3D_DIM_SDC
     2467#endif // NH_3D_INTRA_SDC
    24682468#endif
    24692469
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComPrediction.h

    r1209 r1221  
    171171#endif
    172172#if TEMP_SDC_CLEANUP // PM: consider this cleanup for SDC
    173 #if NH_3D_SDC
     173#if NH_3D_INTRA_SDC
    174174  Void predConstantSDC            ( Pel* ptrSrc, UInt srcStride, UInt uiSize, Pel& predDC );
    175175#endif
    176176#else // PM: should be obsolete after cleanup
    177 #if H_3D_DIM_SDC
     177#if NH_3D_INTRA_SDC
    178178  Void analyzeSegmentsSDC         ( Pel* pOrig, UInt uiStride, UInt uiSize, Pel* rpSegMeans, UInt uiNumSegments, Bool* pMask, UInt uiMaskStride, UInt uiIntraMode, Bool orgDC=false );
    179179#endif
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComRom.cpp

    r1209 r1221  
    543543UInt64 g_nSymbolCounter = 0;
    544544#if H_MV_ENC_DEC_TRAC
    545 Bool g_traceCU = false;
     545Bool g_traceCU = true;
    546546Bool g_tracePU = false;
    547547Bool g_traceTU = false;
    548 Bool g_disableNumbering = false;
    549 Bool g_disableHLSTrace = false;
     548Bool g_disableNumbering = true;
     549Bool g_disableHLSTrace = true;
    550550UInt64 g_stopAtCounter       = 937234;
    551551Bool g_traceCopyBack         = false;
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComRom.h

    r1219 r1221  
    157157// Change later
    158158#ifndef ENC_DEC_TRACE
    159 #define ENC_DEC_TRACE 0
     159#define ENC_DEC_TRACE 1
    160160#endif
    161161#endif
     
    176176#define DTRACE_CABAC_R( x,y ) if ( ( g_nSymbolCounter >= COUNTER_START && g_nSymbolCounter <= COUNTER_END )|| g_bJustDoIt ) fprintf( g_hTrace, x,    y );
    177177#define DTRACE_CABAC_N        if ( ( g_nSymbolCounter >= COUNTER_START && g_nSymbolCounter <= COUNTER_END )|| g_bJustDoIt ) fprintf( g_hTrace, "\n"    );
     178
    178179#if H_MV_ENC_DEC_TRAC
    179180 extern Bool   g_traceCU;
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TypeDef.h

    r1219 r1221  
    7070#define NH_3D_VSO                         1
    7171#define NH_3D_DMM                         1   // Depth modeling modes
    72 #define NH_3D_SDC                         1   // Segment-wise DC coding for intra and inter
    73 #define NH_3D_DLT                         1   // Depth Lookup Table
     72#define NH_3D_DLT                         0   // Depth Lookup Table
     73#define NH_3D_INTRA_SDC                   1   // Segment-wise DC Coding method for INTRA
    7474#define NH_3D_ENC_DEPTH                   1   // Encoder optimizations for depth, incl.
    7575                                              // HHI_DEPTH_INTRA_SEARCH_RAU_C0160
Note: See TracChangeset for help on using the changeset viewer.