Ignore:
Timestamp:
12 Jul 2013, 17:57:35 (12 years ago)
Author:
tech
Message:
  • Fixed cfg files.
  • Fixed several memory leaks.
  • Fixed encoder/decoder mismatch and aligned order of vps syntax elements with draft text.
  • Added missing iv_mv_scaling flag.
Location:
branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComDataCU.cpp

    r531 r532  
    43814381  {
    43824382#if H_3D_TMVP
    4383      Int iCurrViewId    = m_pcSlice->getViewIndex ();
    4384      Int iCurrRefViewId = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewIndex ();
    4385      Int iColViewId     = pColCU->getSlice()->getViewIndex();
    4386      Int iColRefViewId  = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex();
    4387      iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
    4388      if ( iScale != 4096 )
    4389      {
    4390         rcMv = cColMv.scaleMv( iScale );
    4391      }
    4392      else
    4393      {
     4383    Int iCurrViewId    = m_pcSlice->getViewIndex ();
     4384    Int iCurrRefViewId = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewIndex ();
     4385    Int iColViewId     = pColCU->getSlice()->getViewIndex();
     4386    Int iColRefViewId  = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex();
     4387    iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
     4388    if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag() )
     4389    {
     4390      rcMv = cColMv.scaleMv( iScale );
     4391    }
     4392    else
     4393    {
    43944394#endif
    43954395       rcMv = cColMv;
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComPrediction.cpp

    r531 r532  
    21042104UInt TComPrediction::xPredWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt intraTabIdx )
    21052105{
    2106   TComPic*      pcPicTex = pcCU->getSlice()->getPicLists()->getPic( pcCU->getSlice()->getViewIndex(), false, pcCU->getSlice()->getPOC() );
     2106  TComPic*      pcPicTex = pcCU->getSlice()->getTexturePic();
    21072107  assert( pcPicTex != NULL );
    21082108  TComDataCU*   pcColTexCU = pcPicTex->getCU(pcCU->getAddr());
     
    21472147Void TComPrediction::xCopyTextureLumaBlock( TComDataCU* pcCU, UInt uiAbsPartIdx, Pel* piDestBlockY, UInt uiWidth, UInt uiHeight )
    21482148{
    2149   TComPicYuv* pcPicYuvRef = pcCU->getSlice()->getPicLists()->getPic( pcCU->getSlice()->getViewIndex(), false, pcCU->getSlice()->getPOC() )->getPicYuvRec();
     2149  TComPicYuv* pcPicYuvRef = pcCU->getSlice()->getTexturePic()->getPicYuvRec();
    21502150  assert( pcPicYuvRef != NULL );
    21512151  Int         iRefStride = pcPicYuvRef->getStride();
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComSlice.cpp

    r531 r532  
    7373, m_pcPPS                         ( NULL )
    7474, m_pcPic                         ( NULL )
    75 #if H_3D
    76 , m_picLists                      ( NULL )
    77 #endif
    7875, m_colFromL0Flag                 ( 1 )
    7976, m_colRefIdx                     ( 0 )
     
    973970
    974971  m_pcPic                = pSrc->m_pcPic;
    975 #if H_3D
    976   m_picLists             = pSrc->m_picLists;
    977 #endif
    978972  m_colFromL0Flag        = pSrc->m_colFromL0Flag;
    979973  m_colRefIdx            = pSrc->m_colRefIdx;
     
    15661560    }
    15671561#endif
     1562    m_ivMvScalingFlag = true;
    15681563#endif
    15691564
     
    15841579  }
    15851580#if H_3D_GEN
    1586   for( Int i = 0; i < MAX_NUM_LAYERS; i++ )  {
     1581  for( Int i = 0; i < MAX_NUM_LAYERS; i++ )
     1582  {
    15871583#if H_3D_IV_MERGE
    15881584    m_ivMvPredFlag         [ i ] = false;
     
    15941590    m_depthRefinementFlag  [ i ] = false;
    15951591#endif
    1596   }
     1592  } 
    15971593#endif
    15981594#endif
     
    16041600  if( m_hrdOpSetIdx      != NULL )     delete[] m_hrdOpSetIdx;
    16051601  if( m_cprmsPresentFlag != NULL )     delete[] m_cprmsPresentFlag;
     1602#if H_3D_DIM_DLT
     1603  for( Int i = 0; i < MAX_NUM_LAYERS; i++ )
     1604  {
     1605    if ( m_iDepthValue2Idx[i] != 0 )
     1606    {
     1607       xFree( m_iDepthValue2Idx[i] );
     1608       m_iDepthValue2Idx[i] = 0;
     1609    }
     1610
     1611    if ( m_iIdx2DepthValue[i] != 0 )
     1612    {
     1613      xFree( m_iIdx2DepthValue[i] );
     1614      m_iIdx2DepthValue[i] = 0;
     1615
     1616    }
     1617  }
     1618#endif
    16061619}
    16071620
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComSlice.h

    r531 r532  
    546546  Int*        m_iIdx2DepthValue          [MAX_NUM_LAYERS   ];
    547547#endif
     548#if H_3D_TMVP
     549  Bool        m_ivMvScalingFlag;
     550#endif
    548551
    549552#endif
     
    696699#endif
    697700
    698 #endif
    699 
     701#if H_3D_TMVP
     702  Bool    getIvMvScalingFlag   (  )                       { return m_ivMvScalingFlag; }
     703  Void    setIvMvScalingFlag   ( Bool b )                 { m_ivMvScalingFlag = b;    } 
     704#endif
     705#endif
    700706
    701707  Void    setVpsProfilePresentFlag( Int layerSet, Bool val )               { m_vpsProfilePresentFlag[layerSet] = val;  }
     
    14781484  TComPPS*    m_pcPPS;
    14791485  TComPic*    m_pcPic;
    1480 #if H_3D
    1481   TComPicLists* m_picLists;
    1482 #endif
    14831486#if ADAPTIVE_QP_SELECTION
    14841487  TComTrQuant* m_pcTrQuant;
     
    16161619  Int       getNumRefIdx        ( RefPicList e )                { return  m_aiNumRefIdx[e];             }
    16171620  TComPic*  getPic              ()                              { return  m_pcPic;                      }
    1618 #if H_3D
    1619   TComPicLists* getPicLists     ()                              { return m_picLists; }
    1620 #endif
    16211621  TComPic*  getRefPic           ( RefPicList e, Int iRefIdx)    { return  m_apcRefPicList[e][iRefIdx];  }
    16221622  Int       getRefPOC           ( RefPicList e, Int iRefIdx)    { return  m_aiRefPOCList[e][iRefIdx];   }
     
    16931693  Void      setNumRefIdx        ( RefPicList e, Int i )         { m_aiNumRefIdx[e]    = i;      }
    16941694  Void      setPic              ( TComPic* p )                  { m_pcPic             = p;      }
    1695 #if H_3D
    1696   Void      setPicLists         ( TComPicLists* p )             { m_picLists          = p;      }
    1697 #endif
    16981695  Void      setDepth            ( Int iDepth )                  { m_iDepth            = iDepth; }
    16991696 
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TypeDef.h

    r531 r532  
    7171#if H_MV
    7272#define H_MV_FIX1071                      1  //< Fix on Fix1071, same as in HTM 11
    73 #define H_MV_ENC_DEC_TRAC                 0  //< CU/PU level tracking
     73#define H_MV_FIX_VPS_POINTER              1  //< Changed m_vps in TEncCfg to pointer to avoid mismatches between layers and avoid erroneous shallow copy.
     74#define H_MV_ENC_DEC_TRAC                 1  //< CU/PU level tracking
    7475#endif
    7576
Note: See TracChangeset for help on using the changeset viewer.