Ignore:
Timestamp:
11 Dec 2015, 00:05:48 (8 years ago)
Author:
seregin
Message:

infer parameters in SPS after activation, fixing chroma scaling for non 4:2:0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1500 r1502  
    12251225#endif
    12261226
    1227 #if SCALABLE_REXT
    1228   const ChromaFormat chFmt = pcSlice->getChromaFormatIdc();
    1229 #else
    12301227  const ChromaFormat chFmt = sps->getChromaFormatIdc();
    1231 #endif
    12321228  const UInt numValidComp=getNumberValidComponents(chFmt);
    12331229  const Bool bChroma=(chFmt!=CHROMA_400);
     
    12411237    pcSlice->setDependentSliceSegmentFlag(false);
    12421238  }
    1243 #if SVC_EXTENSION
    1244   Int numCTUs = ((pcSlice->getPicWidthInLumaSamples()+sps->getMaxCUWidth()-1)/sps->getMaxCUWidth())*((pcSlice->getPicHeightInLumaSamples()+sps->getMaxCUHeight()-1)/sps->getMaxCUHeight());
    1245 #else
    12461239  Int numCTUs = ((sps->getPicWidthInLumaSamples()+sps->getMaxCUWidth()-1)/sps->getMaxCUWidth())*((sps->getPicHeightInLumaSamples()+sps->getMaxCUHeight()-1)/sps->getMaxCUHeight());
    1247 #endif 
    12481240  UInt sliceSegmentAddress = 0;
    12491241  Int bitsSliceSegmentAddress = 0;
     
    18321824    pcSlice->setSliceQp (26 + pps->getPicInitQPMinus26() + iCode);
    18331825
    1834 #if SVC_EXTENSION
    1835     assert( pcSlice->getSliceQp() >= -pcSlice->getQpBDOffset(CHANNEL_TYPE_LUMA) );
    1836 #else   
    18371826    assert( pcSlice->getSliceQp() >= -sps->getQpBDOffset(CHANNEL_TYPE_LUMA) );
    1838 #endif
    18391827    assert( pcSlice->getSliceQp() <=  51 );
    18401828
     
    23652353#endif
    23662354
    2367 #if SVC_EXTENSION
    2368   Int qpBdOffsetY = pcCU->getSlice()->getQpBDOffset(CHANNEL_TYPE_LUMA);
    2369 #else
    23702355  Int qpBdOffsetY = pcCU->getSlice()->getSPS()->getQpBDOffset(CHANNEL_TYPE_LUMA);
    2371 #endif
    23722356  const Int qp = (((Int) pcCU->getRefQP( uiAbsPartIdx ) + iDQp + 52 + 2*qpBdOffsetY )%(52+ qpBdOffsetY)) -  qpBdOffsetY;
    23732357
     
    24292413{
    24302414        WPScalingParam *wp;
    2431 #if SCALABLE_REXT
    2432   const ChromaFormat    chFmt        = pcSlice->getChromaFormatIdc();
    2433 #else
    24342415  const ChromaFormat    chFmt        = sps->getChromaFormatIdc();
    2435 #endif
    24362416  const Int             numValidComp = Int(getNumberValidComponents(chFmt));
    24372417  const Bool            bChroma      = (chFmt!=CHROMA_400);
     
    24962476        wp[COMPONENT_Y].iWeight = (iDeltaWeight + (1<<wp[COMPONENT_Y].uiLog2WeightDenom));
    24972477        READ_SVLC( wp[COMPONENT_Y].iOffset, iNumRef==0?"luma_offset_l0[i]":"luma_offset_l1[i]" );
    2498 #if SVC_EXTENSION
    2499         Int range=sps->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag() ? (1<<pcSlice->getBitDepth(CHANNEL_TYPE_LUMA))/2 : 128;       
    2500 #else
    25012478        Int range=sps->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag() ? (1<<sps->getBitDepth(CHANNEL_TYPE_LUMA))/2 : 128;
    2502 #endif
    25032479        assert( wp[0].iOffset >= -range );
    25042480        assert( wp[0].iOffset <   range );
     
    25132489        if ( wp[COMPONENT_Cb].bPresentFlag )
    25142490        {
    2515 #if SVC_EXTENSION
    2516           Int range=sps->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag() ? (1<<pcSlice->getBitDepth(CHANNEL_TYPE_CHROMA))/2 : 128;
    2517 #else
    25182491          Int range=sps->getSpsRangeExtension().getHighPrecisionOffsetsEnabledFlag() ? (1<<sps->getBitDepth(CHANNEL_TYPE_CHROMA))/2 : 128;
    2519 #endif
    25202492          for ( Int j=1 ; j<numValidComp ; j++ )
    25212493          {
Note: See TracChangeset for help on using the changeset viewer.