Changeset 824 in 3DVCSoftware for branches/HTM-9.3-dev3-Fix/source/Lib


Ignore:
Timestamp:
5 Feb 2014, 15:13:54 (11 years ago)
Author:
qualcomm
Message:

Fix of JCT3V-G0130

Location:
branches/HTM-9.3-dev3-Fix/source/Lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.3-dev3-Fix/source/Lib/TLibCommon/TypeDef.h

    r808 r824  
    238238#if H_3D_DIM_SDC && H_3D_INTER_SDC
    239239#define QC_SDC_UNIFY_G0130                1  // Unify intra SDC and inter SDC
     240#define QC_SDC_UNIFY_G0130_FIX            1  // Fix bug of G0130
    240241#endif
    241242#define SEC_INTER_SDC_G0101               1  // Improved inter SDC with multiple DC candidates
  • branches/HTM-9.3-dev3-Fix/source/Lib/TLibDecoder/TDecEntropy.cpp

    r792 r824  
    733733  }
    734734#endif
    735 
     735#if QC_SDC_UNIFY_G0130_FIX
     736  if( pcCU->getSlice()->getIsDepth() && ( pcCU->getSDCFlag( uiAbsPartIdx ) || pcCU->isIntra( uiAbsPartIdx ) ) )
     737#else
    736738  if( pcCU->getSDCFlag( uiAbsPartIdx ) || pcCU->isIntra( uiAbsPartIdx ) )
     739#endif
    737740  {
    738741    Int iPartNum = ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_NxN ) ? 4 : 1;
  • branches/HTM-9.3-dev3-Fix/source/Lib/TLibEncoder/TEncEntropy.cpp

    r794 r824  
    669669  }
    670670#endif
    671 
     671#if QC_SDC_UNIFY_G0130_FIX
     672  if( pcCU->getSlice()->getIsDepth() && ( pcCU->getSDCFlag( uiAbsPartIdx ) || pcCU->isIntra( uiAbsPartIdx ) ) )
     673#else
    672674  if( pcCU->getSDCFlag( uiAbsPartIdx ) || pcCU->isIntra( uiAbsPartIdx ) )
     675#endif
    673676  {
    674677    Int iPartNum = ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_NxN ) ? 4 : 1;
  • branches/HTM-9.3-dev3-Fix/source/Lib/TLibEncoder/TEncSearch.cpp

    r813 r824  
    940940      {
    941941        m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, 0 );
     942#if QC_SDC_UNIFY_G0130_FIX
     943        if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( 0 ) ) && getDimType( pcCU->getLumaIntraDir( 0 ) ) < DIM_NUM_TYPE )
     944        {
     945          m_pcEntropyCoder->encodeDeltaDC( pcCU, 0 );
     946        }
     947#endif
    942948      }
    943949    }
     
    951957        {
    952958          m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiPart * uiQNumParts );
     959#if QC_SDC_UNIFY_G0130_FIX
     960          if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiPart * uiQNumParts ) ) && getDimType( pcCU->getLumaIntraDir( uiPart * uiQNumParts ) ) < DIM_NUM_TYPE )
     961          {
     962            m_pcEntropyCoder->encodeDeltaDC( pcCU, uiPart * uiQNumParts );
     963          }
     964#endif
    953965        }
    954966      }
     
    956968      {
    957969        m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiAbsPartIdx );
    958       }
    959     }
    960 #if QC_SDC_UNIFY_G0130
     970#if QC_SDC_UNIFY_G0130_FIX
     971        if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiAbsPartIdx ) ) && getDimType( pcCU->getLumaIntraDir( uiAbsPartIdx ) ) < DIM_NUM_TYPE )
     972        {
     973          m_pcEntropyCoder->encodeDeltaDC( pcCU, uiAbsPartIdx );
     974        }
     975#endif
     976      }
     977    }
     978#if QC_SDC_UNIFY_G0130 && !QC_SDC_UNIFY_G0130_FIX
    961979    Int iPartNum = ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_NxN ) ? 4 : 1;
    962980    UInt uiPartOffset = ( pcCU->getPic()->getNumPartInCU() >> ( pcCU->getDepth( uiAbsPartIdx ) << 1 ) ) >> 2;
Note: See TracChangeset for help on using the changeset viewer.