Changeset 697 in 3DVCSoftware for branches/HTM-8.2-dev3-Samsung/source


Ignore:
Timestamp:
15 Nov 2013, 03:34:41 (11 years ago)
Author:
samsung-htm
Message:

Integration of F0147: DMM simplification and signalling

Location:
branches/HTM-8.2-dev3-Samsung/source
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-8.2-dev3-Samsung/source/App/TAppEncoder/TAppEncCfg.cpp

    r655 r697  
    378378#if H_3D_DIM
    379379  ("DMM",                   m_useDMM,           true,  "Depth intra model modes")
     380#if !SEC_DMM3_RBC_F0147
    380381  ("RBC",                   m_useRBC,           true,  "Region boundary chain mode")
     382#endif
    381383  ("SDC",                   m_useSDC,           true,  "Simplified depth coding")
    382384  ("DLT",                   m_useDLT,           true,  "Depth lookup table")
     
    24332435#if H_3D_DIM
    24342436  printf("DMM:%d ", m_useDMM );
     2437#if !SEC_DMM3_RBC_F0147
    24352438  printf("RBC:%d ", m_useRBC );
     2439#endif
    24362440  printf("SDC:%d ", m_useSDC );
    24372441  printf("DLT:%d ", m_useDLT );
  • branches/HTM-8.2-dev3-Samsung/source/App/TAppEncoder/TAppEncCfg.h

    r655 r697  
    461461#if H_3D_DIM
    462462  Bool      m_useDMM;                                        ///< flag for using DMM
     463#if !SEC_DMM3_RBC_F0147
    463464  Bool      m_useRBC;                                        ///< flag for using RBC
     465#endif
    464466  Bool      m_useSDC;                                        ///< flag for using SDC
    465467  Bool      m_useDLT;                                        ///< flag for using DLT
  • branches/HTM-8.2-dev3-Samsung/source/App/TAppEncoder/TAppEncTop.cpp

    r655 r697  
    182182#if H_3D_DIM
    183183    m_cTEncTop.setUseDMM                       ( isDepth ? m_useDMM               : false );
     184#if !SEC_DMM3_RBC_F0147
    184185    m_cTEncTop.setUseRBC                       ( isDepth ? m_useRBC               : false );
     186#endif
    185187    m_cTEncTop.setUseSDC                       ( isDepth ? m_useSDC               : false );
    186188    m_cTEncTop.setUseDLT                       ( isDepth ? m_useDLT               : false );
     
    16411643
    16421644#if H_3D_DIM
     1645#if SEC_DMM3_RBC_F0147
     1646    vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useSDC || m_useDLT ) );
     1647#else
    16431648    vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useRBC || m_useSDC || m_useDLT ) );
     1649#endif
    16441650#if H_3D_DIM_DLT
    16451651    vps.setUseDLTFlag( layer , isDepth && m_useDLT );
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/ContextTables.h

    r673 r697  
    116116#if H_3D_DIM_DMM
    117117#define NUM_DMM1_DATA_CTX             1       ///< number of context models for DMM1 data
     118#if !SEC_DMM3_RBC_F0147
    118119#define NUM_DMM3_DATA_CTX             1       ///< number of context models for DMM3 data
     120#endif
    119121#endif
    120122#if H_3D_DIM_RBC
     
    433435  { CNU },
    434436};
     437#if !SEC_DMM3_RBC_F0147
    435438static const UChar
    436439INIT_DMM3_DATA[3][NUM_DMM3_DATA_CTX] =
     
    440443  { CNU },
    441444};
     445#endif
    442446#endif
    443447#if H_3D_DIM_RBC
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComDataCU.cpp

    r673 r697  
    120120    m_dmmWedgeTabIdx[i] = NULL;
    121121  }
     122#if !SEC_DMM3_RBC_F0147
    122123  m_dmm3IntraTabIdx = NULL;
     124#endif
    123125#endif
    124126#if H_3D_DIM_RBC
     
    271273      m_dmmWedgeTabIdx[i]    = (UInt*)xMalloc(UInt, uiNumPartition);
    272274    }
     275#if !SEC_DMM3_RBC_F0147
    273276    m_dmm3IntraTabIdx = (UInt*)xMalloc(UInt, uiNumPartition);
     277#endif
    274278#endif
    275279#if H_3D_DIM_RBC
     
    404408      if ( m_dmmWedgeTabIdx[i] ) { xFree( m_dmmWedgeTabIdx[i] ); m_dmmWedgeTabIdx[i] = NULL; }
    405409    }
     410#if !SEC_DMM3_RBC_F0147
    406411    if ( m_dmm3IntraTabIdx ) { xFree( m_dmm3IntraTabIdx ); m_dmm3IntraTabIdx = NULL; }
     412#endif
    407413#endif
    408414#if H_3D_DIM_RBC
     
    622628      memset( m_dmmWedgeTabIdx[i] + firstElement, 0,                      numElements * sizeof( *m_dmmWedgeTabIdx[i] ) );
    623629    }
     630#if !SEC_DMM3_RBC_F0147
    624631    memset( m_dmm3IntraTabIdx   + firstElement, 0,                        numElements * sizeof( *m_dmm3IntraTabIdx ) );
     632#endif
    625633#endif
    626634#if H_3D_DIM_RBC
     
    799807        m_dmmWedgeTabIdx[i] [ui] = 0;
    800808      }
     809#if !SEC_DMM3_RBC_F0147
    801810      m_dmm3IntraTabIdx [ui] = 0;
     811#endif
    802812#endif
    803813#if H_3D_DIM_SDC
     
    910920    memset( m_dmmWedgeTabIdx[i], 0, sizeof(UInt) * m_uiNumPartition );
    911921  }
     922#if !SEC_DMM3_RBC_F0147
    912923  memset( m_dmm3IntraTabIdx, 0, sizeof(UInt) * m_uiNumPartition );
     924#endif
    913925#endif
    914926#if H_3D_DIM_RBC
     
    9921004        m_dmmWedgeTabIdx[i] [ui] = pcCU->m_dmmWedgeTabIdx[i] [uiPartOffset+ui];
    9931005      }
     1006#if !SEC_DMM3_RBC_F0147
    9941007      m_dmm3IntraTabIdx [ui] = pcCU->m_dmm3IntraTabIdx[uiPartOffset+ui];
     1008#endif
    9951009#endif
    9961010#if H_3D_DIM_SDC
     
    11461160    m_dmmWedgeTabIdx[i] = pcCU->getDmmWedgeTabIdx( i ) + uiPart;
    11471161  }
     1162#if !SEC_DMM3_RBC_F0147
    11481163  m_dmm3IntraTabIdx = pcCU->getDmm3IntraTabIdx() + uiPart;
     1164#endif
    11491165#endif
    11501166#if H_3D_DIM_RBC
     
    13421358    memcpy( m_dmmWedgeTabIdx[i] + uiOffset, pcCU->getDmmWedgeTabIdx( i ), sizeof(UInt) * uiNumPartition );
    13431359  }
     1360#if !SEC_DMM3_RBC_F0147
    13441361  memcpy( m_dmm3IntraTabIdx + uiOffset, pcCU->getDmm3IntraTabIdx(), sizeof(UInt) * uiNumPartition );
     1362#endif
    13451363#endif
    13461364#if H_3D_DIM_RBC
     
    14691487    memcpy( rpcCU->getDmmWedgeTabIdx( i ) + m_uiAbsIdxInLCU, m_dmmWedgeTabIdx[i], sizeof(UInt) * m_uiNumPartition );
    14701488  }
     1489#if !SEC_DMM3_RBC_F0147
    14711490  memcpy( rpcCU->getDmm3IntraTabIdx() + m_uiAbsIdxInLCU, m_dmm3IntraTabIdx, sizeof(UInt) * m_uiNumPartition );
     1491#endif
    14721492#endif
    14731493#if H_3D_DIM_RBC
     
    15821602    memcpy( rpcCU->getDmmWedgeTabIdx( i ) + uiPartOffset, m_dmmWedgeTabIdx[i], sizeof(UInt) * uiQNumPart );
    15831603  }
     1604#if !SEC_DMM3_RBC_F0147
    15841605  memcpy( rpcCU->getDmm3IntraTabIdx() + uiPartOffset, m_dmm3IntraTabIdx, sizeof(UInt) * uiQNumPart );
     1606#endif
    15851607#endif
    15861608#if H_3D_DIM_RBC
     
    61766198  for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmmWedgeTabIdx[dmmType][uiAbsPartIdx+ui] = tabIdx; }
    61776199}
     6200#if !SEC_DMM3_RBC_F0147
    61786201Void  TComDataCU::setDmm3IntraTabIdxSubParts( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth )
    61796202{
     
    61816204  for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmm3IntraTabIdx[uiAbsPartIdx+ui] = uiTIdx; }
    61826205}
     6206#endif
    61836207#endif
    61846208#if H_3D_DIM_RBC
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComDataCU.h

    r673 r697  
    208208#if H_3D_DIM_DMM
    209209  UInt*         m_dmmWedgeTabIdx[DMM_NUM_TYPE];
     210#if !SEC_DMM3_RBC_F0147
    210211  UInt*         m_dmm3IntraTabIdx;
     212#endif
    211213#endif
    212214#if H_3D_DIM_RBC
     
    538540  Void  setDmmWedgeTabIdxSubParts     ( UInt tabIdx, UInt dmmType, UInt uiAbsPartIdx, UInt uiDepth );
    539541
     542#if !SEC_DMM3_RBC_F0147
    540543  UInt* getDmm3IntraTabIdx            ()                      { return m_dmm3IntraTabIdx;        }
    541544  UInt  getDmm3IntraTabIdx            ( UInt uiIdx )          { return m_dmm3IntraTabIdx[uiIdx]; }
    542545  Void  setDmm3IntraTabIdx            ( UInt uiIdx, UInt uh ) { m_dmm3IntraTabIdx[uiIdx] = uh;   }
    543546  Void  setDmm3IntraTabIdxSubParts    ( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth );
     547#endif
    544548#endif
    545549#if H_3D_DIM_RBC
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComPrediction.cpp

    r667 r697  
    425425  Bool dimDeltaDC = isDimDeltaDC( uiIntraMode );   
    426426  Bool isDmmMode  = (dimType <  DMM_NUM_TYPE);
     427#if !SEC_DMM3_RBC_F0147
    427428  Bool isRbcMode  = (dimType == RBC_IDX);
     429#endif
    428430
    429431  Bool* biSegPattern  = NULL;
     
    441443        dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]);
    442444      } break;
     445#if !SEC_DMM3_RBC_F0147
    443446    case( DMM3_IDX ):
    444447      {
     
    452455        dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ uiTabIdx ]);
    453456      } break;
     457#endif
    454458    case( DMM4_IDX ):
    455459      {
     
    495499    Pel deltaDC2 = pcCU->getDimDeltaDC( dimType, 1, uiAbsPartIdx );
    496500#if H_3D_DIM_DMM
    497 #if QC_DIM_DELTADC_UNIFY_F0132
     501#if QC_DIM_DELTADC_UNIFY_F0132 && !SEC_DMM3_RBC_F0147
    498502    if( isDmmMode || isRbcMode)
    499503#else
     
    19761980
    19771981#if H_3D_DIM_DMM
     1982#if !SEC_DMM3_RBC_F0147
    19781983UInt TComPrediction::xPredWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt intraTabIdx )
    19791984{
     
    19871992  return g_aauiWdgLstM3[g_aucConvertToBit[uiWidth]][uiColTexIntraDir-2].at(intraTabIdx);
    19881993}
     1994#endif
    19891995
    19901996Void TComPrediction::xPredContourFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, TComWedgelet* pcContourWedge )
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComRom.cpp

    r655 r697  
    604604std::vector< std::vector<TComWedgeRef>  > g_dmmWedgeRefLists;
    605605std::vector< std::vector<TComWedgeNode> > g_dmmWedgeNodeLists;
     606#if !SEC_DMM3_RBC_F0147
    606607std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3;
     608#endif
    607609
    608610Void initWedgeLists( Bool initNodeList )
     
    723725  }
    724726
     727#if !SEC_DMM3_RBC_F0147
    725728  UInt uiThrSz = DMM3_SIMPLIFY_TR;
    726729  std::vector< std::vector<UInt> > auiWdgListSz;
     
    739742  }
    740743  g_aauiWdgLstM3.push_back(auiWdgListSz);
     744#endif
    741745}
    742746
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComRom.h

    r655 r697  
    172172extern       std::vector< std::vector<TComWedgeRef> >        g_dmmWedgeRefLists;
    173173extern       std::vector< std::vector<TComWedgeNode> >       g_dmmWedgeNodeLists;
     174#if !SEC_DMM3_RBC_F0147
    174175extern       std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3;
     176#endif
    175177
    176178Void initWedgeLists( Bool initNodeList = false );
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TComWedgelet.h

    r655 r697  
    5050enum DIM_IDX
    5151{
     52#if SEC_DMM3_RBC_F0147
     53  DMM1_IDX = 0,
     54  DMM4_IDX = 1,
     55#else
    5256  DMM1_IDX = 0,
    5357  DMM3_IDX = 1,
    5458  DMM4_IDX = 2,
    5559  RBC_IDX  = 3
     60#endif
    5661};
    5762
     63#if SEC_DMM3_RBC_F0147
     64#define DMM_NUM_TYPE   2
     65#define DIM_NUM_TYPE   (DMM_NUM_TYPE)
     66#else
    5867#define DMM_NUM_TYPE   3
    5968#define RBC_NUM_TYPE   1
    6069#define DIM_NUM_TYPE   (DMM_NUM_TYPE+RBC_NUM_TYPE)
     70#endif
    6171#define DIM_NO_IDX     MAX_UINT
    6272
     
    7585#define DMM_NO_WEDGEINDEX       MAX_UINT
    7686#define DMM_NUM_WEDGE_REFINES   8
     87#if !SEC_DMM3_RBC_F0147
    7788#define DMM3_SIMPLIFY_TR        1
     89#endif
    7890
    7991enum WedgeResolution
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibCommon/TypeDef.h

    r689 r697  
    3939#define _TYPEDEF__
    4040
     41
     42
    4143//! \ingroup TLibCommon
    4244//! \{
     
    159161                                              // LGE_SDC_REMOVE_DC_E0158 Removal of DC mode from SDC
    160162                                              // LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 1   Removal of overlap between DMM3 and DMM1
     163#define SEC_DMM3_RBC_F0147                1   // Removal of DMM3 and RBC from DMMs
    161164
    162165#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
     
    215218#if H_3D_DIM
    216219#define H_3D_DIM_DMM                      1   // Depth Modeling Modes
     220#if !SEC_DMM3_RBC_F0147
    217221#define H_3D_DIM_RBC                      1   // Region Boundary Chain mode
     222#endif
    218223#define H_3D_DIM_SDC                      1   // Simplified Depth Coding method
    219224#define H_3D_DIM_DLT                      1   // Depth Lookup Table
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibDecoder/TDecCu.cpp

    r687 r697  
    695695#if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159
    696696        if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
    697         {
    698697            pReco    [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );
    699         }
    700698        else
    701         {
    702699            pReco    [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] );
    703         }
    704700#else
    705701      pReco    [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] );
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibDecoder/TDecSbac.cpp

    r667 r697  
    8989#if H_3D_DIM_DMM
    9090, m_cDmm1DataSCModel          ( 1,             1,               NUM_DMM1_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
     91#if !SEC_DMM3_RBC_F0147
    9192, m_cDmm3DataSCModel          ( 1,             1,               NUM_DMM3_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
     93#endif
    9294#endif
    9395#if H_3D_DIM_RBC
     
    176178#if H_3D_DIM_DMM
    177179  m_cDmm1DataSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_DMM1_DATA );
     180#if !SEC_DMM3_RBC_F0147
    178181  m_cDmm3DataSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_DMM3_DATA );
     182#endif
    179183#endif
    180184#if H_3D_DIM_RBC
     
    249253#if H_3D_DIM_DMM
    250254  m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
     255#if !SEC_DMM3_RBC_F0147
    251256  m_cDmm3DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA );
     257#endif
    252258#endif
    253259#if H_3D_DIM_RBC
     
    455461  ruiTabIdx = uiIdx;
    456462}
    457 
     463#if !SEC_DMM3_RBC_F0147
    458464Void TDecSbac::xParseDmm3WedgeIdx( UInt& ruiIntraIdx, Int iNumBit )
    459465{
     
    466472  ruiIntraIdx = uiIdx;
    467473}
     474#endif
    468475#endif
    469476#if H_3D_DIM_RBC
     
    11601167      pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth );
    11611168    } break;
     1169#if !SEC_DMM3_RBC_F0147
    11621170  case( DMM3_IDX ):
    11631171    {
     
    11661174      pcCU->setDmm3IntraTabIdxSubParts( uiIntraIdx, absPartIdx, depth );
    11671175    } break;
     1176#endif
    11681177  case( DMM4_IDX ): break;
    11691178#endif
     
    12801289  else if( puIdx == 0 )
    12811290  {
     1291#if SEC_DMM3_RBC_F0147
     1292    while( binNum < 1 && symbol )
     1293#else
    12821294    while( binNum < 3 && symbol )
     1295#endif
    12831296    {
    12841297      ctxDepthMode = puIdx*3 + ((binNum >= 2) ? 2 : binNum);
     
    12871300      binNum++;
    12881301    }
     1302#if SEC_DMM3_RBC_F0147
     1303    if( modeCode == 0 ) { dir = 0;                       sdcFlag = 0;}
     1304    else if( modeCode == 1 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;}
     1305#else
    12891306         if( modeCode == 0 ) { dir = 0;                       sdcFlag = 0;}
    12901307    else if( modeCode == 2 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;}
    12911308    else if( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;}
    12921309    else if( modeCode == 7 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;}
     1310#endif
    12931311  }
    12941312  else
    12951313  {
     1314#if SEC_DMM3_RBC_F0147
     1315    while( binNum < 4 && symbol )
     1316    {
     1317      ctxDepthMode = puIdx*3 + ((binNum >= 2) ? 2 : binNum);
     1318      m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) );
     1319      modeCode = (modeCode<<1) + symbol;
     1320      binNum++;
     1321    }
     1322    if ( modeCode == 0 )        { dir =  PLANAR_IDX;             sdcFlag = 1;}
     1323    else if ( modeCode == 2 )   { dir = 5;                       sdcFlag = 0;}
     1324    else if ( modeCode == 6 )   { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 1;}
     1325    else if ( modeCode == 14 )  { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;}
     1326    else if ( modeCode == 15 )  { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;}
     1327#else
    12961328    UInt maxBinNum = 0;
    12971329    m_pcTDecBinIf->decodeBinEP(symbol);
     
    13251357      else if ( modeCode == 3 )  { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;}
    13261358    }
     1359#endif
    13271360  }
    13281361  pcCU->setLumaIntraDirSubParts( (UChar)dir, absPartIdx, depth );
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibDecoder/TDecSbac.h

    r667 r697  
    106106#if H_3D_DIM_DMM
    107107  Void  xParseDmm1WedgeIdx   ( UInt& ruiTabIdx, Int iNumBit );
     108#if !SEC_DMM3_RBC_F0147
    108109  Void  xParseDmm3WedgeIdx   ( UInt& ruiIntraIdx, Int iNumBit );
     110#endif
    109111#endif
    110112#if H_3D_DIM_RBC
     
    217219#if H_3D_DIM_DMM
    218220  ContextModel3DBuffer m_cDmm1DataSCModel;
     221#if !SEC_DMM3_RBC_F0147
    219222  ContextModel3DBuffer m_cDmm3DataSCModel;
     223#endif
    220224#endif
    221225#if H_3D_DIM_RBC
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncCfg.h

    r655 r697  
    412412#if H_3D_DIM
    413413  Bool      m_useDMM;
     414#if !SEC_DMM3_RBC_F0147
    414415  Bool      m_useRBC;
     416#endif
    415417  Bool      m_useSDC;
    416418  Bool      m_useDLT;
     
    980982  Bool      getUseDMM                       ()        { return m_useDMM; }
    981983  Void      setUseDMM                       ( Bool b) { m_useDMM = b;    }
     984#if !SEC_DMM3_RBC_F0147
    982985  Bool      getUseRBC                       ()        { return m_useRBC; }
    983986  Void      setUseRBC                       ( Bool b) { m_useRBC = b;    }
     987#endif
    984988  Bool      getUseSDC                       ()        { return m_useSDC; }
    985989  Void      setUseSDC                       ( Bool b) { m_useSDC = b;    }
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSbac.cpp

    r667 r697  
    9595#if H_3D_DIM_DMM
    9696, m_cDmm1DataSCModel          ( 1,             1,               NUM_DMM1_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
     97#if !SEC_DMM3_RBC_F0147
    9798, m_cDmm3DataSCModel          ( 1,             1,               NUM_DMM3_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
     99#endif
    98100#endif
    99101#if H_3D_DIM_RBC
     
    174176#if H_3D_DIM_DMM
    175177  m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
     178#if !SEC_DMM3_RBC_F0147
    176179  m_cDmm3DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA );
     180#endif
    177181#endif
    178182#if H_3D_DIM_RBC
     
    262266#if H_3D_DIM_DMM
    263267      curCost += m_cDmm1DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM1_DATA );
     268#if !SEC_DMM3_RBC_F0147
    264269      curCost += m_cDmm3DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM3_DATA );
     270#endif
    265271#endif
    266272#if H_3D_DIM_RBC
     
    331337#if H_3D_DIM_DMM
    332338  m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
     339#if !SEC_DMM3_RBC_F0147
    333340  m_cDmm3DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA );
     341#endif
    334342#endif
    335343#if H_3D_DIM_RBC
     
    549557}
    550558
     559#if !SEC_DMM3_RBC_F0147
    551560Void TEncSbac::xCodeDmm3WedgeIdx( UInt uiIntraIdx, Int iNumBit )
    552561{
     
    556565  }
    557566}
     567#endif
    558568#endif
    559569#if H_3D_DIM_RBC
     
    12211231      xCodeDmm1WedgeIdx( pcCU->getDmmWedgeTabIdx( dimType, absPartIdx ), g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );
    12221232    } break;
     1233#if !SEC_DMM3_RBC_F0147
    12231234  case( DMM3_IDX ):
    12241235    {
    12251236      xCodeDmm3WedgeIdx( pcCU->getDmm3IntraTabIdx( absPartIdx ), g_dmm3IntraTabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );
    12261237    } break;
     1238#endif
    12271239  case( DMM4_IDX ): break;
    12281240#endif
     
    13051317Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx )
    13061318{
     1319#if SEC_DMM3_RBC_F0147
     1320  UInt codeWordTable[3][7] =    {{0, 0, 0, 1, 0, 0, 0},{0, 2, 6, 14, 15, 0, 0},{0, 1, 0, 0, 0, 0, 0}};
     1321  UInt codeWordLenTable[3][7] = {{0, 1, 0, 1, 0, 0, 0},{1, 2, 3,  4,  4, 0, 0},{1, 1, 0, 0, 0, 0, 0}};
     1322#else
    13071323    UInt codeWordTable[3][7] =    {{0, 0, 0, 2, 0,6, 7},{0, 0, 2, 7, 3, 6, 2},{0, 1, 0, 0, 0, 0, 0}};
    13081324    UInt codeWordLenTable[3][7] = {{0, 1, 0, 2, 0,3, 3},{1, 1, 2, 3, 2, 3, 2},{1, 1, 0, 0, 0, 0, 0}};
     1325#endif
    13091326  UInt dir = pcCU->getLumaIntraDir( absPartIdx );
    13101327  UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 );
     
    13211338    case DMM1_IDX: codeIdx = 3; break;
    13221339    case DMM4_IDX: codeIdx = 4; break;
     1340#if !SEC_DMM3_RBC_F0147
    13231341    case DMM3_IDX: codeIdx = 5; break;
    13241342    case  RBC_IDX: codeIdx = 6; break;
     1343#endif
    13251344    default:                    break;
    13261345    }
     
    13371356  }
    13381357#endif
     1358#if !SEC_DMM3_RBC_F0147
    13391359  if( puIdx==1 )
    13401360  {
     
    13481368      }
    13491369  }
     1370#endif
    13501371  //mode coding
    13511372  for( UInt i = 0; i < codeWordLenTable[puIdx][codeIdx]; i++ )
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSbac.h

    r667 r697  
    125125#if H_3D_DIM_DMM
    126126  Void  xCodeDmm1WedgeIdx    ( UInt uiTabIdx, Int iNumBit );
     127#if !SEC_DMM3_RBC_F0147
    127128  Void  xCodeDmm3WedgeIdx    ( UInt uiIntraIdx, Int iNumBit );
     129#endif
    128130#endif
    129131#if H_3D_DIM_RBC
     
    257259#if H_3D_DIM_DMM
    258260  ContextModel3DBuffer m_cDmm1DataSCModel;
     261#if !SEC_DMM3_RBC_F0147
    259262  ContextModel3DBuffer m_cDmm3DataSCModel;
     263#endif
    260264#endif
    261265#if H_3D_DIM_RBC
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSearch.cpp

    r687 r697  
    11281128#if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159
    11291129          if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
    1130           {
    11311130              pResi[ uiX ] = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pOrg[ uiX ] ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] );
    1132           }
    11331131          else
    1134           {
    11351132              pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ];
    1136           }
    11371133#else
    11381134        pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ];
     
    12031199#if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159
    12041200          if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
    1205           {
    12061201              pReco    [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );
    1207           }
    12081202          else
    1209           {
    12101203              pReco    [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] );
    1211           }
    12121204#else
    12131205        pReco    [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] );
     
    28982890              biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);
    28992891            } break;
     2892#if !SEC_DMM3_RBC_F0147
    29002893          case( DMM3_IDX ):
    29012894            {
     
    29152908              }
    29162909            } break;
     2910#endif
    29172911          case( DMM4_IDX ):
    29182912            {
     
    73307324}
    73317325
     7326#if !SEC_DMM3_RBC_F0147
    73327327Void TEncSearch::xSearchDmm3Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir )
    73337328{
     
    73667361  cPredYuv.destroy();
    73677362}
    7368 
     7363#endif
    73697364#endif
    73707365#if H_3D_DIM_RBC
  • branches/HTM-8.2-dev3-Samsung/source/Lib/TLibEncoder/TEncSearch.h

    r655 r697  
    351351  Void xSearchDmmDeltaDCs         ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piOrig, Pel* piPredic, UInt uiStride, Bool* biSegPattern, Int patternStride, UInt uiWidth, UInt uiHeight, Pel& rDeltaDC1, Pel& rDeltaDC2 );
    352352  Void xSearchDmm1Wedge           ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx );
     353#if !SEC_DMM3_RBC_F0147
    353354  Void xSearchDmm3Wedge           ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir );
     355#endif
    354356#endif
    355357#if H_3D_DIM_RBC
Note: See TracChangeset for help on using the changeset viewer.