Opened 13 years ago Closed 12 years ago #496 closed defect (fixed)Long-term picture variable PocLtCurr is set incorrectly when delta_poc_msb_present_flag==1
Description
Current decoding process for reference picture set contains the following:
for( i = 0, j = 0, k = 0; i < num_long_term_pics; i++ )
Later PocLtCurr[ i ] is compared with PicOrderCntVal.
for( i = 0, j = 0, k = 0; i < num_long_term_pics; i++ )
Change History (6)comment:1 Changed 13 years ago by DefaultCC Plugin
comment:2 Changed 13 years ago by ksuehringcomment:3 Changed 13 years ago by ksuehring
The software related comment has been resolved in issue #507
After further checking I found that my previous comment is wrong. Due to the minus1 coding of the POC cycle, the zero-case cannot happen.
But I still think the new equations are more restrictive. The target long-term picture needs to have at least a MaxPicOrderCntLsb POC difference from the current picture. This might be a problem of you have a long-term reference with a POC value larger than the current picture and another one with the same LSB one POC cycle away. comment:4 Changed 13 years ago by ksuehring
It was confirmed (in offline discussion) that the modified equations work and are the ones that have been implemented and tested. comment:5 Changed 12 years ago by bbross
In d7 HLS text DeltaPocLt does not exists anymore. So the issue should be fixed by integration of:
comment:6 Changed 12 years ago by bbross
Fixed in JCTVC-I1003 d4. 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
|
I think the modulo operation takes care of the delta_poc_lsb_lt[0] and delta_poc_msb_cycle_lt_minus1[0] equal to 0 case. This will set PocLtxxx[0] to (PicOrderCntVal - MaxPicOrderCntLsb) instead of PicOrderCntVal, which should not be allowed.
This seems to be a difficult corner case. I think adding a "-1" to the new equations could fix that problem and would help to simplify the whole process.
Btw, the software seems to always use a modulo operation for marking which looks wrong.