Changeset 608 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComPattern.cpp


Ignore:
Timestamp:
1 Sep 2013, 22:47:26 (11 years ago)
Author:
tech
Message:

Merged DEV-2.0-dev0@604.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComPattern.cpp

    r296 r608  
    44 * granted under this license. 
    55 *
    6  * Copyright (c) 2010-2012, ITU/ISO/IEC
     6 * Copyright (c) 2010-2013, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    6565 \param  iStride       buffer stride
    6666 \param  iOffsetLeft   neighbour offset (left)
    67  \param  iOffsetRight  neighbour offset (right)
    6867 \param  iOffsetAbove  neighbour offset (above)
    69  \param  iOffsetBottom neighbour offset (bottom)
    7068 */
    7169Void TComPatternParam::setPatternParamPel ( Pel* piTexture,
     
    7472                                           Int iStride,
    7573                                           Int iOffsetLeft,
    76                                            Int iOffsetRight,
    77                                            Int iOffsetAbove,
    78                                            Int iOffsetBottom )
     74                                           Int iOffsetAbove )
    7975{
    8076  m_piPatternOrigin = piTexture;
     
    8480  m_iOffsetLeft     = iOffsetLeft;
    8581  m_iOffsetAbove    = iOffsetAbove;
    86   m_iOffsetRight    = iOffsetRight;
    87   m_iOffsetBottom   = iOffsetBottom;
    8882}
    8983
     
    9589 \param  iStride       buffer stride
    9690 \param  iOffsetLeft   neighbour offset (left)
    97  \param  iOffsetRight  neighbour offset (right)
    9891 \param  iOffsetAbove  neighbour offset (above)
    99  \param  iOffsetBottom neighbour offset (bottom)
    100  \param  uiPartDepth   CU depth
    10192 \param  uiAbsPartIdx  part index
    10293 */
     
    10697                                         UChar       iRoiHeight,
    10798                                         Int         iOffsetLeft,
    108                                          Int         iOffsetRight,
    10999                                         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 )
    117101{
    118102  m_iOffsetLeft   = iOffsetLeft;
    119   m_iOffsetRight  = iOffsetRight;
    120103  m_iOffsetAbove  = iOffsetAbove;
    121   m_iOffsetBottom = iOffsetBottom;
    122104 
    123105  m_iROIWidth     = iRoiWidth;
     
    126108  UInt uiAbsZorderIdx = pcCU->getZorderIdxInCU() + uiAbsPartIdx;
    127109 
    128 #if DEPTH_MAP_GENERATION
    129   TComPicYuv* pcPic = ( bPrdDepthMap ? pcCU->getPic()->getPredDepthMap() : pcCU->getPic()->getPicYuvRec() );
    130 #else
    131   TComPicYuv* pcPic = pcCU->getPic()->getPicYuvRec();
    132 #endif
    133 
    134110  if ( iComp == 0 )
    135111  {
    136 #if DEPTH_MAP_GENERATION
    137     m_iPatternStride  = ( bPrdDepthMap ? pcCU->getPic()->getPredDepthMap()->getStride() : pcCU->getPic()->getStride() );
    138 #else
    139112    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;
    142114  }
    143115  else
    144116  {
    145 #if DEPTH_MAP_GENERATION
    146     m_iPatternStride  = ( bPrdDepthMap ? pcCU->getPic()->getPredDepthMap()->getCStride() : pcCU->getPic()->getCStride() );
    147 #else
    148117    m_iPatternStride = pcCU->getPic()->getCStride();
    149 #endif
    150118    if ( iComp == 1 )
    151119    {
    152       m_piPatternOrigin = pcPic->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;
    153121    }
    154122    else
    155123    {
    156       m_piPatternOrigin = pcPic->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;
    157125    }
    158126  }
     
    170138                               Int iStride,
    171139                               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 );
    179145 
    180146  return;
    181147}
    182148
    183 Void TComPattern::initPattern( TComDataCU* pcCU, UInt uiPartDepth, UInt uiAbsPartIdx
    184 #if DEPTH_MAP_GENERATION
    185                               , Bool bPrdDepthMap
    186 #endif
    187                               )
     149Void TComPattern::initPattern( TComDataCU* pcCU, UInt uiPartDepth, UInt uiAbsPartIdx )
    188150{
    189151  Int   uiOffsetLeft  = 0;
    190   Int   uiOffsetRight = 0;
    191152  Int   uiOffsetAbove = 0;
    192153 
    193   TComPic* pcPic         = pcCU->getPic();
    194154  UChar uiWidth          = pcCU->getWidth (0)>>uiPartDepth;
    195155  UChar uiHeight         = pcCU->getHeight(0)>>uiPartDepth;
     
    206166  if( uiCurrPicPelY != 0 )
    207167  {
    208     UInt uiNumPartInWidth = ( uiWidth/pcPic->getMinCUWidth() );
    209168    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
     176Void TComPattern::initAdiPattern( TComDataCU* pcCU, UInt uiZorderIdxInPart, UInt uiPartDepth, Int* piAdiBuf, Int iOrgBufStride, Int iOrgBufHeight, Bool& bAbove, Bool& bLeft, Bool bLMmode )
    246177{
    247178  Pel*  piRoiOrigin;
     
    253184  UInt  uiWidth;
    254185  UInt  uiHeight;
    255 #if DEPTH_MAP_GENERATION
    256   Int   iPicStride = ( bPrdDepthMap ? pcCU->getPic()->getPredDepthMap()->getStride() : pcCU->getPic()->getStride() );
    257 #else
    258186  Int   iPicStride = pcCU->getPic()->getStride();
    259 #endif
    260187  Int   iUnitSize = 0;
    261188  Int   iNumUnitsInCu = 0;
     
    284211  bLeft  = true;
    285212
    286 #if DEPTH_MAP_GENERATION
    287   if ( bPrdDepthMap )
    288   {
    289     uiWidth  = ( uiCuWidth2  >> uiSubSampExpX ) + 1;
    290     uiHeight = ( uiCuHeight2 >> uiSubSampExpY ) + 1;
    291   }
    292   else
    293   {
    294     uiWidth=uiCuWidth2+1;
    295     uiHeight=uiCuHeight2+1;
    296   }
    297 #else
    298213  uiWidth=uiCuWidth2+1;
    299214  uiHeight=uiCuHeight2+1;
    300 #endif
    301215 
    302216  if (((uiWidth<<2)>iOrgBufStride)||((uiHeight<<2)>iOrgBufHeight))
     
    308222  piAdiTemp   = piAdiBuf;
    309223
    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);
    326225 
    327226  Int   i;
     
    350249  }
    351250
    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    }
    358297  }
    359298
     
    421360  piAdiTemp   = piAdiBuf;
    422361
    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);
    428363 
    429364  // get Cr pattern
     
    431366  piAdiTemp   = piAdiBuf+uiWidth*uiHeight;
    432367 
    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
     371Void 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 )
    446372{
    447373  Pel* piRoiTemp;
    448374  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);
    454376
    455377  if (iNumIntraNeighbor == 0)
     
    633555}
    634556
    635 Int* TComPattern::getAdiOrgBuf( Int iCuWidth, Int iCuHeight, Int* piAdiBuf)
     557Int* TComPattern::getAdiOrgBuf( Int /*iCuWidth*/, Int /*iCuHeight*/, Int* piAdiBuf)
    636558{
    637559  return piAdiBuf;
    638560}
    639561
    640 Int* TComPattern::getAdiCbBuf( Int iCuWidth, Int iCuHeight, Int* piAdiBuf)
     562Int* TComPattern::getAdiCbBuf( Int /*iCuWidth*/, Int /*iCuHeight*/, Int* piAdiBuf)
    641563{
    642564  return piAdiBuf;
     
    659581{
    660582  Int* piSrc;
    661 #if LGE_EDGE_INTRA_A0070
    662   mapEdgeIntratoDC( uiDirMode );
    663 #endif
    664583  assert(log2BlkSize >= 2 && log2BlkSize < 7);
    665 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
    666   mapDMMtoIntraMode( uiDirMode );
    667 #endif
    668584  Int diff = min<Int>(abs((Int) uiDirMode - HOR_IDX), abs((Int)uiDirMode - VER_IDX));
    669585  UChar ucFiltIdx = diff > m_aucIntraFilter[log2BlkSize - 2] ? 1 : 0;
    670   if (uiDirMode == DC_IDX || uiDirMode == LM_CHROMA_IDX)
     586  if (uiDirMode == DC_IDX)
    671587  {
    672588    ucFiltIdx = 0; //no smoothing for DC or LM chroma
     
    692608  Bool bAboveLeftFlag;
    693609  UInt uiPartAboveLeft;
    694   TComDataCU* pcCUAboveLeft = pcCU->getPUAboveLeft( uiPartAboveLeft, uiPartIdxLT, true, false );
     610  TComDataCU* pcCUAboveLeft = pcCU->getPUAboveLeft( uiPartAboveLeft, uiPartIdxLT );
    695611  if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred())
    696612  {
     
    715631  {
    716632    UInt uiPartAbove;
    717     TComDataCU* pcCUAbove = pcCU->getPUAbove( uiPartAbove, g_auiRasterToZscan[uiRasterPart], true, false );
     633    TComDataCU* pcCUAbove = pcCU->getPUAbove( uiPartAbove, g_auiRasterToZscan[uiRasterPart] );
    718634    if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred())
    719635    {
     
    756672  {
    757673    UInt uiPartLeft;
    758     TComDataCU* pcCULeft = pcCU->getPULeft( uiPartLeft, g_auiRasterToZscan[uiRasterPart], true, false );
     674    TComDataCU* pcCULeft = pcCU->getPULeft( uiPartLeft, g_auiRasterToZscan[uiRasterPart] );
    759675    if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred())
    760676    {
     
    790706{
    791707  const UInt uiNumUnitsInPU = g_auiZscanToRaster[uiPartIdxRT] - g_auiZscanToRaster[uiPartIdxLT] + 1;
    792   const UInt uiPuWidth = uiNumUnitsInPU * pcCU->getPic()->getMinCUWidth();
    793708  Bool *pbValidFlags = bValidFlags;
    794709  Int iNumIntra = 0;
     
    797712  {
    798713    UInt uiPartAboveRight;
    799     TComDataCU* pcCUAboveRight = pcCU->getPUAboveRightAdi( uiPartAboveRight, uiPuWidth, uiPartIdxRT, uiOffset, true, false );
     714    TComDataCU* pcCUAboveRight = pcCU->getPUAboveRightAdi( uiPartAboveRight, uiPartIdxRT, uiOffset );
    800715    if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred())
    801716    {
     
    831746{
    832747  const UInt uiNumUnitsInPU = (g_auiZscanToRaster[uiPartIdxLB] - g_auiZscanToRaster[uiPartIdxLT]) / pcCU->getPic()->getNumPartInWidth() + 1;
    833   const UInt uiPuHeight = uiNumUnitsInPU * pcCU->getPic()->getMinCUHeight();
    834748  Bool *pbValidFlags = bValidFlags;
    835749  Int iNumIntra = 0;
     
    838752  {
    839753    UInt uiPartBelowLeft;
    840     TComDataCU* pcCUBelowLeft = pcCU->getPUBelowLeftAdi( uiPartBelowLeft, uiPuHeight, uiPartIdxLB, uiOffset, true, false );
     754    TComDataCU* pcCUBelowLeft = pcCU->getPUBelowLeftAdi( uiPartBelowLeft, uiPartIdxLB, uiOffset );
    841755    if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred())
    842756    {
Note: See TracChangeset for help on using the changeset viewer.