Ignore:
Timestamp:
16 Mar 2015, 12:40:05 (9 years ago)
Author:
tech
Message:

Merged branch 13.1-dev1-Samsung2@1162

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-13.1-dev0/source/Lib/TLibDecoder/TDecCu.cpp

    r1133 r1163  
    299299#if H_3D_NBDV
    300300  DisInfo DvInfo;
     301#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    301302  DvInfo.bDV = false;
     303#endif
    302304  DvInfo.m_acNBDV.setZero();
    303305  DvInfo.m_aVIdxCan = 0;
     
    334336      if( pcCU->getSlice()->getIsDepth())
    335337      {
     338#if SEC_ARP_REM_ENC_RESTRICT_K0035
     339        m_ppcCU[uiDepth]->getDispforDepth(0, 0, &DvInfo);
     340#else
    336341        DvInfo.bDV = m_ppcCU[uiDepth]->getDispforDepth(0, 0, &DvInfo);
     342#endif
    337343      }
    338344      else
     
    342348      if( pcCU->getSlice()->getDepthBasedBlkPartFlag() )  //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done.
    343349      {
     350#if SEC_ARP_REM_ENC_RESTRICT_K0035
     351        m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true);
     352#else
    344353        DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true);
     354#endif
    345355      }
    346356      else
    347357#endif
    348358      {
     359#if SEC_ARP_REM_ENC_RESTRICT_K0035
     360        m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);
     361#else
    349362        DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);
     363#endif
    350364      }
    351365#if H_3D_IV_MERGE
     
    520534    return;
    521535  }
     536#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     537  m_pcEntropyDecoder->decodeDIS( pcCU, uiAbsPartIdx, uiDepth );
     538  if(!pcCU->getDISFlag(uiAbsPartIdx))
     539  {
     540#else
    522541#if H_3D_SINGLE_DEPTH
    523542  m_pcEntropyDecoder->decodeSingleDepthMode( pcCU, uiAbsPartIdx, uiDepth );
    524543  if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
    525544  {
     545#endif
    526546#endif
    527547  m_pcEntropyDecoder->decodePredMode( pcCU, uiAbsPartIdx, uiDepth );
     
    554574  m_pcEntropyDecoder->decodeCoeff( pcCU, uiAbsPartIdx, uiDepth, uiCurrWidth, uiCurrHeight, bCodeDQP );
    555575  setdQPFlag( bCodeDQP );
     576#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     577  }
     578#else
    556579#if H_3D_SINGLE_DEPTH
    557580  }
     581#endif
    558582#endif
    559583  xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
     
    656680      break;
    657681    case MODE_INTRA:
     682#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     683      if( m_ppcCU[uiDepth]->getDISFlag(0) )
     684      {
     685        xReconDIS( m_ppcCU[uiDepth], 0, uiDepth );
     686      }
     687#if H_3D_DIM_SDC
     688      else if( m_ppcCU[uiDepth]->getSDCFlag(0) )
     689      {
     690        xReconIntraSDC( m_ppcCU[uiDepth], 0, uiDepth );
     691      }
     692#endif
     693      else
     694#else
    658695#if H_3D_SINGLE_DEPTH
    659696      if( m_ppcCU[uiDepth]->getSingleDepthFlag(0) )
     
    671708#endif
    672709#endif
     710#endif
    673711      xReconIntraQT( m_ppcCU[uiDepth], uiDepth );
    674712      break;
     
    704742  }
    705743}
     744
     745#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     746Void TDecCu::xReconDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
     747{
     748  UInt uiWidth        = pcCU->getWidth  ( 0 );
     749  UInt uiHeight       = pcCU->getHeight ( 0 );
     750
     751  TComYuv* pcRecoYuv  = m_ppcYuvReco[uiDepth];
     752
     753  UInt    uiStride    = pcRecoYuv->getStride  ();
     754  Pel*    piReco      = pcRecoYuv->getLumaAddr( uiAbsPartIdx );
     755
     756
     757  AOF( uiWidth == uiHeight );
     758  AOF( uiAbsPartIdx == 0 );
     759
     760  Bool  bAboveAvail = false;
     761  Bool  bLeftAvail  = false;
     762  pcCU->getPattern()->initPattern   ( pcCU, 0, uiAbsPartIdx );
     763  pcCU->getPattern()->initAdiPattern( pcCU, uiAbsPartIdx, 0,
     764    m_pcPrediction->getPredicBuf       (),
     765    m_pcPrediction->getPredicBufWidth  (),
     766    m_pcPrediction->getPredicBufHeight (),
     767    bAboveAvail, bLeftAvail
     768    );
     769
     770  if ( pcCU->getDISType(uiAbsPartIdx) == 0 )
     771  {
     772    m_pcPrediction->predIntraLumaAng( pcCU->getPattern(), VER_IDX, piReco, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
     773  }
     774  else if ( pcCU->getDISType(uiAbsPartIdx) == 1 )
     775  {
     776    m_pcPrediction->predIntraLumaAng( pcCU->getPattern(), HOR_IDX, piReco, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
     777  }
     778  else if ( pcCU->getDISType(uiAbsPartIdx) == 2 )
     779  {
     780    Pel pSingleDepth = 1 << ( g_bitDepthY - 1 );
     781    pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 0 );
     782    for( UInt uiY = 0; uiY < uiHeight; uiY++ )
     783    {
     784      for( UInt uiX = 0; uiX < uiWidth; uiX++ )
     785      {
     786        piReco[ uiX ] = pSingleDepth;
     787      }
     788      piReco+= uiStride;
     789    }
     790  }
     791  else if ( pcCU->getDISType(uiAbsPartIdx) == 3 )
     792  {
     793    Pel pSingleDepth = 1 << ( g_bitDepthY - 1 );
     794    pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 1 );
     795    for( UInt uiY = 0; uiY < uiHeight; uiY++ )
     796    {
     797      for( UInt uiX = 0; uiX < uiWidth; uiX++ )
     798      {
     799        piReco[ uiX ] = pSingleDepth;
     800      }
     801      piReco+= uiStride;
     802    }
     803  }
     804
     805  // clear UV
     806  UInt  uiStrideC     = pcRecoYuv->getCStride();
     807  Pel   *pRecCb       = pcRecoYuv->getCbAddr();
     808  Pel   *pRecCr       = pcRecoYuv->getCrAddr();
     809
     810  for (Int y=0; y<uiHeight/2; y++)
     811  {
     812    for (Int x=0; x<uiWidth/2; x++)
     813    {
     814      pRecCb[x] = 1<<(g_bitDepthC-1);
     815      pRecCr[x] = 1<<(g_bitDepthC-1);
     816    }
     817
     818    pRecCb += uiStrideC;
     819    pRecCr += uiStrideC;
     820  }
     821}
     822#else
    706823#if H_3D_SINGLE_DEPTH
    707824Void TDecCu::xReconIntraSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
     
    772889}
    773890#endif
     891#endif
     892
    774893#if H_3D_INTER_SDC
    775894Void TDecCu::xReconInterSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
Note: See TracChangeset for help on using the changeset viewer.