Ignore:
Timestamp:
26 Jan 2013, 19:36:53 (11 years ago)
Author:
mitsubishi-htm
Message:

-Integration of JCT3V-C0152 & JCT3V-C0131
-This check-in enable C0131 only

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibDecoder/TDecCu.cpp

    r189 r231  
    361361
    362362      UInt uiCurrPartNumb = pcCU->getPic()->getNumPartInCU() >> (uiDepth << 1);
     363
    363364      for( UInt ui = 0; ui < uiCurrPartNumb; ui++ )
    364365      {
    365366        const UChar uhNewDepth = max<UInt>( uiDepth, pcTextureCU->getDepth( uiAbsPartIdx + ui ) );
     367#if MERL_VSP_C0152
     368        Int vspIdx = pcTextureCU->getVSPIndex( uiAbsPartIdx + ui);
     369        pcCU->setVSPIndex( uiAbsPartIdx + ui, vspIdx);
     370#endif
    366371        pcCU->setPredictionMode( uiAbsPartIdx + ui, MODE_SKIP );
    367372        pcCU->setPartitionSize( uiAbsPartIdx + ui, SIZE_2Nx2N );
     
    376381#if SIMP_MRG_PRUN     
    377382    UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx);
     383#if MERL_VSP_C0152
     384    Int iVSPIndexTrue[3] = {-1, -1, -1};
     385    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, uiDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue, uiMergeIndex );
     386    {
     387      Int iVSPIdx = 0;
     388      Int numVspIdx;
     389      numVspIdx = 3;
     390      for (Int i = 0; i < numVspIdx; i++)
     391      {
     392        if (iVSPIndexTrue[i] == uiMergeIndex)
     393          {
     394            iVSPIdx = i+1;
     395            break;
     396          }
     397      }
     398      pcCU->setVSPIndexSubParts( iVSPIdx, uiAbsPartIdx, 0, uiDepth );  //Initialize the VSP, may change later in get InterMergeCandidates()
     399    }
     400#else
    378401    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, uiDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
     402#endif
    379403#else
    380404    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, uiDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     
    467491
    468492      UInt uiCurrPartNumb = pcCU->getPic()->getNumPartInCU() >> (uiDepth << 1);
     493
    469494      for( UInt ui = 0; ui < uiCurrPartNumb; ui++ )
    470495      {
    471496        const UChar uhNewDepth = max<UInt>( uiDepth, pcTextureCU->getDepth( uiAbsPartIdx + ui ) );
     497#if MERL_VSP_C0152
     498        Int vspIdx = pcTextureCU->getVSPIndex( uiAbsPartIdx + ui);
     499        pcCU->setVSPIndex( uiAbsPartIdx + ui, vspIdx);
     500#endif
    472501        pcCU->setPredictionMode( uiAbsPartIdx + ui, MODE_INTER );
    473502        pcCU->setPartitionSize( uiAbsPartIdx + ui, SIZE_2Nx2N );
     
    658687 
    659688  // inter prediction
     689#if MERL_VSP_C0152
     690  m_pcPrediction->motionCompensationBWVSP( pcCU, m_ppcYuvReco[uiDepth], uiAbsPartIdx );
     691#else
    660692  m_pcPrediction->motionCompensation( pcCU, m_ppcYuvReco[uiDepth] );
    661  
     693#endif
    662694#if HHI_MPI
    663695  if( pcCU->getTextureModeDepth( 0 ) != -1 )
     
    10471079  // reconstruct residual based on mask + DC residuals
    10481080  Pel apDCResiValues[2];
    1049   Pel apDCRecoValues[2];
     1081  //Pel apDCRecoValues[2];
    10501082  for( UInt ui = 0; ui < uiNumSegments; ui++ )
    10511083  {
     
    10541086    Pel   pRecoValue  = GetIdx2DepthValue( pPredIdx + pResiIdx );
    10551087   
    1056     apDCRecoValues[ui]  = pRecoValue;
     1088    //apDCRecoValues[ui]  = pRecoValue;
    10571089    apDCResiValues[ui]  = pRecoValue - apDCPredValues[ui];
    10581090  }
Note: See TracChangeset for help on using the changeset viewer.