Changeset 990 in 3DVCSoftware


Ignore:
Timestamp:
15 Jul 2014, 03:22:01 (10 years ago)
Author:
samsung-htm
Message:

Integration of JCT3V-I0077: Removal of Partition Derivation for DBBP

Location:
branches/HTM-11.2-dev1-Samsung
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-11.2-dev1-Samsung/source/Lib/TLibCommon/ContextTables.h

    r976 r990  
    432432static const UChar INIT_DBBP_FLAG[3][DBBP_NUM_FLAG_CTX] =
    433433{
     434#if SEC_DBBP_EXPLICIT_SIG_I0077
     435  { CNU },
     436  { CNU },
     437  { CNU },
     438#else
    434439  { 161 },
    435440  { 161 },
    436441  { 161 },
    437 };
    438 #endif
    439 
    440 #endif
     442#endif
     443};
     444#endif
     445
     446#endif
  • branches/HTM-11.2-dev1-Samsung/source/Lib/TLibCommon/TypeDef.h

    r989 r990  
    235235                                              // H_3D_FIX_DBBP_IVMP        Fix . Enable IVMP is always disabled, when DBBP is enabled. The original intention is to disable Sub-PU IVMP when DBBP is enabled, not to disable IVMP itself.
    236236
     237#define SEC_DBBP_EXPLICIT_SIG_I0077       1   // Remove the partition derivation and signal dbbp_flag only when the partion mode is 2NxN/Nx2N, JCT3V-I0077
    237238
    238239#define H_3D_DDD                          1   // Disparity derived depth coding
  • branches/HTM-11.2-dev1-Samsung/source/Lib/TLibDecoder/TDecEntropy.cpp

    r976 r990  
    139139 
    140140#if H_3D_DBBP
    141 
     141#if SEC_DBBP_EXPLICIT_SIG_I0077
     142  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) )
     143#else
    142144  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) )
     145#endif
    143146  {
    144147    decodeDBBPFlag(pcCU, uiAbsPartIdx, uiDepth);
    145    
     148#if !SEC_DBBP_EXPLICIT_SIG_I0077   
    146149    if( pcCU->getDBBPFlag(uiAbsPartIdx) )
    147150    {
     
    167170      pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx+uiPUOffset, 1, uiDepth);
    168171    }
     172#endif
    169173  }
    170174#endif
  • branches/HTM-11.2-dev1-Samsung/source/Lib/TLibDecoder/TDecSbac.cpp

    r976 r990  
    21382138  m_pcTDecBinIf->decodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) );
    21392139 
     2140#if SEC_DBBP_EXPLICIT_SIG_I0077
     2141  PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );
     2142  AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N );
     2143  UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxCUDepth() - uiDepth ) << 1 ) ) >> 4;
     2144  pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx, 0, uiDepth);
     2145  pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx+uiPUOffset, 1, uiDepth);
     2146#else
    21402147  if( uiSymbol )
    21412148  {
     
    21442151    pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx + 2*uiCurrPartNumQ, 1, uiDepth);
    21452152  }
     2153#endif
    21462154}
    21472155#endif
  • branches/HTM-11.2-dev1-Samsung/source/Lib/TLibEncoder/TEncEntropy.cpp

    r976 r990  
    244244 
    245245#if H_3D_DBBP
     246#if! SEC_DBBP_EXPLICIT_SIG_I0077
    246247  PartSize eVirtualPartSize = pcCU->getPartitionSize(uiAbsPartIdx);
    247248  if( pcCU->getDBBPFlag(uiAbsPartIdx) )
     
    253254  }
    254255#endif
     256#endif
    255257 
    256258  m_pcEntropyCoderIf->codePartSize( pcCU, uiAbsPartIdx, uiDepth );
    257259 
    258260#if H_3D_DBBP
     261#if SEC_DBBP_EXPLICIT_SIG_I0077
     262  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) )
     263#else
    259264  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) )
     265#endif
    260266  {
    261267    encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD);
    262    
     268#if !SEC_DBBP_EXPLICIT_SIG_I0077
    263269    if( pcCU->getDBBPFlag(uiAbsPartIdx) )
    264270    {
     
    266272      pcCU->setPartSizeSubParts(eVirtualPartSize, uiAbsPartIdx, uiDepth);
    267273    }
     274#endif
    268275  }
    269276#endif
  • branches/HTM-11.2-dev1-Samsung/source/Lib/TLibEncoder/TEncSbac.cpp

    r976 r990  
    23432343Void TEncSbac::codeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
    23442344{
     2345#if SEC_DBBP_EXPLICIT_SIG_I0077
     2346  PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );
     2347  AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N );
     2348#endif
    23452349  AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) );
    23462350  AOF( !pcCU->getSlice()->getIsDepth() );
Note: See TracChangeset for help on using the changeset viewer.