Changeset 81 in 3DVCSoftware for trunk/source


Ignore:
Timestamp:
21 Jun 2012, 21:01:20 (12 years ago)
Author:
tech
Message:

Bug fixes:

  • Residual Prediction
  • VPS
  • VSO
  • Renderer
Location:
trunk/source
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/App/TAppDecoder/TAppDecTop.cpp

    r77 r81  
    439439    m_tVideoIOYuvReconFile.push_back(new TVideoIOYuv);
    440440    Char buffer[4];
     441#if VIDYO_VPS_INTEGRATION
     442    sprintf(buffer,"_%i", viewId );
     443#else
    441444    sprintf(buffer,"_%i", (Int)(m_tVideoIOYuvReconFile.size()-1) / 2 );
     445#endif
    442446    Char* nextFilename = NULL;
     447#if VIDYO_VPS_INTEGRATION
     448    if( isDepth)
     449#else
    443450    if( (m_tVideoIOYuvReconFile.size() % 2) == 0 )
     451#endif
    444452    {
    445453      Char* pchTempFilename = NULL;
     
    452460      xAppendToFileNameEnd( m_pchReconFile, buffer, nextFilename);
    453461    }
     462#if !VIDYO_VPS_INTEGRATION
    454463    if( isDepth || ( !isDepth && (m_tVideoIOYuvReconFile.size() % 2) == 1 ) )
     464#endif
    455465    {
    456466      m_tVideoIOYuvReconFile.back()->open( nextFilename, true, m_outputBitDepth, g_uiBitDepth + g_uiBitIncrement );
     
    465475  {
    466476    m_tDecTop.push_back(new TDecTop);
     477#if !VIDYO_VPS_INTEGRATION
    467478    if( isDepth || ( !isDepth && (m_tVideoIOYuvReconFile.size() % 2) == 1 ) )
    468479    {
     480#endif
    469481      m_tDecTop.back()->create();
    470482      m_tDecTop.back()->init( this, newNumberOfViewDepth == 1);
     
    473485      m_tDecTop.back()->setPictureDigestEnabled(m_pictureDigestEnabled);
    474486      m_tDecTop.back()->setCamParsCollector( &m_cCamParsCollector );
    475     }
     487#if !VIDYO_VPS_INTEGRATION
     488    }
     489#endif
    476490  }
    477491}
  • trunk/source/App/TAppRenderer/TAppRendererTop.cpp

    r56 r81  
    7070    pcVideoInput->open( m_pchVideoInputFileList[iViewIdx], false, iFileBitDepth, iInteralBitDepth );  // read mode
    7171    pcDepthInput->open( m_pchDepthInputFileList[iViewIdx], false, iFileBitDepth, iInteralBitDepth );  // read mode
    72 
     72#if HHI_FIX
     73    pcVideoInput->skipFrames(m_iFrameSkip, m_iSourceWidth, m_iSourceHeight  );
     74    pcDepthInput->skipFrames(m_iFrameSkip, m_iSourceWidth, m_iSourceHeight  );
     75#endif
    7376    m_apcTVideoIOYuvVideoInput.push_back( pcVideoInput );
    7477    m_apcTVideoIOYuvDepthInput.push_back( pcDepthInput );
     
    184187  {
    185188
     189#if HHI_FIX
     190    if ( iFrame >= m_iFrameSkip )
     191    {
     192#endif
    186193    // read in depth and video
    187194    for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
     
    203210    }
    204211
     212#if HHI_FIX
     213    }
     214    else
     215#else
    205216    if ( iFrame < m_iFrameSkip ) // Skip Frames
     217#endif
     218   
    206219    {
    207220      std::cout << "Skipping Frame " << iFrame << std::endl;
     
    549562    while ( ( ( iNumOfRenderedFrames < m_iFramesToBeRendered ) || ( m_iFramesToBeRendered == 0 ) ) && !bAnyEOS )
    550563    {
     564
     565#if HHI_FIX
     566      if ( iFrame >= m_iFrameSkip )
     567      {     
     568#endif
    551569      // read in depth and video
    552570      for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
     
    558576        bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
    559577      }
    560 
     578#if HHI_FIX
     579      }
     580      else
     581#else
    561582      if ( iFrame < m_iFrameSkip )
     583#endif
    562584      {
     585#if HHI_FIX
     586        iFrame++;
     587#endif
    563588        continue;
    564589      }
     
    573598      }
    574599
     600#if HHI_FIX
     601      m_cCameraData.update( (UInt) ( iFrame - m_iFrameSkip ));
     602#endif
     603
    575604      for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
    576605      {
     606#if HHI_FIX
     607#else
    577608        m_cCameraData.update( (UInt)iFrame );
     609#endif
    578610
    579611        // setup virtual views
     
    755787  while ( ( ( iNumOfRenderedFrames < m_iFramesToBeRendered ) || ( m_iFramesToBeRendered == 0 ) ) && !bAnyEOS )
    756788  {
     789
     790#if HHI_FIX
     791    if ( iFrame >= m_iFrameSkip )
     792    {     
     793#endif
    757794    // read in depth and video
    758795    for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
     
    771808    }
    772809
     810#if HHI_FIX
     811    }
     812    else
     813#else
    773814    if ( iFrame < m_iFrameSkip ) // Skip Frames
     815#endif
    774816    {
    775817      iFrame++;
     
    777819    }
    778820
     821#if HHI_FIX
     822    m_cCameraData.update( (UInt) (iFrame - m_iFrameSkip ));
     823#else
    779824    m_cCameraData.update( (UInt)iFrame );
     825#endif
    780826
    781827    for(Int iSynthViewIdx=0; iSynthViewIdx < m_iNumberOfOutputViews; iSynthViewIdx++ )
     
    925971  while ( ( ( iNumOfRenderedFrames < m_iFramesToBeRendered ) || ( m_iFramesToBeRendered == 0 ) ) && !bAnyEOS )
    926972  {
    927     // set shift LUT
    928 
     973
     974#if HHI_FIX
     975    if ( iFrame >= m_iFrameSkip )
     976    {     
     977#endif
    929978    // read in depth and video
    930979    for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
     
    944993    }
    945994
     995#if HHI_FIX
     996    }
     997    else
     998#else
    946999    if ( iFrame < m_iFrameSkip ) // Skip Frames
     1000#endif
    9471001    {
    9481002      std::cout << "Skipping Frame " << iFrame << std::endl;
     
    9521006    }
    9531007
     1008#if HHI_FIX
     1009    m_cCameraData.update( (UInt) ( iFrame - m_iFrameSkip ) );
     1010#else
    9541011    m_cCameraData.update( (UInt)iFrame );
     1012#endif
    9551013
    9561014    for(Int iViewIdx=1; iViewIdx < m_iNumberOfInputViews; iViewIdx++ )
  • trunk/source/Lib/TLibCommon/TComDataCU.cpp

    r77 r81  
    29212921                break;
    29222922        default:
     2923#if HHI_FIX
     2924    assert ( m_pePartSize[uiTmpAbsPartIdx ] == SIZE_2Nx2N );
     2925#else
    29232926                assert ( m_pePartSize[0] == SIZE_2Nx2N );
     2927#endif
    29242928                riWidth = getWidth(uiTmpAbsPartIdx);      riHeight = getHeight(uiTmpAbsPartIdx);      ruiPartAddr = 0;
    29252929                break;
  • trunk/source/Lib/TLibCommon/TComRdCost.cpp

    r56 r81  
    273273   
    274274    m_puiComponentCostOriginP = new UInt[ 4 * iSubPelSearchLimit ];
     275#if HHI_FIX
     276    m_puiMultiviewRegCostHorOrgP  = new UInt[ 4 * iSubPelSearchLimit ];
     277    m_puiMultiviewRegCostVerOrgP  = new UInt[ 4 * iSubPelSearchLimit ];
     278#endif
    275279    iSubPelSearchLimit *= 2;
    276280   
    277281    m_puiComponentCost = m_puiComponentCostOriginP + iSubPelSearchLimit;
     282#if HHI_FIX
     283    m_puiMultiviewRegCostHor = m_puiMultiviewRegCostHorOrgP + iSubPelSearchLimit;
     284    m_puiMultiviewRegCostVer = m_puiMultiviewRegCostVerOrgP + iSubPelSearchLimit;
     285#endif
    278286   
    279287    for( Int n = -iSubPelSearchLimit; n < iSubPelSearchLimit; n++)
    280288    {
    281289      m_puiComponentCost[n] = xGetComponentBits( n );
     290#if HHI_FIX
     291      m_puiMultiviewRegCostHor[n] = xGetComponentBits( n );  // first version
     292      m_puiMultiviewRegCostVer[n] = xGetComponentBits( n );  // first version
     293#endif
    282294    }
    283295  }
     
    291303    m_puiComponentCostOriginP = NULL;
    292304  }
     305#if HHI_FIX
     306  if( m_puiMultiviewRegCostHorOrgP )
     307    {
     308      delete [] m_puiMultiviewRegCostHorOrgP;
     309      m_puiMultiviewRegCostHorOrgP = NULL;
     310    }
     311  if( m_puiMultiviewRegCostVerOrgP )
     312  {
     313    delete [] m_puiMultiviewRegCostVerOrgP;
     314    m_puiMultiviewRegCostVerOrgP = NULL;
     315  }
     316#endif
    293317}
    294318#endif
  • trunk/source/Lib/TLibCommon/TComRdCost.h

    r56 r81  
    219219#endif
    220220  UInt    xGetComponentBits( Int iVal );
    221   Void    getMotionCost( Bool bSad, Int iAdd ) { m_uiCost = (bSad ? m_uiLambdaMotionSAD + iAdd : m_uiLambdaMotionSSE + iAdd); }
     221  Void    getMotionCost( Bool bSad, Int iAdd )
     222{
     223     m_uiCost = (bSad ? m_uiLambdaMotionSAD + iAdd : m_uiLambdaMotionSSE + iAdd);
     224#if HHI_FIX
     225    m_uiLambdaMVReg = ( bSad ? m_uiLambdaMVRegSAD         : m_uiLambdaMVRegSSE         );
     226#endif
     227   }
    222228  Void    setPredictor( TComMv& rcMv )
    223229  {
     
    270276  __inline UInt     getMultiviewRegCost  ( Int x, Int y )
    271277  {
     278#if FIX203
     279    return m_uiLambdaMVReg * getBits(x, y) >> 16;
     280#else
    272281    return ( ( m_uiLambdaMVReg * ( m_puiHorRegCost[ x * ( 1 << m_iCostScale ) ] + m_puiVerRegCost[ y * ( 1 << m_iCostScale ) ] ) ) >> 16 );
     282#endif
    273283  }
    274284 
  • trunk/source/Lib/TLibEncoder/TEncCu.cpp

    r77 r81  
    11561156      if( m_pcRdCost->getUseRenModel() )
    11571157      {
     1158#if HHI_FIX
     1159        UInt  uiWidth     = m_ppcOrigYuv[uiDepth]->getWidth ( );
     1160        UInt  uiHeight    = m_ppcOrigYuv[uiDepth]->getHeight( );
     1161        Pel*  piSrc       = m_ppcOrigYuv[uiDepth]->getLumaAddr( 0 );
     1162        UInt  uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride();
     1163        m_pcRdCost->setRenModelData( m_ppcBestCU[uiDepth], 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1164#else
    11581165        UInt  uiWidth     = m_ppcBestCU[uiDepth]->getWidth ( 0 );
    11591166        UInt  uiHeight    = m_ppcBestCU[uiDepth]->getHeight( 0 );
     
    11611168        UInt  uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride();
    11621169        m_pcRdCost->setRenModelData( m_ppcBestCU[uiDepth], 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1170#endif
    11631171      }
    11641172#endif
     
    12061214          if( m_pcRdCost->getUseRenModel() ) // necessary ??
    12071215          {
     1216#if HHI_FIX
     1217            UInt  uiWidth     = m_ppcRecoYuvBest[uhNextDepth]->getWidth   (  );
     1218            UInt  uiHeight    = m_ppcRecoYuvBest[uhNextDepth]->getHeight  (   );
     1219            Pel*  piSrc       = m_ppcRecoYuvBest[uhNextDepth]->getLumaAddr( 0 );
     1220            UInt  uiSrcStride = m_ppcRecoYuvBest[uhNextDepth]->getStride  (   );
     1221            m_pcRdCost->setRenModelData( pcSubBestPartCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1222#else
    12081223            UInt  uiWidth     = pcSubBestPartCU->getWidth ( 0 );
    12091224            UInt  uiHeight    = pcSubBestPartCU->getHeight( 0 );
     
    12111226            UInt  uiSrcStride = m_ppcRecoYuvBest[pcSubBestPartCU->getDepth(0)]->getStride();
    12121227            m_pcRdCost->setRenModelData( pcSubBestPartCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1228#endif
    12131229          }
    12141230#endif
     
    13531369  if( m_pcRdCost->getUseRenModel() )
    13541370  {
     1371#if HHI_FIX
     1372      UInt  uiWidth     = m_ppcRecoYuvBest[uiDepth]->getWidth   ( );
     1373      UInt  uiHeight    = m_ppcRecoYuvBest[uiDepth]->getHeight  ( );
     1374      Pel*  piSrc       = m_ppcRecoYuvBest[uiDepth]->getLumaAddr( 0 );
     1375      UInt  uiSrcStride = m_ppcRecoYuvBest[uiDepth]->getStride  ( );
     1376      m_pcRdCost->setRenModelData( rpcBestCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1377#else
    13551378    UInt  uiWidth     = rpcBestCU->getWidth ( 0 );
    13561379    UInt  uiHeight    = rpcBestCU->getHeight( 0 );
     
    13581381    UInt  uiSrcStride = m_ppcRecoYuvBest[uiDepth]->getStride();
    13591382    m_pcRdCost->setRenModelData( rpcBestCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1383#endif
    13601384  }
    13611385#endif
     
    17231747  if( m_pcRdCost->getUseRenModel() )
    17241748  {
    1725     // reset
     1749#if HHI_FIX
     1750    UInt  uiWidth     = m_ppcOrigYuv[uhDepth]->getWidth ( );
     1751    UInt  uiHeight    = m_ppcOrigYuv[uhDepth]->getHeight( );
     1752    Pel*  piSrc       = m_ppcOrigYuv[uhDepth]->getLumaAddr( );
     1753    UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride();
     1754    m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1755#else
    17261756    UInt  uiWidth     = rpcTempCU->getWidth ( 0 );
    17271757    UInt  uiHeight    = rpcTempCU->getHeight( 0 );
     
    17291759    UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride();
    17301760    m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1761#endif
    17311762  }
    17321763#endif
     
    18201851          if( m_pcRdCost->getUseRenModel() )
    18211852          { //Reset
     1853#if HHI_FIX
     1854            UInt  uiWidth     = m_ppcOrigYuv[uhDepth]->getWidth    ();
     1855            UInt  uiHeight    = m_ppcOrigYuv[uhDepth]->getHeight   ();
     1856            Pel*  piSrc       = m_ppcOrigYuv[uhDepth]->getLumaAddr ();
     1857            UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride   ();
     1858            m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1859#else
    18221860            UInt  uiWidth     = rpcTempCU->getWidth ( 0 );
    18231861            UInt  uiHeight    = rpcTempCU->getHeight( 0 );
     
    18251863            UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride();
    18261864            m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1865#endif
    18271866          }
    18281867#endif
     
    18881927  if( m_pcRdCost->getUseRenModel() )
    18891928  {
     1929#if HHI_FIX
     1930    UInt  uiWidth     = m_ppcOrigYuv[uhDepth]->getWidth ( );
     1931    UInt  uiHeight    = m_ppcOrigYuv[uhDepth]->getHeight( );
     1932    Pel*  piSrc       = m_ppcOrigYuv[uhDepth]->getLumaAddr( );
     1933    UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride();
     1934    m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1935#else
    18901936    UInt  uiWidth     = rpcTempCU->getWidth ( 0 );
    18911937    UInt  uiHeight    = rpcTempCU->getHeight( 0 );
     
    18931939    UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride();
    18941940    m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     1941#endif
    18951942  }
    18961943#endif 
     
    19992046  if( m_pcRdCost->getUseRenModel() )
    20002047  {
     2048#if HHI_FIX
     2049    UInt  uiWidth     = m_ppcOrigYuv[uiDepth]->getWidth   ();
     2050    UInt  uiHeight    = m_ppcOrigYuv[uiDepth]->getHeight  ();
     2051    Pel*  piSrc       = m_ppcOrigYuv[uiDepth]->getLumaAddr();
     2052    UInt  uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride  ();
     2053    m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     2054#else
    20012055    UInt  uiWidth     = rpcTempCU->getWidth ( 0 );
    20022056    UInt  uiHeight    = rpcTempCU->getHeight( 0 );
     
    20042058    UInt  uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride();
    20052059    m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     2060#endif
    20062061  }
    20072062#endif
     
    25022557  if( m_pcRdCost->getUseRenModel() && !bRecursiveCall)
    25032558  {
     2559#if HHI_FIX
     2560    UInt  uiWidth     = m_ppcOrigYuv[uhDepth]->getWidth   ();
     2561    UInt  uiHeight    = m_ppcOrigYuv[uhDepth]->getHeight  ();
     2562    Pel*  piSrc       = m_ppcOrigYuv[uhDepth]->getLumaAddr();
     2563    UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride  ();
     2564    m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     2565#else
    25042566    UInt  uiWidth     = m_ppcTempCU [uhDepth]->getWidth ( 0 );
    25052567    UInt  uiHeight    = m_ppcTempCU [uhDepth]->getHeight( 0 );
     
    25072569    UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride();
    25082570    m_pcRdCost->setRenModelData( m_ppcTempCU[uhDepth], 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     2571#endif
    25092572  }
    25102573#endif
     
    26542717  if( !bSplit && bRecursiveCall && m_pcRdCost->getUseRenModel() )
    26552718  {
     2719#if HHI_FIX
     2720    UInt  uiWidth     = m_ppcRecoYuvBest[uhDepth]->getWidth   (   );
     2721    UInt  uiHeight    = m_ppcRecoYuvBest[uhDepth]->getHeight  (   );
     2722    UInt  uiSrcStride = m_ppcRecoYuvBest[uhDepth]->getStride  (   );
     2723    Pel*  piSrc       = m_ppcRecoYuvBest[uhDepth]->getLumaAddr( 0 );
     2724    m_pcRdCost->setRenModelData( rpcBestCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     2725#else
    26562726    UInt  uiWidth     = rpcBestCU->getWidth ( 0 );
    26572727    UInt  uiHeight    = rpcBestCU->getHeight( 0 );
     
    26592729    UInt  uiSrcStride = m_ppcRecoYuvBest[uhDepth]->getStride();
    26602730    m_pcRdCost->setRenModelData( rpcBestCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
     2731#endif
    26612732  }
    26622733#endif
  • trunk/source/Lib/TLibEncoder/TEncSearch.cpp

    r77 r81  
    304304  // motion cost
    305305  uiSad += m_pcRdCost->getCost( iSearchX, iSearchY );
    306  
     306#if HHI_FIX 
     307  // regularization cost
     308  if( m_pcRdCost->useMultiviewReg() )
     309  {
     310    uiSad += m_pcRdCost->getMultiviewRegCost( iSearchX, iSearchY );
     311  }
     312#endif
    307313  if( uiSad < rcStruct.uiBestSad )
    308314  {
     
    38653871  else
    38663872  {
     3873#if HHI_FIX
     3874    rcMv = ( m_pcRdCost->useMultiviewReg() ? m_pcRdCost->getMultiviewOrgMvPred() : *pcMvPred );
     3875#else
    38673876    rcMv = *pcMvPred;
     3877#endif
    38683878    xPatternSearchFast  ( pcCU, pcPatternKey, piRefY, iRefStride, &cMvSrchRngLT, &cMvSrchRngRB, rcMv, ruiCost );
    38693879  }
     
    39673977      uiSad += m_pcRdCost->getCost( x, y );
    39683978     
     3979#if HHI_FIX
     3980      // regularization cost
     3981      if( m_pcRdCost->useMultiviewReg() )
     3982      {
     3983        uiSad += m_pcRdCost->getMultiviewRegCost( x, y );
     3984      }
     3985#endif
     3986
    39693987      if ( uiSad < uiSadBest )
    39703988      {
  • trunk/source/Lib/TLibRenderer/TRenSingleModel.cpp

    r77 r81  
    12991299      else
    13001300      {
     1301#if HHI_FIX
     1302        riY = xBlend( iYL, iYR, m_iBlendDistWeight );
     1303#if HHI_VSO_COLOR_PLANES   
     1304        riU = xBlend( iUL, iUR, m_iBlendDistWeight );
     1305        riV = xBlend( iVL, iVR, m_iBlendDistWeight );
     1306#endif
     1307#else
    13011308        riY = xBlend( iYR, iYL, m_iBlendDistWeight );
    13021309#if HHI_VSO_COLOR_PLANES
    13031310        riU = xBlend( iUR, iUL, m_iBlendDistWeight );
    13041311        riV = xBlend( iVR, iVL, m_iBlendDistWeight );
     1312#endif
    13051313#endif
    13061314      }
  • trunk/source/Lib/TLibRenderer/TRenTop.cpp

    r56 r81  
    10131013          if ((iPrevShiftedPos + (iStep >> 1) ) > iPrevShiftedPosCeiled )
    10141014          {
     1015#if HHI_FIX
     1016            if ( !((iInterPolPos < (Int) 0) || (iInterPolPos >= iOutputWidth)))
     1017            {
     1018
     1019              for( UInt uiCurPlane = 0; uiCurPlane < uiNumberOfPlanes; uiCurPlane++)
     1020              {
     1021                apcOutputData[uiCurPlane][iInterPolPos]  = apcInputData[uiCurPlane][iPosX - iStep];
     1022              }
     1023              pcFilledData[iInterPolPos]  = REN_IS_FILLED;
     1024
     1025            }           
     1026            iInterPolPos++;
     1027          }         
     1028#else
    10151029          if ( (iInterPolPos < (Int) 0) || (iInterPolPos >= iOutputWidth))
    10161030          {
     
    10271041            iInterPolPos++;
    10281042        }
     1043#endif
    10291044
    10301045          // Fill Disocclusion
     
    10391054                  apcOutputData[uiCurPlane][iInterPolPos]  = apcInputData[uiCurPlane][iPosX];
    10401055                }
    1041 
    10421056              }
    10431057            }
     
    10501064        {
    10511065          iInterPolPos = iShiftedPosFloor >> m_iRelShiftLUTPrec;
     1066#if HHI_FIX
     1067          if ( !((iInterPolPos < (Int) 0) || (iInterPolPos >= iOutputWidth)))
     1068          {       
     1069            for( UInt uiCurPlane = 0; uiCurPlane < uiNumberOfPlanes; uiCurPlane++)
     1070            {
     1071              apcOutputData[uiCurPlane][iInterPolPos]  = apcInputData[uiCurPlane][iPosX ];
     1072            }
     1073
     1074            pcFilledData[iInterPolPos]  = REN_IS_FILLED;
     1075          }
     1076#else
    10521077          if ( (iInterPolPos < (Int) 0) || (iInterPolPos >= iOutputWidth))
    10531078          {
     
    10631088
    10641089          pcFilledData[iInterPolPos]  = REN_IS_FILLED;
     1090#endif
    10651091        }
    10661092      }
Note: See TracChangeset for help on using the changeset viewer.