Changeset 1228 in 3DVCSoftware


Ignore:
Timestamp:
24 May 2015, 18:07:56 (10 years ago)
Author:
rwth
Message:
  • revised version of DBBP
Location:
branches/HTM-14.1-update-dev4-RWTH/source/Lib
Files:
6 edited

Legend:

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

    r1222 r1228  
    975975#if H_3D_VSP
    976976      m_piVSPFlag[ui]=pcCU->m_piVSPFlag[uiPartOffset+ui];
     977#endif
     978#if H_3D_VSP || NH_3D_DBBP
    977979      m_pDvInfo[ ui ] = pcCU->m_pDvInfo[uiPartOffset+ui];
    978980#endif
     
    12371239#if H_3D_VSP
    12381240  m_piVSPFlag          = pcCU->getVSPFlag()               + uiAbsPartIdx;
     1241#endif
     1242#if H_3D_VSP || NH_3D_DBBP
    12391243  m_pDvInfo            = pcCU->getDvInfo()                + uiAbsPartIdx;
    12401244#endif
     
    12951299#if H_3D_VSP
    12961300  memcpy( m_piVSPFlag           + uiOffset, pcCU->getVSPFlag(),           sizeof( Char ) * uiNumPartition );
     1301#endif
     1302#if H_3D_VSP || NH_3D_DBBP
    12971303  memcpy( m_pDvInfo             + uiOffset, pcCU->getDvInfo(),            sizeof( *m_pDvInfo ) * uiNumPartition );
    12981304#endif
     
    14221428  #if H_3D_VSP
    14231429  memcpy( rpcCU->getVSPFlag()           + m_uiAbsIdxInLCU, m_piVSPFlag,           sizeof( Char ) * m_uiNumPartition );
    1424   memcpy( rpcCU->getDvInfo()            + m_uiAbsIdxInLCU, m_pDvInfo,             sizeof( *m_pDvInfo ) * m_uiNumPartition );
     1430#endif
     1431#if H_3D_VSP || NH_3D_DBBP
     1432  memcpy( pCtu->getDvInfo()            + m_absZIdxInCtu, m_pDvInfo,             sizeof( *m_pDvInfo ) * m_uiNumPartition );
    14251433#endif
    14261434#if H_3D_SPIVMP
     
    21182126 
    21192127  // DBBP is a texture coding tool
    2120   if( getSlice()->getIsDepth() )
    2121   {
    2122     return NULL;
    2123   } 
     2128  assert( !getSlice()->getIsDepth() );
     2129 
    21242130#if H_3D_FCO
    21252131  TComPic* depthPic = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
     
    25072513  setSubPart<Char>( iVSPFlag, m_piVSPFlag, uiAbsPartIdx, uiDepth, uiPartIdx );
    25082514}
    2509 #if H_3D_VSP
     2515#endif
     2516#if H_3D_VSP || NH_3D_DBBP
    25102517template<typename T>
    25112518Void TComDataCU::setSubPartT( T uiParameter, T* puhBaseLCU, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx )
    25122519{
    2513   UInt uiCurrPartNumQ = (m_pcPic->getNumPartInCU() >> (2 * uiCUDepth)) >> 2;
     2520  UInt uiCurrPartNumQ = (m_pcPic->getNumPartitionsInCtu() >> (2 * uiCUDepth)) >> 2;
    25142521  switch ( m_pePartSize[ uiCUAddr ] )
    25152522  {
     
    26422649
    26432650}
    2644 #endif
    26452651#endif
    26462652
     
    61316137  }
    61326138}
    6133 #if H_3D_VSP
     6139#if H_3D_VSP || NH_3D_DBBP
    61346140Void TComDataCU::setDvInfoSubParts( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth )
    61356141{
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibCommon/TComDataCU.h

    r1222 r1228  
    454454  template <typename T>
    455455  Void          setSubPart            ( T bParameter, T* pbBaseCtu, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx );
    456 #if H_3D_VSP
     456#if H_3D_VSP || NH_3D_DBBP
    457457  template<typename T>
    458458  Void          setSubPartT           ( T uiParameter, T* puhBaseLCU, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx );
     
    482482#if NH_3D_NBDV
    483483  Void          setDvInfoSubParts     ( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth );
     484#if H_3D_VSP || NH_3D_DBBP
    484485  Void          setDvInfoSubParts     ( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth);
     486#endif
    485487  DisInfo*      getDvInfo             ()                        { return m_pDvInfo;                 }
    486488  DisInfo       getDvInfo             (UInt uiIdx)              { return m_pDvInfo[uiIdx];          }
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecCu.cpp

    r1222 r1228  
    302302    if( pcCU->getSlice()->getVPS()->getIvMvPredFlag(pcCU->getSlice()->getLayerId()) )
    303303#else
     304#if NH_3D_DBBP
     305    if( pcCU->getSlice()->getDepthBasedBlkPartFlag() )
     306#else
    304307    if (0)
     308#endif
    305309#endif
    306310#endif
     
    878882   
    879883    pDBBPTmpData->auhInterDir[uiSegment] = pcCU->getInterDir(uiPartAddr);
     884    assert( pDBBPTmpData->auhInterDir[uiSegment] == 1 || pDBBPTmpData->auhInterDir[uiSegment] == 2  );  // only uni-prediction allowed
    880885   
    881886    for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ )
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1222 r1228  
    181181  {
    182182    decodePUWise( pcCU, uiAbsPartIdx, uiDepth, pcSubCU );
    183    
    184     decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth );
    185183  }
    186184}
     
    258256  }
    259257  Int numValidMergeCand = 0;
    260   Bool hasMergedCandList = false;
     258  Bool isMerged = false;
    261259
    262260  pcSubCU->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 );
    263261  pcSubCU->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 );
    264 #if H_3D
     262#if NH_3D
    265263  for ( UInt uiPartIdx = 0, uiSubPartIdx = uiAbsPartIdx; uiPartIdx < uiNumPU; uiPartIdx++, uiSubPartIdx += uiPUOffset )
    266264  {
     
    294292
    295293  ////// Parse CUs extension syntax
    296   decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth );
     294#if NH_3D_DBBP
     295  decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth );
     296#endif
     297  //decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth );
    297298
    298299#if H_3D_ARP
     
    610611}
    611612
    612 #if H_3D
     613#if NH_3D
    613614Void TDecEntropy::decodeMVPIdxPU( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList )
    614615{
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibDecoder/TDecEntropy.h

    r1222 r1228  
    145145  Void decodeMvdPU        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList );
    146146  Void decodeMVPIdxPU     ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList );
    147 #if H_3D
     147#if NH_3D
    148148  Void decodeMvsAMVP      ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx,
    149149RefPicList eRefList );
  • branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncCu.cpp

    r1222 r1228  
    596596        if( rpcTempCU->getSlice()->getVPS()->getIvMvPredFlag(rpcTempCU->getSlice()->getLayerId()) )
    597597#else
     598#if NH_3D_DBBP
     599        if( rpcTempCU->getSlice()->getDepthBasedBlkPartFlag() )
     600#else
    598601        if (0)
     602#endif
    599603#endif
    600604#endif
     
    659663          rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );//by Competition for inter_2Nx2N
    660664#endif
    661 #if H_3D_VSP
     665#if H_3D_VSP || NH_3D_DBBP
    662666            rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    663667#endif
     
    673677
    674678        rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    675 #if H_3D_VSP
     679#if H_3D_VSP || NH_3D_DBBP
    676680          rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    677681#endif
     
    690694          rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    691695#endif
    692 #if H_3D_VSP
     696#if H_3D_VSP || NH_3D_DBBP
    693697            rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    694698#endif
     
    698702              xCheckRDCostInterDBBP( rpcBestCU, rpcTempCU, false );
    699703              rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode  );
    700 #if H_3D_VSP
     704#if H_3D_VSP || NH_3D_DBBP
    701705              rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    702706#endif
     
    780784#endif
    781785              rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    782 #if H_3D_VSP
     786#if H_3D_VSP || NH_3D_DBBP
    783787                rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    784788#endif
     
    799803#endif
    800804            rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    801 #if H_3D_VSP
     805#if H_3D_VSP || NH_3D_DBBP
    802806            rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    803807#endif
     
    822826
    823827            rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    824 #if H_3D_VSP
     828#if H_3D_VSP || NH_3D_DBBP
    825829            rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    826830#endif
     
    861865#endif
    862866                rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    863 #if H_3D_VSP
     867#if H_3D_VSP || NH_3D_DBBP
    864868                rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    865869#endif
     
    882886
    883887                rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    884 #if H_3D_VSP
     888#if H_3D_VSP || NH_3D_DBBP
    885889                rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    886890#endif
     
    909913
    910914                rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    911 #if H_3D_VSP
     915#if H_3D_VSP || NH_3D_DBBP
    912916                rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    913917#endif
     
    929933#endif
    930934                rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    931 #if H_3D_VSP
     935#if H_3D_VSP || NH_3D_DBBP
    932936                rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    933937#endif
     
    957961
    958962                rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    959 #if H_3D_VSP
     963#if H_3D_VSP || NH_3D_DBBP
    960964                rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    961965#endif
     
    977981#endif
    978982                rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    979 #if H_3D_VSP
     983#if H_3D_VSP || NH_3D_DBBP
    980984                rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    981985#endif
     
    9971001#endif
    9981002                rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    999 #if H_3D_VSP
     1003#if H_3D_VSP || NH_3D_DBBP
    10001004                rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    10011005#endif
     
    10181022#endif
    10191023                rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    1020 #if H_3D_VSP
     1024#if H_3D_VSP || NH_3D_DBBP
    10211025                rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    10221026#endif
     
    10341038            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU );
    10351039            rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    1036 #if H_3D_VSP
     1040#if H_3D_VSP || NH_3D_DBBP
    10371041              rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    10381042#endif
    10391043            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD );
    10401044            rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    1041 #if H_3D_VSP
     1045#if H_3D_VSP || NH_3D_DBBP
    10421046              rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    10431047#endif
     
    10491053            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N );
    10501054            rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    1051 #if H_3D_VSP
     1055#if H_3D_VSP || NH_3D_DBBP
    10521056              rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    10531057#endif
    10541058            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N );
    10551059            rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    1056 #if H_3D_VSP
     1060#if H_3D_VSP || NH_3D_DBBP
    10571061              rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    10581062#endif
     
    25442548 
    25452549#if NH_3D_DBBP
    2546   // Is this correct here, was under the macro SEC_DBBP_DISALLOW_8x8_I0078, however the function is related to Single Depth Mode
    25472550  if(uiWidth <= 8)
    25482551  {
Note: See TracChangeset for help on using the changeset viewer.