Ignore:
Timestamp:
7 Sep 2012, 15:24:21 (12 years ago)
Author:
tech
Message:

Fixed VSO setup and compiler warning in getRefQP
( FIX_VSO_SETUP and FIX_COMP_WARNING_INIT )

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibRenderer/TRenSingleModel.cpp

    r121 r124  
    4444  m_iHeight = -1;
    4545  m_iStride = -1;
     46#if FIX_VSO_SETUP
     47  m_iUsedHeight = -1;
     48  m_iHorOffset  = -1;
     49#endif
    4650  m_iMode   = -1;
    4751  m_iPad    = PICYUV_PAD;
     
    9094{
    9195#ifdef LGE_VSO_EARLY_SKIP_A0093
    92   if (m_pbHorSkip)
     96  if ( m_pbHorSkip )
    9397  {
    9498    delete[] m_pbHorSkip;
     
    193197  Int iOffsetX = ( iViewPos == VIEWPOS_RIGHT ) ? 1 : 0;
    194198
     199#if FIX_VSO_SETUP
     200  for ( Int iPosY = 0; iPosY < m_iUsedHeight; iPosY++ )
     201#else
    195202  for ( Int iPosY = 0; iPosY < m_iHeight; iPosY++ )
     203#endif
    196204  {
    197205    if ( iViewPos == VIEWPOS_RIGHT )
     
    237245
    238246}
    239 
    240 template <BlenMod iBM, Bool bBitInc> Void
     247#if FIX_VSO_SETUP
     248template <BlenMod iBM, Bool bBitInc> Void
     249TRenSingleModelC<iBM,bBitInc>::setupPart ( UInt uiHorOffset,       Int iUsedHeight )
     250{
     251  AOT( iUsedHeight > m_iHeight );   
     252
     253  m_iUsedHeight =       iUsedHeight;
     254  m_iHorOffset  = (Int) uiHorOffset;
     255}
     256#endif
     257
     258template <BlenMod iBM, Bool bBitInc> Void
     259#if FIX_VSO_SETUP
     260TRenSingleModelC<iBM,bBitInc>::setup( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight,  Int** ppiBaseShiftLutRight,  Int iDistToLeft, Bool bKeepReference )
     261#else
    241262TRenSingleModelC<iBM,bBitInc>::setup( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight,  Int** ppiBaseShiftLutRight,  Int iDistToLeft, Bool bKeepReference, UInt uiHorOff )
     263#endif
    242264{
    243265  AOT( !m_bUseOrgRef && pcOrgVideo );
     
    253275  if ( pcOrgVideo && !bKeepReference )
    254276  {
     277#if FIX_VSO_SETUP
     278    TRenFilter::copy(             pcOrgVideo->getLumaAddr() +  m_iHorOffset       * pcOrgVideo->getStride() , pcOrgVideo->getStride() , m_iWidth,      m_iUsedHeight,      m_aapiRefVideoPel[0], m_aiRefVideoStrides[0]);
     279    TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCbAddr()   + (m_iHorOffset >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiRefVideoPel[1], m_aiRefVideoStrides[1]);
     280    TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCrAddr()   + (m_iHorOffset >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiRefVideoPel[2], m_aiRefVideoStrides[2]);   
     281#else
    255282    TRenFilter::copy(             pcOrgVideo->getLumaAddr() +  uiHorOff       * pcOrgVideo->getStride() , pcOrgVideo->getStride() , m_iWidth,      m_iHeight,      m_aapiRefVideoPel[0], m_aiRefVideoStrides[0]);
    256283    TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCbAddr()   + (uiHorOff >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiRefVideoPel[1], m_aiRefVideoStrides[1]);
    257284    TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCrAddr()   + (uiHorOff >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiRefVideoPel[2], m_aiRefVideoStrides[2]);   
     285#endif
    258286    xSetStructRefView();
    259287  }
     
    262290  xResetStructError();
    263291  xInitSampleStructs();
    264 
     292#if FIX_VSO_SETUP
     293  switch ( m_iMode )
     294  { 
     295  case 0:   
     296#if LGE_VSO_EARLY_SKIP_A0093
     297    xRenderL<true>( 0, 0, m_iWidth, m_iUsedHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0],false );
     298#else
     299    xRenderL<true>( 0, 0, m_iWidth, m_iUsedHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0] );
     300#endif   
     301    break;
     302  case 1:   
     303#ifdef LGE_VSO_EARLY_SKIP_A0093
     304    xRenderR<true>( 0, 0, m_iWidth, m_iUsedHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1],false);
     305#else
     306    xRenderR<true>( 0, 0, m_iWidth, m_iUsedHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1] );
     307#endif
     308    break;
     309  case 2:
     310    TRenFilter::setupZLUT( true, 30, iDistToLeft, ppiBaseShiftLutLeft, ppiBaseShiftLutRight, m_iBlendZThres, m_iBlendDistWeight, m_piInvZLUTLeft, m_piInvZLUTRight );
     311#ifdef LGE_VSO_EARLY_SKIP_A0093
     312    xRenderL<true>( 0, 0, m_iWidth, m_iUsedHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0],false);
     313    xRenderR<true>( 0, 0, m_iWidth, m_iUsedHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1],false);
     314#else     
     315    xRenderL<true>( 0, 0, m_iWidth, m_iUsedHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0] );
     316    xRenderR<true>( 0, 0, m_iWidth, m_iUsedHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1] );
     317#endif
     318    break;
     319  default:
     320    AOT(true);
     321  }
     322#else
    265323  switch ( m_iMode )
    266324  { 
     
    292350    AOT(true);
    293351  }
     352#endif
    294353
    295354  // Get Rendered View as Reference
     
    354413#endif 
    355414
     415#if FIX_VSO_SETUP
     416  for ( Int iPosY = 0; iPosY < m_iUsedHeight; iPosY++ )
     417#else
    356418  for ( Int iPosY = 0; iPosY < m_iHeight; iPosY++ )
     419#endif
    357420  {
    358421    for ( Int iPosX = 0; iPosX < m_iWidth; iPosX++ )
     
    407470#endif
    408471
     472#if FIX_VSO_SETUP
     473  for ( Int iPosY = 0; iPosY < m_iUsedHeight; iPosY++ )
     474#else
    409475  for ( Int iPosY = 0; iPosY < m_iHeight; iPosY++ )
     476#endif
    410477  {
    411478    for ( Int iPosX = 0; iPosX < m_iWidth; iPosX++ )
     
    550617}
    551618
     619#if FIX_VSO_SETUP
     620template <BlenMod iBM, Bool bBitInc> Void
     621TRenSingleModelC<iBM,bBitInc>::getSynthVideo( Int iViewPos, TComPicYuv* pcPicYuv )
     622
     623  AOT( pcPicYuv->getWidth() != m_iWidth );
     624  AOT( pcPicYuv->getHeight() < m_iUsedHeight + m_iHorOffset );
     625
     626#if HHI_VSO_COLOR_PLANES
     627  Pel RenModelOutPels::* piText[3] = { NULL, NULL, NULL };
     628  xGetSampleStrTextPtrs(iViewPos, piText[0], piText[1], piText[2]);
     629
     630  // Temp image for chroma down sampling
     631  PelImage cTempImage( m_iWidth, m_iUsedHeight, 3, 0);
     632
     633  Int  aiStrides[3];
     634  Pel* apiData  [3];
     635
     636  cTempImage.getDataAndStrides( apiData, aiStrides );
     637
     638  for (UInt uiCurPlane = 0; uiCurPlane < 3; uiCurPlane++ )
     639  {
     640    xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piText[uiCurPlane], apiData[uiCurPlane], aiStrides[uiCurPlane] , m_iWidth, m_iUsedHeight);
     641  } 
     642  xCopy2PicYuv( apiData, aiStrides, pcPicYuv );
     643#else
     644  Pel RenModelOutPels::* piY;
     645  xGetSampleStrTextPtrs(iViewPos, piY);
     646  xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piY, pcPicYuv->getLumaAddr() + m_iHorOffset * pcPicYuv->getStride(), pcPicYuv->getStride(), m_iWidth, m_iUsedHeight );
     647  pcPicYuv->setChromaTo( 128 << g_uiBitIncrement );   
     648#endif 
     649}
     650#else
    552651template <BlenMod iBM, Bool bBitInc> Void
    553652TRenSingleModelC<iBM,bBitInc>::getSynthVideo( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset )
     
    562661  // Temp image for chroma down sampling
    563662  PelImage cTempImage( m_iWidth, m_iHeight, 3, 0);
     663
    564664  Int  aiStrides[3];
    565665  Pel* apiData  [3];
     
    571671    xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piText[uiCurPlane], apiData[uiCurPlane], aiStrides[uiCurPlane] , m_iWidth, m_iHeight);
    572672  } 
    573 
    574673  xCopy2PicYuv( apiData, aiStrides, pcPicYuv, uiHorOffset );
    575674#else
     
    580679#endif 
    581680}
    582 
    583 
     681#endif
     682
     683#if FIX_VSO_SETUP
     684template <BlenMod iBM, Bool bBitInc> Void
     685TRenSingleModelC<iBM,bBitInc>::getSynthDepth( Int iViewPos, TComPicYuv* pcPicYuv )
     686
     687  AOT( iViewPos != 0 && iViewPos != 1);
     688  AOT( pcPicYuv->getWidth()  != m_iWidth  );
     689  AOT( pcPicYuv->getHeight() < m_iUsedHeight + m_iHorOffset );
     690
     691  Pel RenModelOutPels::* piD = 0;
     692  xGetSampleStrDepthPtrs(iViewPos, piD);
     693  xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piD, pcPicYuv->getLumaAddr() + pcPicYuv->getStride() * m_iHorOffset, pcPicYuv->getStride(), m_iWidth, m_iUsedHeight );
     694  pcPicYuv->setChromaTo( 128 << g_uiBitIncrement );   
     695}
     696
     697#else
    584698template <BlenMod iBM, Bool bBitInc> Void
    585699TRenSingleModelC<iBM,bBitInc>::getSynthDepth( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOff )
    586700
    587701  AOT( iViewPos != 0 && iViewPos != 1);
    588 
    589702  AOT( pcPicYuv->getWidth()  != m_iWidth  );
    590703  AOT( pcPicYuv->getHeight() > m_iHeight + uiHorOff );
     
    595708  pcPicYuv->setChromaTo( 128 << g_uiBitIncrement );   
    596709}
    597 
     710#endif
     711
     712#if FIX_VSO_SETUP
     713template <BlenMod iBM, Bool bBitInc> Void
     714TRenSingleModelC<iBM,bBitInc>::getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv )
     715
     716  AOT( pcPicYuv->getWidth()  != m_iWidth  );
     717  AOT( pcPicYuv->getHeight() <  m_iUsedHeight + m_iHorOffset);
     718
     719#if HHI_VSO_COLOR_PLANES
     720  Pel RenModelOutPels::* piText[3];
     721  piText[0] = &RenModelOutPels::iYRef;
     722  piText[1] = &RenModelOutPels::iURef;
     723  piText[2] = &RenModelOutPels::iVRef;
     724
     725  // Temp image for chroma down sampling
     726
     727  PelImage cTempImage( m_iWidth, m_iUsedHeight, 3, 0);
     728  Int  aiStrides[3];
     729  Pel* apiData  [3];
     730
     731  cTempImage.getDataAndStrides( apiData, aiStrides );
     732
     733  for (UInt uiCurPlane = 0; uiCurPlane < 3; uiCurPlane++ )
     734  {
     735    xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piText[uiCurPlane], apiData[uiCurPlane], aiStrides[uiCurPlane] , m_iWidth, m_iUsedHeight);
     736  } 
     737
     738  xCopy2PicYuv( apiData, aiStrides, pcPicYuv );
     739#else
     740  xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, &RenModelOutPels::iYRef, pcPicYuv->getLumaAddr() *  pcPicYuv->getStride() + m_iHorOffset, pcPicYuv->getStride(), m_iWidth, m_iUsedHeight );
     741  pcPicYuv->setChromaTo( 128 << g_uiBitIncrement );   
     742#endif 
     743}
     744#else
    598745template <BlenMod iBM, Bool bBitInc> Void
    599746TRenSingleModelC<iBM,bBitInc>::getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset )
     
    609756
    610757  // Temp image for chroma down sampling
     758
    611759  PelImage cTempImage( m_iWidth, m_iHeight, 3, 0);
    612760  Int  aiStrides[3];
     
    618766  {
    619767    xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piText[uiCurPlane], apiData[uiCurPlane], aiStrides[uiCurPlane] , m_iWidth, m_iHeight);
    620   }  
     768  }
    621769
    622770  xCopy2PicYuv( apiData, aiStrides, pcPicYuv, uiHorOffset );
     
    626774#endif 
    627775}
    628 
     776#endif
    629777
    630778template <BlenMod iBM, Bool bBitInc> RMDist
     
    682830  // Get Data
    683831  m_ppiCurLUT      = m_appiShiftLut   [iCurViewPos];
    684 
    685832  xSetViewRow      ( iStartPosY);
    686833
     
    770917      {
    771918          break;
    772         }
     919      }
    773920
    774921      iCurPosX--;
     
    816963  iEndChangePos = m_iStartChangePosX + iWidth - 1;
    817964
    818 
    819965  for (Int iPosY = iStartPosY; iPosY < iStartPosY + iHeight; iPosY++ )
    820966  {
    821 
    822967#ifdef LGE_VSO_EARLY_SKIP_A0093
    823968    if( m_bEarlySkip && bFast )
     
    18732018}
    18742019
     2020#if FIX_VSO_SETUP
     2021template <BlenMod iBM, Bool bBitInc> Void
     2022TRenSingleModelC<iBM,bBitInc>::xCopy2PicYuv( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget )
     2023{
     2024  TRenFilter::copy            ( ppiSrcVideoPel[0], piStrides[0], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getLumaAddr() +  m_iHorOffset       * rpcPicYuvTarget->getStride() , rpcPicYuvTarget->getStride () );
     2025  TRenFilter::sampleDown2Tap13( ppiSrcVideoPel[1], piStrides[1], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getCbAddr  () + (m_iHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );
     2026  TRenFilter::sampleDown2Tap13( ppiSrcVideoPel[2], piStrides[2], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getCrAddr  () + (m_iHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );
     2027}
     2028#else
    18752029template <BlenMod iBM, Bool bBitInc> Void
    18762030TRenSingleModelC<iBM,bBitInc>::xCopy2PicYuv( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget, UInt uiHorOffset )
     
    18802034  TRenFilter::sampleDown2Tap13( ppiSrcVideoPel[2], piStrides[2], m_iWidth, m_iHeight, rpcPicYuvTarget->getCrAddr  () + (uiHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );
    18812035}
     2036#endif
    18822037
    18832038template class TRenSingleModelC<BLEND_NONE ,true>;
Note: See TracChangeset for help on using the changeset viewer.