Changeset 612 in 3DVCSoftware for branches/HTM-8.0-dev0/source/Lib/TLibCommon


Ignore:
Timestamp:
3 Sep 2013, 17:46:48 (12 years ago)
Author:
hhi
Message:

SEC_DMM2_E0146_HHIFIX: Fix for SEC_DMM2_E0146, now including all DMM2 related code.

Location:
branches/HTM-8.0-dev0/source/Lib/TLibCommon
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-8.0-dev0/source/Lib/TLibCommon/ContextTables.h

    r608 r612  
    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
     114#if !SEC_DMM2_E0146_HHIFIX
    115115#define NUM_DMM2_DATA_CTX             1       ///< number of context models for DMM2 data
    116116#endif
     
    429429  { CNU },
    430430};
    431 #if !SEC_DMM2_E0146
     431#if !SEC_DMM2_E0146_HHIFIX
    432432static const UChar
    433433INIT_DMM2_DATA[3][NUM_DMM2_DATA_CTX] =
  • branches/HTM-8.0-dev0/source/Lib/TLibCommon/TComDataCU.cpp

    r608 r612  
    120120    m_dmmWedgeTabIdx[i] = NULL;
    121121  }
    122 #if !SEC_DMM2_E0146
     122#if !SEC_DMM2_E0146_HHIFIX
    123123  m_dmm2DeltaEnd    = NULL;
    124124#endif
     
    280280      m_dmmWedgeTabIdx[i]    = (UInt*)xMalloc(UInt, uiNumPartition);
    281281    }
    282 #if !SEC_DMM2_E0146
     282#if !SEC_DMM2_E0146_HHIFIX
    283283    m_dmm2DeltaEnd    = (Int* )xMalloc(Int,  uiNumPartition);
    284284#endif
     
    419419      if ( m_dmmWedgeTabIdx[i] ) { xFree( m_dmmWedgeTabIdx[i] ); m_dmmWedgeTabIdx[i] = NULL; }
    420420    }
    421 #if !SEC_DMM2_E0146
     421#if !SEC_DMM2_E0146_HHIFIX
    422422    if ( m_dmm2DeltaEnd    ) { xFree( m_dmm2DeltaEnd    ); m_dmm2DeltaEnd    = NULL; }
    423423#endif
     
    646646      memset( m_dmmWedgeTabIdx[i] + firstElement, 0,                      numElements * sizeof( *m_dmmWedgeTabIdx[i] ) );
    647647    }
    648 #if !SEC_DMM2_E0146
     648#if !SEC_DMM2_E0146_HHIFIX
    649649    memset( m_dmm2DeltaEnd      + firstElement, 0,                        numElements * sizeof( *m_dmm2DeltaEnd    ) );
    650650#endif
     
    829829        m_dmmWedgeTabIdx[i] [ui] = 0;
    830830      }
    831 #if !SEC_DMM2_E0146
     831#if !SEC_DMM2_E0146_HHIFIX
    832832      m_dmm2DeltaEnd    [ui] = 0;
    833833#endif
     
    946946    memset( m_dmmWedgeTabIdx[i], 0, sizeof(UInt) * m_uiNumPartition );
    947947  }
    948 #if !SEC_DMM2_E0146
     948#if !SEC_DMM2_E0146_HHIFIX
    949949  memset( m_dmm2DeltaEnd   , 0, sizeof(Int ) * m_uiNumPartition );
    950950#endif
     
    10361036        m_dmmWedgeTabIdx[i] [ui] = pcCU->m_dmmWedgeTabIdx[i] [uiPartOffset+ui];
    10371037      }
    1038 #if !SEC_DMM2_E0146
     1038#if !SEC_DMM2_E0146_HHIFIX
    10391039      m_dmm2DeltaEnd    [ui] = pcCU->m_dmm2DeltaEnd   [uiPartOffset+ui];
    10401040#endif
     
    11961196    m_dmmWedgeTabIdx[i] = pcCU->getDmmWedgeTabIdx( i ) + uiPart;
    11971197  }
    1198 #if !SEC_DMM2_E0146
     1198#if !SEC_DMM2_E0146_HHIFIX
    11991199  m_dmm2DeltaEnd    = pcCU->getDmm2DeltaEnd()    + uiPart;
    12001200#endif
     
    14041404    memcpy( m_dmmWedgeTabIdx[i] + uiOffset, pcCU->getDmmWedgeTabIdx( i ), sizeof(UInt) * uiNumPartition );
    14051405  }
    1406 #if !SEC_DMM2_E0146
     1406#if !SEC_DMM2_E0146_HHIFIX
    14071407  memcpy( m_dmm2DeltaEnd    + uiOffset, pcCU->getDmm2DeltaEnd()   , sizeof(Int ) * uiNumPartition );
    14081408#endif
     
    15391539    memcpy( rpcCU->getDmmWedgeTabIdx( i ) + m_uiAbsIdxInLCU, m_dmmWedgeTabIdx[i], sizeof(UInt) * m_uiNumPartition );
    15401540  }
    1541 #if !SEC_DMM2_E0146
     1541#if !SEC_DMM2_E0146_HHIFIX
    15421542  memcpy( rpcCU->getDmm2DeltaEnd()    + m_uiAbsIdxInLCU, m_dmm2DeltaEnd   , sizeof(Int ) * m_uiNumPartition );
    15431543#endif
     
    16581658    memcpy( rpcCU->getDmmWedgeTabIdx( i ) + uiPartOffset, m_dmmWedgeTabIdx[i], sizeof(UInt) * uiQNumPart );
    16591659  }
    1660 #if !SEC_DMM2_E0146
     1660#if !SEC_DMM2_E0146_HHIFIX
    16611661  memcpy( rpcCU->getDmm2DeltaEnd()    + uiPartOffset, m_dmm2DeltaEnd   , sizeof(Int ) * uiQNumPart );
    16621662#endif
     
    64066406  for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmmWedgeTabIdx[dmmType][uiAbsPartIdx+ui] = tabIdx; }
    64076407}
    6408 #if !SEC_DMM2_E0146
     6408#if !SEC_DMM2_E0146_HHIFIX
    64096409Void  TComDataCU::setDmm2DeltaEndSubParts( Int iDelta, UInt uiAbsPartIdx, UInt uiDepth )
    64106410{
  • branches/HTM-8.0-dev0/source/Lib/TLibCommon/TComDataCU.h

    r608 r612  
    211211#if H_3D_DIM_DMM
    212212  UInt*         m_dmmWedgeTabIdx[DMM_NUM_TYPE];
    213 #if !SEC_DMM2_E0146
     213#if !SEC_DMM2_E0146_HHIFIX
    214214  Int*          m_dmm2DeltaEnd;
    215215#endif
     
    555555  Void  setDmmWedgeTabIdxSubParts     ( UInt tabIdx, UInt dmmType, UInt uiAbsPartIdx, UInt uiDepth );
    556556
    557 #if !SEC_DMM2_E0146
     557#if !SEC_DMM2_E0146_HHIFIX
    558558  Int*  getDmm2DeltaEnd               ()                      { return m_dmm2DeltaEnd;        }
    559559  Int   getDmm2DeltaEnd               ( UInt uiIdx )          { return m_dmm2DeltaEnd[uiIdx]; }
  • branches/HTM-8.0-dev0/source/Lib/TLibCommon/TComPrediction.cpp

    r608 r612  
    456456        dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]);
    457457      } break;
    458 #if !SEC_DMM2_E0146
     458#if !SEC_DMM2_E0146_HHIFIX
    459459    case( DMM2_IDX ):
    460460      {
     
    27732773
    27742774#if H_3D_DIM_DMM
     2775#if !SEC_DMM2_E0146_HHIFIX
    27752776UInt TComPrediction::xPredWedgeFromIntra( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Int iDeltaEnd )
    27762777{
     
    27842785  {
    27852786    UInt dimType =  getDimType( pcTempCU->getLumaIntraDir( uiTempPartIdx ) );
    2786 #if SEC_DMM2_E0146
    2787     if( DMM1_IDX == dimType || DMM3_IDX == dimType )
    2788 #else
    27892787    if( DMM1_IDX == dimType || DMM2_IDX == dimType || DMM3_IDX == dimType )
    2790 #endif
    27912788    {
    27922789      // get offset between current and reference block
     
    28132810  {
    28142811    UInt dimType = getDimType( pcTempCU->getLumaIntraDir( uiTempPartIdx ) );
    2815 #if SEC_DMM2_E0146
    2816     if( DMM1_IDX == dimType || DMM3_IDX == dimType )
    2817 #else
    28182812    if( DMM1_IDX == dimType || DMM2_IDX == dimType || DMM3_IDX == dimType )
    2819 #endif
    28202813    {
    28212814      // get offset between current and reference block
     
    28492842  return 0;
    28502843}
     2844#endif
    28512845
    28522846UInt TComPrediction::xPredWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt intraTabIdx )
     
    29142908}
    29152909
     2910#if !SEC_DMM2_E0146_HHIFIX
    29162911Void TComPrediction::xGetBlockOffset( TComDataCU* pcCU, UInt uiAbsPartIdx, TComDataCU* pcRefCU, UInt uiRefAbsPartIdx, UInt& ruiOffsetX, UInt& ruiOffsetY )
    29172912{
     
    33023297}
    33033298#endif
     3299#endif
    33043300#if H_3D_DIM_RBC
    33053301Void TComPrediction::xDeltaDCQuantScaleUp( TComDataCU* pcCU, Pel& rDeltaDC )
  • branches/HTM-8.0-dev0/source/Lib/TLibCommon/TComPrediction.h

    r608 r612  
    154154  Void xAssignBiSegDCs          ( Pel* ptrDst, UInt dstStride, Bool* biSegPattern, Int patternStride, Pel   valDC1, Pel   valDC2 );
    155155#if H_3D_DIM_DMM
     156#if !SEC_DMM2_E0146_HHIFIX
    156157  UInt xPredWedgeFromIntra      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Int iDeltaEnd = 0 );
     158#endif
    157159  UInt xPredWedgeFromTex        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt intraTabIdx );
    158160  Void xPredContourFromTex      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, TComWedgelet* pcContourWedge );
     
    160162  Void xCopyTextureLumaBlock    ( TComDataCU* pcCU, UInt uiAbsPartIdx, Pel* piDestBlockY, UInt uiWidth, UInt uiHeight );
    161163
     164#if !SEC_DMM2_E0146_HHIFIX
    162165  Void xGetBlockOffset          ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComDataCU* pcRefCU, UInt uiRefAbsPartIdx, UInt& ruiOffsetX, UInt& ruiOffsetY );
    163166  Bool xGetWedgeIntraDirPredData( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiBlockSize, Int& riSlopeX, Int& riSlopeY, UInt& ruiStartPosX, UInt& ruiStartPosY );
    164167  Void xGetWedgeIntraDirStartEnd( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiBlockSize, Int iDeltaX, Int iDeltaY, UInt uiPMSPosX, UInt uiPMSPosY, UChar& ruhXs, UChar& ruhYs, UChar& ruhXe, UChar& ruhYe, Int iDeltaEnd = 0 );
    165168  UInt xGetWedgePatternIdx      ( UInt uiBlockSize, UChar uhXs, UChar uhYs, UChar uhXe, UChar uhYe );
     169#endif
    166170#endif
    167171#if H_3D_DIM_RBC
  • branches/HTM-8.0-dev0/source/Lib/TLibCommon/TComWedgelet.cpp

    r608 r612  
    175175}
    176176
     177#if !SEC_DMM2_E0146_HHIFIX
    177178Bool TComWedgelet::checkPredDirAbovePossible( UInt uiPredDirBlockSize, UInt uiPredDirBlockOffset )
    178179{
     
    642643  }
    643644}
     645#endif
    644646
    645647Void TComWedgelet::xGenerateWedgePattern()
  • branches/HTM-8.0-dev0/source/Lib/TLibCommon/TComWedgelet.h

    r608 r612  
    5050enum DIM_IDX
    5151{
    52 #if SEC_DMM2_E0146
     52#if SEC_DMM2_E0146_HHIFIX
    5353  DMM1_IDX = 0,
    5454  DMM3_IDX = 1,
     
    6363#endif
    6464};
    65 #if SEC_DMM2_E0146
     65#if SEC_DMM2_E0146_HHIFIX
    6666#define DMM_NUM_TYPE   3
    6767#else
     
    8686#define DMM_NO_WEDGEINDEX       MAX_UINT
    8787#define DMM_NUM_WEDGE_REFINES   8
    88 #if !SEC_DMM2_E0146
     88#if !SEC_DMM2_E0146_HHIFIX
    8989#define DMM2_DELTAEND_MAX       4
    9090#endif
     
    151151  Bool  checkInvIdentical( Bool* pbRefPattern );
    152152
     153#if !SEC_DMM2_E0146_HHIFIX
    153154  // functions for DMM2 prediction
    154155  Bool  checkPredDirAbovePossible( UInt uiPredDirBlockSize, UInt uiPredDirBlockOffsett );
     
    156157  Void  getPredDirStartEndAbove( UChar& ruhXs, UChar& ruhYs, UChar& ruhXe, UChar& ruhYe, UInt uiPredDirBlockSize, UInt uiPredDirBlockOffset, Int iDeltaEnd );
    157158  Void  getPredDirStartEndLeft ( UChar& ruhXs, UChar& ruhYs, UChar& ruhXe, UChar& ruhYe, UInt uiPredDirBlockSize, UInt uiPredDirBlockOffset, Int iDeltaEnd );
     159#endif
    158160};  // END CLASS DEFINITION TComWedgelet
    159161
  • branches/HTM-8.0-dev0/source/Lib/TLibCommon/TypeDef.h

    r608 r612  
    180180
    181181#if H_3D_DIM
    182 #define SEC_DMM2_E0146                    1   // Removal of DMM2 from DMMs
     182#define SEC_DMM2_E0146_HHIFIX             1   // Removal of DMM2 from DMMs
    183183#define ZJU_DEPTH_INTRA_MODE_E0204        1   // Simplified Binarization for depth_intra_mode
    184184#define KWU_SDC_SIMPLE_DC_E0117           1   // Simplified DC calculation for SDC
Note: See TracChangeset for help on using the changeset viewer.