Changeset 1163 in 3DVCSoftware for branches/HTM-13.1-dev0/source/Lib/TLibCommon


Ignore:
Timestamp:
16 Mar 2015, 12:40:05 (10 years ago)
Author:
tech
Message:

Merged branch 13.1-dev1-Samsung2@1162

Location:
branches/HTM-13.1-dev0/source/Lib/TLibCommon
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/ContextTables.h

    r1084 r1163  
    5151#define NUM_SPLIT_FLAG_CTX            3       ///< number of context models for split flag
    5252#define NUM_SKIP_FLAG_CTX             3       ///< number of context models for skip flag
     53#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     54#define NUM_DIS_FLAG_CTX              1
     55#define NUM_DIS_TYPE_CTX              1       
     56#else
    5357#if H_3D_SINGLE_DEPTH
    5458#define NUM_SINGLEDEPTH_FLAG_CTX                     1
    5559#define NUM_SINGLE_DEPTH_VALUE_DATA_CTX              1       
     60#endif
    5661#endif
    5762#define NUM_MERGE_FLAG_EXT_CTX        1       ///< number of context models for merge flag of merge extended
     
    153158  { CNU,  CNU,  CNU, },
    154159};
     160#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     161static const UChar
     162INIT_DIS_FLAG[3][NUM_DIS_FLAG_CTX] = 
     163{
     164    { 185 },
     165    { 185 },
     166    { 185 },
     167};
     168static const UChar
     169INIT_DIS_TYPE[3][NUM_DIS_TYPE_CTX] =
     170{
     171    { 137 },
     172    { 137 },
     173    { 137 },
     174};
     175#else
    155176#if H_3D_SINGLE_DEPTH
    156177static const UChar
     
    169190};
    170191#endif
     192#endif
    171193static const UChar
    172194INIT_MERGE_FLAG_EXT[3][NUM_MERGE_FLAG_EXT_CTX] =
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/TComDataCU.cpp

    r1133 r1163  
    6060 
    6161  m_skipFlag           = NULL;
     62#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     63  m_bDISFlag           = NULL;
     64  m_uiDISType          = NULL;
     65#else
    6266#if H_3D_SINGLE_DEPTH
    6367  m_singleDepthFlag     = NULL;
    6468  m_apSingleDepthValue  = NULL;
    65 #endif 
     69#endif
     70#endif
    6671  m_pePartSize         = NULL;
    6772  m_pePredMode         = NULL;
     
    181186
    182187    m_skipFlag           = new Bool[ uiNumPartition ];
     188#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     189    m_bDISFlag           = new Bool[ uiNumPartition ];
     190    m_uiDISType          = (UInt*)xMalloc(UInt, uiNumPartition);
     191#else
    183192#if H_3D_SINGLE_DEPTH
    184193    m_singleDepthFlag     = new Bool[ uiNumPartition ];
    185194    m_apSingleDepthValue  = (Pel*)xMalloc(Pel, uiNumPartition);
     195#endif
    186196#endif
    187197    m_pePartSize         = new Char[ uiNumPartition ];
     
    327337
    328338    if ( m_skipFlag           ) { delete[] m_skipFlag;          m_skipFlag          = NULL; }
     339#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     340    if ( m_bDISFlag           ) { delete[] m_bDISFlag;   m_bDISFlag     = NULL; }
     341    if ( m_uiDISType         ) { xFree(m_uiDISType);  m_uiDISType    = NULL; }
     342#else
    329343#if H_3D_SINGLE_DEPTH
    330344    if ( m_singleDepthFlag    ) { delete[] m_singleDepthFlag;   m_singleDepthFlag     = NULL; }
    331345    if ( m_apSingleDepthValue ) { xFree(m_apSingleDepthValue);  m_apSingleDepthValue  = NULL; }
     346#endif
    332347#endif
    333348    if ( m_pePartSize         ) { delete[] m_pePartSize;        m_pePartSize        = NULL; }
     
    491506    TComDataCU * pcFrom = pcPic->getCU(getAddr());
    492507    m_skipFlag[ui]   = pcFrom->getSkipFlag(ui);
     508#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     509    m_bDISFlag[ui]   = pcFrom->getDISFlag(ui);
     510    m_uiDISType[ui]  = pcFrom->getDISType(ui);
     511#else
    493512#if H_3D_SINGLE_DEPTH
    494513    m_singleDepthFlag[ui]    = pcFrom->getSingleDepthFlag(ui);
    495514    m_apSingleDepthValue[ui] = pcFrom->getSingleDepthValue(ui);
     515#endif
    496516#endif
    497517    m_pePartSize[ui] = pcFrom->getPartitionSize(ui);
     
    546566  {
    547567    memset( m_skipFlag          + firstElement, false,                    numElements * sizeof( *m_skipFlag ) );
     568#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     569    memset( m_bDISFlag          + firstElement, false,                    numElements * sizeof( *m_bDISFlag ) );
     570    memset( m_uiDISType         + firstElement,     0,                    numElements * sizeof( *m_uiDISType) );
     571#else
    548572#if H_3D_SINGLE_DEPTH
    549573    memset( m_singleDepthFlag     + firstElement, false,                  numElements * sizeof( *m_singleDepthFlag ) );
    550574    memset( m_apSingleDepthValue  + firstElement,     0,                  numElements * sizeof( *m_apSingleDepthValue ) );
     575#endif
    551576#endif
    552577    memset( m_pePartSize        + firstElement, SIZE_NONE,                numElements * sizeof( *m_pePartSize ) );
     
    733758      m_puhTransformSkip[2][ui] = 0;
    734759      m_skipFlag[ui]   = false;
     760#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     761      m_bDISFlag[ui]   = false;
     762      m_uiDISType[ui]  = 0;
     763#else
    735764#if H_3D_SINGLE_DEPTH
    736765      m_singleDepthFlag[ui]     = false;
    737766      m_apSingleDepthValue[ui]  = 0;
     767#endif
    738768#endif
    739769      m_pePartSize[ui] = SIZE_NONE;
     
    861891  memset( m_puhCbf[2],          0, iSizeInUchar );
    862892  memset( m_puhDepth,     uiDepth, iSizeInUchar );
    863 #if H_3D_NBDV
     893#if H_3D_NBDV && !SEC_ARP_REM_ENC_RESTRICT_K0035
    864894  m_pDvInfo->bDV = false;
    865895#endif
     
    904934  {
    905935    m_skipFlag[ui]   = false;
     936#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     937    m_bDISFlag[ui]   = false;
     938    m_uiDISType[ui]  = 0;
     939#else
    906940#if H_3D_SINGLE_DEPTH
    907941    m_singleDepthFlag[ui]   = false;
    908942    m_apSingleDepthValue[ui]= 0;
     943#endif
    909944#endif
    910945    m_pePartSize[ui] = SIZE_NONE;
     
    929964      m_puhTransformSkip[2][ui] = pcCU->getTransformSkip(uiPartOffset+ui,TEXT_CHROMA_V);
    930965      m_skipFlag[ui]   = pcCU->getSkipFlag(uiPartOffset+ui);
     966#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     967      m_bDISFlag[ui]    = pcCU->getDISFlag(uiPartOffset+ui);
     968      m_uiDISType[ui]   = pcCU->getDISType(uiPartOffset+ui);
     969#else
    931970#if H_3D_SINGLE_DEPTH
    932971      m_singleDepthFlag[ui]    = pcCU->getSingleDepthFlag(uiPartOffset+ui);
    933972      m_apSingleDepthValue[ui] = pcCU->getSingleDepthValue(uiPartOffset+ui);
     973#endif
    934974#endif
    935975      m_pePartSize[ui] = pcCU->getPartitionSize(uiPartOffset+ui);
     
    10781118 
    10791119  m_skipFlag=pcCU->getSkipFlag()          + uiPart;
     1120#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     1121  m_bDISFlag     = pcCU->getDISFlag()     + uiPart;
     1122  m_uiDISType    = pcCU->getDISType()     + uiPart;
     1123#else
    10801124#if H_3D_SINGLE_DEPTH
    10811125  m_singleDepthFlag     = pcCU->getSingleDepthFlag()   + uiPart;
    10821126  m_apSingleDepthValue  = pcCU->getSingleDepthValue()  + uiPart;
    1083 #endif 
     1127#endif
     1128#endif
    10841129  m_phQP=pcCU->getQP()                    + uiPart;
    10851130  m_pePartSize = pcCU->getPartitionSize() + uiPart;
     
    12151260 
    12161261  m_skipFlag           = pcCU->getSkipFlag ()             + uiAbsPartIdx;
     1262#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     1263  m_bDISFlag           = pcCU->getDISFlag ()              + uiAbsPartIdx;
     1264  m_uiDISType          = pcCU->getDISType()               + uiAbsPartIdx;
     1265#else
    12171266#if H_3D_SINGLE_DEPTH
    12181267  m_singleDepthFlag     = pcCU->getSingleDepthFlag ()             + uiAbsPartIdx;
    12191268  m_apSingleDepthValue  = pcCU->getSingleDepthValue ()            + uiAbsPartIdx;
    1220 #endif 
     1269#endif
     1270#endif
    12211271  m_pePartSize         = pcCU->getPartitionSize ()        + uiAbsPartIdx;
    12221272#if H_3D_NBDV
     
    12901340  Int sizeInChar  = sizeof( Char ) * uiNumPartition;
    12911341  memcpy( m_skipFlag   + uiOffset, pcCU->getSkipFlag(),       sizeof( *m_skipFlag )   * uiNumPartition );
     1342#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     1343  memcpy( m_bDISFlag   + uiOffset, pcCU->getDISFlag(),       sizeof( *m_bDISFlag )   * uiNumPartition );
     1344  memcpy( m_uiDISType  + uiOffset, pcCU->getDISType(),       sizeof( *m_uiDISType )  * uiNumPartition);
     1345#else
    12921346#if H_3D_SINGLE_DEPTH
    12931347  memcpy( m_singleDepthFlag     + uiOffset, pcCU->getSingleDepthFlag(),       sizeof( *m_singleDepthFlag )   * uiNumPartition );
    12941348  memcpy( m_apSingleDepthValue  + uiOffset, pcCU->getSingleDepthValue(),      sizeof( *m_apSingleDepthValue ) * uiNumPartition);
     1349#endif
    12951350#endif
    12961351  memcpy( m_phQP       + uiOffset, pcCU->getQP(),             sizeInChar                        );
     
    14101465
    14111466  memcpy( rpcCU->getSkipFlag() + m_uiAbsIdxInLCU, m_skipFlag, sizeof( *m_skipFlag ) * m_uiNumPartition );
     1467#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     1468  memcpy( rpcCU->getDISFlag()  + m_uiAbsIdxInLCU, m_bDISFlag,    sizeof( *m_bDISFlag )  * m_uiNumPartition );
     1469  memcpy( rpcCU->getDISType()  + m_uiAbsIdxInLCU, m_uiDISType,   sizeof( *m_uiDISType ) * m_uiNumPartition );
     1470#else
    14121471#if H_3D_SINGLE_DEPTH
    14131472  memcpy( rpcCU->getSingleDepthFlag()  + m_uiAbsIdxInLCU, m_singleDepthFlag,    sizeof( *m_singleDepthFlag ) * m_uiNumPartition );
    14141473  memcpy( rpcCU->getSingleDepthValue() + m_uiAbsIdxInLCU, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * m_uiNumPartition);
     1474#endif
    14151475#endif
    14161476  memcpy( rpcCU->getQP() + m_uiAbsIdxInLCU, m_phQP, sizeInChar  );
     
    15251585  Int sizeInChar  = sizeof( Char ) * uiQNumPart;
    15261586  memcpy( rpcCU->getSkipFlag()       + uiPartOffset, m_skipFlag,   sizeof( *m_skipFlag )   * uiQNumPart );
     1587#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     1588  memcpy( rpcCU->getDISFlag()  + uiPartOffset, m_bDISFlag,    sizeof( *m_bDISFlag )   * uiQNumPart );
     1589  memcpy( rpcCU->getDISType()  + uiPartOffset, m_uiDISType,   sizeof( *m_uiDISType )  * uiQNumPart );
     1590#else
    15271591#if H_3D_SINGLE_DEPTH
    15281592  memcpy( rpcCU->getSingleDepthFlag()  + uiPartOffset, m_singleDepthFlag,    sizeof( *m_singleDepthFlag )   * uiQNumPart );
    15291593  memcpy( rpcCU->getSingleDepthValue() + uiPartOffset, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * uiQNumPart);
     1594#endif
    15301595#endif
    15311596  memcpy( rpcCU->getQP() + uiPartOffset, m_phQP, sizeInChar );
     
    24272492  memset( m_skipFlag + absPartIdx, skip, m_pcPic->getNumPartInCU() >> ( 2 * depth ) );
    24282493}
     2494
     2495#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     2496Void TComDataCU::setDISFlagSubParts( Bool bDIS, UInt absPartIdx, UInt depth )
     2497{
     2498    assert( sizeof( *m_bDISFlag) == 1 );
     2499    memset( m_bDISFlag + absPartIdx, bDIS, m_pcPic->getNumPartInCU() >> ( 2 * depth ) );
     2500}
     2501
     2502Void TComDataCU::setDISTypeSubParts(UInt uiDISType, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth )
     2503{
     2504    setSubPartT( uiDISType, m_uiDISType, uiAbsPartIdx, uiDepth, uiPUIdx );
     2505}
     2506#else
    24292507#if H_3D_SINGLE_DEPTH
    24302508Void TComDataCU::setSingleDepthFlagSubParts( Bool singleDepth, UInt absPartIdx, UInt depth )
     
    24392517}
    24402518#endif
     2519#endif
     2520
    24412521Void TComDataCU::setPredModeSubParts( PredMode eMode, UInt uiAbsPartIdx, UInt uiDepth )
    24422522{
     
    56745754  }
    56755755
    5676   if ( bIsCurrRefLongTerm || bIsColRefLongTerm )
     5756  if ( bIsCurrRefLongTerm || bIsColRefLongTerm ) // CY: this condition equals to both bIsCurrRefLongTerm and bIsColRefLongTerm being 1
    56775757  {
    56785758#if H_3D_TMVP
     
    56815761    Int iColViewId     = pColCU->getSlice()->getViewIndex();
    56825762    Int iColRefViewId  = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex();
     5763#if H_3D_TMVP_SCALING_FIX_K0053
     5764    iScale = 4096;
     5765    if ( iCurrRefViewId != iCurrViewId && iColViewId != iColRefViewId )
     5766#endif
    56835767    iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
    56845768
     
    56955779#endif
    56965780  }
    5697   else
     5781  else // CY: both bIsCurrRefLongTerm and bIsColRefLongTerm are 0
    56985782  {
    56995783    iScale = xGetDistScaleFactor(iCurrPOC, iCurrRefPOC, iColPOC, iColRefPOC);
     
    58605944#endif
    58615945#if H_3D_IV_MERGE
     5946#if SEC_ARP_REM_ENC_RESTRICT_K0035
     5947Void TComDataCU::getDispforDepth (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp)
     5948#else
    58625949Bool TComDataCU::getDispforDepth (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp)
     5950#endif
    58635951{
    58645952
     
    58765964      pDisp->m_acNBDV = cMv;
    58775965      pDisp->m_aVIdxCan = iViewIdx;
    5878 
     5966#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    58795967      return true;
    5880   }
     5968#endif
     5969  }
     5970#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    58815971  return false;
    5882 }
    5883 #endif
    5884 
    5885 #if H_3D_SINGLE_DEPTH
    5886 Bool TComDataCU::getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index)
    5887 {
    5888 
     5972#endif
     5973}
     5974#endif
     5975
     5976#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     5977Bool TComDataCU::getNeighDepth ( UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index )
     5978{
     5979#if NEIGHBORING_PIX_AVAILABILITY_FIX
     5980  UInt  uiPartIdxLT, uiPartIdxRT;
     5981  this->deriveLeftRightTopIdxAdi( uiPartIdxLT, uiPartIdxRT, 0, 0 );
     5982  UInt uiMidPart, uiPartNeighbor; 
     5983  TComDataCU* pcCUNeighbor;
     5984  Bool bDepAvail = false;
     5985  Pel *pDepth  = this->getPic()->getPicYuvRec()->getLumaAddr();
     5986  Int iDepStride =  this->getPic()->getPicYuvRec()->getStride();
     5987
     5988  Int xP, yP, nPSW, nPSH;
     5989  this->getPartPosition( uiPartIdx, xP, yP, nPSW, nPSH );
     5990
     5991  switch( index )
     5992  {
     5993  case 0: // Mid Left
     5994    uiMidPart = g_auiZscanToRaster[uiPartIdxLT] + (nPSH>>1) / this->getPic()->getMinCUHeight() * this->getPic()->getNumPartInWidth();
     5995    pcCUNeighbor = this->getPULeft( uiPartNeighbor, g_auiRasterToZscan[uiMidPart] );
     5996    if ( pcCUNeighbor )
     5997    {
     5998      if( !this->getSlice()->getPPS()->getConstrainedIntraPred() )
     5999      {
     6000        *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ];
     6001        bDepAvail = true;
     6002      }
     6003      else if ( pcCUNeighbor->getPredictionMode( uiPartNeighbor ) == MODE_INTRA )
     6004      {
     6005        *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ];
     6006        bDepAvail = true;
     6007      }
     6008    }
     6009    break;
     6010  case 1: // Mid Above
     6011    uiMidPart = g_auiZscanToRaster[uiPartIdxLT] + (nPSW>>1) / this->getPic()->getMinCUWidth();
     6012    pcCUNeighbor = this->getPUAbove( uiPartNeighbor, g_auiRasterToZscan[uiMidPart] );
     6013    if( pcCUNeighbor )
     6014    {
     6015      if( !this->getSlice()->getPPS()->getConstrainedIntraPred() )
     6016      {
     6017        *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ];
     6018        bDepAvail = true;
     6019      }
     6020      else if ( pcCUNeighbor->getPredictionMode( uiPartNeighbor ) == MODE_INTRA )
     6021      {
     6022        *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ];
     6023        bDepAvail = true;
     6024      }
     6025    }
     6026    break;
     6027  default:
     6028    break;
     6029  }
     6030
     6031  return bDepAvail;
     6032#else
    58896033  Bool bDepAvail = false;
    58906034  Pel *pDepth  = this->getPic()->getPicYuvRec()->getLumaAddr();
     
    59126056    break;
    59136057  default:
     6058    break;
     6059  }
     6060  return bDepAvail;
     6061#endif
     6062}
     6063#else
     6064#if H_3D_SINGLE_DEPTH
     6065Bool TComDataCU::getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index)
     6066{
     6067
     6068  Bool bDepAvail = false;
     6069  Pel *pDepth  = this->getPic()->getPicYuvRec()->getLumaAddr();
     6070  Int iDepStride =  this->getPic()->getPicYuvRec()->getStride();
     6071
     6072  Int xP, yP, nPSW, nPSH;
     6073  this->getPartPosition(uiPartIdx, xP, yP, nPSW, nPSH);
     6074  UInt PicHeight=this->getPic()->getPicYuvRec()->getHeight();
     6075  UInt PicWidth=this->getPic()->getPicYuvRec()->getWidth();
     6076  switch(index)
     6077  {
     6078  case 0: // Mid Left
     6079    if( ( xP != 0 ) && ( ( yP + ( nPSH >> 1 ) ) < PicHeight ) )
     6080    {
     6081      *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ];
     6082      bDepAvail = true;
     6083    }
     6084    break;
     6085  case 1: // Mid Above
     6086    if( ( yP != 0 ) && ( ( xP + ( nPSW >> 1 ) ) < PicWidth ) )
     6087    {
     6088      *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ];
     6089      bDepAvail = true;
     6090    }
     6091    break;
     6092  default:
    59146093      break;
    59156094  }
    59166095  return bDepAvail;
    59176096}
    5918 
    5919 #endif
     6097#endif
     6098#endif
     6099
    59206100#if H_3D_NBDV
    59216101//Notes from QC:
     
    59236103//TBD#2: set of DvMCP values need to be done as part of inter-view motion prediction process. Remove this comment once merge related integration is done
    59246104//To be checked: Parallel Merge features for NBDV, related to DV_DERIVATION_PARALLEL_B0096 and LGE_IVMP_PARALLEL_MERGE_B0136 are not integrated. The need of these features due to the adoption of CU-based NBDV is not clear. We need confirmation on this, especially by proponents
     6105#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6106Void TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo
     6107#else
    59256108Bool TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo
     6109#endif
    59266110#if H_3D_NBDV_REF
    59276111, Bool bDepthRefine
     
    59316115  //// ******* Init variables ******* /////
    59326116  // Init disparity struct for results
     6117#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    59336118  pDInfo->bDV = false;   
     6119#endif
    59346120  pDInfo->m_aVIdxCan = -1;
    59356121
     
    60266212        pDInfo->m_acDoNBDV  = cColMv;
    60276213#endif //H_3D_NBDV_REF
     6214#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6215        return;
     6216#else
    60286217        return true;
     6218#endif
    60296219      }
    60306220    }
     
    60436233#endif
    60446234    ) )
     6235#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6236    return;
     6237#else
    60456238    return true;
     6239#endif
    60466240
    60476241  //// ******* Get disparity from above block ******* /////
     
    60556249#endif
    60566250      ) )
     6251#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6252      return;
     6253#else
    60576254      return true;
     6255#endif
    60586256  }
    60596257
     
    61016299          pDInfo->m_acDoNBDV = cDispVec;
    61026300#endif
     6301#if SEC_ARP_REM_ENC_RESTRICT_K0035
     6302          return;
     6303#else
    61036304          return true;
     6305#endif
    61046306        }
    61056307      }
     
    61376339      pDInfo->m_acDoNBDV = defaultDV;
    61386340#endif
     6341#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    61396342      return true;
    6140   }
     6343#endif
     6344  }
     6345#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    61416346  return false;
     6347#endif
    61426348}
    61436349
     
    67526958      Int         iBaseAbsPartIdx;
    67536959
     6960#if SEC_SHIFTED_IVMC_POS_K0036
     6961      Int offsetW = (iLoopCan == 0) ? 0 : ( iWidth  * 2 );
     6962      Int offsetH = (iLoopCan == 0) ? 0 : ( iHeight * 2 );
     6963#else
    67546964      Int offsetW = (iLoopCan == 0) ? 0 : ( ((iWidth /2)*4) + 4 );
    67556965      Int offsetH = (iLoopCan == 0) ? 0 : ( ((iHeight/2)*4) + 4 );
     6966#endif
    67566967
    67576968      Int         iBasePosX   = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) );
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/TComDataCU.h

    r1133 r1163  
    110110  // -------------------------------------------------------------------------------------------------------------------
    111111  Bool*         m_skipFlag;           ///< array of skip flags
     112#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     113  Bool*         m_bDISFlag;         
     114  UInt*         m_uiDISType;
     115#else
    112116#if H_3D_SINGLE_DEPTH
    113117  Bool*         m_singleDepthFlag;           ///< array of single depth flags
    114118  Pel*          m_apSingleDepthValue;
     119#endif
    115120#endif
    116121  Char*         m_pePartSize;         ///< array of partition sizes
     
    342347  Void         setSkipFlag           ( UInt idx, Bool skip)     { m_skipFlag[idx] = skip;   }
    343348  Void         setSkipFlagSubParts   ( Bool skip, UInt absPartIdx, UInt depth );
     349#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     350  Bool*        getDISFlag            ()                         { return m_bDISFlag;          }
     351  Bool         getDISFlag            ( UInt idx)                { return m_bDISFlag[idx];     }
     352  Void         setDISFlag            ( UInt idx, Bool bDIS)     { m_bDISFlag[idx] = bDIS;   }
     353  Void         setDISFlagSubParts    ( Bool bDIS, UInt absPartIdx, UInt depth );
     354
     355  UInt*        getDISType            ()                         { return m_uiDISType; }
     356  UInt         getDISType            ( UInt idx)                { return m_uiDISType[idx];     }
     357  Void         getDISType            ( UInt idx, UInt uiDISType)     { m_uiDISType[idx] = uiDISType;   }
     358  Void         setDISTypeSubParts    ( UInt uiDISType, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth );
     359#else
    344360#if H_3D_SINGLE_DEPTH
    345361  Bool*        getSingleDepthFlag            ()                        { return m_singleDepthFlag;          }
     
    353369  Void         setSingleDepthValueSubParts   (Pel singleDepthValue, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth );
    354370#endif 
     371#endif
    355372  Char*         getPredictionMode     ()                        { return m_pePredMode;        }
    356373  PredMode      getPredictionMode     ( UInt uiIdx )            { return static_cast<PredMode>( m_pePredMode[uiIdx] ); }
     
    484501  );
    485502  Bool          xGetColDisMV      ( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx );
     503#if SEC_ARP_REM_ENC_RESTRICT_K0035
     504  Void          getDisMvpCandNBDV ( DisInfo* pDInfo
     505#else
    486506  Bool          getDisMvpCandNBDV ( DisInfo* pDInfo
     507#endif
    487508#if H_3D_NBDV_REF
    488509   , Bool bDepthRefine = false
     
    491512   
    492513#if H_3D
     514#if SEC_ARP_REM_ENC_RESTRICT_K0035
     515  Void          getDispforDepth  ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp);
     516#else
    493517  Bool          getDispforDepth  ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp);
     518#endif
    494519  Bool          getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm );
    495520#endif
     521#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     522   Bool          getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index);
     523#else
    496524#if H_3D_SINGLE_DEPTH
    497525   Bool          getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index);
     526#endif
    498527#endif
    499528#if H_3D_NBDV_REF
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/TComMotionInfo.h

    r1084 r1163  
    6363typedef struct _DisCand
    6464{
     65#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    6566  Bool bDV;
     67#endif
    6668  TComMv m_acNBDV;              // DV from NBDV
    6769#if H_3D_NBDV_REF
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/TComPrediction.cpp

    r1133 r1163  
    12551255#if H_3D_NBDV
    12561256  DisInfo cDistparity;
     1257#if SEC_ARP_REM_ENC_RESTRICT_K0035
     1258  cDistparity.m_acNBDV = pcCU->getDvInfo(0).m_acNBDV;
     1259  cDistparity.m_aVIdxCan = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan;
     1260#else
    12571261  cDistparity.bDV           = pcCU->getDvInfo(uiPartAddr).bDV;
    12581262  if( cDistparity.bDV )
     
    12621266    cDistparity.m_aVIdxCan = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan;
    12631267  }
     1268#endif
    12641269#else
    12651270  assert(0); // ARP can be applied only when a DV is available
    12661271#endif
    1267 
     1272#if SEC_ARP_REM_ENC_RESTRICT_K0035
     1273  UChar dW = pcCU->getARPW ( uiPartAddr );
     1274#else
    12681275  UChar dW = cDistparity.bDV ? pcCU->getARPW ( uiPartAddr ) : 0;
    1269 
     1276#endif
     1277
     1278#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    12701279  if( cDistparity.bDV )
     1280#endif
    12711281  {
    12721282    Int arpRefIdx = pcCU->getSlice()->getFirstTRefIdx(eRefPicList);
     
    13201330      pYuvB0->clear(); pYuvB1->clear();
    13211331    }
    1322 
     1332#if !SEC_ARP_REM_ENC_RESTRICT_K0035
    13231333    assert ( cDistparity.bDV );
    1324    
     1334#endif   
    13251335    TComMv cNBDV = cDistparity.m_acNBDV;
    13261336    pcCU->clipMv( cNBDV );
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/TComRdCost.cpp

    r884 r1163  
    341341    else if( eDFunc >= DF_HADS && eDFunc <= DF_HADS16N )
    342342    {
     343#if !RWTH_DBBP_NO_SATD_K0028
    343344      rcDistParam.DistFunc = TComRdCost::xGetMaskedHADs;
     345#else
     346      rcDistParam.DistFunc = TComRdCost::xGetMaskedSAD;
     347#endif
    344348    }
    345349    else if( eDFunc >= DF_VSD && eDFunc <= DF_VSD16N )
     
    441445  if( m_bUseMask )
    442446  {
     447#if !RWTH_DBBP_NO_SATD_K0028
    443448    rcDistParam.DistFunc = (bHADME)?TComRdCost::xGetMaskedHADs:TComRdCost::xGetMaskedSAD;
     449#else
     450    rcDistParam.DistFunc = TComRdCost::xGetMaskedSAD;
     451#endif
    444452  }
    445453#endif
     
    464472  if( m_bUseMask )
    465473  {
     474#if !RWTH_DBBP_NO_SATD_K0028
    466475    rcDP.DistFunc = (bHadamard)?TComRdCost::xGetMaskedHADs:TComRdCost::xGetMaskedSAD;
     476#else
     477    rcDP.DistFunc = TComRdCost::xGetMaskedSAD;
     478#endif
    467479  }
    468480#endif
     
    717729}
    718730
     731#if !RWTH_DBBP_NO_SATD_K0028
    719732UInt TComRdCost::xGetMaskedHADs( DistParam* pcDtParam )
    720733{
     
    834847  return uiSum >> DISTORTION_PRECISION_ADJUSTMENT(pcDtParam->bitDepth-8);
    835848}
     849#endif
    836850
    837851UInt TComRdCost::xGetMaskedVSD( DistParam* pcDtParam )
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/TComRdCost.h

    r872 r1163  
    320320  static UInt xGetMaskedSSE     ( DistParam* pcDtParam );
    321321  static UInt xGetMaskedSAD     ( DistParam* pcDtParam );
     322#if !RWTH_DBBP_NO_SATD_K0028
    322323  static UInt xGetMaskedHADs    ( DistParam* pcDtParam );
     324#endif
    323325  static UInt xGetMaskedVSD     ( DistParam* pcDtParam );
    324326#endif
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/TComSlice.cpp

    r1133 r1163  
    140140, m_depthToDisparityF             ( NULL )
    141141#endif
     142#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     143, m_bApplyDIS                     (false)
     144#else
    142145#if H_3D_SINGLE_DEPTH
    143146, m_bApplySingleDepthMode         (false)
     147#endif
    144148#endif
    145149#endif
     
    10991103  }
    11001104#endif
     1105#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     1106  m_bApplyDIS = pSrc->m_bApplyDIS;
     1107#else
    11011108#if H_3D_SINGLE_DEPTH
    11021109  m_bApplySingleDepthMode = pSrc->m_bApplySingleDepthMode;
     1110#endif
    11031111#endif
    11041112#if H_3D_IC
     
    40884096  m_intraSdcWedgeFlag      = sps3dExt->getIntraSdcWedgeFlag    ( depthFlag ) && lidG0                                     ;                         
    40894097  m_qtPredFlag             = sps3dExt->getQtPredFlag           ( depthFlag ) && lidG0           &&   textOfCurViewAvailFlag;
    4090   m_interSdcFlag           = sps3dExt->getInterSdcFlag         ( depthFlag ) && lidG0                                    ;                               
     4098  m_interSdcFlag           = sps3dExt->getInterSdcFlag         ( depthFlag ) && lidG0                                    ; 
     4099#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     4100  m_depthIntraSkipFlag     = sps3dExt->getDepthIntraSkipFlag   ( depthFlag ) && lidG0                                    ;                         
     4101#else
    40914102  m_intraSingleFlag        = sps3dExt->getIntraSingleFlag      ( depthFlag ) && lidG0                                    ;                         
     4103#endif
    40924104
    40934105  m_subPbSize              = lidG0 ? ( 1 << ( sps3dExt->getLog2SubPbSizeMinus3   ( depthFlag ) + 3 ) ) : getSPS()->getMaxCUWidth(); 
     
    41124124  std::cout << "qtPredFlag              :" << m_qtPredFlag             << std::endl;
    41134125  std::cout << "interSdcFlag            :" << m_interSdcFlag           << std::endl;
     4126#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     4127  std::cout << "depthIntraSkipFlag      :" << m_depthIntraSkipFlag     << std::endl;   
     4128#else
    41144129  std::cout << "intraSingleFlag         :" << m_intraSingleFlag        << std::endl;   
     4130#endif
    41154131  std::cout << "subPbSize               :" << m_subPbSize              << std::endl;
    41164132  std::cout << "mpiSubPbSize            :" << m_mpiSubPbSize           << std::endl;
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/TComSlice.h

    r1133 r1163  
    15741574      m_qtPredFlag            [d] = false;
    15751575      m_interSdcFlag          [d] = false;
    1576       m_intraSingleFlag       [d] = false;   
     1576#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     1577      m_depthIntraSkipFlag    [d] = false;   
     1578#else
     1579      m_intraSingleFlag       [d] = false;
     1580#endif
    15771581    }
    15781582  }
     
    16171621  Bool getInterSdcFlag( Int d ) { return m_interSdcFlag[d]; }
    16181622
     1623#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     1624  Void setDepthIntraSkipFlag( Int d, Bool flag ) { m_depthIntraSkipFlag[d] = flag; }
     1625  Bool getDepthIntraSkipFlag( Int d ) { return m_depthIntraSkipFlag[d]; }
     1626#else
    16191627  Void setIntraSingleFlag( Int d, Bool flag ) { m_intraSingleFlag[d] = flag; }
    16201628  Bool getIntraSingleFlag( Int d ) { return m_intraSingleFlag[d]; }
     1629#endif
    16211630
    16221631private:
     
    16351644  Bool        m_qtPredFlag            [2];
    16361645  Bool        m_interSdcFlag          [2];
     1646#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     1647  Bool        m_depthIntraSkipFlag    [2]; 
     1648#else
    16371649  Bool        m_intraSingleFlag       [2]; 
     1650#endif
    16381651};
    16391652
     
    23772390#endif
    23782391#endif
     2392#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     2393  Bool      m_bApplyDIS;
     2394#else
    23792395#if H_3D_SINGLE_DEPTH
    23802396  Bool      m_bApplySingleDepthMode;
     2397#endif
    23812398#endif
    23822399#if H_3D_IC
     
    23982415  Bool m_qtPredFlag           ;
    23992416  Bool m_interSdcFlag         ;
     2417#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     2418  Bool m_depthIntraSkipFlag   ;
     2419#else
    24002420  Bool m_intraSingleFlag      ;
    2401 
     2421#endif
    24022422  Int  m_mpiSubPbSize         ;
    24032423  Int  m_subPbSize            ;
     
    28222842  Bool getQtPredFlag             ( ) { return m_qtPredFlag             ; };
    28232843  Bool getInterSdcFlag           ( ) { return m_interSdcFlag           ; };
     2844#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     2845  Bool getDepthIntraSkipFlag     ( ) { return m_depthIntraSkipFlag     ; };
     2846#else
    28242847  Bool getIntraSingleFlag        ( ) { return m_intraSingleFlag        ; };
     2848#endif
    28252849
    28262850  Int  getMpiSubPbSize           ( ) { return m_mpiSubPbSize           ; };
  • branches/HTM-13.1-dev0/source/Lib/TLibCommon/TypeDef.h

    r1133 r1163  
    6969
    7070#define MTK_I0093           1
     71
     72#define RWTH_DBBP_NO_SATD_K0028       1
    7173/////////////////////////////////////////////////////////////////////////////////////////
    7274///////////////////////////////////   MAJOR DEFINES   /////////////////////////////////// 
     
    7880
    7981#if H_3D
     82#define SEC_DEPTH_INTRA_SKIP_MODE_K0033   1   // Depth intra skip mode
     83#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
     84#define NEIGHBORING_PIX_AVAILABILITY_FIX  1
     85#endif
     86
     87
    8088#define H_3D_QTLPC                        1   // OL_QTLIMIT_PREDCODING_B0068 //JCT3V-B0068
    8189                                              // HHI_QTLPC_RAU_OFF_C0160 JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units
     
    117125#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
    118126
     127#define SEC_ARP_REM_ENC_RESTRICT_K0035    1   // Removal of encoder restriction of ARP, JCT3V-K0035
     128
    119129#define H_3D_IC                           1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
    120130                                              // Unifying rounding offset, for IC part, JCT3V-D0135
     
    185195                                              // SEC_SIMP_SHIFTED_DV_I0086     Simplification of Shifted DV candidate, JCT3V-I0086
    186196
    187 
     197#define SEC_SHIFTED_IVMC_POS_K0036        1   // Position Derivation for Shifted-IVMC, JCT3V-K0036
    188198
    189199
    190200#define H_3D_TMVP                         1   // QC_TMVP_C0047
    191201                                              // Sony_M23639
     202#if H_3D_TMVP
     203#define H_3D_TMVP_SCALING_FIX_K0053       1   // QC/CY for K0053
     204#endif
    192205
    193206#define H_3D_DIM                          1   // DIM, Depth intra modes, includes:
     
    239252                                              // SHARP_DLT_SIMP_J0029              1   // DLT(DepthValue2Idx[]) table derivation cleanup
    240253
     254#if !SEC_DEPTH_INTRA_SKIP_MODE_K0033
    241255#define H_3D_SINGLE_DEPTH                 1   // Single depth mode proposed in JCT3V-I0095
    242256                                              // HS_SP_SIMP_J0066
    243257                                              // SINGLE_DEPTH_SIMP_J0115           1
    244258                                              // MTK_SINGLE_DEPTH_VPS_FLAG_J0060   1   // Add VPS control flags and remove slice header control flag for single depth, JCT3V-J0060
     259#endif
    245260
    246261#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
     
    313328#define H_3D_OUTPUT_ACTIVE_TOOLS               0
    314329
     330#if !SEC_DEPTH_INTRA_SKIP_MODE_K0033
    315331///// ***** SINGLE DEPTH MODE *********
    316332#if H_3D_SINGLE_DEPTH
    317333#define SINGLE_DEPTH_MODE_CAND_LIST_SIZE            2 // size of the sample candidate list
    318334
     335#endif
    319336#endif
    320337
Note: See TracChangeset for help on using the changeset viewer.