Changeset 576 in SHVCSoftware for branches/SHM-5.0-dev/source


Ignore:
Timestamp:
29 Jan 2014, 01:17:30 (11 years ago)
Author:
qualcomm
Message:

JCTVC-P0306: On ue(v) coding of syntax elements in VPS extn (MACRO: VPS_EXTN_UEV_CODING)

Some syntax elements in the VPS extn. are ue(v)-coded instead of u(v)-coded, and some syntax elements are not signaled or coded with u(v).

From: Adarsh K. Ramasubramonian <aramasub@…>

Location:
branches/SHM-5.0-dev/source/Lib
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-5.0-dev/source/Lib/TLibCommon/TComSlice.cpp

    r569 r576  
    19631963#endif
    19641964, m_numProfileTierLevel       (0)
     1965#if !VPS_EXTN_UEV_CODING
    19651966, m_moreOutputLayerSetsThanDefaultFlag (false)
     1967#endif
    19661968, m_numAddOutputLayerSets     (0)
    19671969#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
  • branches/SHM-5.0-dev/source/Lib/TLibCommon/TComSlice.h

    r568 r576  
    540540#endif
    541541  UInt       m_numProfileTierLevel;
     542#if !VPS_EXTN_UEV_CODING
    542543  Bool       m_moreOutputLayerSetsThanDefaultFlag;
     544#endif
    543545  Int        m_numAddOutputLayerSets;
    544546#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
     
    824826  Void   setNumProfileTierLevel(Int x)                           { m_numProfileTierLevel = x;    }
    825827
     828#if !VPS_EXTN_UEV_CODING
    826829  Bool   getMoreOutputLayerSetsThanDefaultFlag()                 { return m_moreOutputLayerSetsThanDefaultFlag;}
    827830  Void   setMoreOutputLayerSetsThanDefaultFlag(Bool x)           { m_moreOutputLayerSetsThanDefaultFlag = x   ;}
     831#endif
    828832
    829833  Int    getNumAddOutputLayerSets()                              { return m_numAddOutputLayerSets; }
  • branches/SHM-5.0-dev/source/Lib/TLibCommon/TypeDef.h

    r572 r576  
    5555
    5656#define DISCARDABLE_PIC_RPS              1      ///< JCTVC-P0130: Inter-layer RPS and temporal RPS should not contain picture with discardable_flag equal to 1
    57 
     57#define VPS_EXTN_UEV_CODING              1      ///< JCTVC-P0306: Code some syntax elements as ue(v), and remove some syntax elements that duplicate behaviour
    5858#define O0109_O0199_FLAGS_TO_VUI         1      ///< JCTVC-O0109, O0199: move single_layer_for_non_irap_flag and higher_layer_flag to vps_vui
    5959#define O0109_VIEW_ID_LEN                1      ///< JCTVC-O0109: view_id_len_minus1 to view_id_len, and add constraint (1<<view_id_len) is greater than or equal to NumViews
  • branches/SHM-5.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r571 r576  
    11601160#if VPS_EXTN_PROFILE_INFO
    11611161  // Profile-tier-level signalling
     1162#if !VPS_EXTN_UEV_CODING
    11621163  READ_CODE( 10, uiCode, "vps_number_layer_sets_minus1" );     assert( uiCode == (vps->getNumLayerSets() - 1) );
    11631164  READ_CODE(  6, uiCode, "vps_num_profile_tier_level_minus1"); vps->setNumProfileTierLevel( uiCode + 1 );
     1165#else
     1166  READ_UVLC(  uiCode, "vps_num_profile_tier_level_minus1"); vps->setNumProfileTierLevel( uiCode + 1 );
     1167#endif
    11641168  vps->getPTLForExtnPtr()->resize(vps->getNumProfileTierLevel());
    11651169  for(Int idx = 1; idx <= vps->getNumProfileTierLevel() - 1; idx++)
     
    11861190#endif
    11871191
     1192#if !VPS_EXTN_UEV_CODING
    11881193  READ_FLAG( uiCode, "more_output_layer_sets_than_default_flag" ); vps->setMoreOutputLayerSetsThanDefaultFlag( uiCode ? true : false );
    11891194  Int numOutputLayerSets = 0;
     
    11971202    numOutputLayerSets = vps->getNumLayerSets() + vps->getNumAddOutputLayerSets();
    11981203  }
     1204#else
     1205  READ_UVLC( uiCode, "num_add_output_layer_sets" );          vps->setNumAddOutputLayerSets( uiCode );
     1206  Int numOutputLayerSets = vps->getNumLayerSets() + vps->getNumAddOutputLayerSets();
     1207#endif
    11991208  if( numOutputLayerSets > 1 )
    12001209  {
     
    12941303  {
    12951304#if O0096_REP_FORMAT_INDEX
     1305#if !VPS_EXTN_UEV_CODING
    12961306    READ_CODE( 8, uiCode, "vps_num_rep_formats_minus1" );
     1307#else
     1308    READ_UVLC( uiCode, "vps_num_rep_formats_minus1" );
     1309#endif
    12971310#else
    12981311    READ_CODE( 4, uiCode, "vps_num_rep_formats_minus1" );
     
    13211334      {
    13221335#if O0096_REP_FORMAT_INDEX
     1336#if !VPS_EXTN_UEV_CODING
    13231337        READ_CODE( 8, uiCode, "vps_rep_format_idx[i]" );
     1338#else
     1339        Int numBits = 1;
     1340        while ((1 << numBits) < (vps->getVpsNumRepFormats()))
     1341        {
     1342          numBits++;
     1343        }
     1344        READ_CODE( numBits, uiCode, "vps_rep_format_idx[i]" );
     1345#endif
    13241346#else
    13251347        READ_CODE( 4, uiCode, "vps_rep_format_idx[i]" );
  • branches/SHM-5.0-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r570 r576  
    932932#if VPS_EXTN_PROFILE_INFO
    933933  // Profile-tier-level signalling
     934#if !VPS_EXTN_UEV_CODING
    934935  WRITE_CODE( vps->getNumLayerSets() - 1   , 10, "vps_number_layer_sets_minus1" );     
    935936  WRITE_CODE( vps->getNumProfileTierLevel() - 1,  6, "vps_num_profile_tier_level_minus1");
     937#else
     938  WRITE_UVLC( vps->getNumProfileTierLevel() - 1, "vps_num_profile_tier_level_minus1");
     939#endif
    936940  for(Int idx = 1; idx <= vps->getNumProfileTierLevel() - 1; idx++)
    937941  {
     
    947951#endif
    948952
     953#if !VPS_EXTN_UEV_CODING
    949954  Int numOutputLayerSets = vps->getNumOutputLayerSets() ;
    950955  WRITE_FLAG(  (numOutputLayerSets > vps->getNumLayerSets()), "more_output_layer_sets_than_default_flag" );
     
    953958    WRITE_CODE( numOutputLayerSets - vps->getNumLayerSets(), 10, "num_add_output_layer_sets" );
    954959  }
     960#else
     961  Int numOutputLayerSets = vps->getNumOutputLayerSets() ;
     962  assert( numOutputLayerSets - vps->getNumLayerSets() >= 0 );
     963  WRITE_UVLC( numOutputLayerSets - vps->getNumLayerSets(), "num_add_output_layer_sets" );
     964#endif
    955965  if( numOutputLayerSets > 1 )
    956966  {
     
    9991009  {
    10001010#if O0096_REP_FORMAT_INDEX
     1011#if !VPS_EXTN_UEV_CODING
    10011012    WRITE_CODE( vps->getVpsNumRepFormats() - 1, 8, "vps_num_rep_formats_minus1" );
     1013#else
     1014    WRITE_UVLC( vps->getVpsNumRepFormats() - 1, "vps_num_rep_formats_minus1" );
     1015#endif
    10021016#else
    10031017    WRITE_CODE( vps->getVpsNumRepFormats() - 1, 4, "vps_num_rep_formats_minus1" );
     
    10171031      {
    10181032#if O0096_REP_FORMAT_INDEX
     1033#if !VPS_EXTN_UEV_CODING
    10191034        WRITE_CODE( vps->getVpsRepFormatIdx(i), 8, "vps_rep_format_idx[i]" );
     1035#else
     1036        Int numBits = 1;
     1037        while ((1 << numBits) < (vps->getVpsNumRepFormats()))
     1038        {
     1039          numBits++;
     1040        }
     1041        WRITE_CODE( vps->getVpsRepFormatIdx(i), numBits, "vps_rep_format_idx[i]" );
     1042#endif
    10201043#else
    10211044        WRITE_CODE( vps->getVpsRepFormatIdx(i), 4, "vps_rep_format_idx[i]" );
Note: See TracChangeset for help on using the changeset viewer.