#673 closed defect (fixed)cabac_init_flag determination broken for entropy slices
Description
If currently in a dependent slice, and the slice it depends on has mvd_l1_zero_flag = 1, getSlice()->getMvdL1ZeroFlag() does not return the correct value. if(pcCU->getSlice()->getMvdL1ZeroFlag() && eRefList == REF_PIC_LIST_1 && pcCU->getInterDir(uiAbsPartIdx)==3) Attachments (2)Change History (11)comment:1 Changed 12 years ago by DefaultCC Plugin
comment:2 Changed 12 years ago by ksuehringChanged 12 years ago by ksuehringChanged 12 years ago by ksuehringcomment:3 Changed 12 years ago by ksuehring
With "CabacIndependentFlag : 0" I indeed don't see a mismatch anymore. comment:4 Changed 12 years ago by ksuehring
getSlice()->getMvdL1ZeroFlag() seems to be in sync at least for the writing function at the encoder and when reading it at the decoder.
One more finding: when I set
DependentSliceMode : 1
for the larger version of RaceHorses, the decoder completely crashes. So it seems there is something broken in the CABAC parsing process. comment:5 Changed 12 years ago by suzukiyos
The encoder-decoder mismatches are caused, even if mvd_l1_zero_flag=0 (manually) and the following sets.
DependentSliceMode : 1
for the smaller version of RaceHorses.
When CabacIndependentFlag=0, no mismatches are found. comment:6 Changed 12 years ago by AHenkel
comment:7 Changed 12 years ago by ksuehring
The program flow for cabac_init_idc is the following:
If the next slice does not have a full slice header, the inferred value from first slice header does not match the new value that has been used a the encoder.
My suggested work-around would be to disable determineCabacInitIdx() whenever dependent slices are enabled. If this is not satisfactory, please provide a better fix. comment:8 Changed 12 years ago by ksuehring
The work-around has been committed in r2724 comment:9 Changed 12 years ago by ksuehring
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
|
The config file in #671 uses
CabacIndependentFlag : 1
which actually makes that an entropy slice, not a dependent slice.
I'm going to attach the files from #671 also to this bug, that people can find them.