Changeset 1222 in 3DVCSoftware for branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncCu.cpp
- Timestamp:
- 21 May 2015, 15:43:58 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev4-RWTH/source/Lib/TLibEncoder/TEncCu.cpp
r1217 r1222 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 … … 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 … … 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 { … … 240 240 m_ppcOrigYuv = NULL; 241 241 } 242 #if H_3D_DBBP242 #if NH_3D_DBBP 243 243 if(m_ppcOrigYuvDBBP) 244 244 { … … 693 693 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 694 694 #endif 695 #if H_3D_DBBP695 #if NH_3D_DBBP 696 696 if( rpcTempCU->getSlice()->getDepthBasedBlkPartFlag() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 697 697 { … … 1611 1611 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1612 1612 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1613 #if H_3D1613 #if NH_3D_DBBP 1614 1614 m_pcEntropyCoder->encodeDBBPFlag( pcCU, uiAbsPartIdx ); 1615 1615 #endif … … 2384 2384 } 2385 2385 2386 #if H_3D_DBBP2386 #if NH_3D_DBBP 2387 2387 Void TEncCu::xInvalidateOriginalSegments( TComYuv* pOrigYuv, TComYuv* pOrigYuvTemp, Bool* pMask, UInt uiValidSegment ) 2388 2388 { 2389 UInt uiWidth = pOrigYuv->getWidth ( 2390 UInt uiHeight = pOrigYuv->getHeight( 2391 Pel* piSrc = pOrigYuv->get LumaAddr();2392 UInt uiSrcStride = pOrigYuv->getStride( );2393 Pel* piDst = pOrigYuvTemp->get LumaAddr();2394 UInt uiDstStride = pOrigYuvTemp->getStride( );2389 UInt uiWidth = pOrigYuv->getWidth (COMPONENT_Y); 2390 UInt uiHeight = pOrigYuv->getHeight(COMPONENT_Y); 2391 Pel* piSrc = pOrigYuv->getAddr(COMPONENT_Y); 2392 UInt uiSrcStride = pOrigYuv->getStride(COMPONENT_Y); 2393 Pel* piDst = pOrigYuvTemp->getAddr(COMPONENT_Y); 2394 UInt uiDstStride = pOrigYuvTemp->getStride(COMPONENT_Y); 2395 2395 2396 2396 UInt uiMaskStride= MAX_CU_SIZE; … … 2417 2417 2418 2418 // now invalidate chroma 2419 Pel* piSrcU = pOrigYuv->get CbAddr();2420 Pel* piSrcV = pOrigYuv->get CrAddr();2421 UInt uiSrcStrideC = pOrigYuv->get CStride();2422 Pel* piDstU = pOrigYuvTemp->get CbAddr();2423 Pel* piDstV = pOrigYuvTemp->get CrAddr();2424 UInt uiDstStrideC = pOrigYuvTemp->get CStride();2419 Pel* piSrcU = pOrigYuv->getAddr(COMPONENT_Cb); 2420 Pel* piSrcV = pOrigYuv->getAddr(COMPONENT_Cr); 2421 UInt uiSrcStrideC = pOrigYuv->getStride(COMPONENT_Cb); 2422 Pel* piDstU = pOrigYuvTemp->getAddr(COMPONENT_Cb); 2423 Pel* piDstV = pOrigYuvTemp->getAddr(COMPONENT_Cr); 2424 UInt uiDstStrideC = pOrigYuvTemp->getStride(COMPONENT_Cb); 2425 2425 pMask = pMaskStart; 2426 2426 … … 2443 2443 } 2444 2444 } 2445 2445 #endif 2446 2447 #if H_3D_DIS 2446 2448 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) 2447 2449 { … … 2517 2519 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth); 2518 2520 } 2519 2521 #endif 2522 2523 #if NH_3D_DBBP 2520 2524 Void TEncCu::xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG ) 2521 2525 { … … 2539 2543 AOF( uiWidth == uiHeight ); 2540 2544 2541 #if H_3D_DBBP2545 #if NH_3D_DBBP 2542 2546 // Is this correct here, was under the macro SEC_DBBP_DISALLOW_8x8_I0078, however the function is related to Single Depth Mode 2543 2547 if(uiWidth <= 8) … … 2591 2595 rpcTempCU->getDBBPTmpData()->eVirtualPartSize = eVirtualPartSize; 2592 2596 rpcTempCU->getDBBPTmpData()->uiVirtualPartIndex = uiSegment; 2593 m_pcPredSearch->predInterSearch( rpcTempCU, m_ppcOrigYuvDBBP[uhDepth], apPredYuv[uiSegment], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], false, false, bUseMRG ); 2597 2598 m_pcPredSearch->predInterSearch( rpcTempCU, m_ppcOrigYuvDBBP[uhDepth], apPredYuv[uiSegment], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], false, bUseMRG ); 2594 2599 m_pcRdCost->setUseMask(false); 2595 2600 … … 2599 2604 pDBBPTmpData->abMergeFlag[uiSegment] = rpcTempCU->getMergeFlag(0); 2600 2605 pDBBPTmpData->auhMergeIndex[uiSegment] = rpcTempCU->getMergeIndex(0); 2601 2606 2607 #if NH_3D_VSP 2602 2608 AOF( rpcTempCU->getSPIVMPFlag(0) == false ); 2603 2609 AOF( rpcTempCU->getVSPFlag(0) == 0 ); 2610 #endif 2604 2611 2605 2612 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 2620 2627 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 2621 2628 2622 UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( rpcTempCU->getSlice()->getSPS()->getMax CUDepth() - uhDepth ) << 1 ) ) >> 4;2629 UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( rpcTempCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uhDepth ) << 1 ) ) >> 4; 2623 2630 for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ ) 2624 2631 { … … 2646 2653 2647 2654 // reconstruct final prediction signal by combining both segments 2648 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize); 2655 Int bitDepthY = rpcTempCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA); 2656 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize, bitDepthY); 2649 2657 m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false ); 2650 2658
Note: See TracChangeset for help on using the changeset viewer.