Changeset 274 in SHVCSoftware for branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncCu.cpp
- Timestamp:
- 7 Jun 2013, 01:30:46 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncCu.cpp
r271 r274 456 456 { 457 457 #if (ENCODER_FAST_MODE) 458 bool testInter = true;458 Bool testInter = true; 459 459 if (rpcBestCU->getLayerId() > 0) 460 { 461 TComList<TComPic*> *cListPic = m_ppcTEncTop[rpcBestCU->getLayerId()]->getRefLayerEnc( rpcBestCU->getLayerId()-1)->getListPic();460 { 461 TComList<TComPic*> *cListPic = m_ppcTEncTop[rpcBestCU->getLayerId()]->getRefLayerEnc(0)->getListPic(); 462 462 TComPic* picLowerLayer = pcSlice->getRefPic( *cListPic, pcSlice->getPOC() ); 463 463 if(picLowerLayer->getSlice(0)->getSliceType() == I_SLICE) … … 465 465 testInter = false; 466 466 } 467 468 467 } 469 468 #endif … … 770 769 } 771 770 #endif 772 773 771 #if (ENCODER_FAST_MODE) 774 if(pcPic->getLayerId() > 0) 775 { 776 xCheckRDCostILRUni( rpcBestCU, rpcTempCU); 777 rpcTempCU->initEstData( uiDepth, iQP ); 778 } 772 if(pcPic->getLayerId() > 0) 773 { 774 for(Int refLayer = 0; refLayer < pcSlice->getActiveNumILRRefIdx(); refLayer++) 775 { 776 xCheckRDCostILRUni( rpcBestCU, rpcTempCU, pcSlice->getInterLayerPredLayerIdc(refLayer)); 777 rpcTempCU->initEstData( uiDepth, iQP ); 778 } 779 } 779 780 #endif 780 781 … … 1815 1816 } 1816 1817 #endif 1817 1818 1818 #if (ENCODER_FAST_MODE) 1819 Void TEncCu::xCheckRDCostILRUni(TComDataCU *&rpcBestCU, TComDataCU *&rpcTempCU )1819 Void TEncCu::xCheckRDCostILRUni(TComDataCU *&rpcBestCU, TComDataCU *&rpcTempCU, UInt refLayerId) 1820 1820 { 1821 1821 UChar uhDepth = rpcTempCU->getDepth( 0 ); 1822 1823 1822 rpcTempCU->setDepthSubParts( uhDepth, 0 ); 1824 1825 1823 #if SKIP_FLAG 1826 1824 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 1827 1825 #endif 1828 1829 1826 rpcTempCU->setPartSizeSubParts ( SIZE_2Nx2N, 0, uhDepth ); //2Nx2N 1830 1827 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 1831 1828 rpcTempCU->setCUTransquantBypassSubParts ( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth ); 1832 1833 Bool exitILR = m_pcPredSearch->predInterSearchILRUni( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] ); 1834 1829 Bool exitILR = m_pcPredSearch->predInterSearchILRUni( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], refLayerId ); 1835 1830 if(!exitILR) 1836 1831 { 1837 return; 1838 } 1839 1832 return; 1833 } 1840 1834 m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false ); 1841 1842 1835 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() ); 1843 1844 1836 xCheckDQP( rpcTempCU ); 1845 1837 xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth); 1846 1847 1838 return; 1848 1839 } 1849 1840 #endif 1850 1851 1852 1841 //! \}
Note: See TracChangeset for help on using the changeset viewer.