Ticket #1401: IBC_CIP_FIX.patch
File IBC_CIP_FIX.patch, 19.5 KB (added by xiuxx, 10 years ago) |
---|
-
source/Lib/TLibCommon/TComDataCU.cpp
4101 4101 } 4102 4102 #endif 4103 4103 4104 #if CIP_IBC_UNIFICATION 4105 if ( getSlice()->getPPS()->getConstrainedIntraPred() && (getSlice()->getRefPic(eRefPicList, riRefIdx)->getPOC() == getSlice()->getPOC()) ) 4106 { 4107 return false; 4108 } 4109 #endif 4104 4110 eColRefPicList = getSlice()->getCheckLDC() ? eRefPicList : RefPicList(getSlice()->getColFromL0Flag()); 4105 4111 4106 4112 Int iColRefIdx = pColCtu->getCUMvField(RefPicList(eColRefPicList))->getRefIdx(uiAbsPartAddr); -
source/Lib/TLibCommon/TComPattern.cpp
562 562 TComDataCU* pcCUAboveLeft = pcCU->getPUAboveLeft( uiPartAboveLeft, uiPartIdxLT ); 563 563 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 564 564 { 565 #if CIP_IBC_UNIFICATION 566 bAboveLeftFlag = ( pcCUAboveLeft && (pcCUAboveLeft->isConstrainedIntra( uiPartAboveLeft ) || pcCUAboveLeft->isIntraBC( uiPartAboveLeft )) ); 567 #else 565 568 bAboveLeftFlag = ( pcCUAboveLeft && pcCUAboveLeft->isConstrainedIntra( uiPartAboveLeft ) ); 569 #endif 566 570 } 567 571 else 568 572 { … … 585 589 TComDataCU* pcCUAbove = pcCU->getPUAbove( uiPartAbove, g_auiRasterToZscan[uiRasterPart] ); 586 590 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 587 591 { 592 #if CIP_IBC_UNIFICATION 593 if ( pcCUAbove && (pcCUAbove->isConstrainedIntra( uiPartAbove ) || pcCUAbove->isIntraBC( uiPartAbove )) ) 594 #else 588 595 if ( pcCUAbove && pcCUAbove->isConstrainedIntra( uiPartAbove ) ) 596 #endif 589 597 { 590 598 iNumIntra++; 591 599 *pbValidFlags = true; … … 626 634 TComDataCU* pcCULeft = pcCU->getPULeft( uiPartLeft, g_auiRasterToZscan[uiRasterPart] ); 627 635 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 628 636 { 637 #if CIP_IBC_UNIFICATION 638 if ( pcCULeft && (pcCULeft->isConstrainedIntra( uiPartLeft ) || pcCULeft->isIntraBC( uiPartLeft )) ) 639 #else 629 640 if ( pcCULeft && pcCULeft->isConstrainedIntra( uiPartLeft ) ) 641 #endif 630 642 { 631 643 iNumIntra++; 632 644 *pbValidFlags = true; … … 666 678 TComDataCU* pcCUAboveRight = pcCU->getPUAboveRightAdi( uiPartAboveRight, uiPartIdxRT, uiOffset ); 667 679 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 668 680 { 681 #if CIP_IBC_UNIFICATION 682 if ( pcCUAboveRight && (pcCUAboveRight->isConstrainedIntra( uiPartAboveRight ) || pcCUAboveRight->isIntraBC( uiPartAboveRight )) ) 683 #else 669 684 if ( pcCUAboveRight && pcCUAboveRight->isConstrainedIntra( uiPartAboveRight ) ) 685 #endif 670 686 { 671 687 iNumIntra++; 672 688 *pbValidFlags = true; … … 706 722 TComDataCU* pcCUBelowLeft = pcCU->getPUBelowLeftAdi( uiPartBelowLeft, uiPartIdxLB, uiOffset ); 707 723 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 708 724 { 725 #if CIP_IBC_UNIFICATION 726 if ( pcCUBelowLeft && (pcCUBelowLeft->isConstrainedIntra( uiPartBelowLeft ) || pcCUBelowLeft->isIntraBC( uiPartBelowLeft )) ) 727 #else 709 728 if ( pcCUBelowLeft && pcCUBelowLeft->isConstrainedIntra( uiPartBelowLeft ) ) 729 #endif 710 730 { 711 731 iNumIntra++; 712 732 *pbValidFlags = true; -
source/Lib/TLibCommon/TypeDef.h
41 41 #include <vector> 42 42 #include <cstdlib> 43 43 44 #define CIP_IBC_UNIFICATION 1 45 44 46 //! \ingroup TLibCommon 45 47 //! \{ 46 48 -
source/Lib/TLibEncoder/TEncCu.cpp
1838 1838 continue; 1839 1839 } 1840 1840 1841 #if CIP_IBC_UNIFICATION 1842 if ( !m_pcPredSearch->isBlockVectorValid( rpcTempCU, xPos, yPos, width, height, 1843 rpcTempCU->getSlice()->getSPS()->getPicWidthInLumaSamples(), rpcTempCU->getSlice()->getSPS()->getPicHeightInLumaSamples(), 1844 0, 0, (cMvFieldNeighbours[uiMergeCand<<1].getHor() >> 2), (cMvFieldNeighbours[uiMergeCand<<1].getVer()>>2), sps.getMaxCUWidth() ) ) 1845 { 1846 continue; 1847 } 1848 #else 1841 1849 if ( !m_pcPredSearch->isBlockVectorValid( xPos, yPos, width, height, 1842 1850 rpcTempCU->getSlice()->getSPS()->getPicWidthInLumaSamples(), rpcTempCU->getSlice()->getSPS()->getPicHeightInLumaSamples(), 1843 1851 0, 0, (cMvFieldNeighbours[uiMergeCand<<1].getHor() >> 2), (cMvFieldNeighbours[uiMergeCand<<1].getVer()>>2), sps.getMaxCUWidth() ) ) … … 1844 1852 { 1845 1853 continue; 1846 1854 } 1855 #endif 1847 1856 1848 1857 // set MC parameters 1849 1858 rpcTempCU->setPredModeSubParts( MODE_INTER, 0, uhDepth ); // interprets depth relative to LCU level -
source/Lib/TLibEncoder/TEncSearch.cpp
5144 5144 } 5145 5145 5146 5146 #if SCM_T0227_INTRABC_SIG_UNIFICATION 5147 #if CIP_IBC_UNIFICATION 5148 Bool TEncSearch::isBlockVectorValid( TComDataCU* pcCU, Int xPos, Int yPos, Int width, Int height, Int picWidth, Int picHeight, Int xStartInCU, Int yStartInCU, Int xBv, Int yBv, Int ctuSize ) 5149 #else 5147 5150 Bool TEncSearch::isBlockVectorValid( Int xPos, Int yPos, Int width, Int height, Int picWidth, Int picHeight, Int xStartInCU, Int yStartInCU, Int xBv, Int yBv, Int ctuSize ) 5151 #endif 5148 5152 { 5149 5153 static const Int s_floorLog2[65] = 5150 5154 { … … 5196 5200 } 5197 5201 else 5198 5202 { 5203 #if CIP_IBC_UNIFICATION 5204 if(!pcCU->getSlice()->getPPS()->getConstrainedIntraPred() || xCIPIBCSearchPruning(pcCU, xPos + xBv, yPos + yBv, width, height)) 5205 { 5206 return true; 5207 } 5208 else 5209 { 5210 return false; 5211 } 5212 #else 5199 5213 return true; 5214 #endif 5200 5215 } 5201 5216 } 5202 5217 … … 5208 5223 // in the same CTU line 5209 5224 if ( refRightX>>ctuSizeLog2 < xPos>>ctuSizeLog2 ) 5210 5225 { 5226 #if CIP_IBC_UNIFICATION 5227 if(!pcCU->getSlice()->getPPS()->getConstrainedIntraPred() || xCIPIBCSearchPruning(pcCU, xPos + xBv, yPos + yBv, width, height)) 5228 { 5229 return true; 5230 } 5231 else 5232 { 5233 return false; 5234 } 5235 #else 5211 5236 return true; 5237 #endif 5212 5238 } 5213 5239 if ( refRightX>>ctuSizeLog2 > xPos>>ctuSizeLog2 ) 5214 5240 { … … 5226 5252 return false; 5227 5253 } 5228 5254 5255 #if CIP_IBC_UNIFICATION 5256 if(!pcCU->getSlice()->getPPS()->getConstrainedIntraPred() || xCIPIBCSearchPruning(pcCU, xPos + xBv, yPos + yBv, width, height)) 5257 { 5258 return true; 5259 } 5260 else 5261 { 5262 return false; 5263 } 5264 #else 5229 5265 return true; 5266 #endif 5230 5267 } 5231 5268 #endif 5232 5269 … … 5434 5471 continue; 5435 5472 } 5436 5473 5474 #if CIP_IBC_UNIFICATION 5475 if ( !isBlockVectorValid( pcCU, xCUStart+xStartInCU, yCUStart+yStartInCU, width, height, 5476 pcCU->getSlice()->getSPS()->getPicWidthInLumaSamples(), pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples(), 5477 xStartInCU, yStartInCU, (cMvFieldNeighbours[mrgIdxTemp<<1].getHor() >> 2), (cMvFieldNeighbours[mrgIdxTemp<<1].getVer()>>2), pcCU->getSlice()->getSPS()->getMaxCUWidth() ) ) 5478 { 5479 continue; 5480 } 5481 #else 5437 5482 if ( !isBlockVectorValid( xCUStart+xStartInCU, yCUStart+yStartInCU, width, height, 5438 5483 pcCU->getSlice()->getSPS()->getPicWidthInLumaSamples(), pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples(), 5439 5484 xStartInCU, yStartInCU, (cMvFieldNeighbours[mrgIdxTemp<<1].getHor() >> 2), (cMvFieldNeighbours[mrgIdxTemp<<1].getVer()>>2), pcCU->getSlice()->getSPS()->getMaxCUWidth() ) ) … … 5440 5485 { 5441 5486 continue; 5442 5487 } 5488 #endif 5443 5489 bitsMergeTemp = mrgIdxTemp == m_pcEncCfg->getMaxNumMergeCand() ? mrgIdxTemp : mrgIdxTemp+1; 5444 5490 5445 5491 distMergeTemp = 0; … … 5746 5792 continue; 5747 5793 } 5748 5794 5795 #if CIP_IBC_UNIFICATION 5796 if ( !isBlockVectorValid( pcCU, xCUStart+xStartInCU, yCUStart+yStartInCU, iDummyWidth, iDummyHeight, 5797 pcCU->getSlice()->getSPS()->getPicWidthInLumaSamples(), pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples(), 5798 xStartInCU, yStartInCU, (cMvFieldNeighboursIBC[mrgIdxTemp<<1].getHor() >> 2), (cMvFieldNeighboursIBC[mrgIdxTemp<<1].getVer() >> 2), pcCU->getSlice()->getSPS()->getMaxCUWidth() ) ) 5799 { 5800 continue; 5801 } 5802 #else 5749 5803 if ( !isBlockVectorValid( xCUStart+xStartInCU, yCUStart+yStartInCU, iDummyWidth, iDummyHeight, 5750 5804 pcCU->getSlice()->getSPS()->getPicWidthInLumaSamples(), pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples(), 5751 5805 xStartInCU, yStartInCU, (cMvFieldNeighboursIBC[mrgIdxTemp<<1].getHor() >> 2), (cMvFieldNeighboursIBC[mrgIdxTemp<<1].getVer() >> 2), pcCU->getSlice()->getSPS()->getMaxCUWidth() ) ) … … 5752 5806 { 5753 5807 continue; 5754 5808 } 5809 #endif 5755 5810 5756 5811 bitsMergeTemp = mrgIdxTemp == m_pcEncCfg->getMaxNumMergeCand() ? mrgIdxTemp : mrgIdxTemp+1; 5757 5812 … … 6541 6596 } 6542 6597 6543 6598 6544 6599 #if !CIP_IBC_UNIFICATION 6545 6600 Bool TEncSearch::xCIPIntraSearchPruning( TComDataCU* pcCU, Int relX, Int relY, Int roiWidth, Int roiHeight ) 6546 6601 { 6547 6602 UInt uiAbsPartIdx; … … 6580 6635 6581 6636 return true; 6582 6637 } 6638 #endif 6583 6639 6640 #if CIP_IBC_UNIFICATION 6641 Bool TEncSearch::xCIPIBCSearchPruning( TComDataCU* pcCU, Int refPixlX, Int refPixlY, Int roiWidth, Int roiHeight ) 6642 { 6643 const Int iMaxCuWidth = pcCU->getSlice()->getSPS()->getMaxCUWidth(); 6644 const Int iMaxCuHeight = pcCU->getSlice()->getSPS()->getMaxCUHeight(); 6645 6646 UInt partNumX = roiWidth/pcCU->getPic()->getMinCUWidth() + (((refPixlX%pcCU->getPic()->getMinCUWidth()) == 0) ? 0:1); 6647 UInt partNumY = roiHeight/pcCU->getPic()->getMinCUHeight() + (((refPixlY%pcCU->getPic()->getMinCUHeight()) == 0) ? 0:1); 6648 6649 6650 for(Int partY = 0; partY < partNumY; partY++) 6651 { 6652 for(Int partX = 0; partX < partNumX; partX++) 6653 { 6654 Int currRefX = refPixlX + partX * pcCU->getPic()->getMinCUWidth(); 6655 Int currRefY = refPixlY + partY * pcCU->getPic()->getMinCUHeight(); 6656 6657 Int currRefCtuX = currRefX/iMaxCuWidth; 6658 Int currRefCtuY = currRefY/iMaxCuHeight; 6659 Int currRefCtuRs = currRefCtuY * pcCU->getPic()->getFrameWidthInCtus() + currRefCtuX; 6660 6661 Int currRefRelX = currRefX%iMaxCuWidth; 6662 Int currRefRelY = currRefY%iMaxCuHeight; 6663 6664 TComDataCU* pcCurrRefCU = pcCU->getPic()->getCtu( currRefCtuRs ); 6665 UInt uiAbsPartIdx = g_auiRasterToZscan[currRefRelX/pcCU->getPic()->getMinCUWidth() + (currRefRelY/pcCU->getPic()->getMinCUHeight())*pcCU->getPic()->getNumPartInCtuWidth()]; 6666 6667 if(pcCurrRefCU->isInter(uiAbsPartIdx)) 6668 { 6669 Int iRefL0 = pcCurrRefCU->getCUMvField(REF_PIC_LIST_0)->getRefIdx(uiAbsPartIdx); 6670 Int iRefL1 = pcCurrRefCU->getCUMvField(REF_PIC_LIST_1)->getRefIdx(uiAbsPartIdx); 6671 6672 assert(iRefL0 >= 0 || iRefL1 >= 0); 6673 6674 if( iRefL0 >=0 && iRefL1 < 0 ) 6675 { 6676 if( pcCU->getSlice()->getRefPic( REF_PIC_LIST_0, iRefL0 )->getPOC() != pcCU->getSlice()->getPOC() ) 6677 { 6678 return false; 6679 } 6680 } 6681 else 6682 { 6683 return false; 6684 } 6685 } 6686 } 6687 } 6688 6689 return true; 6690 } 6691 #endif 6692 6584 6693 Void TEncSearch::xIntraBCSearchMVCandUpdate(Distortion uiSad, Int x, Int y, Distortion* uiSadBestCand, TComMv* cMVCand) 6585 6694 { 6586 6695 int j = CHROMA_REFINEMENT_CANDIDATES - 1; … … 6783 6892 const Int iRelCUPelX = cuPelX % lcuWidth; 6784 6893 const Int iRelCUPelY = cuPelY % lcuHeight; 6785 6894 6786 const ChromaFormat format = pcCU->getPic()->getChromaFormat(); 6787 6895 #if CIP_IBC_UNIFICATION 6896 const Int chromaROIWidthInPixels = iRoiWidth; 6897 const Int chromaROIHeightInPixels = iRoiHeight; 6898 #else 6899 const ChromaFormat format = pcCU->getPic()->getChromaFormat(); 6788 6900 const Int chromaROIWidthInPixels = (((format == CHROMA_420) || (format == CHROMA_422)) && (iRoiWidth == 4) && ((iRelCUPelX & 0x4) != 0)) ? (iRoiWidth * 2) : iRoiWidth; 6789 6901 const Int chromaROIHeightInPixels = (((format == CHROMA_420) ) && (iRoiHeight == 4) && ((iRelCUPelY & 0x4) != 0)) ? (iRoiHeight * 2) : iRoiHeight; 6790 6902 const Int chromaROIStartXInPixels = iRelCUPelX + iRoiWidth - chromaROIWidthInPixels; 6791 6903 const Int chromaROIStartYInPixels = iRelCUPelY + iRoiHeight - chromaROIHeightInPixels; 6904 #endif 6792 6905 6793 6906 if (m_pcEncCfg->getUseIntraBlockCopyFastSearch()) 6794 6907 { … … 6863 6976 { 6864 6977 Int iTempY = yPred + iRelCUPelY + iRoiHeight - 1; 6865 6978 Int iTempX = xPred + iRelCUPelX + iRoiWidth - 1; 6979 #if CIP_IBC_UNIFICATION 6980 Bool validCand = isValidIntraBCSearchArea(pcCU, xPred, yPred, chromaROIWidthInPixels, chromaROIHeightInPixels, uiPartOffset); 6981 #else 6866 6982 Bool validCand = isValidIntraBCSearchArea(pcCU, iPartIdx, xPred, chromaROIStartXInPixels, yPred, chromaROIStartYInPixels, chromaROIWidthInPixels, chromaROIHeightInPixels,uiPartOffset); 6983 #endif 6867 6984 6868 6985 if((iTempX >= (Int)lcuWidth) && (iTempY >= 0) && m_pcEncCfg->getUseIntraBCFullFrameSearch()) 6869 6986 { … … 6935 7052 #endif 6936 7053 #endif 6937 7054 { 7055 #if CIP_IBC_UNIFICATION 7056 if ( !isValidIntraBCSearchArea( pcCU, 0, y, chromaROIWidthInPixels, chromaROIHeightInPixels, uiPartOffset ) ) 7057 #else 6938 7058 if ( !isValidIntraBCSearchArea( pcCU, iPartIdx, 0, chromaROIStartXInPixels, y, chromaROIStartYInPixels, chromaROIWidthInPixels, chromaROIHeightInPixels, uiPartOffset ) ) 7059 #endif 6939 7060 { 6940 7061 continue; 6941 7062 } … … 6982 7103 #endif 6983 7104 for(Int x = 0 - iRoiWidth - puPelOffsetX ; x >= boundX ; --x ) 6984 7105 { 7106 #if CIP_IBC_UNIFICATION 7107 if (!isValidIntraBCSearchArea(pcCU, x, 0, chromaROIWidthInPixels, chromaROIHeightInPixels, uiPartOffset)) 7108 #else 6985 7109 if (!isValidIntraBCSearchArea(pcCU, iPartIdx, x, chromaROIStartXInPixels, 0, chromaROIStartYInPixels, chromaROIWidthInPixels, chromaROIHeightInPixels,uiPartOffset)) 7110 #endif 6986 7111 { 6987 7112 continue; 6988 7113 } … … 7055 7180 continue; 7056 7181 } 7057 7182 7183 #if CIP_IBC_UNIFICATION 7184 if (!isValidIntraBCSearchArea(pcCU, x, y, chromaROIWidthInPixels, chromaROIHeightInPixels, uiPartOffset)) 7185 #else 7058 7186 if (!isValidIntraBCSearchArea(pcCU, iPartIdx, x, chromaROIStartXInPixels, y, chromaROIStartYInPixels, chromaROIWidthInPixels, chromaROIHeightInPixels,uiPartOffset)) 7187 #endif 7059 7188 { 7060 7189 continue; 7061 7190 } … … 7116 7245 continue; 7117 7246 } 7118 7247 7248 #if CIP_IBC_UNIFICATION 7249 if (!isValidIntraBCSearchArea(pcCU, x, y, chromaROIWidthInPixels, chromaROIHeightInPixels, uiPartOffset)) 7250 #else 7119 7251 if (!isValidIntraBCSearchArea(pcCU, iPartIdx, x, chromaROIStartXInPixels, y, chromaROIStartYInPixels, chromaROIWidthInPixels, chromaROIHeightInPixels,uiPartOffset)) 7252 #endif 7120 7253 { 7121 7254 continue; 7122 7255 } … … 7192 7325 continue; 7193 7326 } 7194 7327 7328 #if CIP_IBC_UNIFICATION 7329 if (!isValidIntraBCSearchArea(pcCU, x, y, chromaROIWidthInPixels, chromaROIHeightInPixels, uiPartOffset)) 7330 #else 7195 7331 if (!isValidIntraBCSearchArea(pcCU, iPartIdx, x, chromaROIStartXInPixels, y, chromaROIStartYInPixels, chromaROIWidthInPixels, chromaROIHeightInPixels,uiPartOffset)) 7332 #endif 7196 7333 { 7197 7334 continue; 7198 7335 } … … 7259 7396 if(iTempZscanIdx >= pcCU->getZorderIdxInCtu()) 7260 7397 continue; 7261 7398 } 7399 7400 #if CIP_IBC_UNIFICATION 7401 if (!isValidIntraBCSearchArea(pcCU, x, y, chromaROIWidthInPixels, chromaROIHeightInPixels, uiPartOffset)) 7402 #else 7262 7403 if (!isValidIntraBCSearchArea(pcCU, iPartIdx, x, chromaROIStartXInPixels, y, chromaROIStartYInPixels, chromaROIWidthInPixels, chromaROIHeightInPixels,uiPartOffset)) 7404 #endif 7263 7405 { 7264 7406 continue; 7265 7407 } … … 7547 7689 continue; 7548 7690 } 7549 7691 7692 #if CIP_IBC_UNIFICATION 7693 if( pcCU->getSlice()->getPPS()->getConstrainedIntraPred() && !xCIPIBCSearchPruning(pcCU, iTempX, iTempY, iRoiWidth, iRoiHeight) ) 7694 { 7695 HashLinklist = HashLinklist->next; 7696 continue; 7697 } 7698 #endif 7699 7550 7700 uiSad = 0;//m_pcRdCost->getCost( iTempX - cuPelX, iTempY - cuPelY); 7551 7701 7552 7702 for(int r = 0; r < iRoiHeight; ) -
source/Lib/TLibEncoder/TEncSearch.h
256 256 ); 257 257 258 258 #if SCM_T0227_INTRABC_SIG_UNIFICATION 259 #if CIP_IBC_UNIFICATION 260 Bool isBlockVectorValid( TComDataCU* pcCU, Int xPos, Int yPos, Int width, Int height, Int picWidth, Int picHeight, Int xStartInCU, Int yStartInCU, Int xBv, Int yBv, Int ctuSize ); 261 #else 259 262 Bool isBlockVectorValid( Int xPos, Int yPos, Int width, Int height, Int picWidth, Int picHeight, Int xStartInCU, Int yStartInCU, Int xBv, Int yBv, Int ctuSize ); 260 263 #endif 264 #endif 261 265 262 266 Bool predIntraBCSearch ( TComDataCU* pcCU, 263 267 TComYuv* pcOrgYuv, … … 346 350 TComMv& rcMvSrchRngLT, 347 351 TComMv& rcMvSrchRngRB ); 348 352 353 #if !CIP_IBC_UNIFICATION 349 354 Bool xCIPIntraSearchPruning( TComDataCU* pcCU, 350 355 Int relX, 351 356 Int relY, 352 357 Int roiWidth, 353 358 Int roiHeight); 359 #endif 354 360 361 #if CIP_IBC_UNIFICATION 362 Bool xCIPIBCSearchPruning( TComDataCU* pcCU, 363 Int refPixlX, 364 Int refPixlY, 365 Int roiWidth, 366 Int roiHeight); 367 #endif 368 369 #if CIP_IBC_UNIFICATION 355 370 Bool isValidIntraBCSearchArea( TComDataCU* pcCU, 371 Int predX, 372 Int predY, 373 Int roiWidth, 374 Int roiHeight, 375 Int uiPartOffset) 376 #else 377 Bool isValidIntraBCSearchArea( TComDataCU* pcCU, 356 378 Int iPartIdx, 357 379 Int predX, 358 380 Int ROIStartX, … … 361 383 Int roiWidth, 362 384 Int roiHeight, 363 385 Int uiPartOffset) 386 #endif 364 387 { 365 388 const Int uiMaxCuWidth = pcCU->getSlice()->getSPS()->getMaxCUWidth(); 366 389 const Int uiMaxCuHeight = pcCU->getSlice()->getSPS()->getMaxCUHeight(); … … 376 399 return false; 377 400 } 378 401 402 #if !CIP_IBC_UNIFICATION 379 403 // check boundary 380 404 if ( pcCU->getWidth( 0 ) == 8 && pcCU->getPartitionSize( 0 ) != SIZE_2Nx2N && pcCU->getSlice()->getPic()->getPicYuvOrg()->getChromaFormat() != CHROMA_444 ) 381 405 { … … 448 472 } 449 473 } 450 474 } 475 #endif 451 476 477 #if CIP_IBC_UNIFICATION 452 478 return (!pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) || 479 xCIPIBCSearchPruning(pcCU, cuPelX + predX, cuPelY + predY, roiWidth, roiHeight); 480 #endif 481 482 #if !CIP_IBC_UNIFICATION 483 return (!pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) || 453 484 (pcCU->getSlice()->getSliceType() == I_SLICE) || 454 485 xCIPIntraSearchPruning(pcCU, predX + ROIStartX, predY + ROIStartY, roiWidth, roiHeight); 486 #endif 455 487 } 456 488 457 489 Void xIntraBCSearchMVCandUpdate(Distortion uiSad, Int x, Int y, Distortion* uiSadBestCand, TComMv* cMVCand);