Changeset 189 in 3DVCSoftware for trunk/source/Lib/TLibRenderer


Ignore:
Timestamp:
18 Nov 2012, 22:11:37 (12 years ago)
Author:
tech
Message:

Reintegrated branch 4.1-dev0 Rev. 188.

Location:
trunk/source/Lib/TLibRenderer
Files:
6 edited

Legend:

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

    r101 r189  
    106106}
    107107
    108 #if HHI_VSO_SPEEDUP_A0033
    109108template<typename T>
    110109Void TRenImage<T>::getDataAndStrides( T** pptData, Int* piStrides )
     
    127126  }
    128127}
    129 #endif
    130128
    131129template<typename T>
  • trunk/source/Lib/TLibRenderer/TRenImage.h

    r101 r189  
    6969  TRenImagePlane<T>** getPlanes() const;
    7070
    71 #if HHI_VSO_SPEEDUP_A0033
    7271  Void getDataAndStrides( T**    pptData, Int*  piStrides );
    7372  Void getWidthAndHeight( Int*  piWidths, Int*  piHeights );
    74 #endif
    7573
    7674  UInt getNumberOfPlanes()  const;
  • trunk/source/Lib/TLibRenderer/TRenModel.cpp

    r124 r189  
    4242  m_iWidth             = -1;
    4343  m_iHeight            = -1;
    44 #if FIX_VSO_SETUP
    4544  m_iUsedHeight        = -1;
    46 #endif
    4745  m_iNumOfBaseViews    = -1;
    4846  m_iSampledWidth      = -1;
     
    437435{
    438436  AOT( iViewNum < 0 || iViewNum > m_iNumOfBaseViews );
    439 #if FIX_VSO_SETUP
    440437  AOF( pcPicYuvVideoData->getHeight() >= m_iUsedHeight + m_uiHorOff && pcPicYuvVideoData->getWidth() == m_iWidth );
    441438  AOF( pcPicYuvDepthData->getHeight() >= m_iUsedHeight + m_uiHorOff && pcPicYuvDepthData->getWidth() == m_iWidth );
    442 #else
    443   AOF( pcPicYuvVideoData->getHeight() <= m_iHeight + m_uiHorOff || pcPicYuvVideoData->getWidth() == m_iWidth );
    444   AOF( pcPicYuvDepthData->getHeight() <= m_iHeight + m_uiHorOff || pcPicYuvDepthData->getWidth() == m_iWidth );
    445 #endif
    446439
    447440  pcPicYuvVideoData->extendPicBorder();
    448441
    449 #if FIX_VSO_SETUP
    450442  TRenFilter::sampleHorUp   ( m_iShiftPrec, pcPicYuvVideoData->getLumaAddr() +  m_uiHorOff        * pcPicYuvVideoData->getStride () , pcPicYuvVideoData->getStride() , m_iWidth,      m_iUsedHeight,      m_aapiCurVideoPel[ iViewNum ][0], m_aaiCurVideoStrides[iViewNum][0] );
    451443  TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvVideoData->getCbAddr()   + (m_uiHorOff >> 1 ) * pcPicYuvVideoData->getCStride() , pcPicYuvVideoData->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiCurVideoPel[ iViewNum ][1], m_aaiCurVideoStrides[iViewNum][1] );
    452444  TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvVideoData->getCrAddr()   + (m_uiHorOff >> 1 ) * pcPicYuvVideoData->getCStride() , pcPicYuvVideoData->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiCurVideoPel[ iViewNum ][2], m_aaiCurVideoStrides[iViewNum][2] );
    453445  TRenFilter::copy          (               pcPicYuvDepthData->getLumaAddr() +  m_uiHorOff        * pcPicYuvDepthData->getStride () , pcPicYuvDepthData->getStride(),  m_iWidth,      m_iUsedHeight,      m_apiCurDepthPel [ iViewNum],     m_aiCurDepthStrides [iViewNum]    );
    454 #else
    455   TRenFilter::sampleHorUp   ( m_iShiftPrec, pcPicYuvVideoData->getLumaAddr() +  m_uiHorOff        * pcPicYuvVideoData->getStride () , pcPicYuvVideoData->getStride() , m_iWidth,      m_iHeight,      m_aapiCurVideoPel[ iViewNum ][0], m_aaiCurVideoStrides[iViewNum][0] );
    456   TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvVideoData->getCbAddr()   + (m_uiHorOff >> 1 ) * pcPicYuvVideoData->getCStride() , pcPicYuvVideoData->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiCurVideoPel[ iViewNum ][1], m_aaiCurVideoStrides[iViewNum][1] );
    457   TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvVideoData->getCrAddr()   + (m_uiHorOff >> 1 ) * pcPicYuvVideoData->getCStride() , pcPicYuvVideoData->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiCurVideoPel[ iViewNum ][2], m_aaiCurVideoStrides[iViewNum][2] );
    458   TRenFilter::copy          (               pcPicYuvDepthData->getLumaAddr() +  m_uiHorOff        * pcPicYuvDepthData->getStride () , pcPicYuvDepthData->getStride(),  m_iWidth,      m_iHeight,      m_apiCurDepthPel [ iViewNum],     m_aiCurDepthStrides [iViewNum]    );
    459 #endif
    460446
    461447  // Used for rendering reference pic from original video data
     
    465451  if ( m_abSetupVideoFromOrgForView[iViewNum] )
    466452  {
    467 #if FIX_VSO_SETUP
    468453    AOF( pcPicYuvOrgVideoData->getHeight() >= m_iUsedHeight + m_uiHorOff && pcPicYuvOrgVideoData->getWidth() == m_iWidth );
    469454    pcPicYuvOrgVideoData->extendPicBorder();
     
    471456    TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvOrgVideoData->getCbAddr()   + (m_uiHorOff >> 1 ) * pcPicYuvOrgVideoData->getCStride(), pcPicYuvOrgVideoData->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiOrgVideoPel[ iViewNum ][1], m_aaiOrgVideoStrides[iViewNum][1] );
    472457    TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvOrgVideoData->getCrAddr()   + (m_uiHorOff >> 1 ) * pcPicYuvOrgVideoData->getCStride(), pcPicYuvOrgVideoData->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiOrgVideoPel[ iViewNum ][2], m_aaiOrgVideoStrides[iViewNum][2] );
    473 #else
    474     AOF( pcPicYuvOrgVideoData->getHeight() <= m_iHeight + m_uiHorOff || pcPicYuvOrgVideoData->getWidth() == m_iWidth );
    475     pcPicYuvOrgVideoData->extendPicBorder();
    476     TRenFilter::sampleHorUp   ( m_iShiftPrec, pcPicYuvOrgVideoData->getLumaAddr() +  m_uiHorOff        * pcPicYuvOrgVideoData->getStride() , pcPicYuvOrgVideoData->getStride() , m_iWidth,      m_iHeight,      m_aapiOrgVideoPel[ iViewNum ][0], m_aaiOrgVideoStrides[iViewNum][0] );
    477     TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvOrgVideoData->getCbAddr()   + (m_uiHorOff >> 1 ) * pcPicYuvOrgVideoData->getCStride(), pcPicYuvOrgVideoData->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiOrgVideoPel[ iViewNum ][1], m_aaiOrgVideoStrides[iViewNum][1] );
    478     TRenFilter::sampleCUpHorUp( m_iShiftPrec, pcPicYuvOrgVideoData->getCrAddr()   + (m_uiHorOff >> 1 ) * pcPicYuvOrgVideoData->getCStride(), pcPicYuvOrgVideoData->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiOrgVideoPel[ iViewNum ][2], m_aaiOrgVideoStrides[iViewNum][2] );
    479 #endif
    480458  }
    481459
    482460  if ( m_abSetupDepthFromOrgForView[iViewNum] )
    483461  {
    484 #if FIX_VSO_SETUP
    485462    AOF( pcPicYuvOrgDepthData->getHeight() >= m_iUsedHeight + m_uiHorOff && pcPicYuvOrgDepthData->getWidth() == m_iWidth );
    486463    TRenFilter::copy          (               pcPicYuvOrgDepthData->getLumaAddr() +  m_uiHorOff        * pcPicYuvOrgDepthData->getStride() , pcPicYuvOrgDepthData->getStride(),  m_iWidth,     m_iUsedHeight,      m_apiOrgDepthPel [ iViewNum],     m_aiOrgDepthStrides [iViewNum]    );
    487 #else
    488     AOF( pcPicYuvOrgDepthData->getHeight() <= m_iHeight + m_uiHorOff || pcPicYuvOrgDepthData->getWidth() == m_iWidth );
    489     TRenFilter::copy          (               pcPicYuvOrgDepthData->getLumaAddr() +  m_uiHorOff        * pcPicYuvOrgDepthData->getStride() , pcPicYuvOrgDepthData->getStride(),  m_iWidth,     m_iHeight,      m_apiOrgDepthPel [ iViewNum],     m_aiOrgDepthStrides [iViewNum]    );
    490 #endif
    491464  }
    492465}
     
    497470  AOT( iModelNum < 0 || iModelNum > m_iNumOfRenModels );
    498471
    499 #if FIX_VSO_SETUP
    500472  m_apcRenModels[iModelNum]->setupPart( m_uiHorOff, m_iUsedHeight );
    501 #endif
    502473
    503474  // Switch model  to original data for setup if given to render reference
     
    520491  }
    521492
    522 #if FIX_VSO_SETUP
    523493  m_apcRenModels[iModelNum]->setup     ( pcPicYuvRefView, ppiShiftLutLeft, ppiBaseShiftLutLeft, ppiShiftLutRight, ppiBaseShiftLutRight, iDistToLeft, false );
    524 #else
    525   m_apcRenModels[iModelNum]->setup     ( pcPicYuvRefView, ppiShiftLutLeft, ppiBaseShiftLutLeft, ppiShiftLutRight, ppiBaseShiftLutRight, iDistToLeft, false, m_uiHorOff );
    526 #endif
    527494
    528495  // Setup to Org
     
    545512
    546513    // setup keeping reference rendered from original data
    547 #if FIX_VSO_SETUP
    548514    m_apcRenModels[iModelNum]->setup     ( pcPicYuvRefView, ppiShiftLutLeft, ppiBaseShiftLutLeft, ppiShiftLutRight, ppiBaseShiftLutRight, iDistToLeft, true );
    549 #else
    550     m_apcRenModels[iModelNum]->setup     ( pcPicYuvRefView, ppiShiftLutLeft, ppiBaseShiftLutLeft, ppiShiftLutRight, ppiBaseShiftLutRight, iDistToLeft, true, m_uiHorOff);
    551 #endif
    552515  }
    553516}
     
    579542
    580543
    581 #if FIX_VSO_SETUP
    582544Void
    583545TRenModel::setupPart ( UInt uiHorOff, Int iUsedHeight )
     
    587549  m_iUsedHeight = iUsedHeight;
    588550}
    589 #else
    590 Void
    591 TRenModel::setHorOffset     ( UInt uiHorOff )
    592 {
    593   m_uiHorOff = uiHorOff;
    594 }
    595 #endif
    596551
    597552#if LGE_VSO_EARLY_SKIP_A0093
     
    606561
    607562  AOT( iWidth  + iStartPosX > m_iWidth  );
    608 #if FIX_VSO_SETUP
    609563  AOT( iHeight + iStartPosY > m_iUsedHeight );
    610 #else
    611   AOT( iHeight + iStartPosY > m_iHeight );
    612 #endif
    613564
    614565  AOT( iStartPosX < 0);
     
    644595
    645596  iWidth  = min(iWidth , m_iWidth  - iStartPosX );
    646 #if FIX_VSO_SETUP
    647597  iHeight = min(iHeight, m_iUsedHeight - iStartPosY );
    648 #else
    649   iHeight = min(iHeight, m_iHeight - iStartPosY );
    650 #endif
    651598
    652599  AOT( iStartPosX < 0);
     
    684631TRenModel::getSynthVideo( Int iModelNum, Int iViewNum, TComPicYuv* pcPicYuv )
    685632{
    686 #if FIX_VSO_SETUP
    687633  m_apcRenModels[iModelNum]->getSynthVideo(iViewNum, pcPicYuv );
    688 #else
    689   m_apcRenModels[iModelNum]->getSynthVideo(iViewNum, pcPicYuv, m_uiHorOff );
    690 #endif
    691634}
    692635
     
    694637TRenModel::getSynthDepth( Int iModelNum, Int iViewNum, TComPicYuv* pcPicYuv )
    695638{
    696 #if HHI_VSO_SPEEDUP_A0033 && !FIX_VSO_SETUP
    697   m_apcRenModels[iModelNum]->getSynthDepth(iViewNum, pcPicYuv, m_uiHorOff );
    698 #else
    699639  m_apcRenModels[iModelNum]->getSynthDepth(iViewNum, pcPicYuv );
    700 #endif
    701640}
    702641
     
    705644{
    706645  TComPicYuv cPicYuvSynth;
    707 #if FIX_VSO_SETUP
    708646  cPicYuvSynth.create( m_iWidth, m_iUsedHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth );
    709 #else
    710   cPicYuvSynth.create( m_iWidth, m_iHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth );
    711 #endif
    712647
    713648  TComPicYuv cPicYuvTempRef;
    714 #if FIX_VSO_SETUP
    715649  cPicYuvTempRef.create( m_iWidth, m_iUsedHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth);
    716 #else
    717   cPicYuvTempRef.create( m_iWidth, m_iHeight, g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth);
    718 #endif
    719650
    720651  Int64 iSSEY = 0;
     
    724655  for (Int iCurModel = 0; iCurModel < m_iNumOfCurRenModels; iCurModel++)
    725656  {
    726 #if FIX_VSO_SETUP
    727657    m_apcCurRenModels[iCurModel]->getSynthVideo( m_aiCurPosInModels[iCurModel], &cPicYuvSynth );   
    728658    m_apcCurRenModels[iCurModel]->getRefVideo  ( m_aiCurPosInModels[iCurModel], &cPicYuvTempRef   );
     
    731661    iSSEU += TRenFilter::SSE( cPicYuvSynth.getCbAddr()  , cPicYuvSynth.getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, cPicYuvTempRef.getCbAddr()  , cPicYuvTempRef.getCStride());
    732662    iSSEV += TRenFilter::SSE( cPicYuvSynth.getCrAddr()  , cPicYuvSynth.getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, cPicYuvTempRef.getCrAddr()  , cPicYuvTempRef.getCStride());
    733 #else
    734     m_apcCurRenModels[iCurModel]->getSynthVideo( m_aiCurPosInModels[iCurModel], &cPicYuvSynth, 0 );
    735     TComPicYuv* pcPicYuvRef = &cPicYuvTempRef;
    736     m_apcCurRenModels[iCurModel]->getRefVideo  ( m_aiCurPosInModels[iCurModel], pcPicYuvRef  , 0 );
    737 
    738     iSSEY += TRenFilter::SSE( cPicYuvSynth.getLumaAddr(), cPicYuvSynth.getStride(),  m_iWidth,      m_iHeight     , pcPicYuvRef->getLumaAddr(), pcPicYuvRef->getStride() );
    739     iSSEU += TRenFilter::SSE( cPicYuvSynth.getCbAddr()  , cPicYuvSynth.getCStride(), m_iWidth >> 1, m_iHeight >> 1, pcPicYuvRef->getCbAddr()  , pcPicYuvRef->getCStride());
    740     iSSEV += TRenFilter::SSE( cPicYuvSynth.getCrAddr()  , cPicYuvSynth.getCStride(), m_iWidth >> 1, m_iHeight >> 1, pcPicYuvRef->getCrAddr()  , pcPicYuvRef->getCStride());
    741 #endif
    742663  }
    743664
  • trunk/source/Lib/TLibRenderer/TRenModel.h

    r124 r189  
    6262
    6363  // Set horizontal offset
    64 #if FIX_VSO_SETUP
    6564  Void  setupPart        ( UInt uiHorOff, Int iUsedHeight );
    66 #else
    67   Void  setHorOffset     ( UInt uiHorOff );
    68 #endif
    6965
    7066  // Set Mode
     
    104100  Int m_iSampledWidth;
    105101  Int m_iPad;
    106 #if FIX_VSO_SETUP
    107102  Int m_iUsedHeight;   // height currently used in buffer, whereas m_iHeight is the total height of the buffer
    108 #endif
    109103
    110104
    111105  Int m_iNumOfBaseViews;
    112106
    113 #if HHI_VSO_SPEEDUP_A0033                 
    114107  // Horizontal Offset in input data
    115108  UInt m_uiHorOff;         
    116 #endif
    117109
    118110  /// Current Error Type ///
  • trunk/source/Lib/TLibRenderer/TRenSingleModel.cpp

    r124 r189  
    4444  m_iHeight = -1;
    4545  m_iStride = -1;
    46 #if FIX_VSO_SETUP
    4746  m_iUsedHeight = -1;
    4847  m_iHorOffset  = -1;
    49 #endif
    5048  m_iMode   = -1;
    5149  m_iPad    = PICYUV_PAD;
     
    104102  if ( m_pcInputSamples [1] ) delete[] m_pcInputSamples [1];
    105103
    106 #if FIX_MEM_LEAKS
    107104  if ( m_pcOutputSamples    ) delete[] m_pcOutputSamples   ;
    108 #else
    109   if ( m_pcOutputSamples    ) delete   m_pcOutputSamples   ;
    110 #endif
    111 
    112 #if FIX_MEM_LEAKS
     105
    113106  if ( m_piInvZLUTLeft  ) delete[] m_piInvZLUTLeft ;
    114107  if ( m_piInvZLUTRight ) delete[] m_piInvZLUTRight;
     
    117110  if ( m_aapiRefVideoPel[1] ) delete[] ( m_aapiRefVideoPel[1] - ( m_aiRefVideoStrides[1] * m_iPad + m_iPad ) );
    118111  if ( m_aapiRefVideoPel[2] ) delete[] ( m_aapiRefVideoPel[2] - ( m_aiRefVideoStrides[2] * m_iPad + m_iPad ) );
    119 #endif
    120112}
    121113
     
    197189  Int iOffsetX = ( iViewPos == VIEWPOS_RIGHT ) ? 1 : 0;
    198190
    199 #if FIX_VSO_SETUP
    200191  for ( Int iPosY = 0; iPosY < m_iUsedHeight; iPosY++ )
    201 #else
    202   for ( Int iPosY = 0; iPosY < m_iHeight; iPosY++ )
    203 #endif
    204192  {
    205193    if ( iViewPos == VIEWPOS_RIGHT )
     
    245233
    246234}
    247 #if FIX_VSO_SETUP
    248235template <BlenMod iBM, Bool bBitInc> Void
    249236TRenSingleModelC<iBM,bBitInc>::setupPart ( UInt uiHorOffset,       Int iUsedHeight )
     
    254241  m_iHorOffset  = (Int) uiHorOffset;
    255242}
    256 #endif
    257243
    258244template <BlenMod iBM, Bool bBitInc> Void
    259 #if FIX_VSO_SETUP
    260245TRenSingleModelC<iBM,bBitInc>::setup( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight,  Int** ppiBaseShiftLutRight,  Int iDistToLeft, Bool bKeepReference )
    261 #else
    262 TRenSingleModelC<iBM,bBitInc>::setup( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight,  Int** ppiBaseShiftLutRight,  Int iDistToLeft, Bool bKeepReference, UInt uiHorOff )
    263 #endif
    264246{
    265247  AOT( !m_bUseOrgRef && pcOrgVideo );
     
    275257  if ( pcOrgVideo && !bKeepReference )
    276258  {
    277 #if FIX_VSO_SETUP
    278259    TRenFilter::copy(             pcOrgVideo->getLumaAddr() +  m_iHorOffset       * pcOrgVideo->getStride() , pcOrgVideo->getStride() , m_iWidth,      m_iUsedHeight,      m_aapiRefVideoPel[0], m_aiRefVideoStrides[0]);
    279260    TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCbAddr()   + (m_iHorOffset >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iUsedHeight >> 1, m_aapiRefVideoPel[1], m_aiRefVideoStrides[1]);
    280261    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
    282     TRenFilter::copy(             pcOrgVideo->getLumaAddr() +  uiHorOff       * pcOrgVideo->getStride() , pcOrgVideo->getStride() , m_iWidth,      m_iHeight,      m_aapiRefVideoPel[0], m_aiRefVideoStrides[0]);
    283     TRenFilter::sampleCUpHorUp(0, pcOrgVideo->getCbAddr()   + (uiHorOff >> 1) * pcOrgVideo->getCStride(), pcOrgVideo->getCStride(), m_iWidth >> 1, m_iHeight >> 1, m_aapiRefVideoPel[1], m_aiRefVideoStrides[1]);
    284     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
    286262    xSetStructRefView();
    287263  }
     
    290266  xResetStructError();
    291267  xInitSampleStructs();
    292 #if FIX_VSO_SETUP
    293268  switch ( m_iMode )
    294269  { 
     
    320295    AOT(true);
    321296  }
    322 #else
    323   switch ( m_iMode )
    324   { 
    325   case 0:   
    326 #if LGE_VSO_EARLY_SKIP_A0093
    327     xRenderL<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0],false );
    328 #else
    329     xRenderL<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0] );
    330 #endif   
    331     break;
    332   case 1:   
    333 #ifdef LGE_VSO_EARLY_SKIP_A0093
    334     xRenderR<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1],false);
    335 #else
    336     xRenderR<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1] );
    337 #endif
    338     break;
    339   case 2:
    340     TRenFilter::setupZLUT( true, 30, iDistToLeft, ppiBaseShiftLutLeft, ppiBaseShiftLutRight, m_iBlendZThres, m_iBlendDistWeight, m_piInvZLUTLeft, m_piInvZLUTRight );
    341 #ifdef LGE_VSO_EARLY_SKIP_A0093
    342     xRenderL<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0],false);
    343     xRenderR<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1],false);
    344 #else     
    345     xRenderL<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[0], m_apiBaseDepthPel[0] );
    346     xRenderR<true>( 0, 0, m_iWidth, m_iHeight, m_aiBaseDepthStrides[1], m_apiBaseDepthPel[1] );
    347 #endif
    348     break;
    349   default:
    350     AOT(true);
    351   }
    352 #endif
    353297
    354298  // Get Rendered View as Reference
     
    413357#endif 
    414358
    415 #if FIX_VSO_SETUP
    416359  for ( Int iPosY = 0; iPosY < m_iUsedHeight; iPosY++ )
    417 #else
    418   for ( Int iPosY = 0; iPosY < m_iHeight; iPosY++ )
    419 #endif
    420360  {
    421361    for ( Int iPosX = 0; iPosX < m_iWidth; iPosX++ )
     
    470410#endif
    471411
    472 #if FIX_VSO_SETUP
    473412  for ( Int iPosY = 0; iPosY < m_iUsedHeight; iPosY++ )
    474 #else
    475   for ( Int iPosY = 0; iPosY < m_iHeight; iPosY++ )
    476 #endif
    477413  {
    478414    for ( Int iPosX = 0; iPosX < m_iWidth; iPosX++ )
     
    617553}
    618554
    619 #if FIX_VSO_SETUP
    620555template <BlenMod iBM, Bool bBitInc> Void
    621556TRenSingleModelC<iBM,bBitInc>::getSynthVideo( Int iViewPos, TComPicYuv* pcPicYuv )
     
    648583#endif 
    649584}
    650 #else
    651 template <BlenMod iBM, Bool bBitInc> Void
    652 TRenSingleModelC<iBM,bBitInc>::getSynthVideo( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset )
    653 
    654   AOT( pcPicYuv->getWidth() != m_iWidth );
    655   AOT( pcPicYuv->getHeight() > m_iHeight + uiHorOffset );
    656 
    657 #if HHI_VSO_COLOR_PLANES
    658   Pel RenModelOutPels::* piText[3] = { NULL, NULL, NULL };
    659   xGetSampleStrTextPtrs(iViewPos, piText[0], piText[1], piText[2]);
    660 
    661   // Temp image for chroma down sampling
    662   PelImage cTempImage( m_iWidth, m_iHeight, 3, 0);
    663 
    664   Int  aiStrides[3];
    665   Pel* apiData  [3];
    666 
    667   cTempImage.getDataAndStrides( apiData, aiStrides );
    668 
    669   for (UInt uiCurPlane = 0; uiCurPlane < 3; uiCurPlane++ )
    670   {
    671     xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piText[uiCurPlane], apiData[uiCurPlane], aiStrides[uiCurPlane] , m_iWidth, m_iHeight);
    672   } 
    673   xCopy2PicYuv( apiData, aiStrides, pcPicYuv, uiHorOffset );
    674 #else
    675   Pel RenModelOutPels::* piY;
    676   xGetSampleStrTextPtrs(iViewPos, piY);
    677   xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piY, pcPicYuv->getLumaAddr() + uiHorOffset * pcPicYuv->getStride(), pcPicYuv->getStride(), m_iWidth, m_iHeight );
    678   pcPicYuv->setChromaTo( 128 << g_uiBitIncrement );   
    679 #endif 
    680 }
    681 #endif
    682 
    683 #if FIX_VSO_SETUP
     585
    684586template <BlenMod iBM, Bool bBitInc> Void
    685587TRenSingleModelC<iBM,bBitInc>::getSynthDepth( Int iViewPos, TComPicYuv* pcPicYuv )
     
    695597}
    696598
    697 #else
    698 template <BlenMod iBM, Bool bBitInc> Void
    699 TRenSingleModelC<iBM,bBitInc>::getSynthDepth( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOff )
    700 
    701   AOT( iViewPos != 0 && iViewPos != 1);
    702   AOT( pcPicYuv->getWidth()  != m_iWidth  );
    703   AOT( pcPicYuv->getHeight() > m_iHeight + uiHorOff );
    704 
    705   Pel RenModelOutPels::* piD = 0;
    706   xGetSampleStrDepthPtrs(iViewPos, piD);
    707   xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piD, pcPicYuv->getLumaAddr() + pcPicYuv->getStride() * uiHorOff, pcPicYuv->getStride(), m_iWidth, m_iHeight );
    708   pcPicYuv->setChromaTo( 128 << g_uiBitIncrement );   
    709 }
    710 #endif
    711 
    712 #if FIX_VSO_SETUP
     599
    713600template <BlenMod iBM, Bool bBitInc> Void
    714601TRenSingleModelC<iBM,bBitInc>::getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv )
     
    742629#endif 
    743630}
    744 #else
    745 template <BlenMod iBM, Bool bBitInc> Void
    746 TRenSingleModelC<iBM,bBitInc>::getRefVideo ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset )
    747 
    748   AOT( pcPicYuv->getWidth()  != m_iWidth  );
    749   AOT( pcPicYuv->getHeight() >  m_iHeight + uiHorOffset);
    750 
    751 #if HHI_VSO_COLOR_PLANES
    752   Pel RenModelOutPels::* piText[3];
    753   piText[0] = &RenModelOutPels::iYRef;
    754   piText[1] = &RenModelOutPels::iURef;
    755   piText[2] = &RenModelOutPels::iVRef;
    756 
    757   // Temp image for chroma down sampling
    758 
    759   PelImage cTempImage( m_iWidth, m_iHeight, 3, 0);
    760   Int  aiStrides[3];
    761   Pel* apiData  [3];
    762 
    763   cTempImage.getDataAndStrides( apiData, aiStrides );
    764 
    765   for (UInt uiCurPlane = 0; uiCurPlane < 3; uiCurPlane++ )
    766   {
    767     xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, piText[uiCurPlane], apiData[uiCurPlane], aiStrides[uiCurPlane] , m_iWidth, m_iHeight);
    768   }
    769 
    770   xCopy2PicYuv( apiData, aiStrides, pcPicYuv, uiHorOffset );
    771 #else
    772   xCopyFromSampleStruct( m_pcOutputSamples, m_iOutputSamplesStride, &RenModelOutPels::iYRef, pcPicYuv->getLumaAddr() *  pcPicYuv->getStride() + uiHorOffset, pcPicYuv->getStride(), m_iWidth, m_iHeight );
    773   pcPicYuv->setChromaTo( 128 << g_uiBitIncrement );   
    774 #endif 
    775 }
    776 #endif
    777631
    778632template <BlenMod iBM, Bool bBitInc> RMDist
     
    20181872}
    20191873
    2020 #if FIX_VSO_SETUP
    20211874template <BlenMod iBM, Bool bBitInc> Void
    20221875TRenSingleModelC<iBM,bBitInc>::xCopy2PicYuv( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget )
     
    20261879  TRenFilter::sampleDown2Tap13( ppiSrcVideoPel[2], piStrides[2], m_iWidth, m_iUsedHeight, rpcPicYuvTarget->getCrAddr  () + (m_iHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );
    20271880}
    2028 #else
    2029 template <BlenMod iBM, Bool bBitInc> Void
    2030 TRenSingleModelC<iBM,bBitInc>::xCopy2PicYuv( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget, UInt uiHorOffset )
    2031 {
    2032   TRenFilter::copy            ( ppiSrcVideoPel[0], piStrides[0], m_iWidth, m_iHeight, rpcPicYuvTarget->getLumaAddr() +  uiHorOffset       * rpcPicYuvTarget->getStride() , rpcPicYuvTarget->getStride () );
    2033   TRenFilter::sampleDown2Tap13( ppiSrcVideoPel[1], piStrides[1], m_iWidth, m_iHeight, rpcPicYuvTarget->getCbAddr  () + (uiHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );
    2034   TRenFilter::sampleDown2Tap13( ppiSrcVideoPel[2], piStrides[2], m_iWidth, m_iHeight, rpcPicYuvTarget->getCrAddr  () + (uiHorOffset >> 1) * rpcPicYuvTarget->getCStride(), rpcPicYuvTarget->getCStride() );
    2035 }
    2036 #endif
    20371881
    20381882template class TRenSingleModelC<BLEND_NONE ,true>;
  • trunk/source/Lib/TLibRenderer/TRenSingleModel.h

    r124 r189  
    6969public:
    7070
    71 #if FIX_VIRT_DESTRUCTOR
    7271  virtual ~TRenSingleModel() { } 
    73 #endif
    7472#if LGE_VSO_EARLY_SKIP_A0093
    7573  virtual Void   create    ( Int iMode, Int iWidth, Int iHeight, Int iShiftPrec, Int*** aaaiSubPelShiftTable, Int iHoleMargin, Bool bUseOrgRef, Int iBlendMode, Bool bEarlySkip ) = 0;
     
    8078  // Set Frame dependent data
    8179  virtual Void   setLRView ( Int iViewPos, Pel** apiCurVideoPel, Int* aiCurVideoStride, Pel* piCurDepthPel, Int iCurDepthStride ) = 0;
    82 #if FIX_VSO_SETUP
    8380  virtual Void   setupPart ( UInt uiHorOffset,       Int iUsedHeight ) = 0;
    8481  virtual Void   setup     ( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight,  Int** ppiBaseShiftLutRight,  Int iDistToLeft, Bool bKeepReference ) = 0;
    85 #else
    86   virtual Void   setup     ( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight,  Int** ppiBaseShiftLutRight,  Int iDistToLeft, Bool bKeepReference, UInt uiHorOffset ) = 0;
    87 #endif
    8882
    8983  // Set Data
     
    10397  virtual RMDist getDistVideo  ( Int iViewPos, Int iPlane, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData ) = 0;
    10498
    105 #if FIX_VSO_SETUP
    10699  virtual Void   getSynthVideo  ( Int iViewPos, TComPicYuv* pcPicYuv ) = 0; 
    107100  virtual Void   getSynthDepth  ( Int iViewPos, TComPicYuv* pcPicYuv ) = 0;
    108101  virtual Void   getRefVideo    ( Int iViewPos, TComPicYuv* pcPicYuv ) = 0;
    109 #else
    110   virtual Void   getSynthVideo  ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset  ) = 0; 
    111   virtual Void   getSynthDepth  ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset  ) = 0;
    112   virtual Void   getRefVideo    ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset  ) = 0;
    113 #endif
    114102};
    115103
     
    181169  // Set Frame dependent data
    182170  Void   setLRView ( Int iViewPos, Pel** apiCurVideoPel, Int* aiCurVideoStride, Pel* piCurDepthPel, Int iCurDepthStride );
    183 #if FIX_VSO_SETUP
    184171  Void   setupPart ( UInt uiHorOffset,       Int uiUsedHeight );
    185172  Void   setup     ( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight,  Int** ppiBaseShiftLutRight,  Int iDistToLeft, Bool bKeepReference );
    186 #else
    187   Void   setup     ( TComPicYuv* pcOrgVideo, Int** ppiShiftLutLeft, Int** ppiBaseShiftLutLeft, Int** ppiShiftLutRight,  Int** ppiBaseShiftLutRight,  Int iDistToLeft, Bool bKeepReference, UInt uiHorOffset );
    188 #endif
    189173
    190174#if LGE_VSO_EARLY_SKIP_A0093
     
    203187  RMDist getDistVideo  ( Int iViewPos, Int iPlane, Int iStartPosX, Int iStartPosY, Int iWidth, Int iHeight, Int iStride, Pel* piNewData );
    204188
    205 #if FIX_VSO_SETUP
    206189  Void   getSynthVideo  ( Int iViewPos, TComPicYuv* pcPicYuv ); 
    207190  Void   getSynthDepth  ( Int iViewPos, TComPicYuv* pcPicYuv );
    208191  Void   getRefVideo    ( Int iViewPos, TComPicYuv* pcPicYuv );
    209 #else
    210   Void   getSynthVideo  ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset ); 
    211   Void   getSynthDepth  ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset  );
    212   Void   getRefVideo    ( Int iViewPos, TComPicYuv* pcPicYuv, UInt uiHorOffset  );
    213 #endif
    214192
    215193private:
     
    293271  Void            xInitSampleStructs           ();
    294272  Void            xSetStructSynthViewAsRefView ();
    295 #if FIX_VSO_SETUP
    296273  Void            xCopy2PicYuv                ( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget );
    297 #else
    298   Void            xCopy2PicYuv                ( Pel** ppiSrcVideoPel, Int* piStrides, TComPicYuv* rpcPicYuvTarget, UInt uiHorOffset );
    299 #endif
    300274
    301275  template< typename S, typename T>
    302276  Void   xCopyFromSampleStruct ( S* ptSource , Int iSourceStride, T S::* ptSourceElement, T* ptTarget, Int iTargetStride, Int iWidth, Int iHeight )
    303277  {
    304 #if FIX_VSO_SETUP
    305278    AOT( iWidth != m_iWidth );
    306279    for (Int iPosY = 0; iPosY < iHeight; iPosY++)
    307 #else
    308     for (Int iPosY = 0; iPosY < m_iHeight; iPosY++)
    309 #endif
    310280    {
    311281      for (Int iPosX = 0; iPosX < m_iWidth; iPosX++)
     
    321291  Void   xCopyToSampleStruct ( T* ptSource , Int iSourceStride, S* ptTarget, Int iTargetStride, T S::* ptSourceElement, Int iWidth, Int iHeight )
    322292  {
    323 #if FIX_VSO_SETUP
    324293    AOT( iWidth != m_iWidth );
    325294    for (Int iPosY = 0; iPosY < iHeight; iPosY++)
    326 #else
    327     for (Int iPosY = 0; iPosY < m_iHeight; iPosY++)
    328 #endif
    329295    {
    330296      for (Int iPosX = 0; iPosX < m_iWidth; iPosX++)
     
    344310  Int   m_iStride;
    345311  Int   m_iPad;
    346 #if FIX_VSO_SETUP
    347312  Int   m_iUsedHeight;
    348313  Int   m_iHorOffset;
    349 #endif
    350314
    351315  Int   m_iSampledWidth;
    352 #if FIX_VSO_SETUP
    353 #else
    354   Int   m_iSampledHeight;
    355 #endif
    356316  Int   m_iSampledStride;
    357317
Note: See TracChangeset for help on using the changeset viewer.