Ignore:
Timestamp:
23 Sep 2013, 08:46:50 (11 years ago)
Author:
chang
Message:

Added H_3D_FCO for flexible coding order (FCO).
The results can be seen under codingresults/3D_8.1_vs_fco_only.xls.
The configuration files for FCO are located at cfg/3D-HEVC/NonCTC/fco.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibCommon/TComDataCU.cpp

    r622 r629  
    35693569    UInt uiPartIdxCenter;
    35703570    xDeriveCenterIdx( uiPUIdx, uiPartIdxCenter );   
     3571#if H_3D_FCO
     3572    TComPic * pcTexturePic = m_pcSlice->getTexturePic();
     3573    TComDataCU *pcTextureCU = 0;
     3574    if ( pcTexturePic )
     3575        pcTextureCU = pcTexturePic->getCU( getAddr() );
     3576#else
    35713577    TComDataCU *pcTextureCU = m_pcSlice->getTexturePic()->getCU( getAddr() );
     3578#endif
    35723579 
     3580#if H_3D_FCO
     3581    if ( pcTextureCU && pcTexturePic->getReconMark() && !pcTextureCU->isIntra( uiPartIdxCenter ) )
     3582#else
    35733583    if ( pcTextureCU && !pcTextureCU->isIntra( uiPartIdxCenter ) )
     3584#endif
    35743585    {
    35753586      pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] );
     
    55625573
    55635574#if H_3D_NBDV_REF
    5564           TComPic* picDepth = NULL;         
     5575          TComPic* picDepth = NULL;   
     5576#if H_3D_FCO_VSP_DONBDV
     5577          picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
     5578          if ( picDepth->getPicYuvRec() != NULL  ) 
     5579          {
     5580            cColMv.setZero();
     5581          }
     5582          else // Go back with virtual depth
     5583          {
     5584            picDepth = getSlice()->getIvPic( true, iTargetViewIdx );
     5585          }
     5586
     5587          assert(picDepth != NULL);
     5588#else
    55655589          picDepth = getSlice()->getIvPic( true, iTargetViewIdx );
    55665590          assert(picDepth != NULL);
     5591#endif
    55675592          if (picDepth && bDepthRefine)
    55685593            estimateDVFromDM(iTargetViewIdx, uiPartIdx, picDepth, uiPartAddr, &cColMv );
     
    56625687          pDInfo->m_aVIdxCan = cIDVInfo.m_aVIdxCan[iList][ curPos ];
    56635688#if H_3D_NBDV_REF
     5689#if H_3D_FCO_VSP_DONBDV
     5690          TComPic* picDepth  = NULL;
     5691
     5692          picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
     5693          if ( picDepth->getPicYuvRec() != NULL ) 
     5694          {
     5695            cDispVec.setZero();
     5696          }
     5697          else // Go back with virtual depth
     5698          {
     5699            picDepth = getSlice()->getIvPic( true, pDInfo->m_aVIdxCan );
     5700          }
     5701
     5702          assert(picDepth != NULL);
     5703#else
    56645704          TComPic* picDepth = getSlice()->getIvPic( true, pDInfo->m_aVIdxCan );
    56655705          assert(picDepth!=NULL);
     5706#endif
    56665707
    56675708          if (picDepth && bDepthRefine)
     
    57075748#if H_3D_NBDV_REF
    57085749    TComPic* picDepth = NULL;
     5750#if H_3D_FCO_VSP_DONBDV
     5751    picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
     5752    if ( picDepth->getPicYuvRec() != NULL ) 
     5753    {
     5754      defaultDV.setZero();
     5755    }
     5756    else // Go back with virtual depth
     5757    {
     5758      picDepth = getSlice()->getIvPic( true, viewIndex );
     5759    }
     5760
     5761    assert(picDepth != NULL);
     5762#else
    57095763    picDepth = getSlice()->getIvPic( true, viewIndex );
    57105764    assert(picDepth!=NULL);
    5711 
     5765#endif
    57125766    if (picDepth && bDepthRefine)
    57135767    {
     
    58125866          TComPic* picDepth = NULL;
    58135867          assert(getSlice()->getRefPic(eRefPicList, refId)->getPOC() == getSlice()->getPOC());         
     5868#if H_3D_FCO_VSP_DONBDV
     5869          picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
     5870          if ( picDepth->getPicYuvRec() != NULL ) 
     5871          {
     5872            cMvPred.setZero();
     5873          }
     5874          else// Go back with virtual depth
     5875          {
     5876            picDepth = getSlice()->getIvPic (true, refViewIdx );
     5877          }
     5878          assert(picDepth != NULL);
     5879#else
    58145880          picDepth   = getSlice()->getIvPic (true, refViewIdx );
    58155881          assert(picDepth != NULL);
    5816 
     5882#endif
    58175883          UInt uiPartIdx = 0;   //Notes from MTK: Please confirm that using 0 as partition index and partition address is correct for CU-level DoNBDV
    58185884          UInt uiPartAddr = 0;  //QC: confirmed
Note: See TracChangeset for help on using the changeset viewer.