Ignore:
Timestamp:
3 Feb 2014, 11:35:43 (10 years ago)
Author:
rwth
Message:
  • first version of DBBP (requires some cleanup)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.3-dev1-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp

    r773 r816  
    100100, m_cInterSDCResidualSignFlagSCModel ( 1,             1,  NUM_INTER_SDC_SIGN_FLAG_CTX      , m_contextModels + m_numContextModels, m_numContextModels)
    101101#endif
     102#if H_3D_DBBP
     103, m_cDBBPFlagSCModel             ( 1,             1,                 DBBP_NUM_FLAG_CTX           , m_contextModels + m_numContextModels, m_numContextModels)
     104#endif
    102105{
    103106  assert( m_numContextModels <= MAX_NUM_CTX_MOD );
     
    182185  m_cInterSDCResidualSCModel.initBuffer   ( sliceType, qp, (UChar*)INIT_INTER_SDC_RESIDUAL );
    183186  m_cInterSDCResidualSignFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_INTER_SDC_SIGN_FLAG );
     187#endif
     188#if H_3D_DBBP
     189  m_cDBBPFlagSCModel.initBuffer              ( sliceType, qp, (UChar*)INIT_DBBP_FLAG );
    184190#endif
    185191  m_uiLastDQpNonZero  = 0;
     
    251257  m_cInterSDCResidualSCModel.initBuffer   ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_RESIDUAL );
    252258  m_cInterSDCResidualSignFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_SIGN_FLAG );
     259#endif
     260#if H_3D_DBBP
     261  m_cDBBPFlagSCModel.initBuffer              ( eSliceType, iQp, (UChar*)INIT_DBBP_FLAG );
    253262#endif
    254263  m_pcTDecBinIf->start();
     
    21322141#endif
    21332142
     2143#if H_3D_DBBP
     2144Void TDecSbac::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
     2145{
     2146  PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );
     2147  AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) );
     2148  AOF( !pcCU->getSlice()->getIsDepth() );
     2149  AOF( ePartSize == RWTH_DBBP_PACK_MODE );
     2150 
     2151  UInt uiSymbol = 0;
     2152 
     2153  m_pcTDecBinIf->decodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) );
     2154 
     2155  DTRACE_CABAC_VL( g_nSymbolCounter++ );
     2156  DTRACE_CABAC_T( "\tDBBPFlag" );
     2157  DTRACE_CABAC_T( "\tuiCtxDBBP: ");
     2158  DTRACE_CABAC_V( uiCtxDBBPFlag );
     2159  DTRACE_CABAC_T( "\tuiSymbol: ");
     2160  DTRACE_CABAC_V( uiSymbol );
     2161  DTRACE_CABAC_T( "\n");
     2162 
     2163  if( uiSymbol )
     2164  {
     2165    pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx, 0, uiDepth);
     2166  }
     2167}
     2168#endif
     2169
    21342170//! \}
Note: See TracChangeset for help on using the changeset viewer.