Changeset 1159 in 3DVCSoftware for branches


Ignore:
Timestamp:
4 Mar 2015, 02:11:05 (10 years ago)
Author:
samsung-htm
Message:

Fix K0033

Location:
branches/HTM-13.1-dev1-Samsung2/source/Lib/TLibCommon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-13.1-dev1-Samsung2/source/Lib/TLibCommon/TComDataCU.cpp

    r1150 r1159  
    59775977Bool TComDataCU::getNeighDepth ( UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index )
    59785978{
    5979 
     5979#if NEIGHBORING_PIX_AVAILABILITY_FIX
     5980  UInt  uiPartIdxLT, uiPartIdxRT;
     5981  this->deriveLeftRightTopIdxAdi( uiPartIdxLT, uiPartIdxRT, 0, 0 );
     5982  UInt uiMidPart, uiPartNeighbor; 
     5983  TComDataCU* pcCUNeighbor;
     5984  Bool bDepAvail = false;
     5985  Pel *pDepth  = this->getPic()->getPicYuvRec()->getLumaAddr();
     5986  Int iDepStride =  this->getPic()->getPicYuvRec()->getStride();
     5987
     5988  Int xP, yP, nPSW, nPSH;
     5989  this->getPartPosition( uiPartIdx, xP, yP, nPSW, nPSH );
     5990
     5991  switch( index )
     5992  {
     5993  case 0: // Mid Left
     5994    uiMidPart = g_auiZscanToRaster[uiPartIdxLT] + (nPSH>>1) / this->getPic()->getMinCUHeight() * this->getPic()->getNumPartInWidth();
     5995    pcCUNeighbor = this->getPULeft( uiPartNeighbor, g_auiRasterToZscan[uiMidPart] );
     5996    if ( pcCUNeighbor )
     5997    {
     5998      if( !this->getSlice()->getPPS()->getConstrainedIntraPred() )
     5999      {
     6000        *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ];
     6001        bDepAvail = true;
     6002      }
     6003      else if ( pcCUNeighbor->getPredictionMode( uiPartNeighbor ) == MODE_INTRA )
     6004      {
     6005        *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ];
     6006        bDepAvail = true;
     6007      }
     6008    }
     6009    break;
     6010  case 1: // Mid Above
     6011    uiMidPart = g_auiZscanToRaster[uiPartIdxLT] + (nPSW>>1) / this->getPic()->getMinCUWidth();
     6012    pcCUNeighbor = this->getPUAbove( uiPartNeighbor, g_auiRasterToZscan[uiMidPart] );
     6013    if( pcCUNeighbor )
     6014    {
     6015      if( !this->getSlice()->getPPS()->getConstrainedIntraPred() )
     6016      {
     6017        *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ];
     6018        bDepAvail = true;
     6019      }
     6020      else if ( pcCUNeighbor->getPredictionMode( uiPartNeighbor ) == MODE_INTRA )
     6021      {
     6022        *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ];
     6023        bDepAvail = true;
     6024      }
     6025    }
     6026    break;
     6027  default:
     6028    break;
     6029  }
     6030
     6031  return bDepAvail;
     6032#else
    59806033  Bool bDepAvail = false;
    59816034  Pel *pDepth  = this->getPic()->getPicYuvRec()->getLumaAddr();
     
    60066059  }
    60076060  return bDepAvail;
     6061#endif
    60086062}
    60096063#else
  • branches/HTM-13.1-dev1-Samsung2/source/Lib/TLibCommon/TypeDef.h

    r1153 r1159  
    8181#if H_3D
    8282#define SEC_DEPTH_INTRA_SKIP_MODE_K0033   1   // Depth intra skip mode
     83#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     84#define NEIGHBORING_PIX_AVAILABILITY_FIX  1
     85#endif
     86
    8387
    8488#define H_3D_QTLPC                        1   // OL_QTLIMIT_PREDCODING_B0068 //JCT3V-B0068
Note: See TracChangeset for help on using the changeset viewer.