Changeset 1100 in 3DVCSoftware for branches/HTM-12.2-dev2-Samsung/source/Lib


Ignore:
Timestamp:
4 Nov 2014, 08:31:17 (10 years ago)
Author:
samsung-htm
Message:

Integration of JCT3V-J0037 (Item1 and Item4)

Location:
branches/HTM-12.2-dev2-Samsung/source/Lib
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.cpp

    r1094 r1100  
    36583658}
    36593659
     3660#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     3661Void TComSlice::setDefaultRefView( )
     3662{
     3663  setDefaultRefViewIdx( -1 );
     3664  setDefaultRefViewIdxAvailableFlag( false );
     3665
     3666  Int valid = 0;
     3667  Int DefaultRefViewIdx = -1;
     3668  for( UInt curViewIdx = 0; curViewIdx < getViewIndex() && valid == 0; curViewIdx++ )
     3669  {
     3670    for( Int iRefListId = 0; ( iRefListId < (isInterB() ? 2 : 1) ) && !isIntra() && valid == 0; iRefListId++ )
     3671    {
     3672      RefPicList eRefPicList = RefPicList( iRefListId );
     3673      Int        iNumRefPics = getNumRefIdx( eRefPicList );
     3674      for( Int i = 0; i < iNumRefPics; i++ )
     3675      {
     3676        if(getPOC() == getRefPic( eRefPicList, i )->getPOC() && curViewIdx == getRefPic( eRefPicList, i )->getViewIndex())
     3677        {
     3678          valid = 1;
     3679          DefaultRefViewIdx = curViewIdx;
     3680          break;
     3681        }
     3682      }
     3683    }
     3684  }
     3685  if( valid )
     3686  {
     3687    setDefaultRefViewIdx( DefaultRefViewIdx );
     3688    setDefaultRefViewIdxAvailableFlag( true );   
     3689  }
     3690}
     3691#endif
     3692
    36603693#if H_3D_ARP
    36613694Void TComSlice::setARPStepNum( TComPicLists*ivPicLists )
     
    36903723      }
    36913724    }
     3725#if SEC_ARP_VIEW_REF_CHECK_J0037
     3726    tempRefPicInListsFlag = (getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0) && getDefaultRefViewIdxAvailableFlag();
     3727#else
    36923728    tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0;
     3729#endif
    36933730    m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0;
    36943731  }
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.h

    r1094 r1100  
    27802780  Void setDefaultRefViewIdxAvailableFlag(Bool bViewIdx) { m_bDefaultRefViewIdxAvailableFlag = bViewIdx; }
    27812781#endif
     2782#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     2783  Void setDefaultRefView( );
     2784#endif
    27822785
    27832786protected:
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibCommon/TypeDef.h

    r1098 r1100  
    115115                                              // SHARP_ARP_CHROMA_I0104     
    116116                                              // MTK_I0072_IVARP_SCALING_FIX
     117#define SEC_ARP_VIEW_REF_CHECK_J0037      1   // Signaling iv_res_pred_weight_idx when the current slice has both view and temporal reference picture(s), JCT3V-J0037 item1
    117118
    118119#define H_3D_IC                           1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
     
    256257                                              // SHARP_DBBP_SIMPLE_FLTER_I0109     1   // Simple condition and one dimensional filter for DBBP
    257258                                              // SEC_DBBP_DMM4_THRESHOLD_I0076     Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076
    258 
     259#define SEC_DBBP_VIEW_REF_CHECK_J0037     1   // Signaling dbbp_flag when the current slice has view reference picture(s), JCT3V-J0037 item4
    259260
    260261#define H_3D_DDD                          1   // Disparity derived depth coding
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1094 r1100  
    152152 
    153153#if H_3D_DBBP
     154#if SEC_DBBP_VIEW_REF_CHECK_J0037
     155  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     156#else
    154157  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 )
     158#endif
    155159  {
    156160    decodeDBBPFlag(pcCU, uiAbsPartIdx, uiDepth);
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibDecoder/TDecSlice.cpp

    r1094 r1100  
    280280      iNumSubstreamsPerTile = 1;
    281281    }
    282 #if LGE_DEFAULT_DV_J0046
     282#if LGE_DEFAULT_DV_J0046 && !SEC_ARP_VIEW_REF_CHECK_J0037 && !SEC_DBBP_VIEW_REF_CHECK_J0037
    283283    pcSlice->setDefaultRefViewIdx( -1 );
    284284    pcSlice->setDefaultRefViewIdxAvailableFlag( false );
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibDecoder/TDecTop.cpp

    r1084 r1100  
    10821082    pcSlice->getTempRefPicLists( m_cListPic, m_refPicSetInterLayer0, m_refPicSetInterLayer1, tempRefPicLists, usedAsLongTerm, numPocTotalCurr);
    10831083    pcSlice->setRefPicList     ( tempRefPicLists, usedAsLongTerm, numPocTotalCurr, true );
     1084
     1085#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     1086    pcSlice->setDefaultRefView();
     1087#endif
     1088
    10841089#if H_3D_ARP
    10851090    pcSlice->setARPStepNum(m_ivPicLists);
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibEncoder/TEncCu.cpp

    r1094 r1100  
    605605      }
    606606#if  H_3D_FAST_TEXTURE_ENCODING
     607#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     608      if(rpcTempCU->getSlice()->getViewIndex() && !rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     609#else
    607610      if(rpcTempCU->getSlice()->getViewIndex() && !rpcTempCU->getSlice()->getIsDepth())
     611#endif
    608612      {
    609613        PartSize ePartTemp = rpcTempCU->getPartitionSize(0);
     
    668672         
    669673#if H_3D_DBBP
     674#if SEC_DBBP_VIEW_REF_CHECK_J0037
     675          if( m_pcEncCfg->getUseDBBP() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     676#else
    670677          if( m_pcEncCfg->getUseDBBP() )
     678#endif
    671679          {
    672680            xCheckRDCostInterDBBP( rpcBestCU, rpcTempCU, false );
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibEncoder/TEncEntropy.cpp

    r1084 r1100  
    268268 
    269269#if H_3D_DBBP
     270#if SEC_DBBP_VIEW_REF_CHECK_J0037
     271  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     272#else
    270273  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 )
     274#endif
    271275  {
    272276    encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD);
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibEncoder/TEncGOP.cpp

    r1084 r1100  
    953953    pcSlice->setApplySingleDepthMode(enableSingleDepthMode);
    954954#endif   
     955#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     956    pcSlice->setDefaultRefView();
     957#endif
    955958#if H_3D_ARP
    956959    //GT: This seems to be broken when layerId in vps is not equal to layerId in nuh
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibEncoder/TEncSlice.cpp

    r1094 r1100  
    10111011    }
    10121012  }
    1013 #if LGE_DEFAULT_DV_J0046
     1013#if LGE_DEFAULT_DV_J0046 && !SEC_ARP_VIEW_REF_CHECK_J0037 && !SEC_DBBP_VIEW_REF_CHECK_J0037
    10141014  pcSlice->setDefaultRefViewIdx( -1 );
    10151015  pcSlice->setDefaultRefViewIdxAvailableFlag( false );
Note: See TracChangeset for help on using the changeset viewer.