Changeset 1147 in 3DVCSoftware


Ignore:
Timestamp:
25 Feb 2015, 12:11:05 (9 years ago)
Author:
samsung-htm
Message:

Integration of K0035: Removal of encoder restriction of ARP

Location:
branches/HTM-13.1-dev1-Samsung/source/Lib
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-13.1-dev1-Samsung/source/Lib/TLibCommon/TComDataCU.cpp

    r1146 r1147  
    891891  memset( m_puhCbf[2],          0, iSizeInUchar );
    892892  memset( m_puhDepth,     uiDepth, iSizeInUchar );
    893 #if H_3D_NBDV
     893#if H_3D_NBDV && !SEC_ARP_REM_ENC_RESTRICT_K0035
    894894  m_pDvInfo->bDV = false;
    895895#endif
     
    59405940#endif
    59415941#if H_3D_IV_MERGE
     5942#if SEC_ARP_REM_ENC_RESTRICT_K0035
     5943Void TComDataCU::getDispforDepth (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp)
     5944#else
    59425945Bool TComDataCU::getDispforDepth (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp)
     5946#endif
    59435947{
    59445948
     
    59565960      pDisp->m_acNBDV = cMv;
    59575961      pDisp->m_aVIdxCan = iViewIdx;
    5958 
     5962#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    59595963      return true;
    5960   }
     5964#endif
     5965  }
     5966#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    59615967  return false;
     5968#endif
    59625969}
    59635970#endif
     
    60386045//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
    60396046//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
     6047#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6048Void TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo
     6049#else
    60406050Bool TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo
     6051#endif
    60416052#if H_3D_NBDV_REF
    60426053, Bool bDepthRefine
     
    60466057  //// ******* Init variables ******* /////
    60476058  // Init disparity struct for results
     6059#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    60486060  pDInfo->bDV = false;   
     6061#endif
    60496062  pDInfo->m_aVIdxCan = -1;
    60506063
     
    61416154        pDInfo->m_acDoNBDV  = cColMv;
    61426155#endif //H_3D_NBDV_REF
     6156#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6157        return;
     6158#else
    61436159        return true;
     6160#endif
    61446161      }
    61456162    }
     
    61586175#endif
    61596176    ) )
     6177#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6178    return;
     6179#else
    61606180    return true;
     6181#endif
    61616182
    61626183  //// ******* Get disparity from above block ******* /////
     
    61706191#endif
    61716192      ) )
     6193#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6194      return;
     6195#else
    61726196      return true;
     6197#endif
    61736198  }
    61746199
     
    62166241          pDInfo->m_acDoNBDV = cDispVec;
    62176242#endif
     6243#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6244          return;
     6245#else
    62186246          return true;
     6247#endif
    62196248        }
    62206249      }
     
    62526281      pDInfo->m_acDoNBDV = defaultDV;
    62536282#endif
     6283#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    62546284      return true;
    6255   }
     6285#endif
     6286  }
     6287#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    62566288  return false;
     6289#endif
    62576290}
    62586291
  • branches/HTM-13.1-dev1-Samsung/source/Lib/TLibCommon/TComDataCU.h

    r1145 r1147  
    501501  );
    502502  Bool          xGetColDisMV      ( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx );
     503#if SEC_ARP_REM_ENC_RESTRICT_K0035
     504  Void          getDisMvpCandNBDV ( DisInfo* pDInfo
     505#else
    503506  Bool          getDisMvpCandNBDV ( DisInfo* pDInfo
     507#endif
    504508#if H_3D_NBDV_REF
    505509   , Bool bDepthRefine = false
     
    508512   
    509513#if H_3D
     514#if SEC_ARP_REM_ENC_RESTRICT_K0035
     515  Void          getDispforDepth  ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp);
     516#else
    510517  Bool          getDispforDepth  ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp);
     518#endif
    511519  Bool          getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm );
    512520#endif
  • branches/HTM-13.1-dev1-Samsung/source/Lib/TLibCommon/TComMotionInfo.h

    r1084 r1147  
    6363typedef struct _DisCand
    6464{
     65#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    6566  Bool bDV;
     67#endif
    6668  TComMv m_acNBDV;              // DV from NBDV
    6769#if H_3D_NBDV_REF
  • branches/HTM-13.1-dev1-Samsung/source/Lib/TLibCommon/TComPrediction.cpp

    r1133 r1147  
    12551255#if H_3D_NBDV
    12561256  DisInfo cDistparity;
     1257#if SEC_ARP_REM_ENC_RESTRICT_K0035
     1258  cDistparity.m_acNBDV = pcCU->getDvInfo(0).m_acNBDV;
     1259  cDistparity.m_aVIdxCan = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan;
     1260#else
    12571261  cDistparity.bDV           = pcCU->getDvInfo(uiPartAddr).bDV;
    12581262  if( cDistparity.bDV )
     
    12621266    cDistparity.m_aVIdxCan = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan;
    12631267  }
     1268#endif
    12641269#else
    12651270  assert(0); // ARP can be applied only when a DV is available
    12661271#endif
    1267 
     1272#if SEC_ARP_REM_ENC_RESTRICT_K0035
     1273  UChar dW = pcCU->getARPW ( uiPartAddr );
     1274#else
    12681275  UChar dW = cDistparity.bDV ? pcCU->getARPW ( uiPartAddr ) : 0;
    1269 
     1276#endif
     1277
     1278#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    12701279  if( cDistparity.bDV )
     1280#endif
    12711281  {
    12721282    Int arpRefIdx = pcCU->getSlice()->getFirstTRefIdx(eRefPicList);
     
    13201330      pYuvB0->clear(); pYuvB1->clear();
    13211331    }
    1322 
     1332#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    13231333    assert ( cDistparity.bDV );
    1324    
     1334#endif   
    13251335    TComMv cNBDV = cDistparity.m_acNBDV;
    13261336    pcCU->clipMv( cNBDV );
  • branches/HTM-13.1-dev1-Samsung/source/Lib/TLibCommon/TypeDef.h

    r1146 r1147  
    118118                                              // MTK_I0072_IVARP_SCALING_FIX
    119119#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
     120
     121#define SEC_ARP_REM_ENC_RESTRICT_K0035    1   // Removal of encoder restriction of ARP, JCT3V-K0035
    120122
    121123#define H_3D_IC                           1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
  • branches/HTM-13.1-dev1-Samsung/source/Lib/TLibDecoder/TDecCu.cpp

    r1145 r1147  
    299299#if H_3D_NBDV
    300300  DisInfo DvInfo;
     301#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    301302  DvInfo.bDV = false;
     303#endif
    302304  DvInfo.m_acNBDV.setZero();
    303305  DvInfo.m_aVIdxCan = 0;
     
    334336      if( pcCU->getSlice()->getIsDepth())
    335337      {
     338#if SEC_ARP_REM_ENC_RESTRICT_K0035
     339        m_ppcCU[uiDepth]->getDispforDepth(0, 0, &DvInfo);
     340#else
    336341        DvInfo.bDV = m_ppcCU[uiDepth]->getDispforDepth(0, 0, &DvInfo);
     342#endif
    337343      }
    338344      else
     
    342348      if( pcCU->getSlice()->getDepthBasedBlkPartFlag() )  //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done.
    343349      {
     350#if SEC_ARP_REM_ENC_RESTRICT_K0035
     351        m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true);
     352#else
    344353        DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true);
     354#endif
    345355      }
    346356      else
    347357#endif
    348358      {
     359#if SEC_ARP_REM_ENC_RESTRICT_K0035
     360        m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);
     361#else
    349362        DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);
     363#endif
    350364      }
    351365#if H_3D_IV_MERGE
  • branches/HTM-13.1-dev1-Samsung/source/Lib/TLibEncoder/TEncCu.cpp

    r1145 r1147  
    437437#if H_3D_VSP
    438438  DisInfo DvInfo;
     439#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    439440  DvInfo.bDV = false;
     441#endif
    440442  DvInfo.m_acNBDV.setZero();
    441443  DvInfo.m_aVIdxCan = 0;
     
    583585          if (rpcTempCU->getSlice()->getIsDepth() )
    584586          {
     587#if SEC_ARP_REM_ENC_RESTRICT_K0035
     588            rpcTempCU->getDispforDepth(0, 0, &DvInfo);
     589#else
    585590            DvInfo.bDV = rpcTempCU->getDispforDepth(0, 0, &DvInfo);
     591#endif
    586592          }
    587593          else
     
    590596#if H_3D_NBDV_REF
    591597          if( rpcTempCU->getSlice()->getDepthRefinementFlag() )
     598#if SEC_ARP_REM_ENC_RESTRICT_K0035
     599            rpcTempCU->getDisMvpCandNBDV(&DvInfo, true);
     600#else
    592601            DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo, true);
     602#endif
    593603          else
    594604#endif
     605#if SEC_ARP_REM_ENC_RESTRICT_K0035
     606            rpcTempCU->getDisMvpCandNBDV(&DvInfo);
     607#else
    595608            DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo);
     609#endif
    596610
    597611#if H_3D_IV_MERGE
     
    18531867#if H_3D_ARP
    18541868  Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1;
     1869#if SEC_ARP_REM_ENC_RESTRICT_K0035
     1870  if( nARPWMax < 0 || bICFlag )
     1871#else
    18551872  if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV || bICFlag )
     1873#endif
    18561874  {
    18571875    nARPWMax = 0;
     
    21932211  Bool bFirstTime = true;
    21942212  Int nARPWMax    = rpcTempCU->getSlice()->getARPStepNum() - 1;
    2195 
     2213#if SEC_ARP_REM_ENC_RESTRICT_K0035
     2214  if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || rpcTempCU->getICFlag(0) )
     2215#else
    21962216  if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV || rpcTempCU->getICFlag(0) )
     2217#endif
    21972218  {
    21982219    nARPWMax = 0;
Note: See TracChangeset for help on using the changeset viewer.