Changeset 724 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncCu.cpp


Ignore:
Timestamp:
30 Nov 2013, 12:29:49 (10 years ago)
Author:
tech
Message:

Merged HTM-8.2-dev0@723.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/TEncCu.cpp

    r655 r724  
    497497#endif
    498498#if H_3D_IC
     499#if SEC_ONLY_TEXTURE_IC_F0151
     500  Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ) && !rpcTempCU->getSlice()->getIsDepth();
     501#else
    499502  Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE );
     503#endif
    500504  bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC();
    501505#endif
     
    567571          PartSize ePartTemp = rpcTempCU->getPartitionSize(0);
    568572          rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );     
     573#if QC_DEPTH_IV_MRG_F0125
     574          if (rpcTempCU->getSlice()->getIsDepth() )
     575          {
     576            DvInfo.bDV = rpcTempCU->getDispNeighBlocks(0, 0, &DvInfo);
     577          }
     578          else
     579          {
     580#endif
    569581#if H_3D_NBDV_REF
    570582          if(rpcTempCU->getSlice()->getVPS()->getDepthRefinementFlag( rpcTempCU->getSlice()->getLayerIdInVps()))
     
    574586            DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo);
    575587
     588#if QC_DEPTH_IV_MRG_F0125
     589          }
     590#endif
    576591          rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
    577592          rpcBestCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
     
    17641779#endif
    17651780
     1781#if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104
     1782  DisInfo cOrigDisInfo = rpcTempCU->getDvInfo(0);
     1783#else
    17661784  rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
    17671785  rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );
     1786#endif
    17681787
    17691788#if H_3D_VSP
     1789#if !(H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104)
    17701790  Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    17711791  memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    17721792  InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    1773   rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo, numValidMergeCand );
     1793#if ETRIKHU_MERGE_REUSE_F0093
     1794  rpcTempCU->m_bAvailableFlagA1 = 0;
     1795  rpcTempCU->m_bAvailableFlagB1 = 0;
     1796  rpcTempCU->m_bAvailableFlagB0 = 0;
     1797  rpcTempCU->m_bAvailableFlagA0 = 0;
     1798  rpcTempCU->m_bAvailableFlagB2 = 0;
     1799  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     1800  rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo, numValidMergeCand );
     1801#else
     1802  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );
     1803#endif
     1804#endif
     1805#else
     1806#if ETRIKHU_MERGE_REUSE_F0093
     1807  rpcTempCU->m_bAvailableFlagA1 = 0;
     1808  rpcTempCU->m_bAvailableFlagB1 = 0;
     1809  rpcTempCU->m_bAvailableFlagB0 = 0;
     1810  rpcTempCU->m_bAvailableFlagA0 = 0;
     1811  rpcTempCU->m_bAvailableFlagB2 = 0;
     1812  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     1813  rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );
    17741814#else
    17751815  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );
     1816#endif
    17761817#endif
    17771818
     
    17811822  Int mergeCandBuffer[MRG_MAX_NUM_CANDS];
    17821823#endif
     1824#if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104
     1825for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui )
     1826#else
    17831827for( UInt ui = 0; ui < numValidMergeCand; ++ui )
     1828#endif
    17841829  {
    17851830    mergeCandBuffer[ui] = 0;
     
    18061851  for( Int nARPW=nARPWMax; nARPW >= 0 ; nARPW-- )
    18071852  {
     1853#if FIX_MISSING_MACRO_R690
     1854    memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) );
     1855#else
    18081856    memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS*sizeof(Int) );
     1857#endif
     1858#if LGE_SHARP_VSP_INHERIT_F0104
     1859    rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
     1860    rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );
     1861    rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
     1862#if H_3D_IC
     1863    rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth );
     1864#endif
     1865    rpcTempCU->getDvInfo(0) = cOrigDisInfo;
     1866    rpcTempCU->setDvInfoSubParts(cOrigDisInfo, 0, 0, uhDepth );
     1867    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
     1868    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     1869    InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
     1870#if MTK_SPIVMP_F0110
     1871    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     1872    memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     1873    TComMvField*  pcMvFieldSP;
     1874    UChar* puhInterDirSP;
     1875    pcMvFieldSP = new TComMvField[rpcTempCU->getPic()->getPicSym()->getNumPartition()*2];
     1876    puhInterDirSP = new UChar[rpcTempCU->getPic()->getPicSym()->getNumPartition()];
     1877#endif
     1878#if ETRIKHU_MERGE_REUSE_F0093
     1879    rpcTempCU->initAvailableFlags();
     1880    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     1881    rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo
     1882#if MTK_SPIVMP_F0110
     1883      , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP
     1884#endif
     1885      , numValidMergeCand
     1886      );
     1887#else
     1888    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );
     1889#endif
     1890#endif
    18091891#endif
    18101892  for( UInt uiNoResidual = 0; uiNoResidual < iteration; ++uiNoResidual )
     
    18411923          rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth );
    18421924#endif
    1843           rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level
    1844           rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    1845           rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    1846 
    1847 #if H_3D_ARP
     1925#if MTK_SPIVMP_F0110
     1926          rpcTempCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeCand], 0, 0, uhDepth);
     1927          if (bSPIVMPFlag[uiMergeCand])
     1928          {
     1929            UInt uiSPAddr;
     1930            Int iWidth = rpcTempCU->getWidth(0);
     1931            Int iHeight = rpcTempCU->getHeight(0);
     1932
     1933            Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight;
     1934
     1935            rpcTempCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight);
     1936
     1937            for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++)
     1938            {
     1939              rpcTempCU->getSPAbsPartIdx(0, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr);
     1940              rpcTempCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight);
     1941              rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(rpcTempCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight);
     1942              rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(rpcTempCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight);
     1943            }
     1944          }
     1945          else
     1946          {
     1947#endif
     1948            rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level
     1949            rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
     1950            rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
     1951#if MTK_SPIVMP_F0110
     1952          }
     1953#endif
     1954#if H_3D_ARP && !QC_MTK_INTERVIEW_ARP_F0123_F0108
    18481955          if( nARPW )
    18491956          {
     
    18601967            if( !bSignalflag[0] && !bSignalflag[1] )
    18611968            {
     1969#if LGE_SHARP_VSP_INHERIT_F0104
     1970              continue;
     1971#else
    18621972              rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth );
     1973#endif
    18631974            }
    18641975          }
     
    19822093  }
    19832094 }
     2095#if MTK_SPIVMP_F0110
     2096 delete pcMvFieldSP;
     2097 delete puhInterDirSP;
     2098#endif
    19842099#if H_3D_ARP
    19852100 }
     
    20512166    m_pcPredSearch->motionCompensation( rpcTempCU , m_ppcPredYuvTemp[uhDepth] );
    20522167
     2168#if !QC_MTK_INTERVIEW_ARP_F0123_F0108
    20532169    if(rpcTempCU->getPartitionSize(0)==SIZE_2Nx2N)
    20542170    {
     
    20682184      }
    20692185    }
     2186#endif
    20702187  }
    20712188  else
     
    20882205     m_ppcWeightedTempCU[uhDepth]->copyPartFrom( rpcTempCU , 0 , uhDepth );
    20892206
     2207#if !QC_MTK_INTERVIEW_ARP_F0123_F0108
    20902208     Bool bSignalflag[2] = { true, true };
    20912209     for(UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx ++ )
     
    21022220       rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth );
    21032221     }
     2222#endif
    21042223   }
    21052224  }
Note: See TracChangeset for help on using the changeset viewer.