Changeset 1368 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibEncoder
- Timestamp:
- 22 Jul 2015, 04:43:32 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibEncoder/TEncSearch.cpp
r1363 r1368 1158 1158 1159 1159 //===== init availability pattern ===== 1160 Bool bAboveAvail = false;1161 Bool bLeftAvail = false;1162 1163 1160 DEBUG_STRING_NEW(sTemp) 1164 1161 … … 1169 1166 const Bool bUseFilteredPredictions=TComPrediction::filteringIntraReferenceSamples(compID, uiChFinalMode, uiWidth, uiHeight, chFmt, sps.getSpsRangeExtension().getIntraSmoothingDisabledFlag()); 1170 1167 1171 initIntraPatternChType( rTu, bAboveAvail, bLeftAvail,compID, bUseFilteredPredictions DEBUG_STRING_PASS_INTO(sDebug) );1168 initIntraPatternChType( rTu, compID, bUseFilteredPredictions DEBUG_STRING_PASS_INTO(sDebug) ); 1172 1169 1173 1170 //===== get prediction signal ===== 1174 predIntraAng( compID, uiChFinalMode, piOrg, uiStride, piPred, uiStride, rTu, b AboveAvail, bLeftAvail, bUseFilteredPredictions );1171 predIntraAng( compID, uiChFinalMode, piOrg, uiStride, piPred, uiStride, rTu, bUseFilteredPredictions ); 1175 1172 1176 1173 // save prediction … … 1462 1459 checkTransformSkip &= (!pcCU->getCUTransquantBypass(0)); 1463 1460 1461 assert (rTu.ProcessComponentSection(COMPONENT_Y)); 1462 const UInt totalAdjustedDepthChan = rTu.GetTransformDepthTotalAdj(COMPONENT_Y); 1463 1464 1464 if ( m_pcEncCfg->getUseTransformSkipFast() ) 1465 1465 { … … 1493 1493 } 1494 1494 1495 if (rTu.ProcessComponentSection(COMPONENT_Y)) 1496 { 1497 const UInt totalAdjustedDepthChan = rTu.GetTransformDepthTotalAdj(COMPONENT_Y); 1498 pcCU->setTransformSkipSubParts ( modeId, COMPONENT_Y, uiAbsPartIdx, totalAdjustedDepthChan ); 1499 1500 xIntraCodingTUBlock( pcOrgYuv, pcPredYuv, pcResiYuv, resiLumaSingle, false, singleDistTmpLuma, COMPONENT_Y, rTu DEBUG_STRING_PASS_INTO(sModeString), default0Save1Load2 ); 1501 } 1495 1496 pcCU->setTransformSkipSubParts ( modeId, COMPONENT_Y, uiAbsPartIdx, totalAdjustedDepthChan ); 1497 xIntraCodingTUBlock( pcOrgYuv, pcPredYuv, pcResiYuv, resiLumaSingle, false, singleDistTmpLuma, COMPONENT_Y, rTu DEBUG_STRING_PASS_INTO(sModeString), default0Save1Load2 ); 1498 1502 1499 singleCbfTmpLuma = pcCU->getCbf( uiAbsPartIdx, COMPONENT_Y, uiTrDepth ); 1503 1500 … … 1546 1543 } 1547 1544 1548 if (rTu.ProcessComponentSection(COMPONENT_Y)) 1549 { 1550 const UInt totalAdjustedDepthChan = rTu.GetTransformDepthTotalAdj(COMPONENT_Y); 1551 pcCU ->setTransformSkipSubParts ( bestModeId[COMPONENT_Y], COMPONENT_Y, uiAbsPartIdx, totalAdjustedDepthChan ); 1552 } 1545 pcCU ->setTransformSkipSubParts ( bestModeId[COMPONENT_Y], COMPONENT_Y, uiAbsPartIdx, totalAdjustedDepthChan ); 1553 1546 1554 1547 if(bestModeId[COMPONENT_Y] == firstCheckId) 1555 1548 { 1556 1549 xLoadIntraResultQT(COMPONENT_Y, rTu ); 1557 if (rTu.ProcessComponentSection(COMPONENT_Y)) 1558 { 1559 pcCU->setCbfSubParts ( uiSingleCbfLuma << uiTrDepth, COMPONENT_Y, uiAbsPartIdx, rTu.GetTransformDepthTotalAdj(COMPONENT_Y) ); 1560 } 1550 pcCU->setCbfSubParts ( uiSingleCbfLuma << uiTrDepth, COMPONENT_Y, uiAbsPartIdx, rTu.GetTransformDepthTotalAdj(COMPONENT_Y) ); 1561 1551 1562 1552 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiFullDepth ][ CI_TEMP_BEST ] ); … … 1572 1562 //----- code luma/chroma block with given intra prediction mode and store Cbf----- 1573 1563 dSingleCost = 0.0; 1574 if (rTu.ProcessComponentSection(COMPONENT_Y)) 1575 { 1576 const UInt totalAdjustedDepthChan = rTu.GetTransformDepthTotalAdj(COMPONENT_Y); 1577 pcCU ->setTransformSkipSubParts ( 0, COMPONENT_Y, uiAbsPartIdx, totalAdjustedDepthChan ); 1578 } 1579 1564 1565 pcCU ->setTransformSkipSubParts ( 0, COMPONENT_Y, uiAbsPartIdx, totalAdjustedDepthChan ); 1580 1566 xIntraCodingTUBlock( pcOrgYuv, pcPredYuv, pcResiYuv, resiLumaSingle, false, uiSingleDistLuma, COMPONENT_Y, rTu DEBUG_STRING_PASS_INTO(sDebug)); 1581 1567 … … 1689 1675 pcCU->setTrIdxSubParts( uiTrDepth, uiAbsPartIdx, uiFullDepth ); 1690 1676 const TComRectangle &tuRect=rTu.getRect(COMPONENT_Y); 1691 const UInt totalAdjustedDepthChan = rTu.GetTransformDepthTotalAdj(COMPONENT_Y);1692 1677 pcCU->setCbfSubParts ( uiSingleCbfLuma << uiTrDepth, COMPONENT_Y, uiAbsPartIdx, totalAdjustedDepthChan ); 1693 1678 pcCU ->setTransformSkipSubParts ( bestModeId[COMPONENT_Y], COMPONENT_Y, uiAbsPartIdx, totalAdjustedDepthChan ); … … 2243 2228 //{ 2244 2229 //===== init pattern for luma prediction ===== 2245 Bool bAboveAvail = false;2246 Bool bLeftAvail = false;2247 2230 DEBUG_STRING_NEW(sTemp2) 2248 2231 … … 2252 2235 Int numModesForFullRD = m_pcEncCfg->getFastUDIUseMPMEnabled()?g_aucIntraModeNumFast_UseMPM[ uiWidthBit ] : g_aucIntraModeNumFast_NotUseMPM[ uiWidthBit ]; 2253 2236 2254 if (tuRecurseWithPU.ProcessComponentSection(COMPONENT_Y)) 2255 { 2256 initIntraPatternChType( tuRecurseWithPU, bAboveAvail, bLeftAvail, COMPONENT_Y, true DEBUG_STRING_PASS_INTO(sTemp2) ); 2257 } 2237 // this should always be true 2238 assert (tuRecurseWithPU.ProcessComponentSection(COMPONENT_Y)); 2239 initIntraPatternChType( tuRecurseWithPU, COMPONENT_Y, true DEBUG_STRING_PASS_INTO(sTemp2) ); 2258 2240 2259 2241 Bool doFastSearch = (numModesForFullRD != numModesAvailable); … … 2319 2301 const Bool bUseFilter=TComPrediction::filteringIntraReferenceSamples(COMPONENT_Y, uiMode, puRect.width, puRect.height, chFmt, sps.getSpsRangeExtension().getIntraSmoothingDisabledFlag()); 2320 2302 2321 predIntraAng( COMPONENT_Y, uiMode, piOrg, uiStride, piPred, uiStride, tuRecurseWithPU, b AboveAvail, bLeftAvail, bUseFilter, TComPrediction::UseDPCMForFirstPassIntraEstimation(tuRecurseWithPU, uiMode) );2303 predIntraAng( COMPONENT_Y, uiMode, piOrg, uiStride, piPred, uiStride, tuRecurseWithPU, bUseFilter, TComPrediction::UseDPCMForFirstPassIntraEstimation(tuRecurseWithPU, uiMode) ); 2322 2304 2323 2305 // use hadamard transform here
Note: See TracChangeset for help on using the changeset viewer.