Ignore:
Timestamp:
20 May 2015, 07:55:46 (10 years ago)
Author:
mediatek-htm
Message:

Reactive DoNBDV ( the MACRO is "NH_3D_NBDV_REF")

By Yi-Wen Chen (yiwen.chen@…)

Location:
branches/HTM-14.1-update-dev3-MediaTek/source/Lib/TLibCommon
Files:
5 edited

Legend:

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

    r1210 r1217  
    21602160   
    21612161    Bool depthRefineFlag = false;
    2162 #if H_3D_NBDV_REF
    2163     depthRefineFlag = m_pcSlice->getDepthRefinementFlag(  );
    2164 #endif // H_3D_NBDV_REF
     2162#if NH_3D_NBDV_REF
     2163    depthRefineFlag = m_pcSlice->getDepthRefinementFlag();
     2164#endif // NH_3D_NBDV_REF
    21652165   
    21662166    TComMv cDv = depthRefineFlag ? DvInfo.m_acDoNBDV : DvInfo.m_acNBDV;
     
    57605760#if NH_3D_NBDV
    57615761//Notes from QC:
    5762 //TBD#1: DoNBDV related contributions are just partially integrated under the marco of H_3D_NBDV_REF, remove this comment once DoNBDV and BVSP are done
     5762//TBD#1: DoNBDV related contributions are just partially integrated under the marco of NH_3D_NBDV_REF, remove this comment once DoNBDV and BVSP are done
    57635763//TBD#2: set of DvMCP values need to be done as part of inter-view motion prediction process. Remove this comment once merge related integration is done
    57645764//To be checked: Parallel Merge features for NBDV, related to DV_DERIVATION_PARALLEL_B0096 and LGE_IVMP_PARALLEL_MERGE_B0136 are not integrated. The need of these features due to the adoption of CU-based NBDV is not clear. We need confirmation on this, especially by proponents
    57655765Void TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo
    5766 #if H_3D_NBDV_REF
     5766#if NH_3D_NBDV_REF
    57675767, Bool bDepthRefine
    57685768#endif
     
    57875787    }
    57885788  }
    5789 #if H_3D_NBDV_REF
     5789#if NH_3D_NBDV_REF
    57905790  if( !m_pcSlice->getDepthRefinementFlag( ) )
    57915791  {
     
    58375837        pDInfo->m_aVIdxCan  = iTargetViewIdx;
    58385838
    5839 #if H_3D_NBDV_REF
     5839#if NH_3D_NBDV_REF
    58405840        TComPic* picDepth = NULL;   
    58415841#if H_3D_FCO_VSP_DONBDV_E0163
     
    58595859        }
    58605860        pDInfo->m_acDoNBDV  = cColMv;
    5861 #endif //H_3D_NBDV_REF
     5861#endif //NH_3D_NBDV_REF
    58625862        return;
    58635863      }
     
    58735873  bCheckMcpDv = true;
    58745874  if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, pDInfo, bCheckMcpDv, &cIDVInfo, DVFROM_LEFT
    5875 #if H_3D_NBDV_REF
     5875#if NH_3D_NBDV_REF
    58765876    , bDepthRefine
    58775877#endif
     
    58855885    bCheckMcpDv = ( ( getCtuRsAddr() - pcTmpCU->getCtuRsAddr() ) == 0);
    58865886    if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, pDInfo, bCheckMcpDv, &cIDVInfo, DVFROM_ABOVE
    5887 #if H_3D_NBDV_REF
     5887#if NH_3D_NBDV_REF
    58885888      , bDepthRefine
    58895889#endif
     
    59045904          pDInfo->m_acNBDV = cDispVec;
    59055905          pDInfo->m_aVIdxCan = cIDVInfo.m_aVIdxCan[iList][ curPos ];
    5906 #if H_3D_NBDV_REF
     5906#if NH_3D_NBDV_REF
    59075907#if H_3D_FCO_VSP_DONBDV_E0163
    59085908          TComPic* picDepth  = NULL;
     
    59425942    pDInfo->m_aVIdxCan = getSlice()->getDefaultRefViewIdx();
    59435943
    5944 #if H_3D_NBDV_REF
     5944#if NH_3D_NBDV_REF
    59455945    TComPic* picDepth = NULL;
    59465946#if H_3D_FCO_VSP_DONBDV_E0163
     
    59685968}
    59695969
    5970 #if H_3D_NBDV_REF
     5970#if NH_3D_NBDV_REF
    59715971Pel TComDataCU::getMcpFromDM(TComPicYuv* pcBaseViewDepthPicYuv, TComMv* mv, Int iBlkX, Int iBlkY, Int iBlkWidth, Int iBlkHeight, Int* aiShiftLUT )
    59725972{
    5973   Int iPictureWidth  = pcBaseViewDepthPicYuv->getWidth();
    5974   Int iPictureHeight = pcBaseViewDepthPicYuv->getHeight();
    5975  
     5973  Int iPictureWidth  = pcBaseViewDepthPicYuv->getWidth(COMPONENT_Y);
     5974  Int iPictureHeight = pcBaseViewDepthPicYuv->getHeight(COMPONENT_Y);
     5975
    59765976  Int depthStartPosX = Clip3(0,   iPictureWidth - 1,  iBlkX + ((mv->getHor()+2)>>2));
    59775977  Int depthStartPosY = Clip3(0,   iPictureHeight - 1, iBlkY + ((mv->getVer()+2)>>2));
     
    59795979  Int depthEndPosY   = Clip3(0,   iPictureHeight - 1, iBlkY + iBlkHeight - 1 + ((mv->getVer()+2)>>2));
    59805980
    5981   Pel* depthTL  = pcBaseViewDepthPicYuv->getLumaAddr();
    5982   Int depStride =  pcBaseViewDepthPicYuv->getStride();
     5981  Pel* depthTL  = pcBaseViewDepthPicYuv->getAddr(COMPONENT_Y);
     5982  Int depStride =  pcBaseViewDepthPicYuv->getStride(COMPONENT_Y);
    59835983
    59845984  Pel  maxDepthVal = 0;
     
    59955995  if (picDepth)
    59965996  {
    5997     UInt uiAbsPartAddrCurrCU = m_uiAbsIdxInLCU + uiPartAddr;
     5997    UInt uiAbsPartAddrCurrCU = m_absZIdxInCtu + uiPartAddr;
    59985998    Int iWidth, iHeight;
    59995999    getPartIndexAndSize( uiPartIdx, uiPartAddr, iWidth, iHeight ); // The modified value of uiPartAddr won't be used any more
    60006000
    60016001    TComPicYuv* pcBaseViewDepthPicYuv = picDepth->getPicYuvRec();
    6002     Int iBlkX = ( getAddr() % picDepth->getFrameWidthInCU() ) * g_uiMaxCUWidth  + g_auiRasterToPelX[ g_auiZscanToRaster[ uiAbsPartAddrCurrCU ] ];
    6003     Int iBlkY = ( getAddr() / picDepth->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ uiAbsPartAddrCurrCU ] ];
     6002    const TComSPS   &sps =*(getSlice()->getSPS());
     6003    Int iBlkX = ( getCtuRsAddr() % picDepth->getFrameWidthInCtus() ) * sps.getMaxCUWidth()  + g_auiRasterToPelX[ g_auiZscanToRaster[ uiAbsPartAddrCurrCU ] ];
     6004    Int iBlkY = ( getCtuRsAddr() / picDepth->getFrameWidthInCtus() ) * sps.getMaxCUHeight() + g_auiRasterToPelY[ g_auiZscanToRaster[ uiAbsPartAddrCurrCU ] ];
    60046005
    60056006    Int* aiShiftLUT = getSlice()->getDepthToDisparityB(refViewIdx );
     
    60096010  }
    60106011}
    6011 #endif //H_3D_NBDV_REF
     6012#endif //NH_3D_NBDV_REF
    60126013
    60136014
    60146015Bool TComDataCU::xCheckSpatialNBDV( TComDataCU* pcTmpCU, UInt uiIdx, DisInfo* pNbDvInfo, Bool bSearchForMvpDv, IDVInfo* paIDVInfo, UInt uiMvpDvPos
    6015 #if H_3D_NBDV_REF
     6016#if NH_3D_NBDV_REF
    60166017, Bool bDepthRefine
    60176018#endif
     
    60346035          pNbDvInfo->m_acNBDV = cMvPred;
    60356036          pNbDvInfo->m_aVIdxCan = refViewIdx;
    6036 #if H_3D_NBDV_REF
     6037#if NH_3D_NBDV_REF
    60376038          TComPic* picDepth = NULL;
    60386039          assert(getSlice()->getRefPic(eRefPicList, refId)->getPOC() == getSlice()->getPOC());         
     
    62096210
    62106211  Bool depthRefineFlag = false;
    6211 #if H_3D_NBDV_REF
     6212#if NH_3D_NBDV_REF
    62126213  depthRefineFlag = m_pcSlice->getDepthRefinementFlag( );
    6213 #endif // H_3D_NBDV_REF
     6214#endif // NH_3D_NBDV_REF
    62146215
    62156216  TComMv      cDv = depthRefineFlag ? pDInfo->m_acDoNBDV : pDInfo->m_acNBDV;
     
    63466347
    63476348  Bool depthRefineFlag = false;
    6348 #if H_3D_NBDV_REF
     6349#if NH_3D_NBDV_REF
    63496350  depthRefineFlag = m_pcSlice->getDepthRefinementFlag( );
    6350 #endif // H_3D_NBDV_REF
     6351#endif // NH_3D_NBDV_REF
    63516352
    63526353  TComMv      cDv = depthRefineFlag ? pDInfo->m_acDoNBDV : pDInfo->m_acNBDV;
     
    66456646            abPdmAvailable[ iRefListId + 2 + (iLoopCan<<2) ] = true;
    66466647            paiPdmRefIdx  [ iRefListId + 2 + (iLoopCan<<2) ] = iPdmRefIdx;
    6647 #if H_3D_NBDV_REF
     6648#if NH_3D_NBDV_REF
    66486649            TComMv cMv = depthRefineFlag ? pDInfo->m_acDoNBDV : pDInfo->m_acNBDV;
    66496650#endif
  • branches/HTM-14.1-update-dev3-MediaTek/source/Lib/TLibCommon/TComDataCU.h

    r1210 r1217  
    490490  Bool          xCheckSpatialNBDV (TComDataCU* pcTmpCU, UInt uiIdx, DisInfo* pNbDvInfo, Bool bSearchForMvpDv, IDVInfo* paMvpDvInfo,
    491491                                   UInt uiMvpDvPos
    492 #if H_3D_NBDV_REF
     492#if NH_3D_NBDV_REF
    493493  , Bool bDepthRefine = false
    494494#endif
     
    496496  Bool          xGetColDisMV      ( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx );
    497497  Void          getDisMvpCandNBDV ( DisInfo* pDInfo
    498 #if H_3D_NBDV_REF
     498#if NH_3D_NBDV_REF
    499499   , Bool bDepthRefine = false
    500500#endif
     
    507507   Bool          getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index);
    508508#endif
    509 #if H_3D_NBDV_REF
     509#if NH_3D_NBDV_REF
    510510  Pel           getMcpFromDM(TComPicYuv* pcBaseViewDepthPicYuv, TComMv* mv, Int iBlkX, Int iBlkY, Int iWidth, Int iHeight, Int* aiShiftLUT );
    511511  Void          estimateDVFromDM(Int refViewIdx, UInt uiPartIdx, TComPic* picDepth, UInt uiPartAddr, TComMv* cMvPred );
    512 #endif //H_3D_NBDV_REF
     512#endif //NH_3D_NBDV_REF
    513513#endif
    514514#if  H_3D_FAST_TEXTURE_ENCODING
  • branches/HTM-14.1-update-dev3-MediaTek/source/Lib/TLibCommon/TComMotionInfo.h

    r1210 r1217  
    6464{
    6565  TComMv m_acNBDV;              // DV from NBDV
    66 #if H_3D_NBDV_REF
     66#if NH_3D_NBDV_REF
    6767  TComMv m_acDoNBDV;            // DV from DoNBDV
    6868#endif 
  • branches/HTM-14.1-update-dev3-MediaTek/source/Lib/TLibCommon/TComSlice.cpp

    r1210 r1217  
    38503850  setupLUT = setupLUT || getViewSynthesisPredFlag( );
    38513851
    3852 #if H_3D_NBDV_REF
     3852#if NH_3D_NBDV_REF
    38533853  setupLUT = setupLUT || getDepthRefinementFlag( );
    38543854#endif 
  • branches/HTM-14.1-update-dev3-MediaTek/source/Lib/TLibCommon/TypeDef.h

    r1210 r1217  
    7070#define NH_3D_VSO                         1
    7171#define NH_3D_NBDV                        1
     72#define NH_3D_NBDV_REF                    1
    7273#endif
    7374
Note: See TracChangeset for help on using the changeset viewer.