Changeset 1258 in 3DVCSoftware for branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder
- Timestamp:
- 16 Jun 2015, 04:13:09 (9 years ago)
- Location:
- branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncCavlc.cpp
r1247 r1258 2550 2550 assert(0); 2551 2551 } 2552 #if H_3D2552 #if NH_3D_DIS 2553 2553 Void TEncCavlc::codeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2554 2554 { -
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncCavlc.h
r1227 r1258 121 121 Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ); 122 122 Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 123 #if H_3D123 #if NH_3D_DIS 124 124 Void codeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 125 125 #endif -
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncCu.cpp
r1227 r1258 739 739 } 740 740 #endif 741 #if H_3D741 #if NH_3D_DIS 742 742 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP ); 743 743 if( rpcBestCU->getSlice()->getDepthIntraSkipFlag() ) … … 1583 1583 } 1584 1584 1585 #if H_3D1585 #if NH_3D_DIS 1586 1586 m_pcEntropyCoder->encodeDIS( pcCU, uiAbsPartIdx ); 1587 1587 if(!pcCU->getDISFlag(uiAbsPartIdx)) … … 1628 1628 setCodeChromaQpAdjFlag( codeChromaQpAdj ); 1629 1629 setdQPFlag( bCodeDQP ); 1630 #if H_3D1630 #if NH_3D_DIS 1631 1631 } 1632 1632 #endif … … 2021 2021 mergeCandBuffer[uiMergeCand] = 1; 2022 2022 } 2023 #if H_3D2023 #if NH_3D_DIS 2024 2024 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2025 2025 #endif … … 2063 2063 } 2064 2064 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2065 #if H_3D2065 #if NH_3D_DIS 2066 2066 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2067 2067 #endif … … 2214 2214 } 2215 2215 #endif 2216 #if H_3D2216 #if NH_3D_DIS 2217 2217 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2218 2218 #endif … … 2331 2331 } 2332 2332 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2333 #if H_3D2333 #if NH_3D_DIS 2334 2334 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2335 2335 #endif … … 2440 2440 pMask += 2*uiMaskStride; 2441 2441 } 2442 }2443 2444 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize )2445 {2446 UInt uiDepth = rpcTempCU->getDepth( 0 );2447 if( !rpcBestCU->getSlice()->getIsDepth() || (eSize != SIZE_2Nx2N))2448 {2449 return;2450 }2451 2452 #if NH_3D_VSO // M52453 if( m_pcRdCost->getUseRenModel() )2454 {2455 UInt uiWidth = m_ppcOrigYuv[uiDepth]->getWidth ( COMPONENT_Y );2456 UInt uiHeight = m_ppcOrigYuv[uiDepth]->getHeight ( COMPONENT_Y );2457 Pel* piSrc = m_ppcOrigYuv[uiDepth]->getAddr ( COMPONENT_Y );2458 UInt uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride ( COMPONENT_Y );2459 m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );2460 }2461 #endif2462 2463 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );2464 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );2465 rpcTempCU->setPredModeSubParts( MODE_INTRA, 0, uiDepth );2466 rpcTempCU->setCUTransquantBypassSubParts( rpcTempCU->getCUTransquantBypass(0), 0, uiDepth );2467 2468 rpcTempCU->setTrIdxSubParts(0, 0, uiDepth);2469 rpcTempCU->setCbfSubParts(0, 1, 1, 0, uiDepth);2470 rpcTempCU->setDISFlagSubParts(true, 0, uiDepth);2471 rpcTempCU->setLumaIntraDirSubParts (DC_IDX, 0, uiDepth);2472 #if NH_3D_SDC_INTRA2473 rpcTempCU->setSDCFlagSubParts( false, 0, uiDepth);2474 #endif2475 2476 UInt uiPreCalcDistC;2477 m_pcPredSearch ->estIntraPredDIS ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, false );2478 2479 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC2480 Int oldTraceCopyBack = g_traceCopyBack;2481 g_traceCopyBack = false;2482 #endif2483 m_ppcRecoYuvTemp[uiDepth]->copyToPicLuma(rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getAddr(), rpcTempCU->getZorderIdxInCU() );2484 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC2485 g_traceCopyBack = oldTraceCopyBack;2486 #endif2487 2488 2489 m_pcEntropyCoder->resetBits();2490 if ( rpcTempCU->getSlice()->getPPS()->getTransquantBypassEnableFlag())2491 {2492 m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0, true );2493 }2494 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true );2495 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true );2496 2497 2498 m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]);2499 2500 rpcTempCU->getTotalBits() = m_pcEntropyCoder->getNumberOfWrittenBits();2501 rpcTempCU->getTotalBins() = ((TEncBinCABAC *)((TEncSbac*)m_pcEntropyCoder->m_pcEntropyCoderIf)->getEncBinIf())->getBinsCoded();2502 2503 2504 #if NH_3D_VSO // M62505 if( m_pcRdCost->getUseLambdaScaleVSO())2506 {2507 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCostVSO( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );2508 }2509 else2510 #endif2511 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );2512 2513 2514 xCheckDQP( rpcTempCU );2515 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth);2516 2442 } 2517 2443 … … 2651 2577 } 2652 2578 #endif 2653 2579 #if NH_3D_DIS 2580 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) 2581 { 2582 UInt uiDepth = rpcTempCU->getDepth( 0 ); 2583 if( !rpcBestCU->getSlice()->getIsDepth() || (eSize != SIZE_2Nx2N)) 2584 { 2585 return; 2586 } 2587 2588 #if NH_3D_VSO // M5 2589 if( m_pcRdCost->getUseRenModel() ) 2590 { 2591 UInt uiWidth = m_ppcOrigYuv[uiDepth]->getWidth ( COMPONENT_Y ); 2592 UInt uiHeight = m_ppcOrigYuv[uiDepth]->getHeight ( COMPONENT_Y ); 2593 Pel* piSrc = m_ppcOrigYuv[uiDepth]->getAddr ( COMPONENT_Y ); 2594 UInt uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride ( COMPONENT_Y ); 2595 m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight ); 2596 } 2597 #endif 2598 2599 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2600 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); 2601 rpcTempCU->setPredModeSubParts( MODE_INTRA, 0, uiDepth ); 2602 rpcTempCU->setCUTransquantBypassSubParts( rpcTempCU->getCUTransquantBypass(0), 0, uiDepth ); 2603 2604 rpcTempCU->setTrIdxSubParts(0, 0, uiDepth); 2605 rpcTempCU->setCbfSubParts(0, COMPONENT_Y, 0, uiDepth); 2606 rpcTempCU->setDISFlagSubParts(true, 0, uiDepth); 2607 rpcTempCU->setIntraDirSubParts(CHANNEL_TYPE_LUMA, DC_IDX, 0, uiDepth); 2608 #if NH_3D_SDC_INTRA 2609 rpcTempCU->setSDCFlagSubParts( false, 0, uiDepth); 2610 #endif 2611 2612 UInt uiPreCalcDistC; 2613 m_pcPredSearch ->estIntraPredDIS ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, false ); 2614 2615 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC 2616 Int oldTraceCopyBack = g_traceCopyBack; 2617 g_traceCopyBack = false; 2618 #endif 2619 m_ppcRecoYuvTemp[uiDepth]->copyToPicComponent(COMPONENT_Y, rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getCtuRsAddr(), rpcTempCU->getZorderIdxInCtu() ); 2620 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC 2621 g_traceCopyBack = oldTraceCopyBack; 2622 #endif 2623 2624 m_pcEntropyCoder->resetBits(); 2625 if ( rpcTempCU->getSlice()->getPPS()->getTransquantBypassEnableFlag()) 2626 { 2627 m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0, true ); 2628 } 2629 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2630 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2631 2632 m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]); 2633 2634 rpcTempCU->getTotalBits() = m_pcEntropyCoder->getNumberOfWrittenBits(); 2635 rpcTempCU->getTotalBins() = ((TEncBinCABAC *)((TEncSbac*)m_pcEntropyCoder->m_pcEntropyCoderIf)->getEncBinIf())->getBinsCoded(); 2636 2637 #if NH_3D_VSO // M6 2638 if( m_pcRdCost->getUseLambdaScaleVSO()) 2639 { 2640 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCostVSO( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() ); 2641 } 2642 else 2643 #endif 2644 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() ); 2645 2646 xCheckDQP( rpcTempCU ); 2647 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth); 2648 } 2649 #endif 2654 2650 Void TEncCu::xCheckRDCostIntra( TComDataCU *&rpcBestCU, 2655 2651 TComDataCU *&rpcTempCU, … … 2677 2673 2678 2674 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2679 #if H_3D2675 #if NH_3D_DIS 2680 2676 rpcTempCU->setDISFlagSubParts( false, 0, uiDepth ); 2681 2677 #endif … … 2715 2711 m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0, true ); 2716 2712 } 2717 #if H_3D2713 #if NH_3D_DIS 2718 2714 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2719 2715 if(!rpcTempCU->getDISFlag(0)) … … 2735 2731 setCodeChromaQpAdjFlag( codeChromaQpAdjFlag ); 2736 2732 setdQPFlag( bCodeDQP ); 2737 #if H_3D2733 #if NH_3D_DIS 2738 2734 } 2739 2735 #endif … … 2782 2778 2783 2779 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2784 #if H_3D2780 #if NH_3D_DIS 2785 2781 rpcTempCU->setDISFlagSubParts( false, 0, uiDepth ); 2786 2782 #endif … … 2804 2800 2805 2801 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2806 #if H_3D2802 #if NH_3D_DIS 2807 2803 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2808 2804 #endif -
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncCu.h
r1209 r1258 159 159 Void xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG = false ); 160 160 #endif 161 #if H_3D161 #if NH_3D_DIS 162 162 Void xCheckRDCostDIS ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 163 163 #endif -
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncEntropy.cpp
r1227 r1258 116 116 m_pcEntropyCoderIf->codeSkipFlag( pcCU, uiAbsPartIdx ); 117 117 } 118 #if H_3D118 #if NH_3D_DIS 119 119 Void TEncEntropy::encodeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 120 120 { -
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncEntropy.h
r1227 r1258 79 79 virtual Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 80 80 virtual Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 81 #if H_3D81 #if NH_3D_DIS 82 82 virtual Void codeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 83 83 #endif … … 165 165 Void encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 166 166 Void encodeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 167 #if H_3D167 #if NH_3D_DIS 168 168 Void encodeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD=false ); 169 169 #endif -
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncSbac.cpp
r1227 r1258 62 62 , m_cCUSplitFlagSCModel ( 1, 1, NUM_SPLIT_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 63 63 , m_cCUSkipFlagSCModel ( 1, 1, NUM_SKIP_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 64 #if H_3D64 #if NH_3D_DIS 65 65 , m_cCUDISFlagSCModel ( 1, 1, NUM_DIS_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 66 66 , m_cCUDISTypeSCModel ( 1, 1, NUM_DIS_TYPE_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 143 143 m_cCUSplitFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SPLIT_FLAG ); 144 144 m_cCUSkipFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG ); 145 #if H_3D145 #if NH_3D_DIS 146 146 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG ); 147 147 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); … … 231 231 curCost = m_cCUSplitFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SPLIT_FLAG ); 232 232 curCost += m_cCUSkipFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SKIP_FLAG ); 233 #if H_3D233 #if NH_3D_DIS 234 234 curCost += m_cCUDISFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DIS_FLAG ); 235 235 curCost += m_cCUDISTypeSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DIS_TYPE ); … … 297 297 } 298 298 } 299 300 #if H_3D301 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG );302 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE );303 #endif304 299 #if H_3D_ARP 305 300 m_cCUPUARPWSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ARPW ); … … 420 415 } 421 416 422 #if H_3D417 #if NH_3D_DIS 423 418 Void TEncSbac::codeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx ) 424 419 { -
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncSbac.h
r1227 r1258 138 138 Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ); 139 139 Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 140 #if H_3D140 #if NH_3D_DIS 141 141 Void codeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 142 142 #endif … … 204 204 ContextModel3DBuffer m_cCUSplitFlagSCModel; 205 205 ContextModel3DBuffer m_cCUSkipFlagSCModel; 206 #if H_3D206 #if NH_3D_DIS 207 207 ContextModel3DBuffer m_cCUDISFlagSCModel; 208 208 ContextModel3DBuffer m_cCUDISTypeSCModel; -
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncSearch.cpp
r1248 r1258 1007 1007 } 1008 1008 m_pcEntropyCoder->encodeSkipFlag( pcCU, 0, true ); 1009 #if H_3D1009 #if NH_3D_DIS 1010 1010 m_pcEntropyCoder->encodeDIS(pcCU, 0, true ); 1011 1011 if(!pcCU->getDISFlag(uiAbsPartIdx)) … … 1013 1013 m_pcEntropyCoder->encodePredMode( pcCU, 0, true ); 1014 1014 } 1015 #if H_3D1015 #if NH_3D_DIS 1016 1016 else 1017 1017 { … … 1019 1019 } 1020 1020 #endif 1021 #if H_3D1021 #if NH_3D_DIS 1022 1022 if(!pcCU->getDISFlag(uiAbsPartIdx)) 1023 1023 { … … 1037 1037 } 1038 1038 } 1039 #if H_3D1040 } 1041 #endif 1042 } 1043 #if H_3D1039 #if NH_3D_DIS 1040 } 1041 #endif 1042 } 1043 #if NH_3D_DIS 1044 1044 if(!pcCU->getDISFlag(uiAbsPartIdx)) 1045 1045 { … … 1080 1080 #endif 1081 1081 #endif 1082 #if H_3D1082 #if NH_3D_DIS 1083 1083 } 1084 1084 #endif … … 1875 1875 } 1876 1876 1877 #if H_3D1877 #if NH_3D_DIS 1878 1878 Void TEncSearch::xIntraCodingDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, UInt uiPredMode ) 1879 1879 { 1880 1880 UInt uiWidth = pcCU ->getWidth ( 0 ); 1881 1881 UInt uiHeight = pcCU ->getHeight ( 0 ); 1882 UInt uiStride = pcOrgYuv ->getStride ( );1883 Pel* piOrg = pcOrgYuv ->get LumaAddr(uiAbsPartIdx );1884 Pel* piPred = pcPredYuv->get LumaAddr(uiAbsPartIdx );1882 UInt uiStride = pcOrgYuv ->getStride (COMPONENT_Y); 1883 Pel* piOrg = pcOrgYuv ->getAddr(COMPONENT_Y, uiAbsPartIdx ); 1884 Pel* piPred = pcPredYuv->getAddr(COMPONENT_Y, uiAbsPartIdx ); 1885 1885 1886 1886 AOF( uiWidth == uiHeight ); 1887 1887 AOF( uiAbsPartIdx == 0 ); 1888 pcCU->setDISTypeSubParts( uiPredMode, uiAbsPartIdx, 0, pcCU->getDepth(0));1888 pcCU->setDISTypeSubParts((UChar)uiPredMode, uiAbsPartIdx, pcCU->getDepth(0)); 1889 1889 //===== reconstruction ===== 1890 1890 1891 1891 Bool bAboveAvail = false; 1892 1892 Bool bLeftAvail = false; 1893 pcCU->getPattern()->initPattern ( pcCU, 0, 0 ); 1894 pcCU->getPattern()->initAdiPattern( pcCU, 0, 0, m_piYuvExt, m_iYuvExtStride, m_iYuvExtHeight, bAboveAvail, bLeftAvail ); 1893 1894 TComTURecurse rTu(pcCU, 0); 1895 const ChromaFormat chFmt = rTu.GetChromaFormat(); 1895 1896 1896 1897 if ( uiPredMode == 0 ) 1897 1898 { 1898 predIntraLumaAng( pcCU->getPattern(), VER_IDX, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 1899 const Bool bUseFilteredPredictions=TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, VER_IDX, uiWidth, uiHeight, chFmt, pcCU->getSlice()->getSPS()->getSpsRangeExtension().getIntraSmoothingDisabledFlag()); 1900 initIntraPatternChType( rTu, bAboveAvail, bLeftAvail, COMPONENT_Y, bUseFilteredPredictions DEBUG_STRING_PASS_INTO(sTemp) ); 1901 predIntraAng( COMPONENT_Y, VER_IDX, 0, uiStride, piPred, uiStride, rTu, bAboveAvail, bLeftAvail, bUseFilteredPredictions ); 1899 1902 } 1900 1903 else if ( uiPredMode == 1 ) 1901 1904 { 1902 predIntraLumaAng( pcCU->getPattern(), HOR_IDX, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 1905 const Bool bUseFilteredPredictions=TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, HOR_IDX, uiWidth, uiHeight, chFmt, pcCU->getSlice()->getSPS()->getSpsRangeExtension().getIntraSmoothingDisabledFlag()); 1906 initIntraPatternChType( rTu, bAboveAvail, bLeftAvail, COMPONENT_Y, bUseFilteredPredictions DEBUG_STRING_PASS_INTO(sTemp) ); 1907 predIntraAng( COMPONENT_Y, HOR_IDX, 0, uiStride, piPred, uiStride, rTu, bAboveAvail, bLeftAvail, bUseFilteredPredictions ); 1903 1908 } 1904 1909 else if ( uiPredMode == 2 ) 1905 1910 { 1906 Pel pSingleDepth = 1 << ( g_bitDepthY- 1 );1911 Pel pSingleDepth = 1 << ( pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) - 1 ); 1907 1912 pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 0 ); 1908 1913 for( UInt uiY = 0; uiY < uiHeight; uiY++ ) … … 1917 1922 else if ( uiPredMode == 3 ) 1918 1923 { 1919 Pel pSingleDepth = 1 << ( g_bitDepthY- 1 );1924 Pel pSingleDepth = 1 << ( pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) - 1 ); 1920 1925 pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 1 ); 1921 1926 for( UInt uiY = 0; uiY < uiHeight; uiY++ ) … … 1930 1935 1931 1936 // clear UV 1932 UInt uiStrideC = pcPredYuv->get CStride();1933 Pel *pRecCb = pcPredYuv->get CbAddr();1934 Pel *pRecCr = pcPredYuv->get CrAddr();1937 UInt uiStrideC = pcPredYuv->getStride(COMPONENT_Cb); 1938 Pel *pRecCb = pcPredYuv->getAddr(COMPONENT_Cb); 1939 Pel *pRecCr = pcPredYuv->getAddr(COMPONENT_Cr); 1935 1940 1936 1941 for (Int y=0; y<uiHeight/2; y++) … … 1938 1943 for (Int x=0; x<uiWidth/2; x++) 1939 1944 { 1940 pRecCb[x] = 1<<( g_bitDepthC-1);1941 pRecCr[x] = 1<<( g_bitDepthC-1);1945 pRecCb[x] = 1<<(pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA)-1); 1946 pRecCr[x] = 1<<(pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA)-1); 1942 1947 } 1943 1948 … … 1946 1951 } 1947 1952 1948 piPred = pcPredYuv->get LumaAddr(uiAbsPartIdx );1953 piPred = pcPredYuv->getAddr(COMPONENT_Y, uiAbsPartIdx ); 1949 1954 //===== determine distortion ===== 1950 #if H_3D_VSO1955 #if NH_3D_VSO 1951 1956 if ( m_pcRdCost->getUseVSO() ) 1952 ruiDist = m_pcRdCost->getDistPartVSO ( pcCU, uiAbsPartIdx, p iPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, false );1957 ruiDist = m_pcRdCost->getDistPartVSO ( pcCU, uiAbsPartIdx, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA), piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, false ); 1953 1958 else 1954 1959 #endif 1955 ruiDist = m_pcRdCost->getDistPart( g_bitDepthY, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight);1960 ruiDist = m_pcRdCost->getDistPart(pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA), piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, COMPONENT_Y ); 1956 1961 1957 1962 //===== determine rate and r-d cost ===== … … 1960 1965 UInt uiBits = m_pcEntropyCoder->getNumberOfWrittenBits(); 1961 1966 1962 #if H_3D_VSO1967 #if NH_3D_VSO 1963 1968 if ( m_pcRdCost->getUseLambdaScaleVSO()) 1964 1969 dRDCost = m_pcRdCost->calcRdCostVSO( uiBits, ruiDist ); … … 2721 2726 } 2722 2727 2723 #if H_3D2728 #if NH_3D_DIS 2724 2729 Void TEncSearch::estIntraPredDIS( TComDataCU* pcCU, 2725 2730 TComYuv* pcOrgYuv, … … 2734 2739 UInt uiHeight = pcCU->getHeight(0); 2735 2740 2736 2737 Pel* piOrg = pcOrgYuv ->get LumaAddr(0, uiWidth );2738 UInt uiStride = pcPredYuv->getStride( );2739 2741 #if NH_3D_VSO // M36 2742 Pel* piOrg = pcOrgYuv ->getAddr(COMPONENT_Y, 0, uiWidth ); 2743 UInt uiStride = pcPredYuv->getStride(COMPONENT_Y); 2744 #endif 2740 2745 Dist uiDist = 0; 2741 2746 Double dCost = 0.0; … … 2752 2757 uiDist = 0; 2753 2758 dCost = 0.0; 2754 #if H_3D_VSO // M362759 #if NH_3D_VSO // M36 2755 2760 if( m_pcRdCost->getUseRenModel() ) 2756 2761 { … … 2771 2776 2772 2777 2773 pcCU->setDISTypeSubParts( uiBestDISType, 0, 0, uiDepth);2778 pcCU->setDISTypeSubParts((UChar)uiBestDISType, 0, uiDepth); 2774 2779 assert(uiBestDISType >= 0); 2775 2780 … … 7091 7096 7092 7097 m_pcEntropyCoder->encodeSkipFlag ( pcCU, 0, true ); 7093 #if H_3D7098 #if NH_3D_DIS 7094 7099 m_pcEntropyCoder->encodeDIS ( pcCU, 0, true ); 7095 7100 #endif -
branches/HTM-14.1-update-dev1-MediaTek/source/Lib/TLibEncoder/TEncSearch.h
r1243 r1258 192 192 Pel resiLuma[NUMBER_OF_STORED_RESIDUAL_TYPES][MAX_CU_SIZE * MAX_CU_SIZE] 193 193 DEBUG_STRING_FN_DECLARE(sDebug)); 194 #if H_3D194 #if NH_3D_DIS 195 195 Void estIntraPredDIS ( TComDataCU* pcCU, 196 196 TComYuv* pcOrgYuv, … … 344 344 Void xStoreIntraResultQT ( const ComponentID compID, TComTU &rTu); 345 345 Void xLoadIntraResultQT ( const ComponentID compID, TComTU &rTu); 346 #if H_3D346 #if NH_3D_DIS 347 347 Void xIntraCodingDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, UInt uiPredMode ); 348 348 #endif
Note: See TracChangeset for help on using the changeset viewer.