Changeset 889 in SHVCSoftware


Ignore:
Timestamp:
18 Sep 2014, 01:38:36 (10 years ago)
Author:
qualcomm
Message:

Fix for signalling of bitrate and picture rate info in VPS VUI to be more aligned to JCTVC-R1008

MACRO: SIGNALLING_BITRATE_PICRATE_FIX

submitted by Hendry (fhendry@…)

Location:
branches/SHM-dev/source/Lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h

    r888 r889  
    4444#define MAX_LAYERS                       8      ///< max number of layers the codec is supposed to handle
    4545
     46#define SIGNALLING_BITRATE_PICRATE_FIX   1      ///< Fix for signalling of bitrate and picture rate info in VPS VUI to be more aligned to JCTVC-R1008
    4647#define INFERENCE_POC_MSB_VAL_PRESENT    1      ///< JCTVC-Q0146 -- poc_msb_val_present_flag shall be equal to 0 when slice_header_extension_length is (inferred to be ) equal to 0
    4748#define CROSS_LAYER_BLA_FLAG_FIX         1      ///< Fix for earlier implementation mistake that omit the signalling of cross_layer_bla_flag
  • branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r888 r889  
    23052305  READ_FLAG( uiCode,        "pic_rate_present_vps_flag" );  vps->setPicRatePresentVpsFlag( uiCode ? true : false );
    23062306
     2307#if SIGNALLING_BITRATE_PICRATE_FIX
     2308  if ( vps->getBitRatePresentVpsFlag() || vps->getPicRatePresentVpsFlag() )
     2309  {
     2310    for( i = vps->getBaseLayerInternalFlag() ? 0 : 1; i < vps->getNumLayerSets(); i++ )
     2311    {
     2312      for( Int j = 0; j  <=  vps->getMaxSLayersInLayerSetMinus1( i ); j++ )
     2313      {
     2314        if( vps->getBitRatePresentVpsFlag() )
     2315        {
     2316          READ_FLAG( uiCode, "bit_rate_present_flag[i][j]" ); vps->setBitRatePresentFlag( i, j, uiCode ? true : false );           
     2317        }
     2318        if( vps->getPicRatePresentVpsFlag( )  )
     2319        {
     2320          READ_FLAG( uiCode, "pic_rate_present_flag[i][j]" ); vps->setPicRatePresentFlag( i, j, uiCode ? true : false );
     2321        }
     2322        if( vps->getBitRatePresentFlag( i, j ) )
     2323        {
     2324          READ_CODE( 16, uiCode, "avg_bit_rate" ); vps->setAvgBitRate( i, j, uiCode );
     2325          READ_CODE( 16, uiCode, "max_bit_rate" ); vps->setMaxBitRate( i, j, uiCode );
     2326        }
     2327        else
     2328        {
     2329          vps->setAvgBitRate( i, j, 0 );
     2330          vps->setMaxBitRate( i, j, 0 );
     2331        }
     2332        if( vps->getPicRatePresentFlag( i, j ) )
     2333        {
     2334          READ_CODE( 2,  uiCode, "constant_pic_rate_idc" ); vps->setConstPicRateIdc( i, j, uiCode );
     2335          READ_CODE( 16, uiCode, "avg_pic_rate" );          vps->setAvgPicRate( i, j, uiCode );
     2336        }
     2337        else
     2338        {
     2339          vps->setConstPicRateIdc( i, j, 0 );
     2340          vps->setAvgPicRate( i, j, 0 );
     2341        }
     2342      }
     2343    }
     2344  }
     2345#else
    23072346  Bool parseFlag = vps->getBitRatePresentVpsFlag() || vps->getPicRatePresentVpsFlag();
    23082347
     
    23612400    }
    23622401  }
     2402#endif
    23632403#if VPS_VUI_VIDEO_SIGNAL_MOVE
    23642404  READ_FLAG( uiCode, "video_signal_info_idx_present_flag" ); vps->setVideoSigPresentVpsFlag( uiCode == 1 );
  • branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r887 r889  
    16301630#if Q0078_ADD_LAYER_SETS
    16311631#if R0227_BR_PR_ADD_LAYER_SET
     1632#if SIGNALLING_BITRATE_PICRATE_FIX
     1633    for( i = vps->getBaseLayerInternalFlag() ? 0 : 1; i < vps->getNumLayerSets(); i++ )
     1634#else
    16321635    for( i = 0; i < vps->getNumLayerSets(); i++ )
     1636#endif
    16331637#else
    16341638    for( i = 0; i <= vps->getVpsNumLayerSetsMinus1(); i++ )
Note: See TracChangeset for help on using the changeset viewer.