Changeset 696 in 3DVCSoftware for branches/HTM-8.2-dev2-Samsung/source/Lib


Ignore:
Timestamp:
15 Nov 2013, 01:35:16 (11 years ago)
Author:
samsung-htm
Message:

Integration of F0150: MPI candidate in depth merge mode list construction

Location:
branches/HTM-8.2-dev2-Samsung/source/Lib
Files:
8 edited

Legend:

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

    r690 r696  
    35223522  deriveLeftRightTopIdxGeneral( uiAbsPartIdx, uiPUIdx, uiPartIdxLT, uiPartIdxRT );
    35233523  deriveLeftBottomIdxGeneral  ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB );
     3524#if SEC_MPI_ENABLING_MERGE_F0150
     3525  Bool bMPIFlag   = getSlice()->getVPS()->getMPIFlag( getSlice()->getLayerIdInVps() );
     3526#endif
    35243527#if QC_DEPTH_IV_MRG_F0125
    35253528  Bool bIsDepth = getSlice()->getIsDepth();
     
    35423545  /////////////////////////////////////////////
    35433546
     3547#if SEC_MPI_ENABLING_MERGE_F0150
     3548  if( bMPIFlag)
     3549#else
    35443550  if( m_pcSlice->getIsDepth())
     3551#endif
    35453552  {
    35463553    UInt uiPartIdxCenter;
  • branches/HTM-8.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.cpp

    r669 r696  
    18351835#if H_3D_INTER_SDC
    18361836    m_bInterSDCFlag        [ i ] = false;
     1837#endif
     1838#if SEC_MPI_ENABLING_MERGE_F0150
     1839    m_bMPIFlag             [ i ] = false;
    18371840#endif
    18381841  } 
  • branches/HTM-8.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.h

    r669 r696  
    619619  Bool        m_bInterSDCFlag[MAX_NUM_LAYERS   ];
    620620#endif
     621#if SEC_MPI_ENABLING_MERGE_F0150
     622  Bool        m_bMPIFlag[MAX_NUM_LAYERS   ];
     623#endif
    621624
    622625#endif
     
    854857  Void    setInterSDCFlag      ( Int layerIdInVps, Bool bval ){ m_bInterSDCFlag[layerIdInVps] = bval; }
    855858#endif
    856 
     859#if SEC_MPI_ENABLING_MERGE_F0150
     860  Bool    getMPIFlag      ( Int layerIdInVps )           { return m_bMPIFlag[layerIdInVps]; }
     861  Void    setMPIFlag      ( Int layerIdInVps, Bool bval ){ m_bMPIFlag[layerIdInVps] = bval; }
     862#endif
    857863#endif 
    858864#endif
  • branches/HTM-8.2-dev2-Samsung/source/Lib/TLibCommon/TypeDef.h

    r690 r696  
    131131                                              // QC_AMVP_MRG_UNIFY_IVCAN_C0051     
    132132                                              // TEXTURE MERGING CANDIDATE     , JCT3V-C0137
    133                                               // QC_INRIA_MTK_MRG_E0126           
     133                                              // QC_INRIA_MTK_MRG_E0126
     134#define SEC_MPI_ENABLING_MERGE_F0150      1   // MPI flag in VPS and enabling in Merge mode
     135
    134136#define H_3D_TMVP                         1   // QC_TMVP_C0047
    135137                                              // Sony_M23639
  • branches/HTM-8.2-dev2-Samsung/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r669 r696  
    12711271        }
    12721272#endif
     1273#if SEC_MPI_ENABLING_MERGE_F0150
     1274        READ_FLAG( uiCode, "mpi_flag[i]" );             pcVPS->setMPIFlag( i, uiCode == 1 ? true : false );
     1275#endif
    12731276        READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
    12741277        //          READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPreFlag     ( i, uiCode == 1 ? true : false );
     
    18181821      READ_UVLC( uiCode, "five_minus_max_num_merge_cand");
    18191822#if H_3D_IV_MERGE
     1823#if SEC_MPI_ENABLING_MERGE_F0150
     1824      if(rpcSlice->getIsDepth())
     1825      {
     1826        Bool bMPIFlag = rpcSlice->getVPS()->getMPIFlag( rpcSlice->getLayerIdInVps() ) ;
     1827        Bool ivMvPredFlag = rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ;
     1828        rpcSlice->setMaxNumMergeCand(( ( bMPIFlag || ivMvPredFlag ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
     1829      }
     1830      else
     1831      {
     1832        Bool ivMvPredFlag = rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ;
     1833        rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
     1834      }
     1835#else
    18201836      Bool ivMvPredFlag = rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ;
    18211837      rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
     1838#endif
    18221839#else
    18231840      rpcSlice->setMaxNumMergeCand(MRG_MAX_NUM_CANDS - uiCode);
  • branches/HTM-8.2-dev2-Samsung/source/Lib/TLibEncoder/TEncCavlc.cpp

    r669 r696  
    10251025        }
    10261026#endif
     1027#if SEC_MPI_ENABLING_MERGE_F0150
     1028        WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 ,          "mpi_flag[i]" );
     1029#endif
    10271030        WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 ,          "vps_depth_modes_flag[i]" );
    10281031        //WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     );
     
    14111414    {
    14121415#if H_3D_IV_MERGE
     1416#if SEC_MPI_ENABLING_MERGE_F0150
     1417      if(pcSlice->getIsDepth())
     1418      {
     1419        Bool bMPIFlag = pcSlice->getVPS()->getMPIFlag( pcSlice->getLayerIdInVps() ) ;
     1420        Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
     1421        WRITE_UVLC( ( ( bMPIFlag || ivMvPredFlag ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     1422      }
     1423      else
     1424      {
     1425        Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
     1426        WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     1427      }
     1428#else
    14131429      Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
    14141430      WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     1431#endif
    14151432#else
    14161433      WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
  • branches/HTM-8.2-dev2-Samsung/source/Lib/TLibEncoder/TEncCfg.h

    r655 r696  
    415415  Bool      m_useSDC;
    416416  Bool      m_useDLT;
     417#endif
     418#if SEC_MPI_ENABLING_MERGE_F0150
     419  Bool      m_useMPI;
    417420#endif
    418421#if H_3D_QTLPC
     
    993996  Bool      getUsePC                        ()         { return m_bUsePC;  }
    994997#endif
     998#if SEC_MPI_ENABLING_MERGE_F0150
     999  Void      setUseMPI                       ( Bool b ) { m_useMPI = b;    }
     1000  Bool      getUseMPI                       ()         { return m_useMPI; }
     1001#endif
    9951002#endif // H_3D
    9961003};
  • branches/HTM-8.2-dev2-Samsung/source/Lib/TLibEncoder/TEncSlice.cpp

    r655 r696  
    556556  rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() );
    557557#if H_3D_IV_MERGE
     558#if SEC_MPI_ENABLING_MERGE_F0150
     559  if(rpcSlice->getIsDepth())
     560  {
     561    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( ( rpcSlice->getVPS()->getMPIFlag( rpcSlice->getLayerIdInVps() ) || rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ) ? 1 : 0 ) );
     562  }
     563  else
     564  {
     565    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
     566  }
     567#else
    558568   rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
     569#endif
    559570#else
    560571  rpcSlice->setMaxNumMergeCand        ( m_pcCfg->getMaxNumMergeCand()        );
Note: See TracChangeset for help on using the changeset viewer.