View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000186 | JVT JM H.264/AVC reference software | decoder | public | 2009-08-28 12:03 | 2011-04-14 15:33 |
Reporter | Yves Dhondt | Assigned To | Karsten Suehring | ||
Priority | normal | Severity | feature | Reproducibility | always |
Status | assigned | Resolution | open | ||
Product Version | JM 16.0 | ||||
Summary | 0000186: Error concealment is not working for non-reference frames | ||||
Description | 1)The reference decoder crashes when error concealment of type 1 (frame copy) is enabled. Even with valid bitstreams, the decoder can crash. The issue is caused by a number of things. - The variable last_output_poc in the dpb is not updated when non reference pictures are send directly to the output. As a result, the decoder sometimes thinks there are missing frames while they have been processed correctly. It then tries to read concealed pictures but can not find any, resulting in a crash. - The function conceal_non_ref_pics does not detect all missing non reference pictures. As a result, it sometimes does not conceal a missing picture after which write_lost_non_ref_pic tries to retrieve a non-existing picture and makes the decoder crash. - The function write_lost_non_ref_pic only writes out one picture at a time. As a result, if consecutive non reference frames are concealed, only the first one is written when needed, and the second one is written much later at an incorrect position. So when decoding is finished, there can actually be several concealed pictures still be in the buffer. - The function free_global_buffers is called before the dpb is flushed at the end of the decoding loop. There still might be missing non reference pictures which are not yet concealed. As a result, the error concealment tools have no longer access to the 'global buffers'. 2)Reporting in case of error concealment is missing, incomplete of printed in the wrong place. - Only if the PSNR is calculated, a report is printed on concealed reference pictures. - No report is printed on concealed non-reference pictures. - The final Report is printed before the dpb is flushed at the end of the decoding loop. There still might be missing non reference pictures which are not yet concealed. As a result, stats on those pictures might be displayed after the final report. | ||||
Additional Information | The attached source files contain fixes for the above issues. ldecod.c: moved calls to "free_slice", "free_global_buffers", and "Report" to after "flush_dpb" in main. mbuffer.c: changed calls to error concealment functions, updated last_output_poc in case of direct output image.c: commented out reporting code for concealed frames erc_do_p.c: rewrote most of the missing non reference picture detection and concealment code, added reporting functions | ||||
Tags | error concealment | ||||
related to | 0000004 | confirmed | Copy error concealment fails with multiple non-reference frames |
2009-08-28 12:03
|
|
2009-09-11 16:24
|
|
|
upload.zip contains the fix for JM 16.0 upload_JM_16_1.zip contains the fix for JM 16.1 |
|
Should be merged in JM 18.1 |
Date Modified | Username | Field | Change |
---|---|---|---|
2009-08-28 12:03 | Yves Dhondt | New Issue | |
2009-08-28 12:03 | Yves Dhondt | File Added: upload.zip | |
2009-09-11 16:24 | Yves Dhondt | File Added: upload_JM_16_1.zip | |
2009-09-11 16:25 | Yves Dhondt | Note Added: 0000330 | |
2011-04-06 16:04 | Karsten Suehring | Relationship added | related to 0000004 |
2011-04-13 16:55 | Karsten Suehring | Relationship added | has duplicate 0000189 |
2011-04-13 17:47 | Karsten Suehring | Relationship deleted | has duplicate 0000189 |
2011-04-14 15:32 | Karsten Suehring | Tag Attached: error concealment | |
2011-04-14 15:33 | Karsten Suehring | Assigned To | => Karsten Suehring |
2011-04-14 15:33 | Karsten Suehring | Status | new => assigned |
2011-04-14 15:33 | Karsten Suehring | Note Added: 0000448 |