Changeset 724 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncCu.cpp
- Timestamp:
- 30 Nov 2013, 12:29:49 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibEncoder/TEncCu.cpp
r655 r724 497 497 #endif 498 498 #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 499 502 Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ); 503 #endif 500 504 bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC(); 501 505 #endif … … 567 571 PartSize ePartTemp = rpcTempCU->getPartitionSize(0); 568 572 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 569 581 #if H_3D_NBDV_REF 570 582 if(rpcTempCU->getSlice()->getVPS()->getDepthRefinementFlag( rpcTempCU->getSlice()->getLayerIdInVps())) … … 574 586 DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo); 575 587 588 #if QC_DEPTH_IV_MRG_F0125 589 } 590 #endif 576 591 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 577 592 rpcBestCU->setDvInfoSubParts(DvInfo, 0, uiDepth); … … 1764 1779 #endif 1765 1780 1781 #if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104 1782 DisInfo cOrigDisInfo = rpcTempCU->getDvInfo(0); 1783 #else 1766 1784 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1767 1785 rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth ); 1786 #endif 1768 1787 1769 1788 #if H_3D_VSP 1789 #if !(H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104) 1770 1790 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 1771 1791 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 1772 1792 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 ); 1774 1814 #else 1775 1815 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1816 #endif 1776 1817 #endif 1777 1818 … … 1781 1822 Int mergeCandBuffer[MRG_MAX_NUM_CANDS]; 1782 1823 #endif 1824 #if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104 1825 for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui ) 1826 #else 1783 1827 for( UInt ui = 0; ui < numValidMergeCand; ++ui ) 1828 #endif 1784 1829 { 1785 1830 mergeCandBuffer[ui] = 0; … … 1806 1851 for( Int nARPW=nARPWMax; nARPW >= 0 ; nARPW-- ) 1807 1852 { 1853 #if FIX_MISSING_MACRO_R690 1854 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) ); 1855 #else 1808 1856 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 1809 1891 #endif 1810 1892 for( UInt uiNoResidual = 0; uiNoResidual < iteration; ++uiNoResidual ) … … 1841 1923 rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth ); 1842 1924 #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 1848 1955 if( nARPW ) 1849 1956 { … … 1860 1967 if( !bSignalflag[0] && !bSignalflag[1] ) 1861 1968 { 1969 #if LGE_SHARP_VSP_INHERIT_F0104 1970 continue; 1971 #else 1862 1972 rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth ); 1973 #endif 1863 1974 } 1864 1975 } … … 1982 2093 } 1983 2094 } 2095 #if MTK_SPIVMP_F0110 2096 delete pcMvFieldSP; 2097 delete puhInterDirSP; 2098 #endif 1984 2099 #if H_3D_ARP 1985 2100 } … … 2051 2166 m_pcPredSearch->motionCompensation( rpcTempCU , m_ppcPredYuvTemp[uhDepth] ); 2052 2167 2168 #if !QC_MTK_INTERVIEW_ARP_F0123_F0108 2053 2169 if(rpcTempCU->getPartitionSize(0)==SIZE_2Nx2N) 2054 2170 { … … 2068 2184 } 2069 2185 } 2186 #endif 2070 2187 } 2071 2188 else … … 2088 2205 m_ppcWeightedTempCU[uhDepth]->copyPartFrom( rpcTempCU , 0 , uhDepth ); 2089 2206 2207 #if !QC_MTK_INTERVIEW_ARP_F0123_F0108 2090 2208 Bool bSignalflag[2] = { true, true }; 2091 2209 for(UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx ++ ) … … 2102 2220 rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth ); 2103 2221 } 2222 #endif 2104 2223 } 2105 2224 }
Note: See TracChangeset for help on using the changeset viewer.