Changeset 1015 in 3DVCSoftware


Ignore:
Timestamp:
24 Jul 2014, 06:42:46 (10 years ago)
Author:
samsung-htm
Message:

Integration of JCT3V-I0085: Separate enabling flag for intra-view prediction mode (DMM4)

Location:
branches/HTM-11.2-dev3-Samsung
Files:
2 added
17 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-11.2-dev3-Samsung/cfg/3D-HEVC/NonCTC/allintra/baseCfg_2view+depth_AllIntra.cfg

    r983 r1015  
    173173VSO                       : 1                                      # use of view synthesis optimization for depth coding
    174174DMM                                : 1
     175IVP                                : 1                 # use of intra-view prediction mode
    175176SDC                                : 1
    176177DLT                                : 1
  • branches/HTM-11.2-dev3-Samsung/cfg/3D-HEVC/NonCTC/allintra/baseCfg_3view+depth_AllIntra.cfg

    r983 r1015  
    188188VSO                       : 1                                      # use of view synthesis optimization for depth coding
    189189DMM                                : 1
     190IVP                                : 1                 # use of intra-view prediction mode
    190191SDC                                : 1
    191192DLT                                : 1
  • branches/HTM-11.2-dev3-Samsung/cfg/3D-HEVC/baseCfg_2view+depth.cfg

    r983 r1015  
    209209VSO                                : 1                 # use of view synthesis optimization for depth coding
    210210DMM                                : 1
     211IVP                                : 1                 # use of intra-view prediction mode
    211212SDC                                : 1
    212213DLT                                : 1
  • branches/HTM-11.2-dev3-Samsung/cfg/3D-HEVC/baseCfg_3view+depth.cfg

    r983 r1015  
    240240VSO                                : 1                 # use of view synthesis optimization for depth coding
    241241DMM                                : 1
     242IVP                                : 1                 # use of intra-view prediction mode
    242243SDC                                : 1
    243244DLT                                : 1
  • branches/HTM-11.2-dev3-Samsung/cfg/3D-HEVC/fullCfg.cfg

    r950 r1015  
    262262VSO                       : 1                          # use of view synthesis optimization for depth coding
    263263DMM                                : 1
     264IVP                                : 1                 # use of intra-view prediction mode
    264265SDC                                : 1
    265266DLT                                : 1
  • branches/HTM-11.2-dev3-Samsung/source/App/TAppEncoder/TAppEncCfg.cpp

    r983 r1015  
    378378#if H_3D_DIM
    379379  ("DMM",                   m_useDMM,           true,  "Depth intra model modes")
     380#if SEPARATE_FLAG_I0085
     381  ("IVP",                   m_useIVP,           true,  "intra-view prediction")
     382#endif
    380383  ("SDC",                   m_useSDC,           true,  "Simplified depth coding")
    381384  ("DLT",                   m_useDLT,           true,  "Depth lookup table")
     
    25232526#if H_3D_DIM
    25242527  printf("DMM:%d ", m_useDMM );
     2528#if SEPARATE_FLAG_I0085
     2529  printf("IVP:%d ", m_useIVP );
     2530#endif
    25252531  printf("SDC:%d ", m_useSDC );
    25262532  printf("DLT:%d ", m_useDLT );
  • branches/HTM-11.2-dev3-Samsung/source/App/TAppEncoder/TAppEncCfg.h

    r983 r1015  
    470470#if H_3D_DIM
    471471  Bool      m_useDMM;                                        ///< flag for using DMM
     472#if SEPARATE_FLAG_I0085
     473  Bool      m_useIVP;
     474#endif
    472475  Bool      m_useSDC;                                        ///< flag for using SDC
    473476  Bool      m_useDLT;                                        ///< flag for using DLT
  • branches/HTM-11.2-dev3-Samsung/source/App/TAppEncoder/TAppEncTop.cpp

    r983 r1015  
    199199#if H_3D_DIM
    200200    m_cTEncTop.setUseDMM                       ( isDepth ? m_useDMM               : false );
     201#if SEPARATE_FLAG_I0085
     202    m_cTEncTop.setUseIVP                       ( isDepth ? m_useIVP               : false );
     203#endif
    201204    m_cTEncTop.setUseSDC                       ( isDepth ? m_useSDC               : false );
    202205    m_cTEncTop.setUseDLT                       ( isDepth ? m_useDLT               : false );
     
    18271830#if H_3D_DIM
    18281831    vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useSDC || m_useDLT ) );
     1832#if SEPARATE_FLAG_I0085
     1833    vps.setIVPFlag          ( layer, isDepth && !isLayerZero && m_useIVP );
     1834#endif
    18291835#endif
    18301836
  • branches/HTM-11.2-dev3-Samsung/source/Lib/TLibCommon/TComSlice.cpp

    r1000 r1015  
    19521952    m_viewIndex         [i] = -1;
    19531953    m_vpsDepthModesFlag [i] = false;
     1954#if SEPARATE_FLAG_I0085
     1955    m_bIVPFlag [i]      = false;
     1956#endif
    19541957    m_ivMvScalingFlag = true;
    19551958#endif
     
    19921995#if H_3D_INTER_SDC
    19931996    m_bInterSDCFlag        [ i ] = false;
     1997#endif
     1998#if SEPARATE_FLAG_I0085
     1999    m_bIVPFlag             [ i ] = false;
    19942000#endif
    19952001#if H_3D_DBBP
  • branches/HTM-11.2-dev3-Samsung/source/Lib/TLibCommon/TComSlice.h

    r983 r1015  
    810810#endif
    811811  Bool        m_vpsDepthModesFlag        [MAX_NUM_LAYERS   ];
     812#if SEPARATE_FLAG_I0085
     813  Bool        m_bIVPFlag                 [MAX_NUM_LAYERS   ];
     814#endif
    812815
    813816#if H_3D
     
    11441147  Void    setVpsDepthModesFlag( Int layerIdInVps, Bool val )               { m_vpsDepthModesFlag[ layerIdInVps ] = val; }
    11451148  Bool    getVpsDepthModesFlag( Int layerIdInVps )                         { return m_vpsDepthModesFlag[ layerIdInVps ]; }
     1149#if SEPARATE_FLAG_I0085
     1150  Void    setIVPFlag( Int layerIdInVps, Bool val )                    { m_bIVPFlag[ layerIdInVps ] = val; }
     1151  Bool    getIVPFlag( Int layerIdInVps )                              { return m_bIVPFlag[ layerIdInVps ]; }
     1152#endif
    11461153
    11471154  Bool    getIvMvScalingFlag   (  )                       { return m_ivMvScalingFlag; }
     
    25152522  Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; };
    25162523  Bool getVpsDepthModesFlag  ()  { return getVPS()->getVpsDepthModesFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
    2517 
     2524#if SEPARATE_FLAG_I0085
     2525  Bool getIVPFlag       ()  { return getVPS()->getIVPFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
     2526#endif
    25182527#endif
    25192528#if H_MV
  • branches/HTM-11.2-dev3-Samsung/source/Lib/TLibCommon/TypeDef.h

    r1014 r1015  
    300300#define FIX_WARNING                       1   // fix narrowing conversion of NumPocStCurr0,NumPocStCurr1 at TComSlice.cpp
    301301#define FAST_SDC_OFFSET_DECISION_I0084    1
     302#define SEPARATE_FLAG_I0085               1
    302303
    303304#if H_3D_DIM_DLT
  • branches/HTM-11.2-dev3-Samsung/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r983 r1015  
    18221822#endif
    18231823        READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
     1824#if SEPARATE_FLAG_I0085
     1825        READ_FLAG( uiCode, "ivp_flag[i]" );                   pcVPS->setIVPFlag( i, uiCode == 1 ? true : false );
     1826#endif
    18241827        //          READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPreFlag     ( i, uiCode == 1 ? true : false );
    18251828#if H_3D_INTER_SDC
  • branches/HTM-11.2-dev3-Samsung/source/Lib/TLibDecoder/TDecSbac.cpp

    r994 r1015  
    10491049  {
    10501050#if H_3D_DIM
     1051#if SEPARATE_FLAG_I0085
     1052    if( pcCU->getSlice()->getVpsDepthModesFlag() || pcCU->getSlice()->getIVPFlag() )
     1053#else
    10511054    if( pcCU->getSlice()->getVpsDepthModesFlag() )
     1055#endif
    10521056    {
    10531057      parseIntraDepth( pcCU, absPartIdx+partOffset*j, depth );
     
    11911195  if( uiIsDimMode )
    11921196  {
    1193     m_pcTDecBinIf->decodeBin( uiSymbol, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
    1194     if( !uiSymbol )
     1197#if SEPARATE_FLAG_I0085
     1198    if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag() )
     1199    {
     1200      m_pcTDecBinIf->decodeBin( uiSymbol, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
     1201      if( !uiSymbol )
     1202      {
     1203#if HS_DMM_SIGNALLING_I0120
     1204        pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
     1205#else
     1206        pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth );
     1207#endif
     1208      }
     1209      else
     1210      {
     1211#if HS_DMM_SIGNALLING_I0120
     1212        pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
     1213#else
     1214        pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth );
     1215#endif
     1216      }
     1217    }
     1218    else if ( pcCU->getSlice()->getVpsDepthModesFlag() )
    11951219    {
    11961220#if HS_DMM_SIGNALLING_I0120
     
    12001224#endif
    12011225    }
    1202     else
     1226    else if( pcCU->getSlice()->getIVPFlag() )
    12031227    {
    12041228#if HS_DMM_SIGNALLING_I0120
     
    12081232#endif
    12091233    }
     1234#else
     1235    m_pcTDecBinIf->decodeBin( uiSymbol, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
     1236    if( !uiSymbol )
     1237    {
     1238#if HS_DMM_SIGNALLING_I0120
     1239      pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
     1240#else
     1241      pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth );
     1242#endif
     1243    }
     1244    else
     1245    {
     1246#if HS_DMM_SIGNALLING_I0120
     1247      pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
     1248#else
     1249      pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth );
     1250#endif
     1251    }
     1252#endif
    12101253  }
    12111254}
  • branches/HTM-11.2-dev3-Samsung/source/Lib/TLibEncoder/TEncCavlc.cpp

    r983 r1015  
    15991599#endif
    16001600        WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 ,          "vps_depth_modes_flag[i]" );
     1601#if SEPARATE_FLAG_I0085
     1602        WRITE_FLAG( pcVPS->getIVPFlag( i ) ? 1 : 0 ,               "IVP_flag[i]" );
     1603#endif
    16011604        //WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     );
    16021605#if H_3D_INTER_SDC
  • branches/HTM-11.2-dev3-Samsung/source/Lib/TLibEncoder/TEncCfg.h

    r983 r1015  
    414414#if H_3D_DIM
    415415  Bool      m_useDMM;
     416#if SEPARATE_FLAG_I0085
     417  Bool      m_useIVP;
     418#endif
    416419  Bool      m_useSDC;
    417420  Bool      m_useDLT;
     
    10061009  Bool      getUseDMM                       ()        { return m_useDMM; }
    10071010  Void      setUseDMM                       ( Bool b) { m_useDMM = b;    }
     1011#if SEPARATE_FLAG_I0085
     1012  Bool      getUseIVP                       ()        { return m_useIVP; }
     1013  Void      setUseIVP                       ( Bool b) { m_useIVP = b;    }
     1014#endif
    10081015  Bool      getUseSDC                       ()        { return m_useSDC; }
    10091016  Void      setUseSDC                       ( Bool b) { m_useSDC = b;    }
  • branches/HTM-11.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSbac.cpp

    r994 r1015  
    255255      curCost += m_CUTransquantBypassFlagSCModel.calcCost( curSliceType, qp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG );
    256256#if H_3D_DIM
     257#if SEPARATE_FLAG_I0085
     258    if( m_pcSlice->getVpsDepthModesFlag() || m_pcSlice->getIVPFlag() )
     259#else
    257260    if( m_pcSlice->getVpsDepthModesFlag() )
     261#endif
    258262    {
    259263      curCost += m_cDepthIntraModeSCModel.calcCost    ( curSliceType, qp, (UChar*)INIT_DEPTH_INTRA_MODE );
     
    11341138    dir[j] = pcCU->getLumaIntraDir( absPartIdx+partOffset*j );
    11351139#if H_3D_DIM
     1140#if SEPARATE_FLAG_I0085
     1141    if( pcCU->getSlice()->getVpsDepthModesFlag() ||  pcCU->getSlice()->getIVPFlag() )
     1142#else
    11361143    if( pcCU->getSlice()->getVpsDepthModesFlag() )
     1144#endif
    11371145    {
    11381146      codeIntraDepth( pcCU, absPartIdx+partOffset*j );
     
    12801288    }
    12811289    //mode coding
     1290#if SEPARATE_FLAG_I0085
     1291    if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag())
     1292    {
     1293      m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
     1294    }
     1295#else
    12821296    m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
     1297#endif
    12831298  }
    12841299}
  • branches/HTM-11.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSearch.cpp

    r1014 r1015  
    31323132
    31333133#if H_3D_DIM_DMM
     3134#if SEPARATE_FLAG_I0085
     3135      if( ( m_pcEncCfg->getUseDMM() || m_pcEncCfg->getUseIVP() )
     3136#else
    31343137      if( m_pcEncCfg->getUseDMM()
     3138#endif
    31353139#if H_3D_FAST_DEPTH_INTRA
    31363140         && (uiRdModeList[0] != PLANAR_IDX || varCU >= varThreshold)
     
    31383142        )
    31393143      {
     3144#if SEPARATE_FLAG_I0085
     3145        UInt uiStart, uiEnd;
     3146        if( m_pcEncCfg->getUseDMM() &&  m_pcEncCfg->getUseIVP() )
     3147        {
     3148          uiStart = 0;
     3149          uiEnd   = 2;
     3150        }
     3151        else if( m_pcEncCfg->getUseDMM() )
     3152        {
     3153          uiStart = 0;
     3154          uiEnd   = 1;
     3155        }
     3156        else if( m_pcEncCfg->getUseIVP() )
     3157        {
     3158          uiStart = 1;
     3159          uiEnd   = 2;
     3160        }
     3161        else
     3162        {
     3163          uiStart = 0;
     3164          uiEnd   = 0;
     3165        }
     3166        for( UInt dmmType = uiStart; dmmType < uiEnd; dmmType++ )
     3167#else
    31403168        for( UInt dmmType = 0; dmmType < DMM_NUM_TYPE; dmmType++ )
     3169#endif
    31413170        {
    31423171#if H_3D_FCO
Note: See TracChangeset for help on using the changeset viewer.