Changeset 564 in 3DVCSoftware for branches/HTM-DEV-2.0-dev2-MediaTek


Ignore:
Timestamp:
12 Aug 2013, 06:58:37 (11 years ago)
Author:
mediatek-htm
Message:

Integration of JCT3V-E0170 for motion data storage reduction.
The MACRO is "MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170".

By Yi-Wen Chen (yiwen.chen@…)

Location:
branches/HTM-DEV-2.0-dev2-MediaTek
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-2.0-dev2-MediaTek/source/App/TAppDecoder/TAppDecTop.cpp

    r542 r564  
    311311        TComPic* picLastCoded = m_ivPicLists.getPic( m_tDecTop[dI]->getLayerId(), pocLastPic );
    312312        assert( picLastCoded != NULL );       
     313#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     314        picLastCoded->compressMotion(1);
     315#else
    313316        picLastCoded->compressMotion();         
     317#endif
    314318      }
    315319    }
  • branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon/TComDataCU.cpp

    r559 r564  
    30833083      abCandIsInter[iCount] = true;     
    30843084      puhInterDirNeighbours[iCount] = pcTextureCU->getInterDir( uiPartIdxCenter );
     3085#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     3086      pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] );
     3087      if (pcMvFieldNeighbours[iCount<<1].getRefIdx()>=0)
     3088#else
    30853089      if( ( puhInterDirNeighbours[iCount] & 1 ) == 1 )
    3086       {
     3090#endif
     3091      {
     3092#if !MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
    30873093        pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] );
     3094#endif
    30883095        TComMv cMvPred = pcMvFieldNeighbours[iCount<<1].getMv();
    30893096
     
    31023109      if ( getSlice()->isInterB() )
    31033110      {
     3111#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     3112        pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
     3113        if (pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()>=0)
     3114#else
    31043115        if( ( puhInterDirNeighbours[iCount] & 2 ) == 2 )
     3116#endif
    31053117        {
     3118#if !MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
    31063119          pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
     3120#endif
    31073121          TComMv cMvPred = pcMvFieldNeighbours[(iCount<<1)+1].getMv();
    31083122#if H_3D_IC
     
    31153129        }
    31163130      }
     3131#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     3132      puhInterDirNeighbours[iCount] = (pcMvFieldNeighbours[iCount<<1].getRefIdx()>=0)?1:0;
     3133      puhInterDirNeighbours[iCount] += (pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()>=0)?2:0;
     3134#endif
    31173135#if H_3D_NBDV
    31183136      pcMvFieldNeighbours[iCount<<1    ].getMv().setIDVFlag (false);
     
    43814399                                        + ( iPartWidth/m_pcPic->getMinCUWidth()  )/2];
    43824400}
    4383 
     4401#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     4402Void TComDataCU::compressMV(int scale)
     4403#else
    43844404Void TComDataCU::compressMV()
    4385 {
     4405#endif
     4406{
     4407#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     4408  Int scaleFactor = (4 / scale ) * AMVP_DECIMATION_FACTOR / m_unitSize;
     4409#else
    43864410  Int scaleFactor = 4 * AMVP_DECIMATION_FACTOR / m_unitSize;
     4411#endif
    43874412  if (scaleFactor > 0)
    43884413  {
  • branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon/TComDataCU.h

    r559 r564  
    591591  Void          getMvPredAbove        ( TComMv&     rcMvPred )   { rcMvPred = m_cMvFieldB.getMv(); }
    592592  Void          getMvPredAboveRight   ( TComMv&     rcMvPred )   { rcMvPred = m_cMvFieldC.getMv(); }
    593  
     593#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     594  Void          compressMV            (int scale);
     595#else           
    594596  Void          compressMV            ();
    595  
     597#endif 
    596598  // -------------------------------------------------------------------------------------------------------------------
    597599  // utility functions for neighbouring information
  • branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon/TComPic.cpp

    r539 r564  
    146146  deleteSEIs(m_SEIs);
    147147}
    148 
     148#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     149Void TComPic::compressMotion(int scale)
     150#else
    149151Void TComPic::compressMotion()
     152#endif
    150153{
    151154  TComPicSym* pPicSym = getPicSym();
     
    153156  {
    154157    TComDataCU* pcCU = pPicSym->getCU(uiCUAddr);
     158#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     159    pcCU->compressMV(scale);
     160#else
    155161    pcCU->compressMV();
     162#endif
    156163  }
    157164}
  • branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon/TComPic.h

    r541 r564  
    179179  Void          setNumReorderPics(Int i, UInt tlayer) { m_numReorderPics[tlayer] = i;    }
    180180  Int           getNumReorderPics(UInt tlayer)        { return m_numReorderPics[tlayer]; }
    181 
     181#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     182  Void          compressMotion(int scale);
     183#else   
    182184  Void          compressMotion();
     185#endif
    183186  UInt          getCurrSliceIdx()            { return m_uiCurrSliceIdx;                }
    184187  Void          setCurrSliceIdx(UInt i)      { m_uiCurrSliceIdx = i;                   }
  • branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibCommon/TypeDef.h

    r563 r564  
    9999#define MTK_FAST_TEXTURE_ENCODING_E0173   1   // Fast merge mode decision and early CU determination for texture component of dependent view, JCT3V-E0173
    100100#define MTK_CLIPPING_ALIGN_IC_E0168       1   // To support simplify bi-prediction PU with identical motion checking, JCT3V-E0168
     101#define MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170            1   // Progressive MV Compression, JCT3V-E0170
    101102
    102103#if H_3D_NBDV
  • branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibDecoder/TDecGop.cpp

    r542 r564  
    214214    rpcPic->destroyNonDBFilterInfo();
    215215  }
    216 
     216#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     217  rpcPic->compressMotion(2);
     218#endif
    217219#if !H_3D
    218220  rpcPic->compressMotion();
  • branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibEncoder/TEncGOP.cpp

    r542 r564  
    17681768        pcPic->destroyNonDBFilterInfo();
    17691769      }
    1770 
     1770#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     1771      pcPic->compressMotion(2);
     1772#endif
    17711773#if !H_3D
    17721774      pcPic->compressMotion();
  • branches/HTM-DEV-2.0-dev2-MediaTek/source/Lib/TLibEncoder/TEncTop.cpp

    r542 r564  
    392392  if( picLastCoded )
    393393  {
     394#if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170
     395    picLastCoded->compressMotion(1);
     396#else
    394397    picLastCoded->compressMotion();
     398#endif
    395399  }
    396400#endif
Note: See TracChangeset for help on using the changeset viewer.