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

Integration of JCT3V-E0172. The MACRO is "MTK_RVS_BUGFIX_E0172".

By Na Zhang (na.zhang@…)

Location:
branches/HTM-DEV-2.0-dev1-Mediatek/source/Lib/TLibEncoder
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-2.0-dev1-Mediatek/source/Lib/TLibEncoder/TEncCu.cpp

    r541 r566  
    16151615  Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    16161616  memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     1617#if MTK_VSP_FIX_E0172
     1618  Int vspDir[MRG_MAX_NUM_CANDS_MEM];
     1619  memset(vspDir, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     1620  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,vspDir, numValidMergeCand );
     1621#else
    16171622  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, numValidMergeCand );
     1623#endif
    16181624#else
    16191625  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );
     
    16831689#if H_3D_VSP
    16841690          rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth );
     1691#if MTK_VSP_FIX_E0172
     1692          rpcTempCU->setVSPDirSubParts( vspDir[uiMergeCand], 0, 0, uhDepth );
     1693#endif
    16851694#endif
    16861695          rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level
  • branches/HTM-DEV-2.0-dev1-Mediatek/source/Lib/TLibEncoder/TEncGOP.cpp

    r542 r566  
    10781078#endif
    10791079#endif
     1080#if MTK_NBDV_TN_FIX_E0172
     1081      if(pcSlice->getViewIndex() && !pcSlice->getIsDepth() && !pcSlice->isIntra()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done.
     1082      {
     1083        pcPic->checkTemporalIVRef();
     1084      }
     1085#endif
    10801086    while(nextCUAddr<uiRealEndAddress) // determine slice boundaries
    10811087    {
  • branches/HTM-DEV-2.0-dev1-Mediatek/source/Lib/TLibEncoder/TEncSearch.cpp

    r537 r566  
    35503550#if H_3D_VSP
    35513551                                 , Int* vspFlag
     3552#if MTK_VSP_FIX_E0172
     3553                                 , Int* vspDir
     3554#endif
    35523555#endif
    35533556                                 , Int& numValidMergeCand
     
    35693572#if H_3D_VSP
    35703573                                   , vspFlag
     3574#if MTK_VSP_FIX_E0172
     3575                                   , vspDir
     3576#endif
    35713577#endif
    35723578                                   , numValidMergeCand
     
    35803586#if H_3D_VSP
    35813587                                 , vspFlag
     3588#if MTK_VSP_FIX_E0172
     3589                                 , vspDir
     3590#endif
    35823591#endif
    35833592                                 , numValidMergeCand
    35843593                                 );
    35853594  }
     3595#if MTK_VSP_FIX_E0172
     3596  xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours,vspFlag, numValidMergeCand );
     3597#else
    35863598  xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     3599#endif
    35873600
    35883601  ruiCost = MAX_UINT;
     
    36003613#if H_3D_VSP
    36013614      pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3615#if MTK_VSP_FIX_E0172
     3616      pcCU->setVSPDirSubParts( vspDir[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3617#endif
    36023618#endif
    36033619
     
    36293645 * \returns Void
    36303646 */
     3647#if MTK_VSP_FIX_E0172
     3648Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int* vspFlag, Int numValidMergeCand )
     3649#else
    36313650Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int numValidMergeCand )
     3651#endif
    36323652{
    36333653  if ( pcCU->isBipredRestriction(puIdx) )
     
    36353655    for( UInt mergeCand = 0; mergeCand < numValidMergeCand; ++mergeCand )
    36363656    {
     3657#if MTK_VSP_FIX_E0172
     3658      if ( (interDirNeighbours[mergeCand] == 3) && (vspFlag[mergeCand] == false) )
     3659#else
    36373660      if ( interDirNeighbours[mergeCand] == 3 )
     3661#endif
    36383662      {
    36393663        interDirNeighbours[mergeCand] = 1;
     
    37583782#if H_3D_VSP
    37593783    pcCU->setVSPFlagSubParts( 0, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr) );
     3784#if MTK_VSP_FIX_E0172
     3785    pcCU->setVSPDirSubParts( 0, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr) );
     3786#endif
    37603787#endif
    37613788   
     
    42504277      Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    42514278      memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     4279#if MTK_VSP_FIX_E0172
     4280      Int vspDir[MRG_MAX_NUM_CANDS_MEM];
     4281      memset(vspDir, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     4282#endif
    42524283#endif
    42534284
     
    42554286#if H_3D_VSP
    42564287                      , vspFlag
     4288#if MTK_VSP_FIX_E0172
     4289                      , vspDir
     4290#endif
    42574291#endif
    42584292                      , numValidMergeCand
     
    42654299#if H_3D_VSP
    42664300        pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4301#if MTK_VSP_FIX_E0172
     4302        pcCU->setVSPDirSubParts( vspDir[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4303#endif
    42674304#endif
    42684305        pcCU->setInterDirSubParts  ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     
    42874324#if H_3D_VSP
    42884325        pcCU->setVSPFlagSubParts ( 0,             uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4326#if MTK_VSP_FIX_E0172
     4327        pcCU->setVSPDirSubParts ( 0,             uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4328#endif
    42894329#endif
    42904330        {
  • branches/HTM-DEV-2.0-dev1-Mediatek/source/Lib/TLibEncoder/TEncSearch.h

    r531 r566  
    415415#if H_3D_VSP
    416416                                  , Int* vspFlag
     417#if MTK_VSP_FIX_E0172
     418                                  , Int* vspDir
     419#endif
    417420#endif
    418421                                  , Int& numValidMergeCand
     
    423426                                    TComMvField*    mvFieldNeighbours,
    424427                                    UChar*          interDirNeighbours,
     428#if MTK_VSP_FIX_E0172
     429                                    Int* vspFlag,
     430#endif
    425431                                    Int             numValidMergeCand );
    426432
Note: See TracChangeset for help on using the changeset viewer.