Changeset 1084 in 3DVCSoftware for trunk/source/Lib


Ignore:
Timestamp:
24 Oct 2014, 11:44:58 (10 years ago)
Author:
tech
Message:

Merged branches/HTM-12.1-dev0@1083.

Location:
trunk/source/Lib
Files:
45 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TAppCommon/program_options_lite.h

    r1039 r1084  
    378378        std::string cDescBuffer;
    379379
    380 #if !FIX_TICKET_62
    381         cNameBuffer       .resize( name.size() + 10 );
    382         cDescBuffer.resize( desc.size() + 10 );
    383 #endif
    384 
    385380        storage.resize(uiMaxNum);
    386381        for ( unsigned int uiK = 0; uiK < uiMaxNum; uiK++ )
    387382        {
    388 
    389 #if FIX_TICKET_62
    390383          cNameBuffer       .resize( name.size() + 10 );
    391384          cDescBuffer.resize( desc.size() + 10 );
    392 #endif
    393385
    394386          Bool duplicate = (uiK != 0);
  • trunk/source/Lib/TLibCommon/CommonDef.h

    r1067 r1084  
    6161#if H_MV
    6262#define NV_VERSION        "12.1"                ///< Current software version
    63 #define HM_VERSION        "14.0"                ///<
     63#define HM_VERSION        "15.0"                ///<
    6464#else
    6565#define NV_VERSION        "14.0"                 ///< Current software version
  • trunk/source/Lib/TLibCommon/ContextTables.h

    r1039 r1084  
    5151#define NUM_SPLIT_FLAG_CTX            3       ///< number of context models for split flag
    5252#define NUM_SKIP_FLAG_CTX             3       ///< number of context models for skip flag
    53 #if MTK_SINGLE_DEPTH_MODE_I0095
     53#if H_3D_SINGLE_DEPTH
    5454#define NUM_SINGLEDEPTH_FLAG_CTX                     1
    5555#define NUM_SINGLE_DEPTH_VALUE_DATA_CTX              1       
     
    153153  { CNU,  CNU,  CNU, },
    154154};
    155 #if MTK_SINGLE_DEPTH_MODE_I0095
     155#if H_3D_SINGLE_DEPTH
    156156static const UChar
    157157INIT_SINGLEDEPTH_FLAG[3][NUM_SINGLEDEPTH_FLAG_CTX] = 
     
    450450static const UChar INIT_DBBP_FLAG[3][DBBP_NUM_FLAG_CTX] =
    451451{
    452 #if SEC_DBBP_EXPLICIT_SIG_I0077
    453   { CNU },
    454   { CNU },
    455   { CNU },
    456 #else
    457   { 161 },
    458   { 161 },
    459   { 161 },
    460 #endif
    461 };
    462 #endif
    463 
    464 #endif
     452  { CNU },
     453  { CNU },
     454  { CNU },
     455};
     456#endif
     457
     458#endif
  • trunk/source/Lib/TLibCommon/SEI.h

    r964 r1084  
    161161  UInt m_bpSeqParameterSetId;
    162162  Bool m_rapCpbParamsPresentFlag;
    163   Bool m_cpbDelayOffset;
    164   Bool m_dpbDelayOffset;
     163  UInt m_cpbDelayOffset;
     164  UInt m_dpbDelayOffset;
    165165  UInt m_initialCpbRemovalDelay         [MAX_CPB_CNT][2];
    166166  UInt m_initialCpbRemovalDelayOffset   [MAX_CPB_CNT][2];
  • trunk/source/Lib/TLibCommon/TComDataCU.cpp

    r1066 r1084  
    6060 
    6161  m_skipFlag           = NULL;
    62 #if MTK_SINGLE_DEPTH_MODE_I0095
     62#if H_3D_SINGLE_DEPTH
    6363  m_singleDepthFlag     = NULL;
    6464  m_apSingleDepthValue  = NULL;
     
    185185
    186186    m_skipFlag           = new Bool[ uiNumPartition ];
    187 #if MTK_SINGLE_DEPTH_MODE_I0095
     187#if H_3D_SINGLE_DEPTH
    188188    m_singleDepthFlag     = new Bool[ uiNumPartition ];
    189189    m_apSingleDepthValue  = (Pel*)xMalloc(Pel, uiNumPartition);
     
    335335
    336336    if ( m_skipFlag           ) { delete[] m_skipFlag;          m_skipFlag          = NULL; }
    337 #if MTK_SINGLE_DEPTH_MODE_I0095
     337#if H_3D_SINGLE_DEPTH
    338338    if ( m_singleDepthFlag    ) { delete[] m_singleDepthFlag;   m_singleDepthFlag     = NULL; }
    339339    if ( m_apSingleDepthValue ) { xFree(m_apSingleDepthValue);  m_apSingleDepthValue  = NULL; }
     
    503503    TComDataCU * pcFrom = pcPic->getCU(getAddr());
    504504    m_skipFlag[ui]   = pcFrom->getSkipFlag(ui);
    505 #if MTK_SINGLE_DEPTH_MODE_I0095
     505#if H_3D_SINGLE_DEPTH
    506506    m_singleDepthFlag[ui]    = pcFrom->getSingleDepthFlag(ui);
    507507    m_apSingleDepthValue[ui] = pcFrom->getSingleDepthValue(ui);
     
    563563  {
    564564    memset( m_skipFlag          + firstElement, false,                    numElements * sizeof( *m_skipFlag ) );
    565 #if MTK_SINGLE_DEPTH_MODE_I0095
     565#if H_3D_SINGLE_DEPTH
    566566    memset( m_singleDepthFlag     + firstElement, false,                  numElements * sizeof( *m_singleDepthFlag ) );
    567567    memset( m_apSingleDepthValue  + firstElement,     0,                  numElements * sizeof( *m_apSingleDepthValue ) );
     
    754754      m_puhTransformSkip[2][ui] = 0;
    755755      m_skipFlag[ui]   = false;
    756 #if MTK_SINGLE_DEPTH_MODE_I0095
     756#if H_3D_SINGLE_DEPTH
    757757      m_singleDepthFlag[ui]     = false;
    758758      m_apSingleDepthValue[ui]  = 0;
     
    933933  {
    934934    m_skipFlag[ui]   = false;
    935 #if MTK_SINGLE_DEPTH_MODE_I0095
     935#if H_3D_SINGLE_DEPTH
    936936    m_singleDepthFlag[ui]   = false;
    937937    m_apSingleDepthValue[ui]= 0;
     
    958958      m_puhTransformSkip[2][ui] = pcCU->getTransformSkip(uiPartOffset+ui,TEXT_CHROMA_V);
    959959      m_skipFlag[ui]   = pcCU->getSkipFlag(uiPartOffset+ui);
    960 #if MTK_SINGLE_DEPTH_MODE_I0095
     960#if H_3D_SINGLE_DEPTH
    961961      m_singleDepthFlag[ui]    = pcCU->getSingleDepthFlag(uiPartOffset+ui);
    962962      m_apSingleDepthValue[ui] = pcCU->getSingleDepthValue(uiPartOffset+ui);
     
    11111111 
    11121112  m_skipFlag=pcCU->getSkipFlag()          + uiPart;
    1113 #if MTK_SINGLE_DEPTH_MODE_I0095
     1113#if H_3D_SINGLE_DEPTH
    11141114  m_singleDepthFlag     = pcCU->getSingleDepthFlag()   + uiPart;
    11151115  m_apSingleDepthValue  = pcCU->getSingleDepthValue()  + uiPart;
     
    12521252 
    12531253  m_skipFlag           = pcCU->getSkipFlag ()             + uiAbsPartIdx;
    1254 #if MTK_SINGLE_DEPTH_MODE_I0095
     1254#if H_3D_SINGLE_DEPTH
    12551255  m_singleDepthFlag     = pcCU->getSingleDepthFlag ()             + uiAbsPartIdx;
    12561256  m_apSingleDepthValue  = pcCU->getSingleDepthValue ()            + uiAbsPartIdx;
     
    13311331  Int sizeInChar  = sizeof( Char ) * uiNumPartition;
    13321332  memcpy( m_skipFlag   + uiOffset, pcCU->getSkipFlag(),       sizeof( *m_skipFlag )   * uiNumPartition );
    1333 #if MTK_SINGLE_DEPTH_MODE_I0095
     1333#if H_3D_SINGLE_DEPTH
    13341334  memcpy( m_singleDepthFlag     + uiOffset, pcCU->getSingleDepthFlag(),       sizeof( *m_singleDepthFlag )   * uiNumPartition );
    13351335  memcpy( m_apSingleDepthValue  + uiOffset, pcCU->getSingleDepthValue(),      sizeof( *m_apSingleDepthValue ) * uiNumPartition);
     
    14551455
    14561456  memcpy( rpcCU->getSkipFlag() + m_uiAbsIdxInLCU, m_skipFlag, sizeof( *m_skipFlag ) * m_uiNumPartition );
    1457 #if MTK_SINGLE_DEPTH_MODE_I0095
     1457#if H_3D_SINGLE_DEPTH
    14581458  memcpy( rpcCU->getSingleDepthFlag()  + m_uiAbsIdxInLCU, m_singleDepthFlag,    sizeof( *m_singleDepthFlag ) * m_uiNumPartition );
    14591459  memcpy( rpcCU->getSingleDepthValue() + m_uiAbsIdxInLCU, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * m_uiNumPartition);
     
    15741574  Int sizeInChar  = sizeof( Char ) * uiQNumPart;
    15751575  memcpy( rpcCU->getSkipFlag()       + uiPartOffset, m_skipFlag,   sizeof( *m_skipFlag )   * uiQNumPart );
    1576 #if MTK_SINGLE_DEPTH_MODE_I0095
     1576#if H_3D_SINGLE_DEPTH
    15771577  memcpy( rpcCU->getSingleDepthFlag()  + uiPartOffset, m_singleDepthFlag,    sizeof( *m_singleDepthFlag )   * uiQNumPart );
    15781578  memcpy( rpcCU->getSingleDepthValue() + uiPartOffset, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * uiQNumPart);
     
    24972497  memset( m_skipFlag + absPartIdx, skip, m_pcPic->getNumPartInCU() >> ( 2 * depth ) );
    24982498}
    2499 #if MTK_SINGLE_DEPTH_MODE_I0095
     2499#if H_3D_SINGLE_DEPTH
    25002500Void TComDataCU::setSingleDepthFlagSubParts( Bool singleDepth, UInt absPartIdx, UInt depth )
    25012501{
     
    26772677  }
    26782678
    2679 #if HS_DMM_SIGNALLING_I0120
    26802679  if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) )
    2681 #else
    2682   if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) && !isDimDeltaDC( getLumaIntraDir( uiAbsPartIdx ) ) )
    2683 #endif
    26842680  {
    26852681    return true;
     
    26942690  // check prediction mode
    26952691  UInt uiLumaPredMode = getLumaIntraDir( uiAbsPartIdx ); 
    2696 #if HS_DMM_SIGNALLING_I0120
    26972692  if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX  ) )
    2698 #else
    2699   if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX && !isDimDeltaDC( uiLumaPredMode ) ) )
    2700 #endif
    27012693    return true;
    27022694 
     
    33733365  for(Int iLoop = 0; iLoop < 2; iLoop ++ )
    33743366  {
    3375 #if !SEC_SIMP_SHIFTED_DV_I0086
    3376     // IvDcShift (Derived from spatial Iv neighboring blocks)
    3377     if( iLoop == 1 )
    3378     {
    3379       Int iFirDispCand = -1;
    3380       TComMvField mvIvDcShift[2];
    3381       UChar dirIvDcShift;
    3382 
    3383       if (xGetPosFirstAvailDmvCand(MRG_IVSHIFT, iFirDispCand))
    3384       {
    3385         TComMv cMv;
    3386         cMv = m_mergCands[iFirDispCand].m_cMvField[0].getMv();
    3387         cMv.setHor(cMv.getHor()+4);
    3388         if(m_pcSlice->getVPS()->getViewSynthesisPredFlag(m_pcSlice->getLayerIdInVps()))
    3389         {
    3390           cMv.setVer(0);
    3391         }
    3392 #if !(NTT_BUG_FIX_TK54)
    3393         clipMv( cMv );
    3394 #endif
    3395 
    3396         dirIvDcShift = m_mergCands[iFirDispCand].m_uDir;
    3397         mvIvDcShift[0].setMvField(cMv, m_mergCands[iFirDispCand].m_cMvField[0].getRefIdx() );
    3398         mvIvDcShift[1].setMvField(m_mergCands[iFirDispCand].m_cMvField[1].getMv(), m_mergCands[iFirDispCand].m_cMvField[1].getRefIdx() );
    3399         m_mergCands[MRG_IVSHIFT].setCand(mvIvDcShift, dirIvDcShift, false, false);
    3400        
    3401         if( mrgCandIdx == iCount )
    3402         {
    3403           return true;
    3404         }
    3405         iCount++;
    3406         break;
    3407       }
    3408     }
    3409 #endif
    3410 
    34113367    /// iLoop = 0 --> IvMCShift
    34123368    /// iLoop = 1 --> IvDCShift  (Derived from IvDC)
     
    34553411}
    34563412
    3457 #if !SEC_SIMP_SHIFTED_DV_I0086
    3458 inline Bool TComDataCU::xGetPosFirstAvailDmvCand(Int iCount, Int& posFirstAvailDmvCand )
    3459 {
    3460   for ( Int currListPos = 0; currListPos < iCount; currListPos++ )
    3461   {
    3462     if ( !m_mergCands[currListPos].m_bAvailable || ( currListPos == MRG_IVMC ) || ( currListPos == MRG_IVDC ) || ( m_mergCands[currListPos].m_iVspFlag != 0 ))
    3463     {
    3464       continue;
    3465     }
    3466     else if((m_mergCands[currListPos].m_bAvailable) && (m_mergCands[currListPos].m_cMvField[0].getRefIdx() != -1 ) && (getSlice()->getViewIndex() != getSlice()->getRefPic(RefPicList(0), m_mergCands[currListPos].m_cMvField[0].getRefIdx())->getViewIndex()))
    3467     {
    3468       posFirstAvailDmvCand = currListPos;
    3469       return true;
    3470     }
    3471   }
    3472   return false; 
    3473 }
    3474 #endif
    3475                                      
    34763413#endif
    34773414
     
    39213858Void TComDataCU::getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours
    39223859#endif
    3923 #if H_3D_VSP && !FIX_TICKET_79
    3924       , InheritedVSPDisInfo*  inheritedVSPDisInfo
    3925 #endif
    39263860#if H_3D_SPIVMP
    39273861      , TComMvField* pcMvFieldSP, UChar* puhInterDirSP
     
    39513885  //////////////////////////////////
    39523886  DisInfo cDisInfo = getDvInfo(uiAbsPartIdx);
    3953 #if !FIX_TICKET_79
    3954   for(Int i = 0; i < MRG_MAX_NUM_CANDS_MEM; i++)
    3955   {
    3956     inheritedVSPDisInfo[i].m_acDvInfo = cDisInfo;   // To prevent run-time error, this code must be executed always for merging process.
    3957   }
    3958 #endif
    39593887  m_cDefaultDisInfo = cDisInfo;
    39603888
     
    41774105    TComPic * pcTexPic = m_pcSlice->getTexturePic();
    41784106#if H_3D_FCO
    4179 #if LGE_FCO_I0116
     4107#if H_3D_FCO
    41804108    if (pcTexPic && pcTexPic->getReconMark())
    41814109#else
     
    42514179                TComMv cMv = cDefaultMvField.getMv() + cMvRounding;
    42524180                cMv >>= 2;
    4253 #if !FIX_TICKET_68
    4254                 clipMv( cMv );
    4255 #endif
    42564181                cMvFieldSaved[eCurrRefPicList].setMvField(cMv, iRefPicList) ;
    42574182                break;
     
    53255250#endif
    53265251
    5327 #if !FIX_TICKET_76
    5328 #if H_3D_VSP
    5329 inline Void TComDataCU::xInheritVSPDisInfo(TComDataCU* pcCURef, UInt uiAbsPartIdx, Int iCount, InheritedVSPDisInfo*  inheritedVSPDisInfo)
    5330 {
    5331   inheritedVSPDisInfo[iCount].m_acDvInfo.m_acNBDV   = pcCURef->getDvInfo(uiAbsPartIdx).m_acNBDV;
    5332   inheritedVSPDisInfo[iCount].m_acDvInfo.m_aVIdxCan = pcCURef->getDvInfo(uiAbsPartIdx).m_aVIdxCan;
    5333 }
    5334 #endif
    5335 #endif
    53365252/** Check whether the current PU and a spatial neighboring PU are in a same ME region.
    53375253 * \param xN, xN   location of the upper-left corner pixel of a neighboring PU
     
    59765892    Int iColRefViewId  = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex();
    59775893    iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
    5978 #if SEC_HLS_CLEANUP_I0100
     5894
    59795895    if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) )
    5980 #else
    5981     if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag() )
    5982 #endif
    59835896    {
    59845897      rcMv = cColMv.scaleMv( iScale );
     
    61646077  TComMv cMv;
    61656078#if MTK_I0093
    6166 #if H_3D_FIX_64BIT_SHIFT
    61676079  Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ];
    6168 #else
    6169   Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[  1 << ( getSlice()->getSPS()->getBitDepthY() - 1 ) ];
    6170 #endif
    61716080#else
    61726081  Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[ 128 ];
     
    61816090#endif
    61826091
    6183 #if MTK_SINGLE_DEPTH_MODE_I0095
     6092#if H_3D_SINGLE_DEPTH
    61846093Bool TComDataCU::getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index)
    61856094{
     
    67956704  if( getSlice()->getIsDepth() )
    67966705  {
    6797 #if MTK_I0099_VPS_EX2
    67986706    iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId());
    6799 #else
    6800     iSubPUSize = 1 << getSlice()->getVPS()->getSubPUMPILog2Size();
    6801 #endif
    68026707  }
    68036708
  • trunk/source/Lib/TLibCommon/TComDataCU.h

    r1039 r1084  
    110110  // -------------------------------------------------------------------------------------------------------------------
    111111  Bool*         m_skipFlag;           ///< array of skip flags
    112 #if MTK_SINGLE_DEPTH_MODE_I0095
     112#if H_3D_SINGLE_DEPTH
    113113  Bool*         m_singleDepthFlag;           ///< array of single depth flags
    114114  Pel*          m_apSingleDepthValue;
     
    250250#if H_3D_IV_MERGE
    251251  Bool          xAddIvMRGCand( Int mrgCandIdx, Int& iCount, Int*   ivCandDir, TComMv* ivCandMv, Int* ivCandRefIdx );
    252 #if! SEC_SIMP_SHIFTED_DV_I0086
    253   Bool          xGetPosFirstAvailDmvCand( Int iCount, Int& iFirDispCand );
    254 #endif
    255252#endif
    256253
     
    353350  Void         setSkipFlag           ( UInt idx, Bool skip)     { m_skipFlag[idx] = skip;   }
    354351  Void         setSkipFlagSubParts   ( Bool skip, UInt absPartIdx, UInt depth );
    355 #if MTK_SINGLE_DEPTH_MODE_I0095
     352#if H_3D_SINGLE_DEPTH
    356353  Bool*        getSingleDepthFlag            ()                        { return m_singleDepthFlag;          }
    357354  Bool         getSingleDepthFlag            (UInt idx)                { return m_singleDepthFlag[idx];     }
     
    505502  Bool          getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm );
    506503#endif
    507 #if MTK_SINGLE_DEPTH_MODE_I0095
     504#if H_3D_SINGLE_DEPTH
    508505   Bool          getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index);
    509506#endif
     
    670667  Void          getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours
    671668#endif
    672 #if H_3D_VSP && !FIX_TICKET_79
    673                                             , InheritedVSPDisInfo*  inheritedVSPDisInfo
    674 #endif
    675669#if H_3D_SPIVMP
    676670                                            , TComMvField* pcMvFieldSP, UChar* puhInterDirSP
     
    680674
    681675#if H_3D_VSP
    682 #if !FIX_TICKET_76
    683   inline Void   xInheritVSPDisInfo(TComDataCU* pcCURef, UInt uiAbsPartIdx, Int iCount,  InheritedVSPDisInfo*  inheritedVSPDisInfo);
    684 #endif
    685 
    686676#if H_3D_SPIVMP
    687677  Bool*         getSPIVMPFlag        ()                        { return m_pbSPIVMPFlag;          }
     
    771761#endif
    772762
    773 #if SHARP_DMM1_I0110
     763#if H_3D_DIM
    774764  Bool         isDMM1UpscaleMode       ( UInt uiWidth ){ Bool bDMM1UpsampleModeFlag = true; UInt uiBaseWidth = 16; if( uiBaseWidth >= uiWidth ){ bDMM1UpsampleModeFlag = false; } return bDMM1UpsampleModeFlag; };
    775765  UInt         getDMM1BasePatternWidth ( UInt uiWidth ){ UInt uiBaseWidth = 16; if( uiBaseWidth >= uiWidth ){ uiBaseWidth =  uiWidth; } return uiBaseWidth; }
  • trunk/source/Lib/TLibCommon/TComMotionInfo.h

    r1039 r1084  
    7979} IDVInfo;
    8080#endif
    81 #if H_3D_VSP && !FIX_TICKET_79
    82 typedef struct _InheritedVSPDisCand
    83 {
    84   DisInfo m_acDvInfo;
    85 } InheritedVSPDisInfo;
    86 #endif
     81
    8782// ====================================================================================================================
    8883// Class definition
  • trunk/source/Lib/TLibCommon/TComPicSym.cpp

    r872 r1084  
    3838#include "TComPicSym.h"
    3939#include "TComSampleAdaptiveOffset.h"
     40#include "TComSlice.h"
    4041
    4142//! \ingroup TLibCommon
     
    6364,m_iNumColumnsMinus1 (0)
    6465,m_iNumRowsMinus1(0)
    65 ,m_apcTComTile(NULL)
    6666,m_puiCUOrderMap(0)
    6767,m_puiTileIdxMap(NULL)
     
    101101    delete [] m_apcTComSlice;
    102102  }
    103   m_apcTComSlice      = new TComSlice*[m_uiNumCUsInFrame*m_uiNumPartitions]; 
     103  m_apcTComSlice      = new TComSlice*[m_uiNumCUsInFrame];
    104104  m_apcTComSlice[0]   = new TComSlice;
    105105  m_uiNumAllocatedSlice = 1;
     
    148148  m_apcTComDataCU = NULL;
    149149
    150   for(Int i = 0; i < (m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1); i++ )
    151   {
    152     delete m_apcTComTile[i];
    153   }
    154   delete [] m_apcTComTile;
    155 
    156   m_apcTComTile = NULL;
    157 
    158150  delete [] m_puiCUOrderMap;
    159151  m_puiCUOrderMap = NULL;
     
    173165Void TComPicSym::allocateNewSlice()
    174166{
     167  assert ((m_uiNumAllocatedSlice + 1) <= m_uiNumCUsInFrame);
    175168  m_apcTComSlice[m_uiNumAllocatedSlice ++] = new TComSlice;
    176169  if (m_uiNumAllocatedSlice>=2)
     
    201194}
    202195
    203 Void TComPicSym::xCreateTComTileArray()
    204 {
    205   m_apcTComTile = new TComTile*[(m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1)];
    206   for( UInt i=0; i<(m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1); i++ )
    207   {
    208     m_apcTComTile[i] = new TComTile;
    209   }
    210 }
    211 
    212 Void TComPicSym::xInitTiles()
    213 {
    214   UInt  uiTileIdx;
    215   UInt  uiColumnIdx = 0;
    216   UInt  uiRowIdx = 0;
    217   UInt  uiRightEdgePosInCU;
    218   UInt  uiBottomEdgePosInCU;
    219   Int   i, j;
     196Void TComPicSym::initTiles(TComPPS *pps)
     197{
     198  //set NumColumnsMinus1 and NumRowsMinus1
     199  setNumColumnsMinus1( pps->getNumTileColumnsMinus1() );
     200  setNumRowsMinus1( pps->getTileNumRowsMinus1() );
     201
     202  const Int numCols = pps->getNumTileColumnsMinus1() + 1;
     203  const Int numRows = pps->getTileNumRowsMinus1() + 1;
     204  const Int numTiles = numRows * numCols;
     205
     206  // allocate memory for tile parameters
     207  m_tileParameters.resize(numTiles);
     208
     209  if( pps->getTileUniformSpacingFlag() )
     210  {
     211    //set width and height for each (uniform) tile
     212    for(Int row=0; row < numRows; row++)
     213    {
     214      for(Int col=0; col < numCols; col++)
     215      {
     216        const Int tileIdx = row * numCols + col;
     217        m_tileParameters[tileIdx].setTileWidth( (col+1)*getFrameWidthInCU()/numCols
     218                                              - (col*getFrameWidthInCU())/numCols );
     219        m_tileParameters[tileIdx].setTileHeight( (row+1)*getFrameHeightInCU()/numRows
     220                                               - (row*getFrameHeightInCU())/numRows );
     221      }
     222    }
     223  }
     224  else
     225  {
     226    //set the width for each tile
     227    for(Int row=0; row < numRows; row++)
     228    {
     229      Int cumulativeTileWidth = 0;
     230      for(Int col=0; col < getNumColumnsMinus1(); col++)
     231  {
     232        m_tileParameters[row * numCols + col].setTileWidth( pps->getTileColumnWidth(col) );
     233        cumulativeTileWidth += pps->getTileColumnWidth(col);
     234  }
     235      m_tileParameters[row * numCols + getNumColumnsMinus1()].setTileWidth( getFrameWidthInCU()-cumulativeTileWidth );
     236}
     237
     238    //set the height for each tile
     239    for(Int col=0; col < numCols; col++)
     240{
     241      Int cumulativeTileHeight = 0;
     242      for(Int row=0; row < getNumRowsMinus1(); row++)
     243      {
     244        m_tileParameters[row * numCols + col].setTileHeight( pps->getTileRowHeight(row) );
     245        cumulativeTileHeight += pps->getTileRowHeight(row);
     246      }
     247      m_tileParameters[getNumRowsMinus1() * numCols + col].setTileHeight( getFrameHeightInCU()-cumulativeTileHeight );
     248    }
     249  }
     250
     251#if TILE_SIZE_CHECK
     252  Int minWidth  = 1;
     253  Int minHeight = 1;
     254  const Int profileIdc = pps->getSPS()->getPTL()->getGeneralPTL()->getProfileIdc();
     255  if (  profileIdc == Profile::MAIN || profileIdc == Profile::MAIN10)
     256  {
     257    if (pps->getTilesEnabledFlag())
     258    {
     259      minHeight = 64  / g_uiMaxCUHeight;
     260      minWidth  = 256 / g_uiMaxCUWidth;
     261    }
     262  }
     263  for(Int row=0; row < numRows; row++)
     264  {
     265    for(Int col=0; col < numCols; col++)
     266    {
     267      const Int tileIdx = row * numCols + col;
     268      assert (m_tileParameters[tileIdx].getTileWidth() >= minWidth);
     269      assert (m_tileParameters[tileIdx].getTileHeight() >= minHeight);
     270    }
     271  }
     272#endif
    220273
    221274  //initialize each tile of the current picture
    222   for( uiRowIdx=0; uiRowIdx < m_iNumRowsMinus1+1; uiRowIdx++ )
    223   {
    224     for( uiColumnIdx=0; uiColumnIdx < m_iNumColumnsMinus1+1; uiColumnIdx++ )
    225     {
    226       uiTileIdx = uiRowIdx * (m_iNumColumnsMinus1+1) + uiColumnIdx;
     275  for( Int row=0; row < numRows; row++ )
     276  {
     277    for( Int col=0; col < numCols; col++ )
     278    {
     279      const Int tileIdx = row * numCols + col;
    227280
    228281      //initialize the RightEdgePosInCU for each tile
    229       uiRightEdgePosInCU = 0;
    230       for( i=0; i <= uiColumnIdx; i++ )
    231       {
    232         uiRightEdgePosInCU += this->getTComTile(uiRowIdx * (m_iNumColumnsMinus1+1) + i)->getTileWidth();
    233       }
    234       this->getTComTile(uiTileIdx)->setRightEdgePosInCU(uiRightEdgePosInCU-1);
     282      Int rightEdgePosInCTU = 0;
     283      for( Int i=0; i <= col; i++ )
     284      {
     285        rightEdgePosInCTU += m_tileParameters[row * numCols + i].getTileWidth();
     286      }
     287      m_tileParameters[tileIdx].setRightEdgePosInCU(rightEdgePosInCTU-1);
    235288
    236289      //initialize the BottomEdgePosInCU for each tile
    237       uiBottomEdgePosInCU = 0;
    238       for( i=0; i <= uiRowIdx; i++ )
    239       {
    240         uiBottomEdgePosInCU += this->getTComTile(i * (m_iNumColumnsMinus1+1) + uiColumnIdx)->getTileHeight();
    241       }
    242       this->getTComTile(uiTileIdx)->setBottomEdgePosInCU(uiBottomEdgePosInCU-1);
     290      Int bottomEdgePosInCTU = 0;
     291      for( Int i=0; i <= row; i++ )
     292      {
     293        bottomEdgePosInCTU += m_tileParameters[i * numCols + col].getTileHeight();
     294      }
     295      m_tileParameters[tileIdx].setBottomEdgePosInCU(bottomEdgePosInCTU-1);
    243296
    244297      //initialize the FirstCUAddr for each tile
    245       this->getTComTile(uiTileIdx)->setFirstCUAddr( (this->getTComTile(uiTileIdx)->getBottomEdgePosInCU() - this->getTComTile(uiTileIdx)->getTileHeight() +1)*m_uiWidthInCU +
    246         this->getTComTile(uiTileIdx)->getRightEdgePosInCU() - this->getTComTile(uiTileIdx)->getTileWidth() + 1);
    247     }
    248   }
     298      m_tileParameters[tileIdx].setFirstCUAddr( (m_tileParameters[tileIdx].getBottomEdgePosInCU() - m_tileParameters[tileIdx].getTileHeight() + 1) * getFrameWidthInCU() +
     299                                                 m_tileParameters[tileIdx].getRightEdgePosInCU() - m_tileParameters[tileIdx].getTileWidth() + 1);
     300    }
     301  }
     302
     303  Int  columnIdx = 0;
     304  Int  rowIdx = 0;
    249305
    250306  //initialize the TileIdxMap
    251   for( i=0; i<m_uiNumCUsInFrame; i++)
    252   {
    253     for(j=0; j < m_iNumColumnsMinus1+1; j++)
    254     {
    255       if(i % m_uiWidthInCU <= this->getTComTile(j)->getRightEdgePosInCU())
    256       {
    257         uiColumnIdx = j;
    258         j = m_iNumColumnsMinus1+1;
    259       }
    260     }
    261     for(j=0; j < m_iNumRowsMinus1+1; j++)
    262     {
    263       if(i/m_uiWidthInCU <= this->getTComTile(j*(m_iNumColumnsMinus1 + 1))->getBottomEdgePosInCU())
    264       {
    265         uiRowIdx = j;
    266         j = m_iNumRowsMinus1 + 1;
    267       }
    268     }
    269     m_puiTileIdxMap[i] = uiRowIdx * (m_iNumColumnsMinus1 + 1) + uiColumnIdx;
     307  for( Int i=0; i<m_uiNumCUsInFrame; i++)
     308  {
     309    for( Int col=0; col < numCols; col++)
     310    {
     311      if(i % getFrameWidthInCU() <= m_tileParameters[col].getRightEdgePosInCU())
     312      {
     313        columnIdx = col;
     314        break;
     315      }
     316    }
     317    for(Int row=0; row < numRows; row++)
     318    {
     319      if(i / getFrameWidthInCU() <= m_tileParameters[row*numCols].getBottomEdgePosInCU())
     320      {
     321        rowIdx = row;
     322        break;
     323      }
     324    }
     325    m_puiTileIdxMap[i] = rowIdx * numCols + columnIdx;
    270326  }
    271327
     
    417473
    418474TComTile::TComTile()
     475: m_uiTileWidth         (0)
     476, m_uiTileHeight        (0)
     477, m_uiRightEdgePosInCU  (0)
     478, m_uiBottomEdgePosInCU (0)
     479, m_uiFirstCUAddr       (0)
     480
    419481{
    420482}
  • trunk/source/Lib/TLibCommon/TComPicSym.h

    r872 r1084  
    4545#include "TComDataCU.h"
    4646class TComSampleAdaptiveOffset;
     47class TComPPS;
    4748
    4849//! \ingroup TLibCommon
     
    102103  Int           m_iNumColumnsMinus1;
    103104  Int           m_iNumRowsMinus1;
    104   TComTile**    m_apcTComTile;
     105  std::vector<TComTile> m_tileParameters;
    105106  UInt*         m_puiCUOrderMap;       //the map of LCU raster scan address relative to LCU encoding order
    106107  UInt*         m_puiTileIdxMap;       //the map of the tile index relative to LCU raster scan address
     
    133134  Int          getNumRowsMinus1()                                    { return m_iNumRowsMinus1; }
    134135  Int          getNumTiles()                                         { return (m_iNumRowsMinus1+1)*(m_iNumColumnsMinus1+1); }
    135   TComTile*    getTComTile  ( UInt tileIdx )                         { return *(m_apcTComTile + tileIdx); }
     136  TComTile*    getTComTile  ( UInt tileIdx )                         { return &(m_tileParameters[tileIdx]); }
    136137  Void         setCUOrderMap( Int encCUOrder, Int cuAddr )           { *(m_puiCUOrderMap + encCUOrder) = cuAddr; }
    137138  UInt         getCUOrderMap( Int encCUOrder )                       { return *(m_puiCUOrderMap + (encCUOrder>=m_uiNumCUsInFrame ? m_uiNumCUsInFrame : encCUOrder)); }
     
    141142  UInt         getPicSCUEncOrder( UInt SCUAddr );
    142143  UInt         getPicSCUAddr( UInt SCUEncOrder );
    143   Void         xCreateTComTileArray();
    144   Void         xInitTiles();
     144  Void         initTiles(TComPPS *pps);
    145145  UInt         xCalculateNxtCUAddr( UInt uiCurrCUAddr );
    146146  SAOBlkParam* getSAOBlkParam() { return m_saoBlkParams;}
  • trunk/source/Lib/TLibCommon/TComPrediction.cpp

    r1039 r1084  
    423423
    424424  UInt dimType    = getDimType  ( uiIntraMode );
    425 #if !HS_DMM_SIGNALLING_I0120
    426   Bool dimDeltaDC = isDimDeltaDC( uiIntraMode );
    427 #endif
    428425  Bool isDmmMode  = (dimType <  DMM_NUM_TYPE);
    429426
     
    440437    case( DMM1_IDX ):
    441438      {
    442 #if SHARP_DMM1_I0110
    443439        dmmSegmentation = pcCU->isDMM1UpscaleMode((UInt)iWidth) ?
    444440            &(g_dmmWedgeLists[ g_aucConvertToBit[pcCU->getDMM1BasePatternWidth((UInt)iWidth)] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]) :
    445441            &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]);
    446 #else
    447         dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]);
    448 #endif
    449442      } break;
    450443    case( DMM4_IDX ):
     
    464457    }
    465458    assert( dmmSegmentation );
    466 #if SHARP_DMM1_I0110
    467459    if( dimType == DMM1_IDX && pcCU->isDMM1UpscaleMode((UInt)iWidth) )
    468460    {
     
    475467        patternStride = dmmSegmentation->getStride ();
    476468    }
    477 #else
    478     biSegPattern  = dmmSegmentation->getPattern();
    479     patternStride = dmmSegmentation->getStride ();
    480 #endif
    481469  }
    482470#endif
     
    495483  Pel segDC1 = 0;
    496484  Pel segDC2 = 0;
    497 #if HS_DMM_SIGNALLING_I0120
    498485  if( !pcCU->getSDCFlag( uiAbsPartIdx ) )
    499 #else
    500   if( dimDeltaDC )
    501 #endif
    502486  {
    503487    Pel deltaDC1 = pcCU->getDimDeltaDC( dimType, 0, uiAbsPartIdx );
     
    568552    pcCU->getSPAbsPartIdx(uiPartAddr, iSPWidth, iSPHeight, i, iNumSPInOneLine, uiSPAddr[i]);
    569553  }
    570 #if SHARP_ARP_CHROMA_I0104
    571554  if( pcCU->getARPW( uiPartAddr ) != 0 )
    572555  {
    573556    return;
    574557  }
    575 #endif
     558
    576559  // horizontal sub-PU merge
    577560  for (Int i=0; i<iNumSP; i++)
     
    745728  Int uiMinDepth = MAX_INT;
    746729  Int uiMaxDepth = 0;
    747 #if SEC_DBBP_DMM4_THRESHOLD_I0076
     730
    748731  iSumDepth  = pDepthPels[ 0 ];
    749732  iSumDepth += pDepthPels[ uiWidth - 1 ];
     
    760743  uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) ]);
    761744  uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]);
    762 #else
    763   for (Int y=0; y<uiHeight; y++)
    764   {
    765     for (Int x=0; x<uiWidth; x++)
    766     {
    767       Int depthPel = pDepthPels[x];
    768       iSumDepth += depthPel;
    769      
    770       if( depthPel > uiMaxDepth )
    771       {
    772         uiMaxDepth = depthPel;
    773       }
    774       if( depthPel < uiMinDepth )
    775       {
    776         uiMinDepth = depthPel;
    777       }
    778     }
    779    
    780     // next row
    781     pDepthPels += uiDepthStride;
    782   }
    783 #endif
     745
    784746 
    785747  // don't generate mask for blocks with small depth range (encoder decision)
     
    790752 
    791753  AOF(uiWidth==uiHeight);
    792 #if SEC_DBBP_DMM4_THRESHOLD_I0076
    793754  Int iMean = iSumDepth >> 2;
    794 #else
    795   Int iSizeInBits = g_aucConvertToBit[uiWidth]+2;
    796   Int iMean = iSumDepth >> iSizeInBits*2;       // iMean /= (uiWidth*uiHeight);
    797 #endif
    798755 
    799756  // start again for segmentation
     
    842799}
    843800
    844 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    845801Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize )
    846 #else
    847 Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr )
    848 #endif
    849802{
    850803  Pel*  piSrc[2]    = {pInYuv[0]->getLumaAddr(uiPartAddr), pInYuv[1]->getLumaAddr(uiPartAddr)};
     
    854807 
    855808  UInt  uiMaskStride= MAX_CU_SIZE;
    856 #if !SHARP_DBBP_SIMPLE_FLTER_I0109
    857   Pel  filSrc = 0;
    858 #endif
    859809  Pel* tmpTar = 0;
    860810  tmpTar = (Pel *)xMalloc(Pel, uiWidth*uiHeight);
     
    880830  }
    881831 
    882 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    883832  if (partSize == SIZE_Nx2N)
    884833  {
     
    917866    }
    918867  }
    919 #else
    920   for (Int y=0; y<uiHeight; y++)
    921   {
    922     for (Int x=0; x<uiWidth; x++)
    923     {
    924       Bool t = (y==0)?pMaskStart[y*uiMaskStride+x]:pMaskStart[(y-1)*uiMaskStride+x];
    925       Bool l = (x==0)?pMaskStart[y*uiMaskStride+x]:pMaskStart[y*uiMaskStride+x-1];
    926       Bool b = (y==uiHeight-1)?pMaskStart[y*uiMaskStride+x]:pMaskStart[(y+1)*uiMaskStride+x];
    927       Bool r = (x==uiWidth-1)?pMaskStart[y*uiMaskStride+x]:pMaskStart[y*uiMaskStride+x+1];
    928       Bool c =pMaskStart[y*uiMaskStride+x];
    929 
    930       Pel left, right, top, bottom;
    931       left   = (x==0)          ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x-1];
    932       right  = (x==uiWidth-1)  ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x+1];
    933       top    = (y==0)          ? tmpTar[y*uiWidth+x] : tmpTar[(y-1)*uiWidth+x];
    934       bottom = (y==uiHeight-1) ? tmpTar[y*uiWidth+x] : tmpTar[(y+1)*uiWidth+x];
    935 
    936       if(!((l&&r&&c) || (!l&&!r&&!c)))
    937       {
    938         filSrc = Clip3( Pel( 0 ), Pel( 255 ), Pel(( left + (tmpTar[y*uiWidth+x] << 1) + right ) >> 2 ));
    939       }
    940       else
    941       {
    942         filSrc = tmpTar[y*uiWidth+x];
    943       }
    944 
    945       if(!((t&&b&&c) || (!t&&!b&&!c)))
    946       {
    947         filSrc = Clip3( Pel( 0 ), Pel( 255 ), Pel(( top + (filSrc << 1) + bottom ) >> 2 ));
    948       }
    949       piDst[x] = filSrc;
    950     }
    951     piDst     += uiDstStride;
    952   }
    953 #endif
    954868
    955869  if ( tmpTar    ) { xFree(tmpTar);             tmpTar        = NULL; }
     
    989903  }
    990904
    991 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    992905  if (partSize == SIZE_Nx2N)
    993906  {
     
    1056969    }
    1057970  }
    1058 #else
    1059   for (Int y=0; y<uiHeightC; y++)
    1060   {
    1061     for (Int x=0; x<uiWidthC; x++)
    1062     {
    1063       Bool t = (y==0)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[(y-1)*2*uiMaskStride+x*2];
    1064       Bool l = (x==0)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[y*2*uiMaskStride+(x-1)*2];
    1065       Bool b = (y==uiHeightC-1)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[(y+1)*2*uiMaskStride+x*2];
    1066       Bool r = (x==uiWidthC-1)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[y*2*uiMaskStride+(x+1)*2];
    1067       Bool c =pMaskStart[y*2*uiMaskStride+x*2];
    1068 
    1069       Pel leftU, rightU, topU, bottomU;
    1070       leftU   = (x==0)           ? tmpTarU[y*uiWidthC+x] : tmpTarU[y*uiWidthC+x-1];
    1071       rightU  = (x==uiWidthC-1)  ? tmpTarU[y*uiWidthC+x] : tmpTarU[y*uiWidthC+x+1];
    1072       topU    = (y==0)           ? tmpTarU[y*uiWidthC+x] : tmpTarU[(y-1)*uiWidthC+x];
    1073       bottomU = (y==uiHeightC-1) ? tmpTarU[y*uiWidthC+x] : tmpTarU[(y+1)*uiWidthC+x];
    1074 
    1075       Pel leftV, rightV, topV, bottomV;
    1076       leftV   = (x==0)           ? tmpTarV[y*uiWidthC+x] : tmpTarV[y*uiWidthC+x-1];
    1077       rightV  = (x==uiWidthC-1)  ? tmpTarV[y*uiWidthC+x] : tmpTarV[y*uiWidthC+x+1];
    1078       topV    = (y==0)           ? tmpTarV[y*uiWidthC+x] : tmpTarV[(y-1)*uiWidthC+x];
    1079       bottomV = (y==uiHeightC-1) ? tmpTarV[y*uiWidthC+x] : tmpTarV[(y+1)*uiWidthC+x];
    1080 
    1081       if(!((l&&r&&c) || (!l&&!r&&!c)))
    1082       {
    1083         filSrcU = Clip3( Pel( 0 ), Pel( 255 ), Pel(( leftU + (tmpTarU[y*uiWidthC+x] << 1) + rightU ) >> 2 ));
    1084         filSrcV = Clip3( Pel( 0 ), Pel( 255 ), Pel(( leftV + (tmpTarV[y*uiWidthC+x] << 1) + rightV ) >> 2 ));
    1085       }
    1086       else
    1087       {
    1088         filSrcU = tmpTarU[y*uiWidthC+x];
    1089         filSrcV = tmpTarV[y*uiWidthC+x];
    1090       }
    1091 
    1092       if(!((t&&b&&c) || (!t&&!b&&!c)))
    1093       {
    1094         filSrcU = Clip3( Pel( 0 ), Pel( 255 ), Pel(( topU + (filSrcU << 1) + bottomU ) >> 2 ));
    1095         filSrcV = Clip3( Pel( 0 ), Pel( 255 ), Pel(( topV + (filSrcV << 1) + bottomV ) >> 2 ));
    1096       }
    1097 
    1098       piDstU[x] = filSrcU;
    1099       piDstV[x] = filSrcV;
    1100     }
    1101     piDstU      += uiDstStrideC;
    1102     piDstV      += uiDstStrideC;
    1103   }
    1104 #endif
     971
    1105972  if ( tmpTarU    ) { xFree(tmpTarU);             tmpTarU        = NULL; }
    1106973  if ( tmpTarV    ) { xFree(tmpTarV);             tmpTarV        = NULL; }
     
    14751342  pcCU->clipMv(cMv);
    14761343  TComPicYuv* pcPicYuvRef = pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec();
    1477 #if QC_I0129_ARP_FIX
    14781344  xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true );
    14791345  xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true );
    1480 #else
    1481   xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, true );
    1482   xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, true );
    1483 #endif
     1346
    14841347  if( dW > 0 )
    14851348  {
     
    14891352    TComMv cMVwithDisparity = cMv + cDistparity.m_acNBDV;
    14901353    pcCU->clipMv(cMVwithDisparity);
    1491 #if SHARP_ARP_CHROMA_I0104
    14921354    if (iWidth <= 8)
    14931355    {
    14941356      pYuvB0->clear(); pYuvB1->clear();
    14951357    }
    1496 #endif
    14971358
    14981359    assert ( cDistparity.bDV );
    14991360   
    1500 #if NTT_BUG_FIX_TK54
    15011361    TComMv cNBDV = cDistparity.m_acNBDV;
    15021362    pcCU->clipMv( cNBDV );
    15031363   
    15041364    pcPicYuvRef = pcPicYuvBaseCol->getPicYuvRec();
    1505 #if QC_I0129_ARP_FIX
    15061365    xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true );
    1507 #if SHARP_ARP_CHROMA_I0104
    15081366    if (iWidth > 8)
    1509 #endif
    1510     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true );
    1511 #else
    1512     xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, bi, true );
    1513     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, bi, true );
    1514 #endif
    1515 #else
    1516     pcPicYuvRef = pcPicYuvBaseCol->getPicYuvRec();
    1517     xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cDistparity.m_acNBDV, iWidth, iHeight, pYuvB0, bi, true );
    1518     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cDistparity.m_acNBDV, iWidth, iHeight, pYuvB0, bi, true );
    1519 #endif
     1367      xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true );
    15201368   
    15211369    pcPicYuvRef = pcPicYuvBaseRef->getPicYuvRec();
    1522 #if QC_I0129_ARP_FIX
    15231370    xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true );
    1524 #if SHARP_ARP_CHROMA_I0104
     1371 
    15251372    if (iWidth > 8)
    1526 #endif
    1527     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true );
    1528 #else
    1529     xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, bi, true );
    1530     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, bi, true );
    1531 #endif
     1373      xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true );
     1374   
    15321375    pYuvB0->subtractARP( pYuvB0 , pYuvB1 , uiPartAddr , iWidth , iHeight );
    15331376
     
    15401383}
    15411384
    1542 #if QC_I0051_ARP_SIMP
    15431385Bool TComPrediction::xCheckBiInterviewARP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eBaseRefPicList, TComPic*& pcPicYuvCurrTRef, TComMv& cBaseTMV, Int& iCurrTRefPoc )
    15441386{
     
    15721414        Int  iCurrRefPOC = pcPicYuvBaseTRef->getPOC();
    15731415        Int  iCurrRef    = pcCU->getSlice()->getFirstTRefIdx(eRefPicListCurr);
    1574 #if MTK_I0072_IVARP_SCALING_FIX
     1416
    15751417        if( iCurrRef >= 0 && iCurrPOC != iCurrRefPOC)
    1576 #else
    1577         if( iCurrRef >= 0)
    1578 #endif
    15791418        {
    15801419          pcPicYuvCurrTRef =  pcCU->getSlice()->getRefPic(eRefPicListCurr,iCurrRef); 
     
    16081447  return false;
    16091448}
    1610 #endif
    16111449
    16121450Void TComPrediction::xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled )
     
    16431481  pcYuvBaseCol->getCUAddrAndPartIdx( irefPUX, irefPUY, uiLCUAddr, uiAbsPartAddr);
    16441482  TComDataCU *pColCU = pcPicYuvBaseCol->getCU( uiLCUAddr );
    1645 #if QC_I0051_ARP_SIMP
    16461483  if( pcCU->getSlice()->isInterB() && !pcCU->getSlice()->getIsDepth() )
    16471484  {
     
    17081545
    17091546  if( !pColCU->isIntra( uiAbsPartAddr ) && !bTMVAvai )
    1710 #else
    1711   if(!pColCU->isIntra(uiAbsPartAddr))
    1712 #endif
    17131547  {
    17141548    TComMvField puMVField;
     
    17231557        Int  iCurrRefPOC = pcPicYuvBaseTRef->getPOC();
    17241558        Int  iCurrRef    = pcCU->getSlice()->getFirstTRefIdx(eRefPicListCurr);
    1725 #if MTK_I0072_IVARP_SCALING_FIX
    17261559        if (iCurrRef >= 0 && iCurrRefPOC != iCurrPOC)
    1727 #else
    1728         if( iCurrRef >= 0)
    1729 #endif
    17301560        {
    17311561          pcPicYuvCurrTRef =  pcCU->getSlice()->getRefPic(eRefPicListCurr,iCurrRef); 
     
    17541584    pcPicYuvCurrTRef =  pcCU->getSlice()->getRefPic  (eRefPicList,  pcCU->getSlice()->getFirstTRefIdx(eRefPicList));     
    17551585  }
    1756 #if QC_I0129_ARP_FIX
     1586
    17571587  xPredInterLumaBlk  ( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ),        bTMVAvai);
    17581588  xPredInterChromaBlk( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ),        bTMVAvai);
    1759 #else
    1760   xPredInterLumaBlk  ( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi,        bTMVAvai);
    1761   xPredInterChromaBlk( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi,        bTMVAvai);
    1762 #endif
     1589
    17631590  if( dW > 0 && bTMVAvai )
    17641591  {
     
    17711598    pcCU->clipMv(cBaseTMV);
    17721599    pcCU->clipMv(cTempMv);
    1773 #if SHARP_ARP_CHROMA_I0104
     1600
    17741601    if (iWidth <= 8)
    17751602    {
    17761603      pYuvCurrTRef->clear(); pYuvBaseTRef->clear();
    17771604    }
    1778 #endif
    1779 #if QC_I0129_ARP_FIX
    17801605    xPredInterLumaBlk  ( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true,   true);
    1781 #if SHARP_ARP_CHROMA_I0104
     1606
    17821607    if (iWidth > 8)
    1783 #endif
    1784     xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true,   true);
     1608      xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true,   true);
     1609
    17851610    xPredInterLumaBlk  ( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, true,   true);
    1786 #if SHARP_ARP_CHROMA_I0104
     1611
    17871612    if (iWidth > 8)
    1788 #endif
    1789     xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, true,   true);
    1790 #else
    1791     xPredInterLumaBlk  ( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, bi,   true);
    1792     xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, bi,   true);
    1793     xPredInterLumaBlk  ( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, bi,   true);
    1794     xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, bi,   true);
    1795 
    1796 #endif
     1613      xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, true,   true);
     1614
    17971615    pYuvCurrTRef->subtractARP( pYuvCurrTRef , pYuvBaseTRef , uiPartAddr , iWidth , iHeight ); 
    17981616    if(dW == 2)
     
    18031621  }
    18041622}
    1805 
    18061623#endif
    18071624
     
    23282145  Int iRecStride = ( eType == TEXT_LUMA ) ? pRecPic->getStride() : pRecPic->getCStride();
    23292146  Int iRefStride = ( eType == TEXT_LUMA ) ? pRefPic->getStride() : pRefPic->getCStride();
    2330 #if SEC_IC_NEIGHBOR_CLIP_I0080
    23312147  Int iRefOffset, iHor, iVer;
    2332 #else
    2333   Int iCUPelX, iCUPelY, iRefX, iRefY, iRefOffset, iHor, iVer;
    2334 
    2335   iCUPelX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];
    2336   iCUPelY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];
    2337 #endif
    23382148  iHor = pcCU->getSlice()->getIsDepth() ? pMv->getHor() : ( ( pMv->getHor() + 2 ) >> 2 );
    23392149  iVer = pcCU->getSlice()->getIsDepth() ? pMv->getVer() : ( ( pMv->getVer() + 2 ) >> 2 );
    2340 #if !SEC_IC_NEIGHBOR_CLIP_I0080
    2341   iRefX   = iCUPelX + iHor;
    2342   iRefY   = iCUPelY + iVer;
    2343 #endif
    23442150  if( eType != TEXT_LUMA )
    23452151  {
     
    23572163  Int precShift = std::max(0, (( eType == TEXT_LUMA ) ? g_bitDepthY : g_bitDepthC) - 12);
    23582164
    2359 #if SEC_IC_NEIGHBOR_CLIP_I0080
    23602165  if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) )
    2361 #else
    2362   if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) && iCUPelY > 0 && iRefY > 0 )
    2363 #endif
    23642166  {
    23652167    iRefOffset = iHor + iVer * iRefStride - iRefStride;
     
    23912193  }
    23922194
    2393 #if SEC_IC_NEIGHBOR_CLIP_I0080
    23942195  if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) )
    2395 #else
    2396   if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) && iCUPelX > 0 && iRefX > 0 )
    2397 #endif
    23982196  {
    23992197    iRefOffset = iHor + iVer * iRefStride - 1;
     
    24292227  }
    24302228
    2431 #if FIX_TICKET_71
    24322229  if( iCountShift == 0 )
    24332230  {
     
    24362233    return;
    24372234  }
    2438 #endif
    24392235
    24402236  xy += xx >> IC_REG_COST_SHIFT;
     
    25532349  // find contour for texture luma block
    25542350  UInt iDC = 0;
    2555 #if SEC_DBBP_DMM4_THRESHOLD_I0076
     2351
    25562352  iDC  = piRefBlkY[ 0 ];
    25572353  iDC += piRefBlkY[ uiWidth - 1 ];
     
    25592355  iDC += piRefBlkY[ uiWidth * (uiHeight - 1) + uiWidth - 1 ];
    25602356  iDC = iDC >> 2;
    2561 #else
    2562   for( UInt k = 0; k < (uiWidth*uiHeight); k++ )
    2563   {
    2564     iDC += piRefBlkY[k];
    2565   }
    2566 
    2567   Int cuMaxLog2Size = g_aucConvertToBit[g_uiMaxCUWidth]+2;   //
    2568   iDC = iDC >> (cuMaxLog2Size - pcCU->getDepth(0))*2;        //  iDC /= (uiWidth*uiHeight);
    2569 #endif
    25702357
    25712358  piRefBlkY = cTempYuv.getLumaAddr();
  • trunk/source/Lib/TLibCommon/TComPrediction.h

    r1039 r1084  
    9090#if H_3D_ARP
    9191  Void xPredInterUniARP         ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false, TComMvField * pNewMvFiled = NULL );
    92 #if QC_I0051_ARP_SIMP
    9392  Bool xCheckBiInterviewARP     ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eBaseRefPicList, TComPic*& pcPicYuvCurrTRef, TComMv& cBaseTMV, Int& iCurrTRefPoc );
    94 #endif
    9593  Void xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled = NULL );
    9694#endif
     
    179177  PartSize      getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize);
    180178  Bool          getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask );
    181 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    182179  Void          combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize );
    183 #else
    184   Void          combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr = 0 );
    185 #endif
    186180#endif
    187181
  • trunk/source/Lib/TLibCommon/TComRom.cpp

    r1066 r1084  
    355355  HALF_PEL,    //   8x8
    356356  FULL_PEL,    //  16x16
    357 #if SHARP_DMM1_I0110
    358357  FULL_PEL,    //  32x32
    359358  FULL_PEL,    //  64x64
    360359  FULL_PEL     // 128x128
    361 #else
    362   DOUBLE_PEL,  //  32x32
    363   DOUBLE_PEL,  //  64x64
    364   DOUBLE_PEL   // 128x128
    365 #endif
    366360};
    367361
     
    374368     0,    4,    7,    8,    8,    0 };
    375369
    376 #if SHARP_DMM1_I0110
    377370Bool g_wedgePattern[32*32];
    378 #endif
    379371
    380372extern std::vector< std::vector<TComWedgelet> >   g_dmmWedgeLists;
     
    388380
    389381Char  g_aucConvertToBit  [ MAX_CU_SIZE+1 ];
    390 #if !MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    391 #if H_3D_IC
    392 UInt g_aICEnableCANDIDATE[10] = { 0, };
    393 UInt g_aICEnableNUM[ 10 ] = { 0, };
    394 Int g_lastlayer=0;
    395 #endif
    396 #endif
    397382#if ENC_DEC_TRACE
    398383FILE*  g_hTrace = NULL;
     
    676661  if( !g_dmmWedgeLists.empty() ) return;
    677662
    678 #if SHARP_DMM1_I0110
    679663  for( UInt ui = g_aucConvertToBit[DIM_MIN_SIZE]; ui < (g_aucConvertToBit[DIM_MAX_SIZE]); ui++ )
    680 #else
    681   for( UInt ui = g_aucConvertToBit[DIM_MIN_SIZE]; ui < (g_aucConvertToBit[DIM_MAX_SIZE]+1); ui++ )
    682 #endif
    683664  {
    684665    UInt uiWedgeBlockSize = ((UInt)DIM_MIN_SIZE)<<ui;
     
    764745  switch( eWedgeRes )
    765746  {
    766 #if !SHARP_DMM1_I0110
    767   case( DOUBLE_PEL ): { uiBlockSize = (uiWidth>>1); break; }
    768 #endif
    769747  case(   FULL_PEL ): { uiBlockSize =  uiWidth;     break; }
    770748  case(   HALF_PEL ): { uiBlockSize = (uiWidth<<1); break; }
  • trunk/source/Lib/TLibCommon/TComRom.h

    r1066 r1084  
    166166extern const UChar                                           g_dmm3IntraTabIdxBits[6];
    167167
    168 #if SHARP_DMM1_I0110
    169168extern Bool                                                  g_wedgePattern[32*32];
    170 #endif
    171169
    172170extern       std::vector< std::vector<TComWedgelet> >        g_dmmWedgeLists;
     
    230228
    231229extern       Char   g_aucConvertToBit  [ MAX_CU_SIZE+1 ];   // from width to log2(width)-2
    232 #if !MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    233 #if H_3D_IC
    234 extern UInt g_aICEnableCANDIDATE[10];
    235 extern UInt g_aICEnableNUM[ 10 ]; //10 layers
    236 extern Int  g_lastlayer;
    237 #endif
    238 #endif
    239230
    240231#ifndef ENC_DEC_TRACE
  • trunk/source/Lib/TLibCommon/TComSlice.cpp

    r1066 r1084  
    103103, m_temporalLayerNonReferenceFlag ( false )
    104104, m_enableTMVPFlag                ( true )
    105 #if I0044_SLICE_TMVP
     105#if H_MV
    106106, m_availableForTMVPRefFlag       ( true )
    107 #endif
    108 #if H_MV
    109107, m_refPicSetInterLayer0           ( NULL )
    110108, m_refPicSetInterLayer1           ( NULL )
     
    142140, m_depthToDisparityF             ( NULL )
    143141#endif
    144 #if MTK_SINGLE_DEPTH_MODE_I0095
     142#if H_3D_SINGLE_DEPTH
    145143, m_bApplySingleDepthMode         (false)
    146144#endif
     
    650648 
    651649  TComPic**             refPicSetStCurr    [2] = { RefPicSetStCurr0, RefPicSetStCurr1 };
    652 #if FIX_WARNING
    653650  Int numPocStCurr[2] = { (Int)NumPocStCurr0, (Int)NumPocStCurr1 };
    654 #else
    655   Int numPocStCurr[2] = { NumPocStCurr0, NumPocStCurr1 };
    656 #endif
    657651
    658652  for (Int li = 0; li < ((m_eSliceType==B_SLICE) ? 2 : 1); li++)
     
    728722
    729723        assert( rpsCurrList[li][ orgIdx ] != NULL );
    730 #if DISCARDABLE_PIC_RPS
    731724        assert( rpsCurrList[li][ orgIdx ]->getSlice(0)->getDiscardableFlag() == 0 );    // Inter-layer RPS shall not contain picture with discardable_flag = 1.
    732 #endif
    733725        m_apcRefPicList    [li][rIdx] = rpsCurrList    [li][ orgIdx ];
    734726        m_bIsUsedAsLongTerm[li][rIdx] = usedAsLongTerm [li][ orgIdx ] ;
     
    11051097  }
    11061098#endif
    1107 #if MTK_SINGLE_DEPTH_MODE_I0095
     1099#if H_3D_SINGLE_DEPTH
    11081100  m_bApplySingleDepthMode = pSrc->m_bApplySingleDepthMode;
    11091101#endif
     
    18811873#if H_MV
    18821874  m_vpsBaseLayerInternalFlag = true;
    1883 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    18841875  m_vpsBaseLayerAvailableFlag = true;
    1885 #endif
    18861876#endif
    18871877
     
    19091899  {
    19101900    m_layerSetIdxForOlsMinus1[i]  = -1;
    1911 #if !H_MV_HLS10_PTL
    1912     m_profileLevelTierIdx[i]      = 0;
    1913 #endif
    19141901    for ( Int j = 0; j < MAX_VPS_NUH_LAYER_ID_PLUS1; j++)
    19151902    {
    1916 #if H_MV_HLS10_PTL
    1917 #if H_MV_HLS10_PTL_FIX
    19181903      m_profileTierLevelIdx[i][j] = -1;
    1919 #else
    1920       m_profileTierLevelIdx[i][j] = false;
    1921 #endif
    1922 #endif
    19231904      m_outputLayerFlag[i][j] = false;
    19241905    }
     
    19701951    m_viewIndex         [i] = -1;
    19711952    m_vpsDepthModesFlag [i] = false;
    1972 #if SEC_HLS_CLEANUP_I0100
    19731953    m_ivMvScalingFlag[i] = true;
    1974 #else
    1975     m_ivMvScalingFlag = true;
    1976 #endif
    1977 #if SEPARATE_FLAG_I0085
    19781954    m_bIVPFlag [i]      = false;
    1979 #endif
    19801955#endif
    19811956
     
    19841959      m_directDependencyFlag[i][j] = false;
    19851960      m_directDependencyType[i][j] = -1;
    1986 #if H_MV_HLS10_REF_PRED_LAYERS
    19871961      m_dependencyFlag  [i][j]    = false;
    19881962      m_idDirectRefLayer[i][j]    = -1;
    19891963      m_idPredictedLayer[i][j]    = -1;
    19901964      m_idRefLayer      [i][j]    = -1;
    1991 #else
    1992       m_refLayerId[i][j]           = -1;
    1993 #endif
    19941965      m_maxTidIlRefPicsPlus1[i][j]  = 7;
    19951966    }
     
    20161987#endif
    20171988#endif
    2018 #if MTK_I0099_VPS_EX2
     1989#if H_3D_QTLPC
    20191990    m_bLimQtPredFlag       [ i ] = false;
    20201991#endif
     
    20281999    m_bInterSDCFlag        [ i ] = false;
    20292000#endif
    2030 #if SEPARATE_FLAG_I0085
     2001#if H_3D
    20312002    m_bIVPFlag             [ i ] = false;
    20322003#endif
     
    20752046  assert( getVpsNumRepFormatsMinus1() <= 255 );
    20762047
    2077 #if H_MV_HLS10_ADD_LAYERSETS
    20782048  // The value of num_add_layer_sets shall be in the range of 0 to 1023, inclusive.
    20792049  assert( getNumAddLayerSets() >= 0 && getNumAddLayerSets() <= 1023 );
    2080 #endif
    20812050  return true;
    20822051}
     
    21112080{
    21122081
    2113 #if H_MV_HLS10_REF_PRED_LAYERS
    21142082  for( Int i = 0; i  <=  getMaxLayersMinus1(); i++ )
    21152083  {
     
    21812149  }
    21822150  m_numIndependentLayers = k;
    2183 #else // H_MV_HLS10_GEN
    2184 
    2185   for( Int i = 0; i  <= getMaxLayersMinus1(); i++ )
    2186   {
    2187     Int iNuhLId = getLayerIdInNuh( i );
    2188     m_numDirectRefLayers[ iNuhLId ] = 0;
    2189     for( Int j = 0; j < i; j++ )
    2190     {
    2191       if( getDirectDependencyFlag(i , j) )
    2192       {
    2193         m_refLayerId[ iNuhLId ][m_numDirectRefLayers[ iNuhLId ]++ ] = getLayerIdInNuh( j );
    2194       }
    2195     }
    2196   }
    2197 
    2198   for (Int i = 0 ; i < MAX_NUM_LAYER_IDS; i++ )
    2199   {
    2200     m_numRefLayers[i] = 0;
    2201   }
    2202 
    2203   for (Int currLayerId = 0; currLayerId <= 62; currLayerId++ )
    2204   {
    2205     for (Int i = 0 ; i < MAX_NUM_LAYER_IDS; i++ )
    2206     {
    2207       m_recursiveRefLayerFlag[currLayerId][i] = 0;
    2208     }
    2209   }
    2210 
    2211   for( Int i = 0; i  <=  getMaxLayersMinus1(); i++ )
    2212   {
    2213     Int iNuhLId = getLayerIdInNuh( i );
    2214     xSetRefLayerFlags( iNuhLId );
    2215     for( Int j = 0; j < 63; j++ )
    2216     {
    2217       m_numRefLayers[ iNuhLId ]  +=  m_recursiveRefLayerFlag[ iNuhLId ][ j ];
    2218     }
    2219   }
    2220  
    2221   for( Int i = 0; i <= getMaxLayersMinus1(); i++ )  // Bug in spec "<" instead of "<="
    2222   {
    2223     Int iNuhLId = getLayerIdInNuh( i );
    2224     Int predIdx = 0;
    2225     for( Int j = iNuhLId + 1; j < 63; j++ )
    2226     {
    2227       if( m_recursiveRefLayerFlag[ j ][ iNuhLId ] )
    2228       {
    2229         m_predictedLayerId[ iNuhLId ][ predIdx++ ] = j;
    2230       }
    2231     }
    2232     m_numPredictedLayers[ iNuhLId ] = predIdx;
    2233   }
    2234  
    2235   Bool countedLayerIdxFlag[ MAX_NUM_LAYERS ];
    2236   for( Int i = 0; i  <=  getMaxLayersMinus1(); i++ )
    2237   {
    2238     countedLayerIdxFlag[ i ] = 0;
    2239   }
    2240   for( Int i = 0, k = 0; i  <=  getMaxLayersMinus1(); i++ )
    2241   {
    2242     Int iNuhLId = getLayerIdInNuh( i );
    2243     if( m_numDirectRefLayers[ iNuhLId ]  ==  0 )
    2244     {
    2245       m_treePartitionLayerIdList[ k ][ 0 ] = iNuhLId;
    2246       m_numLayersInTreePartition[ k ]      = 1;
    2247 
    2248       for( Int j = 0; j < m_numPredictedLayers[ iNuhLId ]; j++ ) 
    2249       {
    2250         if( !countedLayerIdxFlag[ getLayerIdInVps( m_predictedLayerId[ iNuhLId ][ j ] ) ] )   
    2251         {
    2252           m_treePartitionLayerIdList[ k ][ m_numLayersInTreePartition[ k ] ] = m_predictedLayerId[ iNuhLId ][ j ];
    2253           m_numLayersInTreePartition[ k ]++;
    2254           countedLayerIdxFlag[ getLayerIdInVps( m_predictedLayerId[ iNuhLId ][ j ] ) ] = 1;
    2255         }
    2256       }
    2257       k++;
    2258 
    2259       m_numIndependentLayers = k;
    2260     }
    2261   }
    2262 #endif // H_MV_HLS10_GEN
    2263 }
    2264 
    2265 #if !H_MV_HLS10_REF_PRED_LAYERS
    2266 Int TComVPS::getRefLayerId( Int layerIdInNuh, Int idx )
    2267 {
    2268   assert( idx >= 0 && idx < m_numDirectRefLayers[layerIdInNuh] );     
    2269   Int refLayerIdInNuh = m_refLayerId[ layerIdInNuh ][ idx ];   
    2270   assert ( refLayerIdInNuh >= 0 );
    2271   return refLayerIdInNuh;
    2272 }
    2273 #endif
     2151}
     2152
    22742153
    22752154Int TComVPS::getScalabilityId( Int layerIdInVps, ScalabilityType scalType )
     
    23092188  for ( i = 0; i < iNumViews ; i++ )
    23102189  {
    2311 #if H_3D_FIX_UNINIT
    23122190    m_bCamParPresent[i] = false;
    2313 #endif
    23142191    m_bCamParInSliceHeader[i] = false;
    23152192    m_aaaiCodedScale[i] = new Int*[ 2 ];
     
    24242301{
    24252302  assert( lsIdx >= 0 );
    2426 #if H_MV_HLS10_ADD_LAYERSETS
    24272303  assert( lsIdx <= getNumLayerSets() );
    2428 #else
    2429   assert( lsIdx <= getVpsNumLayerSetsMinus1() );
    2430 #endif
    24312304  return (Int) m_layerSetLayerIdList[ lsIdx ].size();
    24322305}
     
    24522325}
    24532326
    2454 #if !H_MV_HLS10_REF_PRED_LAYERS
    2455 Bool TComVPS::getInDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Int depth /*= 0 */ )
    2456 {
    2457 #if H_MV_HLS10_REF_PRED_LAYERS
    2458   // TBD: Remove getInDirectDependencyFlag entirely.
    2459   return getDependencyFlag( depLayeridInVps, refLayeridInVps );
    2460 #else
    2461   assert( depth < 65 );
    2462   Bool dependentFlag = getDirectDependencyFlag( depLayeridInVps, refLayeridInVps );
    2463 
    2464   for( Int i = 0; i < depLayeridInVps && !dependentFlag; i++ )
    2465   {
    2466     if ( getDirectDependencyFlag( depLayeridInVps, i ) )
    2467     {
    2468       dependentFlag = getInDirectDependencyFlag( i, refLayeridInVps, depth++ );
    2469     }
    2470   }
    2471   return dependentFlag;
    2472 #endif
    2473 }
    2474 #endif
    24752327
    24762328Void TComVPS::deriveLayerSetLayerIdList()
     
    25012353  for( Int j = 0; j < getNumLayersInIdList( lsIdx ); j++ )
    25022354  {
    2503 #if H_MV_HLS10_NESSECARY_LAYER
    25042355    if ( getNecessaryLayerFlag( i , j ))
    25052356    {
    2506 #endif
    25072357      m_targetDecLayerIdLists[i].push_back( m_layerSetLayerIdList[ lsIdx ][ j ] );
    2508 #if H_MV_HLS10_NESSECARY_LAYER
    2509     }
    2510 #endif
     2358    }
    25112359
    25122360    if( getOutputLayerFlag( i, j  ))
     
    25572405}
    25582406
    2559 #if !H_MV_HLS10_ADD_LAYERSETS
    2560 Void TComVPS::inferDbpSizeLayerSetZero( TComSPS* sps, Bool encoder )
    2561 {
    2562   for( Int j = 0; j <= getMaxSubLayersInLayerSetMinus1( 0 ); j++ )
    2563   {
    2564     Int maxDecPicBufferingMinus1 = sps->getMaxDecPicBuffering( j ) - 1;
    2565     Int numReorderPics           = sps->getNumReorderPics    ( j );
    2566     Int maxLatencyIncreasePlus1  = sps->getMaxLatencyIncrease( j );
    2567 
    2568     if ( encoder )
    2569     {
    2570       assert( getDpbSize()->getMaxVpsDecPicBufferingMinus1(0, 0, j ) == maxDecPicBufferingMinus1 );
    2571       assert( getDpbSize()->getMaxVpsNumReorderPics       (0,    j ) == numReorderPics           );
    2572       assert( getDpbSize()->getMaxVpsLatencyIncreasePlus1 (0,    j ) == maxLatencyIncreasePlus1  );
    2573     }
    2574     else
    2575     {
    2576       getDpbSize()->setMaxVpsDecPicBufferingMinus1(0, 0, j, maxDecPicBufferingMinus1 );
    2577       getDpbSize()->setMaxVpsNumReorderPics       (0,    j, numReorderPics           );
    2578       getDpbSize()->setMaxVpsLatencyIncreasePlus1 (0,    j, maxLatencyIncreasePlus1  );       
    2579     }     
    2580   }
    2581 }
    2582 #endif
    25832407Bool TComVPS::getAltOutputLayerFlagVar( Int i )
    25842408{
     
    25942418}
    25952419
    2596 #if !H_MV_HLS10_MAXNUMPICS
    2597 Int TComVPS::getMaxNumPics( Int layerId )
    2598 {
    2599   Int maxNumPics = MAX_INT;
    2600   for( Int olsIdx = 0; olsIdx < getNumOutputLayerSets(); olsIdx++)
    2601   {
    2602     Int lsIdx = olsIdxToLsIdx( olsIdx );
    2603     for( Int j = 0; j < getNumLayersInIdList( lsIdx ); j++ )
    2604     {
    2605       if( getLayerSetLayerIdList(lsIdx, j ) ==  layerId )
    2606       {
    2607         Int maxSL = getMaxSubLayersInLayerSetMinus1( lsIdx );
    2608         maxNumPics = std::min( maxNumPics, getDpbSize()->getMaxVpsDecPicBufferingMinus1( olsIdx , j,  maxSL ) );
    2609       }
    2610     }
    2611   }
    2612   assert( maxNumPics != MAX_INT );
    2613   return maxNumPics;
    2614 }
    2615 #endif
    2616 
    2617 #if !H_MV_HLS10_REF_PRED_LAYERS
    2618 Void TComVPS::xSetRefLayerFlags( Int currLayerId )
    2619 {
    2620   for( Int j = 0; j < getNumDirectRefLayers( currLayerId ); j++ )
    2621   {
    2622     Int refLayerId = m_refLayerId[ currLayerId ][ j ];
    2623     m_recursiveRefLayerFlag[ currLayerId ][ refLayerId ] = 1;
    2624     for( Int k = 0; k < MAX_NUM_LAYER_IDS; k++ )
    2625     {
    2626       m_recursiveRefLayerFlag[ currLayerId ][ k ] = m_recursiveRefLayerFlag[ currLayerId ][ k ]  ||  m_recursiveRefLayerFlag[ refLayerId ][ k ];
    2627     }
    2628   }
    2629 }
    2630 
    2631 #endif
    2632 
    2633 #if H_MV_HLS10_PTL_FIX
     2420
     2421
    26342422Int TComVPS::inferProfileTierLevelIdx(Int i, Int j)
    26352423{
     
    26512439  return ptlIdx;
    26522440}
    2653 #endif
    2654 
    2655 #if H_MV_HLS10_ADD_LAYERSETS
     2441
    26562442Void TComVPS::deriveAddLayerSetLayerIdList(Int i)
    26572443{
     
    26762462}
    26772463
    2678 #endif
    2679 
    2680 #if H_MV_HLS10_NESSECARY_LAYER
     2464
    26812465Void TComVPS::deriveNecessaryLayerFlags(Int olsIdx)
    26822466{
     
    27092493  }
    27102494}
    2711 #endif
    2712 
    2713 #if H_MV_HLS10_ADD_LAYERSETS
     2495
    27142496Void TComVPS::printPTL()
    27152497{
     
    27572539#endif
    27582540
    2759 #if H_MV_HLS10_AUX
    27602541  vector<Int> viewOrderIndex;
    27612542  vector<Int> auxId;
    27622543  vector<Int> dependencyId;
    27632544  vector<Int> viewId;
    2764 #endif
    27652545  for (Int i = 0; i <= getMaxLayersMinus1(); i++ )
    27662546  {
    27672547    fullArray.push_back( getMaxLayersMinus1() + 1 );
    27682548    range.push_back( i );
    2769 #if H_MV_HLS10_AUX     
    27702549    viewOrderIndex.push_back( getViewIndex   ( i ) );
    27712550    dependencyId  .push_back( getDependencyId( i ) );
     
    27742553#if H_3D 
    27752554    depthId.push_back( getDepthId( i ) );
    2776 #endif
    27772555#endif
    27782556  }
     
    27872565}
    27882566
    2789 #if H_MV_HLS10_AUX
    27902567Void TComVPS::printScalabilityId()
    27912568{
     
    28252602  std::cout << std::endl;
    28262603}
    2827 #endif
    28282604
    28292605Void TComVPS::printLayerSets()
     
    28802656}
    28812657
    2882 #endif
    28832658
    28842659#endif // H_MV
     
    29102685, m_pcmLog2MaxSize            (  5)
    29112686, m_uiPCMLog2MinSize          (  7)
    2912 #if !MTK_I0099_VPS_EX2
    2913 #if H_3D_QTLPC
    2914 , m_bUseQTL                   (false)
    2915 , m_bUsePC                    (false)
    2916 #endif
    2917 #endif
    29182687, m_bitDepthY                 (  8)
    29192688, m_bitDepthC                 (  8)
     
    29642733#endif
    29652734
    2966 #if !H_MV_HLS10_PPS
    2967   m_numScaledRefLayerOffsets = 0;
    2968 
    2969   for (Int i = 0; i < MAX_NUM_SCALED_REF_LAYERS; i++ )
    2970   {
    2971     m_scaledRefLayerId             [i] = -1;
    2972   }
    2973 
    2974   for (Int i = 0; i < MAX_NUM_LAYERS; i++ )
    2975   {
    2976     m_scaledRefLayerLeftOffset     [i] = 0;
    2977     m_scaledRefLayerTopOffset      [i] = 0;
    2978     m_scaledRefLayerRiFghtOffset    [i] = 0;
    2979     m_scaledRefLayerBottomOffset   [i] = 0;
    2980   }
    2981 #endif
    29822735#endif
    29832736}
     
    31202873, m_entropyCodingSyncEnabledFlag   (false)
    31212874, m_loopFilterAcrossTilesEnabledFlag  (true)
    3122 , m_uniformSpacingFlag           (0)
    3123 , m_iNumColumnsMinus1            (0)
    3124 , m_puiColumnWidth               (NULL)
    3125 , m_iNumRowsMinus1               (0)
    3126 , m_puiRowHeight                 (NULL)
    3127 , m_iNumSubstreams             (1)
     2875, m_uniformSpacingFlag           (false)
     2876, m_numTileColumnsMinus1         (0)
     2877, m_numTileRowsMinus1            (0)
     2878, m_numSubstreams               (1)
    31282879, m_signHideFlag(0)
    31292880, m_cabacInitPresentFlag        (false)
     
    31582909TComPPS::~TComPPS()
    31592910{
    3160   if( m_iNumColumnsMinus1 > 0 && m_uniformSpacingFlag == 0 )
    3161   {
    3162     if (m_puiColumnWidth) delete [] m_puiColumnWidth;
    3163     m_puiColumnWidth = NULL;
    3164   }
    3165   if( m_iNumRowsMinus1 > 0 && m_uniformSpacingFlag == 0 )
    3166   {
    3167     if (m_puiRowHeight) delete [] m_puiRowHeight;
    3168     m_puiRowHeight = NULL;
    3169   }
    31702911  delete m_scalingList;
    31712912}
     
    31862927    // allocate some memory and initialize with default mapping
    31872928    m_iNumDepthmapValues[i] = ((1 << m_uiDepthViewBitDepth)-1)+1;
    3188 #if !FIX_TICKET_77
    3189     m_iBitsPerDepthValue[i] = numBitsForValue(m_iNumDepthmapValues[i]);
    3190 #endif
    31912929    m_iDepthValue2Idx[i]    = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);
    31922930    m_iIdx2DepthValue[i]    = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);
     
    32773015  // update DLT variables
    32783016  m_iNumDepthmapValues[layerIdInVps] = iNumDepthValues;
    3279 #if !FIX_TICKET_77
    3280   m_iBitsPerDepthValue[layerIdInVps] = numBitsForValue(m_iNumDepthmapValues[layerIdInVps]);
    3281 #endif
    3282 }
    3283 
    3284 #if H_3D_DELTA_DLT
     3017}
     3018
    32853019Void TComDLT::getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTOut, UInt *puiDeltaDLTOutNum )
    32863020{
     
    33473081  setDepthLUTs(layerIdInVps, aiIdx2DepthValue, uiNumDepthValues);
    33483082}
    3349 #endif
    33503083
    33513084#endif
     
    33543087Void TComSPS::inferRepFormat( TComVPS* vps, Int layerIdCurr )
    33553088{
    3356 #if H_MV_HLS10_MULTILAYERSPS
    33573089  if ( getMultiLayerExtSpsFlag() )
    3358 #else
    3359   if ( layerIdCurr > 0 )
    3360 #endif
    33613090  {
    33623091    Int            repFormatIdx = getUpdateRepFormatFlag() ?  getSpsRepFormatIdx() : vps->getVpsRepFormatIdx( vps->getLayerIdInVps( layerIdCurr ) ) ;
     
    33743103    setBitDepthC             ( repFormat->getBitDepthVpsChromaMinus8() + 8 );
    33753104    setQpBDOffsetC           ( (Int) (6* ( getBitDepthC() -8 ) ) );
    3376  #if H_MV_HLS10_GEN_VSP_CONF_WIN
    33773105    Window &spsConf    = getConformanceWindow();   
    33783106
     
    33833111    spsConf.setWindowTopOffset   ( repFormat->getConfWinVpsTopOffset()     );
    33843112    spsConf.setWindowBottomOffset( repFormat->getConfWinVpsBottomOffset()  );   
    3385 #endif
    3386 
    3387 #if H_MV_HLS10_MULTILAYERSPS
     3113
    33883114   if ( getMultiLayerExtSpsFlag() && getUpdateRepFormatFlag() )
    3389 #else
    3390    if ( getLayerId() > 0 && getUpdateRepFormatFlag() )
    3391 #endif
    33923115    {
    33933116      assert( getChromaFormatIdc()      <=  repFormat->getChromaFormatVpsIdc()         );
     
    34233146  const std::vector<Int>& targetDecLayerIdList = vps->getTargetDecLayerIdList( vps->olsIdxToLsIdx( targetOptLayerSetIdx ));
    34243147
    3425 #if H_MV_HLS10_MULTILAYERSPS
    34263148  if ( getMultiLayerExtSpsFlag() )
    3427 #else
    3428   if (getLayerId() > 0 )
    3429 #endif
    34303149  {
    34313150    Int layerIdx = 0;         
     
    34453164      Int maxDecPicBufferingMinus1 = vps->getDpbSize()->getMaxVpsDecPicBufferingMinus1( targetOptLayerSetIdx, layerIdx, i ) ;
    34463165
    3447 #if H_MV_HLS10_MULTILAYERSPS
    34483166      // This preliminary fix needs to be checked.
    34493167      Int maxNumReorderPics       = vps->getDpbSize()->getMaxVpsNumReorderPics( targetOptLayerSetIdx, i );
    34503168      Int maxLatencyIncreasePlus1 = vps->getDpbSize()->getMaxVpsLatencyIncreasePlus1( targetOptLayerSetIdx, i );
    3451 #endif
    34523169      if ( encoder )     
    34533170      {
    34543171        assert( getMaxDecPicBuffering( i ) - 1 == maxDecPicBufferingMinus1 );
    3455 #if H_MV_HLS10_MULTILAYERSPS
    34563172        // This preliminary fix needs to be checked.
    34573173        assert( getNumReorderPics( i )     == maxNumReorderPics       );
    34583174        assert( getMaxLatencyIncrease( i ) == maxLatencyIncreasePlus1 );
    3459 #endif   
    34603175
    34613176      }
    34623177      else
    34633178      {
    3464 #if !H_MV_HLS10_MULTILAYERSPS
    3465         setMaxDecPicBuffering(i, maxDecPicBufferingMinus1 + 1 );
    3466 #else
    34673179        // This preliminary fix needs to be checked.
    34683180        setMaxDecPicBuffering( maxDecPicBufferingMinus1 + 1 , i);
    34693181        setNumReorderPics    ( maxNumReorderPics, i );
    34703182        setMaxLatencyIncrease( maxLatencyIncreasePlus1 - 1 , i);
    3471 #endif
    34723183      }
    34733184    }   
     
    34773188Void TComSPS::checkRpsMaxNumPics( TComVPS* vps, Int currLayerId )
    34783189{
    3479 #if !H_MV_HLS10_MAXNUMPICS
    3480   // In spec, when rps is in SPS, nuh_layer_id of SPS is used instead
    3481   // of nuh_layer_id of slice (currLayerId), this seems to be a bug.
    3482 #endif
    34833190  for (Int i = 0; i < getRPSList()->getNumberOfReferencePictureSets(); i++ )
    34843191  {
     
    34863193    if ( !rps->getInterRPSPrediction() )
    34873194    {
    3488 #if H_MV_HLS10_MAXNUMPICS
    34893195      rps->checkMaxNumPics( vps->getVpsExtensionFlag(), MAX_INT, getLayerId(), getMaxDecPicBuffering( getSpsMaxSubLayersMinus1() ) - 1 );   // INT_MAX to be replaced by DpbSize
    3490 #else
    3491       rps->checkMaxNumPics( vps->getVpsExtensionFlag(), vps->getMaxNumPics( currLayerId ),
    3492         getLayerId(), getMaxDecPicBuffering( getSpsMaxSubLayersMinus1() ) - 1 ); 
    3493 #endif
    3494     }
    3495   }
    3496 }
    3497 
    3498 #if H_MV_HLS10_MULTILAYERSPS
     3196    }
     3197  }
     3198}
     3199
    34993200Void TComSPS::inferSpsMaxSubLayersMinus1(Bool atPsActivation, TComVPS* vps)
    35003201{
     
    35173218  }
    35183219}
    3519 #endif
    35203220#endif
    35213221
     
    38803580{
    38813581  TComVPS* vps = getVPS();
    3882 #if H_MV_HLS10_REF_PRED_LAYERS
    38833582  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) );
    3884 #else
    3885   Int refLayerIdx = vps->getLayerIdInVps( vps->getRefLayerId( getLayerId(), i ) );
    3886 #endif
    38873583
    38883584  Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >=  getTLayer() )  && ( getTLayer() == 0  ) &&
     
    39553651Int TComSlice::getRefPicLayerId( Int i )
    39563652{
    3957 #if H_MV_HLS10_REF_PRED_LAYERS
    39583653  return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
    3959 #else
    3960   return getVPS()->getRefLayerId( getLayerId(), getInterLayerPredLayerIdc( i ) );
    3961 #endif
    39623654}
    39633655
     
    40653757      m_bApplyIC = true;
    40663758      Int refLayer = curLayer-1;
    4067 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     3759
    40683760      Int ICEnableCandidate = getICEnableCandidate(refLayer);
    40693761      Int ICEnableNum = getICEnableNum(refLayer);
     
    40833775      setICEnableCandidate(curLayer, 0);
    40843776      setICEnableNum(curLayer, 0);
    4085 #else
    4086       if( (refLayer>=0) && (g_aICEnableCANDIDATE[refLayer]>0) )
    4087       {   
    4088         Double ratio=Double(g_aICEnableNUM[refLayer])/Double(g_aICEnableCANDIDATE[refLayer]);
    4089 
    4090         if( ratio > IC_LOW_LATENCY_ENCODING_THRESHOLD)
    4091 {
    4092           m_bApplyIC=true;
    4093         }
    4094         else
    4095         {
    4096           m_bApplyIC=false;
    4097         }
    4098       }
    4099       g_aICEnableNUM[curLayer]=0;
    4100       g_aICEnableCANDIDATE[curLayer]=0;
    4101       g_lastlayer=getDepth();
    4102 #endif
    41033777    }
    41043778  }
     
    42103884
    42113885#if H_3D_DDD
    4212 #if LGE_FCO_I0116
     3886#if H_3D_FCO
    42133887  if( getIsDepth() && getViewIndex() > 0 && getVPS()->getMPIFlag(layerIdInVPS))
    42143888#else
     
    46964370, m_nonPackedConstraintFlag(false)
    46974371, m_frameOnlyConstraintFlag(false)
    4698 #if H_MV_HLS10_PTL
     4372#if H_MV
    46994373  , m_max12bitConstraintFlag      ( false )
    47004374  , m_max10bitConstraintFlag      ( false )
     
    47124386}
    47134387
    4714 #if H_MV_HLS10_PTL_INFER_FIX
     4388#if H_MV
    47154389Bool ProfileTierLevel::getV2ConstraintsPresentFlag()
    47164390{
     
    47574431  copyV2ConstraintFlags      ( ptlRef );
    47584432}
    4759 
    47604433#endif
    47614434
     
    47674440
    47684441#if H_MV
    4769 #if !H_MV_HLS10_PTL_INFER_FIX
    4770 Void TComPTL::copyLevelFrom( TComPTL* source )
    4771 {
    4772   getGeneralPTL()->setLevelIdc( source->getGeneralPTL()->getLevelIdc() );
    4773   for( Int subLayer = 0; subLayer < 6; subLayer++ )
    4774   {
    4775     setSubLayerLevelPresentFlag( subLayer, source->getSubLayerLevelPresentFlag( subLayer ) );
    4776     getSubLayerPTL( subLayer )->setLevelIdc( source->getSubLayerPTL( subLayer )->getLevelIdc() );
    4777   }
    4778 }
    4779 #else
    47804442Void TComPTL::inferGeneralValues(Bool profilePresentFlag, Int k, TComPTL* refPTL)
    47814443{
     
    48654527}
    48664528
    4867 #endif
    48684529#endif
    48694530//! \}
     
    49084569
    49094570  m_vpsVuiBspHrdPresentFlag = false;
    4910 #if H_MV_HLS10_VPS_VUI_BSP
    49114571  m_vpsVuiBspHrdParameters  = NULL;
    4912 #else
    4913   m_vpsVuiBspHrdParameters  = new TComVpsVuiBspHrdParameters();
    4914 #endif
    49154572}
    49164573
     
    49584615}
    49594616
    4960 #if !H_MV_HLS10_VPS_VUI_BSP
    4961 Void TComVpsVuiBspHrdParameters::checkLayerInBspFlag( TComVPS* vps, Int h )
    4962 {
    4963   // It is a requirement of bitstream conformance that bitstream partition with index j shall not include
    4964   // direct or indirect reference layers of any layers in bitstream partition i for any values of i and j
    4965   // in the range of 0 to num_bitstream_partitions[ h ] ?1, inclusive, such that i is less than j.
    4966 
    4967   for ( Int partJ = 0; partJ < getNumBitstreamPartitions( h ); partJ++ )
    4968   {       
    4969     for ( Int partI = 0; partI < partJ; partI++ )
    4970     {
    4971       for ( Int layerJ = 0; layerJ < vps->getMaxLayersMinus1(); layerJ++ )
    4972       {
    4973         if ( m_layerInBspFlag[ h ][partJ][layerJ ] )
    4974         {
    4975           for ( Int layerI = 0; layerI < vps->getMaxLayersMinus1(); layerI++ )
    4976           {
    4977             if ( m_layerInBspFlag[ h ][partI][layerI] )
    4978             {
    4979               assert( !vps->getInDirectDependencyFlag( layerI, layerJ ) );
    4980             }
    4981           }
    4982         }
    4983       }
    4984     }
    4985   }
    4986 
    4987   // ---------------
    4988   // To be added:
    4989   // When vps_base_layer_internal_flag is equal to 0 and layer_in_bsp_flag[ h ][ i ][ 0 ] is equal to 1 for any value of h in the
    4990   // range of 1 to vps_num_layer_sets_minus1, inclusive, and any value of i in the range of 0 to num_bitstream_partitions[ h ] - 1,
    4991   // inclusive, the value of layer_in_bsp_flag[ h ][ i ][ j ] for at least one value of j in the range of 1 to
    4992   // NumLayersInIdList[ h ] - 1, inclusive, shall be equal to 1.
    4993   // ---------------
    4994 
    4995 
    4996   // When num_bitstream_partitions[ h ] is equal to 1 for any value of h in the range 1 to vps_num_layer_set_minus1, inclusive,
    4997   // the value of layer_in_bsp_flag[ h ][ 0 ][ j ] should be equal to 0 for at least one value of j in the range 0 to
    4998   // NumLayersInIdList[ h ] ? 1, inclusive.
    4999 
    5000 
    5001   if ( getNumBitstreamPartitions( h ) == 1 )
    5002   {
    5003     Bool atLeastOneZero = false;
    5004     for ( Int j = 0; j <= vps->getNumLayersInIdList( h ) - 1; j++ )
    5005     {
    5006       atLeastOneZero = atLeastOneZero || !getLayerInBspFlag( h, 0, j );
    5007     }   
    5008     assert( atLeastOneZero );
    5009   }
    5010 
    5011  
    5012   // For any value of h in the range 1 to vps_num_layer_set_minus1, inclusive, the value of layer_in_bsp_flag[ h ][ i ][ j ]
    5013   // shall be equal to 1 for at most one value of i in the range of 0 to num_bitstream_partitions[ h ] ? 1, inclusive.
    5014 
    5015   for ( Int j = 0; j <= vps->getNumLayersInIdList( h ) - 1; j++ )
    5016   {
    5017     Int numLayerInBsp = 0;
    5018     for ( Int i = 0; i <= getNumBitstreamPartitions( h ) - 1; i++ )
    5019     {
    5020       numLayerInBsp += ( getLayerInBspFlag( h, i, j ) ? 1 : 0 ); 
    5021     }   
    5022     assert( numLayerInBsp <= 1 );
    5023   }
    5024 
    5025 }
    5026 
    5027 Void TComVpsVuiBspHrdParameters::checkBspCombHrdAndShedIdx( TComVPS* vps, Int h, Int i, Int j )
    5028 {
    5029   // bsp_comb_hrd_idx
    5030   assert( getBspCombSchedIdx(h, i, j ) >= 0 );
    5031   assert( getBspCombSchedIdx(h, i, j ) <= getVpsNumBspHrdParametersMinus1() );
    5032 
    5033   // bsp_comb_sched_idx
    5034   assert( getBspCombSchedIdx(h, i, j ) >= 0 );
    5035 
    5036   //* This check needs to activated,  when HighestTid is available here   
    5037   //  assert(  getBspCombSchedIdx(h, i, j ) <= vps->getHrdParameters( getBspCombHrdIdx( h, i, j ) )->getCpbCntMinus1( highestTid ) );
    5038 }
    5039 #endif
    5040 
    5041 #if H_MV_HLS10_VPS_VUI_BSP
     4617
    50424618
    50434619TComVpsVuiBspHrdParameters::~TComVpsVuiBspHrdParameters()
     
    51374713}
    51384714
    5139 #endif
    51404715
    51414716Void TComVUI::inferVideoSignalInfo( TComVPS* vps, Int layerIdCurr )
     
    51734748      for (Int k = 0; k < MAX_NUM_LAYER_IDS; k++ )
    51744749      {
    5175 #if H_MV_HLS10_ADD_LAYERSETS
    51764750        m_maxVpsDecPicBufferingMinus1[i][k][j] = MIN_INT;
    5177 #else
    5178         m_maxVpsDecPicBufferingMinus1[i][k][j] = 0;
    5179 #endif
    51804751      }
    51814752    }
  • trunk/source/Lib/TLibCommon/TComSlice.h

    r1066 r1084  
    4545#include "TComRom.h"
    4646#include "TComList.h"
    47 #if H_MV_HLS10_GEN_FIX
    4847#if H_MV
    4948#include <ios>
    5049#include <iostream>
    5150#include <iomanip>
    52 #endif
    5351#endif
    5452//! \ingroup TLibCommon
     
    207205  Bool m_frameOnlyConstraintFlag;
    208206 
    209 #if H_MV_HLS10_PTL
    210207#if H_MV
    211208  Bool m_max12bitConstraintFlag;
     
    220217  Bool m_inbldFlag;
    221218#endif
    222 #endif
    223219public:
    224220  ProfileTierLevel();
     
    252248
    253249#if H_MV
    254 #if H_MV_HLS10_PTL
    255250  Void setMax12bitConstraintFlag( Bool flag ) { m_max12bitConstraintFlag = flag; }
    256251  Bool getMax12bitConstraintFlag(  ) { return m_max12bitConstraintFlag; }
     
    281276  Void setInbldFlag( Bool flag ) { m_inbldFlag = flag; }
    282277  Bool getInbldFlag(  ) { return m_inbldFlag; }
    283 #endif
    284 #if H_MV_HLS10_PTL_INFER_FIX
    285278  Bool getV2ConstraintsPresentFlag(); 
    286279  Bool getInbldPresentFlag();
    287280  Void copyV2ConstraintFlags( ProfileTierLevel* ptlRef );
    288281  Void copyProfile( ProfileTierLevel* ptlRef );
    289 #endif
    290282#endif
    291283};
     
    310302  ProfileTierLevel* getSubLayerPTL(Int i)  { return &m_subLayerPTL[i]; }
    311303#if H_MV
    312 #if H_MV_HLS10_PTL_INFER_FIX
    313304  Void inferGeneralValues ( Bool profilePresentFlag  , Int k, TComPTL* refPTL );;
    314305  Void inferSubLayerValues( Int maxNumSubLayersMinus1, Int k, TComPTL* refPTL );;
    315 #else
    316   Void copyLevelFrom( TComPTL* source );
    317 #endif
    318306#endif
    319307};
     
    501489class TComVpsVuiBspHrdParameters
    502490{
    503 #if H_MV_HLS10_VPS_VUI_BSP
    504491
    505492  /* Not yet tested */
     
    563550  Void setHrdParametermeters( Int k, TComHRD* val  ) {  *(m_hrdParameters + k ) = *val; };
    564551  TComHRD* getHrdParametermeters( Int k ) {  return m_hrdParameters + k; };
    565 #else
    566 private:
    567   Int  m_vpsNumBspHrdParametersMinus1;
    568   Bool m_bspCprmsPresentFlag[MAX_NUM_BSP_HRD_PARAMETERS];
    569   Int  m_numBitstreamPartitions[MAX_VPS_OP_SETS_PLUS1];
    570   Bool m_layerInBspFlag[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_LAYERS];
    571   Int  m_numBspSchedCombinationsMinus1[MAX_VPS_OP_SETS_PLUS1];
    572   Int  m_bspCombHrdIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION];
    573   Int  m_bspCombSchedIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION];
    574   TComHRD* m_hrdParameters[MAX_NUM_BSP_HRD_PARAMETERS];
    575 public:
    576 
    577   Void setVpsNumBspHrdParametersMinus1( Int  val ) { m_vpsNumBspHrdParametersMinus1 = val; }
    578   Int  getVpsNumBspHrdParametersMinus1(  ) { return m_vpsNumBspHrdParametersMinus1; }
    579 
    580   Void setBspCprmsPresentFlag( Int i, Bool flag ) { m_bspCprmsPresentFlag[i] = flag; }
    581   Bool getBspCprmsPresentFlag( Int i ) { return m_bspCprmsPresentFlag[i]; }
    582 
    583   Void setNumBitstreamPartitions( Int h, Int  val ) { m_numBitstreamPartitions[h] = val; }
    584   Int  getNumBitstreamPartitions( Int h ) { return m_numBitstreamPartitions[h]; }
    585 
    586   Void setLayerInBspFlag( Int h, Int i, Int j, Bool flag ) { m_layerInBspFlag[h][i][j] = flag; }
    587   Bool getLayerInBspFlag( Int h, Int i, Int j ) { return m_layerInBspFlag[h][i][j]; }
    588   Void checkLayerInBspFlag ( TComVPS* vps, Int h ); 
    589 
    590   Void setNumBspSchedCombinationsMinus1( Int h, Int  val ) { m_numBspSchedCombinationsMinus1[h] = val; }
    591   Int  getNumBspSchedCombinationsMinus1( Int h ) { return m_numBspSchedCombinationsMinus1[h]; }
    592 
    593   Void setBspCombHrdIdx( Int h, Int i, Int j, Int  val ) { m_bspCombHrdIdx[h][i][j] = val; }
    594   Int  getBspCombHrdIdx( Int h, Int i, Int j ) { return m_bspCombHrdIdx[h][i][j]; }
    595   Int  getBspCombHrdIdxLen() { return gCeilLog2( getVpsNumBspHrdParametersMinus1() + 1);  };
    596 
    597 
    598   Void setBspCombSchedIdx( Int h, Int i, Int j, Int  val ) { m_bspCombSchedIdx[h][i][j] = val; }
    599   Int  getBspCombSchedIdx( Int h, Int i, Int j ) { return m_bspCombSchedIdx[h][i][j]; }
    600 
    601   Void checkBspCombHrdAndShedIdx( TComVPS* vps, Int h, Int i, Int j );
    602 
    603   Void setHrdParametermeters( Int k, TComHRD* val  ) {  m_hrdParameters[k] = val; };
    604   TComHRD* getHrdParametermeters( Int k ) {  return m_hrdParameters[k]; };
    605 #endif
    606552};
    607553
     
    630576  Bool m_wppNotInUseFlag;
    631577  Bool m_wppInUseFlag                [MAX_NUM_LAYERS];
    632 #if H_MV_HLS10_VPS_VUI
    633578  Bool m_singleLayerForNonIrapFlag;
    634579  Bool m_higherLayerIrapSkipFlag;
    635 #endif
    636580  Bool m_ilpRestrictedRefLayersFlag;
    637581  Int  m_minSpatialSegmentOffsetPlus1[MAX_NUM_LAYERS][MAX_NUM_LAYERS];
     
    708652  Bool getWppInUseFlag( Int i ) { return m_wppInUseFlag[i]; }
    709653
    710 #if H_MV_HLS10_VPS_VUI
    711654  Void setSingleLayerForNonIrapFlag( Bool flag ) { m_singleLayerForNonIrapFlag = flag; }
    712655  Bool getSingleLayerForNonIrapFlag(  ) { return m_singleLayerForNonIrapFlag; }
     
    714657  Void setHigherLayerIrapSkipFlag( Bool flag ) { m_higherLayerIrapSkipFlag = flag; }
    715658  Bool getHigherLayerIrapSkipFlag(  ) { return m_higherLayerIrapSkipFlag; }
    716 #endif
    717659
    718660  Void setIlpRestrictedRefLayersFlag( Bool flag ) { m_ilpRestrictedRefLayersFlag = flag; }
     
    750692  Int  m_bitDepthVpsLumaMinus8;
    751693  Int  m_bitDepthVpsChromaMinus8;
    752 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    753694  Bool m_conformanceWindowVpsFlag;
    754695  Int  m_confWinVpsLeftOffset;
     
    756697  Int  m_confWinVpsTopOffset;
    757698  Int  m_confWinVpsBottomOffset;
    758 #endif
    759699
    760700public:
    761701
    762 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    763702  TComRepFormat()
    764703  {
     
    769708  m_confWinVpsBottomOffset   = 0;
    770709  }; 
    771 #else
    772   TComRepFormat() { }; 
    773 #endif
    774710
    775711  Void setChromaAndBitDepthVpsPresentFlag( Bool flag ) { m_chromaAndBitDepthVpsPresentFlag = flag; }
     
    796732  Int  getBitDepthVpsChromaMinus8(  ) { return m_bitDepthVpsChromaMinus8; }
    797733
    798 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    799734  Void setConformanceWindowVpsFlag( Bool flag ) { m_conformanceWindowVpsFlag = flag; }
    800735  Bool getConformanceWindowVpsFlag(  ) { return m_conformanceWindowVpsFlag; }
     
    811746  Void setConfWinVpsBottomOffset( Int  val ) { m_confWinVpsBottomOffset = val; }
    812747  Int  getConfWinVpsBottomOffset(  ) { return m_confWinVpsBottomOffset; }
    813 #endif
    814748};
    815749
     
    834768
    835769  Void setMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j, Int  val ) { m_maxVpsDecPicBufferingMinus1[i][k][j] = val; }
    836   #if H_MV_HLS10_ADD_LAYERSETS
    837770  Int  getMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j ) { assert( m_maxVpsDecPicBufferingMinus1[i][k][j] >= 0 ); return m_maxVpsDecPicBufferingMinus1[i][k][j]; }     
    838   #else
    839   Int  getMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j ) { return m_maxVpsDecPicBufferingMinus1[i][k][j]; }
    840   #endif
    841771
    842772  Void setMaxVpsNumReorderPics( Int i, Int j, Int  val ) { m_maxVpsNumReorderPics[i][j] = val; }
     
    853783#if H_MV
    854784  Bool        m_vpsBaseLayerInternalFlag;
    855 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    856785  Bool        m_vpsBaseLayerAvailableFlag;
    857 #endif // H_MV_HLS10_GEN
    858786#endif
    859787
     
    925853  Int         m_layerSetIdxForOlsMinus1  [MAX_VPS_OUTPUTLAYER_SETS]; 
    926854  Bool        m_outputLayerFlag          [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1];
    927 #if H_MV_HLS10_PTL
    928855  Int         m_profileTierLevelIdx      [MAX_VPS_OUTPUTLAYER_SETS ][MAX_NUM_LAYERS];
    929 #else 
    930   Int         m_profileLevelTierIdx      [MAX_VPS_OUTPUTLAYER_SETS ];
    931 #endif
    932856  Bool        m_altOutputLayerFlag       [MAX_VPS_OUTPUTLAYER_SETS];
    933857  Bool        m_repFormatIdxPresentFlag;
     
    958882  // VPS EXTENSION SEMANTICS VARIABLES
    959883  Int         m_layerIdInVps             [MAX_NUM_LAYERS   ];
    960 #if H_MV_HLS10_REF_PRED_LAYERS
    961884  Int         m_dependencyFlag           [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    962 #endif
    963885
    964886  Int         m_numDirectRefLayers       [MAX_NUM_LAYERS];
    965 #if H_MV_HLS10_REF_PRED_LAYERS
    966887  Int         m_idDirectRefLayer         [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
    967 #else
    968   Int         m_refLayerId               [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
    969 #endif
    970888
    971889  Int         m_numRefLayers             [MAX_NUM_LAYER_IDS];
    972 #if H_MV_HLS10_REF_PRED_LAYERS
    973890  Int         m_idRefLayer               [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
    974 #endif
    975891
    976892
    977893  Int         m_numPredictedLayers       [MAX_NUM_LAYERS ];
    978 #if !H_MV_HLS10_REF_PRED_LAYERS
    979   Int         m_predictedLayerId         [MAX_NUM_LAYERS][MAX_NUM_LAYER_IDS];
    980 #else
    981894  Int         m_idPredictedLayer         [MAX_NUM_LAYERS][MAX_NUM_LAYER_IDS];
    982 #endif
    983895  Int         m_numIndependentLayers;
    984896  Int         m_numLayersInTreePartition [MAX_NUM_LAYER_IDS];
    985897  Int         m_treePartitionLayerIdList [MAX_NUM_LAYERS][MAX_NUM_LAYER_IDS];
    986 #if H_MV_HLS10_REF_PRED_LAYERS
    987898  Bool        m_recursiveRefLayerFlag    [MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS];
    988   #endif
    989899  Int         m_viewIndex                [MAX_NUM_LAYERS   ];
    990900 
     
    993903  std::vector< std::vector< Int> >       m_layerSetLayerIdList;
    994904
    995 #if H_MV_HLS10_NESSECARY_LAYER
    996905  Int        m_numNecessaryLayers        [MAX_VPS_OUTPUTLAYER_SETS];
    997906  Bool       m_necessaryLayerFlag        [MAX_VPS_OUTPUTLAYER_SETS][MAX_NUM_LAYERS];
    998 #endif
    999907
    1000908  Int         xGetDimBitOffset( Int j );
    1001 #if H_MV_HLS10_REF_PRED_LAYERS
    1002909  Void        xSetRefLayerFlags( Int currLayerId );
    1003 #endif
    1004910  // VPS EXTENSION 2 SYNTAX ELEMENTS
    1005911#if H_3D_ARP
     
    1009915#if H_3D_IV_MERGE
    1010916  Bool        m_ivMvPredFlag             [ MAX_NUM_LAYERS ];
    1011 #if SEC_HLS_CLEANUP_I0100
    1012917  Bool        m_ivMvScalingFlag          [ MAX_NUM_LAYERS ];
    1013 #endif
    1014918#if H_3D_SPIVMP
    1015919  Int         m_iSubPULog2Size           [MAX_NUM_LAYERS   ];
    1016 #if MTK_I0099_VPS_EX2
    1017920  Int         m_iSubPUMPILog2Size        [MAX_NUM_LAYERS   ];
    1018 #else
    1019   Int         m_iSubPUMPILog2Size;
    1020 #endif
    1021 #endif
    1022 #endif
    1023 #if MTK_I0099_VPS_EX2
     921#endif
     922#endif
     923#if H_3D_QTLPC
    1024924  Bool        m_bLimQtPredFlag           [ MAX_NUM_LAYERS ];
    1025925#endif
     
    1031931#endif
    1032932  Bool        m_vpsDepthModesFlag        [MAX_NUM_LAYERS   ];
    1033 #if SEPARATE_FLAG_I0085
     933#if H_3D
    1034934  Bool        m_bIVPFlag                 [MAX_NUM_LAYERS   ];
    1035935#endif
    1036 
    1037936#if H_3D
    1038937  UInt        m_uiCamParPrecision;
     
    1041940  Int         ***m_aaaiCodedScale ;
    1042941  Int         ***m_aaaiCodedOffset;
    1043 
    1044 #if !SEC_HLS_CLEANUP_I0100
    1045   Bool        m_ivMvScalingFlag;
    1046 #endif
    1047 
    1048942#endif
    1049943#if H_3D_INTER_SDC
     
    1081975  Void    setVpsBaseLayerInternalFlag( Bool flag ) { m_vpsBaseLayerInternalFlag = flag; }
    1082976  Bool    getVpsBaseLayerInternalFlag(  )          { return m_vpsBaseLayerInternalFlag; }
    1083 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    1084977  Void    setVpsBaseLayerAvailableFlag( Bool flag ) { m_vpsBaseLayerAvailableFlag = flag; }
    1085978  Bool    getVpsBaseLayerAvailableFlag(  )          { return m_vpsBaseLayerAvailableFlag; }
    1086979#endif
    1087 #endif
    1088980
    1089981  UInt    getMaxTLayers  ()                   { return m_uiMaxTLayers;   }
     
    1092984#if H_MV   
    1093985  UInt    getMaxSubLayersMinus1()             { return m_uiMaxTLayers - 1;  }  // For consistency with draft spec
    1094 #if H_MV_HLS10_GEN_FIX
    1095986  Void    setMaxSubLayersMinus1(UInt val)     { m_uiMaxTLayers = (val + 1); };
    1096 #endif
    1097987  UInt    getMaxLayersMinus1()                { return m_uiMaxLayersMinus1;  };
    1098988  Void    setMaxLayersMinus1(UInt l)          { m_uiMaxLayersMinus1 = l; }
     
    11341024
    11351025#if H_MV
    1136 #if H_MV_HLS10_PTL
    11371026  TComPTL* getPTL( Int idx = 0 ) { return &m_pcPTL[idx]; }
    1138 #else
    1139   TComPTL* getPTL( Int layerSet = 0 ) { return &m_pcPTL[layerSet]; }
    1140 #endif
    11411027#else
    11421028  TComPTL* getPTL() { return &m_pcPTL; }
     
    12181104  Void    setLayerSetIdxForOlsMinus1( Int outLayerSetIdx, Int val )        { m_layerSetIdxForOlsMinus1[ outLayerSetIdx ]  = val; }
    12191105  Int     getLayerSetIdxForOlsMinus1( Int outLayerSetIdx )                 { return m_layerSetIdxForOlsMinus1[ outLayerSetIdx ]; }
    1220 #if VPS_MISC_UPDATES
    12211106  Int     getLayerSetIdxForOlsMinus1Len( Int outLayerSetIdx )              { return gCeilLog2( getNumLayerSets() ); }
    1222 #endif
    12231107
    12241108  Void    setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag )       { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; }
     
    12271111  Bool    inferOutputLayerFlag( Int i, Int j );
    12281112
    1229 #if H_MV_HLS10_PTL
    12301113  Void    setProfileTierLevelIdx( Int i, Int j, Int val )                  { m_profileTierLevelIdx[ i ][ j ] = val; }
    12311114  Int     getProfileTierLevelIdx( Int i, Int j )                           { return m_profileTierLevelIdx[ i ][ j ]; }
    1232 #if H_MV_HLS10_PTL_FIX
    12331115  Int     inferProfileTierLevelIdx( Int i, Int j );
    1234 #endif
    1235 #else
    1236   Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx ] = val; }
    1237   Int     getProfileLevelTierIdx( Int outLayerSetIdx )                     { return m_profileLevelTierIdx[ outLayerSetIdx ]; }
    1238 #endif
    12391116 
    12401117  Void    setAltOutputLayerFlag( Int i, Bool flag )                        { m_altOutputLayerFlag[i] = flag; }
     
    12661143  TComDpbSize* getDpbSize( )                                               { return m_dpbSize;}
    12671144 
    1268 #if !H_MV_HLS10_ADD_LAYERSETS 
    1269   Void    inferDbpSizeLayerSetZero( TComSPS* sps, Bool encoder );
    1270 #endif
    12711145
    12721146  Void    setPocLsbNotPresentFlag( Int i, Bool flag )                      { m_pocLsbNotPresentFlag[i] = flag; }
     
    12991173
    13001174  Int     getViewIndex    ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX  ); }   
    1301 #if H_MV_HLS10_AUX
    13021175  Int     getAuxId        ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), AUX_ID  ); }   
    13031176  Int     getDependencyId ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPENDENCY_ID  ); }   
    1304 #endif
    13051177  Int     getNumViews();
    13061178
    1307 #if H_MV_HLS10_REF_PRED_LAYERS
    13081179  Bool    getDependencyFlag( Int i, Int j )                                { return m_dependencyFlag[i][j]; }
    1309 #endif
    13101180  Int     getNumDirectRefLayers( Int layerIdInNuh )                        { return m_numDirectRefLayers[ layerIdInNuh ];  };                               
    1311 #if !H_MV_HLS10_REF_PRED_LAYERS
    1312   Int     getRefLayerId        ( Int layerIdInNuh, Int idx );;
    1313 #endif
    13141181  Int     getNumRefLayers            ( Int i )        { return m_numRefLayers[i]; }
    13151182  Int     getNumPredictedLayers      ( Int i )        { return m_numPredictedLayers[i]; }
    13161183
    1317 #if !H_MV_HLS10_REF_PRED_LAYERS 
    1318   Int     getPredictedLayerId        ( Int i, Int j ) { return m_predictedLayerId[i][j]; }
    1319 #else
    13201184  Int     getIdRefLayer              ( Int i, Int j ) { assert( j >= 0 && j < getNumRefLayers      ( i )); return m_idRefLayer      [i][j]; }
    13211185  Int     getIdPredictedLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumPredictedLayers( i )); return m_idPredictedLayer[i][j]; }
    13221186  Int     getIdDirectRefLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumDirectRefLayers( i )); return m_idDirectRefLayer[i][j]; }
    1323 #endif
    13241187  Int     getNumIndependentLayers    (  )             { return m_numIndependentLayers; }
    13251188  Int     getNumLayersInTreePartition( Int i )        { return m_numLayersInTreePartition[i]; }
     
    13281191  Int     getNumLayerSets( )                                               { return getVpsNumLayerSetsMinus1() + 1 + getNumAddLayerSets();  }; 
    13291192 
    1330 #if H_MV_HLS10_ADD_LAYERSETS
    13311193  Int     getFirstAddLayerSetIdx()                    { return getVpsNumLayerSetsMinus1() + 1; }
    13321194  Int     getLastAddLayerSetIdx()                     { return getFirstAddLayerSetIdx() + getNumAddLayerSets() - 1; }
    1333 #endif
    13341195  Bool    checkVPSExtensionSyntax();
    13351196  Int     scalTypeToScalIdx   ( ScalabilityType scalType );
    13361197
    1337 #if H_MV_HLS10_PTL
    13381198  Int     getProfileTierLevelIdxLen()                                      { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); };       
    1339 #else
    1340   Int     getProfileLevelTierIdxLen()                                      { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); };       
    1341 #endif
    13421199  Int     getVpsRepFormatIdxLen()                                          { return gCeilLog2( getVpsNumRepFormatsMinus1() + 1 ); };       
    13431200
     
    13501207  Void    deriveLayerSetLayerIdList();
    13511208
    1352 #if H_MV_HLS10_ADD_LAYERSETS
    13531209  Int     olsIdxToLsIdx( Int i )                                           { return ( i < getNumLayerSets() ) ? i  : getLayerSetIdxForOlsMinus1( i ) + 1 ; };
    1354 #else
    1355   Int     olsIdxToLsIdx( Int i )                                           { return ( i <= getVpsNumLayerSetsMinus1() ) ? i  : getLayerSetIdxForOlsMinus1( i ) + 1 ; };
    1356 #endif
    13571210  Void    initTargetLayerIdLists  ( );
    13581211  Void    deriveTargetLayerIdList ( Int i );
     
    13631216  Int     getOlsHighestOutputLayerId( Int i )                              { return getTargetOptLayerIdList( i ).back(); }; 
    13641217
    1365 #if H_MV_HLS10_ADD_LAYERSETS
    13661218  Void    deriveAddLayerSetLayerIdList( Int i );
    1367 #endif
    1368 #if H_MV_HLS10_NESSECARY_LAYER
    13691219  Void    deriveNecessaryLayerFlags( Int olsIdx );;
    13701220  Int     getNecessaryLayerFlag( Int i, Int j )                            { AOF( i >= 0 && i < getNumOutputLayerSets() ); AOF( j >= 0 && j < getNumLayersInIdList( olsIdxToLsIdx( i ) )  );  return m_necessaryLayerFlag[i][j]; }; 
    1371 #endif
    13721221
    13731222  Int     getMaxSubLayersInLayerSetMinus1( Int i );
     
    13801229
    13811230  // helpers
    1382 #if !H_MV_HLS10_REF_PRED_LAYERS
    1383   Bool    getInDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Int depth = 0 );
    1384 #endif
    1385 #if !H_MV_HLS10_MAXNUMPICS
    1386   Int     getMaxNumPics( Int layerId );
    1387 #endif
    1388 #if H_MV_HLS10_ADD_LAYERSETS
    13891231  Void    printPTL();
    13901232  Void    printLayerDependencies();
    1391 #if H_MV_HLS10_AUX
    13921233  Void    printScalabilityId();;
    1393 #endif
    13941234  Void    printLayerSets();;
    13951235
     
    14361276    xPrintArray( name, 1, idx2, numElemDim2, vec2, printNumber, false );
    14371277  }
    1438 #endif
    14391278
    14401279
     
    14701309  Int     getSubPULog2Size(Int layerIdInVps)           { return m_iSubPULog2Size[layerIdInVps]; }
    14711310  Void    setSubPULog2Size(Int layerIdInVps, Int u)    { m_iSubPULog2Size[layerIdInVps] = u;}
    1472 #if MTK_I0099_VPS_EX2
    14731311  Int     getSubPUMPILog2Size(Int layerIdInVps)           { return m_iSubPUMPILog2Size[layerIdInVps]; }
    14741312  Void    setSubPUMPILog2Size(Int layerIdInVps, Int u)    { m_iSubPUMPILog2Size[layerIdInVps] = u;}
    1475 #else
    1476   Int     getSubPUMPILog2Size( )           { return m_iSubPUMPILog2Size; }
    1477   Void    setSubPUMPILog2Size( Int u )     { m_iSubPUMPILog2Size = u;    }
    1478 #endif
    1479 #endif
    1480 #endif
    1481 #if MTK_I0099_VPS_EX2
     1313#endif
     1314#endif
     1315#if H_3D_QTLPC
    14821316  Void    setLimQtPredFlag    ( Int layerIdInVps, Bool val )  { m_bLimQtPredFlag[ layerIdInVps ] = val; }
    14831317  Bool    getLimQtPredFlag    ( Int layerIdInVps ) { return m_bLimQtPredFlag[layerIdInVps];}
     
    14931327  Void    setVpsDepthModesFlag( Int layerIdInVps, Bool val )               { m_vpsDepthModesFlag[ layerIdInVps ] = val; }
    14941328  Bool    getVpsDepthModesFlag( Int layerIdInVps )                         { return m_vpsDepthModesFlag[ layerIdInVps ]; }
    1495 #if SEPARATE_FLAG_I0085
     1329
    14961330  Void    setIVPFlag( Int layerIdInVps, Bool val )                    { m_bIVPFlag[ layerIdInVps ] = val; }
    14971331  Bool    getIVPFlag( Int layerIdInVps )                              { return m_bIVPFlag[ layerIdInVps ]; }
    1498 #endif
    1499 
    1500 #if SEC_HLS_CLEANUP_I0100
     1332
    15011333  Bool    getIvMvScalingFlag   ( Int layerIdInVps )                        { return m_ivMvScalingFlag[ layerIdInVps ]; }
    15021334  Void    setIvMvScalingFlag   (Int layerIdInVps, Bool b )                 { m_ivMvScalingFlag[ layerIdInVps ] = b;    } 
    1503 #else
    1504   Bool    getIvMvScalingFlag   (  )                       { return m_ivMvScalingFlag; }
    1505   Void    setIvMvScalingFlag   ( Bool b )                 { m_ivMvScalingFlag = b;    } 
    1506 #endif
    15071335
    15081336#if H_3D_INTER_SDC
     
    15301358  Bool        m_bInterViewDltPredEnableFlag[ MAX_NUM_LAYERS ];
    15311359
    1532 #if !FIX_TICKET_77
    1533   Int         m_iBitsPerDepthValue       [ MAX_NUM_LAYERS ];
    1534 #endif
    15351360  Int         m_iNumDepthmapValues       [ MAX_NUM_LAYERS ];
    15361361  Int*        m_iDepthValue2Idx          [ MAX_NUM_LAYERS ];
     
    15591384  UInt    getDepthViewBitDepth()                          { return m_uiDepthViewBitDepth; }
    15601385
    1561 #if !FIX_TICKET_77
    1562   Int     getBitsPerDepthValue( Int layerIdInVps )        { return getUseDLTFlag(layerIdInVps)?m_iBitsPerDepthValue[layerIdInVps]:g_bitDepthY; }
    1563 #endif
    15641386  Int     getNumDepthValues( Int layerIdInVps )           { return getUseDLTFlag(layerIdInVps)?m_iNumDepthmapValues[layerIdInVps]:((1 << g_bitDepthY)-1); }
    15651387  Int     depthValue2idx( Int layerIdInVps, Pel value )   { return getUseDLTFlag(layerIdInVps)?m_iDepthValue2Idx[layerIdInVps][value]:value; }
    1566 #if RWTH_DLT_CLIP_I0057
    15671388  Pel     idx2DepthValue( Int layerIdInVps, UInt uiIdx )  { return getUseDLTFlag(layerIdInVps)?m_iIdx2DepthValue[layerIdInVps][ClipY(uiIdx)]:uiIdx; }
    1568 #else
    1569   Pel     idx2DepthValue( Int layerIdInVps, UInt uiIdx )  { return getUseDLTFlag(layerIdInVps)?m_iIdx2DepthValue[layerIdInVps][uiIdx]:uiIdx; }
    1570 #endif
    15711389  Void    setDepthLUTs( Int layerIdInVps, Int* idx2DepthValue = NULL, Int iNumDepthValues = 0 );
    1572 #if H_3D_DELTA_DLT
    15731390  Int*    idx2DepthValue( Int layerIdInVps )  { return m_iIdx2DepthValue[layerIdInVps]; }
    15741391  Void    getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTOut, UInt *puiDeltaDLTOutNum );
    15751392  Void    setDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTIn, UInt uiDeltaDLTInNum );
    1576 #endif
    15771393};
    15781394#endif
     
    18331649  Bool        m_useAMP;
    18341650
    1835 #if !MTK_I0099_VPS_EX2
    1836 #if H_3D_QTLPC
    1837   Bool        m_bUseQTL;
    1838   Bool        m_bUsePC;
    1839 #endif
    1840 #endif
    18411651  // Parameter
    18421652  Int         m_bitDepthY;
     
    18801690  TComVPS*    m_pcVPS;
    18811691  // SPS
    1882 #if H_MV_HLS10_MULTILAYERSPS
    18831692  Int         m_spsMaxSubLayersMinus1;
    18841693  Int         m_spsExtOrMaxSubLayersMinus1;
    1885 #endif
    18861694  Bool        m_spsExtensionPresentFlag;
    18871695
     
    19011709  // SPS Extension
    19021710  Bool        m_interViewMvVertConstraintFlag;
    1903 #if !H_MV_HLS10_PPS
    1904   Int         m_numScaledRefLayerOffsets;
    1905   Int         m_scaledRefLayerId          [MAX_NUM_SCALED_REF_LAYERS];
    1906   Int         m_scaledRefLayerLeftOffset  [MAX_NUM_LAYERS];
    1907   Int         m_scaledRefLayerTopOffset   [MAX_NUM_LAYERS];
    1908   Int         m_scaledRefLayerRightOffset [MAX_NUM_LAYERS];
    1909   Int         m_scaledRefLayerBottomOffset[MAX_NUM_LAYERS];
    1910 #endif
    19111711#endif
    19121712#if H_3D
     
    20121812#if H_MV
    20131813  UInt      getSpsMaxSubLayersMinus1()                { return ( m_uiMaxTLayers - 1); }
    2014 #if H_MV_HLS10_MULTILAYERSPS
    20151814  Void      setSpsMaxSubLayersMinus1( UInt val )       { setMaxTLayers( val + 1 ); }
    2016 #endif
    20171815#endif
    20181816
     
    20471845  TComPTL* getPTL()     { return &m_pcPTL; }
    20481846#if H_MV
    2049 #if H_MV_HLS10_MULTILAYERSPS
    20501847  Void setSpsExtOrMaxSubLayersMinus1( Int  val ) { m_spsExtOrMaxSubLayersMinus1 = val; }
    20511848  Int  getSpsExtOrMaxSubLayersMinus1(  ) { return m_spsExtOrMaxSubLayersMinus1; }
     
    20531850
    20541851  Bool getMultiLayerExtSpsFlag()            { return ( getLayerId() != 0  &&  getSpsExtOrMaxSubLayersMinus1() == 7 ); }
    2055 #endif
    20561852  Void inferSpsMaxDecPicBufferingMinus1( TComVPS* vps, Int targetOptLayerSetIdx, Int currLayerId, Bool encoder );
    20571853
     
    20921888  Bool getInterViewMvVertConstraintFlag()         { return m_interViewMvVertConstraintFlag;}
    20931889
    2094 #if !H_MV_HLS10_PPS
    2095   Void setNumScaledRefLayerOffsets( Int  val )    { m_numScaledRefLayerOffsets = val; }
    2096   Int  getNumScaledRefLayerOffsets(  )            { return m_numScaledRefLayerOffsets; }
    2097 
    2098   Void setScaledRefLayerId( Int i, Int  val )     { m_scaledRefLayerId[i] = val; }
    2099   Int  getScaledRefLayerId( Int i )               { return m_scaledRefLayerId[i]; }
    2100 
    2101   Void setScaledRefLayerLeftOffset( Int j, Int  val ) { m_scaledRefLayerLeftOffset[j] = val; }
    2102   Int  getScaledRefLayerLeftOffset( Int j )           { return m_scaledRefLayerLeftOffset[j]; }
    2103 
    2104   Void setScaledRefLayerTopOffset( Int j, Int  val )  { m_scaledRefLayerTopOffset[j] = val; }
    2105   Int  getScaledRefLayerTopOffset( Int j )            { return m_scaledRefLayerTopOffset[j]; }
    2106 
    2107   Void setScaledRefLayerRightOffset( Int j, Int  val ) { m_scaledRefLayerRightOffset[j] = val; }
    2108   Int  getScaledRefLayerRightOffset( Int j )           { return m_scaledRefLayerRightOffset[j]; }
    2109 
    2110   Void setScaledRefLayerBottomOffset( Int j, Int  val ) { m_scaledRefLayerBottomOffset[j] = val; }
    2111   Int  getScaledRefLayerBottomOffset( Int j )           { return m_scaledRefLayerBottomOffset[j]; }
    2112 #endif
    21131890  // Inference
    21141891
     
    21191896  Void checkRpsMaxNumPics( TComVPS* vps, Int currLayerId );
    21201897
    2121 #endif
    2122 #if !MTK_I0099_VPS_EX2
    2123 #if H_3D_QTLPC
    2124   Void setUseQTL( Bool b ) { m_bUseQTL = b;    }
    2125   Bool getUseQTL()         { return m_bUseQTL; }
    2126   Void setUsePC ( Bool b ) { m_bUsePC  = b;    }
    2127   Bool getUsePC ()         { return m_bUsePC;  }
    2128 #endif
    21291898#endif
    21301899#if H_MV
     
    22011970 
    22021971  Bool     m_loopFilterAcrossTilesEnabledFlag;
    2203   Int      m_uniformSpacingFlag;
    2204   Int      m_iNumColumnsMinus1;
    2205   UInt*    m_puiColumnWidth;
    2206   Int      m_iNumRowsMinus1;
    2207   UInt*    m_puiRowHeight;
    2208 
    2209   Int      m_iNumSubstreams;
     1972  Bool             m_uniformSpacingFlag;
     1973  Int              m_numTileColumnsMinus1;
     1974  Int              m_numTileRowsMinus1;
     1975  std::vector<Int> m_tileColumnWidth;
     1976  std::vector<Int> m_tileRowHeight;
     1977
     1978  Int      m_numSubstreams;
    22101979
    22111980  Int      m_signHideFlag;
     
    23042073  Bool    getDependentSliceSegmentsEnabledFlag() const     { return m_dependentSliceSegmentsEnabledFlag; }
    23052074  Void    setDependentSliceSegmentsEnabledFlag(Bool val)   { m_dependentSliceSegmentsEnabledFlag = val; }
    2306   Bool    getTilesEnabledFlag() const                      { return m_tilesEnabledFlag; }
    2307   Void    setTilesEnabledFlag(Bool val)                    { m_tilesEnabledFlag = val; }
    23082075  Bool    getEntropyCodingSyncEnabledFlag() const          { return m_entropyCodingSyncEnabledFlag; }
    23092076  Void    setEntropyCodingSyncEnabledFlag(Bool val)        { m_entropyCodingSyncEnabledFlag = val; }
    2310   Void     setUniformSpacingFlag            ( Bool b )          { m_uniformSpacingFlag = b; }
    2311   Bool     getUniformSpacingFlag            ()                  { return m_uniformSpacingFlag; }
    2312   Void     setNumColumnsMinus1              ( Int i )           { m_iNumColumnsMinus1 = i; }
    2313   Int      getNumColumnsMinus1              ()                  { return m_iNumColumnsMinus1; }
    2314   Void     setColumnWidth ( UInt* columnWidth )
    2315   {
    2316     if( m_uniformSpacingFlag == 0 && m_iNumColumnsMinus1 > 0 )
    2317     {
    2318       m_puiColumnWidth = new UInt[ m_iNumColumnsMinus1 ];
    2319 
    2320       for(Int i=0; i<m_iNumColumnsMinus1; i++)
    2321       {
    2322         m_puiColumnWidth[i] = columnWidth[i];
    2323       }
    2324     }
    2325   }
    2326   UInt     getColumnWidth  (UInt columnIdx) { return *( m_puiColumnWidth + columnIdx ); }
    2327   Void     setNumRowsMinus1( Int i )        { m_iNumRowsMinus1 = i; }
    2328   Int      getNumRowsMinus1()               { return m_iNumRowsMinus1; }
    2329   Void     setRowHeight    ( UInt* rowHeight )
    2330   {
    2331     if( m_uniformSpacingFlag == 0 && m_iNumRowsMinus1 > 0 )
    2332     {
    2333       m_puiRowHeight = new UInt[ m_iNumRowsMinus1 ];
    2334 
    2335       for(Int i=0; i<m_iNumRowsMinus1; i++)
    2336       {
    2337         m_puiRowHeight[i] = rowHeight[i];
    2338       }
    2339     }
    2340   }
    2341   UInt     getRowHeight           (UInt rowIdx)    { return *( m_puiRowHeight + rowIdx ); }
    2342   Void     setNumSubstreams(Int iNumSubstreams)               { m_iNumSubstreams = iNumSubstreams; }
    2343   Int      getNumSubstreams()                                 { return m_iNumSubstreams; }
     2077
     2078  Void     setTilesEnabledFlag       (Bool val)                             { m_tilesEnabledFlag = val; }
     2079  Bool     getTilesEnabledFlag       () const                               { return m_tilesEnabledFlag; }
     2080  Void     setTileUniformSpacingFlag (Bool b)                               { m_uniformSpacingFlag = b; }
     2081  Bool     getTileUniformSpacingFlag () const                               { return m_uniformSpacingFlag; }
     2082  Void     setNumTileColumnsMinus1   (Int i)                                { m_numTileColumnsMinus1 = i; }
     2083  Int      getNumTileColumnsMinus1   () const                               { return m_numTileColumnsMinus1; }
     2084  Void     setTileColumnWidth        (const std::vector<Int>& columnWidth ) { m_tileColumnWidth = columnWidth; }
     2085  UInt     getTileColumnWidth        (UInt columnIdx) const                 { return  m_tileColumnWidth[columnIdx]; }
     2086  Void     setNumTileRowsMinus1      (Int i)                                { m_numTileRowsMinus1 = i; }
     2087  Int      getTileNumRowsMinus1      () const                               { return m_numTileRowsMinus1; }
     2088  Void     setTileRowHeight          (const std::vector<Int>& rowHeight)    { m_tileRowHeight = rowHeight;  }
     2089  UInt     getTileRowHeight          (UInt rowIdx) const                    { return m_tileRowHeight[rowIdx]; }
     2090
     2091  Void     setNumSubstreams    (Int numSubstreams)                     { m_numSubstreams = numSubstreams; }
     2092  Int      getNumSubstreams    ()                                      { return m_numSubstreams; }
    23442093
    23452094  Void      setSignHideFlag( Int signHideFlag ) { m_signHideFlag = signHideFlag; }
     
    25372286
    25382287  Bool       m_enableTMVPFlag;
    2539 #if I0044_SLICE_TMVP
     2288#if H_MV
    25402289  Bool       m_availableForTMVPRefFlag;
    25412290#endif
     
    25992348  UInt         m_aiDDDShift    [MAX_NUM_LAYERS];
    26002349#endif
    2601 #if MTK_SINGLE_DEPTH_MODE_I0095
     2350#if H_3D_SINGLE_DEPTH
    26022351  Bool      m_bApplySingleDepthMode;
    26032352#endif
    2604 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     2353#if H_3D_IC
    26052354  Int *m_aICEnableCandidate;
    26062355  Int *m_aICEnableNum;
     
    26762425  TComPic*  getTexturePic       ()                              { return  m_ivPicsCurrPoc[0][ m_viewIndex ]; }
    26772426#endif
    2678 #if MTK_SINGLE_DEPTH_MODE_I0095
     2427#if H_3D_SINGLE_DEPTH
    26792428  Void      setApplySingleDepthMode( Bool b )                                { m_bApplySingleDepthMode = b; }
    26802429  Bool      getApplySingleDepthMode()                                        { return m_bApplySingleDepthMode; }
     
    28772626  Void      setEnableTMVPFlag     ( Bool   b )    { m_enableTMVPFlag = b; }
    28782627  Bool      getEnableTMVPFlag     ()              { return m_enableTMVPFlag;}
    2879 #if I0044_SLICE_TMVP
     2628#if H_MV
    28802629  Void      setAvailableForTMVPRefFlag     ( Bool   b )    { m_availableForTMVPRefFlag = b; }
    28812630  Bool      getAvailableForTMVPRefFlag     ()              { return m_availableForTMVPRefFlag;}
     
    29172666  Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; };
    29182667  Bool getVpsDepthModesFlag  ()  { return getVPS()->getVpsDepthModesFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
    2919 #if SEPARATE_FLAG_I0085
    29202668  Bool getIVPFlag       ()  { return getVPS()->getIVPFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
    29212669#endif
    2922 #endif
    2923 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     2670#if H_3D_IC
    29242671  Void    setICEnableCandidate( Int* ICEnableCandidate)   { m_aICEnableCandidate = ICEnableCandidate; };
    29252672  Void    setICEnableNum( Int* ICEnableNum)   { m_aICEnableNum = ICEnableNum; };
  • trunk/source/Lib/TLibCommon/TComWedgelet.cpp

    r1039 r1084  
    6868                                                            m_uiHeight ( rcWedge.m_uiHeight  ),
    6969                                                            m_pbPattern( (Bool*)xMalloc( Bool, (m_uiWidth * m_uiHeight) ) )
    70 #if SHARP_DMM1_I0110
    7170                                                            ,m_pbScaledPattern( g_wedgePattern )
    72 #endif
    7371{
    7472  ::memcpy( m_pbPattern, rcWedge.m_pbPattern, sizeof(Bool) * (m_uiWidth * m_uiHeight));
     
    8886
    8987  m_pbPattern = (Bool*)xMalloc( Bool, (m_uiWidth * m_uiHeight) );
    90 #if SHARP_DMM1_I0110
    9188  m_pbScaledPattern = g_wedgePattern;
    92 #endif
    9389}
    9490
     
    187183  switch( m_eWedgeRes )
    188184  {
    189 #if !SHARP_DMM1_I0110
    190   case( DOUBLE_PEL ): { uiTempBlockSize =  m_uiWidth;     uhXs = (m_uhXs<<1); uhYs = (m_uhYs<<1); uhXe = (m_uhXe<<1); uhYe = (m_uhYe<<1); } break;
    191 #endif
    192185  case(   FULL_PEL ): { uiTempBlockSize =  m_uiWidth;     uhXs =  m_uhXs;     uhYs =  m_uhYs;     uhXe =  m_uhXe;     uhYe =  m_uhYe;     } break;
    193186  case(   HALF_PEL ): { uiTempBlockSize = (m_uiWidth<<1); uhXs =  m_uhXs;     uhYs =  m_uhYs;     uhXe =  m_uhXe;     uhYe =  m_uhYe;     } break;
    194187  }
    195 
    196 #if !SHARP_DMM1_I0110
    197   if( m_eWedgeRes == DOUBLE_PEL) // adjust line-end for DOUBLE_PEL resolution
    198   {
    199     if( m_uhOri == 1 ) { uhXs = uiTempBlockSize-1; }
    200     if( m_uhOri == 2 ) { uhXe = uiTempBlockSize-1; uhYs = uiTempBlockSize-1; }
    201     if( m_uhOri == 3 ) { uhYe = uiTempBlockSize-1; }
    202     if( m_uhOri == 4 ) { uhYe = uiTempBlockSize-1; }
    203     if( m_uhOri == 5 ) { uhXs = uiTempBlockSize-1; }
    204   }
    205 #endif
    206188
    207189  Bool* pbTempPattern = new Bool[ (uiTempBlockSize * uiTempBlockSize) ];
     
    233215  switch( m_eWedgeRes )
    234216  {
    235 #if !SHARP_DMM1_I0110
    236   case( DOUBLE_PEL ): { for( UInt k = 0; k < (m_uiWidth * m_uiHeight); k++ ) { m_pbPattern[k] = pbTempPattern[k]; }; } break;
    237 #endif
    238217  case(   FULL_PEL ): { for( UInt k = 0; k < (m_uiWidth * m_uiHeight); k++ ) { m_pbPattern[k] = pbTempPattern[k]; }; } break;
    239218  case(   HALF_PEL ): // sub-sampling by factor 2
     
    327306}
    328307
    329 #if SHARP_DMM1_I0110
    330308Bool* TComWedgelet::getScaledPattern(UInt uiDstSize)
    331309{
    332     Bool *pbSrcPat = this->getPattern();
    333     UInt uiSrcSize = this->getStride();
    334 
    335     Int scale = (g_aucConvertToBit[uiDstSize] - g_aucConvertToBit[uiSrcSize]);
    336     assert(scale>=0);
    337     for (Int y=0; y<uiDstSize; y++)
    338     {
    339        for (Int x=0; x<uiDstSize; x++)
    340        {
    341            Int srcX = x>>scale;
    342            Int srcY = y>>scale;
    343            m_pbScaledPattern[y*uiDstSize + x] = pbSrcPat[ srcY*uiSrcSize + srcX ];
    344        }
    345    }
    346    return m_pbScaledPattern;
    347 }
    348 #endif
     310  Bool *pbSrcPat = this->getPattern();
     311  UInt uiSrcSize = this->getStride();
     312
     313  Int scale = (g_aucConvertToBit[uiDstSize] - g_aucConvertToBit[uiSrcSize]);
     314  assert(scale>=0);
     315  for (Int y=0; y<uiDstSize; y++)
     316  {
     317    for (Int x=0; x<uiDstSize; x++)
     318    {
     319      Int srcX = x>>scale;
     320      Int srcY = y>>scale;
     321      m_pbScaledPattern[y*uiDstSize + x] = pbSrcPat[ srcY*uiSrcSize + srcX ];
     322    }
     323  }
     324  return m_pbScaledPattern;
     325}
    349326
    350327TComWedgeNode::TComWedgeNode()
  • trunk/source/Lib/TLibCommon/TComWedgelet.h

    r1039 r1084  
    5858#define DIM_NO_IDX     MAX_UINT
    5959
    60 #if HS_DMM_SIGNALLING_I0120
    6160__inline UInt getDimType  ( Int intraMode )
    6261{
     
    6463    return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX;
    6564}
    66 #else
    67 __inline UInt getDimType  ( Int intraMode ) { Int dimType = (intraMode-DIM_OFFSET)/2; return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX; }
    68 #endif
    6965__inline Bool isDimMode   ( Int intraMode ) { return (getDimType( intraMode ) < DIM_NUM_TYPE); }
    70 #if !HS_DMM_SIGNALLING_I0120
    71 __inline Bool isDimDeltaDC( Int intraMode ) { return (isDimMode( intraMode ) && ((intraMode-DIM_OFFSET)%2) == 1); }
    72 #endif
    7366#endif
    7467
     
    7972enum WedgeResolution
    8073{
    81 #if !SHARP_DMM1_I0110
    82   DOUBLE_PEL,
    83 #endif
    8474  FULL_PEL,
    8575  HALF_PEL
     
    10696
    10797  Bool* m_pbPattern;
    108 #if SHARP_DMM1_I0110
    10998  Bool* m_pbScaledPattern;
    110 #endif
    11199
    112100  Void  xGenerateWedgePattern();
     
    134122  Bool            getIsCoarse() { return m_bIsCoarse; }
    135123  UInt            getAng     () { return m_uiAng; }
    136 #if SHARP_DMM1_I0110
    137124  Bool*           getScaledPattern(UInt uiWidth);
    138 #endif
    139125
    140126  Void  setWedgelet( UChar uhXs, UChar uhYs, UChar uhXe, UChar uhYe, UChar uhOri, WedgeResolution eWedgeRes, Bool bIsCoarse = false );
  • trunk/source/Lib/TLibCommon/TComYuv.cpp

    r1039 r1084  
    689689  UInt iSrc1Stride = pcYuvSrc1->getStride();
    690690  UInt iDstStride  = getStride();
    691 #if QC_I0129_ARP_FIX
    692691  Int iIFshift = IF_INTERNAL_PREC - g_bitDepthY;
    693692  Int iOffSet  = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS;
    694 #endif
    695693  for ( y = uiHeight-1; y >= 0; y-- )
    696694  {
     
    700698      if( bClip )
    701699      {
    702 #if QC_I0129_ARP_FIX
    703700        pDst[x] = ClipY( ( pDst[x] + iOffSet ) >> iIFshift );
    704 #else
    705         pDst[x] = ClipY( pDst[x] );
    706 #endif
    707701      }
    708702    }
     
    727721  UInt  iSrc1Stride = pcYuvSrc1->getCStride();
    728722  UInt  iDstStride  = getCStride();
    729 #if QC_I0129_ARP_FIX
     723
    730724  Int iIFshift = IF_INTERNAL_PREC - g_bitDepthC;
    731725  Int iOffSet  = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS;
    732 #endif
     726
    733727  for ( y = uiHeight-1; y >= 0; y-- )
    734728  {
     
    739733      if( bClip )
    740734      {
    741 #if QC_I0129_ARP_FIX
    742735        pDstU[x] = ClipC( ( pDstU[x] + iOffSet ) >> iIFshift );
    743736        pDstV[x] = ClipC( ( pDstV[x] + iOffSet ) >> iIFshift );
    744 #else
    745         pDstU[x] = ClipC( pDstU[x] );
    746         pDstV[x] = ClipC( pDstV[x] );
    747 #endif
    748737      }
    749738    }
     
    761750{
    762751  subtractARPLuma  ( pcYuvSrc0, pcYuvSrc1,  uiAbsPartIdx, uiWidth    , uiHeight    );
    763 #if SHARP_ARP_CHROMA_I0104
     752
    764753  if (uiWidth > 8)
    765 #endif
    766   subtractARPChroma( pcYuvSrc0, pcYuvSrc1,  uiAbsPartIdx, uiWidth>>1 , uiHeight>>1 );
     754    subtractARPChroma( pcYuvSrc0, pcYuvSrc1,  uiAbsPartIdx, uiWidth>>1 , uiHeight>>1 );
    767755}
    768756
     
    823811{
    824812  multiplyARPLuma( uiAbsPartIdx , uiWidth , uiHeight , dW );
    825 #if SHARP_ARP_CHROMA_I0104
     813
    826814  if (uiWidth > 8)
    827 #endif
    828   multiplyARPChroma( uiAbsPartIdx , uiWidth >> 1 , uiHeight >> 1 , dW );
     815    multiplyARPChroma( uiAbsPartIdx , uiWidth >> 1 , uiHeight >> 1 , dW );
    829816}
    830817
  • trunk/source/Lib/TLibCommon/TypeDef.h

    r1066 r1084  
    111111                                              // MTK_ARP_REF_SELECTION_G0053 ARP Reference picture selection in JCT3V-G0053
    112112                                              // MTK_ALIGN_SW_WD_BI_PRED_ARP_H0085  Align the SW and WD for the bi-prediction ARP PUs by disallowing non-normative fast bi-prediction for ARP PUs, JCT3V-H0085
    113 
     113                                              // QC_I0051_ARP_SIMP         
     114                                              // SHARP_ARP_CHROMA_I0104     
     115                                              // MTK_I0072_IVARP_SCALING_FIX
    114116
    115117#define H_3D_IC                           1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
     
    123125                                              // SEC_IC_ARP_SIG_G0072, Disabling IC when ARP is enabled, option 1 in JCT3V-G0072, part 2 in JCT3V-G0121
    124126                                              // MTK_LOW_LATENCY_IC_ENCODING_H0086  Low-latency IC encoding in JCT3V-H0086
    125 
    126 #define MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX  1  // Remove the global variables used in JCT3V-H0086
    127 
    128 
    129 #define SEC_IC_NEIGHBOR_CLIP_I0080        1   // Clipping of neighboring sample position, JCT3V-I0080
    130 
     127                                              // MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX  1  // Remove the global variables used in JCT3V-H0086
     128                                              // SEC_IC_NEIGHBOR_CLIP_I0080    // Clipping of neighboring sample position, JCT3V-I0080
    131129
    132130#if H_3D_NBDV
     
    177175                                              // SHARP_SIMPLE_MERGE_H0062      Restrict 3D-HEVC merge cand in small PUs
    178176                                              // MTK_DIS_SPBIP8X4_H0205        Disable bi-prediction for 8x4 and 4x8 sub PU and remove the SPIVMP 2Nx2N restriction
    179                                               // SEC_ADAPT_DISABLE_IVMP        Disalbing IVMP merge candidates when IC is enabled, JCT3V-H0070
    180 
    181 #define SEC_SIMP_SHIFTED_DV_I0086         1   // Simplification of Shifted DV candidate, JCT3V-I0086
     177                                              // SEC_ADAPT_DISABLE_IVMP        Disabling IVMP merge candidates when IC is enabled, JCT3V-H0070
     178                                              // SEC_SIMP_SHIFTED_DV_I0086     Simplification of Shifted DV candidate, JCT3V-I0086
     179
     180
    182181
    183182#define H_3D_TMVP                         1   // QC_TMVP_C0047
     
    222221                                              // SEC_NO_RESI_DLT_H0105   
    223222                                              // MTK_DLT_CODING_FIX_H0091
    224 
    225 #define MTK_SINGLE_DEPTH_MODE_I0095       1   // Single depth mode proposed in JCT3V-I0095
    226 #if MTK_SINGLE_DEPTH_MODE_I0095
    227 #define MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE            2 // size of the sample candidate list
    228 #endif
    229 
    230 #define H_3D_FIX_UNINIT                   1   // Fix uninitialized flag
     223                                              // HS_DMM_SIGNALLING_I0120
     224                                              // SHARP_DMM1_I0110 // LUT size reduction for DMM1 proposed in JCT3V-I0110
     225                                              // FAST_SDC_OFFSET_DECISION_I0084
     226                                              // SEPARATE_FLAG_I0085
     227                                              // H_3D_DELTA_DLT
     228                                              // RWTH_DLT_CLIP_I0057               1
     229
     230
     231
     232#define H_3D_SINGLE_DEPTH                 1   // Single depth mode proposed in JCT3V-I0095
     233
     234
    231235#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
    232236                                              // LGE_INTER_SDC_E0156 Enable inter SDC for depth coding
     
    245249                                              // MTK_DBBP_SIGNALING_H0094   
    246250                                              // H_3D_FIX_DBBP_IVMP        Fix . Enable IVMP is always disabled, when DBBP is enabled. The original intention is to disable Sub-PU IVMP when DBBP is enabled, not to disable IVMP itself.
    247 
    248 #define SEC_DBBP_EXPLICIT_SIG_I0077       1   // Remove the partition derivation and signal dbbp_flag only when the partion mode is 2NxN/Nx2N, JCT3V-I0077
    249 #define SEC_DBBP_DISALLOW_8x8_I0078       1   // Disallow DBBP in 8x8 CU, JCT3V-I0078
    250 #define SHARP_DBBP_SIMPLE_FLTER_I0109     1   // Simple condition and one dimensional dilter for DBBP
    251 #define SEC_DBBP_DMM4_THRESHOLD_I0076     1   // Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076
     251                                              // SEC_DBBP_EXPLICIT_SIG_I0077       1   // Remove the partition derivation and signal dbbp_flag only when the partition mode is 2NxN/Nx2N, JCT3V-I0077
     252                                              // Disallow DBBP in 8x8 CU, JCT3V-I0078
     253                                              // SHARP_DBBP_SIMPLE_FLTER_I0109     1   // Simple condition and one dimensional filter for DBBP
     254                                              // SEC_DBBP_DMM4_THRESHOLD_I0076     Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076
    252255
    253256
     
    256259#define H_3D_FCO                          0   // Flexible coding order for 3D
    257260#if H_3D_FCO
    258 #define LGE_FCO_I0116                     1
    259 #endif
    260 
    261 #define SCU_HS_FAST_INTRA_SDC_I0123       1
     261#define H_3D_FCO                     1
     262#endif
     263
     264#define H_3D_FAST_INTRA_SDC               1   // I0123
    262265
    263266// OTHERS
     
    271274#endif
    272275
    273 #define MTK_I0099_VPS_EX2                 1  ///< JCT3V-I0099, sub-PU size signaling and lim_qt_pred_flag in VPS extension 2
    274 #define MTK_I0099_FIX                     1  ///< Fix the problem of removing encoder only QTL
    275 
    276276// Rate Control
    277277#define KWU_FIX_URQ                       1
    278278#define KWU_RC_VIEWRC_E0227               0  ///< JCT3V-E0227, view-wise target bitrate allocation
    279279#define KWU_RC_MADPRED_E0227              0  ///< JCT3V-E0227, inter-view MAD prediction
    280 
    281 #define SEC_VPS_CLEANUP_I0090             1
    282 #define SEC_HLS_CLEANUP_I0100             1
    283 
    284 #define H_3D_FIX_64BIT_SHIFT              1
    285280#endif // H_3D
    286281
     
    292287
    293288// Fixes
    294 #define FIX_TICKET_79                     1    // Unused VSP code
    295 #define FIX_TICKET_75                     1    // Bi-pred restriction bug in VSP
    296 #define FIX_TICKET_68                     1    // MV clipping bug in the sub-PU MPI default MV generation
    297 #define FIX_TICKET_71                     1    // IC parameters is meaningless in HTM when no training samples are available
    298 #define FIX_TICKET_77                     1    // Unused variable m_iBitsPerDepthValue
    299 #define FIX_TICKET_76                     1    // unused functions
    300 #define FIX_TICKET_62                     1    // buffer overflow for print
    301 #define FIX_TICKET_61                     1    // layerIdsInSets size check
     289
     290///// ***** SINGLE DEPTH MODE *********
     291#if H_3D_SINGLE_DEPTH
     292#define SINGLE_DEPTH_MODE_CAND_LIST_SIZE            2 // size of the sample candidate list
     293#endif
    302294
    303295///// ***** VIEW SYNTHESIS OPTIMIZAION *********
     
    308300#define H_3D_VSO_RM_ASSERTIONS            0   // Output VSO assertions
    309301#define H_3D_VSO_SYNTH_DIST_OUT           0   // Output of synthesized view distortion instead of depth distortion in encoder output
    310 #define H_3D_VSO_FIX                      1   // This fix should be enabled after verification
    311302#endif
    312303
     
    321312#if H_3D_ARP
    322313#define H_3D_ARP_WFNR                     3
    323 #define QC_I0129_ARP_FIX                  1
    324 #define QC_I0051_ARP_SIMP                 1
    325 #define SHARP_ARP_CHROMA_I0104            1
    326 #define MTK_I0072_IVARP_SCALING_FIX       1
    327314#endif
    328315
    329316///// ***** DEPTH INTRA MODES *********
    330317#if H_3D_DIM
     318                                              // HHI_DMM4_ENC_I0066
    331319#define H_3D_DIM_DMM                      1   // Depth Modeling Modes
    332320#define H_3D_DIM_SDC                      1   // Simplified Depth Coding method
    333321#define H_3D_DIM_DLT                      1   // Depth Lookup Table
    334 #define HS_DMM_SIGNALLING_I0120  1   
    335 #define SHARP_DMM1_I0110                  1   // LUT size reduction for DMM1 proposed in JCT3V-I0110
    336 #define FIX_WARNING                       1   // fix narrowing conversion of NumPocStCurr0,NumPocStCurr1 at TComSlice.cpp
    337 #define FAST_SDC_OFFSET_DECISION_I0084    1
    338 #define SEPARATE_FLAG_I0085               1
    339 
    340 #if H_3D_DIM_DLT
    341 #define H_3D_DELTA_DLT                    1
    342 #define RWTH_DLT_CLIP_I0057               1
    343 #endif
     322
    344323#define H_3D_DIM_ENC                      1   // Depth Intra encoder optimizations, includes:
    345324                                              // HHI_DEPTH_INTRA_SEARCH_RAU_C0160
    346325                                              // LG_ZEROINTRADEPTHRESI_A0087
    347 #define HHI_DMM4_ENC_I0066                1
    348326#endif
    349327///// ***** VIEW SYNTHESIS PREDICTION *********
     
    370348#if H_3D_DBBP
    371349#define DBBP_INVALID_SHORT                (-4)
    372 #define RWTH_DBBP_PACK_MODE               SIZE_2NxN
     350#define DBBP_PACK_MODE               SIZE_2NxN
    373351#endif
    374352
     
    389367/////////////////////////////////////////////////////////////////////////////////
    390368// TBD: Check if integration is necessary.
    391 
    392 
    393 
    394 //Added by Qualcomm for HLS
    395 #define DISCARDABLE_PIC_RPS              1      ///< JCT3V-G0131: Inter-layer RPS and temporal RPS should not contain picture with discardable_flag equal to 1
    396 #define VPS_MISC_UPDATES                 1      ///< Misc updates:JCT3V-0240,
    397 #define NON_REF_NAL_TYPE_DISCARDABLE     1      ///< JCT3V-G0031: If discardable picture is a non-IRAP, it must be a non-referenced sub-layer picture
    398 #define INFERENCE_POC_MSB_VAL_PRESENT    1      ///< JCT3V-H0042: poc_msb_val_present_flag shall be equal to 0 when slice_header_extension_length is (inferred to be ) equal to 0
    399 #define INFERENCE_POC_RESET_INFO_PRESENT 1      ///< JCT3V-H0042: Infer the value of poc_reset_info_present_flag to be equal to 0 when no pps extension / pps extension for multilayer.
    400 #define I0044_SLICE_TMVP                 1      ///< JCT3V-I0044: Regarding slice_temporal_mvp_enabled_flag
    401 #define I0045_BR_PR_ADD_LAYER_SET        1      ///< JCT3V-I0045: Signalling of bit-rate and picture rate for additional layer set
    402 #define I0045_VPS_VUI_VST_PARAMS         1      ///< JCT3V-I0045: Related to signalling of VST parameters of the base layer.
    403 
    404 
    405 #define H_MV_HLS10_GEN                       0  // General changes (not tested)
    406 
    407 #define H_MV_HLS10_AUX                       1 // Auxiliary pictures
    408 #define H_MV_HLS10_GEN_FIX                   1
    409 #define H_MV_FIX_LOOP_GOPSIZE                1
    410 #define H_MV_FIX_SUB_LAYERS_MAX_MINUS1       1
    411 
    412 #define H_MV_HLS10_GEN_VSP_CONF_WIN          1  // VPS conformance window
    413 #define H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL  1  // vps_base_layer_available
    414 #define H_MV_HLS10_REF_PRED_LAYERS           1  // reference and predicted layer derivation
    415 #define H_MV_HLS10_NESSECARY_LAYER           1  // necessary layers
    416 #define H_MV_HLS10_ADD_LAYERSETS             1  // additional layer sets
    417 #define H_MV_HLS10_DBP_SIZE                  1  // dpb size syntax structure
    418 #define H_MV_HLS10_MAXNUMPICS                1  // constraint on number of pictures in rps 
    419 #define H_MV_HLS10_PTL                       1  // profile tier level
    420 #define H_MV_HLS10_PTL_FIX                   1  // profile tier level fix
    421 #define H_MV_HLS10_PTL_INBL_FIX              1  // profile tier level fix
    422 #define H_MV_HLS10_PTL_INFER_FIX             1  // fix inference ptl
    423 #define H_MV_HLS10_MULTILAYERSPS             1  // multilayer SPS extension
    424 #define H_MV_HLS10_VPS_VUI                   1  // vsp vui
    425 #define H_MV_HLS10_VPS_VUI_BSP               1  // vsp vui bsp
    426 #define H_MV_HLS10_PPS                       1  // PPS modifications
    427 
    428 #define H_MV_HLS10_VPS_VUI_BSP_STORE         0  // Currently bsp vui bsp hrd parameters are not stored, some dynamic memory allocation with upper bounds is required.
    429 
    430 
     369#define H_MV_HLS_PTL_LIMITS                  0
    431370#define H_MV_HLS7_GEN                        0  // General changes (not tested)
    432 
     371#define H_MV_ALIGN_HM_15                     1 
    433372
    434373// POC
     
    452391//#define H_MV_HLS_7_SEI_P0123_25  0 // (SEI/P0123/Alpha channel info) #25 Add alpha channel information SEI message Decision: Adopt. Constrain the bit depth indicated to be equal to the coded bit depth of the aux picture.
    453392
    454 // Auxiliary picture related
    455 //#define H_MV_HLS_8_AUX_NODOC_40  0 // #40 (AUX    /NODOC/primary pic) Clarify that an auxiliary picture can be associated with more than one primary picture. Consider if the language associating an alpha auxiliary picture with a primary picture in the semantics of dimension_id[ ][ ] near the AuxId derivation could be moved to the alpha SEI message.
    456 //#define H_MV_HLS_8_AUX_Q0081_2   0 // #2  (AUX    /Q0081/primary) Decision: Remove the constraint that an alpha picture must be accompanied by a primary picture.
    457 //#define H_MV_HLS_8_AUX_Q0078_44  0 // #44 (AUX    /Q0078/concepts Auxiliary picture concepts:
    458 //#define H_MV_HLS_8_AUX_Q0078_39  0 // #39 (AUX    /Q0078/conformance): mechanism for signaling a profile/tier/level conformance point for auxiliary pictures
    459 
    460 // Profiles
    461 //#define H_MV_HLS_8_PRO_NODOC_50  0 // #50 (PROF   /NODOC/Monochrome) Add Monochrome 8-bit profile
    462 //#define H_MV_HLS_8_PRO_NODOC_31  0 // #31 (PROF   /NODOC/Profile constraint) Add a profile constraint to the Scalable Main, Scalable Main 10, and Stereo Main profiles against allowing layers with duplicate values of DependencyId (or ViewOrderIdx) when AuxId equal to 0.
    463 //#define H_MV_HLS_8_PRO_H0126_45  0 // #45 (PROF   /H0126/Stereo main) Phrasing used in specifying the Stereo Main profile.
    464 //#define H_MV_HLS_8_PRO_Q0160_33  0 // #33 (PROF   /Q0160/alt_output_flag) v2: Add constraint to stereo main profile that it must contain exactly two texture views, and add a note to state that the constraint implies a restriction that alt_output_flag equal to 0.
    465 
    466393// DPB
    467394//#define H_MV_HLS_8_HRD_Q0102_09  0 // #9  (HRD    /Q0102/NoOutputOfPriorPicsFlag) It was suggested that also the separate_colour_plane_flag should affect inference of NoOutputOfPriorPicsFlag. Decision (Ed.): Agreed (affects RExt text).
     
    491418#define SAO_SGN_FUNC 1
    492419
     420#define TILE_SIZE_CHECK 1
     421
    493422#define FIX1172 1 ///< fix ticket #1172
    494423
     
    506435#define MAX_NESTING_NUM_LAYER       64
    507436
    508 #if H_MV_HLS10_VPS_VUI_BSP
     437#if H_MV
    509438#define MAX_VPS_NUM_HRD_PARAMETERS                1024
     439#else
     440#define MAX_VPS_NUM_HRD_PARAMETERS                1
     441#endif
     442#if H_MV
    510443#define MAX_NUM_SUB_LAYERS                        7
    511444#define MAX_NUM_SIGNALLED_PARTITIONING_SCHEMES    16
    512 #else
    513 #define MAX_VPS_NUM_HRD_PARAMETERS                1
    514 #endif
    515 
     445#endif
    516446#define MAX_VPS_OP_SETS_PLUS1                     1024
    517447#if H_MV
    518 #if H_MV_HLS10_ADD_LAYERSETS
    519448#define MAX_VPS_NUM_ADD_LAYER_SETS                1024
    520 #endif
    521449#define MAX_VPS_NUH_LAYER_ID_PLUS1  63
    522450#define MAX_NUM_SCALABILITY_TYPES   16
     
    533461#define MAX_VPS_PROFILE_TIER_LEVEL      64
    534462#define MAX_VPS_ADD_OUTPUT_LAYER_SETS   1024
    535 #if H_MV_HLS10_ADD_LAYERSETS
    536463#define MAX_VPS_OUTPUTLAYER_SETS        ( MAX_VPS_ADD_OUTPUT_LAYER_SETS + MAX_VPS_OP_SETS_PLUS1 + MAX_VPS_OP_SETS_PLUS1 )
    537 #else
    538 #define MAX_VPS_OUTPUTLAYER_SETS        ( MAX_VPS_ADD_OUTPUT_LAYER_SETS + MAX_VPS_OP_SETS_PLUS1 )
    539 #endif
    540464#define  MAX_NUM_VIDEO_SIGNAL_INFO      16
    541465#define MAX_NUM_SCALED_REF_LAYERS       MAX_NUM_LAYERS-1
    542 #if !H_MV_HLS10_VPS_VUI_BSP
    543 #define MAX_NUM_BSP_HRD_PARAMETERS      100 ///< Maximum value is actually not specified
    544 #define MAX_NUM_BITSTREAM_PARTITIONS    100 ///< Maximum value is actually not specified
    545 #define MAX_NUM_BSP_SCHED_COMBINATION   100 ///< Maximum value is actually not specified
    546 #define MAX_SUB_STREAMS                 1024
    547 #endif
    548466#else
    549467#define MAX_NUM_LAYER_IDS                64
     
    1016934    MAINSTILLPICTURE = 3,
    1017935#if H_MV
    1018 #if H_MV_HLS10_PTL
    1019936    MULTIVIEWMAIN = 6,
    1020937#if H_3D
    1021938    MAIN3D = 8,
    1022 #endif
    1023 #else
    1024     MAINSTEREO = 4,
    1025     MAINMULTIVIEW = 5,
    1026 #if H_3D
    1027     MAIN3D = 6,
    1028 #endif
    1029939#endif
    1030940#endif
     
    1069979#endif   
    1070980    VIEW_ORDER_INDEX  = 1,
    1071 #if H_MV_HLS10_AUX
    1072981    DEPENDENCY_ID = 2,
    1073982    AUX_ID = 3,
    1074 #endif   
    1075983  };
    1076984#endif
  • trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1066 r1084  
    5353  }
    5454  // To avoid mismatches
    55 #if H_MV_HLS10_GEN_FIX
    5655  fprintf( g_hTrace, "=========== Sequence Parameter Set LayerId: %d ===========\n", pSPS->getLayerId() );
    5756#else
    58   fprintf( g_hTrace, "=========== Sequence Parameter Set ===========\n" );
    59 #endif
    60 #else
    6157  fprintf( g_hTrace, "=========== Sequence Parameter Set ID: %d ===========\n", pSPS->getSPSId() );
    6258#endif
     
    7066    return;
    7167  }
    72 #if H_MV_HLS10_GEN_FIX
    7368  fprintf( g_hTrace, "=========== Picture Parameter Set LayerId: %d ===========\n", pPPS->getLayerId() );
    74 #else
    75   fprintf( g_hTrace, "=========== Picture Parameter Set ===========\n" );
    76 #endif
    7769#else
    7870  fprintf( g_hTrace, "=========== Picture Parameter Set ID: %d ===========\n", pPPS->getPPSId() );
     
    300292  if( pcPPS->getTilesEnabledFlag() )
    301293  {
    302     READ_UVLC ( uiCode, "num_tile_columns_minus1" );                pcPPS->setNumColumnsMinus1( uiCode ); 
    303     READ_UVLC ( uiCode, "num_tile_rows_minus1" );                   pcPPS->setNumRowsMinus1( uiCode ); 
    304     READ_FLAG ( uiCode, "uniform_spacing_flag" );                   pcPPS->setUniformSpacingFlag( uiCode );
    305 
    306     if( !pcPPS->getUniformSpacingFlag())
    307     {
    308       UInt* columnWidth = (UInt*)malloc(pcPPS->getNumColumnsMinus1()*sizeof(UInt));
    309       for(UInt i=0; i<pcPPS->getNumColumnsMinus1(); i++)
     294    READ_UVLC ( uiCode, "num_tile_columns_minus1" );                pcPPS->setNumTileColumnsMinus1( uiCode ); 
     295    READ_UVLC ( uiCode, "num_tile_rows_minus1" );                   pcPPS->setNumTileRowsMinus1( uiCode ); 
     296    READ_FLAG ( uiCode, "uniform_spacing_flag" );                   pcPPS->setTileUniformSpacingFlag( uiCode == 1 );
     297
     298    if( !pcPPS->getTileUniformSpacingFlag())
     299    {
     300      std::vector<Int> columnWidth(pcPPS->getNumTileColumnsMinus1());
     301      for(UInt i=0; i<pcPPS->getNumTileColumnsMinus1(); i++)
    310302      {
    311303        READ_UVLC( uiCode, "column_width_minus1" ); 
    312304        columnWidth[i] = uiCode+1;
    313305      }
    314       pcPPS->setColumnWidth(columnWidth);
    315       free(columnWidth);
    316 
    317       UInt* rowHeight = (UInt*)malloc(pcPPS->getNumRowsMinus1()*sizeof(UInt));
    318       for(UInt i=0; i<pcPPS->getNumRowsMinus1(); i++)
     306      pcPPS->setTileColumnWidth(columnWidth);
     307
     308      std::vector<Int> rowHeight (pcPPS->getTileNumRowsMinus1());
     309      for(UInt i=0; i<pcPPS->getTileNumRowsMinus1(); i++)
    319310      {
    320311        READ_UVLC( uiCode, "row_height_minus1" );
    321312        rowHeight[i] = uiCode + 1;
    322313      }
    323       pcPPS->setRowHeight(rowHeight);
    324       free(rowHeight); 
    325     }
    326 
    327     if(pcPPS->getNumColumnsMinus1() !=0 || pcPPS->getNumRowsMinus1() !=0)
     314      pcPPS->setTileRowHeight(rowHeight);
     315    }
     316
     317    if(pcPPS->getNumTileColumnsMinus1() !=0 || pcPPS->getTileNumRowsMinus1() !=0)
    328318    {
    329319      READ_FLAG ( uiCode, "loop_filter_across_tiles_enabled_flag" );   pcPPS->setLoopFilterAcrossTilesEnabledFlag( uiCode ? true : false );
     
    342332    }
    343333  }
    344 #if !H_MV_HLS10_PPS
    345 #if H_MV
    346   if ( pcPPS->getLayerId() > 0 )
    347   {
    348     READ_FLAG( uiCode, "pps_infer_scaling_list_flag" ); pcPPS->setPpsInferScalingListFlag( uiCode == 1 );   
    349   }
    350 
    351   if( pcPPS->getPpsInferScalingListFlag( ) )
    352   {
    353     READ_CODE( 6, uiCode, "pps_scaling_list_ref_layer_id" ); pcPPS->setPpsScalingListRefLayerId( uiCode );
    354   }
    355   else
    356   { 
    357 #endif
    358 #endif
    359334  READ_FLAG( uiCode, "pps_scaling_list_data_present_flag" );           pcPPS->setScalingListPresentFlag( uiCode ? true : false );
    360335  if(pcPPS->getScalingListPresentFlag ())
     
    362337    parseScalingList( pcPPS->getScalingList() );
    363338  }
    364 #if !H_MV_HLS10_PPS
    365 #if H_MV
    366   }
    367 #endif
    368 #endif
    369339  READ_FLAG( uiCode, "lists_modification_present_flag");
    370340  pcPPS->setListsModificationPresentFlag(uiCode);
     
    400370    if ( pcPPS->getPpsMultilayerExtensionFlag() )
    401371    {
    402 #if H_MV_HLS10_PPS
    403372      parsePPSMultilayerExtension( pcPPS );
    404 #else
    405       READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 );
    406       READ_FLAG( uiCode, "pps_extension_reserved_zero_flag" );
    407 #endif
    408373    }
    409374#if !H_3D
     
    505470              READ_CODE(8, uiNumDepthValues, "num_depth_values_in_dlt[i]");   // num_entry
    506471
    507 #if !H_3D_DELTA_DLT
    508               if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false )       // Single-view DLT Diff Coding
    509 #endif
    510472              {
    511473                // The condition if( pcVPS->getNumDepthValues(i) > 0 ) is always true since for Single-view Diff Coding, there is at least one depth value in depth component.
     
    555517            }
    556518           
    557 #if H_3D_DELTA_DLT
    558519            if( pcDLT->getInterViewDltPredEnableFlag( i ) )
    559520            {
     
    571532              pcDLT->setDepthLUTs(i, aiIdx2DepthValue, uiNumDepthValues);
    572533            }
    573 #else
    574             // store final DLT
    575             pcDLT->setDepthLUTs(i, aiIdx2DepthValue, uiNumDepthValues);
    576 #endif
     534
    577535          }
    578536        }
     
    782740    READ_CODE( 3,  uiCode, "sps_max_sub_layers_minus1" );          pcSPS->setMaxTLayers   ( uiCode+1 );
    783741    assert(uiCode <= 6);
    784 #if H_MV_HLS10_MULTILAYERSPS
    785742#if H_MV
    786743  }
     
    793750  {
    794751#endif
    795 #endif
    796752
    797753    READ_FLAG( uiCode, "sps_temporal_id_nesting_flag" );               pcSPS->setTemporalIdNestingFlag ( uiCode > 0 ? true : false );
     
    803759
    804760    parsePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1);
    805 #if H_MV_HLS10_PTL_INFER_FIX
     761#if H_MV
    806762    pcSPS->getPTL()->inferGeneralValues ( true, 0, NULL );
    807763    pcSPS->getPTL()->inferSubLayerValues( pcSPS->getMaxTLayers() - 1, 0, NULL );
    808 #endif
    809 #if H_MV
    810764  }
    811765#endif
     
    813767  assert(uiCode <= 15);
    814768#if H_MV
    815 #if H_MV_HLS10_MULTILAYERSPS
    816769  if ( pcSPS->getMultiLayerExtSpsFlag() )
    817 #else
    818   if ( pcSPS->getLayerId() > 0 )
    819 #endif
    820770  {
    821771    READ_FLAG( uiCode, "update_rep_format_flag" );               pcSPS->setUpdateRepFormatFlag( uiCode == 1 );
     
    839789    READ_UVLC (    uiCode, "pic_width_in_luma_samples" );          pcSPS->setPicWidthInLumaSamples ( uiCode    );
    840790    READ_UVLC (    uiCode, "pic_height_in_luma_samples" );         pcSPS->setPicHeightInLumaSamples( uiCode    );
    841 #if !H_MV_HLS10_MULTILAYERSPS
    842 #if H_MV
    843   }
    844 #endif
    845 #endif
    846791  READ_FLAG(     uiCode, "conformance_window_flag");
    847792  if (uiCode != 0)
     
    855800    READ_UVLC(   uiCode, "conf_win_top_offset" );                conf.setWindowTopOffset   ( uiCode  );
    856801    READ_UVLC(   uiCode, "conf_win_bottom_offset" );             conf.setWindowBottomOffset( uiCode  );   
    857 #if H_MV_HLS10_MULTILAYERSPS
    858   }
    859 #endif
     802  }
    860803#else
    861804    READ_UVLC(   uiCode, "conf_win_left_offset" );               conf.setWindowLeftOffset  ( uiCode * TComSPS::getWinUnitX( pcSPS->getChromaFormatIdc() ) );
     
    867810
    868811#if H_MV
    869 #if H_MV_HLS10_MULTILAYERSPS
    870812  if ( !pcSPS->getMultiLayerExtSpsFlag() )
    871 #else // H_MV_HLS10_GEN
    872   if ( pcSPS->getLayerId() == 0 )
    873 #endif // H_MV_HLS10_GEN
    874813  {
    875814#endif
     
    891830
    892831#if H_MV
    893 #if H_MV_HLS10_MULTILAYERSPS
    894832  if ( !pcSPS->getMultiLayerExtSpsFlag())
    895 #else
    896   if ( pcSPS->getLayerId() == 0 )
    897 #endif
    898833  { 
    899834#endif
     
    954889  {
    955890#if H_MV
    956 #if H_MV_HLS10_MULTILAYERSPS
    957891    if ( pcSPS->getMultiLayerExtSpsFlag() )
    958 #else
    959     if ( pcSPS->getLayerId() > 0 )
    960 #endif
    961892    {   
    962893      READ_FLAG( uiCode, "sps_infer_scaling_list_flag" ); pcSPS->setSpsInferScalingListFlag( uiCode == 1 );
     
    10861017  READ_FLAG( uiCode, "inter_view_mv_vert_constraint_flag" );    pcSPS->setInterViewMvVertConstraintFlag(uiCode == 1 ? true : false);
    10871018 
    1088 #if !H_MV_HLS10_PPS
    1089   READ_UVLC( uiCode, "num_scaled_ref_layer_offsets" ); pcSPS->setNumScaledRefLayerOffsets( uiCode );
    1090 
    1091   for( Int i = 0; i < pcSPS->getNumScaledRefLayerOffsets( ); i++)
    1092   {   
    1093     READ_CODE( 6, uiCode, "scaled_ref_layer_id" ); pcSPS->setScaledRefLayerId( i, uiCode );
    1094 
    1095     Int j = pcSPS->getScaledRefLayerId( i );
    1096     Int iCode;
    1097     READ_SVLC( iCode, "scaled_ref_layer_left_offset" ); pcSPS->setScaledRefLayerLeftOffset( j, iCode );
    1098     READ_SVLC( iCode, "scaled_ref_layer_top_offset" ); pcSPS->setScaledRefLayerTopOffset( j, iCode );
    1099     READ_SVLC( iCode, "scaled_ref_layer_right_offset" ); pcSPS->setScaledRefLayerRightOffset( j, iCode );
    1100     READ_SVLC( iCode, "scaled_ref_layer_bottom_offset" ); pcSPS->setScaledRefLayerBottomOffset( j, iCode );
    1101     READ_FLAG( uiCode, "sps_multilayer_ext_reserved_zero_flag[ i ]" );
    1102   }
    1103 #endif
    11041019}
    11051020
     
    11071022Void TDecCavlc::parseSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
    11081023{
    1109 #if !MTK_I0099_VPS_EX2
    1110   UInt uiCode;
    1111 #if H_3D_QTLPC
    1112   //GT: This has to go to VPS
    1113   if( depthFlag )
    1114   {
    1115     READ_FLAG( uiCode, "use_qtl_flag" );
    1116     pcSPS->setUseQTL( uiCode );
    1117     READ_FLAG( uiCode, "use_pc_flag" );
    1118     pcSPS->setUsePC( uiCode );
    1119   }
    1120 #endif
    1121 #endif
    1122 }
    1123 #endif
    1124 
    1125 #if H_MV_HLS10_PPS
     1024
     1025}
     1026#endif
     1027
    11261028Void TDecCavlc::parsePPSMultilayerExtension(TComPPS* pcPPS)
    11271029{
     
    11341036
    11351037#endif
    1136 #endif
    11371038
    11381039Void TDecCavlc::parseVPS(TComVPS* pcVPS)
     
    11431044#if H_MV
    11441045  READ_FLAG( uiCode, "vps_base_layer_internal_flag" );            pcVPS->setVpsBaseLayerInternalFlag( uiCode == 1 );
    1145 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    11461046  READ_FLAG( uiCode, "vps_base_layer_available_flag" );           pcVPS->setVpsBaseLayerAvailableFlag( uiCode == 1 );
    1147 #else
    1148   READ_FLAG( uiCode, "vps_reserved_one_bit" );                    assert( uiCode == 1 );
    1149 #endif
    11501047#else
    11511048  READ_CODE( 2,  uiCode,  "vps_reserved_three_2bits" );           assert(uiCode == 3);
     
    11621059  READ_CODE( 16, uiCode,  "vps_reserved_ffff_16bits" );           assert(uiCode == 0xffff);
    11631060  parsePTL ( pcVPS->getPTL(), true, pcVPS->getMaxTLayers()-1);
    1164 #if H_MV_HLS10_PTL_INFER_FIX
    11651061#if H_MV
    11661062  pcVPS->getPTL()->inferGeneralValues ( true, 0, NULL );
    11671063  pcVPS->getPTL()->inferSubLayerValues( pcVPS->getMaxTLayers() - 1, 0, NULL );
    1168 #endif
    11691064#endif
    11701065  UInt subLayerOrderingInfoPresentFlag;
     
    11931088  READ_CODE( 6, uiCode, "vps_max_layer_id" );   pcVPS->setVpsMaxLayerId( uiCode );
    11941089
    1195 #if H_MV_HLS10_GEN_FIX
    11961090  READ_UVLC(    uiCode, "vps_num_layer_sets_minus1" );  pcVPS->setVpsNumLayerSetsMinus1( uiCode );
    1197 #else
    1198   READ_UVLC(    uiCode, "vps_max_num_layer_sets_minus1" );               pcVPS->setVpsNumLayerSetsMinus1( uiCode );
    1199 #endif
    12001091  for( UInt opsIdx = 1; opsIdx <= pcVPS->getVpsNumLayerSetsMinus1(); opsIdx ++ )
    12011092  {
     
    12411132        READ_FLAG( uiCode, "cprms_present_flag[i]" );              pcVPS->setCprmsPresentFlag( uiCode == 1 ? true : false, i );
    12421133      }
     1134      else
     1135      {
     1136        pcVPS->setCprmsPresentFlag( true, i );
     1137      }
     1138
    12431139      parseHrdParameters(pcVPS->getHrdParameters(i), pcVPS->getCprmsPresentFlag( i ), pcVPS->getMaxTLayers() - 1);
    12441140    }
     
    12861182  UInt uiCode;
    12871183
    1288 #if H_MV_HLS10_PTL
    12891184  if( pcVPS->getMaxLayersMinus1() > 0  &&  pcVPS->getVpsBaseLayerInternalFlag() )
    12901185  {
    12911186    parsePTL( pcVPS->getPTL( 1 ),0, pcVPS->getMaxSubLayersMinus1()  ); 
    12921187   
    1293 #if !H_MV_HLS10_PTL_INFER_FIX
    1294     // Copy Profile info
    1295     TComPTL temp = *pcVPS->getPTL( 1 );
    1296     *pcVPS->getPTL( 1 ) = *pcVPS->getPTL( 0 );
    1297     pcVPS->getPTL( 1 )->copyLevelFrom( &temp );
    1298 #else
    12991188    pcVPS->getPTL( 1 )->inferGeneralValues ( false, 1, pcVPS->getPTL( 0 ) );
    13001189    pcVPS->getPTL( 1 )->inferSubLayerValues( pcVPS->getMaxSubLayersMinus1(), 1, pcVPS->getPTL( 0 ) );   
    1301 #endif
    1302   }
    1303 #endif
     1190  }
    13041191
    13051192  READ_FLAG( uiCode, "splitting_flag" );                          pcVPS->setSplittingFlag( uiCode == 1 ? true : false );
     
    13751262  pcVPS->setRefLayers();
    13761263
    1377 #if H_MV_HLS10_ADD_LAYERSETS
    13781264  if ( pcVPS->getNumIndependentLayers() > 1 )
    13791265  {
     
    13881274    pcVPS->deriveAddLayerSetLayerIdList( i );
    13891275  }
    1390 #endif
    13911276
    13921277  READ_FLAG( uiCode, "vps_sub_layers_max_minus1_present_flag" ); pcVPS->setVpsSubLayersMaxMinus1PresentFlag( uiCode == 1 );
     
    14251310  READ_UVLC( uiCode, "vps_num_profile_tier_level_minus1" );  pcVPS->setVpsNumProfileTierLevelMinus1( uiCode ); 
    14261311
    1427 #if H_MV_HLS10_PTL
    14281312  Int offsetVal =  ( pcVPS->getMaxLayersMinus1() > 0  &&  pcVPS->getVpsBaseLayerInternalFlag() ) ? 2 : 1;   
    14291313  for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 2 : 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ )
     
    14311315    READ_FLAG(  uiCode, "vps_profile_present_flag[i]" );    pcVPS->setVpsProfilePresentFlag( i, uiCode == 1 );
    14321316    parsePTL ( pcVPS->getPTL( offsetVal ), pcVPS->getVpsProfilePresentFlag( i ), pcVPS->getMaxTLayers()-1);
    1433 #if H_MV_HLS10_PTL_INFER_FIX
    14341317    pcVPS->getPTL( offsetVal )->inferGeneralValues ( pcVPS->getVpsProfilePresentFlag( i ), offsetVal, pcVPS->getPTL( offsetVal - 1 ) );   
    14351318    pcVPS->getPTL( offsetVal )->inferSubLayerValues( pcVPS->getMaxSubLayersMinus1()      , offsetVal, pcVPS->getPTL( offsetVal - 1 ) );   
    1436 #else
    1437     if( !pcVPS->getVpsProfilePresentFlag( i ) )
    1438     {
    1439       TComPTL temp = *pcVPS->getPTL( offsetVal );
    1440       *pcVPS->getPTL( offsetVal ) = *pcVPS->getPTL( offsetVal - 1 );
    1441       pcVPS->getPTL( offsetVal )->copyLevelFrom( &temp );
    1442     }
    1443 #endif
    14441319    offsetVal++;
    14451320  }
    1446 #else
    1447   for( Int i = 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ )
    1448   {
    1449     READ_FLAG(  uiCode, "vps_profile_present_flag[i]" );    pcVPS->setVpsProfilePresentFlag( i, uiCode == 1 );
    1450     parsePTL ( pcVPS->getPTL( i ), pcVPS->getVpsProfilePresentFlag( i ), pcVPS->getMaxTLayers()-1);
    1451     if( !pcVPS->getVpsProfilePresentFlag( i ) )
    1452     {
    1453       TComPTL temp = *pcVPS->getPTL( i );
    1454       *pcVPS->getPTL( i ) = *pcVPS->getPTL( i - 1 );
    1455       pcVPS->getPTL( i )->copyLevelFrom( &temp );
    1456     }
    1457   }
    1458 #endif
    1459 
    1460 #if !H_MV_HLS10_ADD_LAYERSETS
    1461   if ( pcVPS->getNumIndependentLayers() > 1 )
    1462   {
    1463    READ_UVLC( uiCode, "num_add_layer_sets"      ); pcVPS->setNumAddLayerSets( uiCode );
    1464   }
    1465   for (Int i = 0; i < pcVPS->getNumAddLayerSets(); i++)
    1466   {
    1467     for (Int j = 0; j < pcVPS->getNumIndependentLayers(); j++)
    1468     {
    1469       READ_CODE( pcVPS->getHighestLayerIdxPlus1Len( j ) , uiCode, "highest_layer_idx_plus1" ); pcVPS->setHighestLayerIdxPlus1( i, j, uiCode );
    1470     }
    1471   }
    1472 #endif
     1321
    14731322
    14741323  if (pcVPS->getNumLayerSets() > 1)
     
    14841333  pcVPS->setLayerSetIdxForOlsMinus1(0, -1);
    14851334
    1486 #if H_MV_HLS10_NESSECARY_LAYER
    14871335  pcVPS->deriveNecessaryLayerFlags( 0 );
    1488 #endif
    14891336  pcVPS->deriveTargetLayerIdList( 0 );
    14901337
    1491 #if H_MV_HLS10_PTL_FIX
    14921338  if (pcVPS->getVpsBaseLayerInternalFlag() )
    14931339  { 
    14941340    pcVPS->setProfileTierLevelIdx(0,0, pcVPS->inferProfileTierLevelIdx(0,0) );
    14951341  }
    1496 #endif
    14971342  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    14981343  {
    14991344    if( i >= pcVPS->getNumLayerSets( ) )   
    15001345    {       
    1501 #if !VPS_MISC_UPDATES
    1502       READ_UVLC( uiCode,      "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode );
    1503 #else
    15041346      READ_CODE( pcVPS->getLayerSetIdxForOlsMinus1Len( i ), uiCode, "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode );
    1505 #endif
    15061347    }
    15071348
     
    15201361      }
    15211362    }
    1522 #if H_MV_HLS10_NESSECARY_LAYER
    15231363    pcVPS->deriveNecessaryLayerFlags( i );
    1524 #endif
    15251364    pcVPS->deriveTargetLayerIdList( i );
    15261365
    1527 #if H_MV_HLS10_PTL
    15281366    for ( Int j = 0; j < pcVPS->getNumLayersInIdList( pcVPS->olsIdxToLsIdx(i)); j++ )
    15291367    {   
     
    15321370        READ_CODE( pcVPS->getProfileTierLevelIdxLen(), uiCode,"profile_tier_level_idx[ i ][ j ]" );   pcVPS->setProfileTierLevelIdx( i, j, uiCode );
    15331371      }
    1534 #if H_MV_HLS10_PTL_FIX
    15351372      if (pcVPS->getNecessaryLayerFlag( i, j ) && pcVPS->getVpsNumProfileTierLevelMinus1() == 0 )
    15361373      {
    15371374        pcVPS->setProfileTierLevelIdx( i , j, pcVPS->inferProfileTierLevelIdx( i, j) );
    15381375      }
    1539 #endif
    1540     }
    1541 #else
    1542     if ( pcVPS->getProfileLevelTierIdxLen()  > 0 )
    1543     {
    1544       READ_CODE( pcVPS->getProfileLevelTierIdxLen(), uiCode,"profile_level_tier_idx[ i ]" );   pcVPS->setProfileLevelTierIdx( i , uiCode );
    1545     }
    1546 #endif
     1376    }
    15471377
    15481378    if( pcVPS->getNumOutputLayersInOutputLayerSet( i ) == 1 && pcVPS->getNumDirectRefLayers( pcVPS->getOlsHighestOutputLayerId( i ) ) > 0 )
     
    15941424  }
    15951425
    1596 #if !H_MV_HLS10_GEN_FIX
    1597   READ_FLAG( uiCode, "vps_reserved_zero_flag" );
    1598 #endif
    15991426  parseDpbSize( pcVPS );
    16001427
     
    16701497    pcRepFormat->inferChromaAndBitDepth(pcPrevRepFormat, false );
    16711498  }
    1672 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    16731499  READ_FLAG( uiCode, "conformance_window_vps_flag" ); pcRepFormat->setConformanceWindowVpsFlag( uiCode == 1 );
    16741500  if ( pcRepFormat->getConformanceWindowVpsFlag() )
     
    16791505    READ_UVLC( uiCode, "conf_win_vps_bottom_offset" ); pcRepFormat->setConfWinVpsBottomOffset( uiCode );
    16801506  }
    1681 #endif
    16821507}
    16831508
     
    17051530  if( pcVPSVUI->getBitRatePresentVpsFlag( )  ||  pcVPSVUI->getPicRatePresentVpsFlag( ) )
    17061531  {
    1707 #if H_MV_HLS10_VPS_VUI
    17081532    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i  <  pcVPS->getNumLayerSets(); i++ )
    1709 #else
    1710     for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i  <=  pcVPS->getVpsNumLayerSetsMinus1(); i++ )
    1711 #endif
    17121533    {
    17131534      for( Int j = 0; j  <=  pcVPS->getMaxSubLayersInLayerSetMinus1( i ); j++ )
     
    17421563  else
    17431564  {
    1744 #if H_MV_HLS10_VPS_VUI
    17451565    pcVPSVUI->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() - pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1 );
    1746 #else
    1747     pcVPSVUI->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() );
    1748 #endif
    17491566  }
    17501567
     
    17571574  }
    17581575
    1759 #if I0045_VPS_VUI_VST_PARAMS
    17601576  if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 )
    17611577  {
     
    17791595    }
    17801596  }
    1781 #else
    1782   if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 )
    1783   {
    1784     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1785     {
    1786       READ_CODE( 4, uiCode, "vps_video_signal_info_idx" ); pcVPSVUI->setVpsVideoSignalInfoIdx( i, uiCode );
    1787       assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) >= 0 && pcVPSVUI->getVpsVideoSignalInfoIdx( i ) <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1() );
    1788     }
    1789   }
    1790   else
    1791   {
    1792     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1793     {
    1794       pcVPSVUI->setVpsVideoSignalInfoIdx( i, pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ? 0 : i );
    1795     }
    1796   }
    1797 #endif
     1597
    17981598  READ_FLAG( uiCode, "tiles_not_in_use_flag" ); pcVPSVUI->setTilesNotInUseFlag( uiCode == 1 );
    17991599  if( !pcVPSVUI->getTilesNotInUseFlag() )
     
    18111611      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ) ; j++ )
    18121612      {
    1813 #if H_MV_HLS10_REF_PRED_LAYERS
    18141613        Int layerIdx = pcVPS->getLayerIdInVps(pcVPS->getIdDirectRefLayer(pcVPS->getLayerIdInNuh( i ) , j  )); 
    1815 #else
    1816         Int layerIdx = pcVPS->getLayerIdInVps(pcVPS->getRefLayerId(pcVPS->getLayerIdInNuh( i ) , j  )); 
    1817 #endif
    18181614        if( pcVPSVUI->getTilesInUseFlag( i )  &&  pcVPSVUI->getTilesInUseFlag( layerIdx ) ) 
    18191615        {
     
    18331629    }
    18341630  }
    1835 #if H_MV_HLS10_VPS_VUI
    18361631  READ_FLAG( uiCode, "single_layer_for_non_irap_flag" ); pcVPSVUI->setSingleLayerForNonIrapFlag( uiCode == 1 );
    18371632  READ_FLAG( uiCode, "higher_layer_irap_skip_flag" ); pcVPSVUI->setHigherLayerIrapSkipFlag( uiCode == 1 );
    1838 #else
    1839   READ_CODE( 3, uiCode, "vps_vui_reserved_zero_3bits" );
    1840 #endif
    18411633  READ_FLAG( uiCode, "ilp_restricted_ref_layers_flag" ); pcVPSVUI->setIlpRestrictedRefLayersFlag( uiCode == 1 );
    18421634
     
    18471639      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ); j++ )
    18481640      {
    1849 #if H_MV_HLS10_REF_PRED_LAYERS
    18501641        if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getIdDirectRefLayer( pcVPS->getLayerIdInNuh( i ), j ) > 0 )
    1851 #else
    1852         if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getRefLayerId( pcVPS->getLayerIdInNuh( i ), j ) > 0 )
    1853 #endif
    18541642        {       
    18551643          READ_UVLC( uiCode, "min_spatial_segment_offset_plus1" ); pcVPSVUI->setMinSpatialSegmentOffsetPlus1( i, j, uiCode );
     
    18701658  if ( pcVPSVUI->getVpsVuiBspHrdPresentFlag( ) )
    18711659  {
    1872 #if VPS_MISC_UPDATES
    18731660    assert(pcVPS->getTimingInfo()->getTimingInfoPresentFlag() == 1);
    1874 #endif
    18751661    parseVpsVuiBspHrdParameters( pcVPS );
    18761662  }
     
    18931679
    18941680  TComVpsVuiBspHrdParameters*  vpsVuiBspHrdP = pcVPSVUI->getVpsVuiBspHrdParameters();
    1895 #if H_MV_HLS10_VPS_VUI_BSP
    18961681  assert( vpsVuiBspHrdP == NULL );
    18971682  vpsVuiBspHrdP = new TComVpsVuiBspHrdParameters;
    18981683  pcVPSVUI->setVpsVuiBspHrdParameters( vpsVuiBspHrdP );
    1899 #else
    1900   assert ( vpsVuiBspHrdP );
    1901 #endif
    19021684  UInt uiCode;
    1903 #if H_MV_HLS10_VPS_VUI_BSP
    19041685  READ_UVLC( uiCode, "vps_num_add_hrd_params" ); vpsVuiBspHrdP->setVpsNumAddHrdParams( uiCode );
    19051686  vpsVuiBspHrdP->createAfterVpsNumAddHrdParams( pcVPS );
     
    19901771    }
    19911772  } 
    1992 #else
    1993   READ_UVLC( uiCode, "vps_num_bsp_hrd_parameters_minus1" ); vpsVuiBspHrdP->setVpsNumBspHrdParametersMinus1( uiCode );
    1994   for( Int i = 0; i <= vpsVuiBspHrdP->getVpsNumBspHrdParametersMinus1( ); i++ )
    1995   { 
    1996     if( i > 0 )
    1997     {
    1998       READ_FLAG( uiCode, "bsp_cprms_present_flag" ); vpsVuiBspHrdP->setBspCprmsPresentFlag( i, uiCode == 1 );
    1999     }
    2000     TComHRD* hrdParameters = vpsVuiBspHrdP->getHrdParametermeters( i );
    2001     parseHrdParameters( hrdParameters, vpsVuiBspHrdP->getBspCprmsPresentFlag( i ), pcVPS->getMaxSubLayersMinus1() );     
    2002   } 
    2003   for( Int h = 1; h <= pcVPS->getVpsNumLayerSetsMinus1(); h++ )
    2004   { 
    2005     READ_UVLC( uiCode, "num_bitstream_partitions" ); vpsVuiBspHrdP->setNumBitstreamPartitions( h, uiCode );
    2006     for( Int i = 0; i < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); i++ ) 
    2007     {
    2008       for( Int j = 0; j < pcVPS->getNumLayersInIdList( h ); j++ ) 
    2009       {
    2010         READ_FLAG( uiCode, "layer_in_bsp_flag" ); vpsVuiBspHrdP->setLayerInBspFlag( h, i, j, uiCode == 1 );
    2011       }
    2012     }
    2013     vpsVuiBspHrdP->checkLayerInBspFlag( pcVPS, h );
    2014    
    2015     if( vpsVuiBspHrdP->getNumBitstreamPartitions( h ) )
    2016     { 
    2017       READ_UVLC( uiCode, "num_bsp_sched_combinations_minus1" ); vpsVuiBspHrdP->setNumBspSchedCombinationsMinus1( h, uiCode );
    2018       for( Int i = 0; i <= vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ); i++ )
    2019       {
    2020         for( Int j = 0; j < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); j++ )
    2021         { 
    2022           READ_CODE( vpsVuiBspHrdP->getBspCombHrdIdxLen(), uiCode, "bsp_comb_hrd_idx" ); vpsVuiBspHrdP->setBspCombHrdIdx( h, i, j, uiCode );
    2023           READ_UVLC( uiCode, "bsp_comb_sched_idx" ); vpsVuiBspHrdP->setBspCombSchedIdx( h, i, j, uiCode );
    2024           vpsVuiBspHrdP->checkBspCombHrdAndShedIdx( pcVPS, h, i, j );
    2025         } 
    2026       }
    2027     } 
    2028   } 
    2029 #endif 
    20301773}
    20311774
     
    20601803        for( Int k = 0; k < vps->getNumLayersInIdList( currLsIdx ); k++ )   
    20611804        {
    2062 #if H_MV_HLS10_DBP_SIZE
    20631805          if ( vps->getNecessaryLayerFlag( i, k ) && ( vps->getVpsBaseLayerInternalFlag() || ( vps->getLayerSetLayerIdList(vps->olsIdxToLsIdx(i),k) != 0 ) ))
    20641806          {
     
    20721814            }
    20731815          }
    2074 #else
    2075           READ_UVLC( uiCode, "max_vps_dec_pic_buffering_minus1" ); dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, uiCode );
    2076 #endif
    20771816        }
    20781817        READ_UVLC( uiCode, "max_vps_num_reorder_pics" ); dpbSize->setMaxVpsNumReorderPics( i, j, uiCode );
     
    20851824          for( Int k = 0; k < vps->getNumLayersInIdList( vps->olsIdxToLsIdx( i ) ); k++ )   
    20861825          {
    2087 #if H_MV_HLS10_DBP_SIZE
    20881826            if ( vps->getNecessaryLayerFlag(i, k ) )
    20891827            {           
    2090 #endif
    20911828              dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, dpbSize->getMaxVpsDecPicBufferingMinus1( i,k, j - 1 ) );
    2092 #if H_MV_HLS10_DBP_SIZE
    20931829            }
    2094 #endif           
    20951830          }
    20961831          dpbSize->setMaxVpsNumReorderPics      ( i, j, dpbSize->getMaxVpsNumReorderPics      ( i, j - 1 ) );
     
    21061841{
    21071842  UInt uiCode;
    2108 #if SEC_VPS_CLEANUP_I0090
    21091843  for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )
    2110 #else
    2111   for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ )
    2112 #endif
    21131844  {
    21141845#if H_3D_ARP
     
    21191850    pcVPS->setSubPULog2Size(i, 0);
    21201851#endif
    2121 #if !SEC_VPS_CLEANUP_I0090
    2122     if ( i != 0 )
    2123 #endif
    2124     {
    2125 #if MTK_I0099_VPS_EX2
     1852    {
     1853#if H_3D_IV_MERGE
    21261854      READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    2127 #if SEC_HLS_CLEANUP_I0100
    21281855      READ_FLAG( uiCode, "iv_mv_scaling_flag[i]");       pcVPS->setIvMvScalingFlag         ( i, uiCode == 1 ? true : false );
    21291856#endif
    2130 #endif
    21311857      if( !( pcVPS->getDepthId( i ) == 1 ) )
    21321858      {
    21331859#if H_3D_IV_MERGE
    2134 #if !MTK_I0099_VPS_EX2
    2135         READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    2136 #endif
    21371860        if( !pcVPS->getNumDirectRefLayers(i) )
    21381861        {
     
    21661889      else
    21671890      {
    2168 #if !MTK_I0099_VPS_EX2
    2169 #if H_3D_IV_MERGE
    2170         if(i!=1)
    2171         {
    2172           READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    2173           if( !pcVPS->getNumDirectRefLayers(i) )
    2174           {
    2175             assert( !uiCode );         
    2176           }
    2177         }
    2178 #endif
    2179 #if H_3D_SPIVMP
    2180         if (i!=1)
    2181         {
    2182           READ_UVLC (uiCode, "log2_sub_PU_size_minus3[i]");     pcVPS->setSubPULog2Size(i, uiCode+3);
    2183         }
    2184 #endif
    2185 #endif
    21861891#if H_3D_IV_MERGE
    21871892        READ_FLAG( uiCode, "mpi_flag[i]" );             pcVPS->setMPIFlag( i, uiCode == 1 ? true : false );
    2188 #endif
    2189 #if MTK_I0099_VPS_EX2
    21901893        READ_UVLC (uiCode, "log2_mpi_sub_PU_size_minus3[i]");     pcVPS->setSubPUMPILog2Size(i, uiCode+3);
    21911894#endif
    21921895        READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
    2193 #if SEPARATE_FLAG_I0085
     1896#if H_3D
    21941897        READ_FLAG( uiCode, "ivp_flag[i]" );                   pcVPS->setIVPFlag( i, uiCode == 1 ? true : false );
    21951898#endif
    2196 #if MTK_I0099_VPS_EX2
     1899#if H_3D_QTLPC
    21971900        READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPredFlag     ( i, uiCode == 1 ? true : false );
    21981901#endif
     
    22091912
    22101913  READ_UVLC( uiCamParPrecision, "cp_precision" );
    2211 #if SEC_VPS_CLEANUP_I0090
    22121914  for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)
    2213 #else
    2214   for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++)
    2215 #endif
    22161915  {
    22171916    pcVPS->setCamParPresent         ( viewIndex, false );
     
    22351934    }
    22361935  }
    2237 #if !MTK_I0099_VPS_EX2
    2238   READ_UVLC (uiCode, "log2_sub_PU_MPI_size_minus3");              pcVPS->setSubPUMPILog2Size( uiCode + 3 );
    2239 #endif
    2240 #if !SEC_HLS_CLEANUP_I0100
    2241   READ_FLAG( uiCode, "iv_mv_scaling_flag");                       pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false );
    2242 #endif
    22431936}
    22441937#endif
     
    22881981  sps->inferScalingList( parameterSetManager->getActiveSPS( sps->getSpsScalingListRefLayerId() ) );   
    22891982  sps->inferSpsMaxDecPicBufferingMinus1( vps, targetOlsIdx, rpcSlice->getLayerId(), false );
    2290 #if !H_MV_HLS10_ADD_LAYERSETS
    2291   vps->inferDbpSizeLayerSetZero( sps, false );
    2292 #endif
    22931983
    22941984  if ( sps->getVuiParametersPresentFlag() )
     
    23582048      esb++;
    23592049      READ_FLAG( uiCode, "discardable_flag" ); rpcSlice->setDiscardableFlag( uiCode == 1 );
    2360 #if NON_REF_NAL_TYPE_DISCARDABLE
    23612050      if ( uiCode == 1 )
    23622051      {
     
    23672056          rpcSlice->getNalUnitType() != NAL_UNIT_CODED_SLICE_RASL_R);
    23682057      }
    2369 #endif
    23702058    }
    23712059
     
    25152203          rps->checkMaxNumPics(
    25162204            vps->getVpsExtensionFlag(),
    2517 #if H_MV_HLS10_MAXNUMPICS
    25182205            MAX_INT,  // To be replaced by MaxDbpSize
    2519 #else
    2520             vps->getMaxNumPics( rpcSlice->getLayerId() ),
    2521 #endif
    25222206            rpcSlice->getLayerId(),
    25232207            sps->getMaxDecPicBuffering( sps->getSpsMaxSubLayersMinus1() ) - 1 );
     
    26322316        rps->checkMaxNumPics(
    26332317          vps->getVpsExtensionFlag(),
    2634 #if H_MV_HLS10_MAXNUMPICS
    26352318            MAX_INT,  // To be replaced by MaxDbpsize
    2636 #else
    2637           vps->getMaxNumPics( rpcSlice->getLayerId() ),
    2638 #endif
    26392319          rpcSlice->getLayerId(),
    26402320          sps->getMaxDecPicBuffering( sps->getSpsMaxSubLayersMinus1() ) - 1 );
     
    26552335      if (rpcSlice->getSPS()->getTMVPFlagsPresent())
    26562336      {
    2657 #if I0044_SLICE_TMVP
     2337#if H_MV
    26582338        READ_FLAG( uiCode, "slice_temporal_mvp_enabled_flag" );
    26592339#else
     
    28652545    }
    28662546#if H_3D_IC
    2867 #if SEC_HLS_CLEANUP_I0100
    28682547    else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
    2869 #else
    2870     else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth())
    2871 #endif
    28722548    {
    28732549      UInt uiCodeTmp = 0;
     
    28832559    }
    28842560#endif
    2885 #if MTK_SINGLE_DEPTH_MODE_I0095
     2561#if H_3D_SINGLE_DEPTH
    28862562    if(rpcSlice->getIsDepth())
    28872563    {
     
    30092685
    30102686#if H_3D
    3011 #if LGE_FCO_I0116
     2687#if H_3D_FCO
    30122688  if( rpcSlice->getVPS()->hasCamParInSliceHeader( rpcSlice->getViewIndex() )  && rpcSlice->getIsDepth() )
    30132689#else
     
    30902766    }
    30912767    assert( ( m_pcBitstream->getNumBitsRead() - posFollSliceSegHeaderExtLen ) == rpcSlice->getSliceSegmentHeaderExtensionLength() * 8  );
     2768  }
    30922769#else
    30932770    READ_UVLC( uiCode, "slice_header_extension_length" );
     
    30972774      READ_CODE(8,ignore,"slice_header_extension_data_byte");
    30982775    } 
    3099 #endif
    3100   }
    3101 #if INFERENCE_POC_MSB_VAL_PRESENT
    3102   else
    3103   {
    3104     rpcSlice->setSliceSegmentHeaderExtensionLength( 0 );
    3105     rpcSlice->setPocMsbValPresentFlag( false );
    3106   }
    3107 #endif
    3108 
    3109 
     2776  }
     2777#endif
    31102778  m_pcBitstream->readByteAlignment();
    31112779
     
    31982866      READ_FLAG( uiCode, "sub_layer_profile_present_flag[i]" ); rpcPTL->setSubLayerProfilePresentFlag(i, uiCode);
    31992867#if H_MV
    3200 #if !H_MV_HLS10_PTL_INFER_FIX
    3201       rpcPTL->setSubLayerProfilePresentFlag( i, profilePresentFlag && rpcPTL->getSubLayerProfilePresentFlag(i) );
    3202 #else
    32032868      // When profilePresentFlag is equal to 0, sub_layer_profile_present_flag[ i ] shall be equal to 0.
    32042869      assert( profilePresentFlag || !rpcPTL->getSubLayerProfilePresentFlag(i) );
    3205 #endif
    32062870#else
    32072871    }
     
    32212885  for(Int i = 0; i < maxNumSubLayersMinus1; i++)
    32222886  {
    3223 #if H_MV_HLS10_PTL_INFER_FIX
    32242887#if H_MV
    32252888    if( rpcPTL->getSubLayerProfilePresentFlag(i) )         
    32262889#else
    32272890    if( profilePresentFlag && rpcPTL->getSubLayerProfilePresentFlag(i) )         
    3228 #endif
    3229 #else
    3230     if( profilePresentFlag && rpcPTL->getSubLayerProfilePresentFlag(i) )   
    32312891#endif
    32322892    {
     
    32622922  ptl->setFrameOnlyConstraintFlag(uiCode ? true : false);
    32632923 
    3264 #if H_MV_HLS10_PTL
    3265 #if H_MV_HLS10_PTL_INFER_FIX
     2924#if H_MV
    32662925  if( ptl->getV2ConstraintsPresentFlag() )
    3267 #else
    3268   if( ptl->getProfileIdc( ) ==  4 || ptl->getProfileCompatibilityFlag( 4 )  ||
    3269       ptl->getProfileIdc( ) ==  5 || ptl->getProfileCompatibilityFlag( 5 )  ||
    3270       ptl->getProfileIdc( ) ==  6 || ptl->getProfileCompatibilityFlag( 6 )  ||
    3271       ptl->getProfileIdc( ) ==  7 || ptl->getProfileCompatibilityFlag( 7 ) )
    3272 #endif
    32732926  {
    32742927    READ_FLAG( uiCode, "max_12bit_constraint_flag" );        ptl->setMax12bitConstraintFlag      ( uiCode == 1 );
     
    32912944    READ_CODE(11, uiCode, "XXX_reserved_zero_43bits[32..42]");
    32922945  }
    3293 #if H_MV_HLS10_PTL_INFER_FIX
    32942946  if( ptl->getInbldPresentFlag() )
    3295 #else
    3296   if( ( ptl->getProfileIdc() >= 1 && ptl->getProfileIdc() <= 5 )  ||
    3297     ptl->getProfileCompatibilityFlag( 1 ) || ptl->getProfileCompatibilityFlag( 2 )  ||
    3298     ptl->getProfileCompatibilityFlag( 3 ) || ptl->getProfileCompatibilityFlag( 4 )  ||
    3299     ptl->getProfileCompatibilityFlag( 5 ) )
    3300 #endif
    33012947  {
    33022948    READ_FLAG( uiCode, "inbld_flag" ); ptl->setInbldFlag( uiCode == 1 );
     
    33312977  assert(0);
    33322978}
    3333 #if MTK_SINGLE_DEPTH_MODE_I0095
     2979#if H_3D_SINGLE_DEPTH
    33342980Void TDecCavlc::parseSingleDepthMode( TComDataCU* /*pcCU*/, UInt /*uiAbsPartIdx*/, UInt /*uiDepth*/ )
    33352981{
  • trunk/source/Lib/TLibDecoder/TDecCAVLC.h

    r1066 r1084  
    9797#endif
    9898
    99 #if H_MV_HLS10_PPS
    10099#if H_MV
    101100  Void  parsePPSMultilayerExtension( TComPPS* pcPPS );
    102 #endif
    103101#endif
    104102
     
    126124 
    127125  Void  parseSkipFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    128 #if MTK_SINGLE_DEPTH_MODE_I0095
     126#if H_3D_SINGLE_DEPTH
    129127  Void  parseSingleDepthMode        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    130128#endif 
  • trunk/source/Lib/TLibDecoder/TDecCu.cpp

    r1066 r1084  
    420420    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    421421    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    422 #if !FIX_TICKET_79
    423     InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    424 #endif
    425422#if H_3D_SPIVMP
    426423    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     
    434431    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    435432    m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours
    436 #if !FIX_TICKET_79
    437       , inheritedVSPDisInfo
    438 #endif
    439433#if H_3D_SPIVMP
    440434      , pcMvFieldSP, puhInterDirSP
     
    456450    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    457451#endif
    458 #endif
    459 #if H_3D_VSP && !FIX_TICKET_79
    460     if(vspFlag[uiMergeIndex])
    461     {
    462       pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeIndex].m_acDvInfo, uiAbsPartIdx, 0, uiDepth);
    463     }
    464452#endif
    465453    pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
     
    546534    return;
    547535  }
    548 #if MTK_SINGLE_DEPTH_MODE_I0095
     536#if H_3D_SINGLE_DEPTH
    549537  m_pcEntropyDecoder->decodeSingleDepthMode( pcCU, uiAbsPartIdx, uiDepth );
    550538  if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
     
    580568  m_pcEntropyDecoder->decodeCoeff( pcCU, uiAbsPartIdx, uiDepth, uiCurrWidth, uiCurrHeight, bCodeDQP );
    581569  setdQPFlag( bCodeDQP );
    582 #if MTK_SINGLE_DEPTH_MODE_I0095
     570#if H_3D_SINGLE_DEPTH
    583571  }
    584572#endif
     
    682670      break;
    683671    case MODE_INTRA:
    684 #if MTK_SINGLE_DEPTH_MODE_I0095
     672#if H_3D_SINGLE_DEPTH
    685673      if( m_ppcCU[uiDepth]->getSingleDepthFlag(0) )
    686674        xReconIntraSingleDepth( m_ppcCU[uiDepth], 0, uiDepth );
     
    730718  }
    731719}
    732 #if MTK_SINGLE_DEPTH_MODE_I0095
     720#if H_3D_SINGLE_DEPTH
    733721Void TDecCu::xReconIntraSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    734722{
     
    749737  Pel DepthNeighbours[5];
    750738  Int index =0;
    751   for( Int i = 0; (i < 5) && (index<MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE) ; i++ )
     739  for( Int i = 0; (i < 5) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
    752740  {
    753741    if(!pcCU->getNeighDepth (0, uiAbsPartIdx, &testDepth, i))
     
    859847  // get collocated depth block
    860848  UInt uiDepthStride = 0;
    861 #if LGE_FCO_I0116
     849#if H_3D_FCO
    862850  Pel* pDepthPels = pcCU->getVirtualDepthBlock(pcCU->getZorderIdxInCU(), pcCU->getWidth(0), pcCU->getHeight(0), uiDepthStride);
    863851#else
     
    932920 
    933921  // reconstruct final prediction signal by combining both segments
    934 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    935922  m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize);
    936 #else
    937   m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0));
    938 #endif
    939  
     923
    940924  // inter recon
    941925  xDecodeInterTexture( pcCU, 0, uiDepth );
     
    13111295    Int uiTabIdx = pcCU->getDmmWedgeTabIdx(DMM1_IDX, uiAbsPartIdx);
    13121296
    1313 #if SHARP_DMM1_I0110
    13141297    WedgeList* pacWedgeList  = pcCU->isDMM1UpscaleMode(uiWidth) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] :  &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    1315 #else
    1316     WedgeList* pacWedgeList = &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    1317 #endif
    13181298    TComWedgelet* pcWedgelet = &(pacWedgeList->at( uiTabIdx ));
    13191299
    13201300    uiNumSegments = 2;
    13211301
    1322 #if SHARP_DMM1_I0110
    13231302    pbMask       = pcCU->isDMM1UpscaleMode( uiWidth ) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern();
    13241303    uiMaskStride = pcCU->isDMM1UpscaleMode( uiWidth ) ? uiWidth : pcWedgelet->getStride();
    1325 #else
    1326     pbMask = pcWedgelet->getPattern();
    1327     uiMaskStride = pcWedgelet->getStride();
    1328 #endif
    13291304  }
    13301305  if( getDimType( uiLumaPredMode ) == DMM4_IDX )
  • trunk/source/Lib/TLibDecoder/TDecCu.h

    r1039 r1084  
    123123  Void setdQPFlag               ( Bool b )                { m_bDecodeDQP = b;           }
    124124  Void xFillPCMBuffer           (TComDataCU* pCU, UInt depth);
    125 #if MTK_SINGLE_DEPTH_MODE_I0095
     125#if H_3D_SINGLE_DEPTH
    126126  Void xReconIntraSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    127127#endif
  • trunk/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1039 r1084  
    5252  m_pcEntropyDecoderIf->parseSkipFlag( pcCU, uiAbsPartIdx, uiDepth );
    5353}
    54 #if MTK_SINGLE_DEPTH_MODE_I0095
     54#if H_3D_SINGLE_DEPTH
    5555Void TDecEntropy::decodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    5656{
     
    152152 
    153153#if H_3D_DBBP
    154 
    155 #if SEC_DBBP_EXPLICIT_SIG_I0077
    156 #if SEC_DBBP_DISALLOW_8x8_I0078
    157154  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 )
    158 #else
    159   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) )
    160 #endif
    161 #else
    162 #if SEC_DBBP_DISALLOW_8x8_I0078
    163   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && pcCU->getWidth(uiAbsPartIdx) > 8 )
    164 #else
    165   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) )
    166 #endif
    167 #endif
    168155  {
    169156    decodeDBBPFlag(pcCU, uiAbsPartIdx, uiDepth);
    170 #if !SEC_DBBP_EXPLICIT_SIG_I0077   
    171     if( pcCU->getDBBPFlag(uiAbsPartIdx) )
    172     {
    173      
    174       // get collocated depth block
    175       UInt uiDepthStride = 0;
    176       Pel* pDepthPels = NULL;
    177       pDepthPels = pcCU->getVirtualDepthBlock(uiAbsPartIdx, pcCU->getWidth(uiAbsPartIdx), pcCU->getHeight(uiAbsPartIdx), uiDepthStride);
    178      
    179       AOF( pDepthPels != NULL );
    180       AOF( uiDepthStride != 0 );
    181      
    182       // derive true partitioning for this CU based on depth
    183       // (needs to be done in parsing process as motion vector predictors are also derived during parsing)
    184       PartSize eVirtualPartSize = m_pcPrediction->getPartitionSizeFromDepth(pDepthPels, uiDepthStride, pcCU->getWidth(uiAbsPartIdx));
    185       AOF( eVirtualPartSize != SIZE_NONE );
    186      
    187       pcCU->setPartSizeSubParts(eVirtualPartSize, uiAbsPartIdx, uiDepth);
    188      
    189       // make sure that DBBP flag is set for both segments
    190       UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxCUDepth() - uiDepth ) << 1 ) ) >> 4;
    191       pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx, 0, uiDepth);
    192       pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx+uiPUOffset, 1, uiDepth);
    193     }
    194 #endif
    195157  }
    196158#endif
     
    311273          Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    312274          memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    313 #if !FIX_TICKET_79
    314           InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    315 #endif
    316275#if H_3D_SPIVMP
    317276          memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    320279          pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand);
    321280          pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours
    322 #if !FIX_TICKET_79
    323             , inheritedVSPDisInfo
    324 #endif
    325281#if H_3D_SPIVMP
    326282            , pcMvFieldSP, puhInterDirSP
     
    334290          pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    335291
    336 #if !FIX_TICKET_79
    337           if(vspFlag[uiMergeIndex])
    338           {
    339             pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeIndex].m_acDvInfo, uiSubPartIdx, uiPartIdx, uiDepth);
    340           }
    341 #endif
    342292#else
    343293#if H_3D
     
    360310        Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    361311        memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    362 #if !FIX_TICKET_79
    363         InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    364 #endif
    365312#if H_3D_SPIVMP
    366313        memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    369316        pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    370317        pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours
    371 #if !FIX_TICKET_79
    372           , inheritedVSPDisInfo
    373 #endif
    374318#if H_3D_SPIVMP
    375319          , pcMvFieldSP, puhInterDirSP
     
    382326          ,numValidMergeCand );
    383327        pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    384 #if !FIX_TICKET_79
    385         if(vspFlag[uiMergeIndex])
    386         {
    387           pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeIndex].m_acDvInfo, uiSubPartIdx, uiPartIdx, uiDepth);
    388         }
    389 #endif
    390328#else
    391329#if H_3D
     
    485423#endif
    486424    }
    487 #if H_3D_VSP && !FIX_TICKET_75
    488     if ( (pcCU->getInterDir(uiSubPartIdx) == 3) && pcSubCU->isBipredRestriction(uiPartIdx) && (pcCU->getVSPFlag(uiSubPartIdx) == 0))
    489 #else
    490425    if ( (pcCU->getInterDir(uiSubPartIdx) == 3) && pcSubCU->isBipredRestriction(uiPartIdx) )
    491 #endif
    492426    {
    493427      pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMv( TComMv(0,0), ePartSize, uiSubPartIdx, uiDepth, uiPartIdx);
  • trunk/source/Lib/TLibDecoder/TDecEntropy.h

    r1039 r1084  
    8989public:
    9090  virtual Void parseSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    91 #if MTK_SINGLE_DEPTH_MODE_I0095
     91#if H_3D_SINGLE_DEPTH
    9292  virtual Void parseSingleDepthMode       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    9393#endif
     
    132132  virtual Void updateContextTables( SliceType eSliceType, Int iQp ) = 0;
    133133 
    134   virtual ~TDecEntropyIf() {};
     134  virtual ~TDecEntropyIf() {}
    135135};
    136136
     
    179179  Void decodeSplitFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    180180  Void decodeSkipFlag          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    181 #if MTK_SINGLE_DEPTH_MODE_I0095
     181#if H_3D_SINGLE_DEPTH
    182182  Void decodeSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) ;
    183183#endif
  • trunk/source/Lib/TLibDecoder/TDecGop.cpp

    r976 r1084  
    248248    calcAndPrintHashStatus(*rpcPic->getPicYuvRec(), hash);
    249249  }
     250#if !H_MV
     251#if SETTING_PIC_OUTPUT_MARK
     252  rpcPic->setOutputMark(rpcPic->getSlice(0)->getPicOutputFlag() ? true : false);
     253#else
     254  rpcPic->setOutputMark(true);
     255#endif
     256  rpcPic->setReconMark(true);
     257#endif
    250258}
    251259
  • trunk/source/Lib/TLibDecoder/TDecSbac.cpp

    r1066 r1084  
    5252, m_cCUSplitFlagSCModel       ( 1,             1,               NUM_SPLIT_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels )
    5353, m_cCUSkipFlagSCModel        ( 1,             1,               NUM_SKIP_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    54 #if MTK_SINGLE_DEPTH_MODE_I0095
     54#if H_3D_SINGLE_DEPTH
    5555, m_cCUSingleDepthFlagSCModel        ( 1,             1,               NUM_SINGLEDEPTH_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    5656, m_cSingleDepthValueSCModel         ( 1,             1,               NUM_SINGLE_DEPTH_VALUE_DATA_CTX      , m_contextModels + m_numContextModels, m_numContextModels)
     
    136136  m_cCUSplitFlagSCModel.initBuffer       ( sliceType, qp, (UChar*)INIT_SPLIT_FLAG );
    137137  m_cCUSkipFlagSCModel.initBuffer        ( sliceType, qp, (UChar*)INIT_SKIP_FLAG );
    138 #if MTK_SINGLE_DEPTH_MODE_I0095
     138#if H_3D_SINGLE_DEPTH
    139139  m_cCUSingleDepthFlagSCModel.initBuffer        ( sliceType, qp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    140140  m_cSingleDepthValueSCModel.initBuffer         ( sliceType, qp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    207207  m_cCUSplitFlagSCModel.initBuffer       ( eSliceType, iQp, (UChar*)INIT_SPLIT_FLAG );
    208208  m_cCUSkipFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG );
    209 #if MTK_SINGLE_DEPTH_MODE_I0095
     209#if H_3D_SINGLE_DEPTH
    210210  m_cCUSingleDepthFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    211211  m_cSingleDepthValueSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    432432#endif
    433433
    434 #if !FIX_TICKET_76
    435 #if H_3D_DIM_SDC
    436 Void TDecSbac::xParseSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiSegment )
    437 {
    438   assert( pcCU->getSlice()->getIsDepth() );
    439   assert( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N );
    440   assert( pcCU->getSDCFlag(uiAbsPartIdx) );
    441   assert( uiSegment < 2 );
    442  
    443   UInt uiResidual = 0;
    444   UInt uiBit      = 0;
    445   UInt uiAbsIdx   = 0;
    446   UInt uiSign     = 0;
    447   Int  iIdx       = 0;
    448  
    449 #if H_3D_DIM_DLT
    450   UInt uiMaxResidualBits = pcCU->getSlice()->getPPS()->getDLT()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );
    451 #else
    452   UInt uiMaxResidualBits = g_bitDepthY;
    453 #endif
    454   assert( uiMaxResidualBits <= g_bitDepthY );
    455  
    456   m_pcTDecBinIf->decodeBin(uiResidual, m_cSDCResidualFlagSCModel.get( 0, 0, 0 ) );
    457  
    458 #if H_MV_ENC_DEC_TRAC
    459   DTRACE_CU("sdc_residual_flag[i]", uiResidual)
    460 #endif
    461  
    462   if (uiResidual)
    463   {
    464     // decode residual sign bit
    465     m_pcTDecBinIf->decodeBinEP(uiSign);
    466 #if H_MV_ENC_DEC_TRAC
    467     DTRACE_CU("sdc_residual_sign_flag[i]", uiSign)
    468 #endif
    469    
    470     // decode residual magnitude
    471     // prefix part
    472     UInt uiCount = 0;
    473 #if H_3D_DIM_DLT
    474     UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );
    475 #else
    476     UInt uiNumDepthValues = ((1 << g_bitDepthY)-1);
    477 #endif
    478     UInt uiPrefixThreshold = ((uiNumDepthValues * 3) >> 2);
    479     for ( UInt ui = 0; ui < uiPrefixThreshold; ui++)
    480     {
    481       m_pcTDecBinIf->decodeBin( uiBit, m_cSDCResidualSCModel.get(0, 0, 0) );
    482       if ( uiBit == 0 )
    483         break;
    484       else
    485         uiCount++;
    486     }
    487     // suffix part
    488     if ( uiCount == uiPrefixThreshold )
    489     {
    490       for ( UInt ui = 0; ui < numBitsForValue(uiNumDepthValues - uiPrefixThreshold); ui++ )
    491       {
    492         m_pcTDecBinIf->decodeBinEP( uiBit );
    493         uiAbsIdx |= uiBit << ui;
    494       }
    495       uiAbsIdx += uiCount;
    496     }
    497     else
    498     {
    499       uiAbsIdx = uiCount;
    500     }
    501  
    502 #if H_MV_ENC_DEC_TRAC
    503     DTRACE_CU("sdc_residual_abs_minus1[i]", uiAbsIdx)
    504 #endif
    505    
    506     uiAbsIdx += 1;
    507     iIdx =(Int)(uiSign ? -1 : 1)*uiAbsIdx;
    508   }
    509  
    510   pcCU->setSDCSegmentDCOffset(iIdx, uiSegment, uiAbsPartIdx);
    511 }
    512 #endif
    513 #endif
     434
    514435#endif
    515436/** Parse I_PCM information.
     
    649570#endif
    650571}
    651 #if MTK_SINGLE_DEPTH_MODE_I0095
     572#if H_3D_SINGLE_DEPTH
    652573Void TDecSbac::parseSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    653574{
     
    671592
    672593    UInt uiUnaryIdx = 0;
    673     UInt uiNumCand = MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE;
     594    UInt uiNumCand = SINGLE_DEPTH_MODE_CAND_LIST_SIZE;
    674595    if ( uiNumCand > 1 )
    675596    {
     
    781702  Bool bParseSplitFlag    = true;
    782703
    783 #if MTK_I0099_VPS_EX2
    784704  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    785705  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
    786 #else
    787   TComSPS *sps            = pcCU->getPic()->getSlice(0)->getSPS();
    788 #endif
    789706  TComPic *pcTexture      = pcCU->getSlice()->getTexturePic();
    790707  Bool bDepthMapDetect    = (pcTexture != NULL);
     
    793710  Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA);
    794711
    795 #if MTK_I0099_VPS_EX2
    796 #if LGE_FCO_I0116
     712#if H_3D_FCO
    797713  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag && pcTexture->getReconMark())
    798714#else
    799715  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag)
    800 #endif
    801 #else
    802   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC())
    803716#endif
    804717  {
     
    843756#if H_3D_QTLPC
    844757  Bool bParsePartSize    = true;
    845 #if MTK_I0099_VPS_EX2
    846758  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    847759  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
    848 #else
    849   TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
    850 #endif
    851760  TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
    852761  Bool bDepthMapDetect   = (pcTexture != NULL);
     
    857766  Bool depthDependent = false;
    858767  UInt uiTexturePart = uiMode;
    859 #if MTK_I0099_VPS_EX2
    860 #if LGE_FCO_I0116
     768
     769#if H_3D_FCO
    861770  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag && pcTexture->getReconMark())
    862771#else
    863772  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag )
    864 #endif
    865 #else
    866   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC())
    867773#endif
    868774  {
     
    1076982  {
    1077983#if H_3D_DIM
    1078 #if SEPARATE_FLAG_I0085
    1079984    if( pcCU->getSlice()->getVpsDepthModesFlag() || pcCU->getSlice()->getIVPFlag() )
    1080 #else
    1081     if( pcCU->getSlice()->getVpsDepthModesFlag() )
    1082 #endif
    1083985    {
    1084986      parseIntraDepth( pcCU, absPartIdx+partOffset*j, depth );
     
    12221124  if( uiIsDimMode )
    12231125  {
    1224 #if SEPARATE_FLAG_I0085
    12251126    if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag() )
    12261127    {
     
    12281129      if( !uiSymbol )
    12291130      {
    1230 #if HS_DMM_SIGNALLING_I0120
    12311131        pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
    1232 #else
    1233         pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth );
    1234 #endif
    12351132      }
    12361133      else
    12371134      {
    1238 #if HS_DMM_SIGNALLING_I0120
    12391135        pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
    1240 #else
    1241         pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth );
    1242 #endif
    12431136      }
    12441137    }
    12451138    else if ( pcCU->getSlice()->getVpsDepthModesFlag() )
    12461139    {
    1247 #if HS_DMM_SIGNALLING_I0120
    12481140      pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
    1249 #else
    1250       pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth );
    1251 #endif
    12521141    }
    12531142    else if( pcCU->getSlice()->getIVPFlag() )
    12541143    {
    1255 #if HS_DMM_SIGNALLING_I0120
    12561144      pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
    1257 #else
    1258       pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth );
    1259 #endif
    1260     }
    1261 #else
    1262     m_pcTDecBinIf->decodeBin( uiSymbol, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
    1263     if( !uiSymbol )
    1264     {
    1265 #if HS_DMM_SIGNALLING_I0120
    1266       pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
    1267 #else
    1268       pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth );
    1269 #endif
    1270     }
    1271     else
    1272     {
    1273 #if HS_DMM_SIGNALLING_I0120
    1274       pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
    1275 #else
    1276       pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth );
    1277 #endif
    1278     }
    1279 #endif
     1145    }
    12801146  }
    12811147}
     
    21902056  }
    21912057
    2192 #if HS_DMM_SIGNALLING_I0120
    21932058  UInt symbol = 1;
    21942059  UInt uiNumSegments = isDimMode( pcCU->getLumaIntraDir( absPartIdx ) ) ? 2 : 1;
    2195 #else
    2196   UInt symbol = 0;
    2197   UInt uiNumSegments = 0;
    2198 #endif
    2199 
    2200 #if HS_DMM_SIGNALLING_I0120
     2060
    22012061  if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx ))
    22022062  {
    2203 #else
    2204   if( pcCU->isIntra( absPartIdx ) )
    2205   {
    2206     UInt dir     = pcCU->getLumaIntraDir( absPartIdx );
    2207     uiNumSegments = isDimMode( dir ) ? 2 : 1;
    2208 #endif
     2063
    22092064    m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, 0 ) );
    2210 #if !HS_DMM_SIGNALLING_I0120
    2211     if( pcCU->getSDCFlag( absPartIdx ) )
    2212     {
    2213 #endif
    22142065      assert( pcCU->getPartitionSize( absPartIdx ) == SIZE_2Nx2N );
    22152066      pcCU->setTrIdxSubParts( 0, absPartIdx, depth );
    22162067      pcCU->setCbfSubParts( 1, 1, 1, absPartIdx, depth );
    22172068    }
    2218 #if !HS_DMM_SIGNALLING_I0120
    2219     else
    2220     {
    2221       pcCU->setLumaIntraDirSubParts( dir + symbol, absPartIdx, depth );
    2222     }
    2223   }
    2224   else
    2225   {
    2226     uiNumSegments = 1;
    2227     symbol = 1;
    2228   }
    2229 #endif
    2230 
    22312069
    22322070  for( UInt segment = 0; segment < uiNumSegments; segment++ )
     
    22892127  m_pcTDecBinIf->decodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) );
    22902128 
    2291 #if SEC_DBBP_EXPLICIT_SIG_I0077
    22922129  PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );
    22932130  AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N );
     
    22952132  pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx, 0, uiDepth);
    22962133  pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx+uiPUOffset, 1, uiDepth);
    2297 #else
    2298   if( uiSymbol )
    2299   {
    2300     pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx, 0, uiDepth);
    2301     UInt uiCurrPartNumQ = (pcCU->getPic()->getNumPartInCU() >> (2 * uiDepth)) >> 2;
    2302     pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx + 2*uiCurrPartNumQ, 1, uiDepth);
    2303   }
    2304 #endif
    23052134}
    23062135#endif
  • trunk/source/Lib/TLibDecoder/TDecSbac.h

    r1039 r1084  
    129129 
    130130  Void parseSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    131 #if MTK_SINGLE_DEPTH_MODE_I0095 
     131#if H_3D_SINGLE_DEPTH 
    132132  Void parseSingleDepthMode      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    133133#endif 
     
    182182  ContextModel3DBuffer m_cCUSplitFlagSCModel;
    183183  ContextModel3DBuffer m_cCUSkipFlagSCModel;
    184 #if MTK_SINGLE_DEPTH_MODE_I0095
     184#if H_3D_SINGLE_DEPTH
    185185  ContextModel3DBuffer m_cCUSingleDepthFlagSCModel;
    186186  ContextModel3DBuffer m_cSingleDepthValueSCModel;
  • trunk/source/Lib/TLibDecoder/TDecTop.cpp

    r1066 r1084  
    229229  }
    230230
    231 #if !LGE_FCO_I0116
     231#if !H_3D_FCO
    232232  if ( pcSlice->getIsDepth())
    233233  {
     
    669669#if H_MV
    670670  sps->inferSpsMaxDecPicBufferingMinus1( vps, m_targetOptLayerSetIdx, getLayerId(), false );
    671 #if !H_MV_HLS10_ADD_LAYERSETS
    672   vps->inferDbpSizeLayerSetZero( sps, false );
    673 #endif
    674671  // When the value of vps_num_rep_formats_minus1 in the active VPS is equal to 0
    675672  if ( vps->getVpsNumRepFormatsMinus1() == 0 )
     
    679676  }
    680677  sps->checkRpsMaxNumPics( vps, getLayerId() );
    681 #if H_MV_HLS10_MULTILAYERSPS
    682678
    683679  if( sps->getLayerId() != 0 )
     
    686682  }
    687683
    688 #if H_MV_HLS10_MULTILAYERSPS
    689684  // It is a requirement of bitstream conformance that, when the SPS is referred to by
    690685  // any current picture that belongs to an independent non-base layer, the value of
     
    695690    assert( sps->getMultiLayerExtSpsFlag() == 0 );
    696691  }
    697 #endif
    698692
    699693  if( sps->getMultiLayerExtSpsFlag() )
     
    701695    sps->setTemporalIdNestingFlag( (sps->getMaxTLayers() > 1) ? vps->getTemporalNestingFlag() : true );
    702696  }
    703 #else
    704   if( m_layerId > 0 )
    705   {
    706     sps->setTemporalIdNestingFlag( (sps->getMaxTLayers() > 1) ? vps->getTemporalNestingFlag() : true );
    707   }
    708 #endif
    709697#endif
    710698
     
    730718#if H_MV
    731719  m_apcSlicePilot->setVPS(vps); 
    732 #if H_MV_HLS10_REF_PRED_LAYERS
    733720  // The nuh_layer_id value of the NAL unit containing the PPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA.
    734721  assert( pps->getLayerId() == m_layerId || pps->getLayerId( ) == 0 || vps->getDependencyFlag( m_layerId, pps->getLayerId() ) );   
    735722  // The nuh_layer_id value of the NAL unit containing the SPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA.
    736723  assert( sps->getLayerId() == m_layerId || sps->getLayerId( ) == 0 || vps->getDependencyFlag( m_layerId, sps->getLayerId() ) );
    737 #else
    738   // The nuh_layer_id value of the NAL unit containing the PPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA.
    739   assert( pps->getLayerId() == m_layerId || pps->getLayerId( ) == 0 || vps->getInDirectDependencyFlag( m_layerId, pps->getLayerId() ) );   
    740   // The nuh_layer_id value of the NAL unit containing the SPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA.
    741   assert( sps->getLayerId() == m_layerId || sps->getLayerId( ) == 0 || vps->getInDirectDependencyFlag( m_layerId, sps->getLayerId() ) );
    742 #endif
    743724  sps->inferRepFormat  ( vps , m_layerId );
    744725  sps->inferScalingList( m_parameterSetManagerDecoder.getActiveSPS( sps->getSpsScalingListRefLayerId() ) );
     
    746727#endif
    747728  pps->setSPS(sps);
    748   pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumColumnsMinus1() + 1) : 1);
     729  pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumTileColumnsMinus1() + 1) : 1);
    749730  pps->setMinCuDQPSize( sps->getMaxCUWidth() >> ( pps->getMaxCuDQPDepth()) );
    750731
     
    807788  m_apcSlicePilot->setLayerId( nalu.m_layerId );
    808789  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder, m_targetOptLayerSetIdx );
     790#else
     791  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder);
    809792#endif
    810793  // set POC for dependent slices in skipped pictures
     
    944927     xResetPocInPicBuffer();
    945928   }
    946 #endif
    947    
    948 #if I0044_SLICE_TMVP
    949   if ( m_apcSlicePilot->getTLayer() == 0 && m_apcSlicePilot->getEnableTMVPFlag() == 0 )
     929
     930   if ( m_apcSlicePilot->getTLayer() == 0 && m_apcSlicePilot->getEnableTMVPFlag() == 0 )
    950931  {
    951932    //update all pics in the DPB such that they cannot be used for TMPV ref
     
    10431024  Bool bNextSlice     = pcSlice->isNextSlice();
    10441025
    1045   UInt uiCummulativeTileWidth;
    1046   UInt uiCummulativeTileHeight;
    1047   UInt i, j, p;
    1048 
    1049   //set NumColumnsMins1 and NumRowsMinus1
    1050   pcPic->getPicSym()->setNumColumnsMinus1( pcSlice->getPPS()->getNumColumnsMinus1() );
    1051   pcPic->getPicSym()->setNumRowsMinus1( pcSlice->getPPS()->getNumRowsMinus1() );
    1052 
    1053   //create the TComTileArray
    1054   pcPic->getPicSym()->xCreateTComTileArray();
    1055 
    1056   if( pcSlice->getPPS()->getUniformSpacingFlag() )
    1057   {
    1058     //set the width for each tile
    1059     for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++)
    1060     {
    1061       for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1()+1; p++)
    1062       {
    1063         pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )->
    1064           setTileWidth( (p+1)*pcPic->getPicSym()->getFrameWidthInCU()/(pcPic->getPicSym()->getNumColumnsMinus1()+1)
    1065           - (p*pcPic->getPicSym()->getFrameWidthInCU())/(pcPic->getPicSym()->getNumColumnsMinus1()+1) );
    1066       }
    1067     }
    1068 
    1069     //set the height for each tile
    1070     for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++)
    1071     {
    1072       for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1()+1; p++)
    1073       {
    1074         pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )->
    1075           setTileHeight( (p+1)*pcPic->getPicSym()->getFrameHeightInCU()/(pcPic->getPicSym()->getNumRowsMinus1()+1)
    1076           - (p*pcPic->getPicSym()->getFrameHeightInCU())/(pcPic->getPicSym()->getNumRowsMinus1()+1) );   
    1077       }
    1078     }
    1079   }
    1080   else
    1081   {
    1082     //set the width for each tile
    1083     for(j=0; j < pcSlice->getPPS()->getNumRowsMinus1()+1; j++)
    1084     {
    1085       uiCummulativeTileWidth = 0;
    1086       for(i=0; i < pcSlice->getPPS()->getNumColumnsMinus1(); i++)
    1087       {
    1088         pcPic->getPicSym()->getTComTile(j * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + i)->setTileWidth( pcSlice->getPPS()->getColumnWidth(i) );
    1089         uiCummulativeTileWidth += pcSlice->getPPS()->getColumnWidth(i);
    1090       }
    1091       pcPic->getPicSym()->getTComTile(j * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + i)->setTileWidth( pcPic->getPicSym()->getFrameWidthInCU()-uiCummulativeTileWidth );
    1092     }
    1093 
    1094     //set the height for each tile
    1095     for(j=0; j < pcSlice->getPPS()->getNumColumnsMinus1()+1; j++)
    1096     {
    1097       uiCummulativeTileHeight = 0;
    1098       for(i=0; i < pcSlice->getPPS()->getNumRowsMinus1(); i++)
    1099       {
    1100         pcPic->getPicSym()->getTComTile(i * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcSlice->getPPS()->getRowHeight(i) );
    1101         uiCummulativeTileHeight += pcSlice->getPPS()->getRowHeight(i);
    1102       }
    1103       pcPic->getPicSym()->getTComTile(i * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcPic->getPicSym()->getFrameHeightInCU()-uiCummulativeTileHeight );
    1104     }
    1105   }
    1106 
    1107   pcPic->getPicSym()->xInitTiles();
     1026  UInt i;
     1027  pcPic->getPicSym()->initTiles(pcSlice->getPPS());
    11081028
    11091029  //generate the Coding Order Map and Inverse Coding Order Map
     
    11921112#endif   
    11931113#endif
    1194     // For generalized B
    1195 #if I0044_SLICE_TMVP
     1114#if H_MV
    11961115    if( m_layerId > 0 && !pcSlice->isIntra() && pcSlice->getEnableTMVPFlag() )
    11971116    {
     
    12721191
    12731192#if H_3D_IV_MERGE
    1274 #if LGE_FCO_I0116
     1193#if H_3D_FCO
    12751194  if( !pcSlice->getIsDepth() && m_pcCamParsCollector )
    12761195#else
     
    17271646  for (Int i = 0; i < vps->getNumDirectRefLayers( getLayerId()  ); i++ )
    17281647  {
    1729 #if H_MV_HLS10_REF_PRED_LAYERS
    17301648    Int refLayerId = vps->getIdDirectRefLayer( m_layerId, i );
    1731 #else
    1732     Int refLayerId = vps->getRefLayerId( m_layerId, i );
    1733 #endif
    17341649    allRefLayersInitilizedFlag = allRefLayersInitilizedFlag && m_layerInitilizedFlag[ refLayerId ];
    17351650  }
  • trunk/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1066 r1084  
    4949{
    5050#if H_MV_ENC_DEC_TRAC
    51 #if H_MV_HLS10_GEN_FIX
    5251  fprintf( g_hTrace, "=========== Sequence Parameter Set LayerId: %d ===========\n", pSPS->getLayerId() );
    5352#else
    54   fprintf( g_hTrace, "=========== Sequence Parameter Set ===========\n" );
    55 #endif
    56 #else
    5753  fprintf( g_hTrace, "=========== Sequence Parameter Set ID: %d ===========\n", pSPS->getSPSId() );
    5854#endif
     
    6258{
    6359#if H_MV_ENC_DEC_TRAC
    64 #if H_MV_HLS10_GEN_FIX
    6560  fprintf( g_hTrace, "=========== Picture Parameter Set LayerId: %d ===========\n", pPPS->getLayerId() );
    66 #else
    67   fprintf( g_hTrace, "=========== Picture Parameter Set ===========\n" );
    68 #endif
    6961#else
    7062  fprintf( g_hTrace, "=========== Picture Parameter Set ID: %d ===========\n", pPPS->getPPSId() );
     
    218210  if( pcPPS->getTilesEnabledFlag() )
    219211  {
    220     WRITE_UVLC( pcPPS->getNumColumnsMinus1(),                                    "num_tile_columns_minus1" );
    221     WRITE_UVLC( pcPPS->getNumRowsMinus1(),                                       "num_tile_rows_minus1" );
    222     WRITE_FLAG( pcPPS->getUniformSpacingFlag(),                                  "uniform_spacing_flag" );
    223     if( pcPPS->getUniformSpacingFlag() == 0 )
    224     {
    225       for(UInt i=0; i<pcPPS->getNumColumnsMinus1(); i++)
    226       {
    227         WRITE_UVLC( pcPPS->getColumnWidth(i)-1,                                  "column_width_minus1" );
    228       }
    229       for(UInt i=0; i<pcPPS->getNumRowsMinus1(); i++)
    230       {
    231         WRITE_UVLC( pcPPS->getRowHeight(i)-1,                                    "row_height_minus1" );
    232       }
    233     }
    234     if(pcPPS->getNumColumnsMinus1() !=0 || pcPPS->getNumRowsMinus1() !=0)
     212    WRITE_UVLC( pcPPS->getNumTileColumnsMinus1(),                                    "num_tile_columns_minus1" );
     213    WRITE_UVLC( pcPPS->getTileNumRowsMinus1(),                                       "num_tile_rows_minus1" );
     214    WRITE_FLAG( pcPPS->getTileUniformSpacingFlag(),                                  "uniform_spacing_flag" );
     215    if( !pcPPS->getTileUniformSpacingFlag() )
     216    {
     217      for(UInt i=0; i<pcPPS->getNumTileColumnsMinus1(); i++)
     218      {
     219        WRITE_UVLC( pcPPS->getTileColumnWidth(i)-1,                                  "column_width_minus1" );
     220      }
     221      for(UInt i=0; i<pcPPS->getTileNumRowsMinus1(); i++)
     222      {
     223        WRITE_UVLC( pcPPS->getTileRowHeight(i)-1,                                    "row_height_minus1" );
     224      }
     225    }
     226    if(pcPPS->getNumTileColumnsMinus1() !=0 || pcPPS->getTileNumRowsMinus1() !=0)
    235227    {
    236228      WRITE_FLAG( pcPPS->getLoopFilterAcrossTilesEnabledFlag()?1 : 0,          "loop_filter_across_tiles_enabled_flag");
     
    249241    }
    250242  }
    251 #if !H_MV_HLS10_PPS
    252 #if H_MV
    253   if ( pcPPS->getLayerId() > 0 )
    254   {
    255     WRITE_FLAG( pcPPS->getPpsInferScalingListFlag( ) ? 1 : 0 , "pps_infer_scaling_list_flag" );
    256   }
    257 
    258   if( pcPPS->getPpsInferScalingListFlag( ) )
    259   {
    260     WRITE_CODE( pcPPS->getPpsScalingListRefLayerId( ), 6, "pps_scaling_list_ref_layer_id" );
    261   }
    262   else
    263   { 
    264 #endif 
    265 #endif
    266243  WRITE_FLAG( pcPPS->getScalingListPresentFlag() ? 1 : 0,                          "pps_scaling_list_data_present_flag" );
    267244  if( pcPPS->getScalingListPresentFlag() )
     
    269246    codeScalingList( m_pcSlice->getScalingList() );
    270247  }
    271 #if !H_MV_HLS10_PPS
    272 #if H_MV
    273   }
    274 #endif
    275 #endif
    276248#if PPS_FIX_DEPTH
    277249  if( pcPPS->getSPS()->getVPS()->getDepthId(pcPPS->getSPS()->getLayerId()) )
     
    313285    if ( pcPPS->getPpsMultilayerExtensionFlag() )
    314286    {
    315 #if H_MV_HLS10_PPS
    316287      codePPSMultilayerExtension( pcPPS );
    317 #else
    318       WRITE_FLAG( pcPPS->getPocResetInfoPresentFlag( ) ? 1 : 0 , "poc_reset_info_present_flag" );
    319       WRITE_FLAG( 0, "pps_extension_reserved_zero_flag" );
    320 #endif
    321288    }
    322289
     
    385352            }
    386353           
    387 #if H_3D_DELTA_DLT
    388354            if( pcDLT->getInterViewDltPredEnableFlag( i ) )
    389355            {
     
    395361              pcDLT->getDeltaDLT(i, piRefDLT, uiRefNum, aiIdx2DepthValue_coded, &uiNumDepthValues_coded);
    396362            }
    397 #endif
    398363
    399364            if ( NULL == (puiDltDiffValues = (UInt *)calloc(uiNumDepthValues_coded, sizeof(UInt))) )
    400365            {
     366              // This should be changed to an assertion.
    401367              exit(-1);
    402368            }
     
    477443            {
    478444              WRITE_CODE(uiNumDepthValues_coded, 8, "num_depth_values_in_dlt[i]");    // num_entry
    479 
    480 #if !H_3D_DELTA_DLT
    481               if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false )   // Single-view DLT Diff Coding
    482 #endif
    483445              {
    484446                // The condition if( uiNumDepthValues_coded > 0 ) is always true since for Single-view Diff Coding, there is at least one depth value in depth component.
     
    566528  if( defaultDisplayWindow.getWindowEnabledFlag() )
    567529  {
    568     WRITE_UVLC(defaultDisplayWindow.getWindowLeftOffset(),      "def_disp_win_left_offset");
    569     WRITE_UVLC(defaultDisplayWindow.getWindowRightOffset(),    "def_disp_win_right_offset");
    570     WRITE_UVLC(defaultDisplayWindow.getWindowTopOffset(),      "def_disp_win_top_offset");
    571     WRITE_UVLC(defaultDisplayWindow.getWindowBottomOffset(),    "def_disp_win_bottom_offset");
     530    WRITE_UVLC(defaultDisplayWindow.getWindowLeftOffset()  / TComSPS::getWinUnitX(pcSPS->getChromaFormatIdc()), "def_disp_win_left_offset");
     531    WRITE_UVLC(defaultDisplayWindow.getWindowRightOffset() / TComSPS::getWinUnitX(pcSPS->getChromaFormatIdc()), "def_disp_win_right_offset");
     532    WRITE_UVLC(defaultDisplayWindow.getWindowTopOffset()   / TComSPS::getWinUnitY(pcSPS->getChromaFormatIdc()), "def_disp_win_top_offset");
     533    WRITE_UVLC(defaultDisplayWindow.getWindowBottomOffset()/ TComSPS::getWinUnitY(pcSPS->getChromaFormatIdc()), "def_disp_win_bottom_offset");
    572534  }
    573535  TimingInfo *timingInfo = pcVUI->getTimingInfo();
     
    691653#endif
    692654  WRITE_CODE( pcSPS->getMaxTLayers() - 1,  3,       "sps_max_sub_layers_minus1" );
    693 #if H_MV_HLS10_MULTILAYERSPS
    694655#if H_MV
    695656  }
     
    700661  if ( !pcSPS->getMultiLayerExtSpsFlag() )
    701662  {
    702 #endif
    703663#endif
    704664
     
    710670  WRITE_UVLC( pcSPS->getSPSId (),                   "sps_seq_parameter_set_id" );
    711671#if H_MV
    712 #if H_MV_HLS10_MULTILAYERSPS
    713672    if ( pcSPS->getMultiLayerExtSpsFlag() )
    714 #else
    715   if ( pcSPS->getLayerId() > 0 )
    716 #endif
    717673  {
    718674    WRITE_FLAG( pcSPS->getUpdateRepFormatFlag( ) ? 1 : 0 , "update_rep_format_flag" );
     
    735691  WRITE_UVLC( pcSPS->getPicWidthInLumaSamples (),   "pic_width_in_luma_samples" );
    736692  WRITE_UVLC( pcSPS->getPicHeightInLumaSamples(),   "pic_height_in_luma_samples" );
    737 #if !H_MV_HLS10_MULTILAYERSPS
    738 #if H_MV
    739   }
    740 #endif
    741 #endif
    742693  Window conf = pcSPS->getConformanceWindow();
    743694
     
    750701    WRITE_UVLC( conf.getWindowBottomOffset() / TComSPS::getWinUnitY(pcSPS->getChromaFormatIdc() ), "conf_win_bottom_offset" );
    751702  }
    752 #if H_MV_HLS10_MULTILAYERSPS
    753703#if H_MV
    754704}
    755705#endif
    756 #endif
    757706
    758707#if H_MV
    759 #if H_MV_HLS10_MULTILAYERSPS
    760708  if ( !pcSPS->getMultiLayerExtSpsFlag() )
    761 #else
    762   if ( pcSPS->getLayerId() == 0 )
    763 #endif
    764709  {
    765710#endif
     
    771716  WRITE_UVLC( pcSPS->getBitsForPOC()-4,                 "log2_max_pic_order_cnt_lsb_minus4" );
    772717#if H_MV
    773 #if H_MV_HLS10_MULTILAYERSPS
    774718  if ( !pcSPS->getMultiLayerExtSpsFlag())
    775 #else
    776   if ( pcSPS->getLayerId() == 0 )
    777 #endif
    778719  { 
    779720#endif
     
    806747  {
    807748#if H_MV
    808 #if H_MV_HLS10_MULTILAYERSPS
    809749    if ( pcSPS->getMultiLayerExtSpsFlag() )
    810 #else
    811     if ( pcSPS->getLayerId() > 0 )
    812 #endif
    813750    {   
    814751      WRITE_FLAG( pcSPS->getSpsInferScalingListFlag( ) ? 1 : 0 , "sps_infer_scaling_list_flag" );
     
    917854{
    918855  WRITE_FLAG( pcSPS->getInterViewMvVertConstraintFlag() ? 1 : 0, "inter_view_mv_vert_constraint_flag" );
    919 #if !H_MV_HLS10_PPS
    920   WRITE_UVLC( pcSPS->getNumScaledRefLayerOffsets( ), "num_scaled_ref_layer_offsets" );
    921 
    922   for( Int i = 0; i < pcSPS->getNumScaledRefLayerOffsets( ); i++)
    923   {   
    924     WRITE_CODE( pcSPS->getScaledRefLayerId( i ), 6, "scaled_ref_layer_id" );
    925 
    926     Int j = pcSPS->getScaledRefLayerId( i );
    927    
    928     WRITE_SVLC( pcSPS->getScaledRefLayerLeftOffset( j ), "scaled_ref_layer_left_offset" );
    929     WRITE_SVLC( pcSPS->getScaledRefLayerTopOffset( j ), "scaled_ref_layer_top_offset" );
    930     WRITE_SVLC( pcSPS->getScaledRefLayerRightOffset( j ), "scaled_ref_layer_right_offset" );
    931     WRITE_SVLC( pcSPS->getScaledRefLayerBottomOffset( j ), "scaled_ref_layer_bottom_offset" );
    932     WRITE_FLAG( 0, "sps_multilayer_ext_reserved_zero_flag[ j ]" );
    933   }
    934 #endif
    935 }
    936 
    937 
    938 #if H_MV_HLS10_PPS
     856}
     857
     858
    939859Void TEncCavlc::codePPSMultilayerExtension(TComPPS* pcPPS)
    940860{
     
    944864  WRITE_UVLC( 0, "num_ref_loc_offsets" );
    945865}
    946 #endif
    947866
    948867#endif
     
    951870Void TEncCavlc::codeSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
    952871{
    953 #if H_3D_QTLPC
    954 #if !MTK_I0099_VPS_EX2
    955 //GT: This has to go to VPS
    956 if( depthFlag )
    957 {
    958   WRITE_FLAG( pcSPS->getUseQTL() ? 1 : 0, "use_qtl_flag");
    959   WRITE_FLAG( pcSPS->getUsePC()  ? 1 : 0, "use_pc_flag");
    960 }
    961 #endif
    962 #endif
    963 }
    964 
    965 
     872
     873}
    966874#endif
    967875
     
    974882#if H_MV
    975883  WRITE_FLAG( pcVPS->getVpsBaseLayerInternalFlag( ) ? 1 : 0 , "vps_base_layer_internal_flag" );
    976 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    977884  WRITE_FLAG( pcVPS->getVpsBaseLayerAvailableFlag( ) ? 1 : 0 , "vps_base_layer_available_flag" );
    978 #else // H_MV_HLS10_GEN
    979   WRITE_FLAG( 1                                             , "vps_reserved_one_bit" );
    980 #endif // H_MV_HLS10_GEN
    981885#else
    982886  WRITE_CODE( 3,                                    2,        "vps_reserved_three_2bits" );
     
    1008912  assert( pcVPS->getVpsMaxLayerId() < MAX_VPS_NUH_LAYER_ID_PLUS1 );
    1009913  WRITE_CODE( pcVPS->getVpsMaxLayerId(), 6,                 "vps_max_layer_id" ); 
    1010 #if H_MV_HLS10_GEN_FIX
    1011914  WRITE_UVLC( pcVPS->getVpsNumLayerSetsMinus1(),  "vps_num_layer_sets_minus1" );
    1012 #else
    1013   WRITE_UVLC( pcVPS->getVpsNumLayerSetsMinus1(),  "vps_max_num_layer_sets_minus1" );
    1014 #endif
    1015915  for( UInt opsIdx = 1; opsIdx <= pcVPS->getVpsNumLayerSetsMinus1(); opsIdx ++ )
    1016916  {
     
    1089989Void TEncCavlc::codeVPSExtension( TComVPS *pcVPS )
    1090990{
    1091 #if H_MV_HLS10_PTL
    1092991  if( pcVPS->getMaxLayersMinus1() > 0  &&  pcVPS->getVpsBaseLayerInternalFlag() )
    1093992  {
    1094993    codePTL( pcVPS->getPTL( 1 ),0, pcVPS->getMaxSubLayersMinus1()  );
    1095994  }
    1096 #endif
    1097995
    1098996  WRITE_FLAG( pcVPS->getSplittingFlag() ? 1 : 0,             "splitting_flag" );
     
    11671065  }
    11681066
    1169 #if H_MV_HLS10_ADD_LAYERSETS
    11701067  if ( pcVPS->getNumIndependentLayers() > 1 )
    11711068  {
     
    11801077 
    11811078  }
    1182 #endif
    11831079
    11841080
     
    12181114  WRITE_UVLC( pcVPS->getVpsNumProfileTierLevelMinus1( ), "vps_num_profile_tier_level_minus1" );
    12191115
    1220 #if H_MV_HLS10_PTL
    12211116  Int offsetVal =  ( pcVPS->getMaxLayersMinus1() > 0  &&  pcVPS->getVpsBaseLayerInternalFlag() ) ? 2 : 1;   
    12221117  for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 2 : 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ )
     
    12261121    offsetVal++;
    12271122  }
    1228 #else
    1229   for( Int i = 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ )
    1230   {
    1231     WRITE_FLAG( pcVPS->getVpsProfilePresentFlag( i ) ? 1 : 0, "vps_profile_present_flag[i]" );
    1232     codePTL( pcVPS->getPTL( i ), pcVPS->getVpsProfilePresentFlag( i ), pcVPS->getMaxTLayers() - 1 );
    1233   }
    1234 #endif
    1235 
    1236 #if !H_MV_HLS10_ADD_LAYERSETS
    1237   if ( pcVPS->getNumIndependentLayers() > 1 )
    1238   {
    1239    WRITE_UVLC( pcVPS->getNumAddLayerSets( ), "num_add_layer_sets" );
    1240   }
    1241   for (Int i = 0; i < pcVPS->getNumAddLayerSets(); i++)
    1242   {
    1243     for (Int j = 0; j < pcVPS->getNumIndependentLayers(); j++)
    1244     {
    1245       WRITE_CODE( pcVPS->getHighestLayerIdxPlus1( i, j ), pcVPS->getHighestLayerIdxPlus1Len( j )  , "highest_layer_idx_plus1" );
    1246     }
    1247   }
    1248 #endif
     1123
    12491124
    12501125  if (pcVPS->getNumLayerSets() > 1)
     
    12581133
    12591134
    1260 #if H_MV_HLS10_PTL_FIX
    12611135  if (pcVPS->getVpsBaseLayerInternalFlag() )
    12621136  { 
    12631137    assert( pcVPS->getProfileTierLevelIdx(0,0) == pcVPS->inferProfileTierLevelIdx(0,0) );
    12641138  }
    1265 #endif
    12661139
    12671140
     
    12701143    if( i >= pcVPS->getNumLayerSets( ) )   
    12711144    {     
    1272 #if !VPS_MISC_UPDATES
    1273       WRITE_UVLC( pcVPS->getLayerSetIdxForOlsMinus1( i ),      "layer_set_idx_for_ols_minus1[i]" );
    1274 #else
    12751145      WRITE_CODE( pcVPS->getLayerSetIdxForOlsMinus1( i ), pcVPS->getLayerSetIdxForOlsMinus1Len( i ) ,      "layer_set_idx_for_ols_minus1[i]" );
    1276 #endif
    12771146    }
    12781147
     
    12921161    }       
    12931162       
    1294 #if H_MV_HLS10_PTL
    12951163    for ( Int j = 0; j < pcVPS->getNumLayersInIdList( pcVPS->olsIdxToLsIdx(i)); j++ )
    12961164    {   
     
    12991167        WRITE_CODE( pcVPS->getProfileTierLevelIdx( i, j ), pcVPS->getProfileTierLevelIdxLen() ,"profile_tier_level_idx[ i ][ j ]" );   
    13001168      }
    1301 #if H_MV_HLS10_PTL_FIX
    13021169      if (pcVPS->getNecessaryLayerFlag( i, j ) && pcVPS->getVpsNumProfileTierLevelMinus1() == 0 )
    13031170      {
    13041171        assert( pcVPS->getProfileTierLevelIdx( i , j ) == pcVPS->inferProfileTierLevelIdx( i, j ) );
    13051172      }
    1306 #endif
    1307 
    1308     }
    1309 #else
    1310     if ( pcVPS->getProfileLevelTierIdxLen()  > 0 )
    1311     {     
    1312       WRITE_CODE( pcVPS->getProfileLevelTierIdx( i ), pcVPS->getProfileLevelTierIdxLen() ,"profile_level_tier_idx[ i ]" );   
    1313     }
    1314 #endif
     1173
     1174    }
    13151175    if( pcVPS->getNumOutputLayersInOutputLayerSet( i ) == 1 && pcVPS->getNumDirectRefLayers( pcVPS->getOlsHighestOutputLayerId( i ) ) > 0 )
    13161176    {
     
    13621222  }
    13631223
    1364 #if !H_MV_HLS10_GEN_FIX
    1365   WRITE_FLAG( 0, "vps_reserved_zero_flag" );
    1366 #endif
    13671224  codeDpbSize( pcVPS );
    13681225
     
    14411298        for( Int k = 0; k < vps->getNumLayersInIdList( currLsIdx ); k++ )   
    14421299        {
    1443 #if H_MV_HLS10_DBP_SIZE
    14441300          if ( vps->getNecessaryLayerFlag( i, k ) && ( vps->getVpsBaseLayerInternalFlag() || ( vps->getLayerSetLayerIdList(vps->olsIdxToLsIdx(i),k) != 0 ) ))
    14451301          {
     
    14531309            }
    14541310          }
    1455 #else
    1456           WRITE_UVLC( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ), "max_vps_dec_pic_buffering_minus1" );
    1457 #endif
    14581311        }
    14591312        WRITE_UVLC( dpbSize->getMaxVpsNumReorderPics( i, j ), "max_vps_num_reorder_pics" );
     
    14661319          for( Int k = 0; k < vps->getNumLayersInIdList( vps->olsIdxToLsIdx( i ) ); k++ )   
    14671320          {
    1468 #if H_MV_HLS10_DBP_SIZE
    14691321            if ( vps->getNecessaryLayerFlag(i, k ) )
    14701322            {           
    1471 #endif
    14721323              assert( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ) == dpbSize->getMaxVpsDecPicBufferingMinus1( i,k, j - 1 ) );
    1473 #if H_MV_HLS10_DBP_SIZE
    14741324            }
    1475 #endif 
    14761325          }
    14771326          assert( dpbSize->getMaxVpsNumReorderPics      ( i, j ) ==  dpbSize->getMaxVpsNumReorderPics      ( i, j - 1 ) );
     
    15081357    pcRepFormat->inferChromaAndBitDepth(pcPrevRepFormat, true );
    15091358  }
    1510 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    15111359  WRITE_FLAG( pcRepFormat->getConformanceWindowVpsFlag( ) ? 1 : 0 , "conformance_window_vps_flag" );
    15121360  if ( pcRepFormat->getConformanceWindowVpsFlag() )
     
    15171365    WRITE_UVLC( pcRepFormat->getConfWinVpsBottomOffset( ), "conf_win_vps_bottom_offset" );
    15181366  }
    1519 #endif
    15201367}
    15211368
     
    15421389  if( pcVPSVUI->getBitRatePresentVpsFlag( )  ||  pcVPSVUI->getPicRatePresentVpsFlag( ) )
    15431390  {
    1544 #if H_MV_HLS10_VPS_VUI
    15451391    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i < pcVPS->getNumLayerSets(); i++ )
    1546 #else
    1547     for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i  <=  pcVPS->getVpsNumLayerSetsMinus1(); i++ )
    1548 #endif
    15491392    {
    15501393      for( Int j = 0; j  <=  pcVPS->getMaxSubLayersInLayerSetMinus1( i ); j++ )
     
    15791422  else
    15801423  {
    1581 #if H_MV_HLS10_VPS_VUI
    15821424    assert( pcVPSVUI->getVpsNumVideoSignalInfoMinus1() == pcVPS->getMaxLayersMinus1() - ( pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1)  );
    1583 #else
    1584     pcVPSVUI->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() );
    1585 #endif
    15861425  }
    15871426
     
    15961435  if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 )
    15971436  {
    1598 #if I0045_VPS_VUI_VST_PARAMS
    15991437    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    16001438    {
    16011439      WRITE_CODE( pcVPSVUI->getVpsVideoSignalInfoIdx( i ), 4, "vps_video_signal_info_idx" );
    16021440    }
    1603 #else
    1604     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1605     {
    1606       WRITE_CODE( pcVPSVUI->getVpsVideoSignalInfoIdx( i ), 4, "vps_video_signal_info_idx" );
    1607       assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) >= 0 && pcVPSVUI->getVpsVideoSignalInfoIdx( i ) <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1() );
    1608     }
    1609   }
    1610   else
    1611   {
    1612     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1613     {
    1614       assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i  ) == ( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ? 0 : i ) );
    1615     }
    1616 #endif
    16171441  }
    16181442  WRITE_FLAG( pcVPSVUI->getTilesNotInUseFlag( ) ? 1 : 0 , "tiles_not_in_use_flag" );
     
    16311455      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ) ; j++ )
    16321456      { 
    1633 #if H_MV_HLS10_REF_PRED_LAYERS
    16341457        Int layerIdx = pcVPS->getLayerIdInVps(pcVPS->getIdRefLayer(pcVPS->getLayerIdInNuh( i ) , j  )); 
    1635 #else
    1636         Int layerIdx = pcVPS->getLayerIdInVps(pcVPS->getRefLayerId(pcVPS->getLayerIdInNuh( i ) , j  )); 
    1637 #endif
    16381458        if( pcVPSVUI->getTilesInUseFlag( i )  &&  pcVPSVUI->getTilesInUseFlag( layerIdx ) ) 
    16391459        {
     
    16531473    }
    16541474  }
    1655 #if H_MV_HLS10_VPS_VUI
    16561475  WRITE_FLAG( pcVPSVUI->getSingleLayerForNonIrapFlag( ) ? 1 : 0 , "single_layer_for_non_irap_flag" );
    16571476  WRITE_FLAG( pcVPSVUI->getHigherLayerIrapSkipFlag( ) ? 1 : 0 , "higher_layer_irap_skip_flag" );
    1658 #else
    1659   WRITE_CODE( 0, 3, "vps_vui_reserved_zero_3bits" );
    1660 #endif
    16611477  WRITE_FLAG( pcVPSVUI->getIlpRestrictedRefLayersFlag( ) ? 1 : 0 , "ilp_restricted_ref_layers_flag" );
    16621478
     
    16671483      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ); j++ )
    16681484      {
    1669 #if H_MV_HLS10_REF_PRED_LAYERS
    16701485        if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getIdRefLayer( pcVPS->getLayerIdInNuh( i ), j ) > 0 )
    1671 #else
    1672         if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getRefLayerId( pcVPS->getLayerIdInNuh( i ), j ) > 0 )
    1673 #endif
    16741486        {       
    16751487          WRITE_UVLC( pcVPSVUI->getMinSpatialSegmentOffsetPlus1( i, j ), "min_spatial_segment_offset_plus1" );
     
    17141526  assert ( vpsVuiBspHrdP );
    17151527 
    1716 #if H_MV_HLS10_VPS_VUI_BSP
    17171528  WRITE_UVLC( vpsVuiBspHrdP->getVpsNumAddHrdParams( ), "vps_num_add_hrd_params" );
    17181529
     
    17601571  } 
    17611572
    1762 #else // H_MV_HLS10_GEN
    1763   WRITE_UVLC( vpsVuiBspHrdP->getVpsNumBspHrdParametersMinus1( ), "vps_num_bsp_hrd_parameters_minus1" );
    1764   for( Int i = 0; i <= vpsVuiBspHrdP->getVpsNumBspHrdParametersMinus1( ); i++ )
    1765   { 
    1766     if( i > 0 )
    1767     {
    1768       WRITE_FLAG( vpsVuiBspHrdP->getBspCprmsPresentFlag( i ) ? 1 : 0 , "bsp_cprms_present_flag" );
    1769     }
    1770     TComHRD* hrdParameters = vpsVuiBspHrdP->getHrdParametermeters( i );
    1771     codeHrdParameters( hrdParameters, vpsVuiBspHrdP->getBspCprmsPresentFlag( i ), pcVPS->getMaxSubLayersMinus1() );     
    1772   } 
    1773   for( Int h = 1; h <= pcVPS->getVpsNumLayerSetsMinus1(); h++ )
    1774   { 
    1775     WRITE_UVLC( vpsVuiBspHrdP->getNumBitstreamPartitions( h ), "num_bitstream_partitions" );
    1776     for( Int i = 0; i < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); i++ ) 
    1777     {
    1778       for( Int j = 0; j < pcVPS->getNumLayersInIdList( h ); j++ ) 
    1779       {
    1780         WRITE_FLAG( vpsVuiBspHrdP->getLayerInBspFlag( h, i, j ) ? 1 : 0 , "layer_in_bsp_flag" );
    1781       }
    1782     }
    1783     vpsVuiBspHrdP->checkLayerInBspFlag( pcVPS, h );
    1784 
    1785     if( vpsVuiBspHrdP->getNumBitstreamPartitions( h ) )
    1786     {
    1787       WRITE_UVLC( vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ), "num_bsp_sched_combinations_minus1" );
    1788       for( Int i = 0; i <= vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ); i++ )
    1789       {
    1790         for( Int j = 0; j < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); j++ )
    1791         { 
    1792           WRITE_CODE( vpsVuiBspHrdP->getBspCombHrdIdx( h, i, j ),  vpsVuiBspHrdP->getBspCombHrdIdxLen(), "bsp_comb_hrd_idx" );
    1793           WRITE_UVLC( vpsVuiBspHrdP->getBspCombSchedIdx( h, i, j ), "bsp_comb_sched_idx" );
    1794 
    1795           vpsVuiBspHrdP->checkBspCombHrdAndShedIdx( pcVPS, h, i, j );
    1796         } 
    1797       }
    1798     } 
    1799   }
    1800 #endif 
    18011573
    18021574#endif
     
    18051577Void TEncCavlc::codeVPSExtension2( TComVPS* pcVPS )
    18061578{
    1807 #if SEC_VPS_CLEANUP_I0090
    18081579  for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )
    1809 #else
    1810   for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ )
    1811 #endif
    1812   {
    1813 #if !SEC_VPS_CLEANUP_I0090
    1814     if (i!= 0)
    1815 #endif
    1816     {
    1817 #if MTK_I0099_VPS_EX2
     1580  {
     1581    {
    18181582      WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
    1819 #if SEC_HLS_CLEANUP_I0100
    18201583      WRITE_FLAG( pcVPS->getIvMvScalingFlag( i ) ? 1 : 0 ,       "iv_mv_scaling_flag[i]" );
    1821 #endif
    1822 
    1823 #endif
     1584
    18241585      if ( !( pcVPS->getDepthId( i ) == 1 ) )
    18251586      {
    18261587#if H_3D_IV_MERGE
    1827 #if !MTK_I0099_VPS_EX2
    1828         WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
    1829 #endif
    18301588#if H_3D_SPIVMP
    18311589        WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");
     
    18471605      else
    18481606      {
    1849 #if !MTK_I0099_VPS_EX2
    1850         if(i!=1)
    1851         {
    1852           WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
    1853         }
    1854 #if H_3D_SPIVMP
    1855         if (i!=1)
    1856         {
    1857           WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");
    1858         }
    1859 #endif
    1860 #endif
    18611607#if H_3D_IV_MERGE
    18621608        WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 ,          "mpi_flag[i]" );
    18631609#endif
    1864 #if MTK_I0099_VPS_EX2
    18651610        WRITE_UVLC( pcVPS->getSubPUMPILog2Size(i)-3, "log2_mpi_sub_PU_size_minus3[i]");
    1866 #endif
     1611
    18671612        WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 ,          "vps_depth_modes_flag[i]" );
    1868 #if SEPARATE_FLAG_I0085
     1613#if H_3D
    18691614        WRITE_FLAG( pcVPS->getIVPFlag( i ) ? 1 : 0 ,               "IVP_flag[i]" );
    18701615#endif
    1871 #if MTK_I0099_VPS_EX2
    18721616        WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     );
    1873 #endif
    18741617
    18751618#if H_3D_INTER_SDC
     
    18801623  }
    18811624  WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" );
    1882 #if SEC_VPS_CLEANUP_I0090
    18831625  for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)
    1884 #else
    1885   for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++)
    1886 #endif
    18871626  {
    18881627    WRITE_FLAG( pcVPS->getCamParPresent(viewIndex) ? 1 : 0, "cp_present_flag[i]" );
     
    19021641    }
    19031642  }
    1904 #if !MTK_I0099_VPS_EX2
    1905   WRITE_UVLC( pcVPS->getSubPUMPILog2Size( ) - 3, "log2_sub_PU_MPI_size_minus3");
    1906 #endif
    1907 #if H_3D_TMVP
    1908 #if !SEC_HLS_CLEANUP_I0100
    1909   WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 ,          "iv_mv_scaling_flag" );
    1910 #endif
    1911 #endif
    19121643}
    19131644#endif
     
    19781709      esb++;
    19791710      WRITE_FLAG( pcSlice->getDiscardableFlag( ) ? 1 : 0 , "discardable_flag" );
    1980 #if NON_REF_NAL_TYPE_DISCARDABLE
    19811711      if (pcSlice->getDiscardableFlag( ))
    19821712      {
     
    19871717          pcSlice->getNalUnitType() != NAL_UNIT_CODED_SLICE_RASL_R);
    19881718      }
    1989 #endif
    19901719    }
    19911720
     
    21481877      if (pcSlice->getSPS()->getTMVPFlagsPresent())
    21491878      {
    2150 #if I0044_SLICE_TMVP
     1879#if H_MV
    21511880        WRITE_FLAG( pcSlice->getEnableTMVPFlag() ? 1 : 0, "slice_temporal_mvp_enabled_flag" );
    21521881#else
     
    23082037    }
    23092038#if H_3D_IC
    2310 #if SEC_HLS_CLEANUP_I0100
    23112039    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
    2312 #else
    2313     else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth())
    2314 #endif
    23152040    {
    23162041      WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" );
     
    23212046    }
    23222047#endif
    2323 #if MTK_SINGLE_DEPTH_MODE_I0095
     2048#if H_3D_SINGLE_DEPTH
    23242049    if(pcSlice->getIsDepth())
    23252050    {
     
    23852110  }
    23862111#if H_3D
    2387 #if LGE_FCO_I0116
     2112#if H_3D_FCO
    23882113  if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && pcSlice->getIsDepth() )
    23892114#else
     
    25752300  WRITE_FLAG(ptl->getFrameOnlyConstraintFlag(), "general_frame_only_constraint_flag");
    25762301 
    2577 #if H_MV_HLS10_PTL
    2578 #if H_MV_HLS10_PTL_INFER_FIX
     2302#if H_MV
    25792303  if( ptl->getV2ConstraintsPresentFlag() )
    2580 #else
    2581   if( ptl->getProfileIdc( ) ==  4 || ptl->getProfileCompatibilityFlag( 4 )  ||
    2582     ptl->getProfileIdc( ) ==  5 || ptl->getProfileCompatibilityFlag( 5 )  ||
    2583     ptl->getProfileIdc( ) ==  6 || ptl->getProfileCompatibilityFlag( 6 )  ||
    2584     ptl->getProfileIdc( ) ==  7 || ptl->getProfileCompatibilityFlag( 7 ) )
    2585 #endif
    25862304  {
    25872305    WRITE_FLAG( ptl->getMax12bitConstraintFlag( ) ? 1 : 0 , "max_12bit_constraint_flag" );
     
    26042322    WRITE_CODE( 0, 11, "XXX_reserved_zero_43bits[32..42]");
    26052323  }
    2606 #if H_MV_HLS10_PTL_INFER_FIX
    26072324    if( ptl->getInbldPresentFlag() )
    2608 #else
    2609   if( ( ptl->getProfileIdc() >= 1 && ptl->getProfileIdc() <= 5 )  ||
    2610     ptl->getProfileCompatibilityFlag( 1 ) || ptl->getProfileCompatibilityFlag( 2 )  ||
    2611     ptl->getProfileCompatibilityFlag( 3 ) || ptl->getProfileCompatibilityFlag( 4 )  ||
    2612     ptl->getProfileCompatibilityFlag( 5 ) )
    2613 #endif
    26142325  {
    26152326    WRITE_FLAG( ptl->getInbldFlag( ) ? 1 : 0 , "inbld_flag" );
     
    27622473  assert(0);
    27632474}
    2764 #if MTK_SINGLE_DEPTH_MODE_I0095
     2475#if H_3D_SINGLE_DEPTH
    27652476Void TEncCavlc::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx )
    27662477{
  • trunk/source/Lib/TLibEncoder/TEncCavlc.h

    r1066 r1084  
    107107  Void  codePPS                 ( TComPPS* pcPPS );
    108108
    109 #if H_MV_HLS10_PPS
    110109#if H_MV
    111110  Void codePPSMultilayerExtension( TComPPS* pcPPS );
    112 #endif
    113111#endif
    114112
     
    129127  Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx );
    130128  Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    131 #if MTK_SINGLE_DEPTH_MODE_I0095
     129#if H_3D_SINGLE_DEPTH
    132130  Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx );
    133131#endif
  • trunk/source/Lib/TLibEncoder/TEncCfg.h

    r1039 r1084  
    124124  Int       m_iSourceWidth;
    125125  Int       m_iSourceHeight;
    126   Int       m_conformanceMode;
    127126  Window    m_conformanceWindow;
    128127  Int       m_framesToBeEncoded;
     
    229228  Bool      m_bPCMFilterDisableFlag;
    230229  Bool      m_loopFilterAcrossTilesEnabledFlag;
    231   Int       m_iUniformSpacingIdr;
     230  Bool      m_tileUniformSpacingFlag;
    232231  Int       m_iNumColumnsMinus1;
    233   UInt*     m_puiColumnWidth;
    234232  Int       m_iNumRowsMinus1;
    235   UInt*     m_puiRowHeight;
     233  std::vector<Int> m_tileColumnWidth;
     234  std::vector<Int> m_tileRowHeight;
    236235
    237236  Int       m_iWaveFrontSynchro;
     
    414413#if H_3D_DIM
    415414  Bool      m_useDMM;
    416 #if SEPARATE_FLAG_I0085
    417415  Bool      m_useIVP;
    418 #endif
    419416  Bool      m_useSDC;
    420417  Bool      m_useDLT;
    421418#endif
    422 #if MTK_SINGLE_DEPTH_MODE_I0095
     419#if H_3D_SINGLE_DEPTH
    423420  Bool      m_useSingleDepthMode;
    424421#endif
     
    426423  Bool      m_useMPI;
    427424#endif
    428 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX
    429425#if H_3D_QTLPC
    430426  Bool      m_bUseQTL;
    431 #if !MTK_I0099_VPS_EX2
    432   Bool      m_bUsePC;
    433 #endif
    434 #endif
    435427#endif
    436428#endif
    437429public:
    438430  TEncCfg()
    439   : m_puiColumnWidth()
    440   , m_puiRowHeight()
     431  : m_tileColumnWidth()
     432  , m_tileRowHeight()
    441433#if H_MV
    442434  , m_layerId(-1)
     
    452444
    453445  virtual ~TEncCfg()
    454   {
    455     delete[] m_puiColumnWidth;
    456     delete[] m_puiRowHeight;
    457   }
     446  {}
    458447 
    459448  Void setProfile(Profile::Name profile) { m_profile = profile; }
     
    678667  Void  setLFCrossTileBoundaryFlag               ( Bool   val  )       { m_loopFilterAcrossTilesEnabledFlag = val; }
    679668  Bool  getLFCrossTileBoundaryFlag               ()                    { return m_loopFilterAcrossTilesEnabledFlag;   }
    680   Void  setUniformSpacingIdr           ( Int i )           { m_iUniformSpacingIdr = i; }
    681   Int   getUniformSpacingIdr           ()                  { return m_iUniformSpacingIdr; }
     669  Void  setTileUniformSpacingFlag      ( Bool b )          { m_tileUniformSpacingFlag = b; }
     670  Bool  getTileUniformSpacingFlag      ()                  { return m_tileUniformSpacingFlag; }
    682671  Void  setNumColumnsMinus1            ( Int i )           { m_iNumColumnsMinus1 = i; }
    683672  Int   getNumColumnsMinus1            ()                  { return m_iNumColumnsMinus1; }
    684   Void  setColumnWidth ( UInt* columnWidth )
    685   {
    686     if( m_iUniformSpacingIdr == 0 && m_iNumColumnsMinus1 > 0 )
    687     {
    688       Int  m_iWidthInCU = ( m_iSourceWidth%g_uiMaxCUWidth ) ? m_iSourceWidth/g_uiMaxCUWidth + 1 : m_iSourceWidth/g_uiMaxCUWidth;
    689       m_puiColumnWidth = new UInt[ m_iNumColumnsMinus1 ];
    690 
    691       for(Int i=0; i<m_iNumColumnsMinus1; i++)
    692       {
    693         m_puiColumnWidth[i] = columnWidth[i];
    694         printf("col: m_iWidthInCU= %4d i=%4d width= %4d\n",m_iWidthInCU,i,m_puiColumnWidth[i]); //AFU
    695       }
    696     }
    697   }
    698   UInt  getColumnWidth                 ( UInt columnidx )  { return *( m_puiColumnWidth + columnidx ); }
     673  Void  setColumnWidth ( const std::vector<Int>& columnWidth ) { m_tileColumnWidth = columnWidth; }
     674  UInt  getColumnWidth                 ( UInt columnIdx )      { return m_tileColumnWidth[columnIdx]; }
    699675  Void  setNumRowsMinus1               ( Int i )           { m_iNumRowsMinus1 = i; }
    700676  Int   getNumRowsMinus1               ()                  { return m_iNumRowsMinus1; }
    701   Void  setRowHeight (UInt* rowHeight)
    702   {
    703     if( m_iUniformSpacingIdr == 0 && m_iNumRowsMinus1 > 0 )
    704     {
    705       Int  m_iHeightInCU = ( m_iSourceHeight%g_uiMaxCUHeight ) ? m_iSourceHeight/g_uiMaxCUHeight + 1 : m_iSourceHeight/g_uiMaxCUHeight;
    706       m_puiRowHeight = new UInt[ m_iNumRowsMinus1 ];
    707 
    708       for(Int i=0; i<m_iNumRowsMinus1; i++)
    709       {
    710         m_puiRowHeight[i] = rowHeight[i];
    711         printf("row: m_iHeightInCU=%4d i=%4d height=%4d\n",m_iHeightInCU,i,m_puiRowHeight[i]); //AFU
    712       }
    713     }
    714   }
    715   UInt  getRowHeight                   ( UInt rowIdx )     { return *( m_puiRowHeight + rowIdx ); }
     677  Void  setRowHeight ( const std::vector<Int>& rowHeight)      { m_tileRowHeight = rowHeight; }
     678  UInt  getRowHeight                   ( UInt rowIdx )         { return m_tileRowHeight[rowIdx]; }
    716679  Void  xCheckGSParameters();
    717680  Void  setWaveFrontSynchro(Int iWaveFrontSynchro)       { m_iWaveFrontSynchro = iWaveFrontSynchro; }
     
    1013976  Bool      getUseDMM                       ()        { return m_useDMM; }
    1014977  Void      setUseDMM                       ( Bool b) { m_useDMM = b;    }
    1015 #if SEPARATE_FLAG_I0085
    1016978  Bool      getUseIVP                       ()        { return m_useIVP; }
    1017979  Void      setUseIVP                       ( Bool b) { m_useIVP = b;    }
    1018 #endif
    1019980  Bool      getUseSDC                       ()        { return m_useSDC; }
    1020981  Void      setUseSDC                       ( Bool b) { m_useSDC = b;    }
     
    1022983  Void      setUseDLT                       ( Bool b) { m_useDLT = b;    }
    1023984#endif
    1024 #if MTK_SINGLE_DEPTH_MODE_I0095
     985#if H_3D_SINGLE_DEPTH
    1025986  Void       setUseSingleDepthMode          ( Bool bVal )    { m_useSingleDepthMode = bVal; }
    1026987  Bool       getUseSingleDepthMode          ()               { return m_useSingleDepthMode; }
    1027988#endif
    1028 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX
    1029989#if H_3D_QTLPC
    1030990  Void      setUseQTL                       ( Bool b ) { m_bUseQTL = b;    }
    1031991  Bool      getUseQTL                       ()         { return m_bUseQTL; }
    1032 #if !MTK_I0099_VPS_EX2
    1033   Void      setUsePC                        ( Bool b ) { m_bUsePC  = b;    }
    1034   Bool      getUsePC                        ()         { return m_bUsePC;  }
    1035 #endif
    1036 #endif
    1037992#endif
    1038993#if H_3D_IV_MERGE
  • trunk/source/Lib/TLibEncoder/TEncCu.cpp

    r1066 r1084  
    409409
    410410#if H_3D_QTLPC
    411 #if MTK_I0099_VPS_EX2
    412411  TComVPS *vps            = pcPic->getSlice(0)->getVPS();
    413412  Bool  bLimQtPredFalg    = vps->getLimQtPredFlag(pcPic->getSlice(0)->getLayerId());
    414 #else
    415   TComSPS *sps            = pcPic->getSlice(0)->getSPS();
    416 #endif
    417413  TComPic *pcTexture      = rpcBestCU->getSlice()->getTexturePic();
    418414
     
    535531#if H_3D_QTLPC
    536532      //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU
    537 
    538 #if MTK_I0099_VPS_EX2
    539 #if MTK_I0099_FIX
    540 #if LGE_FCO_I0116
     533#if H_3D_FCO
    541534      if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg ) && pcTexture->getReconMark())
    542535#else
    543536      if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg ))
    544 #endif
    545 #else
    546       if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg)
    547 #endif
    548 #else
    549       if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL())
    550537#endif
    551538      {
     
    702689
    703690#if H_3D_QTLPC     
    704 #if MTK_I0099_VPS_EX2
    705 #if MTK_I0099_FIX
    706691      if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg ))
    707 #else
    708       if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg)
    709 #endif
    710 #else
    711       if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL())
    712 #endif
    713692      {
    714693        bTrySplitDQP = bTrySplit;
     
    734713    }
    735714#endif
    736 #if MTK_SINGLE_DEPTH_MODE_I0095
     715#if H_3D_SINGLE_DEPTH
    737716    rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP  );
    738717    if(rpcBestCU->getSlice()->getApplySingleDepthMode())
     
    10571036              rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0     
    10581037#if H_3D_DIM_ENC
    1059 #if HHI_DMM4_ENC_I0066
    10601038              || rpcBestCU->getSlice()->getIsDepth()
    1061 #else
    1062             || ( rpcBestCU->getSlice()->getIsDepth() && rpcBestCU->getSlice()->isIRAP() )
    1063 #endif
    10641039#endif
    10651040            ) // avoid very complex intra if it is unlikely
    10661041          {
    1067 #if HHI_DMM4_ENC_I0066
     1042#if H_3D_DIM
    10681043            Bool bOnlyIVP = false;
    10691044            if( rpcBestCU->getSlice()->getIsDepth() && !(rpcBestCU->getSlice()->isIRAP()) &&
     
    10981073                if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
    10991074                {
    1100 #if HHI_DMM4_ENC_I0066
     1075#if H_3D_DIM
    11011076                  xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN, bOnlyIVP );
    11021077#else
     
    15901565    return;
    15911566  }
    1592 #if MTK_SINGLE_DEPTH_MODE_I0095
     1567#if H_3D_SINGLE_DEPTH
    15931568  m_pcEntropyCoder->encodeSingleDepthMode( pcCU, uiAbsPartIdx );
    15941569  if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
     
    16271602  m_pcEntropyCoder->encodeCoeff( pcCU, uiAbsPartIdx, uiDepth, pcCU->getWidth (uiAbsPartIdx), pcCU->getHeight(uiAbsPartIdx), bCodeDQP );
    16281603  setdQPFlag( bCodeDQP );
    1629 #if MTK_SINGLE_DEPTH_MODE_I0095
     1604#if H_3D_SINGLE_DEPTH
    16301605  }
    16311606#endif
     
    18631838    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    18641839    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    1865 #if !FIX_TICKET_79
    1866     InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    1867 #endif
    18681840#if H_3D_SPIVMP
    18691841    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     
    18781850    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
    18791851    rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours
    1880 #if !FIX_TICKET_79
    1881       , inheritedVSPDisInfo
    1882 #endif
    18831852#if H_3D_SPIVMP
    18841853      , pcMvFieldSP, puhInterDirSP
     
    18951864
    18961865#else
    1897 #if FIX_TICKET_79
    18981866    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, numValidMergeCand );
    1899 #else
    1900     rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );
    1901 #endif
    19021867#endif
    19031868
     
    19421907#if H_3D_VSP
    19431908          rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth );
    1944 #if !FIX_TICKET_79
    1945           rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth );
    1946 #endif
    19471909#endif
    19481910#if H_3D_DDD
     
    20432005
    20442006          rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth );
    2045 #if MTK_SINGLE_DEPTH_MODE_I0095
     2007#if H_3D_SINGLE_DEPTH
    20462008          rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );
    20472009#endif
     
    20612023          if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && !uiNoResidual )
    20622024          {
    2063 #if FAST_SDC_OFFSET_DECISION_I0084
    20642025            Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE};
    20652026            for( Int uiOffest = 1 ; uiOffest <= 5 ; uiOffest++ )
    2066 #else
    2067             for( Int uiOffest = -2 ; uiOffest <= 2 ; uiOffest++ )
    2068 #endif
    20692027            {
    2070 #if FAST_SDC_OFFSET_DECISION_I0084
    20712028              if( uiOffest > 3)
    20722029              {
     
    20842041                }
    20852042              }
    2086 #endif
    20872043              if( rpcTempCU != rpcTempCUPre )
    20882044              {
     
    20912047              }
    20922048              rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2093 #if MTK_SINGLE_DEPTH_MODE_I0095
     2049#if H_3D_SINGLE_DEPTH
    20942050              rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );
    20952051#endif
     
    21062062              }
    21072063#endif
    2108 #if FAST_SDC_OFFSET_DECISION_I0084
    21092064              Int iSdcOffset = 0;
    21102065              if(uiOffest % 2 == 0)
     
    21272082                dOffsetCost [uiOffest -1] = rpcTempCU->getTotalCost();
    21282083              }
    2129 #else
    2130               m_pcPredSearch->encodeResAndCalcRdInterSDCCU( rpcTempCU,
    2131                 m_ppcOrigYuv[uhDepth],
    2132                 ( rpcTempCU != rpcTempCUPre ) ? m_ppcPredYuvBest[uhDepth] : m_ppcPredYuvTemp[uhDepth],
    2133                 m_ppcResiYuvTemp[uhDepth],
    2134                 m_ppcRecoYuvTemp[uhDepth],
    2135                 uiOffest,
    2136                 uhDepth );
    2137 #endif
    21382084
    21392085              xCheckDQP( rpcTempCU );
     
    22532199 
    22542200  rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2255 #if MTK_SINGLE_DEPTH_MODE_I0095
     2201#if H_3D_SINGLE_DEPTH
    22562202  rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );
    22572203#endif
     
    23262272  }
    23272273#endif
    2328 
    23292274#if H_3D_VSO // M4
    23302275  if( m_pcRdCost->getUseLambdaScaleVSO() )
     
    23322277  else
    23332278#endif
    2334 
    23352279  rpcTempCU->getTotalCost()  = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );
    23362280#if H_3D_INTER_SDC
     
    23422286  if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && ePartSize == SIZE_2Nx2N)
    23432287  {
    2344 #if FAST_SDC_OFFSET_DECISION_I0084
    23452288    Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE};
    23462289    for( Int uiOffest = 1 ; uiOffest <= 5 ; uiOffest++ )
    2347 #else
    2348     for( Int uiOffest = -2 ; uiOffest <= 2 ; uiOffest++ )
    2349 #endif
    2350     {
    2351 #if FAST_SDC_OFFSET_DECISION_I0084
     2290    {
    23522291      if( uiOffest > 3)
    23532292      {
     
    23652304        }
    23662305      }
    2367 #endif
     2306
    23682307      if( rpcTempCU != rpcTempCUPre )
    23692308      {
     
    23732312      }
    23742313      rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2375 #if MTK_SINGLE_DEPTH_MODE_I0095
     2314#if H_3D_SINGLE_DEPTH
    23762315      rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );
    23772316#endif
     
    23892328#endif
    23902329
    2391 #if FAST_SDC_OFFSET_DECISION_I0084
    23922330      Int iSdcOffset = 0;
    23932331      if(uiOffest % 2 == 0)
     
    24102348        dOffsetCost [uiOffest -1] = rpcTempCU->getTotalCost();
    24112349      }
    2412 #else
    2413       m_pcPredSearch->encodeResAndCalcRdInterSDCCU( rpcTempCU,
    2414         m_ppcOrigYuv[uhDepth],
    2415         ( rpcTempCU != rpcTempCUPre ) ? m_ppcPredYuvBest[uhDepth] : m_ppcPredYuvTemp[uhDepth],
    2416         m_ppcResiYuvTemp[uhDepth],
    2417         m_ppcRecoYuvTemp[uhDepth],
    2418         uiOffest,
    2419         uhDepth );
    2420 #endif
    24212350
    24222351      xCheckDQP( rpcTempCU );
     
    24932422  }
    24942423}
    2495 #if MTK_SINGLE_DEPTH_MODE_I0095
     2424#if H_3D_SINGLE_DEPTH
    24962425Void TEncCu::xCheckRDCostSingleDepth( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize )
    24972426{
     
    25602489}
    25612490#endif
     2491
    25622492Void TEncCu::xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG )
    25632493{
     
    25812511  AOF( uiWidth == uiHeight );
    25822512 
    2583 #if SEC_DBBP_DISALLOW_8x8_I0078
     2513#if H_3D_DBBP
     2514  // Is this correct here, was under the macro SEC_DBBP_DISALLOW_8x8_I0078, however the function is related to Single Depth Mode
    25842515  if(uiWidth <= 8)
    25852516  {
     
    25922523  // fetch virtual depth block
    25932524  UInt uiDepthStride = 0;
    2594 #if LGE_FCO_I0116
     2525#if H_3D_FCO
    25952526  Pel* pDepthPels = rpcTempCU->getVirtualDepthBlock(rpcTempCU->getZorderIdxInCU(), uiWidth, uiHeight, uiDepthStride);
    25962527#else
     
    26882619 
    26892620  // reconstruct final prediction signal by combining both segments
    2690 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    26912621  m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize);
    2692 #else
    2693   m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight);
    2694 #endif
    2695  
    26962622  m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false );
    26972623 
     
    27002626}
    27012627#endif
    2702 
    2703 #if HHI_DMM4_ENC_I0066
     2628#if H_3D_DIM
    27042629Void TEncCu::xCheckRDCostIntra( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize, Bool bOnlyIVP )
    27052630#else
     
    27072632#endif
    27082633{
    2709   UInt uiDepth = rpcTempCU->getDepth( 0 );
    2710  
     2634  UInt uiDepth = rpcTempCU->getDepth( 0 ); 
    27112635#if H_3D_VSO // M5
    27122636  if( m_pcRdCost->getUseRenModel() )
     
    27212645
    27222646  rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
    2723 #if MTK_SINGLE_DEPTH_MODE_I0095
     2647#if H_3D_SINGLE_DEPTH
    27242648  rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth );
    27252649#endif
     
    27332657    m_pcPredSearch->preestChromaPredMode( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth] );
    27342658  }
    2735 #if HHI_DMM4_ENC_I0066
     2659#if H_3D_DIM
    27362660  m_pcPredSearch  ->estIntraPredQT      ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, bSeparateLumaChroma, bOnlyIVP );
    27372661#else
     
    27512675  }
    27522676  m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0,          true );
    2753 #if MTK_SINGLE_DEPTH_MODE_I0095
     2677#if H_3D_SINGLE_DEPTH
    27542678  m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0,          true );
    27552679  if(!rpcTempCU->getSingleDepthFlag(0))
     
    27682692  m_pcEntropyCoder->encodeCoeff( rpcTempCU, 0, uiDepth, rpcTempCU->getWidth (0), rpcTempCU->getHeight(0), bCodeDQP );
    27692693  setdQPFlag( bCodeDQP );
    2770 #if MTK_SINGLE_DEPTH_MODE_I0095
     2694#if H_3D_SINGLE_DEPTH
    27712695  }
    27722696#endif       
     
    27982722
    27992723  rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
    2800 #if MTK_SINGLE_DEPTH_MODE_I0095
     2724#if H_3D_SINGLE_DEPTH
    28012725  rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth );
    28022726#endif
     
    28172741  }
    28182742  m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0,          true );
    2819 #if MTK_SINGLE_DEPTH_MODE_I0095
     2743#if H_3D_SINGLE_DEPTH
    28202744  m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0,          true );
    28212745#endif
  • trunk/source/Lib/TLibEncoder/TEncCu.h

    r1039 r1084  
    159159  Void  xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG = false );
    160160#endif
    161 #if MTK_SINGLE_DEPTH_MODE_I0095
     161#if H_3D_SINGLE_DEPTH
    162162  Void  xCheckRDCostSingleDepth   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize  );
    163163#endif
    164 #if HHI_DMM4_ENC_I0066
     164#if H_3D_DIM
    165165  Void  xCheckRDCostIntra   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bOnlyIVP );
    166166#else
  • trunk/source/Lib/TLibEncoder/TEncEntropy.cpp

    r1066 r1084  
    119119  m_pcEntropyCoderIf->codeSkipFlag( pcCU, uiAbsPartIdx );
    120120}
    121 #if MTK_SINGLE_DEPTH_MODE_I0095
     121#if H_3D_SINGLE_DEPTH
    122122Void TEncEntropy::encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    123123{
     
    185185  else
    186186  {
    187 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    188187    Int ICEnableCandidate = pcCU->getSlice()->getICEnableCandidate(pcCU->getSlice()->getDepth());
    189188    Int ICEnableNum = pcCU->getSlice()->getICEnableNum(pcCU->getSlice()->getDepth());
     
    195194    pcCU->getSlice()->setICEnableCandidate(pcCU->getSlice()->getDepth(), ICEnableCandidate);
    196195    pcCU->getSlice()->setICEnableNum(pcCU->getSlice()->getDepth(), ICEnableNum);
    197 #else
    198     g_aICEnableCANDIDATE[pcCU->getSlice()->getDepth()]++;
    199     if(pcCU->getICFlag(uiAbsPartIdx))
    200     {
    201       g_aICEnableNUM[pcCU->getSlice()->getDepth()]++;
    202     }
    203 #endif
    204196  }
    205197  if( pcCU->isICFlagRequired( uiAbsPartIdx ) )
     
    273265  }
    274266 
     267  m_pcEntropyCoderIf->codePartSize( pcCU, uiAbsPartIdx, uiDepth );
     268 
    275269#if H_3D_DBBP
    276 #if! SEC_DBBP_EXPLICIT_SIG_I0077
    277   PartSize eVirtualPartSize = pcCU->getPartitionSize(uiAbsPartIdx);
    278   if( pcCU->getDBBPFlag(uiAbsPartIdx) )
    279   {
    280     AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) );
    281    
    282     // temporarily change partition size for DBBP blocks
    283     pcCU->setPartSizeSubParts(RWTH_DBBP_PACK_MODE, uiAbsPartIdx, uiDepth);
    284   }
    285 #endif
    286 #endif
    287  
    288   m_pcEntropyCoderIf->codePartSize( pcCU, uiAbsPartIdx, uiDepth );
    289  
    290 #if H_3D_DBBP
    291 #if SEC_DBBP_EXPLICIT_SIG_I0077
    292 #if SEC_DBBP_DISALLOW_8x8_I0078
    293270  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 )
    294 #else
    295   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) )
    296 #endif
    297 #else
    298 #if SEC_DBBP_DISALLOW_8x8_I0078
    299   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && pcCU->getWidth(uiAbsPartIdx) > 8 )
    300 #else
    301   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) )
    302 #endif
    303 #endif
    304271  {
    305272    encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD);
    306 #if !SEC_DBBP_EXPLICIT_SIG_I0077
    307     if( pcCU->getDBBPFlag(uiAbsPartIdx) )
    308     {
    309       // restore virtual partition size for DBBP blocks
    310       pcCU->setPartSizeSubParts(eVirtualPartSize, uiAbsPartIdx, uiDepth);
    311     }
    312 #endif
    313273  }
    314274#endif
  • trunk/source/Lib/TLibEncoder/TEncEntropy.h

    r1039 r1084  
    8686  virtual Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    8787  virtual Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    88 #if MTK_SINGLE_DEPTH_MODE_I0095
     88#if H_3D_SINGLE_DEPTH
    8989  virtual Void codeSingleDepthMode      ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    9090#endif
     
    174174  Void encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    175175  Void encodeSkipFlag          ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    176 #if MTK_SINGLE_DEPTH_MODE_I0095
     176#if H_3D_SINGLE_DEPTH
    177177  Void encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD=false );
    178178#endif
  • trunk/source/Lib/TLibEncoder/TEncGOP.cpp

    r1066 r1084  
    160160#endif
    161161#endif
    162 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    163   m_aICEnableCandidate           = pcTEncTop->getICEnableCandidate();
    164   m_aICEnableNum           = pcTEncTop->getICEnableNum();
     162#if H_3D_IC
     163  m_aICEnableCandidate   = pcTEncTop->getICEnableCandidate();
     164  m_aICEnableNum         = pcTEncTop->getICEnableNum();
    165165#endif
    166166#if KWU_FIX_URQ
     
    395395Void TEncGOP::initGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsInGOP)
    396396{
     397#if H_MV_ALIGN_HM_15
     398  xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut, false );
     399#else
    397400  xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut );
     401#endif
    398402  m_iNumPicCoded = 0;
    399403}
     
    937941    pcSlice->setRefPicList ( rcListPic );
    938942#endif
    939 #if MTK_SINGLE_DEPTH_MODE_I0095
     943#if H_3D_SINGLE_DEPTH
    940944    TEncTop* pcEncTop = (TEncTop*) m_pcCfg;
    941945    bool enableSingleDepthMode=false;
     
    971975#endif   
    972976#endif
    973 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     977#if H_3D_IC
    974978    pcSlice->setICEnableCandidate( m_aICEnableCandidate );         
    975979    pcSlice->setICEnableNum( m_aICEnableNum );         
     
    12281232    UInt uiRealEndAddress = uiExternalAddress*pcPic->getNumPartInCU()+uiInternalAddress;
    12291233
    1230     UInt uiCummulativeTileWidth;
    1231     UInt uiCummulativeTileHeight;
    12321234    Int  p, j;
    12331235    UInt uiEncCUAddr;
    12341236
    1235     //set NumColumnsMinus1 and NumRowsMinus1
    1236     pcPic->getPicSym()->setNumColumnsMinus1( pcSlice->getPPS()->getNumColumnsMinus1() );
    1237     pcPic->getPicSym()->setNumRowsMinus1( pcSlice->getPPS()->getNumRowsMinus1() );
    1238 
    1239     //create the TComTileArray
    1240     pcPic->getPicSym()->xCreateTComTileArray();
    1241 
    1242     if( pcSlice->getPPS()->getUniformSpacingFlag() == 1 )
    1243     {
    1244       //set the width for each tile
    1245       for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++)
    1246       {
    1247         for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1()+1; p++)
    1248         {
    1249           pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )->
    1250             setTileWidth( (p+1)*pcPic->getPicSym()->getFrameWidthInCU()/(pcPic->getPicSym()->getNumColumnsMinus1()+1)
    1251             - (p*pcPic->getPicSym()->getFrameWidthInCU())/(pcPic->getPicSym()->getNumColumnsMinus1()+1) );
    1252         }
    1253       }
    1254 
    1255       //set the height for each tile
    1256       for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++)
    1257       {
    1258         for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1()+1; p++)
    1259         {
    1260           pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )->
    1261             setTileHeight( (p+1)*pcPic->getPicSym()->getFrameHeightInCU()/(pcPic->getPicSym()->getNumRowsMinus1()+1)
    1262             - (p*pcPic->getPicSym()->getFrameHeightInCU())/(pcPic->getPicSym()->getNumRowsMinus1()+1) );   
    1263         }
    1264       }
    1265     }
    1266     else
    1267     {
    1268       //set the width for each tile
    1269       for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++)
    1270       {
    1271         uiCummulativeTileWidth = 0;
    1272         for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1(); p++)
    1273         {
    1274           pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )->setTileWidth( pcSlice->getPPS()->getColumnWidth(p) );
    1275           uiCummulativeTileWidth += pcSlice->getPPS()->getColumnWidth(p);
    1276         }
    1277         pcPic->getPicSym()->getTComTile(j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p)->setTileWidth( pcPic->getPicSym()->getFrameWidthInCU()-uiCummulativeTileWidth );
    1278       }
    1279 
    1280       //set the height for each tile
    1281       for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++)
    1282       {
    1283         uiCummulativeTileHeight = 0;
    1284         for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1(); p++)
    1285         {
    1286           pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )->setTileHeight( pcSlice->getPPS()->getRowHeight(p) );
    1287           uiCummulativeTileHeight += pcSlice->getPPS()->getRowHeight(p);
    1288         }
    1289         pcPic->getPicSym()->getTComTile(p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcPic->getPicSym()->getFrameHeightInCU()-uiCummulativeTileHeight );
    1290       }
    1291     }
    1292     //intialize each tile of the current picture
    1293     pcPic->getPicSym()->xInitTiles();
     1237    pcPic->getPicSym()->initTiles(pcSlice->getPPS());
    12941238
    12951239    // Allocate some coders, now we know how many tiles there are.
     
    18141758
    18151759#if SETTING_NO_OUT_PIC_PRIOR
     1760          pcSlice->setNoRaslOutputFlag(false);
    18161761          if (pcSlice->isIRAP())
    18171762          {
     
    18211766            }
    18221767            //the inference for NoOutputPriorPicsFlag
     1768            // KJS: This cannot happen at the encoder
    18231769            if (!m_bFirst && pcSlice->isIRAP() && pcSlice->getNoRaslOutputFlag())
    18241770            {
     
    24922438  assert (m_iGopSize > 0);
    24932439 
    2494   return;
    2495 }
    2496 
    2497 Void TEncGOP::xInitGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut )
    2498 {
    2499   assert( iNumPicRcvd > 0 );
    2500   //  Exception for the first frame
    2501   if ( iPOCLast == 0 )
    2502   {
    2503     m_iGopSize    = 1;
    2504   }
    2505   else
    2506     m_iGopSize    = m_pcCfg->getGOPSize();
    2507  
    2508   assert (m_iGopSize > 0);
    2509 
    25102440  return;
    25112441}
  • trunk/source/Lib/TLibEncoder/TEncGOP.h

    r1066 r1084  
    116116#endif
    117117#endif
    118 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    119   Int *m_aICEnableCandidate;
    120   Int *m_aICEnableNum;
     118#if H_3D_IC
     119  Int*                    m_aICEnableCandidate;
     120  Int*                    m_aICEnableNum;
    121121#endif
    122122  //--Adaptive Loop filter
     
    200200
    201201  Void xInitGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, bool isField );
    202   Void  xInitGOP          ( Int iPOC, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut );
    203202  Void  xGetBuffer        ( TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, Int iNumPicRcvd, Int iTimeOffset, TComPic*& rpcPic, TComPicYuv*& rpcPicYuvRecOut, Int pocCurr, bool isField );
    204203 
  • trunk/source/Lib/TLibEncoder/TEncSbac.cpp

    r1066 r1084  
    5858, m_cCUSplitFlagSCModel       ( 1,             1,               NUM_SPLIT_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels )
    5959, m_cCUSkipFlagSCModel        ( 1,             1,               NUM_SKIP_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    60 #if MTK_SINGLE_DEPTH_MODE_I0095
     60#if H_3D_SINGLE_DEPTH
    6161, m_cCUSingleDepthFlagSCModel        ( 1,             1,               NUM_SINGLEDEPTH_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    6262, m_cSingleDepthValueSCModel         ( 1,             1,               NUM_SINGLE_DEPTH_VALUE_DATA_CTX      , m_contextModels + m_numContextModels, m_numContextModels)
     
    134134 
    135135  m_cCUSkipFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG );
    136 #if MTK_SINGLE_DEPTH_MODE_I0095
     136#if H_3D_SINGLE_DEPTH
    137137  m_cCUSingleDepthFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    138138  m_cSingleDepthValueSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    214214      curCost  = m_cCUSplitFlagSCModel.calcCost       ( curSliceType, qp, (UChar*)INIT_SPLIT_FLAG );
    215215      curCost += m_cCUSkipFlagSCModel.calcCost        ( curSliceType, qp, (UChar*)INIT_SKIP_FLAG );
    216 #if MTK_SINGLE_DEPTH_MODE_I0095
     216#if H_3D_SINGLE_DEPTH
    217217      curCost += m_cCUSingleDepthFlagSCModel.calcCost        ( curSliceType, qp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    218218      curCost += m_cSingleDepthValueSCModel.calcCost         ( curSliceType, qp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    255255      curCost += m_CUTransquantBypassFlagSCModel.calcCost( curSliceType, qp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG );
    256256#if H_3D_DIM
    257 #if SEPARATE_FLAG_I0085
    258257    if( m_pcSlice->getVpsDepthModesFlag() || m_pcSlice->getIVPFlag() )
    259 #else
    260     if( m_pcSlice->getVpsDepthModesFlag() )
    261 #endif
    262258    {
    263259      curCost += m_cDepthIntraModeSCModel.calcCost    ( curSliceType, qp, (UChar*)INIT_DEPTH_INTRA_MODE );
     
    291287 
    292288  m_cCUSkipFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG );
    293 #if MTK_SINGLE_DEPTH_MODE_I0095
     289#if H_3D_SINGLE_DEPTH
    294290  m_cCUSingleDepthFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    295291  m_cSingleDepthValueSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    454450  m_pcBinIf->encodeBinsEP( bins, numBins );
    455451}
    456 #if MTK_SINGLE_DEPTH_MODE_I0095
     452#if H_3D_SINGLE_DEPTH
    457453Void TEncSbac::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx )
    458454{
     
    462458  {
    463459    UInt uiUnaryIdx = (UInt) pcCU->getSingleDepthValue(uiAbsPartIdx);
    464     UInt uiNumCand = MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE;
     460    UInt uiNumCand = SINGLE_DEPTH_MODE_CAND_LIST_SIZE;
    465461    if ( uiNumCand > 1 )
    466462    {
     
    563559
    564560#endif
    565 
    566 #if !FIX_TICKET_76
    567 #if H_3D_DIM_SDC
    568 Void TEncSbac::xCodeSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment )
    569 {
    570   assert( pcCU->getSlice()->getIsDepth() );
    571   assert( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N );
    572   assert( pcCU->getSDCFlag(uiAbsPartIdx) );
    573   assert( uiSegment < 2 );
    574  
    575   Pel segmentDCOffset = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);
    576  
    577   UInt uiResidual = segmentDCOffset == 0 ? 0 : 1;
    578   UInt uiSign     = segmentDCOffset < 0 ? 1 : 0;
    579   UInt uiAbsIdx   = abs(segmentDCOffset);
    580 
    581 #if H_3D_DIM_DLT
    582   UInt uiMaxResidualBits = pcCU->getSlice()->getPPS()->getDLT()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );
    583 #else
    584   UInt uiMaxResidualBits = g_bitDepthY;
    585 #endif
    586   assert( uiMaxResidualBits <= g_bitDepthY );
    587  
    588   // residual flag
    589   m_pcBinIf->encodeBin( uiResidual, m_cSDCResidualFlagSCModel.get( 0, 0, 0 ) );
    590 #if H_MV_ENC_DEC_TRAC
    591   DTRACE_CU("sdc_residual_flag[i]", uiResidual)
    592 #endif 
    593  
    594   if (uiResidual)
    595   {
    596     // encode sign bit of residual
    597     m_pcBinIf->encodeBinEP( uiSign );
    598 #if H_MV_ENC_DEC_TRAC
    599     DTRACE_CU("sdc_residual_sign_flag[i]", uiSign)
    600 #endif
    601 #if H_3D_DIM_DLT   
    602     UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );
    603 #else
    604     UInt uiNumDepthValues = ((1 << g_bitDepthY)-1);
    605 #endif
    606 
    607     assert(uiAbsIdx <= uiNumDepthValues);
    608    
    609     // encode residual magnitude
    610     uiAbsIdx -= 1;
    611 
    612 #if H_MV_ENC_DEC_TRAC
    613     DTRACE_CU("sdc_residual_abs_minus1[i]", uiAbsIdx)
    614 #endif
    615 
    616     // prefix part
    617     if ( uiAbsIdx == 0 )
    618     {
    619       m_pcBinIf->encodeBin( 0, m_cSDCResidualSCModel.get(0, 0, 0) );
    620     }
    621     else
    622     {
    623       UInt l = uiAbsIdx;
    624       UInt k = 0;
    625       UInt uiPrefixThreshold = ((uiNumDepthValues * 3) >> 2);
    626       while ( l > 0 && k < uiPrefixThreshold )
    627       {
    628         m_pcBinIf->encodeBin( 1, m_cSDCResidualSCModel.get(0, 0, 0) );
    629         l--;
    630         k++;
    631       }
    632       if ( uiAbsIdx < uiPrefixThreshold )
    633       {
    634         m_pcBinIf->encodeBin( 0, m_cSDCResidualSCModel.get(0, 0, 0) );
    635       }     
    636       else
    637       { // suffix part
    638         uiAbsIdx -= uiPrefixThreshold;
    639         UInt uiSuffixLength = numBitsForValue(uiNumDepthValues - uiPrefixThreshold);
    640         UInt uiBitInfo = 0;
    641         for ( Int i = 0; i < uiSuffixLength; i++)
    642         {
    643           uiBitInfo = ( uiAbsIdx & ( 1 << i ) ) >> i;
    644           m_pcBinIf->encodeBinEP( uiBitInfo);
    645         }
    646       }
    647     }
    648    
    649   }
    650 }
    651 #endif
    652 #endif
    653561#endif
    654562
     
    717625  PartSize eSize         = pcCU->getPartitionSize( uiAbsPartIdx );
    718626#if H_3D_QTLPC
    719 #if MTK_I0099_VPS_EX2
    720627  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    721628  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
    722 #else
    723   TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
    724 #endif
    725629  TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
    726630  Bool bDepthMapDetect   = (pcTexture != NULL);
     
    731635  Bool depthDependent = false;
    732636  UInt uiTexturePart = eSize;
    733 #if MTK_I0099_VPS_EX2
    734 #if LGE_FCO_I0116
     637
     638#if H_3D_FCO
    735639  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag && pcTexture->getReconMark())
    736640#else
    737641  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag )
    738 #endif
    739 #else
    740   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() )
    741642#endif
    742643  {
     
    1097998  Bool bCodeSplitFlag    = true;
    1098999
    1099 #if MTK_I0099_VPS_EX2
    11001000  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    11011001  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
    1102 #else
    1103   TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
    1104 #endif
    11051002  TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
    11061003  Bool bDepthMapDetect   = (pcTexture != NULL);
     
    11091006  Bool rapPic     = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA);
    11101007
    1111 #if MTK_I0099_VPS_EX2
    1112 #if LGE_FCO_I0116
     1008#if H_3D_FCO
    11131009  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag && pcTexture->getReconMark() )
    11141010#else
    11151011  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag  )
    1116 #endif
    1117 #else
    1118   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC())
    11191012#endif
    11201013  {
     
    11671060    dir[j] = pcCU->getLumaIntraDir( absPartIdx+partOffset*j );
    11681061#if H_3D_DIM
    1169 #if SEPARATE_FLAG_I0085
    11701062    if( pcCU->getSlice()->getVpsDepthModesFlag() ||  pcCU->getSlice()->getIVPFlag() )
    1171 #else
    1172     if( pcCU->getSlice()->getVpsDepthModesFlag() )
    1173 #endif
    11741063    {
    11751064      codeIntraDepth( pcCU, absPartIdx+partOffset*j );
     
    13171206    }
    13181207    //mode coding
    1319 #if SEPARATE_FLAG_I0085
    13201208    if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag())
    13211209    {
    13221210      m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
    13231211    }
    1324 #else
    1325     m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
    1326 #endif
    13271212  }
    13281213}
     
    23682253  }
    23692254
    2370 #if HS_DMM_SIGNALLING_I0120
    23712255  UInt uiNumSegments = isDimMode( pcCU->getLumaIntraDir( absPartIdx ) ) ? 2 : 1;
    23722256  UInt dimDeltaDC = 1;
    2373 #else
    2374   UInt uiNumSegments = 0;
    2375   UInt dimDeltaDC = 0;
    2376 #endif
    2377 
    2378 #if HS_DMM_SIGNALLING_I0120
     2257
    23792258  if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx ))
    23802259  {
    2381 #else
    2382   if( pcCU->isIntra( absPartIdx ) )
    2383   {
    2384     UInt dir     = pcCU->getLumaIntraDir( absPartIdx );
    2385     uiNumSegments = isDimMode( dir ) ? 2 : 1;
    2386 
    2387     if( pcCU->getSDCFlag( absPartIdx ) )
    2388     {
    2389 #endif
    23902260      if( uiNumSegments == 1 )
    23912261      {
     
    23962266        dimDeltaDC = ( pcCU->getSDCSegmentDCOffset( 0, absPartIdx ) || pcCU->getSDCSegmentDCOffset( 1, absPartIdx ) ) ? 1 : 0;
    23972267      }
    2398 #if !HS_DMM_SIGNALLING_I0120
    2399     }
    2400     else
    2401     {
    2402       dimDeltaDC = isDimDeltaDC( dir );
    2403     }
    2404 #endif
    24052268    m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, 0 ) );
    24062269  }
    2407 #if !HS_DMM_SIGNALLING_I0120
    2408   else //all-zero inter SDC is not allowed
    2409   {
    2410     uiNumSegments = 1;
    2411     dimDeltaDC = 1;
    2412   }
    2413 #endif
    24142270
    24152271  if( dimDeltaDC )
     
    24472303Void TEncSbac::codeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
    24482304{
    2449 #if SEC_DBBP_EXPLICIT_SIG_I0077
    24502305  PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );
    24512306  AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N );
    2452 #endif
    24532307  AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) );
    24542308  AOF( !pcCU->getSlice()->getIsDepth() );
  • trunk/source/Lib/TLibEncoder/TEncSbac.h

    r1039 r1084  
    130130  Void  xCodeDmm1WedgeIdx    ( UInt uiTabIdx, Int iNumBit );
    131131#endif
    132 #if !FIX_TICKET_76
    133 #if H_3D_DIM_SDC
    134   Void  xCodeSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment );
    135 #endif
    136 #endif
    137132#endif
    138133 
     
    155150  Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx );
    156151  Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    157 #if MTK_SINGLE_DEPTH_MODE_I0095
     152#if H_3D_SINGLE_DEPTH
    158153  Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx );
    159154#endif
     
    224219  ContextModel3DBuffer m_cCUSplitFlagSCModel;
    225220  ContextModel3DBuffer m_cCUSkipFlagSCModel;
    226 #if MTK_SINGLE_DEPTH_MODE_I0095
     221#if H_3D_SINGLE_DEPTH
    227222  ContextModel3DBuffer m_cCUSingleDepthFlagSCModel;
    228223  ContextModel3DBuffer m_cSingleDepthValueSCModel;
  • trunk/source/Lib/TLibEncoder/TEncSearch.cpp

    r1066 r1084  
    915915        }
    916916        m_pcEntropyCoder->encodeSkipFlag( pcCU, 0, true );
    917 #if MTK_SINGLE_DEPTH_MODE_I0095
     917#if H_3D_SINGLE_DEPTH
    918918        m_pcEntropyCoder->encodeSingleDepthMode(pcCU, 0, true );
    919919        if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
     
    921921        m_pcEntropyCoder->encodePredMode( pcCU, 0, true );
    922922      }
    923 #if MTK_SINGLE_DEPTH_MODE_I0095
     923#if H_3D_SINGLE_DEPTH
    924924      else
    925925      {
     
    927927      }
    928928#endif     
    929 #if MTK_SINGLE_DEPTH_MODE_I0095
     929#if H_3D_SINGLE_DEPTH
    930930      if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
    931931      {
     
    945945        }
    946946      }
    947 #if MTK_SINGLE_DEPTH_MODE_I0095
    948     }
    949 #endif
    950     }
    951 #if MTK_SINGLE_DEPTH_MODE_I0095
     947#if H_3D_SINGLE_DEPTH
     948    }
     949#endif
     950    }
     951#if H_3D_SINGLE_DEPTH
    952952      if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
    953953      {
     
    995995    }
    996996  }
    997 #if MTK_SINGLE_DEPTH_MODE_I0095
     997#if H_3D_SINGLE_DEPTH
    998998    }
    999999#endif
     
    18591859  dRDCost  += dSingleCost;
    18601860}
    1861 #if MTK_SINGLE_DEPTH_MODE_I0095
     1861#if H_3D_SINGLE_DEPTH
    18621862Void TEncSearch::xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel *DepthNeighbor )
    18631863{
     
    19701970      UInt dimType   = getDimType  ( uiLumaPredMode );
    19711971      UInt patternID = pcCU->getDmmWedgeTabIdx(dimType, uiAbsPartIdx);
    1972 #if SHARP_DMM1_I0110
    19731972      UInt uiBaseWidth = pcCU->isDMM1UpscaleMode(uiWidth) ? pcCU->getDMM1BasePatternWidth(uiWidth) : uiWidth;
    19741973      if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiBaseWidth]].size() && dimType == DMM1_IDX )
    1975 #else
    1976       if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiWidth]].size() && dimType == DMM1_IDX )
    1977 #endif
    1978       {
    1979 #if SHARP_DMM1_I0110
     1974      {
    19801975        if (g_aucConvertToBit[uiBaseWidth] == 2) // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used.
    1981 #else
    1982         if (g_aucConvertToBit[uiWidth] == 2) // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used.
    1983 #endif
    19841976        {                                   
    19851977          patternID = 1349;  // Split 32x32 to 16x16. 1349: Maximum DMM1 pattern number when block size is 16x16
     
    20432035    Int uiTabIdx = pcCU->getDmmWedgeTabIdx(DMM1_IDX, uiAbsPartIdx);
    20442036
    2045 #if SHARP_DMM1_I0110
    20462037    WedgeList* pacWedgeList  = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    2047 #else
    2048     WedgeList* pacWedgeList = &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    2049 #endif
    20502038    TComWedgelet* pcWedgelet = &(pacWedgeList->at( uiTabIdx ));
    20512039
    20522040    uiNumSegments = 2;
    2053 #if SHARP_DMM1_I0110
    20542041    pbMask       = pcCU->isDMM1UpscaleMode( uiWidth ) ? pcWedgelet->getScaledPattern( uiWidth ) : pcWedgelet->getPattern();
    20552042    uiMaskStride = pcCU->isDMM1UpscaleMode( uiWidth ) ? uiWidth : pcWedgelet->getStride();
    2056 #else
    2057     pbMask = pcWedgelet->getPattern();
    2058     uiMaskStride = pcWedgelet->getStride();
    2059 #endif
    20602043  }
    20612044  if( getDimType( uiLumaPredMode ) == DMM4_IDX )
     
    28782861  pcCU->setChromIntraDirSubParts( uiBestMode, 0, pcCU->getDepth( 0 ) );
    28792862}
    2880 #if MTK_SINGLE_DEPTH_MODE_I0095
     2863#if H_3D_SINGLE_DEPTH
    28812864Void
    28822865TEncSearch::estIntraPredSingleDepth( TComDataCU* pcCU,
     
    29002883  Pel DepthNeighbours[5];
    29012884  //construction of depth candidates
    2902   for( Int i = 0; (i < 5)  && (index<MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE) ; i++ )
     2885  for( Int i = 0; (i < 5)  && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
    29032886  {
    29042887    if(!pcCU->getNeighDepth (0, 0, &testDepth, i))
     
    29832966                            UInt&       ruiDistC,
    29842967                            Bool        bLumaOnly
    2985 #if HHI_DMM4_ENC_I0066
     2968#if H_3D_DIM
    29862969                          , Bool        bOnlyIVP
    29872970#endif
     
    30323015    Int numModesForFullRD = g_aucIntraModeNumFast[ uiWidthBit ];
    30333016   
    3034 #if HHI_DMM4_ENC_I0066
     3017#if H_3D_DIM
    30353018    if( bOnlyIVP )
    30363019    {
     
    30803063        UInt   iModeBits = xModeBitsIntra( pcCU, uiMode, uiPU, uiPartOffset, uiDepth, uiInitTrDepth );
    30813064#if H_3D_VSO // M35
    3082 #if H_3D_VSO_FIX // This fix should be enabled after verification
    30833065        Double dLambda;
    30843066        if ( m_pcRdCost->getUseLambdaScaleVSO() )
     
    30923074
    30933075        Double cost      = (Double)uiSad + (Double)iModeBits * dLambda;
    3094 #else
    3095         Double cost      = (Double)uiSad + (Double)iModeBits * m_pcRdCost->getSqrtLambda();
    3096 #endif
    30973076#else
    30983077        Double cost      = (Double)uiSad + (Double)iModeBits * m_pcRdCost->getSqrtLambda();
     
    31353114      }
    31363115    }
    3137 #if HHI_DMM4_ENC_I0066
     3116#if H_3D_DIM
    31383117    }
    31393118#endif
     
    31433122    if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight )
    31443123    {
    3145 #if HHI_DMM4_ENC_I0066
    3146 #if SEPARATE_FLAG_I0085
    31473124      if( bOnlyIVP && m_pcEncCfg->getUseIVP() )
    3148 #else
    3149       if( bOnlyIVP )
    3150 #endif
    31513125      {
    31523126        TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight );
     
    31583132        pcCU->setDimDeltaDC( DMM4_IDX, 1, uiPartOffset, deltaDC2 );
    31593133
    3160 #if HS_DMM_SIGNALLING_I0120
    31613134        uiRdModeList[ numModesForFullRD++ ] = (DMM4_IDX+DIM_OFFSET);
    3162 #else
    3163         uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX  +DIM_OFFSET);
    3164         if( deltaDC1 != 0 || deltaDC2 != 0 )
    3165           uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX+1+DIM_OFFSET);
    3166 #endif
    31673135        dmm4Segmentation->destroy(); delete dmm4Segmentation;
    31683136      }
    31693137      else
    31703138      {
    3171 #endif
    31723139#if H_3D_FAST_DEPTH_INTRA
    31733140      Int  threshold    = max(((pcCU->getQP(0))>>3)-1,3);
     
    31773144
    31783145#if H_3D_DIM_DMM
    3179 #if SEPARATE_FLAG_I0085
    31803146      if( ( m_pcEncCfg->getUseDMM() || m_pcEncCfg->getUseIVP() )
    3181 #else
    3182       if( m_pcEncCfg->getUseDMM()
    3183 #endif
    31843147#if H_3D_FAST_DEPTH_INTRA
    31853148         && (uiRdModeList[0] != PLANAR_IDX || varCU >= varThreshold)
     
    31873150        )
    31883151      {
    3189 #if SEPARATE_FLAG_I0085
    31903152        UInt uiStart, uiEnd;
    31913153        if( m_pcEncCfg->getUseDMM() &&  m_pcEncCfg->getUseIVP() )
     
    32103172        }
    32113173        for( UInt dmmType = uiStart; dmmType < uiEnd; dmmType++ )
    3212 #else
    3213         for( UInt dmmType = 0; dmmType < DMM_NUM_TYPE; dmmType++ )
    3214 #endif
    32153174        {
    32163175#if H_3D_FCO
    32173176            TComPic* picTexture  = pcCU->getSlice()->getIvPic(false, pcCU->getSlice()->getViewIndex() );
    3218 #if LGE_FCO_I0116
     3177#if H_3D_FCO
    32193178            if ( !picTexture->getReconMark() && (DMM4_IDX == dmmType ) )
    32203179#else
     
    32343193              xSearchDmm1Wedge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight, uiTabIdx );
    32353194              pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dmmType,  uiPartOffset, uiDepth + uiInitTrDepth );
    3236 #if SHARP_DMM1_I0110
    32373195              biSegmentation = pcCU->isDMM1UpscaleMode( uiWidth ) ?
    32383196                  &(g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])][uiTabIdx]) : &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);
    3239 #else
    3240               biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);
    3241 #endif
    32423197            } break;
    32433198
     
    32543209          if( biSegmentation )
    32553210          {
    3256 #if SHARP_DMM1_I0110
    32573211            if( dmmType == DMM1_IDX && pcCU->isDMM1UpscaleMode( uiWidth ) ){
    32583212                xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getScaledPattern(uiWidth), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 );
     
    32623216                xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getPattern(), biSegmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 );
    32633217            }
    3264 #else
    3265             xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getPattern(), biSegmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 );
    3266 #endif
    32673218            pcCU->setDimDeltaDC( dmmType, 0, uiPartOffset, deltaDC1 );
    32683219            pcCU->setDimDeltaDC( dmmType, 1, uiPartOffset, deltaDC2 );
    32693220
    3270 #if HS_DMM_SIGNALLING_I0120
    32713221            uiRdModeList[ numModesForFullRD++ ] = (dmmType  +DIM_OFFSET);
    3272 #else
    3273             uiRdModeList[ numModesForFullRD++ ] = (2*dmmType  +DIM_OFFSET);
    3274 #if HHI_DMM4_ENC_I0066
    3275             if( deltaDC1 != 0 || deltaDC2 != 0 )
    3276 #endif
    3277             uiRdModeList[ numModesForFullRD++ ] = (2*dmmType+1+DIM_OFFSET);
    3278 #endif
    3279 
    32803222            if( DMM4_IDX == dmmType ) { biSegmentation->destroy(); delete biSegmentation; }
    32813223          }
    32823224        }
    32833225      }
    3284 #if HHI_DMM4_ENC_I0066
     3226#if H_3D_DIM
    32853227      }
    32863228#endif
     
    32953237   
    32963238    UInt    uiBestPUMode  = 0;
    3297 #if SCU_HS_FAST_INTRA_SDC_I0123
     3239#if H_3D_FAST_INTRA_SDC
    32983240    UInt    uiBestPUModeConv  = 0;
    32993241    UInt    uiSecondBestPUModeConv  = 0;
     
    33093251    Double  dBestPUCost   = MAX_DOUBLE;
    33103252
    3311 #if SCU_HS_FAST_INTRA_SDC_I0123
     3253#if H_3D_FAST_INTRA_SDC
    33123254    Double  dBestPUCostConv   = MAX_DOUBLE;
    33133255    UInt varCU      = m_pcRdCost->calcVAR(piOrg, uiStride, uiWidth,uiHeight,pcCU->getDepth(0));
     
    33193261    Pel     apBestDCOffsets[2] = {0,0};
    33203262#endif
    3321 #if SCU_HS_FAST_INTRA_SDC_I0123
     3263#if H_3D_FAST_INTRA_SDC
    33223264    for( UInt uiMode = 0; uiMode < numModesForFullRD + rdSDC; uiMode++ )
    33233265#else
     
    33263268    {
    33273269      // set luma prediction mode
    3328 #if !SCU_HS_FAST_INTRA_SDC_I0123
     3270#if !H_3D_FAST_INTRA_SDC
    33293271     UInt uiOrgMode = uiRdModeList[uiMode]; 
    33303272#endif
    33313273     
    3332 #if SCU_HS_FAST_INTRA_SDC_I0123
     3274#if H_3D_FAST_INTRA_SDC
    33333275      UInt uiOrgMode;
    33343276      if (uiMode < numModesForFullRD)
     
    33563298     
    33573299#if H_3D_DIM_SDC
    3358 #if SCU_HS_FAST_INTRA_SDC_I0123
     3300#if H_3D_FAST_INTRA_SDC
    33593301      Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) && uiMode >= numModesForFullRD);
    33603302#else
     
    33643306      for( UInt uiSDC=0; uiSDC<=(bTestSDC?1:0); uiSDC++ )
    33653307      {
    3366 #if SCU_HS_FAST_INTRA_SDC_I0123
     3308#if H_3D_FAST_INTRA_SDC
    33673309        if (!uiSDC && uiMode >= numModesForFullRD) continue;
    33683310#endif
    33693311        pcCU->setSDCFlagSubParts( (uiSDC != 0), uiPartOffset, uiDepth + uiInitTrDepth );
    3370 #if FAST_SDC_OFFSET_DECISION_I0084
    33713312        Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE};
    33723313        for( Int iOffset = 1; iOffset <= 5; iOffset++ )
    3373 #else
    3374         for( Int iSDCDeltaResi = -2; iSDCDeltaResi <= 2; iSDCDeltaResi++ )
    3375 #endif
    3376         {
    3377 #if FAST_SDC_OFFSET_DECISION_I0084
     3314        {
    33783315          Int iSDCDeltaResi = 0;
    33793316          if(iOffset % 2 == 0)
     
    33853322            iSDCDeltaResi = -1 * (iOffset >> 1);
    33863323          }
    3387 #endif
    33883324          if( ( uiSDC == 0 ) && iSDCDeltaResi != 0 )
    33893325          {
    33903326            continue;
    33913327          }
    3392 #if FAST_SDC_OFFSET_DECISION_I0084
    33933328          if( iOffset > 3)
    33943329          {
     
    34073342          }
    34083343#endif
    3409 #endif
    34103344     
    34113345#if H_3D_DIM_ENC || H_3D_DIM_SDC
     
    34523386          // start encoding with SDC
    34533387          xIntraCodingSDC(pcCU, uiPartOffset, pcOrgYuv, pcPredYuv, uiPUDistY, dPUCost, ( testZeroResi != 0 ), iSDCDeltaResi );
    3454 #if FAST_SDC_OFFSET_DECISION_I0084
    34553388          if ( testZeroResi == 0 && iOffset <= 3 )
    34563389          {
    34573390            dOffsetCost [iOffset -1] = dPUCost;
    34583391          }
    3459 #endif
    34603392        }
    34613393        else
     
    34653397#if H_3D_DIM_ENC
    34663398          xRecurIntraCodingQT( pcCU, uiInitTrDepth, uiPartOffset, bLumaOnly, pcOrgYuv, pcPredYuv, pcResiYuv, uiPUDistY, uiPUDistC, true, dPUCost, (testZeroResi != 0) );
    3467 #if SCU_HS_FAST_INTRA_SDC_I0123   
     3399#if H_3D_FAST_INTRA_SDC   
    34683400      if( dPUCost < dBestPUCostConv )
    34693401      {
     
    40173949#if H_3D_VSP
    40183950                                 , Int* vspFlag
    4019 #if !FIX_TICKET_79
    4020                                  , InheritedVSPDisInfo*  inheritedVSPDisInfo
    4021 #endif
    40223951#endif
    40233952#if H_3D_SPIVMP
     
    40794008      pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand);
    40804009      pcCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours
    4081 #if H_3D_VSP && !FIX_TICKET_79
    4082                                         , inheritedVSPDisInfo
    4083 #endif
    40844010#if H_3D_SPIVMP
    40854011        , pcMvFieldSP, puhInterDirSP
     
    41094035    pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand);
    41104036    pcCU->xGetInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours
    4111 #if H_3D_VSP && !FIX_TICKET_79
    4112                                       , inheritedVSPDisInfo
    4113 #endif
    41144037#if H_3D_SPIVMP
    41154038      , pcMvFieldSP, puhInterDirSP
     
    41324055#endif
    41334056  }
    4134 #if H_3D_VSP && !FIX_TICKET_75
    4135   xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours,vspFlag, numValidMergeCand );
    4136 #else
    41374057  xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
    4138 #endif
    41394058
    41404059#if H_3D_DBBP
     
    41644083#if H_3D_VSP
    41654084    pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    4166 #if !FIX_TICKET_79
    4167     pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    4168 #endif
    41694085#endif
    41704086
     
    42664182 * \returns Void
    42674183 */
    4268 #if H_3D_VSP && !FIX_TICKET_75
    4269 Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int* vspFlag, Int numValidMergeCand )
    4270 #else
    42714184Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int numValidMergeCand )
    4272 #endif
    42734185{
    42744186  if ( pcCU->isBipredRestriction(puIdx) )
     
    42764188    for( UInt mergeCand = 0; mergeCand < numValidMergeCand; ++mergeCand )
    42774189    {
    4278 #if H_3D_VSP && !FIX_TICKET_75
    4279       if ( (interDirNeighbours[mergeCand] == 3) && (vspFlag[mergeCand] == false) )
    4280 #else
    42814190      if ( interDirNeighbours[mergeCand] == 3 )
    4282 #endif
    42834191      {
    42844192        interDirNeighbours[mergeCand] = 1;
     
    49024810      Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    49034811      memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    4904 #if !FIX_TICKET_79
    4905       InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    4906 #endif
    49074812      UInt uiAbsPartIdx = 0;
    49084813      Int iWidth = 0;
     
    49224827#if H_3D_VSP
    49234828                      , vspFlag
    4924 #if !FIX_TICKET_79
    4925                       , inheritedVSPDisInfo
    4926 #endif
    49274829#endif
    49284830#if H_3D_SPIVMP
     
    49384840#if H_3D_VSP
    49394841        pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    4940 #if !FIX_TICKET_79
    4941         pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    4942 #endif
    49434842#endif
    49444843#if H_3D_DDD
     
    64306329    if( bCodeChroma )
    64316330    {
     6331      m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     6332      m_pcEntropyCoder->resetBits();
    64326333        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrMode );
    64336334      m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrU, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_U );
    6434       uiSingleBitsU = m_pcEntropyCoder->getNumberOfWrittenBits() - uiSingleBitsY;
     6335      uiSingleBitsU = m_pcEntropyCoder->getNumberOfWrittenBits();
    64356336     
     6337      m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     6338      m_pcEntropyCoder->resetBits();
    64366339        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrMode );
    64376340      m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrV, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_V );
    6438       uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits() - ( uiSingleBitsY + uiSingleBitsU );
     6341      uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits();
    64396342    }
    64406343   
     
    65176420        const Double singleCostY = m_pcRdCost->calcRdCost( uiSingleBitsY, uiNonzeroDistY );
    65186421#endif
     6422        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     6423
    65196424        m_pcEntropyCoder->resetBits();
    65206425        m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_LUMA,     uiTrMode );
     
    65506455    else if( checkTransformSkipY )
    65516456    {
     6457      m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    65526458      m_pcEntropyCoder->resetBits();
    65536459      m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_LUMA, uiTrMode );
     
    66066512        {
    66076513          const Double dSingleCostU = m_pcRdCost->calcRdCost( uiSingleBitsU, uiNonzeroDistU );
     6514          m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    66086515          m_pcEntropyCoder->resetBits();
    66096516          m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_U,     uiTrMode );
     
    66316538      else if( checkTransformSkipUV )
    66326539      {
     6540        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    66336541        m_pcEntropyCoder->resetBits();
    66346542        m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_U, uiTrMode );
     
    66756583        {
    66766584          const Double dSingleCostV = m_pcRdCost->calcRdCost( uiSingleBitsV, uiNonzeroDistV );
     6585          m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    66776586          m_pcEntropyCoder->resetBits();
    66786587          m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_V,     uiTrMode );
     
    67006609      else if( checkTransformSkipUV )
    67016610      {
     6611        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    67026612        m_pcEntropyCoder->resetBits();
    67036613        m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_V, uiTrMode );
     
    68966806      pcCU->setCbfSubParts( uiAbsSumTransformSkipV ? uiSetCbf : 0, TEXT_CHROMA_V, uiAbsPartIdx, pcCU->getDepth(0)+uiTrModeC );
    68976807
    6898       m_pcEntropyCoder->resetBits();
    68996808      uiSingleBitsU = 0;
    69006809      uiSingleBitsV = 0;
     
    69026811      if( uiAbsSumTransformSkipU )
    69036812      {
     6813        m_pcEntropyCoder->resetBits();
    69046814        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrMode );
    69056815        m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrU, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_U );
     
    69446854      if( uiAbsSumTransformSkipV )
    69456855      {
     6856        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     6857        m_pcEntropyCoder->resetBits();
    69466858        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrMode );
    69476859        m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrV, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_V );
    6948         uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits() - uiSingleBitsU;
     6860        uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits();
    69496861
    69506862        curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr();
     
    73887300    }
    73897301    m_pcEntropyCoder->encodeSkipFlag ( pcCU, 0, true );
    7390 #if MTK_SINGLE_DEPTH_MODE_I0095
     7302#if H_3D_SINGLE_DEPTH
    73917303    m_pcEntropyCoder->encodeSingleDepthMode ( pcCU, 0, true );
    73927304#endif
     
    78457757
    78467758  Pel refDC1 = 0; Pel refDC2 = 0;
    7847 #if SHARP_DMM1_I0110
    78487759  WedgeList*     pacWedgeList     = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    78497760  WedgeNodeList* pacWedgeNodeList = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeNodeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])];
    7850 #else
    7851   WedgeList*     pacWedgeList     = &g_dmmWedgeLists    [(g_aucConvertToBit[uiWidth])];
    7852   WedgeNodeList* pacWedgeNodeList = &g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])];
    7853 #endif
    78547761
    78557762  // coarse wedge search
     
    78597766  {
    78607767    TComWedgelet* pcWedgelet = &(pacWedgeList->at(pacWedgeNodeList->at(uiNodeId).getPatternIdx()));
    7861 #if SHARP_DMM1_I0110
    78627768    Bool *pbPattern = pcCU->isDMM1UpscaleMode(uiWidth) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern();
    78637769    UInt uiStride   = pcCU->isDMM1UpscaleMode(uiWidth) ? uiWidth : pcWedgelet->getStride();
    78647770    xCalcBiSegDCs  ( piRef,  uiRefStride,  pbPattern, uiStride, refDC1, refDC2 );
    78657771    xAssignBiSegDCs( piPred, uiPredStride, pbPattern, uiStride, refDC1, refDC2 );
    7866 #else
    7867     xCalcBiSegDCs  ( piRef,  uiRefStride,  pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );
    7868     xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );
    7869 #endif
    78707772
    78717773    Dist uiActDist = RDO_DIST_MAX;
     
    79037805    {
    79047806      TComWedgelet* pcWedgelet = &(pacWedgeList->at(pacWedgeNodeList->at(uiBestNodeId).getRefineIdx( uiRefId )));
    7905 #if SHARP_DMM1_I0110
    79067807      Bool *pbPattern = pcCU->isDMM1UpscaleMode(uiWidth) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern();
    79077808      UInt uiStride   = pcCU->isDMM1UpscaleMode(uiWidth) ? uiWidth : pcWedgelet->getStride();
    79087809      xCalcBiSegDCs  ( piRef,  uiRefStride,  pbPattern, uiStride, refDC1, refDC2 );
    79097810      xAssignBiSegDCs( piPred, uiPredStride, pbPattern, uiStride, refDC1, refDC2 );
    7910 #else
    7911       xCalcBiSegDCs  ( piRef,  uiRefStride,  pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );
    7912       xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );
    7913 #endif
    79147811      Dist uiActDist = RDO_DIST_MAX;
    79157812#if H_3D_VSO
  • trunk/source/Lib/TLibEncoder/TEncSearch.h

    r1039 r1084  
    181181                                  UInt&       ruiDistC,
    182182                                  Bool        bLumaOnly
    183 #if HHI_DMM4_ENC_I0066
     183#if H_3D_DIM
    184184                                , Bool        bOnlyIVP
    185185#endif
     
    191191                                  TComYuv*    pcRecoYuv,
    192192                                  UInt        uiPreCalcDistC );
    193 #if MTK_SINGLE_DEPTH_MODE_I0095
     193#if H_3D_SINGLE_DEPTH
    194194  Void  estIntraPredSingleDepth  ( TComDataCU* pcCU,
    195195                                  TComYuv*    pcOrgYuv,
     
    354354                                    UInt         uiAbsPartIdx,
    355355                                    UInt         stateU0V1Both2 );
    356 #if MTK_SINGLE_DEPTH_MODE_I0095
     356#if H_3D_SINGLE_DEPTH
    357357  Void xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel * DepthNeighbor );
    358358#endif
     
    429429#if H_3D_VSP
    430430                                  , Int* vspFlag
    431 #if !FIX_TICKET_79
    432                                   , InheritedVSPDisInfo*  inheritedVSPDisInfo
    433 #endif
    434431#endif
    435432#if H_3D_SPIVMP
     
    443440                                    TComMvField*    mvFieldNeighbours,
    444441                                    UChar*          interDirNeighbours,
    445 #if H_3D_VSP && !FIX_TICKET_75
    446                                     Int* vspFlag,
    447 #endif
    448442                                    Int             numValidMergeCand );
    449443
  • trunk/source/Lib/TLibEncoder/TEncTop.cpp

    r1066 r1084  
    7272  ContextModel::buildNextStateTable();
    7373#endif
    74 #if H_MV_HLS10_GEN_FIX
    7574#if H_MV
    7675  m_iNumSubstreams         = 0;
    77 #endif
    7876#endif
    7977
     
    8987  m_ivPicLists = NULL;
    9088#endif
    91 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     89#if H_3D_IC
    9290  m_aICEnableCandidate = NULL;
    9391  m_aICEnableNum = NULL;
     
    236234      for (Int iCIIdx = 0; iCIIdx < CI_NUM; iCIIdx ++ )
    237235      {
    238 #if H_MV_HLS10_GEN_FIX
    239236#if H_MV
    240237        xDelete( false, m_pppcRDSbacCoder, iDepth, iCIIdx);
     
    244241        delete m_pppcBinCoderCABAC[iDepth][iCIIdx];
    245242#endif
    246 #endif
    247243      }
    248244    }
     
    250246    for ( iDepth = 0; iDepth < g_uiMaxCUDepth+1; iDepth++ )
    251247    {
    252 #if H_MV_HLS10_GEN_FIX
    253248#if H_MV
    254249      xDelete( true, m_pppcRDSbacCoder  , iDepth);
     
    258253      delete [] m_pppcBinCoderCABAC[iDepth];
    259254#endif
    260 #endif
    261     }
    262 
    263 #if H_MV_HLS10_GEN_FIX
     255    }
     256
    264257#if H_MV
    265258     xDelete( true, m_pppcRDSbacCoder  );
     
    269262    delete [] m_pppcBinCoderCABAC;
    270263#endif
    271 #endif
    272264    for ( UInt ui = 0; ui < m_iNumSubstreams; ui++ )
    273265    {
     
    276268        for (Int iCIIdx = 0; iCIIdx < CI_NUM; iCIIdx ++ )
    277269        {
    278 #if H_MV_HLS10_GEN_FIX
    279270#if H_MV
    280271          xDelete(false, m_ppppcRDSbacCoders  ,ui, iDepth, iCIIdx);
     
    284275          delete m_ppppcBinCodersCABAC[ui][iDepth][iCIIdx];
    285276#endif
    286 #endif
    287277        }
    288278      }
     
    290280      for ( iDepth = 0; iDepth < g_uiMaxCUDepth+1; iDepth++ )
    291281      {
    292 #if H_MV_HLS10_GEN_FIX
    293282#if H_MV
    294283        xDelete(true, m_ppppcRDSbacCoders  ,ui, iDepth);
     
    298287        delete [] m_ppppcBinCodersCABAC[ui][iDepth];
    299288#endif
    300 #endif
    301       }
    302 
    303 
    304 #if H_MV_HLS10_GEN_FIX
     289      }
     290
     291
    305292#if H_MV
    306293      xDelete(true, m_ppppcRDSbacCoders,   ui);
     
    310297      delete[] m_ppppcBinCodersCABAC[ui];
    311298#endif
    312 #endif
    313     }
    314 #if H_MV_HLS10_GEN_FIX
     299    }
    315300#if H_MV
    316301    xDelete(true, m_ppppcRDSbacCoders    ) ;
     
    332317  delete[] m_pcRdCosts;
    333318#endif
    334 #endif
    335319
    336320#if !H_MV
     
    370354
    371355  xInitPPSforTiles();
    372 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     356#if H_3D_IC
    373357  m_aICEnableCandidate = new Int[ 10 ];
    374358  m_aICEnableNum = new Int[ 10 ];
     
    769753#if H_MV 
    770754  m_cSPS.setUpdateRepFormatFlag           ( false );   
    771 #if H_MV_HLS10_MULTILAYERSPS 
    772755  Bool multiLayerExtensionFlag  = ( getLayerId() > 0 ) && ( m_cVPS->getNumRefLayers( getLayerId() ) > 0 );
    773756 
     
    778761    m_cSPS.setSpsScalingListRefLayerId( m_cVPS->getIdRefLayer( getLayerId(), 0 ) );
    779762  }
    780 #else
    781   m_cSPS.setSpsInferScalingListFlag       ( m_layerId > 0 && m_cVPS->getInDirectDependencyFlag( getLayerIdInVps(), 0 ) );
    782   m_cSPS.setSpsScalingListRefLayerId      ( 0              );
    783 #endif
    784763  m_cSPS.setSpsExtensionPresentFlag       ( true );
    785764  m_cSPS.setSpsMultilayerExtensionFlag    ( true );
     
    829808  m_cSPS.setUseAMP ( m_useAMP );
    830809
    831 #if !MTK_I0099_VPS_EX2
    832 #if H_3D_QTLPC
    833   m_cSPS.setUseQTL( m_bUseQTL );
    834   m_cSPS.setUsePC ( m_bUsePC  );
    835 #endif
    836 #endif
    837 
    838810  for (i = g_uiMaxCUDepth-g_uiAddCUDepth; i < g_uiMaxCUDepth; i++ )
    839811  {
     
    863835    for( Int is = 0; is < targetDecLayerIdList.size(); is++  )
    864836    {
    865 #if H_MV_HLS10_ADD_LAYERSETS
    866837      if ( m_cVPS->getNecessaryLayerFlag( ols, is ) )
    867838      {     
    868839        m_cSPS.inferSpsMaxDecPicBufferingMinus1( m_cVPS, ols, targetDecLayerIdList[is], true );       
    869840      }
    870 #else
    871       m_cSPS.inferSpsMaxDecPicBufferingMinus1( m_cVPS, ols, targetDecLayerIdList[is], true );       
    872 #endif
    873     }
    874   }
    875 #if !H_MV_HLS10_ADD_LAYERSETS
    876   m_cVPS->inferDbpSizeLayerSetZero( &m_cSPS, true );
    877 #endif
     841    }
     842  }
    878843#endif
    879844  m_cSPS.setPCMBitDepthLuma (g_uiPCMBitDepthLuma);
     
    889854  {
    890855    TComVUI* pcVUI = m_cSPS.getVuiParameters();
    891     pcVUI->setAspectRatioInfoPresentFlag(getAspectRatioIdc() != -1);
     856    pcVUI->setAspectRatioInfoPresentFlag(getAspectRatioInfoPresentFlag());
    892857    pcVUI->setAspectRatioIdc(getAspectRatioIdc());
    893858    pcVUI->setSarWidth(getSarWidth());
     
    13231288Void  TEncTop::xInitPPSforTiles()
    13241289{
    1325   m_cPPS.setUniformSpacingFlag( m_iUniformSpacingIdr );
    1326   m_cPPS.setNumColumnsMinus1( m_iNumColumnsMinus1 );
    1327   m_cPPS.setNumRowsMinus1( m_iNumRowsMinus1 );
    1328   if( m_iUniformSpacingIdr == 0 )
    1329   {
    1330     m_cPPS.setColumnWidth( m_puiColumnWidth );
    1331     m_cPPS.setRowHeight( m_puiRowHeight );
     1290  m_cPPS.setTileUniformSpacingFlag( m_tileUniformSpacingFlag );
     1291  m_cPPS.setNumTileColumnsMinus1( m_iNumColumnsMinus1 );
     1292  m_cPPS.setNumTileRowsMinus1( m_iNumRowsMinus1 );
     1293  if( !m_tileUniformSpacingFlag )
     1294  {
     1295    m_cPPS.setTileColumnWidth( m_tileColumnWidth );
     1296    m_cPPS.setTileRowHeight( m_tileRowHeight );
    13321297  }
    13331298  m_cPPS.setLoopFilterAcrossTilesEnabledFlag( m_loopFilterAcrossTilesEnabledFlag );
    13341299
    13351300  // # substreams is "per tile" when tiles are independent.
    1336   if (m_iWaveFrontSynchro
    1337     )
     1301  if (m_iWaveFrontSynchro )
    13381302  {
    13391303    m_cPPS.setNumSubstreams(m_iWaveFrontSubstreams * (m_iNumColumnsMinus1+1));
     
    13611325  }
    13621326
    1363   if( m_iNumColumnsMinus1 && m_iUniformSpacingIdr==0 )
     1327  if( m_iNumColumnsMinus1 && !m_tileUniformSpacingFlag )
    13641328  {
    13651329    for(Int i=0; i<m_iNumColumnsMinus1; i++)
    13661330    {
    1367       uiCummulativeColumnWidth += m_puiColumnWidth[i];
     1331      uiCummulativeColumnWidth += m_tileColumnWidth[i];
    13681332    }
    13691333
     
    13881352  }
    13891353
    1390   if( m_iNumRowsMinus1 && m_iUniformSpacingIdr==0 )
     1354  if( m_iNumRowsMinus1 && !m_tileUniformSpacingFlag )
    13911355  {
    13921356    for(Int i=0; i<m_iNumRowsMinus1; i++)
    1393       uiCummulativeRowHeight += m_puiRowHeight[i];
     1357      uiCummulativeRowHeight += m_tileRowHeight[i];
    13941358
    13951359    if( uiCummulativeRowHeight >= iHeightInCU )
  • trunk/source/Lib/TLibEncoder/TEncTop.h

    r1066 r1084  
    8080  TComPicLists*           m_ivPicLists;                   ///< access to picture lists of other layers
    8181#endif
    82 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     82#if H_3D_IC
    8383  Int *m_aICEnableCandidate;
    8484  Int *m_aICEnableNum;
     
    150150  Void  xInitPPSforTiles  ();
    151151  Void  xInitRPS          (Bool isFieldCoding);           ///< initialize PPS from encoder options
    152 #if H_MV_HLS10_GEN_FIX
    153152#if H_MV
    154153
     
    193192
    194193#endif
    195 #endif
    196194public:
    197195  TEncTop();
     
    209207  TComPicLists* getIvPicLists() { return m_ivPicLists; }
    210208#endif
    211 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    212   Int *getICEnableCandidate() { return m_aICEnableCandidate; }
    213   Int *getICEnableNum() { return m_aICEnableNum; }
     209#if H_3D_IC
     210  Int*      getICEnableCandidate() { return m_aICEnableCandidate; }
     211  Int*      getICEnableNum() { return m_aICEnableNum; }
    214212#endif
    215213  Void      deletePicBuffer ();
     
    272270  Void                    setIvPicLists         ( TComPicLists* picLists) { m_ivPicLists = picLists; }
    273271#endif
    274 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     272#if H_3D_IC
    275273  Void                    setICEnableCandidate         ( Int* ICEnableCandidate) { m_aICEnableCandidate = ICEnableCandidate; }
    276274  Void                    setICEnableNum         ( Int* ICEnableNum) { m_aICEnableNum = ICEnableNum; }
  • trunk/source/Lib/TLibVideoIO/TVideoIOYuv.cpp

    r872 r1084  
    470470  Bool retval = true;
    471471
     472  if ((width==0)||(height==0))
     473  {
     474    printf ("\nWarning: writing %d x %d luma sample output picture!", width, height);
     475  }
     476
    472477  if (m_bitDepthShiftY != 0 || m_bitDepthShiftC != 0)
    473478  {
     
    563568 
    564569  Bool retval = true;
     570 
     571  if ((width==0)||(height==0))
     572  {
     573    printf ("\nWarning: writing %d x %d luma sample output picture!", width, height);
     574  }
    565575 
    566576  if (m_bitDepthShiftY != 0 || m_bitDepthShiftC != 0)
Note: See TracChangeset for help on using the changeset viewer.