Changeset 1270 in 3DVCSoftware for branches/HTM-14.1-update-dev3/source/Lib/TLibEncoder/TEncCu.cpp
- Timestamp:
- 13 Jul 2015, 15:22:02 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev3/source/Lib/TLibEncoder/TEncCu.cpp
r1259 r1270 68 68 m_ppcTempCU = new TComDataCU*[m_uhTotalDepth-1]; 69 69 70 #if H_3D_ARP70 #if NH_3D_ARP 71 71 m_ppcWeightedTempCU = new TComDataCU*[m_uhTotalDepth-1]; 72 72 #endif … … 79 79 m_ppcRecoYuvTemp = new TComYuv*[m_uhTotalDepth-1]; 80 80 m_ppcOrigYuv = new TComYuv*[m_uhTotalDepth-1]; 81 #if H_3D_DBBP81 #if NH_3D_DBBP 82 82 m_ppcOrigYuvDBBP = new TComYuv*[m_uhTotalDepth-1]; 83 83 #endif … … 92 92 m_ppcBestCU[i] = new TComDataCU; m_ppcBestCU[i]->create( chromaFormat, uiNumPartitions, uiWidth, uiHeight, false, uiMaxWidth >> (m_uhTotalDepth - 1) ); 93 93 m_ppcTempCU[i] = new TComDataCU; m_ppcTempCU[i]->create( chromaFormat, uiNumPartitions, uiWidth, uiHeight, false, uiMaxWidth >> (m_uhTotalDepth - 1) ); 94 #if H_3D_ARP95 m_ppcWeightedTempCU[i] = new TComDataCU; m_ppcWeightedTempCU[i]->create( uiNumPartitions, uiWidth, uiHeight, false, uiMaxWidth >> (m_uhTotalDepth - 1) );94 #if NH_3D_ARP 95 m_ppcWeightedTempCU[i] = new TComDataCU; m_ppcWeightedTempCU[i]->create( chromaFormat, uiNumPartitions, uiWidth, uiHeight, false, uiMaxWidth >> (m_uhTotalDepth - 1) ); 96 96 #endif 97 97 … … 105 105 106 106 m_ppcOrigYuv [i] = new TComYuv; m_ppcOrigYuv [i]->create(uiWidth, uiHeight, chromaFormat); 107 #if H_3D_DBBP108 m_ppcOrigYuvDBBP[i] = new TComYuv; m_ppcOrigYuvDBBP[i]->create(uiWidth, uiHeight );107 #if NH_3D_DBBP 108 m_ppcOrigYuvDBBP[i] = new TComYuv; m_ppcOrigYuvDBBP[i]->create(uiWidth, uiHeight, chromaFormat); 109 109 #endif 110 110 … … 146 146 m_ppcTempCU[i]->destroy(); delete m_ppcTempCU[i]; m_ppcTempCU[i] = NULL; 147 147 } 148 #if H_3D_ARP148 #if NH_3D_ARP 149 149 if(m_ppcWeightedTempCU[i]) 150 150 { … … 180 180 m_ppcOrigYuv[i]->destroy(); delete m_ppcOrigYuv[i]; m_ppcOrigYuv[i] = NULL; 181 181 } 182 #if H_3D_DBBP182 #if NH_3D_DBBP 183 183 if(m_ppcOrigYuvDBBP[i]) 184 184 { … … 198 198 } 199 199 200 #if H_3D_ARP200 #if NH_3D_ARP 201 201 if(m_ppcWeightedTempCU) 202 202 { … … 240 240 m_ppcOrigYuv = NULL; 241 241 } 242 #if H_3D_DBBP242 #if NH_3D_DBBP 243 243 if(m_ppcOrigYuvDBBP) 244 244 { … … 279 279 m_ppcBestCU[0]->initCtu( pCtu->getPic(), pCtu->getCtuRsAddr() ); 280 280 m_ppcTempCU[0]->initCtu( pCtu->getPic(), pCtu->getCtuRsAddr() ); 281 282 #if NH_3D_ARP 283 m_ppcWeightedTempCU[0]->initCtu( pCtu->getPic(), pCtu->getCtuRsAddr() ); 284 #endif 281 285 282 286 #if KWU_RC_MADPRED_E0227 … … 599 603 if( rpcTempCU->getSlice()->getViewSynthesisPredFlag() ) 600 604 #else 601 #if H_3D_ARP602 if( rpcTempCU->getSlice()->get VPS()->getUseAdvRP(rpcTempCU->getSlice()->getLayerId()) )605 #if NH_3D_ARP 606 if( rpcTempCU->getSlice()->getIvResPredFlag() ) 603 607 #else 604 608 #if H_3D_IV_MERGE 605 609 if( rpcTempCU->getSlice()->getVPS()->getIvMvPredFlag(rpcTempCU->getSlice()->getLayerId()) ) 606 610 #else 611 #if NH_3D_DBBP 612 if( rpcTempCU->getSlice()->getDepthBasedBlkPartFlag() ) 613 #else 607 614 if (0) 615 #endif 608 616 #endif 609 617 #endif … … 671 679 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );//by Competition for inter_2Nx2N 672 680 #endif 673 #if NH_3D_VSP 681 #if NH_3D_VSP || NH_3D_DBBP 674 682 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 675 683 #endif … … 685 693 686 694 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 687 #if NH_3D_VSP 695 #if NH_3D_VSP || NH_3D_DBBP 688 696 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 689 697 #endif … … 702 710 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 703 711 #endif 704 #if NH_3D_VSP 712 #if NH_3D_VSP || NH_3D_DBBP 705 713 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 706 714 #endif 707 #if H_3D_DBBP715 #if NH_3D_DBBP 708 716 if( rpcTempCU->getSlice()->getDepthBasedBlkPartFlag() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 709 717 { 710 718 xCheckRDCostInterDBBP( rpcBestCU, rpcTempCU, false ); 711 719 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 712 #if NH_3D_VSP 720 #if NH_3D_VSP || NH_3D_DBBP 713 721 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 714 722 #endif … … 792 800 #endif 793 801 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 794 #if NH_3D_VSP 802 #if NH_3D_VSP || NH_3D_DBBP 795 803 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 796 804 #endif … … 811 819 #endif 812 820 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 813 #if NH_3D_VSP 821 #if NH_3D_VSP || NH_3D_DBBP 814 822 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 815 823 #endif … … 834 842 835 843 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 836 #if NH_3D_VSP 844 #if NH_3D_VSP || NH_3D_DBBP 837 845 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 838 846 #endif … … 873 881 #endif 874 882 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 875 #if NH_3D_VSP 883 #if NH_3D_VSP || NH_3D_DBBP 876 884 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 877 885 #endif … … 894 902 895 903 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 896 #if NH_3D_VSP 904 #if NH_3D_VSP || NH_3D_DBBP 897 905 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 898 906 #endif … … 921 929 922 930 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 923 #if NH_3D_VSP 931 #if NH_3D_VSP || NH_3D_DBBP 924 932 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 925 933 #endif … … 941 949 #endif 942 950 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 943 #if NH_3D_VSP 951 #if NH_3D_VSP || NH_3D_DBBP 944 952 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 945 953 #endif … … 969 977 970 978 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 971 #if NH_3D_VSP 979 #if NH_3D_VSP || NH_3D_DBBP 972 980 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 973 981 #endif … … 989 997 #endif 990 998 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 991 #if NH_3D_VSP 999 #if NH_3D_VSP || NH_3D_DBBP 992 1000 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 993 1001 #endif … … 1009 1017 #endif 1010 1018 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1011 #if NH_3D_VSP 1019 #if NH_3D_VSP || NH_3D_DBBP 1012 1020 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1013 1021 #endif … … 1030 1038 #endif 1031 1039 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1032 #if NH_3D_VSP 1040 #if NH_3D_VSP || NH_3D_DBBP 1033 1041 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1034 1042 #endif … … 1046 1054 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU ); 1047 1055 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1048 #if NH_3D_VSP 1056 #if NH_3D_VSP || NH_3D_DBBP 1049 1057 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1050 1058 #endif 1051 1059 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD ); 1052 1060 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1053 #if NH_3D_VSP 1061 #if NH_3D_VSP || NH_3D_DBBP 1054 1062 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1055 1063 #endif … … 1061 1069 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N ); 1062 1070 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1063 #if NH_3D_VSP 1071 #if NH_3D_VSP || NH_3D_DBBP 1064 1072 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1065 1073 #endif 1066 1074 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N ); 1067 1075 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1068 #if NH_3D_VSP 1076 #if NH_3D_VSP || NH_3D_DBBP 1069 1077 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1070 1078 #endif … … 1281 1289 DEBUG_STRING_NEW(sTempDebug) 1282 1290 1291 #if NH_3D_ARP 1292 m_ppcWeightedTempCU[uhNextDepth]->setSlice( m_ppcWeightedTempCU[ uiDepth]->getSlice()); 1293 m_ppcWeightedTempCU[uhNextDepth]->setPic ( m_ppcWeightedTempCU[ uiDepth] ); 1294 #endif 1283 1295 for ( UInt uiPartUnitIdx = 0; uiPartUnitIdx < 4; uiPartUnitIdx++ ) 1284 1296 { … … 1586 1598 1587 1599 m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx ); 1588 #if H_3D_ARP1600 #if NH_3D_ARP 1589 1601 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); 1590 1602 #endif … … 1623 1635 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1624 1636 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1625 #if H_3D1637 #if NH_3D_DBBP 1626 1638 m_pcEntropyCoder->encodeDBBPFlag( pcCU, uiAbsPartIdx ); 1627 1639 #endif … … 1629 1641 m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx, false ); 1630 1642 #endif 1631 #if H_3D_ARP1643 #if NH_3D_ARP 1632 1644 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); 1633 1645 #endif … … 1803 1815 #endif 1804 1816 1805 #if H_3D_ARP1817 #if NH_3D_ARP 1806 1818 DisInfo cOrigDisInfo = rpcTempCU->getDvInfo(0); 1807 1819 #else … … 1842 1854 ); 1843 1855 #endif 1856 1844 1857 #endif 1845 1858 #else … … 1871 1884 Int mergeCandBuffer[MRG_MAX_NUM_CANDS]; 1872 1885 #endif 1873 #if H_3D_ARP1874 for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui )1875 #else1876 1886 #if NH_3D_MLC 1877 1887 for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui ) … … 1879 1889 for( UInt ui = 0; ui < numValidMergeCand; ++ui ) 1880 1890 #endif 1881 #endif1882 1891 { 1883 1892 mergeCandBuffer[ui] = 0; … … 1897 1906 DEBUG_STRING_NEW(bestStr) 1898 1907 1899 #if H_3D_ARP1908 #if NH_3D_ARP 1900 1909 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 1910 #if H_3D_IC 1901 1911 if( nARPWMax < 0 || bICFlag ) 1912 #else 1913 if( nARPWMax < 0 ) 1914 #endif 1902 1915 { 1903 1916 nARPWMax = 0; … … 1905 1918 for( Int nARPW=nARPWMax; nARPW >= 0 ; nARPW-- ) 1906 1919 { 1920 #if NH_3D_IV_MERGE 1907 1921 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) ); 1922 #else 1923 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS * sizeof(Int) ); 1924 #endif 1908 1925 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1909 1926 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth ); … … 1912 1929 #endif 1913 1930 rpcTempCU->getDvInfo(0) = cOrigDisInfo; 1914 rpcTempCU->setDvInfoSubParts(cOrigDisInfo, 0, 0,uhDepth );1931 rpcTempCU->setDvInfoSubParts(cOrigDisInfo, 0, uhDepth ); 1915 1932 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 1916 1933 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 1944 1961 1945 1962 #else 1946 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,numValidMergeCand );1963 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1947 1964 #endif 1948 1965 … … 1974 1991 rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth ); 1975 1992 #endif 1976 #if H_3D_ARP1977 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );1978 #endif1979 1993 rpcTempCU->setCUTransquantBypassSubParts( bTransquantBypassFlag, 0, uhDepth ); 1980 1994 rpcTempCU->setChromaQpAdjSubParts( bTransquantBypassFlag ? 0 : m_cuChromaQpOffsetIdxPlus1, 0, uhDepth ); … … 1982 1996 rpcTempCU->setMergeFlagSubParts( true, 0, 0, uhDepth ); // interprets depth relative to CTU level 1983 1997 rpcTempCU->setMergeIndexSubParts( uiMergeCand, 0, 0, uhDepth ); // interprets depth relative to CTU level 1998 #if NH_3D_ARP 1999 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth ); 2000 #endif 2001 1984 2002 #if NH_3D_VSP 1985 2003 rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth ); … … 2212 2230 delete[] puhInterDirSP; 2213 2231 #endif 2214 #if H_3D_ARP2232 #if NH_3D_ARP 2215 2233 } 2216 2234 #endif 2217 2218 2235 } 2219 2236 … … 2232 2249 2233 2250 // prior to this, rpcTempCU will have just been reset using rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 2234 #if H_3D 2251 #if H_3D || NH_3D_ARP 2235 2252 const Bool bTransquantBypassFlag = rpcTempCU->getCUTransquantBypass(0); 2236 2253 #endif … … 2240 2257 #endif 2241 2258 UChar uhDepth = rpcTempCU->getDepth( 0 ); 2242 #if H_3D_ARP2259 #if NH_3D_ARP 2243 2260 Bool bFirstTime = true; 2244 2261 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 2262 #if H_3D_IC 2245 2263 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || rpcTempCU->getICFlag(0) ) 2264 #else 2265 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N ) 2266 #endif 2246 2267 { 2247 2268 nARPWMax = 0; … … 2271 2292 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 2272 2293 rpcTempCU->setChromaQpAdjSubParts( rpcTempCU->getCUTransquantBypass(0) ? 0 : m_cuChromaQpOffsetIdxPlus1, 0, uhDepth ); 2273 #if H_3D_ARP2294 #if NH_3D_ARP 2274 2295 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth ); 2275 2296 #endif 2276 #if H_3D_ARP2297 #if NH_3D_ARP 2277 2298 if( bFirstTime == false && nARPWMax ) 2278 2299 { … … 2297 2318 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] ); 2298 2319 #endif 2299 #if H_3D_ARP2320 #if NH_3D_ARP 2300 2321 if( nARPWMax ) 2301 2322 { … … 2308 2329 if ( !rpcTempCU->getMergeAMP() ) 2309 2330 { 2310 #if H_3D_ARP2331 #if NH_3D_ARP 2311 2332 if( nARPWMax ) 2312 2333 { … … 2425 2446 } 2426 2447 #endif 2427 #if H_3D_ARP2448 #if NH_3D_ARP 2428 2449 } 2429 2450 #endif … … 2433 2454 } 2434 2455 2435 #if H_3D_DBBP2456 #if NH_3D_DBBP 2436 2457 Void TEncCu::xInvalidateOriginalSegments( TComYuv* pOrigYuv, TComYuv* pOrigYuvTemp, Bool* pMask, UInt uiValidSegment ) 2437 2458 { 2438 UInt uiWidth = pOrigYuv->getWidth ( 2439 UInt uiHeight = pOrigYuv->getHeight( 2440 Pel* piSrc = pOrigYuv->get LumaAddr();2441 UInt uiSrcStride = pOrigYuv->getStride( );2442 Pel* piDst = pOrigYuvTemp->get LumaAddr();2443 UInt uiDstStride = pOrigYuvTemp->getStride( );2459 UInt uiWidth = pOrigYuv->getWidth (COMPONENT_Y); 2460 UInt uiHeight = pOrigYuv->getHeight(COMPONENT_Y); 2461 Pel* piSrc = pOrigYuv->getAddr(COMPONENT_Y); 2462 UInt uiSrcStride = pOrigYuv->getStride(COMPONENT_Y); 2463 Pel* piDst = pOrigYuvTemp->getAddr(COMPONENT_Y); 2464 UInt uiDstStride = pOrigYuvTemp->getStride(COMPONENT_Y); 2444 2465 2445 2466 UInt uiMaskStride= MAX_CU_SIZE; … … 2466 2487 2467 2488 // now invalidate chroma 2468 Pel* piSrcU = pOrigYuv->get CbAddr();2469 Pel* piSrcV = pOrigYuv->get CrAddr();2470 UInt uiSrcStrideC = pOrigYuv->get CStride();2471 Pel* piDstU = pOrigYuvTemp->get CbAddr();2472 Pel* piDstV = pOrigYuvTemp->get CrAddr();2473 UInt uiDstStrideC = pOrigYuvTemp->get CStride();2489 Pel* piSrcU = pOrigYuv->getAddr(COMPONENT_Cb); 2490 Pel* piSrcV = pOrigYuv->getAddr(COMPONENT_Cr); 2491 UInt uiSrcStrideC = pOrigYuv->getStride(COMPONENT_Cb); 2492 Pel* piDstU = pOrigYuvTemp->getAddr(COMPONENT_Cb); 2493 Pel* piDstV = pOrigYuvTemp->getAddr(COMPONENT_Cr); 2494 UInt uiDstStrideC = pOrigYuvTemp->getStride(COMPONENT_Cb); 2474 2495 pMask = pMaskStart; 2475 2496 … … 2492 2513 } 2493 2514 } 2494 2515 #endif 2516 2517 #if H_3D_DIS 2495 2518 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) 2496 2519 { … … 2566 2589 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth); 2567 2590 } 2568 2591 #endif 2592 2593 #if NH_3D_DBBP 2569 2594 Void TEncCu::xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG ) 2570 2595 { … … 2588 2613 AOF( uiWidth == uiHeight ); 2589 2614 2590 #if H_3D_DBBP 2591 // Is this correct here, was under the macro SEC_DBBP_DISALLOW_8x8_I0078, however the function is related to Single Depth Mode 2615 #if NH_3D_DBBP 2592 2616 if(uiWidth <= 8) 2593 2617 { … … 2640 2664 rpcTempCU->getDBBPTmpData()->eVirtualPartSize = eVirtualPartSize; 2641 2665 rpcTempCU->getDBBPTmpData()->uiVirtualPartIndex = uiSegment; 2642 m_pcPredSearch->predInterSearch( rpcTempCU, m_ppcOrigYuvDBBP[uhDepth], apPredYuv[uiSegment], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], false, false,bUseMRG );2666 m_pcPredSearch->predInterSearch( rpcTempCU, m_ppcOrigYuvDBBP[uhDepth], apPredYuv[uiSegment], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], false, bUseMRG ); 2643 2667 m_pcRdCost->setUseMask(false); 2644 2668 … … 2649 2673 pDBBPTmpData->auhMergeIndex[uiSegment] = rpcTempCU->getMergeIndex(0); 2650 2674 2675 #if NH_3D_VSP 2651 2676 AOF( rpcTempCU->getSPIVMPFlag(0) == false ); 2652 2677 AOF( rpcTempCU->getVSPFlag(0) == 0 ); 2678 #endif 2653 2679 2654 2680 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 2669 2695 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 2670 2696 2671 UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( rpcTempCU->getSlice()->getSPS()->getMax CUDepth() - uhDepth ) << 1 ) ) >> 4;2697 UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( rpcTempCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uhDepth ) << 1 ) ) >> 4; 2672 2698 for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ ) 2673 2699 { … … 2695 2721 2696 2722 // reconstruct final prediction signal by combining both segments 2697 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize); 2723 Int bitDepthY = rpcTempCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA); 2724 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize, bitDepthY); 2698 2725 m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false ); 2699 2726
Note: See TracChangeset for help on using the changeset viewer.