Changeset 608 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComPattern.cpp
- Timestamp:
- 1 Sep 2013, 22:47:26 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/TComPattern.cpp
r296 r608 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 2, ITU/ISO/IEC6 * Copyright (c) 2010-2013, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 65 65 \param iStride buffer stride 66 66 \param iOffsetLeft neighbour offset (left) 67 \param iOffsetRight neighbour offset (right)68 67 \param iOffsetAbove neighbour offset (above) 69 \param iOffsetBottom neighbour offset (bottom)70 68 */ 71 69 Void TComPatternParam::setPatternParamPel ( Pel* piTexture, … … 74 72 Int iStride, 75 73 Int iOffsetLeft, 76 Int iOffsetRight, 77 Int iOffsetAbove, 78 Int iOffsetBottom ) 74 Int iOffsetAbove ) 79 75 { 80 76 m_piPatternOrigin = piTexture; … … 84 80 m_iOffsetLeft = iOffsetLeft; 85 81 m_iOffsetAbove = iOffsetAbove; 86 m_iOffsetRight = iOffsetRight;87 m_iOffsetBottom = iOffsetBottom;88 82 } 89 83 … … 95 89 \param iStride buffer stride 96 90 \param iOffsetLeft neighbour offset (left) 97 \param iOffsetRight neighbour offset (right)98 91 \param iOffsetAbove neighbour offset (above) 99 \param iOffsetBottom neighbour offset (bottom)100 \param uiPartDepth CU depth101 92 \param uiAbsPartIdx part index 102 93 */ … … 106 97 UChar iRoiHeight, 107 98 Int iOffsetLeft, 108 Int iOffsetRight,109 99 Int iOffsetAbove, 110 Int iOffsetBottom, 111 UInt uiPartDepth, 112 UInt uiAbsPartIdx 113 #if DEPTH_MAP_GENERATION 114 ,Bool bPrdDepthMap 115 #endif 116 ) 100 UInt uiAbsPartIdx ) 117 101 { 118 102 m_iOffsetLeft = iOffsetLeft; 119 m_iOffsetRight = iOffsetRight;120 103 m_iOffsetAbove = iOffsetAbove; 121 m_iOffsetBottom = iOffsetBottom;122 104 123 105 m_iROIWidth = iRoiWidth; … … 126 108 UInt uiAbsZorderIdx = pcCU->getZorderIdxInCU() + uiAbsPartIdx; 127 109 128 #if DEPTH_MAP_GENERATION129 TComPicYuv* pcPic = ( bPrdDepthMap ? pcCU->getPic()->getPredDepthMap() : pcCU->getPic()->getPicYuvRec() );130 #else131 TComPicYuv* pcPic = pcCU->getPic()->getPicYuvRec();132 #endif133 134 110 if ( iComp == 0 ) 135 111 { 136 #if DEPTH_MAP_GENERATION137 m_iPatternStride = ( bPrdDepthMap ? pcCU->getPic()->getPredDepthMap()->getStride() : pcCU->getPic()->getStride() );138 #else139 112 m_iPatternStride = pcCU->getPic()->getStride(); 140 #endif 141 m_piPatternOrigin = pcPic->getLumaAddr(pcCU->getAddr(), uiAbsZorderIdx) - m_iOffsetAbove * m_iPatternStride - m_iOffsetLeft; 113 m_piPatternOrigin = pcCU->getPic()->getPicYuvRec()->getLumaAddr(pcCU->getAddr(), uiAbsZorderIdx) - m_iOffsetAbove * m_iPatternStride - m_iOffsetLeft; 142 114 } 143 115 else 144 116 { 145 #if DEPTH_MAP_GENERATION146 m_iPatternStride = ( bPrdDepthMap ? pcCU->getPic()->getPredDepthMap()->getCStride() : pcCU->getPic()->getCStride() );147 #else148 117 m_iPatternStride = pcCU->getPic()->getCStride(); 149 #endif150 118 if ( iComp == 1 ) 151 119 { 152 m_piPatternOrigin = pc Pic->getCbAddr(pcCU->getAddr(), uiAbsZorderIdx) - m_iOffsetAbove * m_iPatternStride - m_iOffsetLeft;120 m_piPatternOrigin = pcCU->getPic()->getPicYuvRec()->getCbAddr(pcCU->getAddr(), uiAbsZorderIdx) - m_iOffsetAbove * m_iPatternStride - m_iOffsetLeft; 153 121 } 154 122 else 155 123 { 156 m_piPatternOrigin = pc Pic->getCrAddr(pcCU->getAddr(), uiAbsZorderIdx) - m_iOffsetAbove * m_iPatternStride - m_iOffsetLeft;124 m_piPatternOrigin = pcCU->getPic()->getPicYuvRec()->getCrAddr(pcCU->getAddr(), uiAbsZorderIdx) - m_iOffsetAbove * m_iPatternStride - m_iOffsetLeft; 157 125 } 158 126 } … … 170 138 Int iStride, 171 139 Int iOffsetLeft, 172 Int iOffsetRight, 173 Int iOffsetAbove, 174 Int iOffsetBottom ) 175 { 176 m_cPatternY. setPatternParamPel( piY, iRoiWidth, iRoiHeight, iStride, iOffsetLeft, iOffsetRight, iOffsetAbove, iOffsetBottom ); 177 m_cPatternCb.setPatternParamPel( piCb, iRoiWidth >> 1, iRoiHeight >> 1, iStride >> 1, iOffsetLeft >> 1, iOffsetRight >> 1, iOffsetAbove >> 1, iOffsetBottom >> 1 ); 178 m_cPatternCr.setPatternParamPel( piCr, iRoiWidth >> 1, iRoiHeight >> 1, iStride >> 1, iOffsetLeft >> 1, iOffsetRight >> 1, iOffsetAbove >> 1, iOffsetBottom >> 1 ); 140 Int iOffsetAbove ) 141 { 142 m_cPatternY. setPatternParamPel( piY, iRoiWidth, iRoiHeight, iStride, iOffsetLeft, iOffsetAbove ); 143 m_cPatternCb.setPatternParamPel( piCb, iRoiWidth >> 1, iRoiHeight >> 1, iStride >> 1, iOffsetLeft >> 1, iOffsetAbove >> 1 ); 144 m_cPatternCr.setPatternParamPel( piCr, iRoiWidth >> 1, iRoiHeight >> 1, iStride >> 1, iOffsetLeft >> 1, iOffsetAbove >> 1 ); 179 145 180 146 return; 181 147 } 182 148 183 Void TComPattern::initPattern( TComDataCU* pcCU, UInt uiPartDepth, UInt uiAbsPartIdx 184 #if DEPTH_MAP_GENERATION 185 , Bool bPrdDepthMap 186 #endif 187 ) 149 Void TComPattern::initPattern( TComDataCU* pcCU, UInt uiPartDepth, UInt uiAbsPartIdx ) 188 150 { 189 151 Int uiOffsetLeft = 0; 190 Int uiOffsetRight = 0;191 152 Int uiOffsetAbove = 0; 192 153 193 TComPic* pcPic = pcCU->getPic();194 154 UChar uiWidth = pcCU->getWidth (0)>>uiPartDepth; 195 155 UChar uiHeight = pcCU->getHeight(0)>>uiPartDepth; … … 206 166 if( uiCurrPicPelY != 0 ) 207 167 { 208 UInt uiNumPartInWidth = ( uiWidth/pcPic->getMinCUWidth() );209 168 uiOffsetAbove = 1; 210 211 if( uiCurrPicPelX + uiWidth < pcCU->getSlice()->getSPS()->getPicWidthInLumaSamples() ) 212 { 213 if( ( g_auiZscanToRaster[uiAbsZorderIdx] + uiNumPartInWidth ) % pcPic->getNumPartInWidth() ) // Not CU boundary 214 { 215 if( g_auiRasterToZscan[ (Int)g_auiZscanToRaster[uiAbsZorderIdx] - (Int)pcPic->getNumPartInWidth() + (Int)uiNumPartInWidth ] < uiAbsZorderIdx ) 216 { 217 uiOffsetRight = 1; 218 } 219 } 220 else // if it is CU boundary 221 { 222 if( g_auiZscanToRaster[uiAbsZorderIdx] < pcPic->getNumPartInWidth() && (uiCurrPicPelX+uiWidth) < pcPic->getPicYuvRec()->getWidth() ) // first line 223 { 224 uiOffsetRight = 1; 225 } 226 } 227 } 228 } 229 230 #if DEPTH_MAP_GENERATION 231 m_cPatternY .setPatternParamCU( pcCU, 0, uiWidth, uiHeight, uiOffsetLeft, uiOffsetRight, uiOffsetAbove, 0, uiPartDepth, uiAbsPartIdx, bPrdDepthMap ); 232 m_cPatternCb.setPatternParamCU( pcCU, 1, uiWidth >> 1, uiHeight >> 1, uiOffsetLeft, uiOffsetRight, uiOffsetAbove, 0, uiPartDepth, uiAbsPartIdx, bPrdDepthMap ); 233 m_cPatternCr.setPatternParamCU( pcCU, 2, uiWidth >> 1, uiHeight >> 1, uiOffsetLeft, uiOffsetRight, uiOffsetAbove, 0, uiPartDepth, uiAbsPartIdx, bPrdDepthMap ); 234 #else 235 m_cPatternY .setPatternParamCU( pcCU, 0, uiWidth, uiHeight, uiOffsetLeft, uiOffsetRight, uiOffsetAbove, 0, uiPartDepth, uiAbsPartIdx ); 236 m_cPatternCb.setPatternParamCU( pcCU, 1, uiWidth >> 1, uiHeight >> 1, uiOffsetLeft, uiOffsetRight, uiOffsetAbove, 0, uiPartDepth, uiAbsPartIdx ); 237 m_cPatternCr.setPatternParamCU( pcCU, 2, uiWidth >> 1, uiHeight >> 1, uiOffsetLeft, uiOffsetRight, uiOffsetAbove, 0, uiPartDepth, uiAbsPartIdx ); 238 #endif 239 } 240 241 Void TComPattern::initAdiPattern( TComDataCU* pcCU, UInt uiZorderIdxInPart, UInt uiPartDepth, Int* piAdiBuf, Int iOrgBufStride, Int iOrgBufHeight, Bool& bAbove, Bool& bLeft, Bool bLMmode 242 #if DEPTH_MAP_GENERATION 243 , Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY 244 #endif 245 ) 169 } 170 171 m_cPatternY .setPatternParamCU( pcCU, 0, uiWidth, uiHeight, uiOffsetLeft, uiOffsetAbove, uiAbsPartIdx ); 172 m_cPatternCb.setPatternParamCU( pcCU, 1, uiWidth >> 1, uiHeight >> 1, uiOffsetLeft, uiOffsetAbove, uiAbsPartIdx ); 173 m_cPatternCr.setPatternParamCU( pcCU, 2, uiWidth >> 1, uiHeight >> 1, uiOffsetLeft, uiOffsetAbove, uiAbsPartIdx ); 174 } 175 176 Void TComPattern::initAdiPattern( TComDataCU* pcCU, UInt uiZorderIdxInPart, UInt uiPartDepth, Int* piAdiBuf, Int iOrgBufStride, Int iOrgBufHeight, Bool& bAbove, Bool& bLeft, Bool bLMmode ) 246 177 { 247 178 Pel* piRoiOrigin; … … 253 184 UInt uiWidth; 254 185 UInt uiHeight; 255 #if DEPTH_MAP_GENERATION256 Int iPicStride = ( bPrdDepthMap ? pcCU->getPic()->getPredDepthMap()->getStride() : pcCU->getPic()->getStride() );257 #else258 186 Int iPicStride = pcCU->getPic()->getStride(); 259 #endif260 187 Int iUnitSize = 0; 261 188 Int iNumUnitsInCu = 0; … … 284 211 bLeft = true; 285 212 286 #if DEPTH_MAP_GENERATION287 if ( bPrdDepthMap )288 {289 uiWidth = ( uiCuWidth2 >> uiSubSampExpX ) + 1;290 uiHeight = ( uiCuHeight2 >> uiSubSampExpY ) + 1;291 }292 else293 {294 uiWidth=uiCuWidth2+1;295 uiHeight=uiCuHeight2+1;296 }297 #else298 213 uiWidth=uiCuWidth2+1; 299 214 uiHeight=uiCuHeight2+1; 300 #endif301 215 302 216 if (((uiWidth<<2)>iOrgBufStride)||((uiHeight<<2)>iOrgBufHeight)) … … 308 222 piAdiTemp = piAdiBuf; 309 223 310 #if DEPTH_MAP_GENERATION 311 if( bPrdDepthMap ) 312 { 313 piRoiOrigin = pcCU->getPic()->getPredDepthMap()->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiZorderIdxInPart ); 314 } 315 #endif 316 317 #if DEPTH_MAP_GENERATION 318 if ( bPrdDepthMap ) 319 fillReferenceSamples ( pcCU, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize >> uiSubSampExpX, iNumUnitsInCu, iTotalUnits, uiCuWidth >> uiSubSampExpX, uiCuHeight >> uiSubSampExpY, uiWidth, uiHeight, iPicStride, bLMmode, bPrdDepthMap ); 320 else 321 fillReferenceSamples ( pcCU, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize, iNumUnitsInCu, iTotalUnits, uiCuWidth, uiCuHeight, uiWidth, uiHeight, iPicStride, bLMmode, bPrdDepthMap ); 322 #else 323 fillReferenceSamples ( pcCU, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize, iNumUnitsInCu, iTotalUnits, uiCuWidth, uiCuHeight, uiWidth, uiHeight, iPicStride, bLMmode); 324 #endif 325 224 fillReferenceSamples (g_bitDepthY, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize, iNumUnitsInCu, iTotalUnits, uiCuWidth, uiCuHeight, uiWidth, uiHeight, iPicStride, bLMmode); 326 225 327 226 Int i; … … 350 249 } 351 250 352 // 1. filtering with [1 2 1] 353 piFilterBufN[0] = piFilterBuf[0]; 354 piFilterBufN[iBufSize - 1] = piFilterBuf[iBufSize - 1]; 355 for (i = 1; i < iBufSize - 1; i++) 356 { 357 piFilterBufN[i] = (piFilterBuf[i - 1] + 2 * piFilterBuf[i]+piFilterBuf[i + 1] + 2) >> 2; 251 if (pcCU->getSlice()->getSPS()->getUseStrongIntraSmoothing()) 252 { 253 Int blkSize = 32; 254 Int bottomLeft = piFilterBuf[0]; 255 Int topLeft = piFilterBuf[uiCuHeight2]; 256 Int topRight = piFilterBuf[iBufSize-1]; 257 Int threshold = 1 << (g_bitDepthY - 5); 258 Bool bilinearLeft = abs(bottomLeft+topLeft-2*piFilterBuf[uiCuHeight]) < threshold; 259 Bool bilinearAbove = abs(topLeft+topRight-2*piFilterBuf[uiCuHeight2+uiCuHeight]) < threshold; 260 261 if (uiCuWidth>=blkSize && (bilinearLeft && bilinearAbove)) 262 { 263 Int shift = g_aucConvertToBit[uiCuWidth] + 3; // log2(uiCuHeight2) 264 piFilterBufN[0] = piFilterBuf[0]; 265 piFilterBufN[uiCuHeight2] = piFilterBuf[uiCuHeight2]; 266 piFilterBufN[iBufSize - 1] = piFilterBuf[iBufSize - 1]; 267 for (i = 1; i < uiCuHeight2; i++) 268 { 269 piFilterBufN[i] = ((uiCuHeight2-i)*bottomLeft + i*topLeft + uiCuHeight) >> shift; 270 } 271 272 for (i = 1; i < uiCuWidth2; i++) 273 { 274 piFilterBufN[uiCuHeight2 + i] = ((uiCuWidth2-i)*topLeft + i*topRight + uiCuWidth) >> shift; 275 } 276 } 277 else 278 { 279 // 1. filtering with [1 2 1] 280 piFilterBufN[0] = piFilterBuf[0]; 281 piFilterBufN[iBufSize - 1] = piFilterBuf[iBufSize - 1]; 282 for (i = 1; i < iBufSize - 1; i++) 283 { 284 piFilterBufN[i] = (piFilterBuf[i - 1] + 2 * piFilterBuf[i]+piFilterBuf[i + 1] + 2) >> 2; 285 } 286 } 287 } 288 else 289 { 290 // 1. filtering with [1 2 1] 291 piFilterBufN[0] = piFilterBuf[0]; 292 piFilterBufN[iBufSize - 1] = piFilterBuf[iBufSize - 1]; 293 for (i = 1; i < iBufSize - 1; i++) 294 { 295 piFilterBufN[i] = (piFilterBuf[i - 1] + 2 * piFilterBuf[i]+piFilterBuf[i + 1] + 2) >> 2; 296 } 358 297 } 359 298 … … 421 360 piAdiTemp = piAdiBuf; 422 361 423 #if DEPTH_MAP_GENERATION 424 fillReferenceSamples ( pcCU, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize, iNumUnitsInCu, iTotalUnits, uiCuWidth, uiCuHeight, uiWidth, uiHeight, iPicStride, false, false ); 425 #else 426 fillReferenceSamples ( pcCU, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize, iNumUnitsInCu, iTotalUnits, uiCuWidth, uiCuHeight, uiWidth, uiHeight, iPicStride); 427 #endif 362 fillReferenceSamples (g_bitDepthC, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize, iNumUnitsInCu, iTotalUnits, uiCuWidth, uiCuHeight, uiWidth, uiHeight, iPicStride); 428 363 429 364 // get Cr pattern … … 431 366 piAdiTemp = piAdiBuf+uiWidth*uiHeight; 432 367 433 #if DEPTH_MAP_GENERATION 434 fillReferenceSamples ( pcCU, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize, iNumUnitsInCu, iTotalUnits, uiCuWidth, uiCuHeight, uiWidth, uiHeight, iPicStride, false, false ); 435 #else 436 fillReferenceSamples ( pcCU, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize, iNumUnitsInCu, iTotalUnits, uiCuWidth, uiCuHeight, uiWidth, uiHeight, iPicStride); 437 #endif 438 439 } 440 441 Void TComPattern::fillReferenceSamples( TComDataCU* pcCU, Pel* piRoiOrigin, Int* piAdiTemp, Bool* bNeighborFlags, Int iNumIntraNeighbor, Int iUnitSize, Int iNumUnitsInCu, Int iTotalUnits, UInt uiCuWidth, UInt uiCuHeight, UInt uiWidth, UInt uiHeight, Int iPicStride, Bool bLMmode 442 #if DEPTH_MAP_GENERATION 443 , Bool bPrdDepthMap 444 #endif 445 ) 368 fillReferenceSamples (g_bitDepthC, piRoiOrigin, piAdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitSize, iNumUnitsInCu, iTotalUnits, uiCuWidth, uiCuHeight, uiWidth, uiHeight, iPicStride); 369 } 370 371 Void TComPattern::fillReferenceSamples(Int bitDepth, Pel* piRoiOrigin, Int* piAdiTemp, Bool* bNeighborFlags, Int iNumIntraNeighbor, Int iUnitSize, Int iNumUnitsInCu, Int iTotalUnits, UInt uiCuWidth, UInt uiCuHeight, UInt uiWidth, UInt uiHeight, Int iPicStride, Bool bLMmode ) 446 372 { 447 373 Pel* piRoiTemp; 448 374 Int i, j; 449 #if DEPTH_MAP_GENERATION 450 Int iDCValue = ( bPrdDepthMap ? PDM_UNDEFINED_DEPTH : ( 1<<( g_uiBitDepth + g_uiBitIncrement - 1) ) ); 451 #else 452 Int iDCValue = ( 1<<( g_uiBitDepth + g_uiBitIncrement - 1) ); 453 #endif 375 Int iDCValue = 1 << (bitDepth - 1); 454 376 455 377 if (iNumIntraNeighbor == 0) … … 633 555 } 634 556 635 Int* TComPattern::getAdiOrgBuf( Int iCuWidth, Int iCuHeight, Int* piAdiBuf)557 Int* TComPattern::getAdiOrgBuf( Int /*iCuWidth*/, Int /*iCuHeight*/, Int* piAdiBuf) 636 558 { 637 559 return piAdiBuf; 638 560 } 639 561 640 Int* TComPattern::getAdiCbBuf( Int iCuWidth, Int iCuHeight, Int* piAdiBuf)562 Int* TComPattern::getAdiCbBuf( Int /*iCuWidth*/, Int /*iCuHeight*/, Int* piAdiBuf) 641 563 { 642 564 return piAdiBuf; … … 659 581 { 660 582 Int* piSrc; 661 #if LGE_EDGE_INTRA_A0070662 mapEdgeIntratoDC( uiDirMode );663 #endif664 583 assert(log2BlkSize >= 2 && log2BlkSize < 7); 665 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX666 mapDMMtoIntraMode( uiDirMode );667 #endif668 584 Int diff = min<Int>(abs((Int) uiDirMode - HOR_IDX), abs((Int)uiDirMode - VER_IDX)); 669 585 UChar ucFiltIdx = diff > m_aucIntraFilter[log2BlkSize - 2] ? 1 : 0; 670 if (uiDirMode == DC_IDX || uiDirMode == LM_CHROMA_IDX)586 if (uiDirMode == DC_IDX) 671 587 { 672 588 ucFiltIdx = 0; //no smoothing for DC or LM chroma … … 692 608 Bool bAboveLeftFlag; 693 609 UInt uiPartAboveLeft; 694 TComDataCU* pcCUAboveLeft = pcCU->getPUAboveLeft( uiPartAboveLeft, uiPartIdxLT , true, false);610 TComDataCU* pcCUAboveLeft = pcCU->getPUAboveLeft( uiPartAboveLeft, uiPartIdxLT ); 695 611 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 696 612 { … … 715 631 { 716 632 UInt uiPartAbove; 717 TComDataCU* pcCUAbove = pcCU->getPUAbove( uiPartAbove, g_auiRasterToZscan[uiRasterPart] , true, false);633 TComDataCU* pcCUAbove = pcCU->getPUAbove( uiPartAbove, g_auiRasterToZscan[uiRasterPart] ); 718 634 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 719 635 { … … 756 672 { 757 673 UInt uiPartLeft; 758 TComDataCU* pcCULeft = pcCU->getPULeft( uiPartLeft, g_auiRasterToZscan[uiRasterPart] , true, false);674 TComDataCU* pcCULeft = pcCU->getPULeft( uiPartLeft, g_auiRasterToZscan[uiRasterPart] ); 759 675 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 760 676 { … … 790 706 { 791 707 const UInt uiNumUnitsInPU = g_auiZscanToRaster[uiPartIdxRT] - g_auiZscanToRaster[uiPartIdxLT] + 1; 792 const UInt uiPuWidth = uiNumUnitsInPU * pcCU->getPic()->getMinCUWidth();793 708 Bool *pbValidFlags = bValidFlags; 794 709 Int iNumIntra = 0; … … 797 712 { 798 713 UInt uiPartAboveRight; 799 TComDataCU* pcCUAboveRight = pcCU->getPUAboveRightAdi( uiPartAboveRight, uiP uWidth, uiPartIdxRT, uiOffset, true, false);714 TComDataCU* pcCUAboveRight = pcCU->getPUAboveRightAdi( uiPartAboveRight, uiPartIdxRT, uiOffset ); 800 715 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 801 716 { … … 831 746 { 832 747 const UInt uiNumUnitsInPU = (g_auiZscanToRaster[uiPartIdxLB] - g_auiZscanToRaster[uiPartIdxLT]) / pcCU->getPic()->getNumPartInWidth() + 1; 833 const UInt uiPuHeight = uiNumUnitsInPU * pcCU->getPic()->getMinCUHeight();834 748 Bool *pbValidFlags = bValidFlags; 835 749 Int iNumIntra = 0; … … 838 752 { 839 753 UInt uiPartBelowLeft; 840 TComDataCU* pcCUBelowLeft = pcCU->getPUBelowLeftAdi( uiPartBelowLeft, uiP uHeight, uiPartIdxLB, uiOffset, true, false);754 TComDataCU* pcCUBelowLeft = pcCU->getPUBelowLeftAdi( uiPartBelowLeft, uiPartIdxLB, uiOffset ); 841 755 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 842 756 {
Note: See TracChangeset for help on using the changeset viewer.