Changeset 1038 in 3DVCSoftware


Ignore:
Timestamp:
1 Aug 2014, 10:01:00 (10 years ago)
Author:
sharpjp-htm
Message:

Fix tickets #75 Bi-pred restriction bug in VSP
Fix tickets #79 Unused VSP code

Location:
branches/HTM-11.2-dev0/source/Lib
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-11.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp

    r1037 r1038  
    39213921Void TComDataCU::getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours
    39223922#endif
    3923 #if H_3D_VSP
     3923#if H_3D_VSP && !FIX_TICKET_79
    39243924      , InheritedVSPDisInfo*  inheritedVSPDisInfo
    39253925#endif
     
    39513951  //////////////////////////////////
    39523952  DisInfo cDisInfo = getDvInfo(uiAbsPartIdx);
     3953#if !FIX_TICKET_79
    39533954  for(Int i = 0; i < MRG_MAX_NUM_CANDS_MEM; i++)
    39543955  {
    39553956    inheritedVSPDisInfo[i].m_acDvInfo = cDisInfo;   // To prevent run-time error, this code must be executed always for merging process.
    39563957  }
     3958#endif
    39573959  m_cDefaultDisInfo = cDisInfo;
    39583960
  • branches/HTM-11.2-dev0/source/Lib/TLibCommon/TComDataCU.h

    r1034 r1038  
    670670  Void          getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours
    671671#endif
    672 #if H_3D_VSP
     672#if H_3D_VSP && !FIX_TICKET_79
    673673                                            , InheritedVSPDisInfo*  inheritedVSPDisInfo
    674674#endif
  • branches/HTM-11.2-dev0/source/Lib/TLibCommon/TComMotionInfo.h

    r976 r1038  
    7979} IDVInfo;
    8080#endif
    81 #if H_3D_VSP
     81#if H_3D_VSP && !FIX_TICKET_79
    8282typedef struct _InheritedVSPDisCand
    8383{
  • branches/HTM-11.2-dev0/source/Lib/TLibCommon/TypeDef.h

    r1037 r1038  
    284284
    285285// Fixes
     286#define FIX_TICKET_79                     1    // Unused VSP code
     287#define FIX_TICKET_75                     1    // Bi-pred restriction bug in VSP
    286288#define FIX_TICKET_68                     1    // MV clipping bug in the sub-PU MPI default MV generation
    287289#define FIX_TICKET_71                     1    // IC parameters is meaningless in HTM when no training samples are available
  • branches/HTM-11.2-dev0/source/Lib/TLibDecoder/TDecCu.cpp

    r1029 r1038  
    420420    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    421421    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     422#if !FIX_TICKET_79
    422423    InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
     424#endif
    423425#if H_3D_SPIVMP
    424426    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     
    432434    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    433435    m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours
     436#if !FIX_TICKET_79
    434437      , inheritedVSPDisInfo
     438#endif
    435439#if H_3D_SPIVMP
    436440      , pcMvFieldSP, puhInterDirSP
     
    453457#endif
    454458#endif
    455 #if H_3D_VSP
     459#if H_3D_VSP && !FIX_TICKET_79
    456460    if(vspFlag[uiMergeIndex])
    457461    {
  • branches/HTM-11.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1029 r1038  
    311311          Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    312312          memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     313#if !FIX_TICKET_79
    313314          InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
     315#endif
    314316#if H_3D_SPIVMP
    315317          memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    318320          pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand);
    319321          pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours
     322#if !FIX_TICKET_79
    320323            , inheritedVSPDisInfo
     324#endif
    321325#if H_3D_SPIVMP
    322326            , pcMvFieldSP, puhInterDirSP
     
    330334          pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    331335
     336#if !FIX_TICKET_79
    332337          if(vspFlag[uiMergeIndex])
    333338          {
    334339            pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeIndex].m_acDvInfo, uiSubPartIdx, uiPartIdx, uiDepth);
    335340          }
     341#endif
    336342#else
    337343#if H_3D
     
    354360        Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    355361        memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     362#if !FIX_TICKET_79
    356363        InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
     364#endif
    357365#if H_3D_SPIVMP
    358366        memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    361369        pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    362370        pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours
     371#if !FIX_TICKET_79
    363372          , inheritedVSPDisInfo
     373#endif
    364374#if H_3D_SPIVMP
    365375          , pcMvFieldSP, puhInterDirSP
     
    372382          ,numValidMergeCand );
    373383        pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
     384#if !FIX_TICKET_79
    374385        if(vspFlag[uiMergeIndex])
    375386        {
    376387          pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeIndex].m_acDvInfo, uiSubPartIdx, uiPartIdx, uiDepth);
    377388        }
     389#endif
    378390#else
    379391#if H_3D
     
    473485#endif
    474486    }
    475 #if H_3D_VSP
     487#if H_3D_VSP && !FIX_TICKET_75
    476488    if ( (pcCU->getInterDir(uiSubPartIdx) == 3) && pcSubCU->isBipredRestriction(uiPartIdx) && (pcCU->getVSPFlag(uiSubPartIdx) == 0))
    477489#else
  • branches/HTM-11.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp

    r1030 r1038  
    18591859    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    18601860    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     1861#if !FIX_TICKET_79
    18611862    InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
     1863#endif
    18621864#if H_3D_SPIVMP
    18631865    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     
    18721874    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
    18731875    rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours
     1876#if !FIX_TICKET_79
    18741877      , inheritedVSPDisInfo
     1878#endif
    18751879#if H_3D_SPIVMP
    18761880      , pcMvFieldSP, puhInterDirSP
     
    18871891
    18881892#else
     1893#if FIX_TICKET_79
     1894    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, numValidMergeCand );
     1895#else
    18891896    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );
    18901897#endif
     1898#endif
     1899
    18911900
    18921901#endif
     
    19291938#if H_3D_VSP
    19301939          rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth );
     1940#if !FIX_TICKET_79
    19311941          rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth );
     1942#endif
    19321943#endif
    19331944#if H_3D_DDD
  • branches/HTM-11.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp

    r1019 r1038  
    40094009#if H_3D_VSP
    40104010                                 , Int* vspFlag
     4011#if !FIX_TICKET_79
    40114012                                 , InheritedVSPDisInfo*  inheritedVSPDisInfo
     4013#endif
    40124014#endif
    40134015#if H_3D_SPIVMP
     
    40694071      pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand);
    40704072      pcCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours
    4071 #if H_3D_VSP
     4073#if H_3D_VSP && !FIX_TICKET_79
    40724074                                        , inheritedVSPDisInfo
    40734075#endif
     
    40994101    pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand);
    41004102    pcCU->xGetInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours
    4101 #if H_3D_VSP
     4103#if H_3D_VSP && !FIX_TICKET_79
    41024104                                      , inheritedVSPDisInfo
    41034105#endif
     
    41224124#endif
    41234125  }
    4124 #if H_3D_VSP
     4126#if H_3D_VSP && !FIX_TICKET_75
    41254127  xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours,vspFlag, numValidMergeCand );
    41264128#else
     
    41544156#if H_3D_VSP
    41554157    pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     4158#if !FIX_TICKET_79
    41564159    pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     4160#endif
    41574161#endif
    41584162
     
    42544258 * \returns Void
    42554259 */
    4256 #if H_3D_VSP
     4260#if H_3D_VSP && !FIX_TICKET_75
    42574261Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int* vspFlag, Int numValidMergeCand )
    42584262#else
     
    42644268    for( UInt mergeCand = 0; mergeCand < numValidMergeCand; ++mergeCand )
    42654269    {
    4266 #if H_3D_VSP
     4270#if H_3D_VSP && !FIX_TICKET_75
    42674271      if ( (interDirNeighbours[mergeCand] == 3) && (vspFlag[mergeCand] == false) )
    42684272#else
     
    48904894      Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    48914895      memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     4896#if !FIX_TICKET_79
    48924897      InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
     4898#endif
    48934899      UInt uiAbsPartIdx = 0;
    48944900      Int iWidth = 0;
     
    49084914#if H_3D_VSP
    49094915                      , vspFlag
     4916#if !FIX_TICKET_79
    49104917                      , inheritedVSPDisInfo
     4918#endif
    49114919#endif
    49124920#if H_3D_SPIVMP
     
    49224930#if H_3D_VSP
    49234931        pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4932#if !FIX_TICKET_79
    49244933        pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4934#endif
    49254935#endif
    49264936#if H_3D_DDD
  • branches/HTM-11.2-dev0/source/Lib/TLibEncoder/TEncSearch.h

    r1019 r1038  
    429429#if H_3D_VSP
    430430                                  , Int* vspFlag
     431#if !FIX_TICKET_79
    431432                                  , InheritedVSPDisInfo*  inheritedVSPDisInfo
     433#endif
    432434#endif
    433435#if H_3D_SPIVMP
     
    441443                                    TComMvField*    mvFieldNeighbours,
    442444                                    UChar*          interDirNeighbours,
    443 #if H_3D_VSP
     445#if H_3D_VSP && !FIX_TICKET_75
    444446                                    Int* vspFlag,
    445447#endif
Note: See TracChangeset for help on using the changeset viewer.