View Issue Details

IDProjectCategoryView StatusLast Update
0000351JVT JM H.264/AVC reference softwareencoder and decoderpublic2015-05-11 15:09
ReporterJoachim Assigned To 
PriorityurgentSeveritymajorReproducibilityalways
Status newResolutionopen 
PlatformLinuxOSUbuntu 12.04 
Product VersionJM 18.6 
Summary0000351: Redundant Picture - unable to decode
DescriptionI am encoding 25 frames of a 210x118 video in the baseline profile. The use of redundant pictures is enabled and it looks like the encoder is properly doing its job (no error message, neither any warnings).

However, as the decoder starts, it throws out an error and quit : " RefPicList0[ num_ref_idx_l0_active_minus1 ] is equal to 'no reference picture', invalid bitstream "

I attached the encoder config file.
Additional InformationOn the encoder config, I have:
NumberReferenceFrames = 2
UseRedundantPicture = 1 # 0: not used, 1: enabled
NumRedundantHierarchy = 1 # 0-4
PrimaryGOPLength = 2 # GOP length for redundant allocation (1-16)
NumRefPrimary = 2 # Actually used number of references for primary slices (1-16)

For the decoder, the config is as follow:
InputFile = "test.264"
OutputFile = "test_dec.yuv"
RefFile = "test_rec.yuv"
WriteUV = 1
FileFormat = 0
RefOffset = 0
POCScale = 2
ConcealMode = 0
RefPOCGap = 2
POCGap = 2
Silent = 0
IntraProfileDeblocking = 1
DecFrmNum = 0

Finally, the JM decoder output is :
----------------------------- JM 18.6 (FRExt) -----------------------------
POC must = frame# or field# for SNRs to be correct
--------------------------------------------------------------------------
 Frame POC Pic# QP SnrY SnrU SnrV Y:U:V Time(ms)
--------------------------------------------------------------------------
00000(IDR) 0 0 28 22.6073 21.1481 20.8344 4:2:0 1
RefPicList0[ num_ref_idx_l0_active_minus1 ] is equal to 'no reference picture', invalid bitstream
TagsNo tags attached.

Activities

Joachim

2015-05-11 11:38

reporter  

encoder_baseline.cfg (27,609 bytes)

Karsten Suehring

2015-05-11 12:27

administrator   ~0000626

That sounds like a bug. The JM decoder should completely ignore redundant pictures.

Joachim

2015-05-11 14:54

reporter   ~0000627

JM decoder will not use redundant pictures at all? Is this bug going to be fixed any time soon ? If not, where can I fix it ?

Karsten Suehring

2015-05-11 15:09

administrator   ~0000628

H.264/AVC does not define a decoding process for redundant pictures. Also for a bitstream without any losses, it does not make much sense to decode the redundant pictures, except for debugging purposes. A real world decoder may use them to fill in missing gaps, when pictures or parts of pictures are lost.

Unfortunately the software was not well structured with many global variables, which does not allow processing of different redundant or auxiliary pictures at the same time. There was a hack (I think in a #define) for auxiliary pictures at the decoder, which allowed to switch to this type. Something similar should be possible for redundant pictures. But I have not tested this in quite a while.

In general it seems likely that we will remove all error resilience features because nobody cares about fixing them (see most of the other issues here).

Issue History

Date Modified Username Field Change
2015-05-11 11:38 Joachim New Issue
2015-05-11 11:38 Joachim File Added: encoder_baseline.cfg
2015-05-11 12:27 Karsten Suehring Note Added: 0000626
2015-05-11 14:54 Joachim Note Added: 0000627
2015-05-11 15:09 Karsten Suehring Note Added: 0000628