Changeset 726 in SHVCSoftware for branches/SHM-6-dev/source/Lib/TLibEncoder/TEncCu.cpp
- Timestamp:
- 23 Apr 2014, 08:24:48 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-6-dev/source/Lib/TLibEncoder/TEncCu.cpp
r595 r726 696 696 #if (ENCODER_FAST_MODE) 697 697 if( rpcBestCU->getSlice()->getSliceType() == I_SLICE || 698 rpcBestCU->getPredictionMode(0) == SIZE_NONE || // if there is no valid inter prediction 698 699 !testInter || 699 700 rpcBestCU->getCbf( 0, TEXT_LUMA ) != 0 || … … 701 702 rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0 ) // avoid very complex intra if it is unlikely 702 703 #else 703 if( rpcBestCU->getSlice()->getSliceType() == I_SLICE || 704 rpcBestCU->getCbf( 0, TEXT_LUMA ) != 0 || 705 rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) != 0 || 706 rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0 ) // avoid very complex intra if it is unlikely 707 #endif 704 if( rpcBestCU->getSlice()->getSliceType() == I_SLICE || 705 rpcBestCU->getCbf( 0, TEXT_LUMA ) != 0 || 706 rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) != 0 || 707 rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0 ) // avoid very complex intra if it is unlikely 708 #endif 709 { 710 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); 711 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 712 if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth ) 708 713 { 709 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); 710 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 711 if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth ) 714 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) ) 712 715 { 713 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) ) 714 { 715 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN ); 716 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN ); 716 717 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 717 }718 718 } 719 719 } 720 } 720 721 721 722 // test PCM … … 734 735 #if (ENCODER_FAST_MODE) 735 736 #if N0383_IL_CONSTRAINED_TILE_SETS_SEI 736 if(pcPic->getLayerId() > 0 && !m_disableILP) 737 #else 738 if(pcPic->getLayerId() > 0) 739 #endif 740 { 741 for(Int refLayer = 0; refLayer < pcSlice->getActiveNumILRRefIdx(); refLayer++) 742 { 743 xCheckRDCostILRUni( rpcBestCU, rpcTempCU, pcSlice->getInterLayerPredLayerIdc(refLayer)); 744 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 737 if(pcPic->getLayerId() > 0 && !m_disableILP) 738 #else 739 if(pcPic->getLayerId() > 0) 740 #endif 741 { 742 for(Int refLayer = 0; refLayer < pcSlice->getActiveNumILRRefIdx(); refLayer++) 743 { 744 xCheckRDCostILRUni( rpcBestCU, rpcTempCU, pcSlice->getInterLayerPredLayerIdc(refLayer)); 745 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 746 } 745 747 } 746 }747 748 #endif 748 749 … … 821 822 822 823 if ( m_pcEncCfg->getCUTransquantBypassFlagForceValue() ) 823 824 { 824 825 iMaxQP = iMinQP; // If all blocks are forced into using transquant bypass, do not loop here. 825 826 } 826 827 827 828 for (Int iQP=iMinQP; iQP<=iMaxQP; iQP++) … … 1476 1477 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 1477 1478 1479 #if SVC_EXTENSION 1480 #if AMP_MRG 1481 rpcTempCU->setMergeAMP (true); 1482 Bool ret = m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], false, bUseMRG ); 1483 #else 1484 Bool ret = m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] ); 1485 #endif 1486 1487 if( !ret ) 1488 { 1489 return; 1490 } 1491 #else 1478 1492 #if AMP_MRG 1479 1493 rpcTempCU->setMergeAMP (true); … … 1481 1495 #else 1482 1496 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] ); 1497 #endif 1483 1498 #endif 1484 1499
Note: See TracChangeset for help on using the changeset viewer.