Ignore:
Timestamp:
4 Nov 2013, 16:32:06 (11 years ago)
Author:
zhang
Message:

JCT3V-F0132; JCT3V-F0171

Location:
branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibEncoder
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibEncoder/TEncSbac.cpp

    r655 r667  
    518518}
    519519
     520#if QC_DIM_DELTADC_UNIFY_F0132
     521Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt uiNumSeg )
     522{
     523  xWriteExGolombLevel( UInt( abs( valDeltaDC ) - ( uiNumSeg > 1 ? 0 : 1 ) ), m_cDdcDataSCModel.get(0, 0, 0) );
     524  if( valDeltaDC != 0 )
     525  {
     526    UInt uiSign = valDeltaDC > 0 ? 0 : 1;
     527    m_pcBinIf->encodeBinEP( uiSign );
     528  }
     529}
     530#else
    520531Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt dimType )
    521532{
     
    527538  }
    528539}
     540#endif
    529541
    530542#if H_3D_DIM_DMM
     
    12251237  }
    12261238
    1227 #if H_3D_DIM_SDC
     1239#if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132
    12281240  if( pcCU->getSDCFlag( absPartIdx ) )
    12291241  {
     
    12381250  {
    12391251#endif
     1252#if QC_DIM_DELTADC_UNIFY_F0132
     1253    if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) )
     1254#else
    12401255    if( dimType < DIM_NUM_TYPE )
    1241     {
     1256#endif
     1257    {
     1258#if QC_DIM_DELTADC_UNIFY_F0132
     1259      UInt dimDeltaDC;
     1260      Pel  deltaDC;
     1261      UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2;
     1262      if( pcCU->getSDCFlag( absPartIdx ) )
     1263      {
     1264        if( uiNumSegments==1 )
     1265        {
     1266          dimDeltaDC = pcCU->getSDCSegmentDCOffset(0, absPartIdx) ? 1 : 0;
     1267        }
     1268        else
     1269        {
     1270          dimDeltaDC = ( pcCU->getSDCSegmentDCOffset(0, absPartIdx) || pcCU->getSDCSegmentDCOffset(1, absPartIdx) ) ? 1 : 0;
     1271        }
     1272      }
     1273      else
     1274      {
     1275        dimDeltaDC = isDimDeltaDC( dir );
     1276      }
     1277
     1278      m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) );
     1279
     1280      if( dimDeltaDC )
     1281      {
     1282        for( UInt segment = 0; segment < uiNumSegments; segment++ )
     1283        {
     1284          deltaDC = pcCU->getSDCFlag( absPartIdx ) ? pcCU->getSDCSegmentDCOffset(segment, absPartIdx) : pcCU->getDimDeltaDC( dimType, segment, absPartIdx );
     1285          xCodeDimDeltaDC( deltaDC, uiNumSegments );
     1286        }
     1287      }
     1288#else
    12421289      UInt dimDeltaDC = isDimDeltaDC( dir );
    12431290      m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) );
     
    12491296        }
    12501297      }
    1251     }
    1252 #if H_3D_DIM_SDC
     1298#endif
     1299    }
     1300#if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132
    12531301  }
    12541302#endif
  • branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibEncoder/TEncSbac.h

    r655 r667  
    118118  #if H_3D_DIM
    119119  Void  xWriteExGolombLevel  ( UInt uiSymbol, ContextModel& rcSCModel  );
     120#if QC_DIM_DELTADC_UNIFY_F0132
     121  Void  xCodeDimDeltaDC      ( Pel valDeltaDC, UInt uiNumSeg );
     122#else
    120123  Void  xCodeDimDeltaDC      ( Pel valDeltaDC, UInt dimType );
     124#endif
    121125#if H_3D_DIM_DMM
    122126  Void  xCodeDmm1WedgeIdx    ( UInt uiTabIdx, Int iNumBit );
  • branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibEncoder/TEncSearch.cpp

    r655 r667  
    29282928        {
    29292929          Pel deltaDC1 = 0; Pel deltaDC2 = 0;
     2930#if QC_DIM_DELTADC_UNIFY_F0132
     2931          xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 );
     2932#else
    29302933          xSearchRbcDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 );
     2934#endif
    29312935          pcCU->setDimDeltaDC( RBC_IDX, 0, uiPartOffset, deltaDC1 );
    29322936          pcCU->setDimDeltaDC( RBC_IDX, 1, uiPartOffset, deltaDC2 );
Note: See TracChangeset for help on using the changeset viewer.