Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#1095 closed defect (invalid)

Undefined behaviour when choosing longterm reference pictures.

Reported by: peterderivaz Owned by:
Priority: minor Milestone: HM-10.1
Component: Text Version: D10 (L1003) v33
Keywords: Cc: bbross, wjhan, jct-vc@…

Description

In the derivation process for the RPS and picture marking (equation 8-6 of JCTVC-L1003_v34) what should happen if there is more than one reference picture in the DPB with slice_pic_order_cnt_lsb equal to PocLtCurr[i]?

For example, suppose MaxPicOrderCntLsb=16 and we have 4 short term frames in the DPB with POCs of 0,16,32,48. If the next picture decides to use:
NumPocLtCurr=1
CurrDeltaPocMsbPresentFlag=0
PocLtCurr[0]=0
Which reference frame should be put into RefPicSetLtCurr[0]?

The function TComSlice::xGetLongTermRefPic in the reference decoder simply selects the first match, but this behaviour does not appear to be defined in the specification.

I wonder if this situation is meant to never occur? Section 8.3.2 "Decoding process for reference picture set" contains a number of requirements for bitstream conformance but they do not seem to rule out this case.

Perhaps I have overlooked some requirement?

Change History (4)

comment:1 Changed 7 years ago by DefaultCC Plugin

  • Cc bbross wjhan jct-vc@… added

comment:2 Changed 7 years ago by adarsh

It's not those equations in 8.3.2 that would prevent this case from occuring, but rather the semantics of delta_poc_msb_present_flag.

delta_poc_msb_present_flag[ i ] equal to 1 specifies that delta_poc_msb_cycle_lt[ i ] is present. delta_poc_msb_present_flag[ i ] equal to 0 specifies that delta_poc_msb_cycle_lt[ i ] is not present.
Let prevTid0Pic be the previous picture in decoding order that has TemporalId equal to 0 and is not a RASL picture, a RADL picture, or a sub-layer non-reference picture. Let setOfPrevPocVals be a set consisting of the following:
– the PicOrderCntVal of prevTid0Pic,
– the PicOrderCntVal of each picture in the RPS of prevTid0Pic,
– the PicOrderCntVal of each picture that follows prevTid0Pic in decoding order and precedes the current picture in decoding order.
When there is more than one value in setOfPrevPocVals for which the value modulo MaxPicOrderCntLsb is equal to PocLsbLt[ i ], delta_poc_msb_present_flag[ i ] shall be equal to 1.

Hence, in your example, CurrDeltaPocMsbPresentFlag cannot be zero, and the MSB of the LT picture would be signalled. I hope that addresses your concern.

comment:3 Changed 7 years ago by ksuehring

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

Closing as invalid. The constraint that Adarsh noted above should prevent that situation.

comment:4 Changed 7 years ago by peterderivaz

@adarsh

Thank you very much for your kind comment pointing me in the right direction. It makes perfect sense now.

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

  • Adarsh Krishnan Ramasubramonian(Participant)
  • Benjamin Bross(Subscriber)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Participant, Always)
  • Peter de Rivaz(Reporter, Participant)
  • Woo-Jin Han(Subscriber)