Changeset 895 in 3DVCSoftware


Ignore:
Timestamp:
4 Apr 2014, 16:15:09 (10 years ago)
Author:
rwth
Message:
  • integration of H0057 and H0072
Location:
branches/HTM-10.2-dev2-RWTH/source/Lib
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-10.2-dev2-RWTH/source/Lib/TLibCommon/TComDataCU.cpp

    r888 r895  
    39403940      && !bARPFlag
    39413941#endif
     3942#if RWTH_H0057_DBBP_NO_SPU
     3943      && !bDBBPFlag
     3944#endif
    39423945      )
    39433946    {
     
    39633966      && !bARPFlag
    39643967#endif
     3968#if RWTH_H0057_DBBP_NO_SPU
     3969      && !bDBBPFlag
     3970#endif
    39653971      )
    39663972    {
     
    39863992      && !bARPFlag
    39873993#endif
     3994#if RWTH_H0057_DBBP_NO_SPU
     3995      && !bDBBPFlag
     3996#endif
    39883997      )
    39893998    {
     
    40064015#if H_3D_ARP
    40074016      && !bARPFlag
     4017#endif
     4018#if RWTH_H0057_DBBP_NO_SPU
     4019      && !bDBBPFlag
    40084020#endif
    40094021      )
     
    40294041#if H_3D_ARP
    40304042      && !bARPFlag
     4043#endif
     4044#if RWTH_H0057_DBBP_NO_SPU
     4045      && !bDBBPFlag
    40314046#endif
    40324047      )
     
    46894704#if H_3D_ARP
    46904705      !bARPFlag &&
     4706#endif
     4707#if RWTH_H0057_DBBP_NO_SPU
     4708      !bDBBPFlag &&
    46914709#endif
    46924710      xAddVspCand( mrgCandIdx, &cDisInfo, iCount, abCandIsInter, pcMvFieldNeighbours, puhInterDirNeighbours, vspFlag, iCount3DV, inheritedVSPDisInfo ) )
  • branches/HTM-10.2-dev2-RWTH/source/Lib/TLibCommon/TComDataCU.h

    r884 r895  
    7070  Bool        abMergeFlag[2];       // for two segments
    7171  UChar       auhMergeIndex[2];     // for two segments
     72#if !RWTH_H0057_DBBP_NO_SPU
    7273  Char        ahVSPFlag[2];         // for two segments
    7374  DisInfo     acDvInfo[2];          // for two segments
     75#endif
    7476 
    7577  PartSize    eVirtualPartSize;
  • branches/HTM-10.2-dev2-RWTH/source/Lib/TLibCommon/TComPrediction.cpp

    r888 r895  
    639639 
    640640  // start mapping process
     641#if !MTK_H0072_DBBP_AMP_REM
    641642  Bool bAMPAvail = uiSize > 8;
    642643  Int matchedPartSum[6][2] = {{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}}; // counter for each part size and boolean option
    643644  PartSize virtualPartSizes[6] = { SIZE_Nx2N, SIZE_2NxN, SIZE_2NxnU, SIZE_2NxnD, SIZE_nLx2N, SIZE_nRx2N };
     645#else
     646  Int matchedPartSum[2][2] = {{0,0},{0,0}}; // counter for each part size and boolean option
     647  PartSize virtualPartSizes[2] = { SIZE_Nx2N, SIZE_2NxN};
     648#endif
    644649 
    645650  UInt uiHalfSize = uiSize>>1;
     651#if !MTK_H0072_DBBP_AMP_REM
    646652  UInt uiQuarterSize = uiSize>>2;
     653#endif
    647654 
    648655  for (Int y=0; y<uiSize; y+=iSubSample)
     
    677684      }
    678685     
     686#if !MTK_H0072_DBBP_AMP_REM
    679687      if( bAMPAvail )
    680688      {
     
    719727        }
    720728      }
     729#endif
    721730    }
    722731   
     
    728737 
    729738  Int iMaxMatchSum = 0;
    730   for(Int p=0; p<6; p++)  // loop over partition sizes
     739#if !MTK_H0072_DBBP_AMP_REM
     740  for(Int p=0; p<6; p++)  // loop over partition
     741#else
     742  for(Int p=0; p<2; p++)  // loop over partition
     743#endif
    731744  {
    732745    for( Int b=0; b<=1; b++ ) // loop over boolean options
  • branches/HTM-10.2-dev2-RWTH/source/Lib/TLibCommon/TypeDef.h

    r888 r895  
    295295#define DBBP_INVALID_SHORT                (-4)
    296296#define RWTH_DBBP_PACK_MODE               SIZE_2NxN
     297#define MTK_H0072_DBBP_AMP_REM                 1
     298#define RWTH_H0057_DBBP_NO_SPU                 1
    297299#endif
    298300
  • branches/HTM-10.2-dev2-RWTH/source/Lib/TLibDecoder/TDecCu.cpp

    r884 r895  
    782782    }
    783783   
     784    AOF( pcCU->getARPW(uiPartAddr) == 0 );
     785    AOF( pcCU->getICFlag(uiPartAddr) == false );
     786   
     787#if RWTH_H0057_DBBP_NO_SPU
     788    AOF( pcCU->getSPIVMPFlag(uiPartAddr) == false );
     789    AOF( pcCU->getVSPFlag(uiPartAddr) == 0 );
     790#else
    784791    pDBBPTmpData->ahVSPFlag[uiSegment] = pcCU->getVSPFlag( uiPartAddr );
    785792    pDBBPTmpData->acDvInfo[uiSegment] = pcCU->getDvInfo( uiPartAddr );
     793#endif
    786794  }
    787795 
     
    793801    pcCU->setInterDirSubParts( pDBBPTmpData->auhInterDir[uiSegment], 0, 0, uiDepth );
    794802   
     803#if !RWTH_H0057_DBBP_NO_SPU
    795804    pcCU->setVSPFlagSubParts( pDBBPTmpData->ahVSPFlag[uiSegment], 0, 0, uiDepth );
    796805    pcCU->setDvInfoSubParts( pDBBPTmpData->acDvInfo[uiSegment], 0, 0, uiDepth );
     806#endif
    797807   
    798808    for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ )
     
    816826    pcCU->setDBBPFlagSubParts(true, uiPartAddr, uiSegment, uiDepth);
    817827   
     828#if !RWTH_H0057_DBBP_NO_SPU
    818829    pcCU->setVSPFlagSubParts( pDBBPTmpData->ahVSPFlag[uiSegment], uiPartAddr, uiSegment, uiDepth );
    819830    pcCU->setDvInfoSubParts( pDBBPTmpData->acDvInfo[uiSegment], uiPartAddr, uiSegment, uiDepth );
     831#endif
    820832   
    821833    pcCU->setInterDirSubParts(pDBBPTmpData->auhInterDir[uiSegment], uiPartAddr, uiSegment, uiDepth); // interprets depth relative to LCU level
  • branches/HTM-10.2-dev2-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp

    r884 r895  
    161161     
    162162      pcCU->setPartSizeSubParts(eVirtualPartSize, uiAbsPartIdx, uiDepth);
     163     
     164#if RWTH_H0057_DBBP_NO_SPU
     165      // make sure that DBBP flag is set for both segments
     166      UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxCUDepth() - uiDepth ) << 1 ) ) >> 4;
     167      pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx, 0, uiDepth);
     168      pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx+uiPUOffset, 1, uiDepth);
     169#endif
    163170    }
    164171  }
  • branches/HTM-10.2-dev2-RWTH/source/Lib/TLibEncoder/TEncCu.cpp

    r884 r895  
    23832383    pDBBPTmpData->auhMergeIndex[uiSegment] = rpcTempCU->getMergeIndex(0);
    23842384   
     2385#if RWTH_H0057_DBBP_NO_SPU
     2386    AOF( rpcTempCU->getSPIVMPFlag(0) == false );
     2387    AOF( rpcTempCU->getVSPFlag(0) == 0 );
     2388#else
    23852389    pDBBPTmpData->ahVSPFlag[uiSegment] = rpcTempCU->getVSPFlag(0);
    23862390    pDBBPTmpData->acDvInfo[uiSegment] = rpcTempCU->getDvInfo(0);
     2391#endif
    23872392   
    23882393    for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ )
     
    24162421    rpcTempCU->setMergeIndexSubParts(pDBBPTmpData->auhMergeIndex[uiSegment], uiPartAddr, uiSegment, uhDepth);
    24172422   
     2423#if !RWTH_H0057_DBBP_NO_SPU
    24182424    rpcTempCU->setVSPFlagSubParts(pDBBPTmpData->ahVSPFlag[uiSegment], uiPartAddr, uiSegment, uhDepth);
    24192425    rpcTempCU->setDvInfoSubParts(pDBBPTmpData->acDvInfo[uiSegment], uiPartAddr, uiSegment, uhDepth);
     2426#endif
    24202427   
    24212428    for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ )
  • branches/HTM-10.2-dev2-RWTH/source/Lib/TLibEncoder/TEncSearch.cpp

    r884 r895  
    36663666      pcCU->setInterDirSubParts(pDBBPTmpData->auhInterDir[0], 0, 0, pcCU->getDepth(0)); // interprets depth relative to LCU level
    36673667     
     3668#if !RWTH_H0057_DBBP_NO_SPU
    36683669      pcCU->setVSPFlagSubParts(pDBBPTmpData->ahVSPFlag[0], 0, 0, pcCU->getDepth(0));
    36693670      pcCU->setDvInfoSubParts(pDBBPTmpData->acDvInfo[0], 0, 0, pcCU->getDepth(0));
     3671#endif
    36703672     
    36713673      for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ )
Note: See TracChangeset for help on using the changeset viewer.