Changeset 928 in 3DVCSoftware


Ignore:
Timestamp:
20 Apr 2014, 17:31:51 (10 years ago)
Author:
hisilicon-htm
Message:

Integration of H0108 "Clean-up on DMM and SDC DC value derivation"

Location:
branches/HTM-10.2-dev3-Hisilicon
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-10.2-dev3-Hisilicon/source/Lib/TLibCommon/TComDataCU.cpp

    r924 r928  
    610610    memset( m_apSegmentDCOffset[1]  + firstElement,     0,                numElements * sizeof( *m_apSegmentDCOffset[1] ) );
    611611#endif
     612#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     613    m_apDmmPredictor[0] = 0;
     614    m_apDmmPredictor[1] = 0;
     615#endif
    612616#endif
    613617#if H_3D_DBBP
     
    784788      m_apSegmentDCOffset[1][ui] = 0;
    785789#endif
     790#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     791      m_apDmmPredictor[0] = 0;
     792      m_apDmmPredictor[1] = 0;
     793#endif
    786794#endif
    787795#if H_3D_DBBP
     
    898906  memset( m_apSegmentDCOffset[0], 0, sizeof(Pel) * m_uiNumPartition   );
    899907  memset( m_apSegmentDCOffset[1], 0, sizeof(Pel) * m_uiNumPartition   );
     908#endif
     909#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     910  m_apDmmPredictor[0] = 0;
     911  m_apDmmPredictor[1] = 0;
    900912#endif
    901913#endif
  • branches/HTM-10.2-dev3-Hisilicon/source/Lib/TLibCommon/TComDataCU.h

    r884 r928  
    193193  Bool*         m_pbSDCFlag;
    194194  Pel*          m_apSegmentDCOffset[2];
     195#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     196  Pel          m_apDmmPredictor[2];
     197#endif
    195198#endif
    196199#endif
     
    556559  Pel           getSDCSegmentDCOffset( UInt uiSeg, UInt uiPartIdx ) { return m_apSegmentDCOffset[uiSeg][uiPartIdx]; }
    557560  Void          setSDCSegmentDCOffset( Pel pOffset, UInt uiSeg, UInt uiPartIdx) { m_apSegmentDCOffset[uiSeg][uiPartIdx] = pOffset; }
     561#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     562  Void          setDmmPredictor ( Pel pOffset, UInt uiSeg) { m_apDmmPredictor[uiSeg] = pOffset; }
     563  Pel           getDmmPredictor ( UInt uiSeg) { return m_apDmmPredictor[uiSeg]; }
     564#endif
    558565  UInt          getCtxSDCFlag          ( UInt   uiAbsPartIdx );
    559566  UInt          getCtxAngleFlag        ( UInt   uiAbsPartIdx );
  • branches/HTM-10.2-dev3-Hisilicon/source/Lib/TLibCommon/TComPrediction.cpp

    r888 r928  
    500500  Pel* pDst = piPred;
    501501  xAssignBiSegDCs( pDst, uiStride, biSegPattern, patternStride, segDC1, segDC2 );
     502#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     503  pcCU->setDmmPredictor(segDC1, 0);
     504  pcCU->setDmmPredictor(segDC2, 1);
     505#endif
    502506
    503507#if H_3D_DIM_DMM
     
    21962200  if (orgDC == false)
    21972201  {
     2202#if !HS_DMM_SDC_PREDICTOR_UNIFY_H0108
    21982203    if ( getDimType(uiIntraMode) == DMM1_IDX )
    21992204    {
     
    22412246    }
    22422247    else
     2248#endif
    22432249    {
    22442250      Pel* pLeftTop = pOrig;
  • branches/HTM-10.2-dev3-Hisilicon/source/Lib/TLibCommon/TypeDef.h

    r924 r928  
    273273#define H_3D_DIM_DLT                      1   // Depth Lookup Table
    274274
     275#define HS_DMM_SDC_PREDICTOR_UNIFY_H0108  1   // Unification of DMM and SDC predictor derivation
    275276#define LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135  1 // Use only one context for CABAC of dim_not_present_flag
    276277#define QC_SIMP_DELTADC_CODING_H0131      1   // Simplify detaDC entropy coding
  • branches/HTM-10.2-dev3-Hisilicon/source/Lib/TLibDecoder/TDecCu.cpp

    r884 r928  
    12311231  // get DC prediction for each segment
    12321232  Pel apDCPredValues[2];
     1233#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     1234  if ( getDimType( uiLumaPredMode ) == DMM1_IDX || getDimType( uiLumaPredMode ) == DMM4_IDX )
     1235  {
     1236    apDCPredValues[0] = pcCU->getDmmPredictor( 0 );
     1237    apDCPredValues[1] = pcCU->getDmmPredictor( 1 );
     1238  }
     1239  else
     1240#endif
    12331241  m_pcPrediction->analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode);
    12341242 
  • branches/HTM-10.2-dev3-Hisilicon/source/Lib/TLibEncoder/TEncSearch.cpp

    r884 r928  
    19891989  // get DC prediction for each segment
    19901990  Pel apDCPredValues[2];
     1991#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     1992  if ( getDimType( uiLumaPredMode ) == DMM1_IDX || getDimType( uiLumaPredMode ) == DMM4_IDX )
     1993  {
     1994    apDCPredValues[0] = pcCU->getDmmPredictor( 0 );
     1995    apDCPredValues[1] = pcCU->getDmmPredictor( 1 );
     1996  }
     1997  else
     1998#endif
    19911999  analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode );
    19922000
Note: See TracChangeset for help on using the changeset viewer.