Changeset 81 in 3DVCSoftware for trunk/source/Lib/TLibEncoder


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

Bug fixes:

  • Residual Prediction
  • VPS
  • VSO
  • Renderer
Location:
trunk/source/Lib/TLibEncoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 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      {
Note: See TracChangeset for help on using the changeset viewer.