Changeset 1223 in 3DVCSoftware


Ignore:
Timestamp:
21 May 2015, 21:48:53 (9 years ago)
Author:
rwth
Message:
  • SDC seems to work now (incompatible with DMM at this stage)
Location:
branches/HTM-14.1-update-dev1-RWTH/source
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev1-RWTH/source/App/TAppEncoder/TAppEncCfg.cpp

    r1209 r1223  
    13631363  ;
    13641364
    1365 #if NH_MV   
     1365  // FJ: this should be removed as soon as Inter-SDC is fully implemented
     1366#if !NH_3D_INTER_SDC
     1367  m_interSdcFlag = false;
     1368#endif
     1369
     1370#if NH_MV
    13661371  // parse coding structure
    13671372  for( Int k = 0; k < MAX_NUM_LAYERS; k++ )
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComRom.cpp

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

    r1221 r1223  
    157157// Change later
    158158#ifndef ENC_DEC_TRACE
    159 #define ENC_DEC_TRACE 1
     159#define ENC_DEC_TRACE 0
    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 
    179178#if H_MV_ENC_DEC_TRAC
    180179 extern Bool   g_traceCU;
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TypeDef.h

    r1221 r1223  
    6565/////////////////////////////////////////////////////////////////////////////////////////
    6666#if NH_MV
    67 #define H_MV_ENC_DEC_TRAC                 1  //< CU/PU level tracking
     67#define H_MV_ENC_DEC_TRAC                 0  //< CU/PU level tracking
    6868
    6969#if NH_3D
    7070#define NH_3D_VSO                         1
    71 #define NH_3D_DMM                         1   // Depth modeling modes
    72 #define NH_3D_DLT                         0   // Depth Lookup Table
     71#define NH_3D_DMM                         0   // Depth modeling modes
     72#define NH_3D_DLT                         1   // Depth Lookup Table
    7373#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.
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.cpp

    r1221 r1223  
    12751275      const UInt uiAbsPartIdxTU = tuRecurseWithPU.GetAbsPartIdxTU();
    12761276     
    1277       Pel* piPredTU        = pcPredYuv->getAddr   ( COMPONENT_Y, uiAbsPartIdxTU );
    1278       UInt uiStrideTU      = pcPredYuv->getStride ( COMPONENT_Y );
     1277      Pel* piPredTU       = pcPredYuv->getAddr  ( COMPONENT_Y, uiAbsPartIdxTU );
     1278      UInt uiStrideTU     = pcPredYuv->getStride( COMPONENT_Y );
     1279     
     1280      Pel* piRecIPredTU   = pcCU->getPic()->getPicYuvRec()->getAddr( COMPONENT_Y, pcCU->getCtuRsAddr(), pcCU->getZorderIdxInCtu() + uiAbsPartIdxTU );
     1281      UInt uiRecIPredStrideTU  = pcCU->getPic()->getPicYuvRec()->getStride(COMPONENT_Y);
     1282     
     1283      const Bool bUseFilter = TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, uiLumaPredMode, puRect.width, puRect.height, chFmt, sps.getSpsRangeExtension().getIntraSmoothingDisabledFlag());
    12791284     
    12801285      //===== init pattern for luma prediction =====
     
    12821287      Bool bLeftAvail  = false;
    12831288     
    1284       if (tuRecurseWithPU.ProcessComponentSection(COMPONENT_Y))
    1285       {
    1286         m_pcPrediction->initIntraPatternChType( tuRecurseWithPU, bAboveAvail, bLeftAvail, COMPONENT_Y, true DEBUG_STRING_PASS_INTO(sTemp2) );
    1287       }
     1289      m_pcPrediction->initIntraPatternChType( tuRecurseWithPU, bAboveAvail, bLeftAvail, COMPONENT_Y, bUseFilter  DEBUG_STRING_PASS_INTO(sTemp) );
    12881290     
    1289       const Bool bUseFilter = TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, uiLumaPredMode, puRect.width, puRect.height, chFmt, sps.getSpsRangeExtension().getIntraSmoothingDisabledFlag());
     1291      m_pcPrediction->predIntraAng( COMPONENT_Y, uiLumaPredMode, NULL, uiStrideTU, piPredTU, uiStrideTU, tuRecurseWithPU, bAboveAvail, bLeftAvail, bUseFilter );
    12901292     
    1291       m_pcPrediction->predIntraAng( COMPONENT_Y, uiLumaPredMode, NULL, uiStrideTU, piPredTU, uiStrideTU, tuRecurseWithPU, bAboveAvail, bLeftAvail, bUseFilter, TComPrediction::UseDPCMForFirstPassIntraEstimation(tuRecurseWithPU, uiLumaPredMode) );
     1293      // copy for prediction of next part
     1294      for( UInt uiY = 0; uiY < puRect.height; uiY++ )
     1295      {
     1296        for( UInt uiX = 0; uiX < puRect.width; uiX++ )
     1297        {
     1298          piPredTU      [ uiX ] = ClipBD( piPredTU[ uiX ], bitDepthY );
     1299          piRecIPredTU  [ uiX ] = piPredTU[ uiX ];
     1300        }
     1301        piPredTU     += uiStrideTU;
     1302        piRecIPredTU += uiRecIPredStrideTU;
     1303      }
     1304     
    12921305     
    12931306    } while (tuRecurseWithPU.nextSection(tuRecurseCU));
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp

    r1221 r1223  
    24092409    }
    24102410  }
    2411  
     2411#if H_MV_ENC_DEC_TRAC
    24122412  DTRACE_CU("delta_dc", rValDeltaDC);
     2413#endif
    24132414}
    24142415
     
    25092510
    25102511  m_pcTDecBinIf->decodeBin( uiSymbol, m_cSDCFlagSCModel.get( 0, 0, 0 ) );
     2512#if H_MV_ENC_DEC_TRAC
    25112513  DTRACE_CU("dc_only_flag", uiSymbol)
     2514#endif
    25122515  if( uiSymbol )
    25132516  {
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSbac.cpp

    r1221 r1223  
    25402540Void TEncSbac::xCodeDeltaDC( Pel valDeltaDC, UInt uiNumSeg )
    25412541{
     2542#if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
    25422543  DTRACE_CU("delta_dc", valDeltaDC);
     2544#endif
    25432545  xWriteExGolombLevelDdc( UInt( abs( valDeltaDC ) - ( uiNumSeg > 1 ? 0 : 1 ) ) );
    25442546  if( valDeltaDC != 0 )
     
    26302632{
    26312633  UInt uiSymbol = pcCU->getSDCFlag( uiAbsPartIdx ) ? 1 : 0;
     2634#if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
    26322635  DTRACE_CU("dc_only_flag", uiSymbol)
     2636#endif
    26332637  m_pcBinIf->encodeBin( uiSymbol, m_cSDCFlagSCModel.get( 0, 0, 0 ) );
    26342638}
  • branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.cpp

    r1221 r1223  
    10531053#if NH_3D_INTRA_SDC
    10541054          m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );
     1055#if NH_3D_DMM
    10551056          if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( 0 ) ) && isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, 0 ) ) )
    10561057          {
    10571058            m_pcEntropyCoder->encodeDeltaDC( pcCU, 0 );
    10581059          }
     1060#endif
    10591061#endif
    10601062      }
     
    10711073          for( UInt uiPart = 0; uiPart < 4; uiPart++ )
    10721074          {
     1075#if NH_3D_DMM
    10731076            if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiPart * uiQNumParts ) ) && isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, uiPart * uiQNumParts ) ) )
    10741077            {
    10751078              m_pcEntropyCoder->encodeDeltaDC( pcCU, uiPart * uiQNumParts );
    10761079            }
     1080#endif
    10771081#endif
    10781082#if NH_3D_INTRA_SDC
     
    10811085            m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );
    10821086          }
    1083           if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiAbsPartIdx ) ) && isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, uiAbsPartIdx ) ) )
     1087#if NH_3D_DMM
     1088          if( pcCU->getSlice()->getIsDepth() && ( pcCU->getSDCFlag( uiAbsPartIdx ) ) && isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, uiAbsPartIdx ) ) )
    10841089          {
    10851090            m_pcEntropyCoder->encodeDeltaDC( pcCU, uiAbsPartIdx );
    10861091          }
     1092#endif
    10871093#endif
    10881094#if H_3D
     
    20692075      UInt uiStrideTU      = pcPredYuv->getStride ( COMPONENT_Y );
    20702076     
     2077      Pel* piRecIPredTU   = pcCU->getPic()->getPicYuvRec()->getAddr( COMPONENT_Y, pcCU->getCtuRsAddr(), pcCU->getZorderIdxInCtu() + uiAbsPartIdxTU );
     2078      UInt uiRecIPredStrideTU  = pcCU->getPic()->getPicYuvRec()->getStride(COMPONENT_Y);
     2079     
     2080      const Bool bUseFilter = TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, uiLumaPredMode, puRect.width, puRect.height, chFmt, sps.getSpsRangeExtension().getIntraSmoothingDisabledFlag());
     2081     
    20712082      //===== init pattern for luma prediction =====
    20722083      Bool bAboveAvail = false;
    20732084      Bool bLeftAvail  = false;
    20742085     
    2075       if (tuRecurseWithPU.ProcessComponentSection(COMPONENT_Y))
    2076       {
    2077         initIntraPatternChType( tuRecurseWithPU, bAboveAvail, bLeftAvail, COMPONENT_Y, true DEBUG_STRING_PASS_INTO(sTemp2) );
    2078       }
     2086      initIntraPatternChType( tuRecurseWithPU, bAboveAvail, bLeftAvail, COMPONENT_Y, bUseFilter DEBUG_STRING_PASS_INTO(sTemp2) );
    20792087     
    2080       const Bool bUseFilter = TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, uiLumaPredMode, puRect.width, puRect.height, chFmt, sps.getSpsRangeExtension().getIntraSmoothingDisabledFlag());
     2088      predIntraAng( COMPONENT_Y, uiLumaPredMode, piOrgTU, uiStrideTU, piPredTU, uiStrideTU, tuRecurseWithPU, bAboveAvail, bLeftAvail, bUseFilter );
    20812089     
    2082       predIntraAng( COMPONENT_Y, uiLumaPredMode, piOrgTU, uiStrideTU, piPredTU, uiStrideTU, tuRecurseWithPU, bAboveAvail, bLeftAvail, bUseFilter, TComPrediction::UseDPCMForFirstPassIntraEstimation(tuRecurseWithPU, uiLumaPredMode) );
     2090      // copy for prediction of next part
     2091      for( UInt uiY = 0; uiY < puRect.height; uiY++ )
     2092      {
     2093        for( UInt uiX = 0; uiX < puRect.width; uiX++ )
     2094        {
     2095          piPredTU      [ uiX ] = ClipBD( piPredTU[ uiX ], bitDepthY );
     2096          piRecIPredTU  [ uiX ] = piPredTU[ uiX ];
     2097        }
     2098        piPredTU     += uiStrideTU;
     2099        piRecIPredTU += uiRecIPredStrideTU;
     2100      }
    20832101     
    20842102    } while (tuRecurseWithPU.nextSection(tuRecurseCU));
Note: See TracChangeset for help on using the changeset viewer.