Changeset 1124 in 3DVCSoftware for trunk/source/Lib/TLibCommon


Ignore:
Timestamp:
10 Nov 2014, 12:22:20 (10 years ago)
Author:
tech
Message:

Merged branch 12.2-dev0@1123

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

Legend:

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

    r1084 r1124  
    154154#endif
    155155
     156#if !LGE_DDD_REMOVAL_J0042_J0030
    156157#if H_3D_DDD
    157158  m_pucDisparityDerivedDepth = NULL;
    158159  m_pbUseDDD = NULL;
     160#endif
    159161#endif
    160162}
     
    298300  // create pattern memory
    299301  m_pcPattern            = (TComPattern*)xMalloc(TComPattern, 1);
    300  
     302
     303#if !LGE_DDD_REMOVAL_J0042_J0030
    301304#if H_3D_DDD
    302305  m_pucDisparityDerivedDepth         = (UChar*  )xMalloc( UChar,  uiNumPartition);
    303306  m_pbUseDDD                         = (Bool*  ) xMalloc( Bool,   uiNumPartition);
    304307#endif
     308#endif
    305309
    306310  // create motion vector fields
     
    386390#endif
    387391
     392#if !LGE_DDD_REMOVAL_J0042_J0030
    388393#if H_3D_DDD
    389394    if ( m_pucDisparityDerivedDepth ) { xFree(m_pucDisparityDerivedDepth);          m_pucDisparityDerivedDepth        = NULL; }
    390395    if ( m_pbUseDDD                 ) { xFree(m_pbUseDDD);                          m_pbUseDDD                        = NULL; }
     396#endif
    391397#endif
    392398
     
    518524#endif
    519525
     526#if !LGE_DDD_REMOVAL_J0042_J0030
    520527#if H_3D_DDD
    521528    m_pucDisparityDerivedDepth[ui] = pcFrom->m_pucDisparityDerivedDepth[ui];
    522529    m_pbUseDDD[ui] = pcFrom->m_pbUseDDD[ui];
    523530#endif
    524 
     531#endif
    525532    m_puhWidth  [ui] = pcFrom->getWidth(ui);
    526533    m_puhHeight [ui] = pcFrom->getHeight(ui);
     
    604611#endif
    605612
     613#if !LGE_DDD_REMOVAL_J0042_J0030
    606614#if H_3D_DDD
    607615    memset( m_pucDisparityDerivedDepth        + firstElement, 0,           numElements * sizeof( *m_pucDisparityDerivedDepth ) );
    608616    memset( m_pbUseDDD                        + firstElement, 0,           numElements * sizeof( *m_pbUseDDD ) );
     617#endif
    609618#endif
    610619
     
    784793#endif
    785794
     795#if !LGE_DDD_REMOVAL_J0042_J0030
    786796#if H_3D_DDD
    787797      m_pucDisparityDerivedDepth[ui] = 0;
    788798      m_pbUseDDD[ui] = 0;
     799#endif
    789800#endif
    790801
     
    893904#endif
    894905
     906#if !LGE_DDD_REMOVAL_J0042_J0030
    895907#if H_3D_DDD
    896908  memset( m_pucDisparityDerivedDepth,         0, iSizeInUchar );
    897909  memset( m_pbUseDDD,                         0, iSizeInBool );
     910#endif
    898911#endif
    899912
     
    9901003#endif
    9911004
     1005#if !LGE_DDD_REMOVAL_J0042_J0030
    9921006#if H_3D_DDD
    9931007      m_pucDisparityDerivedDepth[ui] = pcCU->m_pucDisparityDerivedDepth[uiPartOffset+ui];
    9941008      m_pbUseDDD[ui]                 = pcCU->m_pbUseDDD[uiPartOffset+ui];
     1009#endif
    9951010#endif
    9961011
     
    11391154#endif
    11401155
     1156#if !LGE_DDD_REMOVAL_J0042_J0030
    11411157#if H_3D_DDD
    11421158  m_pucDisparityDerivedDepth          = pcCU->getDDDepth()        + uiPart;
    11431159  m_pbUseDDD                          = pcCU->getUseDDD()         + uiPart;
     1160#endif
    11441161#endif
    11451162
     
    12921309#endif
    12931310
     1311#if !LGE_DDD_REMOVAL_J0042_J0030
    12941312#if H_3D_DDD
    12951313  m_pucDisparityDerivedDepth         = pcCU->getDDDepth()              + uiAbsPartIdx;
    12961314  m_pbUseDDD                         = pcCU->getUseDDD()              + uiAbsPartIdx;
     1315#endif
    12971316#endif
    12981317   
     
    13601379  memcpy( m_puhCbf[1] + uiOffset, pcCU->getCbf(TEXT_CHROMA_U), iSizeInUchar );
    13611380  memcpy( m_puhCbf[2] + uiOffset, pcCU->getCbf(TEXT_CHROMA_V), iSizeInUchar );
    1362  
     1381
     1382#if !LGE_DDD_REMOVAL_J0042_J0030
    13631383#if H_3D_DDD
    13641384  memcpy( m_pucDisparityDerivedDepth          + uiOffset, pcCU->getDDDepth(),         iSizeInUchar );
    13651385  memcpy( m_pbUseDDD                          + uiOffset, pcCU->getUseDDD(),          iSizeInBool );
     1386#endif
    13661387#endif
    13671388
     
    14641485#endif
    14651486
     1487#if !LGE_DDD_REMOVAL_J0042_J0030
    14661488#if H_3D_DDD
    14671489  memcpy( rpcCU->getDDDepth()          + m_uiAbsIdxInLCU, m_pucDisparityDerivedDepth,         iSizeInUchar  );
    14681490  memcpy( rpcCU->getUseDDD()           + m_uiAbsIdxInLCU, m_pbUseDDD,                         iSizeInBool  );
     1491#endif
    14691492#endif
    14701493
     
    16001623  memcpy( rpcCU->getCbf(TEXT_CHROMA_U) + uiPartOffset, m_puhCbf[1], iSizeInUchar );
    16011624  memcpy( rpcCU->getCbf(TEXT_CHROMA_V) + uiPartOffset, m_puhCbf[2], iSizeInUchar );
    1602  
     1625
     1626#if !LGE_DDD_REMOVAL_J0042_J0030
    16031627#if H_3D_DDD
    16041628  memcpy( rpcCU->getDDDepth()          + uiPartOffset, m_pucDisparityDerivedDepth,         iSizeInUchar );
    16051629  memcpy( rpcCU->getUseDDD()           + uiPartOffset, m_pbUseDDD,                         iSizeInBool );
     1630#endif
    16061631#endif
    16071632
     
    16711696}
    16721697
     1698#if !LGE_DDD_REMOVAL_J0042_J0030
    16731699#if H_3D_DDD
    16741700Void TComDataCU::setDDDepthSubParts ( UChar ucDDD, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )
     
    16871713}
    16881714
     1715#endif
    16891716#endif
    16901717
     
    23982425    Bool depthRefineFlag = false;
    23992426#if H_3D_NBDV_REF
     2427#if HHI_TOOL_PARAMETERS_I2_J0107
     2428    depthRefineFlag = m_pcSlice->getDepthRefinementFlag(  );
     2429#else
    24002430    depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() );
     2431#endif
    24012432#endif // H_3D_NBDV_REF
    24022433   
     
    33093340inline Bool TComDataCU::xAddVspCand( Int mrgCandIdx, DisInfo* pDInfo, Int& iCount)
    33103341{
     3342#if HHI_TOOL_PARAMETERS_I2_J0107
     3343  if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getViewSynthesisPredFlag( ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1)
     3344#else
    33113345  if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getVPS()->getViewSynthesisPredFlag( m_pcSlice->getLayerIdInVps() ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1)
     3346#endif
    33123347  {
    33133348    return false;
     
    38643899)
    38653900{
     3901#if !SEC_A1_BASED_VSP_J0039
    38663902  UInt uiAbsPartAddr = m_uiAbsIdxInLCU + uiAbsPartIdx;
     3903#endif
    38673904#if H_3D_IV_MERGE
    38683905  ////////////////////////////
     
    38773914  UChar tmpDir;
    38783915
     3916#if !LGE_DDD_REMOVAL_J0042_J0030
    38793917#if H_3D_DDD
    38803918  m_iUseDDDCandIdx = -1;
     3919#endif
    38813920#endif
    38823921
     
    39193958  deriveLeftBottomIdxGeneral  ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB );
    39203959#if H_3D
     3960#if HHI_TOOL_PARAMETERS_I2_J0107
     3961  Bool bMPIFlag   = getSlice()->getMpiFlag();
     3962#else
    39213963  Bool bMPIFlag   = getSlice()->getVPS()->getMPIFlag( getSlice()->getLayerIdInVps() );
     3964#endif
    39223965  Bool bIsDepth = getSlice()->getIsDepth();
    39233966#endif
     
    39794022
    39804023  // above
     4024#if !SEC_A1_BASED_VSP_J0039
    39814025  UInt uiAbovePartIdx = 0;
    39824026  TComDataCU* pcCUAbove = 0;
    39834027  pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT );
     4028#endif
    39844029
    39854030  if (getAvailableFlagB1())
     
    39884033#if H_3D_VSP
    39894034    ,
     4035#if SEC_A1_BASED_VSP_J0039
     4036      false
     4037#else
    39904038      ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) != 0)
    39914039#if H_3D_IC
     
    40004048      )
    40014049#endif
     4050#endif
    40024051      , false
    40034052      );
     
    40064055
    40074056  // above right
     4057#if !SEC_A1_BASED_VSP_J0039
    40084058  UInt uiAboveRightPartIdx = 0;
    40094059  TComDataCU* pcCUAboveRight = 0;
    40104060  pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT );
     4061#endif
    40114062
    40124063  if (getAvailableFlagB0())
     
    40154066#if H_3D_VSP
    40164067    ,
     4068#if SEC_A1_BASED_VSP_J0039
     4069      false
     4070#else
    40174071      ( ( ( getAddr() - pcCUAboveRight->getAddr() ) == 0) && (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) != 0)
    40184072#if H_3D_IC
     
    40274081      )
    40284082#endif
     4083#endif
    40294084      , false
    40304085      );
     
    40334088
    40344089  // left bottom
     4090#if !SEC_A1_BASED_VSP_J0039
    40354091  UInt uiLeftBottomPartIdx = 0;
    40364092  TComDataCU* pcCULeftBottom = getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB );
     4093#endif
    40374094
    40384095  if (getAvailableFlagA0())
     
    40414098#if H_3D_VSP
    40424099    ,
     4100#if SEC_A1_BASED_VSP_J0039
     4101      false
     4102#else
    40434103      (pcCULeftBottom->getVSPFlag(uiLeftBottomPartIdx) != 0
    40444104#if H_3D_IC
     
    40534113      )
    40544114#endif
     4115#endif
    40554116      , false
    40564117      );
     
    40594120
    40604121  // above left
     4122#if !SEC_A1_BASED_VSP_J0039
    40614123  UInt uiAboveLeftPartIdx = 0;
    40624124  TComDataCU* pcCUAboveLeft = 0;
    40634125  pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr );
     4126#endif
    40644127
    40654128  if (getAvailableFlagB2())
     
    40684131#if H_3D_VSP
    40694132    ,
     4133#if SEC_A1_BASED_VSP_J0039
     4134      false
     4135#else
    40704136      ( ( ( getAddr() - pcCUAboveLeft->getAddr() ) == 0) && (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) != 0)
    40714137#if H_3D_IC
     
    40794145#endif
    40804146      )
     4147#endif
    40814148#endif
    40824149      , false
     
    42764343    }
    42774344  }
     4345#if !LGE_DDD_REMOVAL_J0042_J0030
    42784346#if H_3D_DDD
    42794347  if( m_pcSlice->getIsDepth() && m_pcSlice->getViewIndex() != 0  && bMPIFlag )
     
    43604428  }
    43614429#endif
     4430#endif
    43624431  /////////////////////////////////////////////////////////////////
    43634432  //////// DERIVE IvMC, IvMCShift,IvDCShift, IvDC  Candidates /////
     
    43724441  Int    ivCandDir   [4] = {0, 0, 0, 0};
    43734442
     4443#if HHI_TOOL_PARAMETERS_I2_J0107
     4444  Bool ivMvPredFlag   = getSlice()->getIvMvPredFlag();
     4445#else
    43744446  Bool ivMvPredFlag   = getSlice()->getVPS()->getIvMvPredFlag( getSlice()->getLayerIdInVps() );
     4447#endif
    43754448
    43764449  ivMvPredFlag &= (nPSW + nPSH > 12);
     
    44554528
    44564529#if H_3D
     4530#if SEC_A1_BASED_VSP_J0039
     4531  iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable;
     4532#else
    44574533  iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable + m_mergCands[MRG_B0].m_bAvailable;
     4534#endif
    44584535#else
    44594536  //left
     
    45544631#endif
    45554632
     4633#if !LGE_DDD_REMOVAL_J0042_J0030
    45564634#if H_3D_DDD
    45574635  // early termination
     
    45614639  }
    45624640#endif
     4641#endif
     4642
     4643#if SEC_A1_BASED_VSP_J0039
     4644#if H_3D_VSP
     4645  /////////////////////////////////////////////////
     4646  //////// VIEW SYNTHESIS PREDICTION (VSP) ////////
     4647  /////////////////////////////////////////////////
     4648  if (iCount<getSlice()->getMaxNumMergeCand())
     4649  {
     4650    if (
     4651      (!getAvailableFlagA1() || !(pcCULeft->getVSPFlag(uiLeftPartIdx) != 0)) &&
     4652#if H_3D_IC
     4653      !bICFlag &&
     4654#endif
     4655#if H_3D_ARP
     4656      !bARPFlag &&
     4657#endif
     4658#if H_3D
     4659      (nPSW + nPSH > 12) &&
     4660#endif
     4661#if H_3D_DBBP
     4662      !bDBBPFlag &&
     4663#endif
     4664      xAddVspCand( mrgCandIdx, &cDisInfo, iCount ) )
     4665    {
     4666      return;
     4667    }
     4668
     4669    // early termination
     4670    if (iCount == getSlice()->getMaxNumMergeCand())
     4671    {
     4672      return;
     4673    }
     4674#endif
     4675#if H_3D_VSP
     4676  }
     4677#endif
     4678
     4679#if H_3D
     4680  iCount += m_mergCands[MRG_B0].m_bAvailable;
     4681#endif
     4682#endif
     4683
    45634684
    45644685#if H_3D_IV_MERGE
     
    46154736#endif // H_3D_IV_MERGE
    46164737
     4738#if !SEC_A1_BASED_VSP_J0039
    46174739#if H_3D_VSP
    46184740  /////////////////////////////////////////////////
     
    46484770#if H_3D
    46494771  }
     4772#endif
    46504773#endif
    46514774
     
    58936016    iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
    58946017
     6018#if HHI_TOOL_PARAMETERS_I2_J0107
     6019    if ( iScale != 4096 && m_pcSlice->getIvMvScalingFlag( ) )
     6020#else
    58956021    if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) )
     6022#endif
    58966023    {
    58976024      rcMv = cColMv.scaleMv( iScale );
     
    60766203
    60776204  TComMv cMv;
     6205#if LGE_DEFAULT_DV_J0046
     6206  if ( getSlice()->getDefaultRefViewIdxAvailableFlag() )
     6207  {
     6208      Int iViewIdx = getSlice()->getDefaultRefViewIdx();
     6209      pDisp->m_aVIdxCan = iViewIdx;
     6210#if HHI_TOOL_PARAMETERS_I2_J0107
     6211      Int iDisp     = getSlice()->getDepthToDisparityB( iViewIdx )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ];
     6212#else
     6213      Int iDisp     = getSlice()->getDepthToDisparityB( iViewIdx )[ 1 << ( getSlice()->getSPS()->getBitDepthY() - 1 ) ];
     6214#endif
     6215
     6216      cMv.setHor(iDisp);
     6217      cMv.setVer(0);
     6218      pDisp->m_acNBDV = cMv;
     6219      pDisp->m_aVIdxCan = iViewIdx;
     6220
     6221      return true;
     6222  }
     6223  return false;
     6224#else
    60786225#if MTK_I0093
    60796226  Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ];
     
    60876234
    60886235  return true;
     6236#endif
    60896237}
    60906238#endif
     
    61186266    }
    61196267    break;
     6268#if !SINGLE_DEPTH_SIMP_J0115
    61206269  case 2: // Above
    61216270    if(yP != 0)
     
    61396288    }
    61406289    break;
     6290#endif
    61416291  default:
    61426292      break;
     
    61776327  }
    61786328#if H_3D_NBDV_REF
     6329#if HHI_TOOL_PARAMETERS_I2_J0107
     6330  if( !m_pcSlice->getDepthRefinementFlag( ) )
     6331#else
    61796332  if( !m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ) )
     6333#endif
    61806334  {
    61816335    bDepthRefine = false;
     
    63386492  pDInfo->m_acNBDV = defaultDV;
    63396493
     6494#if LGE_DEFAULT_DV_J0046
     6495  if (getSlice()->getDefaultRefViewIdxAvailableFlag())
     6496  {
     6497      pDInfo->m_aVIdxCan = getSlice()->getDefaultRefViewIdx();
     6498
     6499#if H_3D_NBDV_REF
     6500          TComPic* picDepth = NULL;
     6501#if H_3D_FCO_VSP_DONBDV_E0163
     6502          picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
     6503      if ( picDepth->getPicYuvRec() != NULL ) 
     6504      {
     6505          defaultDV.setZero();
     6506      }
     6507      else // Go back with virtual depth
     6508      {
     6509          picDepth = getSlice()->getIvPic( true, getSlice()->getDefaultRefViewIdx());
     6510      }
     6511
     6512      assert(picDepth != NULL);
     6513#else
     6514          picDepth = getSlice()->getIvPic( true, getSlice()->getDefaultRefViewIdx());
     6515#endif
     6516      if (picDepth && bDepthRefine)
     6517      {
     6518          estimateDVFromDM(getSlice()->getDefaultRefViewIdx(), uiPartIdx, picDepth, uiPartAddr, &defaultDV ); // from base view
     6519      }
     6520      pDInfo->m_acDoNBDV = defaultDV;
     6521#endif
     6522#if LGE_SIMP_DISP_AVAIL_J0041
     6523      return true;
     6524#endif
     6525  }
     6526#else
    63406527  Int valid = 0;
    63416528  Int viewIndex = 0;
     
    63896576    pDInfo->m_acDoNBDV = defaultDV;
    63906577#endif
    6391   }
     6578#if LGE_SIMP_DISP_AVAIL_J0041
     6579    return true;
     6580#endif
     6581  }
     6582#endif
    63926583  return false;
    63936584}
     
    66436834  Bool depthRefineFlag = false;
    66446835#if H_3D_NBDV_REF
     6836#if HHI_TOOL_PARAMETERS_I2_J0107
     6837  depthRefineFlag = m_pcSlice->getDepthRefinementFlag( );
     6838#else
    66456839  depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() );
     6840#endif
    66466841#endif // H_3D_NBDV_REF
    66476842
     
    67016896Void TComDataCU::getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight)
    67026897{
     6898#if HHI_TOOL_PARAMETERS_I2_J0107
     6899  Int iSubPUSize = ( getSlice()->getIsDepth() ? getSlice()->getMpiSubPbSize() : getSlice()->getSubPbSize() );
     6900#else
    67036901  Int iSubPUSize = 1<<getSlice()->getVPS()->getSubPULog2Size(getSlice()->getLayerId());
    67046902  if( getSlice()->getIsDepth() )
     
    67066904    iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId());
    67076905  }
     6906#endif
    67086907
    67096908  iNumSPInOneLine = iPUWidth/iSubPUSize;
     6909#if !HS_SP_SIMP_J0066
    67106910  iNumSPInOneLine = iNumSPInOneLine < 1 ? 1: iNumSPInOneLine;
     6911#endif
    67116912  Int iNumSPInOneColumn = iPUHeight/iSubPUSize;
     6913#if !HS_SP_SIMP_J0066
    67126914  iNumSPInOneColumn = iNumSPInOneColumn < 1 ? 1: iNumSPInOneColumn;
     6915#else
     6916  iNumSPInOneLine = (iPUHeight % iSubPUSize != 0 || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneLine;
     6917  iNumSPInOneColumn = (iPUHeight % iSubPUSize != 0  || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneColumn;
     6918#endif
    67136919  iNumSP = iNumSPInOneLine * iNumSPInOneColumn;
    67146920
     
    67846990  Bool depthRefineFlag = false;
    67856991#if H_3D_NBDV_REF
     6992#if HHI_TOOL_PARAMETERS_I2_J0107
     6993  depthRefineFlag = m_pcSlice->getDepthRefinementFlag( );
     6994#else
    67866995  depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() );
     6996#endif
    67876997#endif // H_3D_NBDV_REF
    67886998
  • trunk/source/Lib/TLibCommon/TComDataCU.h

    r1084 r1124  
    227227  DisInfo       m_cDefaultDisInfo;    ///< Default disparity information for initializing
    228228#endif
    229 
     229#if !LGE_DDD_REMOVAL_J0042_J0030
    230230#if H_3D_DDD
    231231  UChar*        m_pucDisparityDerivedDepth;
     
    234234  UChar         m_ucDDTmpDepth;
    235235#endif
    236 
     236#endif
    237237#if H_3D_IV_MERGE
    238238  TComMotionCand  m_mergCands[MRG_IVSHIFT+1];
     
    743743  UInt          getCoefScanIdx(UInt uiAbsPartIdx, UInt uiWidth, Bool bIsLuma, Bool bIsIntra);
    744744
     745#if !LGE_DDD_REMOVAL_J0042_J0030
    745746#if H_3D_DDD
    746747  UChar*       getDDDepth        ()                        { return m_pucDisparityDerivedDepth;        }
     
    759760  Int          getUseDDDCandIdx(){ return m_iUseDDDCandIdx;}
    760761
     762#endif
    761763#endif
    762764
  • trunk/source/Lib/TLibCommon/TComPrediction.cpp

    r1084 r1124  
    11581158  pcCU->clipMv(cMv);
    11591159
     1160#if !LGE_DDD_REMOVAL_J0042_J0030
    11601161#if H_3D_DDD
    11611162  if( pcCU->getUseDDD( uiPartAddr ) )
     
    11931194      //return;
    11941195  } else
     1196#endif
    11951197#endif
    11961198#if H_3D_ARP
     
    19491951    Int a, b, i, j;
    19501952    const Int iShift = IC_CONST_SHIFT;
     1953
    19511954    xGetLLSICPrediction( cu, mv, refPic, a, b, TEXT_CHROMA_U ); // Cb
    19521955    for ( i = 0; i < cxHeight; i++ )
     
    21872190      x += pRef[j];
    21882191      y += pRec[j];
    2189       xx += (pRef[j] * pRef[j])>>precShift;
    2190       xy += (pRef[j] * pRec[j])>>precShift;
     2192#if LGE_CHROMA_IC_J0050_J0034
     2193      if ( eType == TEXT_LUMA )
     2194      {
     2195#endif
     2196        xx += (pRef[j] * pRef[j])>>precShift;
     2197        xy += (pRef[j] * pRec[j])>>precShift;
     2198#if LGE_CHROMA_IC_J0050_J0034
     2199      }
     2200#endif
    21912201    }
    21922202    iCountShift += g_aucConvertToBit[ uiWidth ] + 1;
     
    22172227      x += pRef[0];
    22182228      y += pRec[0];
    2219 
    2220       xx += (pRef[0] * pRef[0])>>precShift;
    2221       xy += (pRef[0] * pRec[0])>>precShift;
    2222 
     2229#if LGE_CHROMA_IC_J0050_J0034
     2230      if ( eType == TEXT_LUMA )
     2231      {
     2232#endif
     2233        xx += (pRef[0] * pRef[0])>>precShift;
     2234        xy += (pRef[0] * pRec[0])>>precShift;
     2235#if LGE_CHROMA_IC_J0050_J0034
     2236      }
     2237#endif     
    22232238      pRef += iRefStride*2;
    22242239      pRec += iRecStride*2;
     
    22342249  }
    22352250
     2251#if LGE_CHROMA_IC_J0050_J0034
     2252  if (  eType != TEXT_LUMA )
     2253  {
     2254    a = 32;
     2255    b = (  y - x + ( 1 << ( iCountShift - 1 ) ) ) >> iCountShift;
     2256  }
     2257  else
     2258  {
     2259#endif
    22362260  xy += xx >> IC_REG_COST_SHIFT;
    22372261  xx += xx >> IC_REG_COST_SHIFT;
     
    22752299    }
    22762300  }   
     2301#if LGE_CHROMA_IC_J0050_J0034
     2302  }
     2303#endif
    22772304}
    22782305#endif
  • trunk/source/Lib/TLibCommon/TComRom.cpp

    r1084 r1124  
    362362const UChar g_dmm1TabIdxBits[6] =
    363363{ //2x2   4x4   8x8 16x16 32x32 64x64
     364#if MTK_DMM_SIM_J0035
     365     0,    7,   10,   9,    9,   13 };
     366#else
    364367     0,    7,   10,   11,   11,   13 };
     368#endif
    365369
    366370const UChar g_dmm3IntraTabIdxBits[6] =
     
    763767    }
    764768
     769#if MTK_DMM_SIM_J0035
     770    for( Int iK = 0; iK < uiBlockSize; iK += (uiWidth>=16 ?2:1))
     771    {
     772      for( Int iL = 0; iL < uiBlockSize; iL += ((uiWidth>=16 && uiOri<4)?2:1) )
     773      {
     774        cTempWedgelet.setWedgelet( uhStartX + (iK*iStepStartX) , uhStartY + (iK*iStepStartY), uhEndX + (iL*iStepEndX), uhEndY + (iL*iStepEndY), (UChar)uiOri, eWedgeRes, ((iL%2)==0 && (iK%2)==0) );
     775        addWedgeletToList( cTempWedgelet, racWedgeList, racWedgeRefList );
     776      }
     777    }
     778#else
    765779    for( Int iK = 0; iK < uiBlockSize; iK++ )
    766780    {
     
    771785      }
    772786    }
     787#endif
    773788  }
    774789
  • trunk/source/Lib/TLibCommon/TComSlice.cpp

    r1084 r1124  
    179179  }
    180180#endif
     181#if LGE_DEFAULT_DV_J0046
     182  m_iDefaultRefViewIdx = -1;
     183  m_bDefaultRefViewIdxAvailableFlag = false;
     184#endif
    181185}
    182186
     
    18741878  m_vpsBaseLayerInternalFlag = true;
    18751879  m_vpsBaseLayerAvailableFlag = true;
     1880
     1881#if  H_MV_FIX_NUM_VIEWS
     1882  m_numViews = 0;
     1883#endif
     1884
    18761885#endif
    18771886
     
    19091918  m_repFormatIdxPresentFlag = false;
    19101919  m_maxOneActiveRefLayerFlag = false;
     1920#if H_MV_HLS_FIX
     1921  m_vpsPocLsbAlignedFlag  = false;
     1922#endif
    19111923  m_directDepTypeLenMinus2   = 0;         
    19121924 
     
    19151927  m_vpsNonVuiExtensionLength = 0;
    19161928  m_splittingFlag    = false;
     1929
    19171930 
    19181931  for( Int i = 0; i < MAX_NUM_SCALABILITY_TYPES; i++ )
     
    19431956    m_layerIdInNuh      [i] = ( i == 0 ) ? 0 : -1;
    19441957    m_numDirectRefLayers[i] = 0;
     1958#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1959#if H_3D
     1960    m_numRefListLayers[i] = 0;
     1961#endif
     1962#endif
    19451963    m_vpsRepFormatIdx    [i] = 0;
    19461964    m_pocLsbNotPresentFlag[i] = 0;
     
    19501968#if H_3D
    19511969    m_viewIndex         [i] = -1;
     1970#if !HHI_TOOL_PARAMETERS_I2_J0107
    19521971    m_vpsDepthModesFlag [i] = false;
    19531972    m_ivMvScalingFlag[i] = true;
    19541973    m_bIVPFlag [i]      = false;
     1974#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     1975    m_singleDepthModeFlag[ i ] = false;
     1976#endif
     1977#endif
    19551978#endif
    19561979
     
    19611984      m_dependencyFlag  [i][j]    = false;
    19621985      m_idDirectRefLayer[i][j]    = -1;
     1986#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1987#if H_3D
     1988      m_idRefListLayer[i][j]    = -1;
     1989#endif
     1990#endif
    19631991      m_idPredictedLayer[i][j]    = -1;
    19641992      m_idRefLayer      [i][j]    = -1;
     
    19711999    }
    19722000#if H_3D_ARP
     2001#if !HHI_TOOL_PARAMETERS_I2_J0107
    19732002    m_uiUseAdvResPred[i]  = 0;
    19742003    m_uiARPStepNum[i]     = 1;
    19752004#endif
     2005#endif
    19762006  }
    19772007  m_vpsVUI = new TComVPSVUI;
    19782008  m_dpbSize = new TComDpbSize;
    19792009
     2010#if !HHI_TOOL_PARAMETERS_I2_J0107
    19802011#if H_3D
    19812012  for( Int i = 0; i < MAX_NUM_LAYERS; i++ )
     
    20102041  } 
    20112042#endif
     2043#endif
     2044
    20122045#endif
    20132046}
     
    20992132    Int iNuhLId = getLayerIdInNuh( i );
    21002133    Int d = 0;
     2134#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2135#if H_3D
     2136    Int l = 0;
     2137#endif
     2138#endif
    21012139    Int r = 0;
    21022140    Int p = 0;
     2141
    21032142    for( Int j = 0; j  <=  getMaxLayersMinus1(); j++ )
    21042143    {
     
    21082147        m_idDirectRefLayer[iNuhLId][d++] = jNuhLid;
    21092148      }
     2149#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2150#if H_3D
     2151      if( getDirectDependencyFlag( i , j ) && ( getDepthId( iNuhLId ) == getDepthId( jNuhLid ) ))
     2152      {
     2153        m_idRefListLayer [iNuhLId][l++] = jNuhLid;
     2154      }
     2155#endif
     2156#endif
     2157
    21102158      if( getDependencyFlag( i , j ) )
    21112159      {
     
    21182166    }
    21192167    m_numDirectRefLayers[ iNuhLId ] = d;
     2168#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2169#if H_3D
     2170    m_numRefListLayers[ iNuhLId ] = l;
     2171#endif
     2172#endif
     2173
    21202174    m_numRefLayers      [ iNuhLId ] = r;
    21212175    m_numPredictedLayers[ iNuhLId ] = p;
     
    21522206
    21532207
     2208#if H_MV_FIX_NUM_VIEWS
     2209Void     TComVPS::initNumViews( )
     2210{
     2211  m_numViews = 1;
     2212#if HHI_VIEW_ID_LIST_I5_J0107
     2213#if H_3D
     2214  AOF( m_viewOIdxList.size() == 0 );
     2215  m_viewOIdxList.push_back( 0 );       
     2216#endif
     2217#endif
     2218
     2219  for( Int i = 0; i <=  getMaxLayersMinus1(); i++ )
     2220  {
     2221    Int lId = getLayerIdInNuh( i );
     2222    if( i > 0 )
     2223    {
     2224      Bool newViewFlag = true;
     2225      for( Int j = 0; j < i; j++ )
     2226      {
     2227        if( getViewOrderIdx( lId )  ==  getViewOrderIdx( getLayerIdInNuh( j ) )  )
     2228        {
     2229          newViewFlag = false;
     2230        }
     2231      }
     2232      if( newViewFlag )
     2233      {
     2234        m_numViews++;
     2235#if HHI_VIEW_ID_LIST_I5_J0107
     2236#if H_3D
     2237        m_viewOIdxList.push_back( getViewOrderIdx( lId ) );       
     2238#endif
     2239#endif
     2240      }
     2241    }
     2242  }
     2243}
     2244#endif
     2245
     2246
    21542247Int TComVPS::getScalabilityId( Int layerIdInVps, ScalabilityType scalType )
    21552248{
     
    23102403}
    23112404
     2405#if !H_MV_FIX_NUM_VIEWS
    23122406Int TComVPS::getNumViews()
    23132407{
     
    23212415    }   
    23222416  }
    2323 
    23242417  return numViews;
    23252418}
     2419#endif
    23262420
    23272421
     
    25622656  xPrintArray( "IdRefLayer"      , getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numRefLayers, m_idRefLayer, true );
    25632657  xPrintArray( "IdDirectRefLayer", getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numDirectRefLayers, m_idDirectRefLayer, true );
     2658#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2659#if H_3D
     2660  xPrintArray( "IdRefListLayer", getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numRefListLayers, m_idRefListLayer, true );
     2661#endif
     2662#endif
     2663
    25642664  std::cout << std::endl;
    25652665}
     
    29843084      i++;
    29853085    }
     3086#if SHARP_DLT_SIMP_J0029
     3087    iIdxUp = bFound ?  iIdxDown + 1 : iNumDepthValues-1;
     3088#else
    29863089    // iterate over indices to find upper closest depth
    29873090    i = iNumDepthValues-2;
     
    30003103    // assert monotony
    30013104    assert(iIdxDown<=iIdxUp);
     3105#endif
    30023106
    30033107    // assign closer depth value/idx
     
    35803684{
    35813685  TComVPS* vps = getVPS();
     3686#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3687#if H_3D
     3688  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdRefListLayer( getLayerId(), i ) );
     3689#else
    35823690  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) );
    3583 
     3691#endif
     3692#else
     3693  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) );
     3694#endif
     3695
     3696#if H_MV_FIX_REF_LAYER_PIC_FLAG
     3697  Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >=  getTLayer()  && ( getTLayer() == 0   ||
     3698    vps->getMaxTidIlRefPicsPlus1( refLayerIdx, vps->getLayerIdInVps( getLayerId() )) > getTLayer() ));
     3699#else
    35843700  Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >=  getTLayer() )  && ( getTLayer() == 0  ) &&
    35853701    ( vps->getMaxTidIlRefPicsPlus1( refLayerIdx, vps->getLayerIdInVps( getLayerId() )) > getTLayer() );
    3586 
     3702#endif
    35873703  return refLayerPicFlag;       
    35883704}   
     
    35923708  Int refLayerPicIdc = -1;
    35933709  Int curj = 0;
     3710#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3711#if H_3D
     3712  for( Int i = 0;  i < getVPS()->getNumRefListLayers( getLayerId()) ; i++ )
     3713#else
    35943714  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3715#endif
     3716#else
     3717  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3718#endif
    35953719  {
    35963720    if( getRefLayerPicFlag( i ) )
     
    36133737
    36143738  Int numRefLayerPics = 0;
     3739#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3740#if H_3D
     3741  for( Int i = 0;  i < getVPS()->getNumRefListLayers( getLayerId()) ; i++ )
     3742#else
    36153743  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3744#endif
     3745#else
     3746  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3747#endif
    36163748  {
    36173749    numRefLayerPics += getRefLayerPicFlag( i );
     
    36383770    numActiveRefLayerPics = 0;
    36393771  }
     3772#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3773#if H_3D
     3774  else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumRefListLayers( getLayerId() ) == 1 )
     3775#else
    36403776  else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 )
     3777#endif
     3778#else
     3779  else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 )
     3780#endif 
    36413781  {
    36423782    numActiveRefLayerPics = 1;
     
    36513791Int TComSlice::getRefPicLayerId( Int i )
    36523792{
     3793#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3794#if H_3D
     3795  return getVPS()->getIdRefListLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
     3796#else
    36533797  return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
    3654 }
     3798#endif
     3799#else
     3800  return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
     3801#endif
     3802}
     3803
     3804#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     3805Void TComSlice::setDefaultRefView( )
     3806{
     3807  setDefaultRefViewIdx( -1 );
     3808  setDefaultRefViewIdxAvailableFlag( false );
     3809
     3810  Int valid = 0;
     3811  Int DefaultRefViewIdx = -1;
     3812  for( UInt curViewIdx = 0; curViewIdx < getViewIndex() && valid == 0; curViewIdx++ )
     3813  {
     3814    for( Int iRefListId = 0; ( iRefListId < (isInterB() ? 2 : 1) ) && !isIntra() && valid == 0; iRefListId++ )
     3815    {
     3816      RefPicList eRefPicList = RefPicList( iRefListId );
     3817      Int        iNumRefPics = getNumRefIdx( eRefPicList );
     3818      for( Int i = 0; i < iNumRefPics; i++ )
     3819      {
     3820        if(getPOC() == getRefPic( eRefPicList, i )->getPOC() && curViewIdx == getRefPic( eRefPicList, i )->getViewIndex())
     3821        {
     3822          valid = 1;
     3823          DefaultRefViewIdx = curViewIdx;
     3824          break;
     3825        }
     3826      }
     3827    }
     3828  }
     3829  if( valid )
     3830  {
     3831    setDefaultRefViewIdx( DefaultRefViewIdx );
     3832    setDefaultRefViewIdxAvailableFlag( true );   
     3833  }
     3834}
     3835#endif
    36553836
    36563837#if H_3D_ARP
     
    36583839{
    36593840  Bool tempRefPicInListsFlag = false;
     3841#if HHI_TOOL_PARAMETERS_I2_J0107
     3842  if( !getIvResPredFlag() || this->isIRAP())
     3843#else
    36603844  if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP())
     3845#endif
    36613846  {
    36623847    m_nARPStepNum = 0;
     
    36863871      }
    36873872    }
     3873#if SEC_ARP_VIEW_REF_CHECK_J0037
     3874    tempRefPicInListsFlag = (getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0) && getDefaultRefViewIdxAvailableFlag();
     3875#else
    36883876    tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0;
     3877#endif
     3878#if HHI_TOOL_PARAMETERS_I2_J0107
     3879    m_nARPStepNum = tempRefPicInListsFlag ?  H_3D_ARP_WFNR : 0;
     3880#else
    36893881    m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0;
     3882#endif
    36903883  }
    36913884
     
    38694062{
    38704063  Bool setupLUT = false;
     4064 
     4065#if HHI_TOOL_PARAMETERS_I2_J0107
     4066  setupLUT = setupLUT || getViewSynthesisPredFlag( );
     4067#else
    38714068  Int layerIdInVPS = getVPS()->getLayerIdInNuh( m_layerId );
    3872 
    38734069#if H_3D_VSP
    38744070  setupLUT = setupLUT || getVPS()->getViewSynthesisPredFlag( layerIdInVPS);
    38754071#endif
     4072#endif
    38764073
    38774074#if H_3D_NBDV_REF
     4075#if HHI_TOOL_PARAMETERS_I2_J0107
     4076  setupLUT = setupLUT || getDepthRefinementFlag( );
     4077#else
    38784078  setupLUT = setupLUT || getVPS()->getDepthRefinementFlag( layerIdInVPS );
     4079#endif
    38794080#endif
    38804081
    38814082#if H_3D_IV_MERGE
     4083#if HHI_TOOL_PARAMETERS_I2_J0107
     4084  setupLUT = setupLUT || ( getIvMvPredFlag() && getIsDepth() );
     4085#else
    38824086  setupLUT = setupLUT || ( getVPS()->getIvMvPredFlag(layerIdInVPS ) && getIsDepth() );
    38834087#endif
    3884 
     4088#endif
     4089
     4090#if !LGE_DDD_REMOVAL_J0042_J0030
    38854091#if H_3D_DDD
    38864092#if H_3D_FCO
     
    38964102  } 
    38974103#endif
     4104#endif
    38984105
    38994106  if( !setupLUT )
     
    39444151      m_depthToDisparityF[ i ][ d ] = ( invCodScale[ i ] * d + invOffset ) >> log2Div;
    39454152    }
    3946 
     4153#if !LGE_DDD_REMOVAL_J0042_J0030
    39474154#if H_3D_DDD
    39484155    initializeDDDPara( vps->getCamParPrecision(), codScale[ i ], codOffset[ i ], i );
    39494156#endif
    3950   }
    3951 }
    3952 #endif
    3953 #endif
    3954 
     4157#endif
     4158  }
     4159}
     4160#endif
     4161#endif
     4162
     4163#if !LGE_DDD_REMOVAL_J0042_J0030
    39554164#if H_3D_DDD
    39564165Void TComSlice::initializeDDDPara( UInt uiCamParsCodedPrecision, Int  iCodedScale,Int  iCodedOffset, Int iBaseViewIdx )
     
    40154224
    40164225#endif
     4226#endif
    40174227
    40184228#if H_MV
     
    40484258#endif
    40494259
     4260#if !LGE_DDD_REMOVAL_J0042_J0030
    40504261#if H_3D_DBBP
    40514262Int TComSlice::getDepthFromDV( Int iDV, Int iBaseViewIdx )
     
    40544265}
    40554266#endif
     4267#endif
     4268
     4269#if HHI_TOOL_PARAMETERS_I2_J0107
     4270#if H_3D
     4271
     4272Void TComSlice::init3dToolParameters()
     4273{
     4274  Bool depthFlag = getIsDepth();
     4275
     4276  Bool depthOfRefViewsAvailFlag = false;
     4277  Bool textOfCurViewAvailFlag = false;
     4278
     4279  TComVPS* vps = getVPS();
     4280
     4281  if( !depthFlag )
     4282  {
     4283    depthOfRefViewsAvailFlag = true;
     4284    for( Int i = 0; i <= vps->getNumRefListLayers( getLayerId() ) - 1; i++)
     4285    {
     4286      Bool curDepthAvailableFlag = false;   
     4287      for (Int j = 0; j <= vps->getMaxLayersMinus1(); j++ )
     4288      {
     4289        if ( vps->getDirectDependencyFlag( vps->getLayerIdInVps( getLayerId() ), j )
     4290          && vps->getVpsDepthFlag        ( vps->getLayerIdInNuh( j ) ) == 1
     4291          && vps->getViewOrderIdx( vps->getLayerIdInNuh( j ) ) == vps->getViewOrderIdx( vps->getIdRefListLayer( getLayerId(), i ) )
     4292          && vps->getDependencyId( vps->getLayerIdInNuh( j ) ) == 0
     4293          && vps->getAuxId       ( vps->getLayerIdInNuh( j ) ) == 0
     4294          )
     4295        {
     4296          curDepthAvailableFlag = true;
     4297        }
     4298      }
     4299      if ( !curDepthAvailableFlag )
     4300      {
     4301        depthOfRefViewsAvailFlag = false;
     4302      }   
     4303    }
     4304  }
     4305  else
     4306  {
     4307    for (Int j = 0; j <= vps->getMaxLayersMinus1(); j++ )
     4308    {
     4309      if ( vps->getDirectDependencyFlag( vps->getLayerIdInVps( getLayerId() ), j )
     4310        && vps->getVpsDepthFlag( vps->getLayerIdInNuh( j ) ) == 0
     4311        && vps->getViewOrderIdx( vps->getLayerIdInNuh( j ) ) == getViewIndex()
     4312        && vps->getDependencyId( vps->getLayerIdInNuh( j ) ) == 0
     4313        && vps->getAuxId       ( vps->getLayerIdInNuh( j ) ) == 0
     4314        )
     4315      {       
     4316        textOfCurViewAvailFlag = true;
     4317      }
     4318    }
     4319  }
     4320
     4321  Bool lidG0  = ( getLayerId() > 0 );
     4322  Bool nRLLG0 =  ( getVPS()->getNumRefListLayers( getLayerId() ) > 0 );     
     4323
     4324  TComSps3dExtension* sps3dExt = getSPS()->getSps3dExtension();
     4325
     4326  m_ivMvPredFlag           = sps3dExt->getIvMvPredFlag         ( depthFlag ) && lidG0 && nRLLG0                           ;                             
     4327  m_ivMvScalingFlag        = sps3dExt->getIvMvScalingFlag      ( depthFlag ) && lidG0                                    ;                             
     4328  m_ivResPredFlag          = sps3dExt->getIvResPredFlag        ( depthFlag ) && lidG0 && nRLLG0                           ;                               
     4329  m_depthRefinementFlag    = sps3dExt->getDepthRefinementFlag  ( depthFlag ) && lidG0           && depthOfRefViewsAvailFlag;                           
     4330  m_viewSynthesisPredFlag  = sps3dExt->getViewSynthesisPredFlag( depthFlag ) && lidG0 && nRLLG0 && depthOfRefViewsAvailFlag;                         
     4331  m_depthBasedBlkPartFlag  = sps3dExt->getDepthBasedBlkPartFlag( depthFlag ) && lidG0           && depthOfRefViewsAvailFlag;                         
     4332  m_mpiFlag                = sps3dExt->getMpiFlag              ( depthFlag ) && lidG0           &&   textOfCurViewAvailFlag;
     4333  m_intraContourFlag       = sps3dExt->getIntraContourFlag     ( depthFlag ) && lidG0           &&   textOfCurViewAvailFlag;
     4334  m_intraSdcWedgeFlag      = sps3dExt->getIntraSdcWedgeFlag    ( depthFlag ) && lidG0                                     ;                         
     4335  m_qtPredFlag             = sps3dExt->getQtPredFlag           ( depthFlag ) && lidG0           &&   textOfCurViewAvailFlag;
     4336  m_interSdcFlag           = sps3dExt->getInterSdcFlag         ( depthFlag ) && lidG0                                    ;                               
     4337  m_intraSingleFlag        = sps3dExt->getIntraSingleFlag      ( depthFlag ) && lidG0                                    ;                         
     4338
     4339  m_subPbSize              = lidG0 ? ( 1 << ( sps3dExt->getLog2SubPbSizeMinus3   ( depthFlag ) + 3 ) ) : getSPS()->getMaxCUWidth(); 
     4340  m_mpiSubPbSize           = 1 << ( sps3dExt->getLog2MpiSubPbSizeMinus3( depthFlag ) + 3 );
     4341
     4342#if H_3D_OUTPUT_ACTIVE_TOOLS
     4343  std::cout << "Layer:                  :" << getLayerId()             << std::endl;
     4344  std::cout << "DepthFlag:              :" << getIsDepth()             << std::endl;
     4345  std::cout << "ViewOrderIdx:           :" << getViewIndex()           << std::endl;
     4346  std::cout << "DepthOfRefViewsAvailFlag:" << depthOfRefViewsAvailFlag << std::endl;
     4347  std::cout << "TextOfCurViewAvailFlag  :" << textOfCurViewAvailFlag   << std::endl;
     4348 
     4349  std::cout << "ivMvPredFlag            :" << m_ivMvPredFlag           << std::endl;
     4350  std::cout << "ivMvScalingFlag         :" << m_ivMvScalingFlag        << std::endl;
     4351  std::cout << "ivResPredFlag           :" << m_ivResPredFlag          << std::endl;
     4352  std::cout << "depthRefinementFlag     :" << m_depthRefinementFlag    << std::endl;
     4353  std::cout << "viewSynthesisPredFlag   :" << m_viewSynthesisPredFlag  << std::endl;
     4354  std::cout << "depthBasedBlkPartFlag   :" << m_depthBasedBlkPartFlag  << std::endl;
     4355  std::cout << "mpiFlag                 :" << m_mpiFlag                << std::endl;
     4356  std::cout << "intraContourFlag        :" << m_intraContourFlag       << std::endl;
     4357  std::cout << "intraSdcWedgeFlag       :" << m_intraSdcWedgeFlag      << std::endl;
     4358  std::cout << "qtPredFlag              :" << m_qtPredFlag             << std::endl;
     4359  std::cout << "interSdcFlag            :" << m_interSdcFlag           << std::endl;
     4360  std::cout << "intraSingleFlag         :" << m_intraSingleFlag        << std::endl;   
     4361  std::cout << "subPbSize               :" << m_subPbSize              << std::endl;
     4362  std::cout << "mpiSubPbSize            :" << m_mpiSubPbSize           << std::endl;
     4363#endif
     4364}
     4365#endif
     4366#endif
     4367
    40564368
    40574369/** get scaling matrix from RefMatrixID
  • trunk/source/Lib/TLibCommon/TComSlice.h

    r1084 r1124  
    861861  TComRepFormat* m_repFormat             [MAX_NUM_LAYERS];
    862862  Bool        m_maxOneActiveRefLayerFlag;       
    863 #if H_MV_HLS7_GEN
     863#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    864864  Bool        m_vpsPocLsbAlignedFlag;
    865865#endif
     
    884884  Int         m_dependencyFlag           [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    885885
     886#if H_MV_FIX_NUM_VIEWS
     887  Int         m_numViews;
     888#endif
    886889  Int         m_numDirectRefLayers       [MAX_NUM_LAYERS];
    887890  Int         m_idDirectRefLayer         [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
     891#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     892#if H_3D
     893  Int         m_numRefListLayers         [MAX_NUM_LAYERS];
     894  Int         m_idRefListLayer           [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
     895#endif
     896#endif
     897
    888898
    889899  Int         m_numRefLayers             [MAX_NUM_LAYER_IDS];
     
    909919  Void        xSetRefLayerFlags( Int currLayerId );
    910920  // VPS EXTENSION 2 SYNTAX ELEMENTS
     921#if !HHI_TOOL_PARAMETERS_I2_J0107
    911922#if H_3D_ARP
    912923  UInt        m_uiUseAdvResPred          [MAX_NUM_LAYERS   ];
     
    934945  Bool        m_bIVPFlag                 [MAX_NUM_LAYERS   ];
    935946#endif
     947#endif
    936948#if H_3D
    937949  UInt        m_uiCamParPrecision;
     
    940952  Int         ***m_aaaiCodedScale ;
    941953  Int         ***m_aaaiCodedOffset;
    942 #endif
     954
     955#if H_MV_FIX_NUM_VIEWS
     956#if HHI_VIEW_ID_LIST_I5_J0107
     957  std::vector<Int>  m_viewOIdxList;
     958#endif
     959#endif
     960
     961#endif
     962#if !HHI_TOOL_PARAMETERS_I2_J0107
    943963#if H_3D_INTER_SDC
    944964  Bool        m_bInterSDCFlag[MAX_NUM_LAYERS   ];
     
    949969#if H_3D_IV_MERGE
    950970  Bool        m_bMPIFlag[MAX_NUM_LAYERS   ];
     971#endif
     972#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     973  Bool        m_singleDepthModeFlag    [ MAX_NUM_LAYERS ];
     974#endif
    951975#endif
    952976
     
    11351159  Bool    getMaxOneActiveRefLayerFlag( )                                   { return m_maxOneActiveRefLayerFlag; }
    11361160
    1137 #if H_MV_HLS7_GEN
     1161#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    11381162  Void    setVpsPocLsbAlignedFlag( Bool flag )                             { m_vpsPocLsbAlignedFlag = flag; }
    11391163  Bool    getVpsPocLsbAlignedFlag(  )                                      { return m_vpsPocLsbAlignedFlag; }
     
    11721196  Void    setRefLayers();
    11731197
     1198#if H_MV_FIX_NUM_VIEWS
     1199  // To be aligned with spec naming, getViewIndex will be removed in future versions
     1200  Int     getViewOrderIdx ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX  ); }   
     1201  Int     getViewIndex    ( Int layerIdInNuh )                             { return getViewOrderIdx( layerIdInNuh ); }   
     1202#else
    11741203  Int     getViewIndex    ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX  ); }   
     1204#endif
    11751205  Int     getAuxId        ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), AUX_ID  ); }   
    11761206  Int     getDependencyId ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPENDENCY_ID  ); }   
     1207#if H_MV_FIX_NUM_VIEWS
     1208  Int     getNumViews()                                                    { return m_numViews; }
     1209  Void    initNumViews();
     1210#if HHI_VIEW_ID_LIST_I5_J0107
     1211  Int     getViewOIdxList( Int i )                                         { return m_viewOIdxList[i]; }
     1212#endif
     1213#else
    11771214  Int     getNumViews();
     1215#endif
    11781216
    11791217  Bool    getDependencyFlag( Int i, Int j )                                { return m_dependencyFlag[i][j]; }
    11801218  Int     getNumDirectRefLayers( Int layerIdInNuh )                        { return m_numDirectRefLayers[ layerIdInNuh ];  };                               
     1219#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1220#if H_3D
     1221  Int     getNumRefListLayers( Int layerIdInNuh )                         { return m_numRefListLayers[ layerIdInNuh ];  };                               
     1222#endif
     1223#endif
     1224
    11811225  Int     getNumRefLayers            ( Int i )        { return m_numRefLayers[i]; }
    11821226  Int     getNumPredictedLayers      ( Int i )        { return m_numPredictedLayers[i]; }
     1227
    11831228
    11841229  Int     getIdRefLayer              ( Int i, Int j ) { assert( j >= 0 && j < getNumRefLayers      ( i )); return m_idRefLayer      [i][j]; }
    11851230  Int     getIdPredictedLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumPredictedLayers( i )); return m_idPredictedLayer[i][j]; }
    11861231  Int     getIdDirectRefLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumDirectRefLayers( i )); return m_idDirectRefLayer[i][j]; }
     1232#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1233#if H_3D
     1234  Int     getIdRefListLayer          ( Int i, Int j ) { assert( j >= 0 && j < getNumRefListLayers   ( i )); return m_idRefListLayer[i][j]; }
     1235#endif
     1236#endif
    11871237  Int     getNumIndependentLayers    (  )             { return m_numIndependentLayers; }
    11881238  Int     getNumLayersInTreePartition( Int i )        { return m_numLayersInTreePartition[i]; }
     
    12791329
    12801330  /// VPS EXTENSION 2 SYNTAX ELEMENTS
     1331
     1332
    12811333#if H_3D 
    12821334  Int     getDepthId      ( Int layerIdInNuh)                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPTH_ID ); }
     1335#if HHI_TOOL_PARAMETERS_I2_J0107
     1336  Bool    getVpsDepthFlag( Int layerIdInNuh)                              { return (getDepthId( layerIdInNuh ) > 0);  }
     1337#endif
    12831338  Int     getLayerIdInNuh( Int viewIndex, Bool depthFlag );   
    12841339
     1340#if !HHI_TOOL_PARAMETERS_I2_J0107
    12851341#if H_3D_ARP
    12861342  UInt    getUseAdvRP  ( Int layerIdInVps )                                { return m_uiUseAdvResPred[layerIdInVps];    }
     
    12881344  Void    setUseAdvRP  ( Int layerIdInVps, UInt val )                      { m_uiUseAdvResPred[layerIdInVps] = val;     }
    12891345  Void    setARPStepNum( Int layerIdInVps, UInt val )                      { m_uiARPStepNum[layerIdInVps]    = val;     }
     1346#endif
    12901347#endif
    12911348
     
    13031360  Int* getInvCodedOffset     ( Int viewIndex )  { return m_aaaiCodedOffset[viewIndex][1]; }
    13041361
     1362#if !HHI_TOOL_PARAMETERS_I2_J0107
    13051363#if H_3D_IV_MERGE
    13061364  Void    setIvMvPredFlag     ( Int layerIdInVps, Bool val )  { m_ivMvPredFlag[ layerIdInVps ] = val; }
     
    13461404  Void    setMPIFlag      ( Int layerIdInVps, Bool bval ){ m_bMPIFlag[layerIdInVps] = bval; }
    13471405#endif
     1406#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     1407  Void    setSingleDepthModeFlag  ( Int layerIdInVps, Bool val )  { m_singleDepthModeFlag[ layerIdInVps ] = val; }
     1408  Bool    getSingleDepthModeFlag  ( Int layerIdInVps )            { return m_singleDepthModeFlag[ layerIdInVps ]; };
     1409#endif
    13481410#endif 
     1411#endif
    13491412#endif
    13501413};
     
    16121675};
    16131676
     1677#if HHI_TOOL_PARAMETERS_I2_J0107
     1678#if H_3D
     1679class TComSps3dExtension
     1680{
     1681public:
     1682  TComSps3dExtension()
     1683  {
     1684    for (Int d = 0; d < 2; d++)
     1685    {
     1686      m_ivMvPredFlag          [d] = false;
     1687      m_ivMvScalingFlag       [d] = false;
     1688      m_log2SubPbSizeMinus3   [d] = 3;
     1689      m_ivResPredFlag         [d] = false;
     1690      m_depthRefinementFlag   [d] = false;
     1691      m_viewSynthesisPredFlag [d] = false;
     1692      m_depthBasedBlkPartFlag [d] = false;
     1693      m_mpiFlag               [d] = false;
     1694      m_log2MpiSubPbSizeMinus3[d] = 3;
     1695      m_intraContourFlag      [d] = false;
     1696      m_intraSdcWedgeFlag     [d] = false;
     1697      m_qtPredFlag            [d] = false;
     1698      m_interSdcFlag          [d] = false;
     1699      m_intraSingleFlag       [d] = false;   
     1700    }
     1701  }
     1702
     1703  Void setIvMvPredFlag( Int d, Bool flag ) { m_ivMvPredFlag[d] = flag; }
     1704  Bool getIvMvPredFlag( Int d ) { return m_ivMvPredFlag[d]; }
     1705
     1706  Void setIvMvScalingFlag( Int d, Bool flag ) { m_ivMvScalingFlag[d] = flag; }
     1707  Bool getIvMvScalingFlag( Int d ) { return m_ivMvScalingFlag[d]; }
     1708
     1709  Void setLog2SubPbSizeMinus3( Int d, Int  val ) { m_log2SubPbSizeMinus3[d] = val; }
     1710  Int  getLog2SubPbSizeMinus3( Int d ) { return m_log2SubPbSizeMinus3[d]; }
     1711
     1712  Void setIvResPredFlag( Int d, Bool flag ) { m_ivResPredFlag[d] = flag; }
     1713  Bool getIvResPredFlag( Int d ) { return m_ivResPredFlag[d]; }
     1714
     1715  Void setDepthRefinementFlag( Int d, Bool flag ) { m_depthRefinementFlag[d] = flag; }
     1716  Bool getDepthRefinementFlag( Int d ) { return m_depthRefinementFlag[d]; }
     1717
     1718  Void setViewSynthesisPredFlag( Int d, Bool flag ) { m_viewSynthesisPredFlag[d] = flag; }
     1719  Bool getViewSynthesisPredFlag( Int d ) { return m_viewSynthesisPredFlag[d]; }
     1720
     1721  Void setDepthBasedBlkPartFlag( Int d, Bool flag ) { m_depthBasedBlkPartFlag[d] = flag; }
     1722  Bool getDepthBasedBlkPartFlag( Int d ) { return m_depthBasedBlkPartFlag[d]; }
     1723
     1724  Void setMpiFlag( Int d, Bool flag ) { m_mpiFlag[d] = flag; }
     1725  Bool getMpiFlag( Int d ) { return m_mpiFlag[d]; }
     1726
     1727  Void setLog2MpiSubPbSizeMinus3( Int d, Int  val ) { m_log2MpiSubPbSizeMinus3[d] = val; }
     1728  Int  getLog2MpiSubPbSizeMinus3( Int d ) { return m_log2MpiSubPbSizeMinus3[d]; }
     1729
     1730  Void setIntraContourFlag( Int d, Bool flag ) { m_intraContourFlag[d] = flag; }
     1731  Bool getIntraContourFlag( Int d ) { return m_intraContourFlag[d]; }
     1732
     1733  Void setIntraSdcWedgeFlag( Int d, Bool flag ) { m_intraSdcWedgeFlag[d] = flag; }
     1734  Bool getIntraSdcWedgeFlag( Int d ) { return m_intraSdcWedgeFlag[d]; }
     1735
     1736  Void setQtPredFlag( Int d, Bool flag ) { m_qtPredFlag[d] = flag; }
     1737  Bool getQtPredFlag( Int d ) { return m_qtPredFlag[d]; }
     1738
     1739  Void setInterSdcFlag( Int d, Bool flag ) { m_interSdcFlag[d] = flag; }
     1740  Bool getInterSdcFlag( Int d ) { return m_interSdcFlag[d]; }
     1741
     1742  Void setIntraSingleFlag( Int d, Bool flag ) { m_intraSingleFlag[d] = flag; }
     1743  Bool getIntraSingleFlag( Int d ) { return m_intraSingleFlag[d]; }
     1744
     1745private:
     1746
     1747  Bool        m_ivMvPredFlag          [2];
     1748  Bool        m_ivMvScalingFlag       [2];
     1749  Int         m_log2SubPbSizeMinus3   [2];
     1750  Bool        m_ivResPredFlag         [2];
     1751  Bool        m_depthRefinementFlag   [2];
     1752  Bool        m_viewSynthesisPredFlag [2];
     1753  Bool        m_depthBasedBlkPartFlag [2];
     1754  Bool        m_mpiFlag               [2];
     1755  Int         m_log2MpiSubPbSizeMinus3[2];
     1756  Bool        m_intraContourFlag      [2];
     1757  Bool        m_intraSdcWedgeFlag     [2];
     1758  Bool        m_qtPredFlag            [2];
     1759  Bool        m_interSdcFlag          [2];
     1760  Bool        m_intraSingleFlag       [2]; 
     1761};
     1762
     1763#endif
     1764#endif
     1765
    16141766/// SPS class
    16151767class TComSPS
     
    17111863#endif
    17121864#if H_3D
     1865#if HHI_TOOL_PARAMETERS_I2_J0107
     1866  TComSps3dExtension m_sps3dExtension;
     1867#endif
    17131868  UInt        m_uiCamParPrecision;
    17141869  Bool        m_bCamParInSliceHeader;
     
    18842039  Void setSpsRepFormatIdx( Int  val )          { m_spsRepFormatIdx = val; }
    18852040  Int  getSpsRepFormatIdx(  )                  { return m_spsRepFormatIdx; }
    1886   // SPS Extension
     2041 
     2042// SPS Extension
    18872043  Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; }
    18882044  Bool getInterViewMvVertConstraintFlag()         { return m_interViewMvVertConstraintFlag;}
     2045
     2046#if HHI_TOOL_PARAMETERS_I2_J0107
     2047#if H_3D
     2048  Void setSps3dExtension ( TComSps3dExtension& sps3dExtension ) { m_sps3dExtension = sps3dExtension; }
     2049  TComSps3dExtension* getSps3dExtension ( )                     { return &m_sps3dExtension; }
     2050#endif
     2051#endif
    18892052
    18902053  // Inference
     
    23422505#endif
    23432506#endif
    2344 
     2507#if !LGE_DDD_REMOVAL_J0042_J0030
    23452508#if H_3D_DDD
    23462509  Int          m_aiDDDInvScale [MAX_NUM_LAYERS];
     
    23482511  UInt         m_aiDDDShift    [MAX_NUM_LAYERS];
    23492512#endif
     2513#endif
    23502514#if H_3D_SINGLE_DEPTH
    23512515  Bool      m_bApplySingleDepthMode;
     
    23542518  Int *m_aICEnableCandidate;
    23552519  Int *m_aICEnableNum;
     2520#endif
     2521#if LGE_DEFAULT_DV_J0046
     2522  Int       m_iDefaultRefViewIdx;
     2523  Bool      m_bDefaultRefViewIdxAvailableFlag;
     2524#endif
     2525
     2526#if HHI_TOOL_PARAMETERS_I2_J0107
     2527  Bool m_ivMvPredFlag         ;
     2528  Bool m_ivMvScalingFlag      ;
     2529  Bool m_ivResPredFlag        ;
     2530  Bool m_depthRefinementFlag  ;
     2531  Bool m_viewSynthesisPredFlag;
     2532  Bool m_depthBasedBlkPartFlag;
     2533  Bool m_mpiFlag              ;
     2534  Bool m_intraContourFlag     ;
     2535  Bool m_intraSdcWedgeFlag    ;
     2536  Bool m_qtPredFlag           ;
     2537  Bool m_interSdcFlag         ;
     2538  Bool m_intraSingleFlag      ;
     2539
     2540  Int  m_mpiSubPbSize         ;
     2541  Int  m_subPbSize            ;
    23562542#endif
    23572543public:
     
    24252611  TComPic*  getTexturePic       ()                              { return  m_ivPicsCurrPoc[0][ m_viewIndex ]; }
    24262612#endif
     2613#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
    24272614#if H_3D_SINGLE_DEPTH
    24282615  Void      setApplySingleDepthMode( Bool b )                                { m_bApplySingleDepthMode = b; }
    24292616  Bool      getApplySingleDepthMode()                                        { return m_bApplySingleDepthMode; }
     2617#endif
    24302618#endif
    24312619#if H_3D_IC
     
    26652853  Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ refViewIdx ]; };
    26662854  Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; };
     2855#if !HHI_TOOL_PARAMETERS_I2_J0107
    26672856  Bool getVpsDepthModesFlag  ()  { return getVPS()->getVpsDepthModesFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
    26682857  Bool getIVPFlag       ()  { return getVPS()->getIVPFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
     2858#endif
    26692859#endif
    26702860#if H_3D_IC
     
    27242914  Int  getPocMsbVal(  ) { return m_pocMsbVal; }
    27252915
     2916#if H_MV_HLS_FIX
     2917  Bool getCraOrBlaPicFlag() { return ( getCraPicFlag() || getBlaPicFlag() ); }
     2918  Bool getPocMsbValRequiredFlag() { return ( getCraOrBlaPicFlag() && ( getVPS()->getVpsPocLsbAlignedFlag() || getVPS()->getNumDirectRefLayers( getLayerIdInVps() ) == 0 ) );  }
     2919#else
    27262920  Bool getPocMsbValRequiredFlag() { return m_pocMsbValRequiredFlag; }
    27272921  Void setPocMsbValRequiredFlag(Bool x) { m_pocMsbValRequiredFlag = x; }
     2922#endif
     2923
    27282924
    27292925  UInt getPocLsbValLen() { return getSPS()->getBitsForPOC(); }; //log2_max_pic_order_cnt_lsb_minus4 + 4 
     
    27422938  // Additional variables derived in slice header semantics
    27432939
     2940#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2941#if H_3D
     2942  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumRefListLayers( getLayerId() )); }
     2943  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumRefListLayers( getLayerId() )); }
     2944#else
    27442945  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
    27452946  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2947#endif
     2948
     2949#else
     2950  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2951  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2952#endif
    27462953
    27472954  Int  getRefLayerPicFlag( Int i );
     
    27592966  TComPic* getPicFromRefPicSetInterLayer( Int setIdc, Int layerId );
    27602967
     2968
     2969#if HHI_TOOL_PARAMETERS_I2_J0107
     2970#if H_3D
     2971  // 3D-HEVC tool parameters
     2972  Void init3dToolParameters();   
     2973  Bool getIvMvPredFlag           ( ) { return m_ivMvPredFlag           ; };
     2974  Bool getIvMvScalingFlag        ( ) { return m_ivMvScalingFlag        ; };
     2975  Bool getIvResPredFlag          ( ) { return m_ivResPredFlag          ; };
     2976  Bool getDepthRefinementFlag    ( ) { return m_depthRefinementFlag    ; };
     2977  Bool getViewSynthesisPredFlag  ( ) { return m_viewSynthesisPredFlag  ; };
     2978  Bool getDepthBasedBlkPartFlag  ( ) { return m_depthBasedBlkPartFlag  ; };
     2979  Bool getMpiFlag                ( ) { return m_mpiFlag                ; };
     2980  Bool getIntraContourFlag       ( ) { return m_intraContourFlag       ; };
     2981  Bool getIntraSdcWedgeFlag      ( ) { return m_intraSdcWedgeFlag      ; };
     2982  Bool getQtPredFlag             ( ) { return m_qtPredFlag             ; };
     2983  Bool getInterSdcFlag           ( ) { return m_interSdcFlag           ; };
     2984  Bool getIntraSingleFlag        ( ) { return m_intraSingleFlag        ; };
     2985
     2986  Int  getMpiSubPbSize           ( ) { return m_mpiSubPbSize           ; };
     2987  Int  getSubPbSize              ( ) { return m_subPbSize              ; };
     2988#endif
     2989#endif
     2990
     2991
    27612992  // Inference
    27622993  Bool inferPocMsbValPresentFlag(); 
    27632994#endif
     2995#if !LGE_DDD_REMOVAL_J0042_J0030
    27642996#if H_3D_DDD
    27652997  Void initializeDDDPara( UInt uiCamParsCodedPrecision, Int  iCodedScale,Int  iCodedOffset, Int iBaseViewIdx );
    27662998  Int  getDepthFromDV( Int iDV, Int iBaseViewIdx );
     2999#endif
     3000#endif
     3001#if LGE_DEFAULT_DV_J0046
     3002  Int  getDefaultRefViewIdx() { return m_iDefaultRefViewIdx; }
     3003  Void setDefaultRefViewIdx(Int iViewIdx) { m_iDefaultRefViewIdx = iViewIdx; }
     3004
     3005  Bool getDefaultRefViewIdxAvailableFlag() { return m_bDefaultRefViewIdxAvailableFlag; }
     3006  Void setDefaultRefViewIdxAvailableFlag(Bool bViewIdx) { m_bDefaultRefViewIdxAvailableFlag = bViewIdx; }
     3007#endif
     3008#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     3009  Void setDefaultRefView( );
    27673010#endif
    27683011
  • trunk/source/Lib/TLibCommon/TypeDef.h

    r1084 r1124  
    103103                                              // MTK_NBDV_TN_FIX_E0172     fix the issue of DV derivation from the temporal neighboring blocks, issue 7 in JCT3V-E0172
    104104                                              // MTK_TEXTURE_MRGCAND_BUGFIX_E0182  Bug fix for TEXTURE MERGING CANDIDATE     , JCT3V-E0182
     105#define LGE_SIMP_DISP_AVAIL_J0041    1   // Use 2 status for disparity availability - DISP_AVAILABLE and DISP_NONE
    105106
    106107#define H_3D_ARP                          1   // Advanced residual prediction (ARP), JCT3V-D0177
     
    114115                                              // SHARP_ARP_CHROMA_I0104     
    115116                                              // MTK_I0072_IVARP_SCALING_FIX
     117#define SEC_ARP_VIEW_REF_CHECK_J0037      1   // Signaling iv_res_pred_weight_idx when the current slice has both view and temporal reference picture(s), JCT3V-J0037 item1
    116118
    117119#define H_3D_IC                           1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
     
    154156                                              // NTT_STORE_SPDV_VSP_G0148 Storing Sub-PU based DV for VSP
    155157                                              // Restricted bi-prediction for VSP
     158#define SEC_A1_BASED_VSP_J0039            1   // Removal of redundant VSP in Merge list
     159
    156160
    157161#define H_3D_IV_MERGE                     1   // Inter-view motion merge candidate
     
    178182                                              // SEC_SIMP_SHIFTED_DV_I0086     Simplification of Shifted DV candidate, JCT3V-I0086
    179183
     184#define MTK_MRG_LIST_SIZE_CLEANUP_J0059   1   // Include VSP for deriving merge candidate list size, JCT3V-J0059
    180185
    181186
     
    231236
    232237#define H_3D_SINGLE_DEPTH                 1   // Single depth mode proposed in JCT3V-I0095
    233 
     238#define MTK_SINGLE_DEPTH_VPS_FLAG_J0060   1   // Add VPS control flags and remove slice header control flag for single depth, JCT3V-J0060
     239#define ALIGN_J0060_J0107                 1   // Alignment of changed tool parameters
     240#define ALGIN_J0107_J0059                 1   // Alignment of changed tool parameters               
     241
     242#define MTK_J0033                         1
     243#define SHARP_DLT_SIMP_J0029              1   // DLT(DepthValue2Idx[]) table derivation cleanup
    234244
    235245#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
     
    253263                                              // SHARP_DBBP_SIMPLE_FLTER_I0109     1   // Simple condition and one dimensional filter for DBBP
    254264                                              // SEC_DBBP_DMM4_THRESHOLD_I0076     Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076
    255 
     265#define SEC_DBBP_VIEW_REF_CHECK_J0037     1   // Signaling dbbp_flag when the current slice has view reference picture(s), JCT3V-J0037 item4
    256266
    257267#define H_3D_DDD                          1   // Disparity derived depth coding
     268#define LGE_DDD_REMOVAL_J0042_J0030       1   // DDD removal
    258269
    259270#define H_3D_FCO                          0   // Flexible coding order for 3D
    260271#if H_3D_FCO
    261 #define H_3D_FCO                     1
     272#define H_3D_FCO                          1
    262273#endif
    263274
     
    272283#define H_3D_FAST_DEPTH_INTRA             1   // Fast DMM and RBC Mode Selection
    273284                                              // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX
     285#define MTK_DMM_SIM_J0035                 1
    274286#endif
    275287
     
    288300// Fixes
    289301
     302
     303#if H_3D
     304#define HHI_DEPENDENCY_SIGNALLING_I1_J0107     1
     305#define HHI_TOOL_PARAMETERS_I2_J0107           1
     306#define HHI_VPS_3D_EXTENSION_I3_J0107          1
     307#define HHI_VIEW_ID_LIST_I5_J0107              0
     308#endif
     309#define H_MV_FIX_REF_LAYER_PIC_FLAG            1
     310#define H_MV_FIX_NUM_VIEWS                     1
     311#define H_3D_OUTPUT_ACTIVE_TOOLS               0
     312
    290313///// ***** SINGLE DEPTH MODE *********
    291314#if H_3D_SINGLE_DEPTH
    292315#define SINGLE_DEPTH_MODE_CAND_LIST_SIZE            2 // size of the sample candidate list
     316#define SINGLE_DEPTH_SIMP_J0115           1
    293317#endif
    294318
     
    307331#define DVFROM_ABOVE                      1
    308332#define IDV_CANDS                         2
     333#define LGE_DEFAULT_DV_J0046              1
    309334#endif
    310335
     
    342367#define IC_SHIFT_DIFF                     12
    343368#define IC_LOW_LATENCY_ENCODING_THRESHOLD 0.1 // Threshold for low-latency IC encoding in JCT3V-H0086
     369#define LGE_CHROMA_IC_J0050_J0034         1
    344370#endif
    345371
     
    363389#endif
    364390
     391
     392#if H_3D_SPIVMP
     393#define HS_SP_SIMP_J0066                        1
     394#endif
     395
    365396/////////////////////////////////////////////////////////////////////////////////
    366397///////////////////////////////////   MV_HEVC HLS  //////////////////////////////
    367398/////////////////////////////////////////////////////////////////////////////////
    368399// TBD: Check if integration is necessary.
     400
     401#define H_MV_HLS_FIX                         1
    369402#define H_MV_HLS_PTL_LIMITS                  0
    370403#define H_MV_HLS7_GEN                        0  // General changes (not tested)
     
    902935enum DefaultMergCandOrder
    903936{
     937#if SEC_A1_BASED_VSP_J0039
     938  MRG_T = 0,            ///< MPI
     939  MRG_D,                ///< DDD
     940  MRG_IVMC,             ///< Temporal inter-view
     941  MRG_A1,               ///< Left
     942  MRG_B1,               ///< Above
     943  MRG_VSP,              ///< VSP
     944  MRG_B0,               ///< Above right
     945  MRG_IVDC,             ///< Disparity inter-view
     946  MRG_A0,               ///< Left bottom
     947  MRG_B2,               ///< Above left
     948  MRG_IVSHIFT,          ///< Shifted IVMC of Shifted IVDC. (These are mutually exclusive)
     949  MRG_COL               ///< Temporal co-located
     950#else
    904951  MRG_T = 0,            ///< MPI
    905952  MRG_D,                ///< DDD
     
    914961  MRG_IVSHIFT,          ///< Shifted IVMC of Shifted IVDC. (These are mutually exclusive)
    915962  MRG_COL               ///< Temporal co-located
     963#endif
    916964};
    917965#endif
Note: See TracChangeset for help on using the changeset viewer.