Changeset 606 in 3DVCSoftware


Ignore:
Timestamp:
31 Aug 2013, 22:32:03 (11 years ago)
Author:
tech
Message:

Merged renderer fix.

Location:
branches/HTM-DEV-2.0-Renderer-Fix/source
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-2.0-Renderer-Fix/source/App/TAppEncoder/TAppEncTop.cpp

    r542 r606  
    768768  printRateSummary();
    769769
     770#if H_3D_REN_MAX_DEV_OUT
     771  Double dMaxDispDiff = m_cCameraData.getMaxShiftDeviation();
     772
     773  if ( !(dMaxDispDiff < 0) )
     774  { 
     775    printf("\n Max. possible shift error: %12.3f samples.\n", dMaxDispDiff );
     776  }
     777#endif
     778
    770779  return;
    771780}
  • branches/HTM-DEV-2.0-Renderer-Fix/source/App/TAppRenderer/TAppRendererTop.cpp

    r446 r606  
    480480    AOT(true);
    481481  }
     482
     483#if H_3D_REN_MAX_DEV_OUT
     484  Double dMaxDispDiff = m_cCameraData.getMaxShiftDeviation();
     485
     486  if ( !(dMaxDispDiff < 0) )
     487  { 
     488    printf("\n Max. possible shift error: %12.3f samples.\n", dMaxDispDiff );
     489  }
     490#endif
    482491}
    483492
  • branches/HTM-DEV-2.0-Renderer-Fix/source/Lib/TAppCommon/TAppComCamPara.cpp

    r542 r606  
    616616{
    617617  UInt uiFoundLine = -1;
     618#if H_3D_FIX_REN_WARNING
     619  if ( !xGetCameraDataRow( iView, uiFrame, uiFoundLine ) && xIsIn( m_aiSortedBaseViews, iView ))
     620#else 
    618621  if ( !xGetCameraDataRow( iView, uiFrame, uiFoundLine ) )
     622#endif
    619623  {
    620624    AOT( m_aadCameraParameters[ uiFoundLine ].size() < 6 );
     
    632636    Int  iDummy;
    633637
     638#if H_3D_FIX_REN_WARNING
     639    if( !xGetLeftRightView( iView, m_aiSortedBaseViews, iLeftView, iRightView, iDummy, iDummy ) ||
     640#else
    634641    if( !xGetLeftRightView( iView, m_aiViewsInCfgFile, iLeftView, iRightView, iDummy, iDummy ) ||
     642#endif
    635643         xGetCameraDataRow( iLeftView,  uiFrame, uiLeftViewLine  )                             ||
    636644         xGetCameraDataRow( iRightView, uiFrame, uiRightViewLine )
    637645      )
    638646    {
     647#if H_3D_FIX_REN_WARNING
     648      std::cerr << "No left or no right base view next to view " << (Double)iView / m_dViewNumPrec << " for Frame " << uiFrame << " given in CameraParameterFile" << std::endl;
     649#else
    639650      std::cerr << "No Left or no Right View next to View " << (Double)iView / m_dViewNumPrec << " for Frame " << uiFrame << " given in CameraParameterFile" << std::endl;
     651#endif
    640652      AOT(true);
    641653      exit( EXIT_FAILURE );
     
    892904
    893905        // maximum deviation
     906#if H_3D_REN_MAX_DEV_OUT
     907        m_dMaxShiftDeviation = std::max( m_dMaxShiftDeviation, fabs( Double( (Int) iShiftLuma   ) - dShiftLuma   ) / Double( 1 << m_iLog2Precision ) );       
     908#endif
    894909        dMaxDispDev     = std::max( dMaxDispDev,    fabs( Double( (Int) iTestScale   ) - dShiftLuma * Double( 1 << iLog2DivLuma ) ) / Double( 1 << iLog2DivLuma ) );
    895910        dMaxRndDispDvL  = std::max( dMaxRndDispDvL, fabs( Double( (Int) iShiftLuma   ) - dShiftLuma   ) );
     
    10261041  m_bCamParsCodedPrecSet      = false;
    10271042
     1043#if H_3D_REN_MAX_DEV_OUT
     1044  m_dMaxShiftDeviation        = -1;
     1045#endif
    10281046
    10291047}
     
    13341352      }
    13351353    }
     1354#if H_3D_FIX_REN_WARNING
     1355    Bool bIgnoreFirst = true;     
     1356    for( UInt uiERView = 0; uiERView < m_aiSynthViews.size() && !m_bSetupFromCoded; uiERView++ )
     1357    {
     1358      if ( xIsIn(m_aiViewsInCfgFile, m_aiSynthViews[ uiERView ] ) )
     1359      {
     1360        if ( bIgnoreFirst )
     1361        {
     1362          std::cout << "Ignoring CameraParameterFile entries for virtual view(s): " ;
     1363          //GT: Integer precision virtual view camera parameters are always interpolated from coded views camera parameters.
     1364          bIgnoreFirst = false;
     1365        }
     1366        std::cout << (Double)m_aiSynthViews[ uiERView ] / m_dViewNumPrec << " " ;
     1367      }
     1368    }
     1369    if ( !bIgnoreFirst )
     1370    {
     1371      std::cout << std::endl;
     1372    }
     1373#endif
    13361374
    13371375    Bool bInterpolateFirst = true;
     
    13521390        if ( bInterpolateFirst )
    13531391        {
     1392#if H_3D_FIX_REN_WARNING                       
     1393          std::cout << "Interpolating camera parameters      for virtual view(s): " ;
     1394#else
    13541395          std::cout << "Interpolating Camera Parameters for View(s) " ;
     1396#endif
    13551397            bInterpolateFirst = false;
    13561398        }         
     
    14561498}
    14571499
     1500#if H_3D_FIX_REN_WARNING
     1501Bool
     1502  TAppComCamPara::xIsIn( std::vector<Int>& rVec, Int iElem)
     1503{
     1504  Bool bFound = false;
     1505  for (Int idx = 0; idx < rVec.size() && !bFound; idx++)
     1506  {
     1507    bFound = bFound || rVec[idx] == iElem;
     1508  }
     1509  return bFound;
     1510}
     1511#endif
     1512
    14581513Int TAppComCamPara::getRelDistLeft( Int iSynthViewIdx, Int iLeftViewIdx, Int iRightViewIdx )
    14591514{
  • branches/HTM-DEV-2.0-Renderer-Fix/source/Lib/TLibCommon/TypeDef.h

    r543 r606  
    135135                                              // FIX_SDC_ENC_RD_WVSO_D0163
    136136                                              // MTK_SAMPLE_BASED_SDC_D0110
     137#define H_3D_FIX_REN                      1  // fix of erroneous inpainting for renderer
     138#define H_3D_FIX_REN_WARNING              1  // fix of warning related to camera parameter precision
     139#define H_3D_REN_MAX_DEV_OUT              0  // Output maximal possible shift deviation
    137140
    138141#endif
  • branches/HTM-DEV-2.0-Renderer-Fix/source/Lib/TLibRenderer/TRenTop.cpp

    r499 r606  
    10331033            for ( ; iInterPolPos <= xCeil (iShiftedPos ) -1 ; iInterPolPos++)
    10341034            {
     1035#if H_3D_FIX_REN
     1036              if ( ( iInterPolPos >= 0 ) && ( iInterPolPos < iOutputWidth ) )
     1037              {
     1038                if( pcFilledData[iInterPolPos] == REN_IS_HOLE )
     1039                {               
     1040                  Int iNextPos = std::min(iInputWidth-1,iPosX + iStep);
     1041                  Int iPosXBG  = ( std::abs( pcDepthData[iNextPos] - pcDepthData[iPosX] ) > 5  ) ? iPosX : iNextPos;
     1042                  for( UInt uiCurPlane = 0; uiCurPlane < uiNumberOfPlanes; uiCurPlane++)
     1043                  {
     1044                    apcOutputData[uiCurPlane][iInterPolPos]  = apcInputData[uiCurPlane][iPosXBG];
     1045                  }
     1046                }
     1047                else
     1048                {
     1049                  pcFilledData[iInterPolPos] = REN_IS_HOLE + 1;
     1050                }
     1051              }
     1052#else
    10351053              for( UInt uiCurPlane = 0; uiCurPlane < uiNumberOfPlanes; uiCurPlane++)
    10361054              {
     
    10401058                }
    10411059              }
     1060#endif
    10421061            }
    10431062          }
     
    12851304        else
    12861305        {
     1306#if H_3D_FIX_REN
     1307          pcAlphaData[iXPos] = pcFilledData[iXPos];
     1308#else
    12871309          pcAlphaData[iXPos] = REN_IS_FILLED;
     1310#endif
    12881311        }
    12891312      }
Note: See TracChangeset for help on using the changeset viewer.