Changeset 171 in 3DVCSoftware for branches


Ignore:
Timestamp:
9 Nov 2012, 10:29:21 (12 years ago)
Author:
intel-htm
Message:

Here is the integrated software of B0065 from Intel. The corresponding simulation results was sent to Gerhard. The results demonstrated that B0065 has no impact of CTC.

Location:
branches/HTM-4.1-dev1-Intel/source/Lib
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-4.1-dev1-Intel/source/Lib/TLibCommon/TypeDef.h

    r169 r171  
    131131
    132132#define HHI_MPI                           1   // motion parameter inheritance from texture picture for depth map coding
     133#if HHI_MPI
     134#define FIX_MPI_B0065                     1   //JCT3V-B0065, fix the MPI bug when RQT is off
     135#endif
    133136#define HHI_MPI_MERGE_POS                 0
    134137#define HHI_FULL_PEL_DEPTH_MAP_MV_ACC     1   // full-pel mv accuracy for depth maps
  • branches/HTM-4.1-dev1-Intel/source/Lib/TLibDecoder/TDecCu.cpp

    r100 r171  
    620620{
    621621#if HHI_MPI
     622#if FIX_MPI_B0065
     623  if( pcCU->getTextureModeDepth( 0 ) != -1 )
     624  {
     625    TComDataCU *pcTextureCU = pcCU->getSlice()->getTexturePic()->getCU( pcCU->getAddr() );
     626    if( uiDepth == pcTextureCU->getDepth(uiAbsPartIdx))
     627    {
     628      PartSize partSize = pcTextureCU->getPartitionSize(uiAbsPartIdx);
     629      pcCU->setPartSizeSubParts( partSize, 0, uiDepth );
     630    }
     631    else
     632    {
     633      pcCU->setPartSizeSubParts( SIZE_NxN, 0, uiDepth );
     634    }
     635  }
     636#else
    622637  if( pcCU->getTextureModeDepth( 0 ) != -1 )
    623638    pcCU->setPartSizeSubParts( SIZE_NxN, 0, uiDepth );
     639#endif
    624640#endif
    625641 
  • branches/HTM-4.1-dev1-Intel/source/Lib/TLibDecoder/TDecEntropy.cpp

    r154 r171  
    934934#endif // !UNIFIED_TRANSFORM_TREE
    935935  }
     936
     937#if FIX_MPI_B0065
     938  if( pcCU->getPredictionMode(uiAbsPartIdx) == MODE_INTER && pcCU->getMergeFlag( uiAbsPartIdx ) && pcCU->getMergeIndex( uiAbsPartIdx ) == 0 && pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N &&  pcCU->getTextureModeDepth( uiAbsPartIdx ) != -1  )
     939  {
     940    TComDataCU *pcTextureCU = pcCU->getSlice()->getTexturePic()->getCU( pcCU->getAddr() );
     941    if( uiDepth == pcTextureCU->getDepth(uiAbsPartIdx))
     942    {
     943      PartSize partSize = pcTextureCU->getPartitionSize(uiAbsPartIdx);
     944      pcCU->setPartSizeSubParts( partSize, uiAbsPartIdx, uiDepth );
     945    }
     946    else
     947    {
     948      pcCU->setPartSizeSubParts( SIZE_NxN, uiAbsPartIdx, uiDepth );
     949    }
     950  }
     951#endif
     952
    936953#if UNIFIED_TRANSFORM_TREE
    937954  xDecodeTransform( pcCU, uiLumaOffset, uiChromaOffset, uiAbsPartIdx, uiAbsPartIdx, uiDepth, uiWidth, uiHeight, 0, 0, temp, temp1, temp2, bCodeDQP );
     
    939956  xDecodeCoeff( pcCU, uiLumaOffset, uiChromaOffset, uiAbsPartIdx, uiDepth, uiWidth, uiHeight, 0, uiLumaTrMode, bCodeDQP );
    940957#endif // UNIFIED_TRANSFORM_TREE
     958
     959#if FIX_MPI_B0065
     960  if( pcCU->getPredictionMode(uiAbsPartIdx) == MODE_INTER && pcCU->getMergeFlag( uiAbsPartIdx ) && pcCU->getMergeIndex( uiAbsPartIdx ) == 0 && pcCU->getPartitionSize(uiAbsPartIdx) != SIZE_2Nx2N &&  pcCU->getTextureModeDepth( uiAbsPartIdx ) != -1 )
     961  {
     962    pcCU->setPartSizeSubParts( SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 
     963  }
     964#endif
    941965}
    942966
  • branches/HTM-4.1-dev1-Intel/source/Lib/TLibEncoder/TEncCu.cpp

    r126 r171  
    30593059    rpcTempCU->setTextureModeDepthSubParts( uhTextureModeDepth, 0, uhDepth );
    30603060    rpcTempCU->copyTextureMotionDataFrom( pcTextureCU, uhDepth, rpcTempCU->getZorderIdxInCU() );
     3061#if FIX_MPI_B0065
     3062    UInt uiAbsPartIdx = rpcTempCU->getZorderIdxInCU();
     3063    if( rpcTempCU->getDepth(0) > pcTextureCU->getDepth(uiAbsPartIdx))
     3064    {
     3065      rpcTempCU->setPartSizeSubParts( SIZE_NxN, 0, uhDepth );
     3066    }
     3067    else
     3068    {
     3069      PartSize partSize = pcTextureCU->getPartitionSize(uiAbsPartIdx);
     3070      rpcTempCU->setPartSizeSubParts( partSize, 0, uhDepth );
     3071    }
     3072#else
    30613073    rpcTempCU->setPartSizeSubParts( SIZE_NxN, 0, uhDepth );
     3074#endif
    30623075    for( UInt ui = 0; ui < rpcTempCU->getTotalNumPart(); ui++ )
    30633076    {
  • branches/HTM-4.1-dev1-Intel/source/Lib/TLibEncoder/TEncEntropy.cpp

    r77 r171  
    16551655#endif
    16561656  }
    1657  
     1657
     1658#if FIX_MPI_B0065
     1659  if( pcCU->getPredictionMode(uiAbsPartIdx) == MODE_INTER && pcCU->getMergeFlag( uiAbsPartIdx ) && pcCU->getMergeIndex( uiAbsPartIdx ) == 0 && pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N && pcCU->getTextureModeDepth( uiAbsPartIdx ) != -1 )
     1660  {
     1661    TComDataCU *pcTextureCU = pcCU->getSlice()->getTexturePic()->getCU( pcCU->getAddr() );
     1662    if( uiDepth == pcTextureCU->getDepth(uiAbsPartIdx))
     1663    {
     1664      PartSize partSize = pcTextureCU->getPartitionSize(uiAbsPartIdx);
     1665      pcCU->setPartSizeSubParts( partSize, uiAbsPartIdx, uiDepth );
     1666    }
     1667    else
     1668    {
     1669      pcCU->setPartSizeSubParts( SIZE_NxN, uiAbsPartIdx, uiDepth );
     1670    }
     1671  }
     1672#endif
     1673
    16581674#if UNIFIED_TRANSFORM_TREE
    16591675  UInt temp = 0;
     
    16641680  xEncodeCoeff( pcCU, uiLumaOffset, uiChromaOffset, uiAbsPartIdx, uiDepth, uiWidth, uiHeight, 0, uiLumaTrMode, bCodeDQP );
    16651681#endif // UNIFIED_TRANSFORM_TREE
     1682
     1683#if FIX_MPI_B0065
     1684  if( pcCU->getPredictionMode(uiAbsPartIdx) == MODE_INTER && pcCU->getMergeFlag( uiAbsPartIdx ) && pcCU->getMergeIndex( uiAbsPartIdx ) == 0 && pcCU->getPartitionSize(uiAbsPartIdx) != SIZE_2Nx2N &&  pcCU->getTextureModeDepth( uiAbsPartIdx ) != -1 )
     1685  {
     1686    pcCU->setPartSizeSubParts( SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 
     1687  }
     1688#endif
    16661689}
    16671690
Note: See TracChangeset for help on using the changeset viewer.