Ignore:
Timestamp:
7 May 2013, 10:29:53 (12 years ago)
Author:
zhang
Message:

JCT3V-D0195 and Results for D0183/D0195

Location:
branches/HTM-6.2-dev3-Qualcomm/source/Lib/TLibDecoder
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-6.2-dev3-Qualcomm/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r332 r382  
    24262426
    24272427#if RWTH_SDC_DLT_B0036
     2428#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    24282429Void TDecCavlc::parseSDCFlag    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    24292430{
     
    24342435  assert(0);
    24352436}
     2437#endif
    24362438Void TDecCavlc::parseSDCResidualData     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart )
    24372439{
  • branches/HTM-6.2-dev3-Qualcomm/source/Lib/TLibDecoder/TDecCAVLC.h

    r332 r382  
    171171  Void parseDFSvlc         ( Int&  riVal,  const Char *pSymbolName  );
    172172#if RWTH_SDC_DLT_B0036
    173   Void parseSDCFlag    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     173#if !PKU_QC_DEPTH_INTRA_UNI_D0195
     174  Void parseSDCFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    174175  Void parseSDCPredMode    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     176#endif
    175177  Void parseSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart );
    176178#endif
  • branches/HTM-6.2-dev3-Qualcomm/source/Lib/TLibDecoder/TDecEntropy.cpp

    r332 r382  
    117117  m_pcEntropyDecoderIf->parsePredMode( pcCU, uiAbsPartIdx, uiDepth );
    118118 
     119#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    119120#if RWTH_SDC_DLT_B0036
    120121  // if B-Slice, code SDC flag later
     
    125126  }
    126127#endif
     128#endif
    127129}
    128130
    129131Void TDecEntropy::decodePartSize( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    130132{
     133#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    131134#if RWTH_SDC_DLT_B0036
    132135  if( !pcCU->getSlice()->isInterB() && pcCU->isIntra(uiAbsPartIdx) && pcCU->getSDCFlag(uiAbsPartIdx)  )
     
    137140  }
    138141#endif
     142#endif
    139143 
    140144  m_pcEntropyDecoderIf->parsePartSize( pcCU, uiAbsPartIdx, uiDepth );
    141145 
     146#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    142147#if RWTH_SDC_DLT_B0036
    143148  if( pcCU->getSlice()->isInterB() && pcCU->getSlice()->getSPS()->isDepth() && pcCU->isIntra(uiAbsPartIdx) )
     
    154159  }
    155160#endif
     161#endif
    156162}
    157163
    158164Void TDecEntropy::decodePredInfo    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, TComDataCU* pcSubCU )
    159165{
     166#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    160167#if RWTH_SDC_DLT_B0036
    161168  if( pcCU->getSDCFlag(uiAbsPartIdx) )
     
    164171    return;
    165172  }
     173#endif
    166174#endif
    167175 
     
    178186      decodeIntraDirModeLuma( pcCU, uiAbsPartIdx + uiPartOffset*2, uiDepth+1 );
    179187      decodeIntraDirModeLuma( pcCU, uiAbsPartIdx + uiPartOffset*3, uiDepth+1 );
     188#if PKU_QC_DEPTH_INTRA_UNI_D0195
     189      if(!pcCU->getSDCFlag(uiAbsPartIdx))
     190#endif
    180191      decodeIntraDirModeChroma( pcCU, uiAbsPartIdx, uiDepth );
    181192    }
     
    183194    {
    184195      decodeIntraDirModeLuma  ( pcCU, uiAbsPartIdx, uiDepth );
     196#if PKU_QC_DEPTH_INTRA_UNI_D0195
     197      if(!pcCU->getSDCFlag(uiAbsPartIdx))
     198#endif
    185199      decodeIntraDirModeChroma( pcCU, uiAbsPartIdx, uiDepth );
    186200    }
     
    789803    assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 );
    790804    assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 );
    791    
     805#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    792806    decodeSDCResidualData(pcCU, uiAbsPartIdx, uiDepth);
     807#endif
    793808    return;
    794809  }
     
    847862
    848863#if RWTH_SDC_DLT_B0036
     864#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    849865Void TDecEntropy::decodeSDCPredMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    850866{
     
    861877  m_pcEntropyDecoderIf->parseSDCFlag(pcCU, uiAbsPartIdx, uiDepth );
    862878}
    863 
     879#endif
    864880Void TDecEntropy::decodeSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    865881{
  • branches/HTM-6.2-dev3-Qualcomm/source/Lib/TLibDecoder/TDecEntropy.h

    r332 r382  
    137137 
    138138#if RWTH_SDC_DLT_B0036
    139   virtual Void parseSDCFlag    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
     139#if !PKU_QC_DEPTH_INTRA_UNI_D0195
     140  virtual Void parseSDCFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    140141  virtual Void parseSDCPredMode     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
     142#endif
    141143  virtual Void parseSDCResidualData     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart ) = 0;
    142144#endif
     
    232234 
    233235#if RWTH_SDC_DLT_B0036
     236#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    234237  Void decodeSDCPredMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    235238  Void decodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     239#endif
    236240  Void decodeSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    237241#endif
  • branches/HTM-6.2-dev3-Qualcomm/source/Lib/TLibDecoder/TDecSbac.cpp

    r354 r382  
    9595, m_cSaoTypeIdxSCModel        ( 1,             1,               NUM_SAO_TYPE_IDX_CTX          , m_contextModels + m_numContextModels, m_numContextModels)
    9696#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     97#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    9798, m_cDmmFlagSCModel           ( 1,             1,               NUM_DMM_FLAG_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    9899, m_cDmmModeSCModel           ( 1,             1,               NUM_DMM_MODE_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
     100#endif
    99101, m_cDmmDataSCModel           ( 1,             1,               NUM_DMM_DATA_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    100102#endif
     
    106108#endif
    107109#if RWTH_SDC_DLT_B0036
     110#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    108111, m_cSDCFlagSCModel             ( 1,             1,                 SDC_NUM_FLAG_CTX           , m_contextModels + m_numContextModels, m_numContextModels)
     112#else
     113, m_cDepthModeModel             ( 1,             1,                 DEPTH_MODE_NUM_FLAG_CTX           , m_contextModels + m_numContextModels, m_numContextModels)
     114, m_cDmmDeltaFlagModel             ( 1,             1,                 DMM_DELTA_NUM_FLAG_CTX           , m_contextModels + m_numContextModels, m_numContextModels)
     115#endif
    109116, m_cSDCResidualFlagSCModel     ( 1,             2,  SDC_NUM_RESIDUAL_FLAG_CTX  , m_contextModels + m_numContextModels, m_numContextModels)
    110117, m_cSDCResidualSignFlagSCModel ( 1,             2,  SDC_NUM_SIGN_FLAG_CTX      , m_contextModels + m_numContextModels, m_numContextModels)
     
    200207  m_uiLastDQpNonZero  = 0;
    201208#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     209#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    202210  m_cDmmFlagSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_DMM_FLAG );
    203211  m_cDmmModeSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_DMM_MODE );
     212#endif
    204213  m_cDmmDataSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_DMM_DATA );
    205214#endif
    206215#if RWTH_SDC_DLT_B0036
     216#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    207217  m_cSDCFlagSCModel.initBuffer              ( sliceType, qp, (UChar*)INIT_SDC_FLAG );
     218#else
     219  m_cDepthModeModel.initBuffer              ( sliceType, qp, (UChar*)INIT_DEPTHMODE_FLAG );
     220  m_cDmmDeltaFlagModel.initBuffer           ( sliceType, qp, (UChar*)INIT_DMMDELTA_FLAG );
     221#endif
    208222  m_cSDCResidualFlagSCModel.initBuffer      ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
    209223  m_cSDCResidualSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL );
     
    279293  m_cCUTransSubdivFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_TRANS_SUBDIV_FLAG );
    280294#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     295#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    281296  m_cDmmFlagSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DMM_FLAG );
    282297  m_cDmmModeSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DMM_MODE );
     298#endif
    283299  m_cDmmDataSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DMM_DATA );
    284300#endif
    285301#if RWTH_SDC_DLT_B0036
     302#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    286303  m_cSDCFlagSCModel.initBuffer              ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG );
     304#else
     305  m_cDepthModeModel.initBuffer              ( eSliceType, iQp, (UChar*)INIT_DEPTHMODE_FLAG );
     306  m_cDmmDeltaFlagModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DMMDELTA_FLAG );
     307#endif
    287308  m_cSDCResidualFlagSCModel.initBuffer      ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
    288309  m_cSDCResidualSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL );
     
    869890  pcCU->setPredModeSubParts( (PredMode)iPredMode, uiAbsPartIdx, uiDepth );
    870891}
    871  
     892#if PKU_QC_DEPTH_INTRA_UNI_D0195
     893Void TDecSbac::parseDepthIntraMode  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
     894{
     895  UInt uiPuIdx = ( pcCU->getWidth(uiAbsPartIdx) == 64 )? 2 : ( ( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_NxN && pcCU->getWidth(uiAbsPartIdx) == 8 )? 0 : 1);
     896  UInt uiDir = 0;
     897  Bool bSDCFlag = 0;
     898  UInt uiSymbol = 1;
     899  UInt uiCode = 0 ;
     900  UInt uiBinNum = 0;
     901  UInt uiCtxDepthMode = 0;
     902  if ( uiPuIdx ==2 )
     903  {
     904    while(uiBinNum<2 && uiSymbol)
     905    {
     906      uiCtxDepthMode = uiPuIdx*3 + uiBinNum;
     907      m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     908      uiCode = (uiCode<<1)+uiSymbol;
     909      uiBinNum++;
     910    }
     911    if (uiCode == 0)      { uiDir = PLANAR_IDX; bSDCFlag = 1;}
     912    else if (uiCode == 2) { uiDir = 0;          bSDCFlag = 0;}
     913    else if (uiCode == 3) { uiDir = DC_IDX;     bSDCFlag = 1;}
     914  }
     915  else if ( uiPuIdx ==0 )
     916  {
     917    while(uiBinNum<3 && uiSymbol)
     918    {
     919      uiCtxDepthMode = uiPuIdx*3 + ( uiBinNum >= 2? 2 : uiBinNum );
     920      m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     921      uiCode = (uiCode<<1)+uiSymbol;
     922      uiBinNum++;
     923    }
     924    if (uiCode == 0)      { uiDir = 0;                     bSDCFlag = 0;}
     925    else if (uiCode == 2) { uiDir = DMM_WEDGE_FULL_IDX;    bSDCFlag = 0;}
     926    else if (uiCode == 6) { uiDir = DMM_WEDGE_PREDTEX_IDX; bSDCFlag = 0;}
     927    else if (uiCode == 7) { uiDir = EDGE_INTRA_IDX;        bSDCFlag = 0;}
     928  }
     929  else
     930  {
     931    uiCtxDepthMode = uiPuIdx*3 ;
     932    m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     933    uiCode = (uiCode<<1)+uiSymbol;
     934    if (!uiSymbol)
     935    {
     936      uiCtxDepthMode = uiPuIdx*3 + 1;
     937      m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     938      uiCode = (uiCode<<1)+uiSymbol;
     939      if (uiSymbol)
     940      {
     941        uiCtxDepthMode = uiPuIdx*3 + 2;
     942        m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     943        uiCode = (uiCode<<1)+uiSymbol;
     944      }
     945    }
     946    else
     947    {
     948      uiCtxDepthMode = uiPuIdx*3 + 1;
     949      m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     950      uiCode = (uiCode<<1)+uiSymbol;
     951      if (!uiSymbol)
     952      {
     953        uiCtxDepthMode = uiPuIdx*3 + 2;
     954        m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     955        uiCode = (uiCode<<1)+uiSymbol;
     956      }
     957      else
     958      {
     959        uiBinNum = 0;
     960        while( uiSymbol && uiBinNum<3 )
     961        {
     962          uiCtxDepthMode = uiPuIdx*3 + 2;
     963          m_pcTDecBinIf->decodeBin(uiSymbol,m_cDepthModeModel.get(0,0,uiCtxDepthMode));
     964          uiCode = (uiCode<<1)+uiSymbol;
     965          uiBinNum++;
     966        }
     967      }
     968    }
     969    if (uiCode == 0)       { uiDir = PLANAR_IDX;              bSDCFlag = 1;}
     970    else if (uiCode == 2)  { uiDir = 5;                       bSDCFlag = 0;}
     971    else if (uiCode == 3)  { uiDir = DMM_WEDGE_FULL_IDX;      bSDCFlag = 1;}
     972    else if (uiCode == 4)  { uiDir = DMM_WEDGE_FULL_IDX;      bSDCFlag = 0;}
     973    else if (uiCode == 5)  { uiDir = DMM_CONTOUR_PREDTEX_IDX; bSDCFlag = 0;}
     974    else if (uiCode == 6)  { uiDir = DMM_WEDGE_PREDTEX_IDX;   bSDCFlag = 0;}
     975    else if (uiCode == 14) { uiDir = DC_IDX;                  bSDCFlag = 1;}
     976    else if (uiCode == 31) { uiDir = DMM_WEDGE_PREDDIR_IDX;   bSDCFlag = 0;}
     977    else if (uiCode == 30) { uiDir = EDGE_INTRA_IDX;          bSDCFlag = 0;}
     978  }
     979  pcCU->setLumaIntraDirSubParts( (UChar)uiDir, uiAbsPartIdx, uiDepth );
     980  pcCU->setSDCFlagSubParts(bSDCFlag, uiAbsPartIdx, 0, uiDepth);
     981}
     982Void TDecSbac::parseDepthModelingTable  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
     983{
     984  parseDepthIntraMode(pcCU,uiAbsPartIdx,uiDepth);
     985 
     986  UInt uiDir = pcCU->getLumaIntraDir(uiAbsPartIdx);
     987  Bool bSdcFlag =  pcCU->getSDCAvailable(uiAbsPartIdx) && pcCU->getSDCFlag(uiAbsPartIdx);
     988  Bool bDmmFlag = (uiDir >= NUM_INTRA_MODE && uiDir < EDGE_INTRA_IDX &&(!bSdcFlag))? 1:0;
     989  if (uiDir >= NUM_INTRA_MODE && uiDir < EDGE_INTRA_IDX)//DMM modes and SDC DMM1
     990  {
     991    if( uiDir == DMM_WEDGE_FULL_IDX )          { xParseWedgeFullInfo          ( pcCU, uiAbsPartIdx, uiDepth ); }
     992    else if( uiDir == DMM_WEDGE_PREDTEX_IDX )  { xParseWedgePredTexInfo       ( pcCU, uiAbsPartIdx, uiDepth ); }
     993    else if( uiDir == DMM_WEDGE_PREDDIR_IDX )  { xParseWedgePredDirInfo       ( pcCU, uiAbsPartIdx, uiDepth ); }
     994  }
     995  else if(uiDir >= EDGE_INTRA_IDX)//CCM mode
     996  {
     997    xParseEdgeIntraInfo( pcCU, uiAbsPartIdx, uiDepth );
     998  }
     999
     1000  UInt uiSymbol;
     1001  if (bDmmFlag)
     1002  {
     1003    if (bDmmFlag)
     1004    {
     1005      m_pcTDecBinIf->decodeBin( uiSymbol , m_cDmmDeltaFlagModel.get(0, 0, 0) );
     1006      uiDir += uiSymbol;
     1007    }
     1008    if (uiSymbol)
     1009    {
     1010      UInt uiDC;
     1011      Int iDC = 0,iDC1 = 0,iDC2 = 0;
     1012      for ( Int i = 0; i  <2; i++ )
     1013      {
     1014        xReadExGolombLevel( uiDC, m_cDmmDataSCModel.get(0, 0, 1) );
     1015        iDC = uiDC;
     1016        if ( uiDC )
     1017        {
     1018          UInt uiSign;
     1019          m_pcTDecBinIf->decodeBinEP( uiSign );
     1020          if ( uiSign )
     1021          {
     1022            iDC = -iDC;
     1023          }
     1024        }
     1025        if ( i == 0 ) { iDC1 = iDC; }
     1026        else          { iDC2 = iDC; }
     1027      }
     1028
     1029      if( uiDir == DMM_WEDGE_FULL_D_IDX )   
     1030      {
     1031        pcCU->setWedgeFullDeltaDC1SubParts( iDC1, uiAbsPartIdx, uiDepth );
     1032        pcCU->setWedgeFullDeltaDC2SubParts( iDC2, uiAbsPartIdx, uiDepth );
     1033      }
     1034      else if( uiDir == DMM_WEDGE_PREDDIR_D_IDX )
     1035      {
     1036        pcCU->setWedgePredDirDeltaDC1SubParts( iDC1, uiAbsPartIdx, uiDepth );
     1037        pcCU->setWedgePredDirDeltaDC2SubParts( iDC2, uiAbsPartIdx, uiDepth );
     1038      }
     1039      else if( uiDir == DMM_WEDGE_PREDTEX_D_IDX) 
     1040      {
     1041        pcCU->setWedgePredTexDeltaDC1SubParts( iDC1, uiAbsPartIdx, uiDepth );
     1042        pcCU->setWedgePredTexDeltaDC2SubParts( iDC2, uiAbsPartIdx, uiDepth );
     1043      }
     1044      else if (uiDir== DMM_CONTOUR_PREDTEX_D_IDX )
     1045      {
     1046        pcCU->setContourPredTexDeltaDC1SubParts( iDC1, uiAbsPartIdx, uiDepth );
     1047        pcCU->setContourPredTexDeltaDC2SubParts( iDC2, uiAbsPartIdx, uiDepth );
     1048      }
     1049    }
     1050  }
     1051  else if (uiDir >= EDGE_INTRA_IDX)
     1052  {
     1053    m_pcTDecBinIf->decodeBin( uiSymbol, m_cEdgeIntraDeltaDCSCModel.get(0, 0, 0) );
     1054    if( uiSymbol )
     1055    {
     1056      uiDir = EDGE_INTRA_DELTA_IDX;
     1057      Int iDeltaDC = 0,iDeltaDC0 = 0,iDeltaDC1 = 0;
     1058      for (Int i = 0; i<2; i++)
     1059      {
     1060        xReadExGolombLevel( (UInt &) iDeltaDC, m_cEdgeIntraDeltaDCSCModel.get(0, 0, 1) );
     1061        if( iDeltaDC != 0 )
     1062        {
     1063          UInt uiSign;
     1064          m_pcTDecBinIf->decodeBinEP( uiSign );
     1065          if ( uiSign )
     1066          {
     1067            iDeltaDC = -iDeltaDC;
     1068          }
     1069        }
     1070        if ( i == 0 ) { iDeltaDC0 = iDeltaDC; }
     1071        else          { iDeltaDC1 = iDeltaDC; }
     1072      }
     1073
     1074      pcCU->setEdgeDeltaDC0( uiAbsPartIdx, iDeltaDC0 );
     1075      pcCU->setEdgeDeltaDC1( uiAbsPartIdx, iDeltaDC1 );
     1076    }
     1077  }
     1078  else if(bSdcFlag)//SDC mode
     1079  {
     1080    assert(pcCU->getPartitionSize(uiAbsPartIdx)!=SIZE_NxN);
     1081    pcCU->setTrIdxSubParts(0, uiAbsPartIdx, uiDepth);
     1082    pcCU->setCbfSubParts(1, 1, 1, uiAbsPartIdx, uiDepth);
     1083
     1084    UInt uiNumSegments = ( uiDir == DC_IDX || uiDir == PLANAR_IDX )? 1 : 2;
     1085    for (int uiSeg=0; uiSeg<uiNumSegments; uiSeg++)
     1086    {
     1087      parseSDCResidualData(pcCU, uiAbsPartIdx, uiDepth, uiSeg);
     1088    }
     1089  }
     1090
     1091  pcCU->setLumaIntraDirSubParts( (UChar)uiDir, uiAbsPartIdx, uiDepth );
     1092}
     1093#endif
    8721094Void TDecSbac::parseIntraDirLumaAng  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    8731095{
    8741096  UInt uiSymbol;
    8751097  Int  intraPredMode;
    876 
     1098#if PKU_QC_DEPTH_INTRA_UNI_D0195
     1099  if (pcCU->getSlice()->getSPS()->isDepth())
     1100  {
     1101    parseDepthModelingTable(pcCU, uiAbsPartIdx, uiDepth);
     1102  }
     1103  if (pcCU->getLumaIntraDir(uiAbsPartIdx)<NUM_INTRA_MODE && !pcCU->getSDCFlag(uiAbsPartIdx))
     1104  {
     1105#else
    8771106#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
    8781107  UInt uiFlag = 0;
     
    9281157    }
    9291158#endif
    930 
     1159#endif
    9311160    Int uiPreds[3] = {-1, -1, -1};
    9321161    Int uiPredNum = pcCU->getIntraDirLumaPredictor(uiAbsPartIdx, uiPreds); 
     1162#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    9331163#if LGE_EDGE_INTRA_A0070
    9341164    UInt uiCheckBit = 0;
    9351165#endif
     1166#endif
    9361167
    9371168    m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUIntraPredSCModel.get( 0, 0, 0) );
     
    9531184
    9541185      m_pcTDecBinIf->decodeBinsEP( uiSymbol, 5 );
     1186#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    9551187#if LGE_EDGE_INTRA_A0070
    9561188      if (bCodeEdgeIntra)
     
    9641196      }
    9651197#endif
     1198#endif
    9661199      intraPredMode = uiSymbol;
    9671200
     
    9791212        std::swap(uiPreds[1], uiPreds[2]);
    9801213      }
     1214#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    9811215#if LGE_EDGE_INTRA_A0070
    9821216      if ( intraPredMode != EDGE_INTRA_IDX)
    9831217      {
     1218#endif
    9841219#endif
    9851220        for ( Int i = 0; i < uiPredNum; i++ )
     
    9871222          intraPredMode += ( intraPredMode >= uiPreds[i] );
    9881223        }
     1224#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    9891225#if LGE_EDGE_INTRA_A0070
    9901226      }
    9911227#endif
    992     }
    993 
     1228#endif
     1229    }
     1230
     1231#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    9941232#if LGE_EDGE_INTRA_A0070
    9951233    if( intraPredMode == EDGE_INTRA_IDX )
     
    10351273  }
    10361274#endif
    1037 
    10381275  pcCU->setLumaIntraDirSubParts( (UChar)intraPredMode, uiAbsPartIdx, uiDepth );
     1276#else
     1277    pcCU->setLumaIntraDirSubParts( (UChar)intraPredMode, uiAbsPartIdx, uiDepth );
     1278  }
     1279#endif
    10391280}
    10401281
     
    23352576 
    23362577#if RWTH_SDC_DLT_B0036
     2578#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    23372579Void TDecSbac::parseSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    23382580{
     
    23882630  pcCU->setLumaIntraDirSubParts((UChar)intraPredMode, uiAbsPartIdx, uiDepth);
    23892631}
     2632#endif
    23902633
    23912634Void TDecSbac::parseSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiSegment )
  • branches/HTM-6.2-dev3-Qualcomm/source/Lib/TLibDecoder/TDecSbac.h

    r332 r382  
    120120 
    121121#if RWTH_SDC_DLT_B0036
     122#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    122123  Void parseSDCFlag    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    123124  Void parseSDCPredMode    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     125#endif
    124126  Void parseSDCResidualData     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart );
    125127#endif
     
    178180  Void parsePartSize      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    179181  Void parsePredMode      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    180  
     182#if PKU_QC_DEPTH_INTRA_UNI_D0195
     183  Void parseDepthIntraMode  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     184  Void parseDepthModelingTable( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
     185#endif
    181186  Void parseIntraDirLumaAng( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    182187 
     
    253258
    254259#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
     260#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    255261  ContextModel3DBuffer m_cDmmFlagSCModel;
    256262  ContextModel3DBuffer m_cDmmModeSCModel;
     263#endif
    257264  ContextModel3DBuffer m_cDmmDataSCModel;
    258265#endif
     
    265272 
    266273#if RWTH_SDC_DLT_B0036
     274#if !PKU_QC_DEPTH_INTRA_UNI_D0195
    267275  ContextModel3DBuffer m_cSDCFlagSCModel;
     276#else
     277  ContextModel3DBuffer m_cDepthModeModel;
     278  ContextModel3DBuffer m_cDmmDeltaFlagModel;
     279#endif
    268280 
    269281  ContextModel3DBuffer m_cSDCResidualFlagSCModel;
Note: See TracChangeset for help on using the changeset viewer.