Custom query (105 matches)

Filters
 
or
 
  
 
Columns

Show under each result:


Results (4 - 6 of 105)

1 2 3 4 5 6 7 8 9 10 11 12
Ticket Resolution Summary Owner Reporter
#77 fixed Broken logic when sps_sub_layer_ordering_info_present_flag==0 Vadim johnnyVidyo
Description

There is an error in decoding the SPS. When sps_sub_layer_ordering_info_present_flag is 0, the values of sps_max_dec_pic_buffering_minus1[] are handled incorrectly.

Existing problematic code in parseSPS():

  UInt subLayerOrderingInfoPresentFlag;
  READ_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag");

  for(UInt i=0; i <= pcSPS->getMaxTLayers()-1; i++)
  {
    READ_UVLC ( uiCode, "sps_max_dec_pic_buffering_minus1[i]");
    pcSPS->setMaxDecPicBuffering( uiCode + 1, i);
    READ_UVLC ( uiCode, "sps_num_reorder_pics[i]" );
    pcSPS->setNumReorderPics(uiCode, i);
    READ_UVLC ( uiCode, "sps_max_latency_increase_plus1[i]");
    pcSPS->setMaxLatencyIncrease( uiCode, i );

    if (!subLayerOrderingInfoPresentFlag)
    {
      for (i++; i <= pcSPS->getMaxTLayers()-1; i++)
      {
#if SVC_EXTENSION
        // When sps_max_dec_pic_buffering_minus1[ i ] is not present for i in the range of 0 to sps_max_sub_layers_minus1 - 1, inclusive,
        // due to sps_sub_layer_ordering_info_present_flag being equal to 0, it is inferred to be equal to sps_max_dec_pic_buffering_minus1[ sps_max_sub_layers_minus1 ].
        pcSPS->setMaxDecPicBuffering( pcSPS->getMaxDecPicBuffering(pcSPS->getMaxTLayers()-1), i );
#else
        pcSPS->setMaxDecPicBuffering(pcSPS->getMaxDecPicBuffering(0), i);
#endif
        pcSPS->setNumReorderPics(pcSPS->getNumReorderPics(0), i);
        pcSPS->setMaxLatencyIncrease(pcSPS->getMaxLatencyIncrease(0), i);
      }
      break;
    }

Recommended fix to better reflect wording of the spec:

  UInt subLayerOrderingInfoPresentFlag;
  READ_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag");

  for(UInt i = subLayerOrderingInfoPresentFlag ? 0 : pcSPS->getMaxTLayers()-1; i <= pcSPS->getMaxTLayers()-1; i++)
  {
    READ_UVLC ( uiCode, "sps_max_dec_pic_buffering_minus1[i]");
    pcSPS->setMaxDecPicBuffering( uiCode + 1, i);
    READ_UVLC ( uiCode, "sps_num_reorder_pics[i]" );
    pcSPS->setNumReorderPics(uiCode, i);
    READ_UVLC ( uiCode, "sps_max_latency_increase_plus1[i]");
    pcSPS->setMaxLatencyIncrease( uiCode, i );

    if (!subLayerOrderingInfoPresentFlag)
    {
      for(UInt j = 0; j < i; j++)
      {
#if SVC_EXTENSION
        // When sps_max_dec_pic_buffering_minus1[ i ] is not present for i in the range of 0 to sps_max_sub_layers_minus1 - 1, inclusive,
        // due to sps_sub_layer_ordering_info_present_flag being equal to 0, it is inferred to be equal to sps_max_dec_pic_buffering_minus1[ sps_max_sub_layers_minus1 ].
        pcSPS->setMaxDecPicBuffering( pcSPS->getMaxDecPicBuffering(i), j );
#else
        pcSPS->setMaxDecPicBuffering(pcSPS->getMaxDecPicBuffering(0), i);
#endif
        pcSPS->setNumReorderPics(pcSPS->getNumReorderPics(i), j);
        pcSPS->setMaxLatencyIncrease(pcSPS->getMaxLatencyIncrease(i), j);
      }
      break;
    }
#8 fixed Bug in All Intra configuration with inter-layer prediction disabled Vadim bugdayci
Description

Encoder crashes in all intra configuration due to wrong slice type while encoding enhancement layers when inter-layer prediction is disabled.

SHM2.0 was able to code all intra but the problem occurs in SHM3.0.1 and SHM4.0.

Below piece of code in initEncSlice function, TEncSlice.cpp line 431, sets the slice type of enhancement layers to B_SLICE.

#if SVC_EXTENSION

if(m_pcCfg->getLayerId() > 0) {

eSliceType=B_SLICE;

}

#endif

In SHM2.0, some later process was correcting the slice type, however in the later versions of the software, slice type is not set correctly. The issue is resolved by changing the code as:

if(m_pcCfg->getLayerId() > 0 && m_pcCfg->getNumActiveRefLayers()>0) {

eSliceType=B_SLICE;

}

But I am not sure whether it should be corrected at this stage or at a later process as in SHM2.0.

#114 fixed Bug in parsing of Profile Tier Level Vadim CFeldmann
Description

There is a smaller bug in the TDecCavlc::parseProfileTier(...) function. The brackets got misplaced. See attached patch.

1 2 3 4 5 6 7 8 9 10 11 12
Note: See TracQuery for help on using queries.