Opened 9 years ago

Closed 9 years ago

#41 closed defect (fixed)

scaled_ref_layer_offset_present_flag index in PPS extension encoding

Reported by: jaypadia Owned by: Vadim
Priority: major Milestone: SHM-7.0
Component: SHM software Version:
Keywords: PPS Extension Cc: jill@…, Vadim, jct-vc@…

Description

According to "F.7.3.2.3.3 Picture parameter set multilayer extension syntax", the index for scaled_ref_layer_offset_present_flag[i], ref_region_offset_present_flag[i] and resample_phase_set_present_flag[i] is based on num_ref_loc_offsets. [ref: for( i = 0; i < num_ref_loc_offsets; i++ )].

However, in TEncTop.cpp, TEncTop::xInitPPS()

for(Int i = 0; i < m_cPPS.getNumScaledRefLayerOffsets(); i++)
{

#if O0098_SCALED_REF_LAYER_ID

m_cPPS.setScaledRefLayerId(i, m_scaledRefLayerId[i]);

#endif

m_cPPS.getScaledRefLayerWindow(i) = m_scaledRefLayerWindow[i];

#if REF_REGION_OFFSET

m_cPPS.getRefLayerWindow(i) = m_refLayerWindow[i];
m_cPPS.setScaledRefLayerOffsetPresentFlag( m_scaledRefLayerId[i], m_scaledRefLayerOffsetPresentFlag[i] );
m_cPPS.setRefRegionOffsetPresentFlag( m_scaledRefLayerId[i], m_refRegionOffsetPresentFlag[i] );

#endif
#if R0209_GENERIC_PHASE

m_cPPS.setResamplePhaseSetPresentFlag( m_scaledRefLayerId[i], m_resamplePhaseSetPresentFlag[i] );

The index used is based on m_scaledRefLayerId[i]. This one should just be 'i'.

Where the structure is referenced, it uses an index based on num_ref_loc_offsets.

for(Int i = 0; i < pcPPS->getNumScaledRefLayerOffsets(); i++)
{

WRITE_CODE( pcPPS->getScaledRefLayerId(i), 6, "ref_loc_offset_layer_id" );
WRITE_FLAG( pcPPS->getScaledRefLayerOffsetPresentFlag(i) ? 1 : 0, "scaled_ref_layer_offset_prsent_flag" );

...
...

WRITE_FLAG( pcPPS->getRefRegionOffsetPresentFlag(i) ? 1 : 0, "ref_region_offset_prsent_flag" );
if (pcPPS->getRefRegionOffsetPresentFlag(i))

Please see the patch in the attachment. This is based on rev 925 latest dev branch.
This one will affect only where there are more than 2 layers.

Attachments (1)

PPSExtn_scaledRefLayerIdx_jpadia_vidyo_141216.patch (1.2 KB) - added by jaypadia 9 years ago.
Patch

Download all attachments as: .zip

Change history (4)

comment:1 Changed 9 years ago by DefaultCC Plugin

  • Cc Vadim jct-vc@… added

Changed 9 years ago by jaypadia

Patch

comment:2 Changed 9 years ago by tyamamoto

It seems this fix is needed.
This will affect even with 2 layer case when "ref_loc_offset_layer_id[i] != i" and the enchance layer use any of the present flag.

comment:3 Changed 9 years ago by Vadim

  • Resolution set to fixed
  • Status changed from new to closed

Fixed as provided in the patch with rev 934.

Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Owner, Subscriber, Participant

  • Gerhard Tech(Always)
  • Jay Padia(Reporter)
  • jct-vc@…(Subscriber)
  • jill@…(Subscriber)
  • Karsten Suehring(Always)
  • Tomoyuki Yamamoto(Participant)
  • Vadim Seregin(Owner, Subscriber, Participant)