Ignore:
Timestamp:
6 Aug 2013, 02:51:16 (11 years ago)
Author:
samsung-htm
Message:

Integration of E0146

Location:
branches/HTM-DEV-2.0-dev3-Samsung/source/Lib/TLibCommon
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-2.0-dev3-Samsung/source/Lib/TLibCommon/ContextTables.h

    r531 r554  
    112112#if H_3D_DIM_DMM
    113113#define NUM_DMM1_DATA_CTX             1       ///< number of context models for DMM1 data
     114#if !SEC_DMM2_E0146
    114115#define NUM_DMM2_DATA_CTX             1       ///< number of context models for DMM2 data
     116#endif
    115117#define NUM_DMM3_DATA_CTX             1       ///< number of context models for DMM3 data
    116118#endif
     
    411413  { CNU },
    412414};
     415#if !SEC_DMM2_E0146
    413416static const UChar
    414417INIT_DMM2_DATA[3][NUM_DMM2_DATA_CTX] =
     
    418421  { CNU },
    419422};
     423#endif
    420424static const UChar
    421425INIT_DMM3_DATA[3][NUM_DMM3_DATA_CTX] =
  • branches/HTM-DEV-2.0-dev3-Samsung/source/Lib/TLibCommon/TComDataCU.cpp

    r542 r554  
    120120    m_dmmWedgeTabIdx[i] = NULL;
    121121  }
     122#if !SEC_DMM2_E0146
    122123  m_dmm2DeltaEnd    = NULL;
     124#endif
    123125  m_dmm3IntraTabIdx = NULL;
    124126#endif
     
    264266      m_dmmWedgeTabIdx[i]    = (UInt*)xMalloc(UInt, uiNumPartition);
    265267    }
     268#if !SEC_DMM2_E0146
    266269    m_dmm2DeltaEnd    = (Int* )xMalloc(Int,  uiNumPartition);
     270#endif
    267271    m_dmm3IntraTabIdx = (UInt*)xMalloc(UInt, uiNumPartition);
    268272#endif
     
    389393      if ( m_dmmWedgeTabIdx[i] ) { xFree( m_dmmWedgeTabIdx[i] ); m_dmmWedgeTabIdx[i] = NULL; }
    390394    }
     395#if !SEC_DMM2_E0146
    391396    if ( m_dmm2DeltaEnd    ) { xFree( m_dmm2DeltaEnd    ); m_dmm2DeltaEnd    = NULL; }
     397#endif
    392398    if ( m_dmm3IntraTabIdx ) { xFree( m_dmm3IntraTabIdx ); m_dmm3IntraTabIdx = NULL; }
    393399#endif
     
    596602      memset( m_dmmWedgeTabIdx[i] + firstElement, 0,                      numElements * sizeof( *m_dmmWedgeTabIdx[i] ) );
    597603    }
     604#if !SEC_DMM2_E0146
    598605    memset( m_dmm2DeltaEnd      + firstElement, 0,                        numElements * sizeof( *m_dmm2DeltaEnd    ) );
     606#endif
    599607    memset( m_dmm3IntraTabIdx   + firstElement, 0,                        numElements * sizeof( *m_dmm3IntraTabIdx ) );
    600608#endif
     
    767775        m_dmmWedgeTabIdx[i] [ui] = 0;
    768776      }
     777#if !SEC_DMM2_E0146
    769778      m_dmm2DeltaEnd    [ui] = 0;
     779#endif
    770780      m_dmm3IntraTabIdx [ui] = 0;
    771781#endif
     
    872882    memset( m_dmmWedgeTabIdx[i], 0, sizeof(UInt) * m_uiNumPartition );
    873883  }
     884#if !SEC_DMM2_E0146
    874885  memset( m_dmm2DeltaEnd   , 0, sizeof(Int ) * m_uiNumPartition );
     886#endif
    875887  memset( m_dmm3IntraTabIdx, 0, sizeof(UInt) * m_uiNumPartition );
    876888#endif
     
    947959        m_dmmWedgeTabIdx[i] [ui] = pcCU->m_dmmWedgeTabIdx[i] [uiPartOffset+ui];
    948960      }
     961#if !SEC_DMM2_E0146
    949962      m_dmm2DeltaEnd    [ui] = pcCU->m_dmm2DeltaEnd   [uiPartOffset+ui];
     963#endif
    950964      m_dmm3IntraTabIdx [ui] = pcCU->m_dmm3IntraTabIdx[uiPartOffset+ui];
    951965#endif
     
    10951109    m_dmmWedgeTabIdx[i] = pcCU->getDmmWedgeTabIdx( i ) + uiPart;
    10961110  }
     1111#if !SEC_DMM2_E0146
    10971112  m_dmm2DeltaEnd    = pcCU->getDmm2DeltaEnd()    + uiPart;
     1113#endif
    10981114  m_dmm3IntraTabIdx = pcCU->getDmm3IntraTabIdx() + uiPart;
    10991115#endif
     
    12821298    memcpy( m_dmmWedgeTabIdx[i] + uiOffset, pcCU->getDmmWedgeTabIdx( i ), sizeof(UInt) * uiNumPartition );
    12831299  }
     1300#if !SEC_DMM2_E0146
    12841301  memcpy( m_dmm2DeltaEnd    + uiOffset, pcCU->getDmm2DeltaEnd()   , sizeof(Int ) * uiNumPartition );
     1302#endif
    12851303  memcpy( m_dmm3IntraTabIdx + uiOffset, pcCU->getDmm3IntraTabIdx(), sizeof(UInt) * uiNumPartition );
    12861304#endif
     
    14021420    memcpy( rpcCU->getDmmWedgeTabIdx( i ) + m_uiAbsIdxInLCU, m_dmmWedgeTabIdx[i], sizeof(UInt) * m_uiNumPartition );
    14031421  }
     1422#if !SEC_DMM2_E0146
    14041423  memcpy( rpcCU->getDmm2DeltaEnd()    + m_uiAbsIdxInLCU, m_dmm2DeltaEnd   , sizeof(Int ) * m_uiNumPartition );
     1424#endif
    14051425  memcpy( rpcCU->getDmm3IntraTabIdx() + m_uiAbsIdxInLCU, m_dmm3IntraTabIdx, sizeof(UInt) * m_uiNumPartition );
    14061426#endif
     
    15091529    memcpy( rpcCU->getDmmWedgeTabIdx( i ) + uiPartOffset, m_dmmWedgeTabIdx[i], sizeof(UInt) * uiQNumPart );
    15101530  }
     1531#if !SEC_DMM2_E0146
    15111532  memcpy( rpcCU->getDmm2DeltaEnd()    + uiPartOffset, m_dmm2DeltaEnd   , sizeof(Int ) * uiQNumPart );
     1533#endif
    15121534  memcpy( rpcCU->getDmm3IntraTabIdx() + uiPartOffset, m_dmm3IntraTabIdx, sizeof(UInt) * uiQNumPart );
    15131535#endif
     
    54345456  for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmmWedgeTabIdx[dmmType][uiAbsPartIdx+ui] = tabIdx; }
    54355457}
     5458#if !SEC_DMM2_E0146
    54365459Void  TComDataCU::setDmm2DeltaEndSubParts( Int iDelta, UInt uiAbsPartIdx, UInt uiDepth )
    54375460{
     
    54395462  for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmm2DeltaEnd[uiAbsPartIdx+ui] = iDelta; }
    54405463}
     5464#endif
    54415465Void  TComDataCU::setDmm3IntraTabIdxSubParts( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth )
    54425466{
  • branches/HTM-DEV-2.0-dev3-Samsung/source/Lib/TLibCommon/TComDataCU.h

    r531 r554  
    208208#if H_3D_DIM_DMM
    209209  UInt*         m_dmmWedgeTabIdx[DMM_NUM_TYPE];
     210#if !SEC_DMM2_E0146
    210211  Int*          m_dmm2DeltaEnd;
     212#endif
    211213  UInt*         m_dmm3IntraTabIdx;
    212214#endif
     
    522524  Void  setDmmWedgeTabIdxSubParts     ( UInt tabIdx, UInt dmmType, UInt uiAbsPartIdx, UInt uiDepth );
    523525
     526#if !SEC_DMM2_E0146
    524527  Int*  getDmm2DeltaEnd               ()                      { return m_dmm2DeltaEnd;        }
    525528  Int   getDmm2DeltaEnd               ( UInt uiIdx )          { return m_dmm2DeltaEnd[uiIdx]; }
    526529  Void  setDmm2DeltaEnd               ( UInt uiIdx, Int iD )  { m_dmm2DeltaEnd[uiIdx] = iD;   }
    527530  Void  setDmm2DeltaEndSubParts       ( Int iDelta, UInt uiAbsPartIdx, UInt uiDepth );
     531#endif
    528532
    529533  UInt* getDmm3IntraTabIdx            ()                      { return m_dmm3IntraTabIdx;        }
  • branches/HTM-DEV-2.0-dev3-Samsung/source/Lib/TLibCommon/TComPrediction.cpp

    r537 r554  
    436436        dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]);
    437437      } break;
     438#if !SEC_DMM2_E0146
    438439    case( DMM2_IDX ):
    439440      {
     
    447448        dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ uiTabIdx ]);
    448449      } break;
     450#endif
    449451    case( DMM3_IDX ):
    450452      {
     
    20422044  {
    20432045    UInt dimType =  getDimType( pcTempCU->getLumaIntraDir( uiTempPartIdx ) );
     2046#if SEC_DMM2_E0146
     2047    if( DMM1_IDX == dimType || DMM3_IDX == dimType )
     2048#else
    20442049    if( DMM1_IDX == dimType || DMM2_IDX == dimType || DMM3_IDX == dimType )
     2050#endif
    20452051    {
    20462052      // get offset between current and reference block
     
    20672073  {
    20682074    UInt dimType = getDimType( pcTempCU->getLumaIntraDir( uiTempPartIdx ) );
     2075#if SEC_DMM2_E0146
     2076    if( DMM1_IDX == dimType || DMM3_IDX == dimType )
     2077#else
    20692078    if( DMM1_IDX == dimType || DMM2_IDX == dimType || DMM3_IDX == dimType )
     2079#endif
    20702080    {
    20712081      // get offset between current and reference block
  • branches/HTM-DEV-2.0-dev3-Samsung/source/Lib/TLibCommon/TComWedgelet.h

    r531 r554  
    5050enum DIM_IDX
    5151{
     52#if SEC_DMM2_E0146
     53  DMM1_IDX = 0,
     54  DMM3_IDX = 1,
     55  DMM4_IDX = 2,
     56  RBC_IDX  = 3
     57#else
    5258  DMM1_IDX = 0,
    5359  DMM2_IDX = 3,
     
    5561  DMM4_IDX = 2,
    5662  RBC_IDX  = 4
     63#endif
    5764};
     65#if SEC_DMM2_E0146
     66#define DMM_NUM_TYPE   3
     67#else
    5868#define DMM_NUM_TYPE   4
     69#endif
    5970#define RBC_NUM_TYPE   1
    6071#define DIM_NUM_TYPE   (DMM_NUM_TYPE+RBC_NUM_TYPE)
     
    7586#define DMM_NO_WEDGEINDEX       MAX_UINT
    7687#define DMM_NUM_WEDGE_REFINES   8
     88#if !SEC_DMM2_E0146
    7789#define DMM2_DELTAEND_MAX       4
     90#endif
    7891#define DMM3_SIMPLIFY_TR        1
    7992
  • branches/HTM-DEV-2.0-dev3-Samsung/source/Lib/TLibCommon/TypeDef.h

    r543 r554  
    170170#if H_3D_DIM
    171171#define H_3D_DIM_DMM                      1   // Depth Modeling Modes
     172#if H_3D_DIM
     173#define SEC_DMM2_E0146                    1   // Removal of DMM2 from DMMs
     174#endif
    172175#define H_3D_DIM_RBC                      1   // Region Boundary Chain mode
    173176#define H_3D_DIM_SDC                      1   // Simplified Depth Coding method
Note: See TracChangeset for help on using the changeset viewer.