Ignore:
Timestamp:
21 May 2015, 15:43:58 (10 years ago)
Author:
rwth
Message:
  • migration of DBBP (to be tested)
Location:
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1200 r1222  
    34003400
    34013401#endif
    3402 #if H_3D_DBBP
     3402#if NH_3D_DBBP
    34033403  Void TDecCavlc::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    34043404  {
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecCAVLC.h

    r1200 r1222  
    127127  Void  parseSDCFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    128128#endif
    129 #if H_3D_DBBP
     129#if NH_3D_DBBP
    130130  Void  parseDBBPFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    131131#endif
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecCu.cpp

    r1217 r1222  
    5252  m_ppcYuvReco = NULL;
    5353  m_ppcCU      = NULL;
    54 #if H_3D_DBBP
     54#if NH_3D_DBBP
    5555  m_ppcYuvRecoDBBP = NULL;
    5656#endif
     
    8181  m_ppcYuvReco = new TComYuv*[m_uiMaxDepth-1];
    8282  m_ppcCU      = new TComDataCU*[m_uiMaxDepth-1];
    83 #if H_3D_DBBP
     83#if NH_3D_DBBP
    8484  m_ppcYuvRecoDBBP = new TComYuv*[m_uiMaxDepth-1];
    8585#endif
     
    9595    m_ppcYuvReco[ui] = new TComYuv;    m_ppcYuvReco[ui]->create( uiWidth, uiHeight, chromaFormatIDC );
    9696    m_ppcCU     [ui] = new TComDataCU; m_ppcCU     [ui]->create( chromaFormatIDC, uiNumPartitions, uiWidth, uiHeight, true, uiMaxWidth >> (m_uiMaxDepth - 1) );
    97 #if H_3D_DBBP
    98     m_ppcYuvRecoDBBP[ui] = new TComYuv;    m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight );
     97#if NH_3D_DBBP
     98    m_ppcYuvRecoDBBP[ui] = new TComYuv;    m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight, chromaFormatIDC );
    9999#endif
    100100}
     
    119119    m_ppcYuvReco[ui]->destroy(); delete m_ppcYuvReco[ui]; m_ppcYuvReco[ui] = NULL;
    120120    m_ppcCU     [ui]->destroy(); delete m_ppcCU     [ui]; m_ppcCU     [ui] = NULL;
    121 #if H_3D_DBBP
     121#if NH_3D_DBBP
    122122    m_ppcYuvRecoDBBP[ui]->destroy(); delete m_ppcYuvRecoDBBP[ui]; m_ppcYuvRecoDBBP[ui] = NULL;
    123123#endif
     
    127127  delete [] m_ppcYuvReco; m_ppcYuvReco = NULL;
    128128  delete [] m_ppcCU     ; m_ppcCU      = NULL;
    129 #if H_3D_DBBP
     129#if NH_3D_DBBP
    130130  delete [] m_ppcYuvRecoDBBP; m_ppcYuvRecoDBBP = NULL;
    131131#endif
     
    616616  {
    617617    case MODE_INTER:
    618 #if H_3D_DBBP
     618#if NH_3D_DBBP
    619619    if( m_ppcCU[uiDepth]->getDBBPFlag(0) )
    620620    {
     
    636636      }
    637637#endif
    638 #if H_3D_DBBP
     638#if NH_3D_DBBP
    639639    }
    640640#endif
     
    844844#endif
    845845
    846 #if H_3D_DBBP
     846#if NH_3D_DBBP
    847847Void TDecCu::xReconInterDBBP( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    848848{
     
    850850  AOF(!pcCU->getSlice()->isIntra());
    851851  PartSize ePartSize = pcCU->getPartitionSize( 0 );
     852 
     853  Int bitDepthY = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA);
    852854 
    853855  // get collocated depth block
     
    870872 
    871873  // first, extract the two sets of motion parameters
    872   UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxCUDepth() - uiDepth ) << 1 ) ) >> 4;
     874  UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4;
    873875  for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ )
    874876  {
     
    883885    }
    884886   
     887#if H_3D
    885888    AOF( pcCU->getARPW(uiPartAddr) == 0 );
    886889    AOF( pcCU->getICFlag(uiPartAddr) == false );
    887890    AOF( pcCU->getSPIVMPFlag(uiPartAddr) == false );
    888891    AOF( pcCU->getVSPFlag(uiPartAddr) == 0 );
     892#endif
    889893  }
    890894 
     
    926930 
    927931  // reconstruct final prediction signal by combining both segments
    928   m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize);
     932  m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize, bitDepthY);
    929933
    930934  // inter recon
    931   xDecodeInterTexture( pcCU, 0, uiDepth );
     935  xDecodeInterTexture( pcCU, uiDepth );
    932936 
    933937  // clip for only non-zero cbp case
    934   if  ( ( pcCU->getCbf( 0, TEXT_LUMA ) ) || ( pcCU->getCbf( 0, TEXT_CHROMA_U ) ) || ( pcCU->getCbf(0, TEXT_CHROMA_V ) ) )
    935   {
    936     m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ) );
     938  if  ( ( pcCU->getCbf( 0, COMPONENT_Y ) ) || ( pcCU->getCbf( 0, COMPONENT_Cb ) ) || ( pcCU->getCbf(0, COMPONENT_Cr ) ) )
     939  {
     940    m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ), pcCU->getSlice()->getSPS()->getBitDepths() );
    937941  }
    938942  else
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecCu.h

    r1200 r1222  
    6262  TComDataCU**        m_ppcCU;            ///< CU data array
    6363
    64 #if H_3D_DBBP
     64#if NH_3D_DBBP
    6565  TComYuv**           m_ppcYuvRecoDBBP;
    6666#endif
     
    102102  Void xReconInter              ( TComDataCU* pcCU, UInt uiDepth );
    103103
    104 #if H_3D_DBBP
     104#if NH_3D_DBBP
    105105  Void xReconInterDBBP          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    106106#endif
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1200 r1222  
    181181  {
    182182    decodePUWise( pcCU, uiAbsPartIdx, uiDepth, pcSubCU );
     183   
     184    decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth );
    183185  }
    184186}
     
    292294
    293295  ////// Parse CUs extension syntax
    294   decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth );
    295296  decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth );
    296297
     
    308309    {
    309310      UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx);
    310 #if H_3D_DBBP
     311#if NH_3D_DBBP
    311312      if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 && pcCU->getDBBPFlag(uiAbsPartIdx) == false )
    312313#else
     
    395396          pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx );
    396397#if H_3D_VSP
    397 #if H_3D_DBBP
     398#if NH_3D_DBBP
    398399          if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 && !pcCU->getDBBPFlag( uiAbsPartIdx ) )
    399400#else
     
    10601061}
    10611062#endif
    1062 #if H_3D_DBBP
     1063#if NH_3D_DBBP
    10631064Void TDecEntropy::decodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    10641065{
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecEntropy.h

    r1200 r1222  
    9595  virtual Void parseSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    9696#endif
    97 #if H_3D_DBBP
     97#if NH_3D_DBBP
    9898  virtual Void parseDBBPFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    9999#endif
     
    183183  Void decodeSDCFlag           ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    184184#endif
    185 #if H_3D_DBBP
     185#if NH_3D_DBBP
    186186  Void decodeDBBPFlag          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    187187#endif
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp

    r1200 r1222  
    119119, m_cSDCFlagSCModel                  ( 1,             1,  NUM_SDC_FLAG_CTX                 , m_contextModels + m_numContextModels, m_numContextModels)
    120120#endif
    121 #if H_3D_DBBP
     121#if NH_3D_DBBP
    122122, m_cDBBPFlagSCModel             ( 1,             1,                 DBBP_NUM_FLAG_CTX           , m_contextModels + m_numContextModels, m_numContextModels)
    123123#endif
     
    210210  m_cSDCFlagSCModel.initBuffer            ( sliceType, qp, (UChar*)INIT_SDC_FLAG );
    211211#endif
    212 #if H_3D_DBBP
     212#if NH_3D_DBBP
    213213  m_cDBBPFlagSCModel.initBuffer              ( sliceType, qp, (UChar*)INIT_DBBP_FLAG );
    214214#endif
     
    259259#if H_3D_DIM_SDC
    260260  m_cSDCFlagSCModel.initBuffer            ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG );
    261 #endif
    262 #if H_3D_DBBP
    263   m_cDBBPFlagSCModel.initBuffer              ( eSliceType, iQp, (UChar*)INIT_DBBP_FLAG );
    264261#endif
    265262
     
    25412538#endif
    25422539
    2543 #if H_3D_DBBP
     2540#if NH_3D_DBBP
    25442541Void TDecSbac::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    25452542{
     
    25532550  PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );
    25542551  AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N );
    2555   UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxCUDepth() - uiDepth ) << 1 ) ) >> 4;
     2552  UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4;
    25562553  pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx, 0, uiDepth);
    25572554  pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx+uiPUOffset, 1, uiDepth);
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecSbac.h

    r1200 r1222  
    121121  Void  parseSDCFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    122122#endif
    123 #if H_3D_DBBP
     123#if NH_3D_DBBP
    124124  Void parseDBBPFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    125125#endif
     
    240240  ContextModel3DBuffer m_cSDCFlagSCModel;
    241241#endif
    242 #if H_3D_DBBP
     242#if NH_3D_DBBP
    243243  ContextModel3DBuffer m_cDBBPFlagSCModel;
    244244#endif
Note: See TracChangeset for help on using the changeset viewer.