Changeset 765 in 3DVCSoftware


Ignore:
Timestamp:
12 Jan 2014, 02:46:46 (10 years ago)
Author:
tech
Message:

Cleanup part 2

Location:
branches/HTM-9.2-dev0/source
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncCfg.cpp

    r764 r765  
    515515  ("AdvMultiviewResPred",      m_uiUseAdvResPred,           (UInt)1, "Usage of Advanced Residual Prediction" )
    516516#endif
    517 #if MTK_SPIVMP_F0110
     517#if H_3D_SPIVMP
    518518  ("SubPULog2Size", m_iSubPULog2Size, (Int)3, "Sub-PU size index: 2^n")
    519519#endif
     
    525525  ("InterSDC",                 m_bDepthInterSDCFlag,        true, "Enable depth inter SDC")
    526526#endif
    527 #if SEC_MPI_ENABLING_MERGE_F0150
     527#if H_3D_IV_MERGE
    528528  ("MPI",                      m_bMPIFlag,        true, "Enable MPI")
    529529#endif
     
    780780#endif
    781781#if H_3D_IV_MERGE
    782 #if QC_DEPTH_IV_MRG_F0125 
    783782  ("IvMvPred",                        m_ivMvPredFlag            , std::vector<Bool>(2, true)            , "inter view motion prediction " )
    784 #else
    785   ("IvMvPred",                        m_ivMvPredFlag,           true            , "inter view motion prediction " ) 
    786 #endif
    787783#endif
    788784#if H_3D_NBDV_REF
     
    15371533  xConfirmPara( ( 0 != m_uiUseAdvResPred ) &&  ( 1 != m_uiUseAdvResPred ), "UseAdvResPred must be 0 or 1." );
    15381534#endif
    1539 #if MTK_SPIVMP_F0110
     1535#if H_3D_SPIVMP
    15401536  xConfirmPara( m_iSubPULog2Size < 2,                                        "SubPULog2Size must be 2 or greater.");
    15411537  xConfirmPara( m_iSubPULog2Size > 6,                                        "SubPULog2Size must be 6 or smaller.");
     
    24982494#endif
    24992495#if H_3D_IV_MERGE
    2500 #if QC_DEPTH_IV_MRG_F0125
    25012496  printf("IvMvPred:%d %d", m_ivMvPredFlag[0] ? 1 : 0, m_ivMvPredFlag[1] ? 1 : 0);
    2502 #else
    2503   printf("IvMvPred:%d ", m_ivMvPredFlag );
    2504 #endif
    2505 #if MTK_SPIVMP_F0110
     2497#if H_3D_SPIVMP
    25062498  printf(" SubPULog2Size:%d  " , m_iSubPULog2Size  );
    25072499#endif
     
    25302522  printf( "interSDC: %d ", m_bDepthInterSDCFlag ? 1 : 0 );
    25312523#endif
    2532 #if SEC_MPI_ENABLING_MERGE_F0150
     2524#if H_3D_IV_MERGE
    25332525  printf( "MPI: %d ", m_bMPIFlag ? 1 : 0 );
    25342526#endif
  • branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncCfg.h

    r764 r765  
    136136
    137137#if H_3D_IV_MERGE
    138 #if QC_DEPTH_IV_MRG_F0125
    139138  vector<Bool>           m_ivMvPredFlag;                      ///< Interview motion vector prediction
    140 #else
    141   Bool                   m_ivMvPredFlag;                      ///< Interview motion vector prediction
    142 #endif
    143 #if MTK_SPIVMP_F0110
     139#if H_3D_SPIVMP
    144140  Int                    m_iSubPULog2Size;                   
    145141#endif
     
    503499  Bool m_bDepthInterSDCFlag;                                ///< flag for inter SDC of depth map coding
    504500#endif
    505 #if SEC_MPI_ENABLING_MERGE_F0150
     501#if H_3D_IV_MERGE
    506502  Bool m_bMPIFlag;                                           ///< flag for MPI of depth map coding
    507503#endif
  • branches/HTM-9.2-dev0/source/App/TAppEncoder/TAppEncTop.cpp

    r764 r765  
    160160    //====== Camera Parameters =========
    161161    m_cTEncTop.setCameraParameters             ( &m_cCameraData );     
    162 #if QC_DEPTH_IV_MRG_F0125
    163162    m_cTEncTop.setCamParPrecision              ( m_cCameraData.getCamParsCodedPrecision  () );
    164163    m_cTEncTop.setCamParInSliceHeader          ( m_cCameraData.getVaryingCameraParameters() );
    165164    m_cTEncTop.setCodedScale                   ( m_cCameraData.getCodedScale             () );
    166165    m_cTEncTop.setCodedOffset                  ( m_cCameraData.getCodedOffset            () );
    167 #else
    168     m_cTEncTop.setCamParPrecision              ( isDepth ? false : m_cCameraData.getCamParsCodedPrecision  () );
    169     m_cTEncTop.setCamParInSliceHeader          ( isDepth ? 0     : m_cCameraData.getVaryingCameraParameters() );
    170     m_cTEncTop.setCodedScale                   ( isDepth ? 0     : m_cCameraData.getCodedScale             () );
    171     m_cTEncTop.setCodedOffset                  ( isDepth ? 0     : m_cCameraData.getCodedOffset            () );
    172 #endif
    173166#if H_3D_VSO
    174167    //====== VSO =========
     
    194187    m_cTEncTop.setARPStepNum                   ( ( isDepth || 0==layerIdInVps ) ? 1 : H_3D_ARP_WFNR     );
    195188#endif
    196 #if MTK_SPIVMP_F0110
     189#if H_3D_SPIVMP
    197190    m_cTEncTop.setSubPULog2Size                 (( isDepth || 0==layerIdInVps ) ? 0 : m_iSubPULog2Size   );
    198191#endif
     
    214207    m_cTEncTop.setInterSDCEnable               ( isDepth ? m_bDepthInterSDCFlag    : false );
    215208#endif
    216 #if SEC_MPI_ENABLING_MERGE_F0150
     209#if H_3D_IV_MERGE
    217210    m_cTEncTop.setUseMPI               ( isDepth ? m_bMPIFlag    : false );
    218211#endif
     
    19741967    vps.setARPStepNum      ( layer, ( isDepth || isLayerZero ) ? 1 : H_3D_ARP_WFNR     );
    19751968#endif 
    1976 #if MTK_SPIVMP_F0110
     1969#if H_3D_SPIVMP
    19771970    if( isDepth )
    19781971    {
    1979 #if MTK_F0110_FIX
    19801972      vps.setSubPULog2Size         ( layer, (layer != 1) ? 6: 0 );
    1981 #else
    1982       vps.setSubPULog2Size         ( layer, (layer != 1) ? m_iSubPULog2Size: 0 );
    1983 #endif
    19841973    }
    19851974    else
     
    20071996
    20081997#if H_3D_IV_MERGE
    2009 #if QC_DEPTH_IV_MRG_F0125
    20101998    if( isDepth )
    20111999    {
     
    20162004      vps.setIvMvPredFlag         ( layer, !isLayerZero && m_ivMvPredFlag[0] );
    20172005    }
    2018 #else
    2019     vps.setIvMvPredFlag         ( layer, !isLayerZero && !isDepth && m_ivMvPredFlag );
    2020 #endif
    20212006#endif
    20222007#if H_3D_NBDV_REF
     
    20292014    vps.setInterSDCFlag( layer, !isLayerZero && isDepth && m_bDepthInterSDCFlag );
    20302015#endif
    2031 #if SEC_MPI_ENABLING_MERGE_F0150
     2016#if H_3D_IV_MERGE
    20322017    vps.setMPIFlag( layer, !isLayerZero && isDepth && m_bMPIFlag );
    20332018#endif
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/ContextTables.h

    r764 r765  
    367367INIT_ARPW[3][NUM_ARPW_CTX] =
    368368{
    369 #if LGE_ARP_CTX_F0161
    370369    { 162, 153, 154, 162 },
    371370    { 162, 153, 154, 162 },
    372371    { 162, 153, 154, 162 },
    373 #else
    374   { 154, 154, 154, 154 },
    375   { 154, 154, 154, 154 },
    376   { 154, 154, 154, 154 },
    377 #endif
    378372};
    379373#endif
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp

    r764 r765  
    136136  m_piVSPFlag            = NULL;
    137137#endif
    138 #if MTK_SPIVMP_F0110
     138#if H_3D_SPIVMP
    139139  m_pbSPIVMPFlag         = NULL;
    140140#endif
     
    190190    m_piVSPFlag          = (Char*  )xMalloc(Char,   uiNumPartition);
    191191#endif
    192 #if MTK_SPIVMP_F0110
     192#if H_3D_SPIVMP
    193193    m_pbSPIVMPFlag       = (Bool*  )xMalloc(Bool,   uiNumPartition);
    194194#endif
     
    342342    if ( m_piVSPFlag          ) { xFree(m_piVSPFlag);           m_piVSPFlag         = NULL; }
    343343#endif
    344 #if MTK_SPIVMP_F0110
     344#if H_3D_SPIVMP
    345345    if ( m_pbSPIVMPFlag       ) { xFree(m_pbSPIVMPFlag);           m_pbSPIVMPFlag         = NULL; }
    346346#endif
     
    541541    m_piVSPFlag[ui] = pcFrom->m_piVSPFlag[ui];
    542542#endif
    543 #if MTK_SPIVMP_F0110
     543#if H_3D_SPIVMP
    544544    m_pbSPIVMPFlag[ui] = pcFrom->m_pbSPIVMPFlag[ui];
    545545#endif
     
    586586    memset( m_piVSPFlag         + firstElement, 0,                        numElements * sizeof( *m_piVSPFlag ) );
    587587#endif
    588 #if MTK_SPIVMP_F0110
     588#if H_3D_SPIVMP
    589589    memset( m_pbSPIVMPFlag      + firstElement, 0,                        numElements * sizeof( *m_pbSPIVMPFlag ) );
    590590#endif
     
    759759      m_piVSPFlag[ui] = 0;
    760760#endif
    761 #if MTK_SPIVMP_F0110
     761#if H_3D_SPIVMP
    762762      m_pbSPIVMPFlag[ui] = 0;
    763763#endif
     
    859859  memset( m_piVSPFlag,          0, sizeof( Char  ) * m_uiNumPartition );
    860860#endif
    861 #if MTK_SPIVMP_F0110
     861#if H_3D_SPIVMP
    862862  memset( m_pbSPIVMPFlag,       0, sizeof( Bool  ) * m_uiNumPartition );
    863863#endif
     
    948948      m_pDvInfo[ ui ] = pcCU->m_pDvInfo[uiPartOffset+ui];
    949949#endif
    950 #if MTK_SPIVMP_F0110
     950#if H_3D_SPIVMP
    951951      m_pbSPIVMPFlag[ui]=pcCU->m_pbSPIVMPFlag[uiPartOffset+ui];
    952952#endif
     
    10981098  m_piVSPFlag           = pcCU->getVSPFlag()          + uiPart;
    10991099#endif
    1100 #if MTK_SPIVMP_F0110
     1100#if H_3D_SPIVMP
    11011101  m_pbSPIVMPFlag        = pcCU->getSPIVMPFlag()          + uiPart;
    11021102#endif
     
    12471247  m_pDvInfo            = pcCU->getDvInfo()                + uiAbsPartIdx;
    12481248#endif
    1249 #if MTK_SPIVMP_F0110
     1249#if H_3D_SPIVMP
    12501250  m_pbSPIVMPFlag       = pcCU->getSPIVMPFlag()               + uiAbsPartIdx;
    12511251#endif
     
    12991299
    13001300#endif
    1301 #if MTK_SPIVMP_F0110
     1301#if H_3D_SPIVMP
    13021302  memcpy( m_pbSPIVMPFlag        + uiOffset, pcCU->getSPIVMPFlag(),        sizeof( Bool ) * uiNumPartition );
    13031303#endif
     
    14211421  memcpy( rpcCU->getDvInfo()            + m_uiAbsIdxInLCU, m_pDvInfo,             sizeof( *m_pDvInfo ) * m_uiNumPartition );
    14221422#endif
    1423 #if MTK_SPIVMP_F0110
     1423#if H_3D_SPIVMP
    14241424  memcpy( rpcCU->getSPIVMPFlag()        + m_uiAbsIdxInLCU, m_pbSPIVMPFlag,        sizeof( Bool ) * m_uiNumPartition );
    14251425#endif
     
    15301530  memcpy( rpcCU->getVSPFlag()           + uiPartOffset, m_piVSPFlag,           sizeof(Char) * uiQNumPart );
    15311531#endif
    1532 #if MTK_SPIVMP_F0110
     1532#if H_3D_SPIVMP
    15331533  memcpy( rpcCU->getSPIVMPFlag()        + uiPartOffset, m_pbSPIVMPFlag,        sizeof(Bool) * uiQNumPart );
    15341534#endif
     
    26472647}
    26482648
    2649 #if MTK_SPIVMP_F0110
     2649#if H_3D_SPIVMP
    26502650Void TComDataCU::setSPIVMPFlagSubParts( Bool bSPIVMPFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )
    26512651{
     
    38603860      , InheritedVSPDisInfo*  inheritedVSPDisInfo
    38613861#endif
    3862 #if MTK_SPIVMP_F0110
     3862#if H_3D_SPIVMP
    38633863      , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP
    38643864#endif
     
    39803980    iPosLeftAbove[1] = numA1B1B0;
    39813981#if H_3D_VSP
    3982 #if BUGFIX_2_F0093 && MTK_VSP_SIMPLIFICATION_F0111
    39833982    if ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) == 1)
    3984 #else
    3985     if (pcCUAbove->getVSPFlag(uiAbovePartIdx) == 1
    3986 #endif
    39873983#if H_3D_IC
    39883984      && !bICFlag
     
    39943990    {
    39953991      vspFlag[numA1B1B0] = 1;
    3996 #if !MTK_VSP_SIMPLIFICATION_F0111
    3997       xInheritVSPDisInfo(pcCUAbove,uiAbovePartIdx,iCount,inheritedVSPDisInfo);
    3998 #endif
    39993992    }
    40003993#endif
     
    63686361}
    63696362#endif
    6370 #if QC_DEPTH_IV_MRG_F0125
     6363#if H_3D_IV_MERGE
    63716364Bool TComDataCU::getDispNeighBlocks (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp)
    63726365{
     
    69486941#endif
    69496942
    6950 #if MTK_SPIVMP_F0110
     6943#if H_3D_SPIVMP
    69516944Void TComDataCU::getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight)
    69526945{
     
    70006993#if H_3D_IV_MERGE
    70016994Bool
    7002 TComDataCU::getInterViewMergeCands(UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc
    7003 #if QC_DEPTH_IV_MRG_F0125
    7004 , Bool bIsDepth           
    7005 #endif
    7006 #if MTK_SPIVMP_F0110
     6995TComDataCU::getInterViewMergeCands(UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc , Bool bIsDepth           
     6996#if H_3D_SPIVMP
    70076997, TComMvField* pcMvFieldSP, UChar* puhInterDirSP
    70086998#endif
     
    70137003 
    70147004  //--- get base CU/PU and check prediction mode ---
    7015 #if QC_DEPTH_IV_MRG_F0125
    70167005  TComPic*    pcBasePic   = pcSlice->getIvPic( bIsDepth, iViewIndex );
    7017 #else
    7018   TComPic*    pcBasePic   = pcSlice->getIvPic( false, iViewIndex );
    7019 #endif
    70207006  TComPicYuv* pcBaseRec   = pcBasePic->getPicYuvRec   ();
    70217007
     
    70287014  pcBaseRec->getTopLeftSamplePos( getAddr(), getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY );
    70297015
    7030 #if !MTK_SPIVMP_F0110
    7031 #if QC_DEPTH_IV_MRG_F0125
     7016#if !H_3D_SPIVMP
    70327017  iCurrPosX  += ( iWidth  >> 1 );
    70337018  iCurrPosY  += ( iHeight >> 1 );
    7034 #else
    7035   iCurrPosX  += ( ( iWidth  - 1 ) >> 1 );
    7036   iCurrPosY  += ( ( iHeight - 1 ) >> 1 );
    7037 #endif
    70387019#endif
    70397020
     
    70537034#endif
    70547035
    7055 #if MTK_SPIVMP_F0110
     7036#if H_3D_SPIVMP
    70567037  ////////////////////////////////
    70577038  //////////sub-PU IvMC///////////
     
    71837164  ////////////////////////////////
    71847165
    7185 #if MTK_SPIVMP_F0110
     7166#if H_3D_SPIVMP
    71867167  for(Int iLoopCan = 1; iLoopCan < 2; iLoopCan ++)
    71877168#else
     
    71927173    // iLoopCan == 1 --> IvMCShift
    71937174
    7194 #if !MTK_SPIVMP_F0110
     7175#if !H_3D_SPIVMP
    71957176    Int         iBaseCUAddr;
    71967177    Int         iBaseAbsPartIdx;
     
    72007181    Int offsetH = (iLoopCan == 0) ? 0 : ( ((iHeight/2)*4) + 4 );
    72017182
    7202 #if MTK_SPIVMP_F0110
     7183#if H_3D_SPIVMP
    72037184    iBasePosX   = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) );
    72047185    iBasePosY   = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (cDv.getVer() + offsetH + 2 ) >> 2 ) );
     
    72097190    pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx );
    72107191
    7211 #if MTK_SPIVMP_F0110
     7192#if H_3D_SPIVMP
    72127193    pcBaseCU    = pcBasePic->getCU( iBaseCUAddr );
    72137194#else
     
    72417222                  TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer());
    72427223#if H_3D_NBDV
    7243 #if QC_DEPTH_IV_MRG_F0125
     7224#if H_3D_IV_MERGE
    72447225                  if( !bIsDepth )
    72457226                  {
     
    72497230                    cMv.setIDVVer    (cDv.getVer()); 
    72507231                    cMv.setIDVVId    (iViewIndex);
    7251 #if QC_DEPTH_IV_MRG_F0125
     7232#if H_3D_IV_MERGE
    72527233                  }
    72537234#endif
     
    72667247    }
    72677248  }
    7268 #if MTK_SPIVMP_F0110
     7249#if H_3D_SPIVMP
    72697250  for(Int iLoopCan = 1; iLoopCan < 2; iLoopCan ++)
    72707251#else
     
    72977278#endif
    72987279          cMv.setHor( cMv.getHor() + ioffsetDV );
    7299 #if QC_DEPTH_IV_MRG_F0125
     7280#if H_3D_IV_MERGE
    73007281          if( bIsDepth )
    73017282            cMv.setHor((cMv.getHor()+2)>>2);
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComDataCU.h

    r764 r765  
    198198                                      ///< 0: non-VSP; 1: VSP
    199199#endif
    200 #if MTK_SPIVMP_F0110
     200#if H_3D_SPIVMP
    201201  Bool*         m_pbSPIVMPFlag;       ///< array of sub-PU IVMP flags to indicate whehter a block uses sub-PU IVMP
    202202                                      ///< 0: non-SPIVMP; 1: SPIVMP
     
    501501#if H_3D
    502502  Void          rightShiftMergeCandList( TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours, Int* iVSPIndexTrue, InheritedVSPDisInfo*  inheritedVSPDisInfo, UInt start, UInt num, Int &iCount3DV);
    503 #endif
    504 #if QC_DEPTH_IV_MRG_F0125
    505503  Bool          getDispNeighBlocks  ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp);
    506504  Bool          getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm );
     
    515513  Void          getIVNStatus       ( UInt uiPartIdx,  DisInfo* pDInfo, Bool& bIVFMerge,  Int& iIVFMaxD);
    516514#endif
    517 #if MTK_SPIVMP_F0110
     515#if H_3D_SPIVMP
    518516  Void          getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight);
    519517  Void          getSPAbsPartIdx(UInt uiBaseAbsPartIdx, Int iWidth, Int iHeight, Int iPartIdx, Int iNumPartLine, UInt& ruiPartAddr );
     
    521519#endif
    522520#if H_3D_IV_MERGE
    523   Bool          getInterViewMergeCands          ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc
    524 #if QC_DEPTH_IV_MRG_F0125
    525     , Bool bIsDepth           
    526 #endif
    527 #if MTK_SPIVMP_F0110
     521  Bool          getInterViewMergeCands          ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc, Bool bIsDepth           
     522
     523#if H_3D_SPIVMP
    528524    , TComMvField* pcMFieldSP, UChar* puhInterDirSP
    529525#endif
     
    675671                                            , InheritedVSPDisInfo*  inheritedVSPDisInfo
    676672#endif
    677 #if MTK_SPIVMP_F0110
     673#if H_3D_SPIVMP
    678674                                            , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP
    679675#endif
     
    684680  inline Void   xInheritVSPDisInfo(TComDataCU* pcCURef, UInt uiAbsPartIdx, Int iCount,  InheritedVSPDisInfo*  inheritedVSPDisInfo);
    685681
    686 #if MTK_SPIVMP_F0110
     682#if H_3D_SPIVMP
    687683  Bool*         getSPIVMPFlag        ()                        { return m_pbSPIVMPFlag;          }
    688684  Bool          getSPIVMPFlag        ( UInt uiIdx )            { return m_pbSPIVMPFlag[uiIdx];   }
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComMotionInfo.cpp

    r724 r765  
    4040#include "assert.h"
    4141#include <stdlib.h>
    42 #if MTK_SPIVMP_F0110
     42#if H_3D_SPIVMP
    4343#include "TComDataCU.h"
    4444#include "TComPic.h"
     
    328328}
    329329
    330 #if MTK_SPIVMP_F0110
     330#if H_3D_SPIVMP
    331331Void TComCUMvField::setMvFieldSP( TComDataCU* pcCU, UInt uiAbsPartIdx, TComMvField cMvField, Int iWidth, Int iHeight  )
    332332{
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComMotionInfo.h

    r724 r765  
    5050// ====================================================================================================================
    5151
    52 #if MTK_SPIVMP_F0110
     52#if H_3D_SPIVMP
    5353class TComDataCU;
    5454#endif
     
    173173  Void    setAllRefIdx ( Int iRefIdx,                 PartSize eMbMode, Int iPartAddr, UInt uiDepth, Int iPartIdx=0 );
    174174  Void    setAllMvField( TComMvField const & mvField, PartSize eMbMode, Int iPartAddr, UInt uiDepth, Int iPartIdx=0 );
    175 #if MTK_SPIVMP_F0110
     175#if H_3D_SPIVMP
    176176  Void    setMvFieldSP ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComMvField cMvField, Int iWidth, Int iHeight  );
    177177#endif
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComPrediction.cpp

    r764 r765  
    520520}
    521521
    522 #if MTK_SPIVMP_F0110
     522#if H_3D_SPIVMP
    523523Void TComPrediction::xGetSubPUAddrAndMerge(TComDataCU* pcCU, UInt uiPartAddr, Int iSPWidth, Int iSPHeight, Int iNumSPInOneLine, Int iNumSP, UInt* uiMergedSPW, UInt* uiMergedSPH, UInt* uiSPAddr )
    524524{
     
    631631      else
    632632      {
    633 #if MTK_SPIVMP_F0110
     633#if H_3D_SPIVMP
    634634        if ( pcCU->getSPIVMPFlag(uiPartAddr)!=0) 
    635635        {
     
    671671            xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred );
    672672          }
    673 #if MTK_SPIVMP_F0110
     673#if H_3D_SPIVMP
    674674        }
    675675#endif
     
    717717      else
    718718      {
    719 #if MTK_SPIVMP_F0110
     719#if H_3D_SPIVMP
    720720       if (pcCU->getSPIVMPFlag(uiPartAddr)!=0) 
    721721      {
     
    756756          xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred );
    757757        }
    758 #if MTK_SPIVMP_F0110
     758#if H_3D_SPIVMP
    759759       }
    760760#endif
     
    784784  pcCU->clipMv(cMv);
    785785#if H_3D_ARP
    786 #if QC_MTK_INTERVIEW_ARP_F0123_F0108
    787786  if(pcCU->getARPW( uiPartAddr ) > 0  && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()== pcCU->getSlice()->getPOC())
    788787  {
    789       xPredInterUniARPviewRef( pcCU , uiPartAddr , iWidth , iHeight , eRefPicList , rpcYuvPred , bi );
     788    xPredInterUniARPviewRef( pcCU , uiPartAddr , iWidth , iHeight , eRefPicList , rpcYuvPred , bi );
    790789  }
    791790  else
    792 #endif
    793   if(  pcCU->getARPW( uiPartAddr ) > 0
    794     && pcCU->getPartitionSize(uiPartAddr)==SIZE_2Nx2N
    795     && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()!= pcCU->getSlice()->getPOC()
    796     )
    797   {
    798     xPredInterUniARP( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, rpcYuvPred, bi );
    799   }
    800   else
    801   {
     791  {
     792    if(  pcCU->getARPW( uiPartAddr ) > 0
     793      && pcCU->getPartitionSize(uiPartAddr)==SIZE_2Nx2N
     794      && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()!= pcCU->getSlice()->getPOC()
     795      )
     796    {
     797      xPredInterUniARP( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, rpcYuvPred, bi );
     798    }
     799    else
     800    {
    802801#endif
    803802#if H_3D_IC
    804     Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() != pcCU->getSlice()->getViewIndex() );
    805     xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi
     803      Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() != pcCU->getSlice()->getViewIndex() );
     804      xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi
    806805#if H_3D_ARP
    807       , false
    808 #endif
    809       , bICFlag );
    810     bICFlag = bICFlag && (iWidth > 8);
    811     xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi
     806        , false
     807#endif
     808        , bICFlag );
     809      bICFlag = bICFlag && (iWidth > 8);
     810      xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi
    812811#if H_3D_ARP
    813       , false
    814 #endif
    815       , bICFlag );
     812        , false
     813#endif
     814        , bICFlag );
    816815#else
    817   xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
    818   xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
     816      xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
     817      xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
    819818#endif
    820819#if H_3D_ARP
     820    }
    821821  }
    822822#endif
     
    872872  pcBaseViewDepthPicYuv->extendPicBorder();
    873873
    874 #if MTK_F0109_LG_F0120_VSP_BLOCK
    875874  Int vspSize=0;
    876875  xGetVirtualDepth( pcCU, pcBaseViewDepthPicYuv, &cDv, uiPartAddr, iWidth, iHeight, &m_cYuvDepthOnVsp,vspSize );
     
    878877  xPredInterLumaBlkFromDM   ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi, vspSize);
    879878  xPredInterChromaBlkFromDM ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi, vspSize);
    880 #else
    881   xGetVirtualDepth( pcCU, pcBaseViewDepthPicYuv, &cDv, uiPartAddr, iWidth, iHeight, &m_cYuvDepthOnVsp );
    882   // sub-PU based compensation
    883   xPredInterLumaBlkFromDM   ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi );
    884   xPredInterChromaBlkFromDM ( pcCU, pcBaseViewTxtPicYuv, &m_cYuvDepthOnVsp, pShiftLUT, &cDv, uiPartAddr, iWidth, iHeight, pcCU->getSlice()->getIsDepth(), rpcYuvPred, bi );
    885 #endif
    886879}
    887880#endif
     
    913906  if( cDistparity.bDV )
    914907  {
    915 #if SHARP_ARP_REF_CHECK_F0105
    916908    Int arpRefIdx = pcCU->getSlice()->getFirstTRefIdx(eRefPicList);
    917909    if( dW > 0 && pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC()!= pcCU->getSlice()->getPOC() )
    918 #else
    919     if( dW > 0 && pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC()!= pcCU->getSlice()->getPOC() )
    920 #endif
    921910    {
    922911      bTobeScaled = true;
     
    925914    pcPicYuvBaseCol =  pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getPOC(),                              cDistparity.m_aVIdxCan );
    926915
    927 #if SHARP_ARP_REF_CHECK_F0105
    928916    pcPicYuvBaseRef =  pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC(), cDistparity.m_aVIdxCan );
    929917
    930918    if (!pcCU->getSlice()->getArpRefPicAvailable( eRefPicList, cDistparity.m_aVIdxCan))
    931 #else
    932     pcPicYuvBaseRef =  pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC(), cDistparity.m_aVIdxCan );
    933    
    934     if( ( !pcPicYuvBaseCol || pcPicYuvBaseCol->getPOC() != pcCU->getSlice()->getPOC() ) || ( !pcPicYuvBaseRef || pcPicYuvBaseRef->getPOC() != pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC() ) )
    935 #endif
    936919    {
    937920      dW = 0;
     
    940923    else
    941924    {
    942 #if SHARP_ARP_REF_CHECK_F0105
    943925      assert( pcPicYuvBaseCol->getPOC() == pcCU->getSlice()->getPOC() && pcPicYuvBaseRef->getPOC() == pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC() );
    944 #else
    945       assert( pcPicYuvBaseCol->getPOC() == pcCU->getSlice()->getPOC() && pcPicYuvBaseRef->getPOC() == pcCU->getSlice()->getRefPic( eRefPicList, 0 )->getPOC() );
    946 #endif
    947926    }
    948927
     
    993972  }
    994973}
    995 #if QC_MTK_INTERVIEW_ARP_F0123_F0108
    996974Void TComPrediction::xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled )
    997975{
     
    1015993
    1016994  assert(dW > 0);
    1017 #if SHARP_ARP_REF_CHECK_F0105
    1018995  if (!pcCU->getSlice()->getArpRefPicAvailable( eRefPicList, pcPicYuvBaseCol->getViewIndex()))
    1019996  {
    1020997    dW = 0;
    1021998  }
    1022 #endif
    1023999  Int uiLCUAddr,uiAbsPartAddr;
    10241000  Int irefPUX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[uiPartAddr]] + iWidth/2  + ((cDMv.getHor() + 2)>>2);
     
    10981074  }
    10991075}
    1100 #endif
    11011076
    11021077#endif
     
    17581733#if H_3D_VSP
    17591734// not fully support iRatioTxtPerDepth* != 1
    1760 #if MTK_F0109_LG_F0120_VSP_BLOCK
    17611735Void TComPrediction::xGetVirtualDepth( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *mv, UInt partAddr, Int width, Int height, TComYuv *yuvDepth, Int &vspSize, Int ratioTxtPerDepthX, Int ratioTxtPerDepthY )
    1762 #else
    1763 Void TComPrediction::xGetVirtualDepth( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *mv, UInt partAddr, Int width, Int height, TComYuv *yuvDepth, Int ratioTxtPerDepthX, Int ratioTxtPerDepthY )
    1764 #endif
    17651736{
    17661737  Int nTxtPerDepthX = H_3D_VSP_BLOCKSIZE;
     
    17901761  Pel *depth = yuvDepth->getLumaAddr();
    17911762
    1792 #if !SHARP_VSP_BLOCK_IN_AMP_F0102
    1793   if( width<8 || height<8 )
    1794   { // no split
    1795     Int rightOffset = width - 1;
    1796     Int depStrideBlock = depStride * nTxtPerDepthY;
    1797     Pel *refDepthTop = refDepth;
    1798     Pel *refDepthBot = refDepthTop + (height-1)*refDepStride;
    1799 
    1800     Pel maxDepth = refDepthTop[0] > refDepthBot[0] ? refDepthTop[0] : refDepthBot[0];
    1801     if( maxDepth < refDepthTop[rightOffset] ) { maxDepth = refDepthTop[rightOffset]; }
    1802     if( maxDepth < refDepthBot[rightOffset] ) { maxDepth = refDepthBot[rightOffset]; }
    1803 
    1804     for( Int sY=0; sY<height; sY+=nTxtPerDepthY )
    1805     {
    1806       for( Int sX=0; sX<width; sX+=nTxtPerDepthX )
    1807       {
    1808         depth[sX] = maxDepth;
    1809       }
    1810       depth += depStrideBlock;
    1811     }
    1812 #if MTK_F0109_LG_F0120_VSP_BLOCK
    1813   if(width==4)
    1814     vspSize=0;
    1815   else
    1816     vspSize=1;
    1817 #endif
    1818   }
    1819   else
    1820   { // split to 4x8, or 8x4
    1821     Int blocksize    = 8;
    1822     Int subblocksize = 4;
    1823     Int depStrideBlock = depStride * blocksize;
    1824     Pel *depthTmp = NULL;
    1825     Int depStrideTmp = depStride * nTxtPerDepthY;
    1826     Int offset[4] = { 0, subblocksize-1, subblocksize, blocksize-1 };
    1827     Pel *refDepthTmp[4] = { NULL, NULL, NULL, NULL };
    1828     Pel repDepth4x8[2] = {0, 0};
    1829     Pel repDepth8x4[2] = {0, 0};
    1830 #endif
    1831 
    1832 #if !MTK_F0109_LG_F0120_VSP_BLOCK
    1833 #if SHARP_VSP_BLOCK_IN_AMP_F0102
    1834     Int blocksize    = 8;
    1835     Int subblocksize = 4;
    1836     Int depStrideBlock = depStride * blocksize;
    1837     Pel *depthTmp = NULL;
    1838     Int depStrideTmp = depStride * nTxtPerDepthY;
    1839     Int offset[4] = { 0, subblocksize-1, subblocksize, blocksize-1 };
    1840     Pel *refDepthTmp[4] = { NULL, NULL, NULL, NULL };
    1841 #endif
    1842     Int refDepStrideBlock    = refDepStride * blocksize;
    1843     Int refDepStrideSubBlock = refDepStride * subblocksize;
    1844 
    1845     refDepthTmp[0] = refDepth;
    1846     refDepthTmp[2] = refDepthTmp[0] + refDepStrideSubBlock;
    1847     refDepthTmp[1] = refDepthTmp[2] - refDepStride;
    1848     refDepthTmp[3] = refDepthTmp[1] + refDepStrideSubBlock;
    1849 
    1850 #if SHARP_VSP_BLOCK_IN_AMP_F0102
    1851     Int subBlockW, subBlockH;
    1852     Int blockW, blockH;
    1853     subBlockW = subBlockH = 8;
    1854     if (height % 8)
    1855     {
    1856       subBlockW = 8;
    1857       subBlockH = 4;
    1858       blockW = width;  // no further split
    1859       blockH = height; // no further split
    1860     }
    1861     else if (width % 8)
    1862     {
    1863       subBlockW = 4;
    1864       subBlockH = 8;
    1865       blockW = width;  // no further split
    1866       blockH = height; // no further split
    1867     }
    1868     else
    1869     {
    1870       blockW = blockH = 8;
    1871     }
    1872     for( Int y=0; y<height; y+=blockH )
    1873     {
    1874       for( Int x=0; x<width; x+=blockW )
    1875       {
    1876         if (blockW == 8 && blockH == 8)
    1877         {
    1878           Bool ULvsBR = false, URvsBL = false;
    1879           ULvsBR = refDepthTmp[0][x+offset[0]] < refDepthTmp[3][x+offset[3]];
    1880           URvsBL = refDepthTmp[0][x+offset[3]] < refDepthTmp[3][x+offset[0]];
    1881           if( ULvsBR ^ URvsBL )
    1882           { // 4x8
    1883             subBlockW = 4;
    1884             subBlockH = 8;
    1885           }
    1886           else
    1887           {
    1888             subBlockW = 8;
    1889             subBlockH = 4;
    1890           }
    1891         }
    1892         for( Int yy=0; yy<blockH; yy+=subBlockH )
    1893         {
    1894           for( Int xx=0; xx<blockW; xx+=subBlockW )
    1895           {
    1896             Pel  maxDepthVal = 0;
    1897             Int xP0, xP1, yP0, yP1;
    1898             xP0 = x+xx;
    1899             xP1 = x+xx+subBlockW-1;
    1900             yP0 = yy;
    1901             yP1 = yy+subBlockH-1;
    1902             maxDepthVal = std::max( maxDepthVal, refDepthTmp[0][xP0+yP0*refDepStride]);
    1903             maxDepthVal = std::max( maxDepthVal, refDepthTmp[0][xP1+yP0*refDepStride]);
    1904             maxDepthVal = std::max( maxDepthVal, refDepthTmp[0][xP0+yP1*refDepStride]);
    1905             maxDepthVal = std::max( maxDepthVal, refDepthTmp[0][xP1+yP1*refDepStride]);
    1906             depthTmp = &depth[x+xx+yy*depStride];
    1907             for( Int sY=0; sY<subBlockH; sY+=nTxtPerDepthY )
    1908             {
    1909               for( Int sX=0; sX<subBlockW; sX+=nTxtPerDepthX )
    1910               {
    1911                 depthTmp[sX] = maxDepthVal;
    1912               }
    1913               depthTmp += depStrideTmp;
    1914             }
    1915           }
    1916         }
    1917       }
    1918       refDepthTmp[0] += refDepStrideBlock;
    1919       depth       += depStrideBlock;
    1920     }
    1921 #else // SHARP_VSP_BLOCK_IN_AMP_F0102
    1922     for( Int y=0; y<height; y+=blocksize )
    1923     {
    1924       for( Int x=0; x<width; x+=blocksize )
    1925       {
    1926         Bool ULvsBR = false, URvsBL = false;
    1927 
    1928         ULvsBR = refDepthTmp[0][x+offset[0]] < refDepthTmp[3][x+offset[3]];
    1929         URvsBL = refDepthTmp[0][x+offset[3]] < refDepthTmp[3][x+offset[0]];
    1930 
    1931         if( ULvsBR ^ URvsBL )
    1932         { // 4x8
    1933           repDepth4x8[0] = refDepthTmp[0][x+offset[0]] > refDepthTmp[0][x+offset[1]] ? refDepthTmp[0][x+offset[0]] : refDepthTmp[0][x+offset[1]];
    1934           if( repDepth4x8[0] < refDepthTmp[3][x+offset[0]] )
    1935           {
    1936             repDepth4x8[0] = refDepthTmp[3][x+offset[0]];
    1937           }
    1938           if( repDepth4x8[0] < refDepthTmp[3][x+offset[1]] )
    1939           {
    1940             repDepth4x8[0] = refDepthTmp[3][x+offset[1]];
    1941           }
    1942           repDepth4x8[1] = refDepthTmp[0][x+offset[2]] > refDepthTmp[0][x+offset[3]] ? refDepthTmp[0][x+offset[2]] : refDepthTmp[0][x+offset[3]];
    1943           if( repDepth4x8[1] < refDepthTmp[3][x+offset[2]] )
    1944           {
    1945             repDepth4x8[1] = refDepthTmp[3][x+offset[2]];
    1946           }
    1947           if( repDepth4x8[1] < refDepthTmp[3][x+offset[3]] )
    1948           {
    1949             repDepth4x8[1] = refDepthTmp[3][x+offset[3]];
    1950           }
    1951 
    1952           depthTmp = &depth[x];
    1953           for( Int sY=0; sY<blocksize; sY+=nTxtPerDepthY )
    1954           {
    1955             for( Int sX=0; sX<subblocksize; sX+=nTxtPerDepthX )
    1956             {
    1957               depthTmp[sX] = repDepth4x8[0];
    1958             }
    1959             depthTmp += depStrideTmp;
    1960           }
    1961           depthTmp = &depth[x+subblocksize];
    1962           for( Int sY=0; sY<blocksize; sY+=nTxtPerDepthY )
    1963           {
    1964             for( Int sX=0; sX<subblocksize; sX+=nTxtPerDepthX )
    1965             {
    1966               depthTmp[sX] = repDepth4x8[1];
    1967             }
    1968             depthTmp += depStrideTmp;
    1969           }
    1970         }
    1971         else
    1972         { // 8x4
    1973           repDepth8x4[0] = refDepthTmp[0][x+offset[0]] > refDepthTmp[0][x+offset[3]] ? refDepthTmp[0][x+offset[0]] : refDepthTmp[0][x+offset[3]];
    1974           if( repDepth8x4[0] < refDepthTmp[1][x+offset[0]] )
    1975           {
    1976             repDepth8x4[0] = refDepthTmp[1][x+offset[0]];
    1977           }
    1978           if( repDepth8x4[0] < refDepthTmp[1][x+offset[3]] )
    1979           {
    1980             repDepth8x4[0] = refDepthTmp[1][x+offset[3]];
    1981           }
    1982           repDepth8x4[1] = refDepthTmp[2][x+offset[0]] > refDepthTmp[2][x+offset[3]] ? refDepthTmp[2][x+offset[0]] : refDepthTmp[2][x+offset[3]];
    1983           if( repDepth8x4[1] < refDepthTmp[3][x+offset[0]] )
    1984           {
    1985             repDepth8x4[1] = refDepthTmp[3][x+offset[0]];
    1986           }
    1987           if( repDepth8x4[1] < refDepthTmp[3][x+offset[3]] )
    1988           {
    1989             repDepth8x4[1] = refDepthTmp[3][x+offset[3]];
    1990           }
    1991          
    1992           depthTmp = &depth[x];
    1993           for( Int sY=0; sY<subblocksize; sY+=nTxtPerDepthY )
    1994           {
    1995             for( Int sX=0; sX<blocksize; sX+=nTxtPerDepthX )
    1996             {
    1997               depthTmp[sX] = repDepth8x4[0];
    1998             }
    1999             depthTmp += depStrideTmp;
    2000           }
    2001           for( Int sY=0; sY<subblocksize; sY+=nTxtPerDepthY )
    2002           {
    2003             for( Int sX=0; sX<blocksize; sX+=nTxtPerDepthX )
    2004             {
    2005               depthTmp[sX] = repDepth8x4[1];
    2006             }
    2007             depthTmp += depStrideTmp;
    2008           }
    2009         }
    2010       }
    2011       refDepthTmp[0] += refDepStrideBlock;
    2012       refDepthTmp[1] += refDepStrideBlock;
    2013       refDepthTmp[2] += refDepStrideBlock;
    2014       refDepthTmp[3] += refDepStrideBlock;
    2015       depth       += depStrideBlock;
    2016     }
    2017 #endif // SHARP_VSP_BLOCK_IN_AMP_F0102
    2018 #else
    2019 #if SHARP_VSP_BLOCK_IN_AMP_F0102
    20201763  if ((height % 8))
    20211764  {
     
    20691812      }
    20701813    }
    2071   }
    2072 #else // SHARP_VSP_BLOCK_IN_AMP_F0102
    2073     Int refDepStrideBlock    = refDepStride * height;
    2074     Int refDepStrideSubBlock = refDepStride * height/2;
    2075     refDepthTmp[0] = refDepth;
    2076     refDepthTmp[2] = refDepthTmp[0] + refDepStrideSubBlock;
    2077     refDepthTmp[1] = refDepthTmp[2] - refDepStride;
    2078     refDepthTmp[3] = refDepthTmp[1] + refDepStrideSubBlock;
    2079     offset[3] = width-1;
    2080     Bool ULvsBR = false, URvsBL = false;
    2081     ULvsBR = refDepthTmp[0][0+offset[0]] < refDepthTmp[3][0+offset[3]];
    2082     URvsBL = refDepthTmp[0][0+offset[3]] < refDepthTmp[3][0+offset[0]];
    2083     refDepStrideBlock    = refDepStride * blocksize;
    2084     refDepStrideSubBlock = refDepStride * subblocksize;
    2085     refDepthTmp[0] = refDepth;
    2086     refDepthTmp[2] = refDepthTmp[0] + refDepStrideSubBlock;
    2087     refDepthTmp[1] = refDepthTmp[2] - refDepStride;
    2088     refDepthTmp[3] = refDepthTmp[1] + refDepStrideSubBlock;
    2089     offset[3] = blocksize-1;
    2090     if( ULvsBR ^ URvsBL )
    2091     {
    2092     vspSize = 0;//4x8
    2093     for( Int y=0; y<height; y+=blocksize )
    2094     {
    2095       for( Int x=0; x<width; x+=blocksize )
    2096       {
    2097         { // 4x8
    2098           repDepth4x8[0] = refDepthTmp[0][x+offset[0]] > refDepthTmp[0][x+offset[1]] ? refDepthTmp[0][x+offset[0]] : refDepthTmp[0][x+offset[1]];
    2099           if( repDepth4x8[0] < refDepthTmp[3][x+offset[0]] )
    2100           {
    2101             repDepth4x8[0] = refDepthTmp[3][x+offset[0]];
    2102           }
    2103           if( repDepth4x8[0] < refDepthTmp[3][x+offset[1]] )
    2104           {
    2105             repDepth4x8[0] = refDepthTmp[3][x+offset[1]];
    2106           }
    2107           repDepth4x8[1] = refDepthTmp[0][x+offset[2]] > refDepthTmp[0][x+offset[3]] ? refDepthTmp[0][x+offset[2]] : refDepthTmp[0][x+offset[3]];
    2108           if( repDepth4x8[1] < refDepthTmp[3][x+offset[2]] )
    2109           {
    2110             repDepth4x8[1] = refDepthTmp[3][x+offset[2]];
    2111           }
    2112           if( repDepth4x8[1] < refDepthTmp[3][x+offset[3]] )
    2113           {
    2114             repDepth4x8[1] = refDepthTmp[3][x+offset[3]];
    2115   }
    2116 
    2117           depthTmp = &depth[x];
    2118           for( Int sY=0; sY<blocksize; sY+=nTxtPerDepthY )
    2119           {
    2120             for( Int sX=0; sX<subblocksize; sX+=nTxtPerDepthX )
    2121             {
    2122               depthTmp[sX] = repDepth4x8[0];
    2123             }
    2124             depthTmp += depStrideTmp;
    2125           }
    2126           depthTmp = &depth[x+subblocksize];
    2127           for( Int sY=0; sY<blocksize; sY+=nTxtPerDepthY )
    2128           {
    2129             for( Int sX=0; sX<subblocksize; sX+=nTxtPerDepthX )
    2130             {
    2131               depthTmp[sX] = repDepth4x8[1];
    2132             }
    2133             depthTmp += depStrideTmp;
    2134           }
    2135         }
    2136       }
    2137       refDepthTmp[0] += refDepStrideBlock;
    2138       refDepthTmp[1] += refDepStrideBlock;
    2139       refDepthTmp[2] += refDepStrideBlock;
    2140       refDepthTmp[3] += refDepStrideBlock;
    2141       depth       += depStrideBlock;
    2142     }
    2143   }
    2144   else
    2145   { // 8x4
    2146     vspSize = 1;
    2147     for( Int y=0; y<height; y+=blocksize )
    2148     {
    2149       for( Int x=0; x<width; x+=blocksize )
    2150       {
    2151         repDepth8x4[0] = refDepthTmp[0][x+offset[0]] > refDepthTmp[0][x+offset[3]] ? refDepthTmp[0][x+offset[0]] : refDepthTmp[0][x+offset[3]];
    2152         if( repDepth8x4[0] < refDepthTmp[1][x+offset[0]] )
    2153         {
    2154           repDepth8x4[0] = refDepthTmp[1][x+offset[0]];
    2155         }
    2156         if( repDepth8x4[0] < refDepthTmp[1][x+offset[3]] )
    2157         {
    2158           repDepth8x4[0] = refDepthTmp[1][x+offset[3]];
    2159         }
    2160         repDepth8x4[1] = refDepthTmp[2][x+offset[0]] > refDepthTmp[2][x+offset[3]] ? refDepthTmp[2][x+offset[0]] : refDepthTmp[2][x+offset[3]];
    2161         if( repDepth8x4[1] < refDepthTmp[3][x+offset[0]] )
    2162         {
    2163           repDepth8x4[1] = refDepthTmp[3][x+offset[0]];
    2164         }
    2165         if( repDepth8x4[1] < refDepthTmp[3][x+offset[3]] )
    2166         {
    2167           repDepth8x4[1] = refDepthTmp[3][x+offset[3]];
    2168         }
    2169 
    2170         depthTmp = &depth[x];
    2171         for( Int sY=0; sY<subblocksize; sY+=nTxtPerDepthY )
    2172         {
    2173           for( Int sX=0; sX<blocksize; sX+=nTxtPerDepthX )
    2174           {
    2175             depthTmp[sX] = repDepth8x4[0];
    2176           }
    2177           depthTmp += depStrideTmp;
    2178         }
    2179         for( Int sY=0; sY<subblocksize; sY+=nTxtPerDepthY )
    2180         {
    2181           for( Int sX=0; sX<blocksize; sX+=nTxtPerDepthX )
    2182           {
    2183             depthTmp[sX] = repDepth8x4[1];
    2184           }
    2185           depthTmp += depStrideTmp;
    2186 }
    2187       }
    2188       refDepthTmp[0] += refDepStrideBlock;
    2189       refDepthTmp[1] += refDepStrideBlock;
    2190       refDepthTmp[2] += refDepStrideBlock;
    2191       refDepthTmp[3] += refDepStrideBlock;
    2192       depth       += depStrideBlock;
    2193     }
    2194   }
    2195 #endif   
    2196 #endif
    2197 #if !SHARP_VSP_BLOCK_IN_AMP_F0102
    2198   }
    2199 #endif
    2200 
    2201 
    2202 }
    2203 #if MTK_F0109_LG_F0120_VSP_BLOCK
     1814  }   
     1815}
     1816
    22041817Void TComPrediction::xPredInterLumaBlkFromDM( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&yuvDst, Bool isBi, Int vspSize)
    2205 #else
    2206 Void TComPrediction::xPredInterLumaBlkFromDM( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&yuvDst, Bool isBi )
    2207 #endif
    22081818{
    22091819  Int nTxtPerDepthX = H_3D_VSP_BLOCKSIZE;
    22101820  Int nTxtPerDepthY = H_3D_VSP_BLOCKSIZE;
    22111821 
    2212 #if MTK_F0109_LG_F0120_VSP_BLOCK
    22131822  nTxtPerDepthX = nTxtPerDepthX << vspSize;
    22141823  nTxtPerDepthY = nTxtPerDepthY << (1-vspSize);
    2215 #endif
     1824
    22161825  Int refStride = picRef->getStride();
    22171826  Int dstStride = yuvDst->getStride();
     
    23191928}
    23201929
    2321 #if MTK_F0109_LG_F0120_VSP_BLOCK
    23221930Void TComPrediction::xPredInterChromaBlkFromDM  ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&yuvDst, Bool isBi, Int vspSize)
    2323 #else
    2324 Void TComPrediction::xPredInterChromaBlkFromDM  ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&yuvDst, Bool isBi )
    2325 #endif
    23261931{
    23271932#if (H_3D_VSP_BLOCKSIZE==1)
     
    23331938#endif
    23341939
    2335 #if MTK_F0109_LG_F0120_VSP_BLOCK
    23361940  nTxtPerDepthX = nTxtPerDepthX << vspSize;
    23371941  nTxtPerDepthY = nTxtPerDepthY << (1-vspSize);
    2338 #endif
     1942
    23391943  Int refStride = picRef->getCStride();
    23401944  Int dstStride = yuvDst->getCStride();
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComPrediction.h

    r764 r765  
    9393#if H_3D_ARP
    9494  Void xPredInterUniARP         ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false, TComMvField * pNewMvFiled = NULL );
    95 #if QC_MTK_INTERVIEW_ARP_F0123_F0108
    9695  Void xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled = NULL );
    97 #endif
    9896#endif
    9997  Void xPredInterUni            ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false          );
     
    123121
    124122#if H_3D_VSP
    125 #if MTK_F0109_LG_F0120_VSP_BLOCK
    126123  Void xGetVirtualDepth           ( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *dv, UInt partAddr, Int width, Int height, TComYuv *yuvDepth, Int &vspSize, Int txtPerDepthX=1, Int txtPerDepthY=1 );
    127124  Void xPredInterLumaBlkFromDM    ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&pcYuvDst, Bool isBi, Int vspSize);
    128125  Void xPredInterChromaBlkFromDM  ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&pcYuvDst, Bool isBi, Int vspSize);
    129 #else
    130   Void xGetVirtualDepth           ( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *dv, UInt partAddr, Int width, Int height, TComYuv *yuvDepth, Int txtPerDepthX=1, Int txtPerDepthY=1 );
    131   Void xPredInterLumaBlkFromDM    ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&pcYuvDst, Bool isBi );
    132   Void xPredInterChromaBlkFromDM  ( TComDataCU *cu, TComPicYuv *picRef, TComYuv *yuvDepth, Int* shiftLUT, TComMv *mv, UInt partAddr, Int width, Int height, Bool isDepth, TComYuv *&pcYuvDst, Bool isBi );
    133 #endif
    134126#endif
    135127
     
    142134  Void xDCPredFiltering( Int* pSrc, Int iSrcStride, Pel*& rpDst, Int iDstStride, Int iWidth, Int iHeight );
    143135  Bool xCheckIdenticalMotion    ( TComDataCU* pcCU, UInt PartAddr);
    144 #if MTK_SPIVMP_F0110
     136#if H_3D_SPIVMP
    145137  Bool xCheckTwoSPMotion ( TComDataCU* pcCU, UInt PartAddr0, UInt PartAddr1 );
    146138  Void xGetSubPUAddrAndMerge(TComDataCU* pcCU, UInt uiPartAddr, Int iSPWidth, Int iSPHeight, Int iNumSPInOneLine, Int iNumSP, UInt* uiMergedSPW, UInt* uiMergedSPH, UInt* uiSPAddr );
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComSlice.cpp

    r758 r765  
    753753  {       
    754754    if ( this->getNumRefIdx( RefPicList( uiRefListIdx ) ) == 0)
     755    {
    755756        continue;
    756 #if !SHARP_ARP_REF_CHECK_F0105
    757 // move the following to setARPStepNum() to define ARP related thing in ARP function.
    758 #if QC_MTK_INTERVIEW_ARP_F0123_F0108
    759      for(Int i = 0; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ )
    760        {
    761        if ( this->getRefPic(RefPicList(uiRefListIdx), i)->getPOC() != getPOC() )
    762        {
    763          this->setFirstTRefIdx (RefPicList(uiRefListIdx), i);
    764          break;
    765        }
    766      }
    767 #endif
    768 #endif
     757    }
    769758    Bool bZeroIdxLtFlag = this->getRefPic(RefPicList(uiRefListIdx), 0)->getIsLongTerm();
    770759    for(Int i = 1; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ )
     
    18721861#if H_3D_IV_MERGE
    18731862    m_ivMvPredFlag         [ i ] = false;
    1874 #if MTK_SPIVMP_F0110
     1863#if H_3D_SPIVMP
    18751864    m_iSubPULog2Size       [ i ] = 0;
    18761865#endif
     
    18851874    m_bInterSDCFlag        [ i ] = false;
    18861875#endif
    1887 #if SEC_MPI_ENABLING_MERGE_F0150
     1876#if H_3D_IV_MERGE
    18881877    m_bMPIFlag             [ i ] = false;
    18891878#endif
     
    33243313
    33253314#if H_3D_ARP
    3326 #if SHARP_ARP_REF_CHECK_F0105
    33273315Void TComSlice::setARPStepNum( TComPicLists*ivPicLists )
    3328 #else
    3329 Void TComSlice::setARPStepNum()                                 
    3330 #endif
    3331 {
    3332 #if SHARP_ARP_REF_CHECK_F0105
     3316{
    33333317  Bool tempRefPicInListsFlag = false;
    3334 #else
    3335   Bool bAllIvRef = true;
    3336 #endif
    3337 #if QC_MTK_INTERVIEW_ARP_F0123_F0108
    33383318  if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP())
    3339 #else
    3340   if(!getVPS()->getUseAdvRP(getLayerId()))
    3341 #endif
    33423319  {
    33433320    m_nARPStepNum = 0;
     
    33453322  else
    33463323  {
    3347 #if SHARP_ARP_REF_CHECK_F0105
    33483324    setFirstTRefIdx (REF_PIC_LIST_0, -1);
    33493325    setFirstTRefIdx (REF_PIC_LIST_1, -1);
     
    33613337    tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0;
    33623338    m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0;
    3363 #else
    3364     for( Int iRefListId = 0; iRefListId < 2; iRefListId++ )
    3365     {
    3366       RefPicList  eRefPicList = RefPicList( iRefListId );
    3367       Int iNumRefIdx = getNumRefIdx(eRefPicList);
    3368      
    3369       if( iNumRefIdx <= 0 )
    3370       {
    3371         continue;
    3372       }
    3373 
    3374       for ( Int i = 0; i < iNumRefIdx; i++ )
    3375       {
    3376         if( getRefPic( eRefPicList, i)->getPOC() != getPOC() )
    3377         {
    3378           bAllIvRef = false;
    3379           break;
    3380         }
    3381       }
    3382 
    3383       if( bAllIvRef == false ) { break; }
    3384     }
    3385     m_nARPStepNum = !bAllIvRef ? getVPS()->getARPStepNum(getLayerId()) : 0;
    3386 #endif
    3387   }
    3388 #if SHARP_ARP_REF_CHECK_F0105
     3339  }
     3340
    33893341  if (tempRefPicInListsFlag)
    33903342  {
     
    34073359        }
    34083360      }
    3409   }
    3410 }
    3411 #endif
     3361    }
     3362  }
    34123363}
    34133364#endif
     
    35143465#endif
    35153466
    3516 #if QC_DEPTH_IV_MRG_F0125
     3467#if H_3D_IV_MERGE
    35173468  setupLUT = setupLUT || ( getVPS()->getIvMvPredFlag(layerIdInVPS ) && getIsDepth() );
    35183469#endif
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/TComSlice.h

    r758 r765  
    838838#if H_3D_IV_MERGE
    839839  Bool        m_ivMvPredFlag             [ MAX_NUM_LAYERS ];
    840 #if MTK_SPIVMP_F0110
     840#if H_3D_SPIVMP
    841841  Int         m_iSubPULog2Size           [MAX_NUM_LAYERS   ];
    842842#endif
     
    874874  Bool        m_bInterSDCFlag[MAX_NUM_LAYERS   ];
    875875#endif
    876 #if SEC_MPI_ENABLING_MERGE_F0150
     876#if H_3D_IV_MERGE
    877877  Bool        m_bMPIFlag[MAX_NUM_LAYERS   ];
    878878#endif
     
    11671167  Void    setIvMvPredFlag     ( Int layerIdInVps, Bool val )  { m_ivMvPredFlag[ layerIdInVps ] = val; }
    11681168  Bool    getIvMvPredFlag     ( Int layerIdInVps )            { return m_ivMvPredFlag[ layerIdInVps ]; };
    1169 #if MTK_SPIVMP_F0110
     1169#if H_3D_SPIVMP
    11701170  Int     getSubPULog2Size(Int layerIdInVps)           { return m_iSubPULog2Size[layerIdInVps]; }
    11711171  Void    setSubPULog2Size(Int layerIdInVps, Int u)    { m_iSubPULog2Size[layerIdInVps] = u;}
     
    12021202  Void    setInterSDCFlag      ( Int layerIdInVps, Bool bval ){ m_bInterSDCFlag[layerIdInVps] = bval; }
    12031203#endif
    1204 #if SEC_MPI_ENABLING_MERGE_F0150
     1204#if H_3D_IV_MERGE
    12051205  Bool    getMPIFlag      ( Int layerIdInVps )           { return m_bMPIFlag[layerIdInVps]; }
    12061206  Void    setMPIFlag      ( Int layerIdInVps, Bool bval ){ m_bMPIFlag[layerIdInVps] = bval; }
     
    18051805  UInt getCamParPrecision    ()  { return m_uiCamParPrecision; }
    18061806  Bool hasCamParInSliceHeader()  { return m_bCamParInSliceHeader; }
    1807 #if QC_DEPTH_IV_MRG_F0125
    18081807  Void setHasCamParInSliceHeader( Bool b )  { m_bCamParInSliceHeader = b; }
    1809 #endif
    18101808  Int* getCodedScale         ()  { return m_aaiCodedScale [0]; }
    18111809  Int* getCodedOffset        ()  { return m_aaiCodedOffset[0]; }
     
    22142212#endif
    22152213#if H_3D_ARP
    2216 #if SHARP_ARP_REF_CHECK_F0105
    22172214  Bool m_arpRefPicAvailable[2][MAX_NUM_LAYERS];
    2218 #endif
    22192215  TComList<TComPic*> * m_pBaseViewRefPicList[MAX_NUM_LAYERS];
    22202216  UInt                 m_nARPStepNum;
    2221 #if QC_MTK_INTERVIEW_ARP_F0123_F0108
    22222217  Int         m_aiFirstTRefIdx    [2];
    2223 #endif
    22242218#endif
    22252219#if H_3D_IC
     
    23082302#if H_3D_ARP
    23092303  Void      setBaseViewRefPicList( TComList<TComPic*> *pListPic, Int iViewIdx )      { m_pBaseViewRefPicList[iViewIdx] = pListPic;                   }
    2310 #if SHARP_ARP_REF_CHECK_F0105
    23112304  Void      setARPStepNum( TComPicLists*ivPicLists );
    2312 #else
    2313   Void      setARPStepNum();                                 
    2314 #endif
    23152305  TComPic*  getBaseViewRefPic    ( UInt uiPOC , Int iViewIdx )                       { return xGetRefPic( *m_pBaseViewRefPicList[iViewIdx], uiPOC ); }
    23162306  UInt      getARPStepNum( )                                                         { return m_nARPStepNum;                                         } 
     
    25132503  Int       getAlterRefIdx          ( RefPicList e )        { return  m_aiAlterRefIdx[e];     }
    25142504#endif
    2515 #if QC_MTK_INTERVIEW_ARP_F0123_F0108
     2505#if H_3D_ARP
    25162506  Int       getFirstTRefIdx        ( RefPicList e )                { return  m_aiFirstTRefIdx[e];     }
    25172507  Void      setFirstTRefIdx        ( RefPicList e, Int i )         { m_aiFirstTRefIdx[e]    = i;      }
    2518 #endif
    2519 #if SHARP_ARP_REF_CHECK_F0105
    25202508  Bool      getArpRefPicAvailable( RefPicList e, Int viewIdx) {return m_arpRefPicAvailable[e][getVPS()->getLayerIdInNuh(viewIdx, 0)]; }
    25212509#endif
  • branches/HTM-9.2-dev0/source/Lib/TLibCommon/TypeDef.h

    r764 r765  
    9999                                              // MTK_TEXTURE_MRGCAND_BUGFIX_E0182  Bug fix for TEXTURE MERGING CANDIDATE     , JCT3V-E0182
    100100#define H_3D_ARP                          1   // Advanced residual prediction (ARP), JCT3V-D0177
     101                                              // QC_MTK_INTERVIEW_ARP_F0123_F0108 JCT3V-F0123; JCT3V-F0108
     102                                              // SHARP_ARP_REF_CHECK_F0105        ARP reference picture selection and DPB check
     103                                              // LGE_ARP_CTX_F0161                JCT3V-F0161
    101104#define H_3D_IC                           1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
    102105                                              // Unifying rounding offset, for IC part, JCT3V-D0135
     
    114117                                              // NBDV_DEFAULT_VIEWIDX_BUGFIX Bug fix for invalid default view index for NBDV
    115118                                              // NTT_DoNBDV_VECTOR_CLIP_E0141 disparity vector clipping in DoNBDV, JCT3V-E0141 and JCT3V-E0209
    116 
    117119#endif
    118120
     
    127129                                              // NTT_VSP_DC_BUGFIX_E0208 bugfix for sub-PU based DC in VSP, JCT3V-E0208
    128130                                              // NTT_VSP_COMMON_E0207_E0208 common part of JCT3V-E0207 and JCT3V-E0208
     131                                              // MTK_F0109_LG_F0120_VSP_BLOCK MTK_LG_SIMPLIFY_VSP_BLOCK_PARTITION_F0109_F0120 
     132                                              // SHARP_VSP_BLOCK_IN_AMP_F0102 VSP partitioning for AMP
     133                                              // MTK_VSP_SIMPLIFICATION_F0111 1. Inherited VSP also use NBDV of current CU, 2. VSP cannot be inherited from above LCU rowss
     134                                              // LGE_SHARP_VSP_INHERIT_F0104
     135
    129136#define H_3D_IV_MERGE                     1   // Inter-view motion merge candidate
    130137                                              // HHI_INTER_VIEW_MOTION_PRED
     
    136143                                              // TEXTURE MERGING CANDIDATE     , JCT3V-C0137
    137144                                              // QC_INRIA_MTK_MRG_E0126
    138                                               // ETRIKHU_MERGE_REUSE_F0093
     145                                              // ETRIKHU_MERGE_REUSE_F0093 QC_DEPTH_IV_MRG_F0125, JCT3V-F0125: Depth oriented Inter-view MV candidate
     146                                              // EC_MPI_ENABLING_MERGE_F0150, MPI flag in VPS and enabling in Merge mode
     147
     148
    139149
    140150
     
    170180#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
    171181                                              // LGE_INTER_SDC_E0156  Enable inter SDC for depth coding
     182#define H_3D_SPIVMP                       1   // H_3D_SPIVMP    // JCT3V-F0110: Sub-PU level inter-view motion prediction
    172183#define H_3D_FCO                          0   // Flexible coding order for 3D
     184
    173185
    174186
     
    211223#endif
    212224
    213 ////   ****** neighbouring block-based disparity vector  *********
     225////   ****** NEIGHBOURING BLOCK-BASED DISPARITY VECTOR  *********
    214226#if H_3D_NBDV
    215227#define DVFROM_LEFT                       0
     
    266278#endif
    267279
    268 /////////////////////////////////////////////////////////////////////////////////////////
    269 ///////////////////////////////////   HTM-9.2 Integrations //////////////////////////////
    270 /////////////////////////////////////////////////////////////////////////////////////////
    271 
    272 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!!
    273 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!!
    274 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!!
    275 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!!
    276 // !!! PLEASE PUT MACROS RELATED TO HTM-9.2 INTEGRATIONS HERE !!!
     280#if H_3D
     281#define PPS_FIX_DEPTH                           1
     282#endif
     283
     284
     285/////////////////////////////////////////////////////////////////////////////////////////
     286///////////////////////////////////   HTM-10.0 Integrations //////////////////////////////
     287/////////////////////////////////////////////////////////////////////////////////////////
     288
     289// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
     290// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
     291// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
     292// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
     293// !!! PLEASE PUT MACROS RELATED TO HTM-10.0 INTEGRATIONS HERE !!!
    277294
    278295/////////////////////////////////////////////////////////////////////////////////////////
     
    316333#define H_MV_6_PS_O0109_23                      1  // (PS/O0109/profile_ref_minus1 constraint) #23 Modify the semantics of profile_ref_minus1[ i ] to replace “shall be less than i?with “shall be less than or equal to i? from discussion of JCTVC-O0109
    317334#define H_MV_6_PS_O0109_24                      1  // (PS/O0109/vps_vui_present_flag move) #24 Move the vps_vui_present_flag to precede vps_vui_offset, and make vps_vui_offset conditional on that flag, from JCTVC-O0109
    318 /////////////////////////////////////////////////////////////////////////////////////////
    319 ///////////////////////////////////   HTM-9.0 Integrations //////////////////////////////
    320 /////////////////////////////////////////////////////////////////////////////////////////
    321 
    322 #if H_3D
    323 #define PPS_FIX_DEPTH                           1
    324 
    325 #define FIX_MISSING_MACRO_R690                  1 // Missing macro in integration to revision 690
    326 #define SEC_MPI_ENABLING_MERGE_F0150            1 // MPI flag in VPS and enabling in Merge mode
    327 
    328 #if H_3D_ARP
    329 #define QC_MTK_INTERVIEW_ARP_F0123_F0108        1 //JCT3V-F0123; JCT3V-F0108
    330 #define SHARP_ARP_REF_CHECK_F0105               1 // ARP reference picture selection and DPB check
    331 #define LGE_ARP_CTX_F0161                       1 //JCT3V-F0161
    332 #endif
    333 
    334 #if H_3D_IV_MERGE
    335 #define QC_DEPTH_IV_MRG_F0125                   1 // JCT3V-F0125: Depth oriented Inter-view MV candidate
    336 #define MTK_SPIVMP_F0110                        1 // JCT3V-F0110: Sub-PU level inter-view motion prediction
    337 #define MTK_F0110_FIX                           1 // Disable Sub-PU IVMP in Depth, fix some delete problems
    338 #define BUGFIX_F0093                            1 // bug fix for F0093 for depth IvMC pruning
    339 #define BUGFIX_2_F0093                          1 // bug fix for VSP inheritance
    340 #endif
    341 
    342 #if H_3D_VSP
    343 #define MTK_F0109_LG_F0120_VSP_BLOCK            1 // MTK_LG_SIMPLIFY_VSP_BLOCK_PARTITION_F0109_F0120 
    344 #define SHARP_VSP_BLOCK_IN_AMP_F0102            1 // VSP partitioning for AMP
    345 #define MTK_VSP_SIMPLIFICATION_F0111            1 // 1. Inherited VSP also use NBDV of current CU, 2. VSP cannot be inherited from above LCU rowss
    346 #define LGE_SHARP_VSP_INHERIT_F0104             1
    347 #endif
    348 #endif
    349335
    350336
  • branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r764 r765  
    18591859    pcVPS->setARPStepNum( i, 1 );
    18601860#endif 
    1861 #if MTK_SPIVMP_F0110
     1861#if H_3D_SPIVMP
    18621862    pcVPS->setSubPULog2Size(i, 0);
    18631863#endif
     
    18681868#if H_3D_IV_MERGE
    18691869        READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    1870 #if MTK_SPIVMP_F0110
     1870#if H_3D_SPIVMP
    18711871        READ_UVLC (uiCode, "log2_sub_PU_size_minus2");     pcVPS->setSubPULog2Size(i, uiCode+2);
    18721872#endif
     
    18851885      else
    18861886      {
    1887 #if QC_DEPTH_IV_MRG_F0125 && H_3D_IV_MERGE
     1887#if H_3D_IV_MERGE
    18881888        if(i!=1)
    18891889        {
     
    18911891        }
    18921892#endif
    1893 #if MTK_SPIVMP_F0110
     1893#if H_3D_SPIVMP
    18941894        if (i!=1)
    18951895        {
     
    18971897        }
    18981898#endif
    1899 #if SEC_MPI_ENABLING_MERGE_F0150
     1899#if H_3D_IV_MERGE
    19001900        READ_FLAG( uiCode, "mpi_flag[i]" );             pcVPS->setMPIFlag( i, uiCode == 1 ? true : false );
    19011901#endif
     
    25682568      READ_UVLC( uiCode, "five_minus_max_num_merge_cand");
    25692569#if H_3D_IV_MERGE
    2570 #if SEC_MPI_ENABLING_MERGE_F0150
    25712570      if(rpcSlice->getIsDepth())
    25722571      {
     
    25802579        rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
    25812580      }
    2582 #else
    2583       Bool ivMvPredFlag = rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ;
    2584       rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
    2585 #endif
     2581
    25862582#else
    25872583      rpcSlice->setMaxNumMergeCand(MRG_MAX_NUM_CANDS - uiCode);
  • branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCu.cpp

    r764 r765  
    135135Void TDecCu::decompressCU( TComDataCU* pcCU )
    136136{
    137 #if !QC_DEPTH_IV_MRG_F0125
     137#if !H_3D_IV_MERGE
    138138  xDecompressCU( pcCU, 0,  0 );
    139139#endif
     
    315315      m_ppcCU[uiDepth]->setHeight ( 0, pcCU->getSlice()->getSPS()->getMaxCUHeight()/(1<<uiDepth)  );
    316316      m_ppcCU[uiDepth]->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );     
    317 #if QC_DEPTH_IV_MRG_F0125
     317#if H_3D_IV_MERGE
    318318      if( pcCU->getSlice()->getIsDepth())
    319319      {
     
    333333        DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);
    334334      }
    335 #if QC_DEPTH_IV_MRG_F0125
     335#if H_3D_IV_MERGE
    336336      }
    337337#endif
     
    401401    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    402402    InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    403 #if MTK_SPIVMP_F0110
     403#if H_3D_SPIVMP
    404404    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
    405405    memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    412412    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    413413    m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo
    414 #if MTK_SPIVMP_F0110
     414#if H_3D_SPIVMP
    415415      , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP
    416416#endif
     
    462462      }
    463463    }
    464 #if MTK_SPIVMP_F0110
     464#if H_3D_SPIVMP
    465465    pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
    466466    if (bSPIVMPFlag[uiMergeIndex])
     
    482482      }
    483483    }
    484 #if MTK_F0110_FIX
    485484    delete[] pcMvFieldSP;
    486485    delete[] puhInterDirSP;
    487 #else
    488     delete pcMvFieldSP;
    489     delete puhInterDirSP;
    490 #endif
    491486#endif
    492487
    493488    xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
    494 #if QC_DEPTH_IV_MRG_F0125
     489#if H_3D_IV_MERGE
    495490    xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
    496491#endif
     
    508503    {
    509504      xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
    510 #if QC_DEPTH_IV_MRG_F0125
     505#if H_3D_IV_MERGE
    511506      xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
    512507#endif
     
    528523  setdQPFlag( bCodeDQP );
    529524  xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
    530 #if QC_DEPTH_IV_MRG_F0125
     525#if H_3D_IV_MERGE
    531526  xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
    532527#endif
     
    546541{
    547542  TComPic* pcPic = pcCU->getPic();
    548 #if !QC_DEPTH_IV_MRG_F0125 
     543#if !H_3D_IV_MERGE
    549544  Bool bBoundary = false;
    550545  UInt uiLPelX   = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsPartIdx] ];
  • branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp

    r764 r765  
    209209  UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS];
    210210#endif
    211 #if MTK_SPIVMP_F0110
     211#if H_3D_SPIVMP
    212212  Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
    213213  TComMvField*  pcMvFieldSP;
     
    256256          memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    257257          InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    258 #if MTK_SPIVMP_F0110
     258#if H_3D_SPIVMP
    259259          memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
    260260#endif
     
    262262          pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand);
    263263          pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo
    264 #if MTK_SPIVMP_F0110
     264#if H_3D_SPIVMP
    265265            , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP
    266266#endif
     
    293293        memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    294294        InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    295 #if MTK_SPIVMP_F0110
     295#if H_3D_SPIVMP
    296296        memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
    297297#endif
     
    299299        pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    300300        pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo
    301 #if MTK_SPIVMP_F0110
     301#if H_3D_SPIVMP
    302302          , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP
    303303#endif
     
    331331        }
    332332      }
    333 #if MTK_SPIVMP_F0110
     333#if H_3D_SPIVMP
    334334      pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 
    335335      if (bSPIVMPFlag[uiMergeIndex] != 0)
     
    385385    }
    386386  }
    387 #if MTK_SPIVMP_F0110
    388 #if MTK_F0110_FIX
     387#if H_3D_SPIVMP
    389388  delete[] pcMvFieldSP;
    390389  delete[] puhInterDirSP;
    391 #else
    392   delete pcMvFieldSP;
    393   delete puhInterDirSP;
    394 #endif
    395390#endif
    396391  return;
  • branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecTop.cpp

    r758 r765  
    302302}
    303303
    304 #if QC_DEPTH_IV_MRG_F0125
     304#if H_3D_IV_MERGE
    305305Void
    306306CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice )
     
    10071007    pcSlice->setRefPicList     ( tempRefPicLists, usedAsLongTerm, numPocTotalCurr, true );
    10081008#if H_3D_ARP
    1009 #if SHARP_ARP_REF_CHECK_F0105
    10101009    pcSlice->setARPStepNum(m_ivPicLists);
    1011 #else
    1012     pcSlice->setARPStepNum();
    1013 #endif
    10141010    if( pcSlice->getARPStepNum() > 1 )
    10151011    {
     
    11131109  }
    11141110
    1115 #if QC_DEPTH_IV_MRG_F0125
     1111#if H_3D_IV_MERGE
    11161112  if( pcSlice->getIsDepth() && m_pcCamParsCollector )
    11171113  {
     
    11271123    m_pcCamParsCollector->setSlice( pcSlice );
    11281124  }
    1129 #if QC_DEPTH_IV_MRG_F0125
     1125#if H_3D_IV_MERGE
    11301126  if( pcSlice->getIsDepth() )
    11311127  {
  • branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecTop.h

    r738 r765  
    7878  Int**** getBaseViewShiftLUTI()  { return m_aiBaseViewShiftLUT;   }
    7979
    80 #if QC_DEPTH_IV_MRG_F0125
     80#if H_3D_IV_MERGE
    8181  Void  copyCamParamForSlice( TComSlice* pcSlice );
    8282#endif
  • branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp

    r764 r765  
    16461646#if H_3D_IV_MERGE
    16471647        WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
    1648 #if MTK_SPIVMP_F0110
     1648#if H_3D_SPIVMP
    16491649        WRITE_UVLC( pcVPS->getSubPULog2Size(i)-2, "log2_sub_PU_size_minus2[i]");
    16501650#endif
     
    16621662      else
    16631663      {
    1664 #if QC_DEPTH_IV_MRG_F0125
    16651664        if(i!=1)
    16661665        {
    16671666          WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
    16681667        }
    1669 #endif
    1670 #if MTK_SPIVMP_F0110
     1668#if H_3D_SPIVMP
    16711669        if (i!=1)
    16721670        {
     
    16741672        }
    16751673#endif
    1676 #if SEC_MPI_ENABLING_MERGE_F0150
     1674#if H_3D_IV_MERGE
    16771675        WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 ,          "mpi_flag[i]" );
    16781676#endif
     
    21422140    {
    21432141#if H_3D_IV_MERGE
    2144 #if SEC_MPI_ENABLING_MERGE_F0150
    21452142      if(pcSlice->getIsDepth())
    21462143      {
     
    21542151        WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
    21552152      }
    2156 #else
    2157       Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
    2158       WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
    2159 #endif
    21602153#else
    21612154      WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     
    21972190  }
    21982191#if CAM_HLS_F0044
    2199 #if QC_DEPTH_IV_MRG_F0125
    22002192#if CAM_HLS_F0136_F0045_F0082
    22012193  if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() )
    22022194#else
    22032195  if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() )
    2204 #endif
    2205 #else
    2206   if( pcSlice->getSPS()->hasCamParInSliceHeader() )
    22072196#endif
    22082197  {
     
    22272216#else
    22282217    WRITE_UVLC(0,"slice_header_extension_length"); //<- this element needs to be set to the correct value!!
    2229 #if QC_DEPTH_IV_MRG_F0125
    22302218#if CAM_HLS_F0136_F0045_F0082
    22312219    if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() )
    22322220#else
    22332221    if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() )
    2234 #endif
    2235 #else
    2236     if( pcSlice->getSPS()->hasCamParInSliceHeader() )
    22372222#endif
    22382223    {
  • branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCfg.h

    r764 r765  
    408408  UInt      m_uiARPStepNum;
    409409#endif
    410 #if MTK_SPIVMP_F0110
     410#if H_3D_SPIVMP
    411411  Int      m_iSubPULog2Size;
    412412#endif
     
    423423  Bool      m_useDLT;
    424424#endif
    425 #if SEC_MPI_ENABLING_MERGE_F0150
     425#if H_3D_IV_MERGE
    426426  Bool      m_useMPI;
    427427#endif
     
    511511  Void       setARPStepNum                  ( UInt  u )      { m_uiARPStepNum = u;       }
    512512#endif
    513 #if MTK_SPIVMP_F0110
     513#if H_3D_SPIVMP
    514514  Int        getSubPULog2Size                   ()                   { return m_iSubPULog2Size;}
    515515  Void       setSubPULog2Size                   (Int u)              { m_iSubPULog2Size = u; }     
     
    10111011  Bool      getUsePC                        ()         { return m_bUsePC;  }
    10121012#endif
    1013 #if SEC_MPI_ENABLING_MERGE_F0150
     1013#if H_3D_IV_MERGE
    10141014  Void      setUseMPI                       ( Bool b ) { m_useMPI = b;    }
    10151015  Bool      getUseMPI                       ()         { return m_useMPI; }
  • branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp

    r764 r765  
    567567          PartSize ePartTemp = rpcTempCU->getPartitionSize(0);
    568568          rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );     
    569 #if QC_DEPTH_IV_MRG_F0125
     569#if H_3D_IV_MERGE
    570570          if (rpcTempCU->getSlice()->getIsDepth() )
    571571          {
     
    582582            DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo);
    583583
    584 #if QC_DEPTH_IV_MRG_F0125
     584#if H_3D_IV_MERGE
    585585          }
    586586#endif
     
    18391839  for( Int nARPW=nARPWMax; nARPW >= 0 ; nARPW-- )
    18401840  {
    1841 #if FIX_MISSING_MACRO_R690
    18421841    memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) );
    1843 #else
    1844     memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS*sizeof(Int) );
    1845 #endif
    18461842    rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
    18471843    rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );
     
    18551851    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    18561852    InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    1857 #if MTK_SPIVMP_F0110
     1853#if H_3D_SPIVMP
    18581854    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
    18591855    memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    18671863    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
    18681864    rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo
    1869 #if MTK_SPIVMP_F0110
     1865#if H_3D_SPIVMP
    18701866      , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP
    18711867#endif
     
    19101906          rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth );
    19111907#endif
    1912 #if MTK_SPIVMP_F0110
     1908#if H_3D_SPIVMP
    19131909          rpcTempCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeCand], 0, 0, uhDepth);
    19141910          if (bSPIVMPFlag[uiMergeCand])
     
    19361932            rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    19371933            rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    1938 #if MTK_SPIVMP_F0110
     1934#if H_3D_SPIVMP
    19391935          }
    19401936#endif
     
    20572053  }
    20582054 }
    2059 #if MTK_SPIVMP_F0110
    2060 #if MTK_F0110_FIX
     2055#if H_3D_SPIVMP
    20612056 delete[] pcMvFieldSP;
    20622057 delete[] puhInterDirSP;
    2063 #else
    2064  delete pcMvFieldSP;
    2065  delete puhInterDirSP;
    2066 #endif
    20672058#endif
    20682059#if H_3D_ARP
     
    21342125
    21352126    m_pcPredSearch->motionCompensation( rpcTempCU , m_ppcPredYuvTemp[uhDepth] );
    2136 
    2137 #if !QC_MTK_INTERVIEW_ARP_F0123_F0108
    2138     if(rpcTempCU->getPartitionSize(0)==SIZE_2Nx2N)
    2139     {
    2140       Bool bSignalflag[2] = { true, true };
    2141       for(UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx ++ )
    2142       {
    2143         RefPicList eRefList = uiRefListIdx ? REF_PIC_LIST_1 : REF_PIC_LIST_0;
    2144         Int iRefIdx = rpcTempCU->getCUMvField(eRefList)->getRefIdx(0);
    2145         if( iRefIdx < 0 || rpcTempCU->getSlice()->getPOC() == rpcTempCU->getSlice()->getRefPOC(eRefList, iRefIdx) )
    2146         {
    2147           bSignalflag[uiRefListIdx] = false;
    2148         }
    2149       }
    2150       if( !bSignalflag[0] && !bSignalflag[1] )
    2151       {
    2152         rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth );
    2153       }
    2154     }
    2155 #endif
    21562127  }
    21572128  else
     
    21732144   {
    21742145     m_ppcWeightedTempCU[uhDepth]->copyPartFrom( rpcTempCU , 0 , uhDepth );
    2175 
    2176 #if !QC_MTK_INTERVIEW_ARP_F0123_F0108
    2177      Bool bSignalflag[2] = { true, true };
    2178      for(UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx ++ )
    2179      {
    2180        RefPicList eRefList = uiRefListIdx ? REF_PIC_LIST_1 : REF_PIC_LIST_0;
    2181        Int iRefIdx = rpcTempCU->getCUMvField(eRefList)->getRefIdx(0);
    2182        if( iRefIdx < 0 || rpcTempCU->getSlice()->getPOC() == rpcTempCU->getSlice()->getRefPOC(eRefList, iRefIdx) )
    2183        {
    2184          bSignalflag[uiRefListIdx] = false;
    2185        }
    2186      }
    2187      if( !bSignalflag[0] && !bSignalflag[1])
    2188      {
    2189        rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth );
    2190      }
    2191 #endif
    21922146   }
    21932147  }
  • branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncGOP.cpp

    r762 r765  
    745745#if H_3D_ARP
    746746    //GT: This seems to be broken when layerId in vps is not equal to layerId in nuh
    747 #if SHARP_ARP_REF_CHECK_F0105
    748747    pcSlice->setARPStepNum(m_ivPicLists);
    749 #else
    750     pcSlice->setARPStepNum();
    751 #endif
    752748    if(pcSlice->getARPStepNum() > 1)
    753749    {
  • branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp

    r764 r765  
    35813581                                 , InheritedVSPDisInfo*  inheritedVSPDisInfo
    35823582#endif
    3583 #if MTK_SPIVMP_F0110
     3583#if H_3D_SPIVMP
    35843584                                 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP
    35853585#endif
     
    36073607                                        , inheritedVSPDisInfo
    36083608#endif
    3609 #if MTK_SPIVMP_F0110
     3609#if H_3D_SPIVMP
    36103610                                        , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP
    36113611#endif
     
    36283628                                      , inheritedVSPDisInfo
    36293629#endif
    3630 #if MTK_SPIVMP_F0110
     3630#if H_3D_SPIVMP
    36313631                                      , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP
    36323632#endif
     
    36543654      PartSize ePartSize = pcCU->getPartitionSize( 0 );
    36553655
    3656 #if MTK_SPIVMP_F0110
     3656#if H_3D_SPIVMP
    36573657      pcCU->setSPIVMPFlagSubParts( pbSPIVMPFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ));
    36583658      if (pbSPIVMPFlag[uiMergeCand])
     
    36763676        pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
    36773677        pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
    3678 #if MTK_SPIVMP_F0110
     3678#if H_3D_SPIVMP
    36793679      }
    36803680#endif
     
    43554355      DisInfo OriginalDvInfo = pcCU->getDvInfo(uiAbsPartIdx);
    43564356#endif
    4357 #if MTK_SPIVMP_F0110
     4357#if H_3D_SPIVMP
    43584358      Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
    43594359      memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    43684368                      , inheritedVSPDisInfo
    43694369#endif
    4370 #if MTK_SPIVMP_F0110
     4370#if H_3D_SPIVMP
    43714371                      , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP
    43724372#endif
     
    43824382        pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    43834383#endif
    4384 #if MTK_SPIVMP_F0110
     4384#if H_3D_SPIVMP
    43854385        pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 
    43864386        if (bSPIVMPFlag[uiMRGIndex]!=0)
     
    44164416            pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx );
    44174417          }
    4418 #if MTK_SPIVMP_F0110
     4418#if H_3D_SPIVMP
    44194419        }
    44204420#endif
     
    44304430      else
    44314431      {
    4432 #if MTK_SPIVMP_F0110       
     4432#if H_3D_SPIVMP       
    44334433        pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    44344434#endif
     
    44454445        }
    44464446      }
    4447 #if MTK_SPIVMP_F0110
    4448 #if MTK_F0110_FIX
     4447#if H_3D_SPIVMP
    44494448      delete[] pcMvFieldSP;
    44504449      delete[] puhInterDirSP;
    4451 #else
    4452       delete pcMvFieldSP;
    4453       delete puhInterDirSP;
    4454 #endif
    44554450#endif
    44564451    }
     
    53665361      dZeroCost = dCost + 1;
    53675362    }
    5368 #if MTK_SPIVMP_F0110
     5363#if H_3D_SPIVMP
    53695364    if ( dZeroCost < dCost || pcCU->getQtRootCbf(0)==0)
    53705365#else
  • branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncSearch.h

    r764 r765  
    417417                                  , InheritedVSPDisInfo*  inheritedVSPDisInfo
    418418#endif
    419 #if MTK_SPIVMP_F0110
     419#if H_3D_SPIVMP
    420420                                  , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP
    421421#endif
  • branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp

    r724 r765  
    556556  rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() );
    557557#if H_3D_IV_MERGE
    558 #if SEC_MPI_ENABLING_MERGE_F0150
    559558  if(rpcSlice->getIsDepth())
    560559  {
     
    565564    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
    566565  }
    567 #else
    568    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
    569 #endif
    570566#else
    571567  rpcSlice->setMaxNumMergeCand        ( m_pcCfg->getMaxNumMergeCand()        );
  • branches/HTM-9.2-dev0/source/Lib/TLibEncoder/TEncTop.cpp

    r758 r765  
    855855#if H_3D
    856856#if !CAM_HLS_F0136_F0045_F0082
    857 #if !QC_DEPTH_IV_MRG_F0125
    858   if ( !m_isDepth )
    859 #endif
    860857  {
    861858    m_cSPS.initCamParaSPS           ( m_viewIndex, m_uiCamParPrecision, m_bCamParInSliceHeader, m_aaiCodedScale, m_aaiCodedOffset );
Note: See TracChangeset for help on using the changeset viewer.