Changeset 289 in SHVCSoftware for branches/SHM-2.1-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
17 Jun 2013, 03:02:26 (12 years ago)
Author:
samsung
Message:

integrate M0163 and M0152 into SHM-2.1-dev

File:
1 edited

Legend:

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

    r288 r289  
    920920  vps->setNumScalabilityTypes(numScalabilityTypes);
    921921
     922#if VPS_SPLIT_FLAG
     923  for(j = 0; j < numScalabilityTypes - vps->getSplittingFlag(); j++)
     924#else
    922925  for(j = 0; j < numScalabilityTypes; j++)
     926#endif
    923927  {
    924928    READ_CODE( 3, uiCode, "dimension_id_len_minus1[j]" ); vps->setDimensionIdLen(j, uiCode + 1);
    925929  }
     930#if VPS_SPLIT_FLAG
     931  if(vps->getSplittingFlag())
     932  {
     933    UInt numBits = 0;
     934    for(j = 0; j < numScalabilityTypes - 1; j++)
     935    {
     936      numBits += vps->getDimensionIdLen(j);
     937    }
     938    assert( numBits < 6 );
     939    vps->setDimensionIdLen(numScalabilityTypes-1, 6 - numBits);
     940    numBits = 6;
     941  }
     942#else
    926943  if(vps->getSplittingFlag())
    927944  {
     
    933950    assert( numBits <= 6 );
    934951  }
     952#endif
    935953
    936954  READ_FLAG( uiCode, "vps_nuh_layer_id_present_flag" ); vps->setNuhLayerIdPresentFlag(uiCode ? true : false);
     
    950968    vps->setLayerIdInVps(vps->getLayerIdInNuh(i), i);
    951969
     970#if VPS_SPLIT_FLAG
     971    if(!vps->getSplittingFlag())
     972#endif
    952973    for(j = 0; j < numScalabilityTypes; j++)
    953974    {
     
    11931214  if(!rpcSlice->getDependentSliceSegmentFlag())
    11941215  {
     1216
     1217#if SH_DISCARDABLE_FLAG
     1218    if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits()>0)
     1219    {
     1220      READ_FLAG(uiCode, "discardable_flag"); // ignored
     1221    }
     1222    for (Int i = 1; i < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++)
     1223    {
     1224      READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored
     1225    }
     1226#else
    11951227    for (Int i = 0; i < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++)
    11961228    {
    11971229      READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored
    11981230    }
     1231#endif
    11991232
    12001233    READ_UVLC (    uiCode, "slice_type" );            rpcSlice->setSliceType((SliceType)uiCode);
Note: See TracChangeset for help on using the changeset viewer.