Changeset 12 in SHVCSoftware


Ignore:
Timestamp:
28 Jan 2013, 21:16:05 (12 years ago)
Author:
seregin
Message:

BUGFIX_925: integrated fix for the ticket #925

Location:
trunk/source/Lib/TLibCommon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComDataCU.cpp

    r2 r12  
    28402840{
    28412841  UInt uiAbsPartAddr = m_uiAbsIdxInLCU + uiAbsPartIdx;
     2842#if !BUGFIX_925
    28422843  UInt uiIdx = 1;
     2844#endif
    28432845  bool abCandIsInter[ MRG_MAX_NUM_CANDS ];
    28442846  for( UInt ui = 0; ui < getSlice()->getMaxNumMergeCand(); ++ui )
     
    31923194    UInt uiPartIdxCenter;
    31933195    UInt uiCurLCUIdx = getAddr();
     3196#if BUGFIX_925
     3197    Int dir = 0;
     3198    UInt uiArrayAddr = iCount;
     3199#endif
    31943200    xDeriveCenterIdx( eCUMode, uiPUIdx, uiPartIdxCenter );
    31953201    bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_0, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx );
     
    31983204      bExistMV = xGetColMVP( REF_PIC_LIST_0, uiCurLCUIdx, uiPartIdxCenter,  cColMv, iRefIdx );
    31993205    }
     3206#if BUGFIX_925
     3207    if( bExistMV )
     3208    {
     3209      dir |= 1;
     3210      pcMvFieldNeighbours[ 2 * uiArrayAddr ].setMvField( cColMv, iRefIdx );
     3211    }
     3212
     3213    if( getSlice()->isInterB() )
     3214    {
     3215      bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_1, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx);
     3216      if( bExistMV == false )
     3217      {
     3218        bExistMV = xGetColMVP( REF_PIC_LIST_1, uiCurLCUIdx, uiPartIdxCenter, cColMv, iRefIdx );
     3219      }
     3220      if( bExistMV )
     3221      {
     3222        dir |= 2;
     3223        pcMvFieldNeighbours[ 2 * uiArrayAddr + 1 ].setMvField( cColMv, iRefIdx );
     3224      }
     3225    }
     3226
     3227    if( dir != 0 )
     3228    {
     3229      puhInterDirNeighbours[uiArrayAddr] = dir;
     3230      abCandIsInter[uiArrayAddr] = true;
     3231
     3232      if( mrgCandIdx == iCount )
     3233      {
     3234        return;
     3235      }
     3236      iCount++;
     3237    }
     3238#else
    32003239    if( bExistMV )
    32013240    {
     
    32333272    }
    32343273    uiIdx++;
     3274#endif
    32353275
    32363276  }
  • trunk/source/Lib/TLibCommon/TypeDef.h

    r11 r12  
    4747#define PHASE_DERIVATION_IN_INTEGER      1      ///< upsampling filters implementation using only integer arithmetic
    4848#define SET_SLICE_LAYER_ID               1      ///< set layerId to the slice
     49#define BUGFIX_925                       1      ///< bug fix ticket #925
    4950
    5051#define AVC_BASE                         0      ///< YUV BL reading for AVC base SVC
Note: See TracChangeset for help on using the changeset viewer.