Changeset 785 in 3DVCSoftware


Ignore:
Timestamp:
21 Jan 2014, 01:02:51 (10 years ago)
Author:
samsung-htm
Message:

Integration of JCT3V-G0072: IC and ARP Flags Signaling

Location:
branches/HTM-9.3-dev2-Samsung
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.3-dev2-Samsung/source/Lib/TLibCommon/TypeDef.h

    r773 r785  
    225225#define H_3D_ARP_WFNR                     3
    226226#endif
     227#define SEC_IC_ARP_SIG_G0072              1   // Disabling IC when ARP is enabled, option 1 in JCT3V-G0072, part 2 in JCT3V-G0121
    227228
    228229///// ***** DEPTH INTRA MODES *********
  • branches/HTM-9.3-dev2-Samsung/source/Lib/TLibDecoder/TDecCu.cpp

    r773 r785  
    390390    UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx);
    391391
     392#if !SEC_IC_ARP_SIG_G0072
    392393#if H_3D_IC
    393394    m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
    394395#endif
     396#endif
    395397#if H_3D_ARP
    396398    m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth );
     399#endif
     400#if SEC_IC_ARP_SIG_G0072
     401#if H_3D_IC
     402    m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     403#endif
    397404#endif
    398405
  • branches/HTM-9.3-dev2-Samsung/source/Lib/TLibDecoder/TDecEntropy.cpp

    r773 r785  
    111111  pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth );
    112112
     113#if SEC_IC_ARP_SIG_G0072
     114  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 )
     115#else
    113116  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() )
     117#endif
    114118  {
    115119    return;
     
    241245      decodeMergeIndex( pcCU, uiPartIdx, uiSubPartIdx, uiDepth );
    242246      UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx);
     247#if !SEC_IC_ARP_SIG_G0072
    243248#if H_3D_IC
    244249      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
    245250#endif
     251#endif
    246252#if H_3D_ARP
    247253      decodeARPW  ( pcCU, uiAbsPartIdx, uiDepth );
     254#endif
     255#if SEC_IC_ARP_SIG_G0072
     256#if H_3D_IC
     257      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     258#endif
    248259#endif
    249260      if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 )
     
    367378        }
    368379      }
     380#if !SEC_IC_ARP_SIG_G0072
    369381#if H_3D_IC
    370382      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
    371383#endif
     384#endif
    372385#if H_3D_ARP
    373386      decodeARPW  ( pcCU, uiAbsPartIdx, uiDepth );
     387#endif
     388#if SEC_IC_ARP_SIG_G0072
     389#if H_3D_IC
     390      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     391#endif
    374392#endif
    375393    }
  • branches/HTM-9.3-dev2-Samsung/source/Lib/TLibEncoder/TEncCu.cpp

    r773 r785  
    15761576#endif
    15771577    m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx );
     1578#if !SEC_IC_ARP_SIG_G0072
    15781579#if H_3D_IC
    15791580    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    15801581#endif
     1582#endif
    15811583#if H_3D_ARP
    15821584    m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
     1585#endif
     1586#if SEC_IC_ARP_SIG_G0072
     1587#if H_3D_IC
     1588    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1589#endif
    15831590#endif
    15841591    finishCU(pcCU,uiAbsPartIdx,uiDepth);
     
    16031610  // prediction Info ( Intra : direction mode, Inter : Mv, reference idx )
    16041611  m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx );
     1612#if !SEC_IC_ARP_SIG_G0072
    16051613#if H_3D_IC
    16061614  m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    16071615#endif
     1616#endif
    16081617#if H_3D_ARP
    16091618  m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
     1619#endif
     1620#if SEC_IC_ARP_SIG_G0072
     1621#if H_3D_IC
     1622  m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
     1623#endif
    16101624#endif
    16111625#if H_3D_INTER_SDC
     
    18371851#if H_3D_ARP
    18381852  Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1;
     1853#if SEC_IC_ARP_SIG_G0072
     1854  if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV || bICFlag )
     1855#else
    18391856  if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV )
     1857#endif
    18401858  {
    18411859    nARPWMax = 0;
     
    20872105  Int nARPWMax    = rpcTempCU->getSlice()->getARPStepNum() - 1;
    20882106
     2107#if SEC_IC_ARP_SIG_G0072
     2108  if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV || rpcTempCU->getICFlag(0) )
     2109#else
    20892110  if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV  )
     2111#endif
    20902112  {
    20912113    nARPWMax = 0;
  • branches/HTM-9.3-dev2-Samsung/source/Lib/TLibEncoder/TEncEntropy.cpp

    r773 r785  
    160160Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    161161{
     162#if SEC_IC_ARP_SIG_G0072
     163  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 )
     164#else
    162165  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() )
     166#endif
    163167  {
    164168    return;
  • branches/HTM-9.3-dev2-Samsung/source/Lib/TLibEncoder/TEncSearch.cpp

    r773 r785  
    52535253    m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true);
    52545254    m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, true );
     5255#if !SEC_IC_ARP_SIG_G0072
    52555256#if H_3D_IC
    52565257    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    52575258#endif
     5259#endif
    52585260#if H_3D_ARP
    52595261    m_pcEntropyCoder->encodeARPW( pcCU, 0 );
     5262#endif
     5263#if SEC_IC_ARP_SIG_G0072
     5264#if H_3D_IC
     5265    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
     5266#endif
    52605267#endif
    52615268    uiBits = m_pcEntropyCoder->getNumberOfWrittenBits();
     
    68336840    m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true);
    68346841    m_pcEntropyCoder->encodeMergeIndex(pcCU, 0, true);
     6842#if !SEC_IC_ARP_SIG_G0072
    68356843#if H_3D_IC
    68366844    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    68376845#endif
     6846#endif
    68386847#if H_3D_ARP
    68396848    m_pcEntropyCoder->encodeARPW( pcCU, 0 );
     6849#endif
     6850#if SEC_IC_ARP_SIG_G0072
     6851#if H_3D_IC
     6852    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
     6853#endif
    68406854#endif
    68416855    ruiBits += m_pcEntropyCoder->getNumberOfWrittenBits();
     
    68526866    m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth(0), true );
    68536867    m_pcEntropyCoder->encodePredInfo( pcCU, 0, true );
     6868#if !SEC_IC_ARP_SIG_G0072
    68546869#if H_3D_IC
    68556870    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    68566871#endif
     6872#endif
    68576873#if H_3D_ARP
    68586874    m_pcEntropyCoder->encodeARPW( pcCU , 0 );
     6875#endif
     6876#if SEC_IC_ARP_SIG_G0072
     6877#if H_3D_IC
     6878    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
     6879#endif
    68596880#endif
    68606881#if H_3D_INTER_SDC
Note: See TracChangeset for help on using the changeset viewer.