Changeset 1098 in 3DVCSoftware


Ignore:
Timestamp:
4 Nov 2014, 02:10:27 (9 years ago)
Author:
samsung-htm
Message:

Integration of JCT3V-J0039 (Removal of redundant VSP in Merge list)

Location:
branches/HTM-12.2-dev2-Samsung
Files:
3 added
6 edited

Legend:

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

    r1094 r1098  
    38913891)
    38923892{
     3893#if !SEC_A1_BASED_VSP_J0039
    38933894  UInt uiAbsPartAddr = m_uiAbsIdxInLCU + uiAbsPartIdx;
     3895#endif
    38943896#if H_3D_IV_MERGE
    38953897  ////////////////////////////
     
    40084010
    40094011  // above
     4012#if !SEC_A1_BASED_VSP_J0039
    40104013  UInt uiAbovePartIdx = 0;
    40114014  TComDataCU* pcCUAbove = 0;
    40124015  pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT );
     4016#endif
    40134017
    40144018  if (getAvailableFlagB1())
     
    40174021#if H_3D_VSP
    40184022    ,
     4023#if SEC_A1_BASED_VSP_J0039
     4024      false
     4025#else
    40194026      ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) != 0)
    40204027#if H_3D_IC
     
    40294036      )
    40304037#endif
     4038#endif
    40314039      , false
    40324040      );
     
    40354043
    40364044  // above right
     4045#if !SEC_A1_BASED_VSP_J0039
    40374046  UInt uiAboveRightPartIdx = 0;
    40384047  TComDataCU* pcCUAboveRight = 0;
    40394048  pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT );
     4049#endif
    40404050
    40414051  if (getAvailableFlagB0())
     
    40444054#if H_3D_VSP
    40454055    ,
     4056#if SEC_A1_BASED_VSP_J0039
     4057      false
     4058#else
    40464059      ( ( ( getAddr() - pcCUAboveRight->getAddr() ) == 0) && (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) != 0)
    40474060#if H_3D_IC
     
    40564069      )
    40574070#endif
     4071#endif
    40584072      , false
    40594073      );
     
    40624076
    40634077  // left bottom
     4078#if !SEC_A1_BASED_VSP_J0039
    40644079  UInt uiLeftBottomPartIdx = 0;
    40654080  TComDataCU* pcCULeftBottom = getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB );
     4081#endif
    40664082
    40674083  if (getAvailableFlagA0())
     
    40704086#if H_3D_VSP
    40714087    ,
     4088#if SEC_A1_BASED_VSP_J0039
     4089      false
     4090#else
    40724091      (pcCULeftBottom->getVSPFlag(uiLeftBottomPartIdx) != 0
    40734092#if H_3D_IC
     
    40824101      )
    40834102#endif
     4103#endif
    40844104      , false
    40854105      );
     
    40884108
    40894109  // above left
     4110#if !SEC_A1_BASED_VSP_J0039
    40904111  UInt uiAboveLeftPartIdx = 0;
    40914112  TComDataCU* pcCUAboveLeft = 0;
    40924113  pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr );
     4114#endif
    40934115
    40944116  if (getAvailableFlagB2())
     
    40974119#if H_3D_VSP
    40984120    ,
     4121#if SEC_A1_BASED_VSP_J0039
     4122      false
     4123#else
    40994124      ( ( ( getAddr() - pcCUAboveLeft->getAddr() ) == 0) && (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) != 0)
    41004125#if H_3D_IC
     
    41084133#endif
    41094134      )
     4135#endif
    41104136#endif
    41114137      , false
     
    44864512
    44874513#if H_3D
     4514#if SEC_A1_BASED_VSP_J0039
     4515  iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable;
     4516#else
    44884517  iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable + m_mergCands[MRG_B0].m_bAvailable;
     4518#endif
    44894519#else
    44904520  //left
     
    45954625#endif
    45964626
     4627#if SEC_A1_BASED_VSP_J0039
     4628#if H_3D_VSP
     4629  /////////////////////////////////////////////////
     4630  //////// VIEW SYNTHESIS PREDICTION (VSP) ////////
     4631  /////////////////////////////////////////////////
     4632  if (iCount<getSlice()->getMaxNumMergeCand())
     4633  {
     4634    if (
     4635      (!getAvailableFlagA1() || !(pcCULeft->getVSPFlag(uiLeftPartIdx) != 0)) &&
     4636#if H_3D_IC
     4637      !bICFlag &&
     4638#endif
     4639#if H_3D_ARP
     4640      !bARPFlag &&
     4641#endif
     4642#if H_3D
     4643      (nPSW + nPSH > 12) &&
     4644#endif
     4645#if H_3D_DBBP
     4646      !bDBBPFlag &&
     4647#endif
     4648      xAddVspCand( mrgCandIdx, &cDisInfo, iCount ) )
     4649    {
     4650      return;
     4651    }
     4652
     4653    // early termination
     4654    if (iCount == getSlice()->getMaxNumMergeCand())
     4655    {
     4656      return;
     4657    }
     4658#endif
     4659#if H_3D_VSP
     4660  }
     4661#endif
     4662
     4663#if H_3D
     4664  iCount += m_mergCands[MRG_B0].m_bAvailable;
     4665#endif
     4666#endif
     4667
     4668
    45974669#if H_3D_IV_MERGE
    45984670  /////////////////////////////////////////////
     
    46484720#endif // H_3D_IV_MERGE
    46494721
     4722#if !SEC_A1_BASED_VSP_J0039
    46504723#if H_3D_VSP
    46514724  /////////////////////////////////////////////////
     
    46814754#if H_3D
    46824755  }
     4756#endif
    46834757#endif
    46844758
  • branches/HTM-12.2-dev2-Samsung/source/Lib/TLibCommon/TypeDef.h

    r1094 r1098  
    155155                                              // NTT_STORE_SPDV_VSP_G0148 Storing Sub-PU based DV for VSP
    156156                                              // Restricted bi-prediction for VSP
     157#define SEC_A1_BASED_VSP_J0039            1   // Removal of redundant VSP in Merge list
     158
    157159
    158160#define H_3D_IV_MERGE                     1   // Inter-view motion merge candidate
     
    257259
    258260#define H_3D_DDD                          1   // Disparity derived depth coding
    259 #define LGE_DDD_REMOVAL_J0042_J0030    1   // DDD removal
     261#define LGE_DDD_REMOVAL_J0042_J0030       1   // DDD removal
    260262
    261263#define H_3D_FCO                          0   // Flexible coding order for 3D
    262264#if H_3D_FCO
    263 #define H_3D_FCO                     1
     265#define H_3D_FCO                          1
    264266#endif
    265267
     
    906908enum DefaultMergCandOrder
    907909{
     910#if SEC_A1_BASED_VSP_J0039
     911  MRG_T = 0,            ///< MPI
     912  MRG_D,                ///< DDD
     913  MRG_IVMC,             ///< Temporal inter-view
     914  MRG_A1,               ///< Left
     915  MRG_B1,               ///< Above
     916  MRG_VSP,              ///< VSP
     917  MRG_B0,               ///< Above right
     918  MRG_IVDC,             ///< Disparity inter-view
     919  MRG_A0,               ///< Left bottom
     920  MRG_B2,               ///< Above left
     921  MRG_IVSHIFT,          ///< Shifted IVMC of Shifted IVDC. (These are mutually exclusive)
     922  MRG_COL               ///< Temporal co-located
     923#else
    908924  MRG_T = 0,            ///< MPI
    909925  MRG_D,                ///< DDD
     
    918934  MRG_IVSHIFT,          ///< Shifted IVMC of Shifted IVDC. (These are mutually exclusive)
    919935  MRG_COL               ///< Temporal co-located
     936#endif
    920937};
    921938#endif
Note: See TracChangeset for help on using the changeset viewer.