Changeset 434 in 3DVCSoftware for branches


Ignore:
Timestamp:
22 May 2013, 22:32:57 (12 years ago)
Author:
tech
Message:

Merged missing parts.

Location:
branches/HTM-6.2-dev0/source/Lib
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-6.2-dev0/source/Lib/TLibCommon/TComPrediction.h

    r433 r434  
    249249#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
    250250  Void  predIntraLumaDMM        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiMode, Pel* piPred, UInt uiStride, Int iWidth, Int iHeight, Bool bAbove, Bool bLeft, Bool bEncoder );
     251#if QC_DC_PREDICTOR_D0183
     252  Void  getPredDCs              ( Bool* pbPattern, Int iPatternStride, Int* piMask, Int iMaskStride, Int& riPredDC1, Int& riPredDC2 );
     253#else
    251254  Void  getWedgePredDCs         ( TComWedgelet* pcWedgelet, Int* piMask, Int iMaskStride, Int& riPredDC1, Int& riPredDC2, Bool bAbove, Bool bLeft );
    252255#endif
  • branches/HTM-6.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp

    r433 r434  
    866866    assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 );
    867867    assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 );
     868#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    868869    decodeSDCResidualData(pcCU, uiAbsPartIdx, uiDepth);
    869870#endif
     
    939940  m_pcEntropyDecoderIf->parseSDCFlag(pcCU, uiAbsPartIdx, uiDepth );
    940941}
     942#endif
    941943Void TDecEntropy::decodeSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    942944{
  • branches/HTM-6.2-dev0/source/Lib/TLibDecoder/TDecSbac.cpp

    r433 r434  
    919919  pcCU->setPredModeSubParts( (PredMode)iPredMode, uiAbsPartIdx, uiDepth );
    920920}
     921#if PKU_QC_DEPTH_INTRA_UNI_D0195
     922Void TDecSbac::parseDepthIntraMode  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
     923{
     924  UInt uiPuIdx = ( pcCU->getWidth(uiAbsPartIdx) == 64 )? 2 : ( ( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_NxN && pcCU->getWidth(uiAbsPartIdx) == 8 )? 0 : 1);
     925  UInt uiDir = 0;
     926  Bool bSDCFlag = 0;
     927  UInt uiSymbol = 1;
     928  UInt uiCode = 0 ;
     929  UInt uiBinNum = 0;
     930  UInt uiCtxDepthMode = 0;
     931  if ( uiPuIdx ==2 )
     932  {
     933    while(uiBinNum<2 && uiSymbol)
     934    {
     935      uiCtxDepthMode = uiPuIdx*3 + uiBinNum;
     936      m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     937      uiCode = (uiCode<<1)+uiSymbol;
     938      uiBinNum++;
     939    }
     940    if (uiCode == 0)      { uiDir = PLANAR_IDX; bSDCFlag = 1;}
     941    else if (uiCode == 2) { uiDir = 0;          bSDCFlag = 0;}
     942    else if (uiCode == 3) { uiDir = DC_IDX;     bSDCFlag = 1;}
     943  }
     944  else if ( uiPuIdx ==0 )
     945  {
     946    while(uiBinNum<3 && uiSymbol)
     947    {
     948      uiCtxDepthMode = uiPuIdx*3 + ( uiBinNum >= 2? 2 : uiBinNum );
     949      m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     950      uiCode = (uiCode<<1)+uiSymbol;
     951      uiBinNum++;
     952    }
     953    if (uiCode == 0)      { uiDir = 0;                     bSDCFlag = 0;}
     954    else if (uiCode == 2) { uiDir = DMM_WEDGE_FULL_IDX;    bSDCFlag = 0;}
     955    else if (uiCode == 6) { uiDir = DMM_WEDGE_PREDTEX_IDX; bSDCFlag = 0;}
     956    else if (uiCode == 7) { uiDir = EDGE_INTRA_IDX;        bSDCFlag = 0;}
     957  }
     958  else
     959  {
     960    uiCtxDepthMode = uiPuIdx*3 ;
     961    m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     962    uiCode = (uiCode<<1)+uiSymbol;
     963    if (!uiSymbol)
     964    {
     965      uiCtxDepthMode = uiPuIdx*3 + 1;
     966      m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     967      uiCode = (uiCode<<1)+uiSymbol;
     968      if (uiSymbol)
     969      {
     970        uiCtxDepthMode = uiPuIdx*3 + 2;
     971        m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     972        uiCode = (uiCode<<1)+uiSymbol;
     973      }
     974    }
     975    else
     976    {
     977      uiCtxDepthMode = uiPuIdx*3 + 1;
     978      m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     979      uiCode = (uiCode<<1)+uiSymbol;
     980      if (!uiSymbol)
     981      {
     982        uiCtxDepthMode = uiPuIdx*3 + 2;
     983        m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     984        uiCode = (uiCode<<1)+uiSymbol;
     985      }
     986      else
     987      {
     988        uiBinNum = 0;
     989        while( uiSymbol && uiBinNum<3 )
     990        {
     991          uiCtxDepthMode = uiPuIdx*3 + 2;
     992          m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     993          uiCode = (uiCode<<1)+uiSymbol;
     994          uiBinNum++;
     995        }
     996      }
     997    }
     998    if (uiCode == 0)       { uiDir = PLANAR_IDX;              bSDCFlag = 1;}
     999    else if (uiCode == 2)  { uiDir = 5;                       bSDCFlag = 0;}
     1000    else if (uiCode == 3)  { uiDir = DMM_WEDGE_FULL_IDX;      bSDCFlag = 1;}
     1001    else if (uiCode == 4)  { uiDir = DMM_WEDGE_FULL_IDX;      bSDCFlag = 0;}
     1002    else if (uiCode == 5)  { uiDir = DMM_CONTOUR_PREDTEX_IDX; bSDCFlag = 0;}
     1003    else if (uiCode == 6)  { uiDir = DMM_WEDGE_PREDTEX_IDX;   bSDCFlag = 0;}
     1004    else if (uiCode == 14) { uiDir = DC_IDX;                  bSDCFlag = 1;}
     1005    else if (uiCode == 31) { uiDir = DMM_WEDGE_PREDDIR_IDX;   bSDCFlag = 0;}
     1006    else if (uiCode == 30) { uiDir = EDGE_INTRA_IDX;          bSDCFlag = 0;}
     1007  }
     1008  pcCU->setLumaIntraDirSubParts( (UChar)uiDir, uiAbsPartIdx, uiDepth );
     1009  pcCU->setSDCFlagSubParts(bSDCFlag, uiAbsPartIdx, 0, uiDepth);
     1010}
     1011Void TDecSbac::parseDepthModelingTable  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
     1012{
     1013  parseDepthIntraMode(pcCU,uiAbsPartIdx,uiDepth);
     1014 
     1015  UInt uiDir = pcCU->getLumaIntraDir(uiAbsPartIdx);
     1016  Bool bSdcFlag =  pcCU->getSDCAvailable(uiAbsPartIdx) && pcCU->getSDCFlag(uiAbsPartIdx);
     1017  Bool bDmmFlag = (uiDir >= NUM_INTRA_MODE && uiDir < EDGE_INTRA_IDX &&(!bSdcFlag))? 1:0;
     1018  if (uiDir >= NUM_INTRA_MODE && uiDir < EDGE_INTRA_IDX)//DMM modes and SDC DMM1
     1019  {
     1020    if( uiDir == DMM_WEDGE_FULL_IDX )          { xParseWedgeFullInfo          ( pcCU, uiAbsPartIdx, uiDepth ); }
     1021    else if( uiDir == DMM_WEDGE_PREDTEX_IDX )  { xParseWedgePredTexInfo       ( pcCU, uiAbsPartIdx, uiDepth ); }
     1022    else if( uiDir == DMM_WEDGE_PREDDIR_IDX )  { xParseWedgePredDirInfo       ( pcCU, uiAbsPartIdx, uiDepth ); }
     1023  }
     1024  else if(uiDir >= EDGE_INTRA_IDX)//CCM mode
     1025  {
     1026    xParseEdgeIntraInfo( pcCU, uiAbsPartIdx, uiDepth );
     1027  }
    9211028 
    9221029  UInt uiSymbol;
     
    10781185        bCodeEdgeIntra = true;
    10791186    }
     1187#endif
    10801188#endif
    10811189    Int uiPreds[3] = {-1, -1, -1};
  • branches/HTM-6.2-dev0/source/Lib/TLibDecoder/TDecSbac.h

    r433 r434  
    192192  Void parsePartSize      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    193193  Void parsePredMode      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     194#if PKU_QC_DEPTH_INTRA_UNI_D0195
     195  Void parseDepthIntraMode  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     196  Void parseDepthModelingTable( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     197#endif
    194198  Void parseIntraDirLumaAng( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    195199 
  • branches/HTM-6.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp

    r433 r434  
    869869  m_pcEntropyCoderIf->codePredMode( pcCU, uiAbsPartIdx );
    870870 
     871#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    871872#if RWTH_SDC_DLT_B0036
    872873  // if B-Slice, code SDC flag later
     
    12901291    {
    12911292      encodeIntraDirModeLuma  ( pcCU, uiAbsPartIdx
     1293#if PKU_QC_DEPTH_INTRA_UNI_D0195
     1294        ,bSdcRD
     1295#endif
     1296        );
     1297#if PKU_QC_DEPTH_INTRA_UNI_D0195
     1298      if(!pcCU->getSDCFlag(uiAbsPartIdx))
     1299#endif
    12921300      encodeIntraDirModeChroma( pcCU, uiAbsPartIdx, bRD );
    12931301    }
     
    14871495    assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 );
    14881496    assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 );
     1497#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    14891498    encodeSDCResidualData(pcCU, uiAbsPartIdx);
    14901499#endif
     
    19041913  m_pcEntropyCoderIf->codeSDCFlag(pcCU, uiAbsPartIdx);
    19051914}
     1915#endif
    19061916Void TEncEntropy::encodeSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    19071917{
Note: See TracChangeset for help on using the changeset viewer.