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/Lib/TLibCommon
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.