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/TLibEncoder/TEncCu.cpp

    r189 r231  
    18901890
    18911891  rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
    1892   rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );
    1893 
     1892#if MERL_VSP_C0152
     1893  Int iVSPIndexTrue[3] = {-1, -1, -1};
     1894  rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue );
     1895#else
     1896  rpcTempCU->getInterMergeCandidates( 0, 0, uhDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     1897#endif
    18941898#if FAST_DECISION_FOR_MRG_RD_COST
    18951899  Bool bestIsSkip = false;
     
    19331937          rpcTempCU->setMergeFlagSubParts( true, 0, 0, uhDepth ); // interprets depth relative to LCU level
    19341938          rpcTempCU->setMergeIndexSubParts( uiMergeCand, 0, 0, uhDepth ); // interprets depth relative to LCU level
     1939#if MERL_VSP_C0152
     1940          {
     1941            Int iVSPIdx = 0;
     1942            Int numVSPIdx;
     1943            numVSPIdx = 3;
     1944            for (Int i = 0; i < numVSPIdx; i++)
     1945            {
     1946              if (iVSPIndexTrue[i] == uiMergeCand)
     1947                {
     1948                  iVSPIdx = i+1;
     1949                  break;
     1950                }
     1951            }
     1952            rpcTempCU->setVSPIndexSubParts( iVSPIdx, 0, 0, uhDepth );
     1953          }
     1954#endif
    19351955          rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level
    19361956          rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
     
    19521972#endif
    19531973        {
     1974#if MERL_VSP_C0152
     1975            m_pcPredSearch->motionCompensationBWVSP ( rpcTempCU, m_ppcPredYuvTemp[uhDepth],  rpcTempCU->getZorderIdxInCU() );
     1976#else
    19541977            m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
     1978#endif
    19551979            // save pred adress
    19561980            pcPredYuvTemp = m_ppcPredYuvTemp[uhDepth];
     
    19621986            if( bestIsSkip)
    19631987            {
     1988#if MERL_VSP_C0152
     1989              m_pcPredSearch->motionCompensationBWVSP ( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU() );
     1990#else
    19641991              m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
     1992#endif
    19651993              // save pred adress
    19661994              pcPredYuvTemp = m_ppcPredYuvTemp[uhDepth];
     
    20652093 
    20662094  rpcTempCU->setPartSizeSubParts  ( ePartSize,  0, uhDepth );
     2095
    20672096#if HHI_INTER_VIEW_RESIDUAL_PRED
    20682097  rpcTempCU->setResPredAvailSubParts( bResPrdAvail, 0, 0, uhDepth );
     
    20842113  #if HHI_INTERVIEW_SKIP
    20852114#if LG_RESTRICTEDRESPRED_M24766
    2086   m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcResPredTmp[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG  );
     2115  m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcResPredTmp[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG);
    20872116#else
    20882117  m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bSkipRes, bUseMRG  );
     
    27872816      assert( rpcTempCU->getInterDir( ui ) != 0 );
    27882817      assert( rpcTempCU->getPredictionMode( ui ) != MODE_NONE );
    2789     }
     2818#if MERL_VSP_C0152
     2819      Int vspIdx = pcTextureCU->getVSPIndex( rpcTempCU->getZorderIdxInCU() + ui);
     2820      rpcTempCU->setVSPIndex( ui , vspIdx);
     2821#endif
     2822    }
     2823
    27902824    rpcTempCU->setPredModeSubParts( bSkipResidual ? MODE_SKIP : MODE_INTER, 0, uhDepth );
     2825#if MERL_VSP_C0152
     2826    m_pcPredSearch->motionCompensationBWVSP( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU()  );
     2827#else
    27912828    m_pcPredSearch->motionCompensation( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
    2792 
     2829#endif
    27932830    // get Original YUV data from picture
    27942831    m_ppcOrigYuv[uhDepth]->copyFromPicYuv( rpcBestCU->getPic()->getPicYuvOrg(), rpcBestCU->getAddr(), rpcBestCU->getZorderIdxInCU() );
Note: See TracChangeset for help on using the changeset viewer.