Opened 11 years ago
Last modified 11 years ago
#2524 new enhancement
vc1 error concealment
Reported by: | Carl Eugen Hoyos | Owned by: | |
---|---|---|---|
Priority: | wish | Component: | avcodec |
Version: | git-master | Keywords: | vc1 |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Original sample: http://samples.ffmpeg.org/archive/all/vc1+vc1+++artifacts7.vc1
I will attach a vc1 sample containing 13 frames (first and last are I-frames, both decoded bit-exact). The reference decoder fails to decode the 12th frame (a B-frame afaict) with "FATAL ERROR: DecodeACRunLevel: AC coef array overrun", ffmpeg shows artefacts that can probably be concealed better.
$ ffmpeg -loglevel debug -i vc1+vc1+++artifacts7_cut.vc1 -qscale 2 out.avi ffmpeg version N-52608-g0061ba0 Copyright (c) 2000-2013 the FFmpeg developers built on May 1 2013 10:57:35 with gcc 4.7 (SUSE Linux) configuration: --enable-gpl --disable-indev=jack libavutil 52. 27.101 / 52. 27.101 libavcodec 55. 6.100 / 55. 6.100 libavformat 55. 3.100 / 55. 3.100 libavdevice 55. 0.100 / 55. 0.100 libavfilter 3. 61.101 / 3. 61.101 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 3.100 / 52. 3.100 Splitting the commandline. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'. Reading option '-i' ... matched as input file with argument 'vc1+vc1+++artifacts7_cut.vc1'. Reading option '-qscale' ... matched as option 'qscale' (use fixed quality scale (VBR)) with argument '2'. Reading option 'out.avi' ... matched as output file. Finished splitting the commandline. Parsing a group of options: global . Applying option loglevel (set logging level) with argument debug. Successfully parsed a group of options. Parsing a group of options: input file vc1+vc1+++artifacts7_cut.vc1. Successfully parsed a group of options. Opening an input file: vc1+vc1+++artifacts7_cut.vc1. [vc1 @ 0x2c6d7e0] Format vc1 probed with size=2048 and score=50 [vc1 @ 0x2c6d7e0] File position before avformat_find_stream_info() is 0 [NULL @ 0x2c6e380] Header: DBFE3BF2 [NULL @ 0x2c6e380] Advanced Profile level 3: frmrtq_postproc=7, bitrtq_postproc=31 LoopFilter=0, ChromaFormat=1, Pulldown=1, Interlace: 1 TFCTRflag=0, FINTERPflag=0 [NULL @ 0x2c6e380] Display extended info: [NULL @ 0x2c6e380] Display dimensions: 1920x1080 [NULL @ 0x2c6e380] Aspect: 1:1 [NULL @ 0x2c6e380] Entry point: 1ADFFCEF [NULL @ 0x2c6e380] Entry point info: BrokenLink=0, ClosedEntry=0, PanscanFlag=0 RefDist=1, Postproc=1, FastUVMC=0, ExtMV=1 DQuant=1, VSTransform=1, Overlap=0, Qmode=3 [vc1 @ 0x2c6e380] Header: DBFE3BF2 [vc1 @ 0x2c6e380] Advanced Profile level 3: frmrtq_postproc=7, bitrtq_postproc=31 LoopFilter=0, ChromaFormat=1, Pulldown=1, Interlace: 1 TFCTRflag=0, FINTERPflag=0 [vc1 @ 0x2c6e380] Display extended info: [vc1 @ 0x2c6e380] Display dimensions: 1920x1080 [vc1 @ 0x2c6e380] Aspect: 1:1 [vc1 @ 0x2c6e380] Entry point: 1ADFFCEF [vc1 @ 0x2c6e380] Entry point info: BrokenLink=0, ClosedEntry=0, PanscanFlag=0 RefDist=1, Postproc=1, FastUVMC=0, ExtMV=1 DQuant=1, VSTransform=1, Overlap=0, Qmode=3 [vc1 @ 0x2c6e380] Header: DBFE3BF2 [vc1 @ 0x2c6e380] Advanced Profile level 3: frmrtq_postproc=7, bitrtq_postproc=31 LoopFilter=1, ChromaFormat=1, Pulldown=1, Interlace: 1 TFCTRflag=0, FINTERPflag=0 [vc1 @ 0x2c6e380] Display extended info: [vc1 @ 0x2c6e380] Display dimensions: 1920x1080 [vc1 @ 0x2c6e380] Aspect: 1:1 [vc1 @ 0x2c6e380] Entry point: 1ADFFCEF [vc1 @ 0x2c6e380] Entry point info: BrokenLink=0, ClosedEntry=0, PanscanFlag=0 RefDist=1, Postproc=1, FastUVMC=0, ExtMV=1 DQuant=1, VSTransform=1, Overlap=0, Qmode=3 [vc1 @ 0x2c6d7e0] File position after avformat_find_stream_info() is 919438 Input #0, vc1, from 'vc1+vc1+++artifacts7_cut.vc1': Duration: N/A, bitrate: N/A Stream #0:0, 13, 1/1200000: Video: vc1 (Advanced), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 1001/60000, 29.97 fps, 29.97 tbr, 1200k tbn, 59.94 tbc Successfully opened the file. Parsing a group of options: output file out.avi. Applying option qscale (use fixed quality scale (VBR)) with argument 2. Please use -q:a or -q:v, -qscale is ambiguous Successfully parsed a group of options. Opening an output file: out.avi. Successfully opened the file. [graph 0 input from stream 0:0 @ 0x2ccf1a0] Setting 'video_size' to value '1920x1080' [graph 0 input from stream 0:0 @ 0x2ccf1a0] Setting 'pix_fmt' to value '0' [graph 0 input from stream 0:0 @ 0x2ccf1a0] Setting 'time_base' to value '1/1200000' [graph 0 input from stream 0:0 @ 0x2ccf1a0] Setting 'pixel_aspect' to value '1/1' [graph 0 input from stream 0:0 @ 0x2ccf1a0] Setting 'sws_param' to value 'flags=2' [graph 0 input from stream 0:0 @ 0x2ccf1a0] Setting 'frame_rate' to value '60000/2002' [graph 0 input from stream 0:0 @ 0x2ccf1a0] w:1920 h:1080 pixfmt:yuv420p tb:1/1200000 fr:30000/1001 sar:1/1 sws_param:flags=2 [format @ 0x2c6ece0] compat: called with args=[yuv420p] [format @ 0x2c6ece0] Setting 'pix_fmts' to value 'yuv420p' [AVFilterGraph @ 0x2c75dc0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed [mpeg4 @ 0x2c755e0] detected 8 logical cores [mpeg4 @ 0x2c755e0] intra_quant_bias = 0 inter_quant_bias = -64 [vc1 @ 0x2c6e380] Header: DBFE3BF2 [vc1 @ 0x2c6e380] Advanced Profile level 3: frmrtq_postproc=7, bitrtq_postproc=31 LoopFilter=0, ChromaFormat=1, Pulldown=1, Interlace: 1 TFCTRflag=0, FINTERPflag=0 [vc1 @ 0x2c6e380] Display extended info: [vc1 @ 0x2c6e380] Display dimensions: 1920x1080 [vc1 @ 0x2c6e380] Aspect: 1:1 [vc1 @ 0x2c6e380] Entry point: 1ADFFCEF [vc1 @ 0x2c6e380] Entry point info: BrokenLink=0, ClosedEntry=0, PanscanFlag=0 RefDist=1, Postproc=1, FastUVMC=0, ExtMV=1 DQuant=1, VSTransform=1, Overlap=0, Qmode=3 Output #0, avi, to 'out.avi': Metadata: ISFT : Lavf55.3.100 Stream #0:0, 0, 1001/30000: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 1001/30000, q=2-31, 200 kb/s, 29.97 tbn, 29.97 tbc Stream mapping: Stream #0:0 -> #0:0 (vc1 -> mpeg4) Press [q] to stop, [?] for help [vc1 @ 0x2c6e380] Entry point: 1ADFFCEF [vc1 @ 0x2c6e380] Entry point info: BrokenLink=0, ClosedEntry=0, PanscanFlag=0 RefDist=1, Postproc=1, FastUVMC=0, ExtMV=1 DQuant=1, VSTransform=1, Overlap=0, Qmode=3 [vc1 @ 0x2c6e380] ACPRED plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Direct Type plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Direct Type plane encoding: Imode: 5, Invert: 0 [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Direct Type plane encoding: Imode: 5, Invert: 0 [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 2, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Direct Type plane encoding: Imode: 5, Invert: 0 [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Direct Type plane encoding: Imode: 5, Invert: 0 [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Direct Type plane encoding: Imode: 5, Invert: 0 [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 1 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] MB Direct Type plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] MB Skip plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [vc1 @ 0x2c6e380] Entry point: 1ADFFCEF [vc1 @ 0x2c6e380] Entry point info: BrokenLink=0, ClosedEntry=0, PanscanFlag=0 RefDist=1, Postproc=1, FastUVMC=0, ExtMV=1 DQuant=1, VSTransform=1, Overlap=0, Qmode=3 [vc1 @ 0x2c6e380] ACPRED plane encoding: Imode: 4, Invert: 0 [vc1 @ 0x2c6e380] VOP DQuant info [output stream 0:0 @ 0x2cd03c0] EOF on sink link output stream 0:0:default. No more output streams to write to, finishing. frame= 13 fps=0.0 q=2.0 Lsize= 420kB time=00:00:00.56 bitrate=6059.0kbits/s video:414kB audio:0kB subtitle:0 global headers:0kB muxing overhead 1.458072% 14 frames successfully decoded, 0 decoding errors [AVIOContext @ 0x2c75c40] Statistics: 9 seeks, 25 writeouts [AVIOContext @ 0x2c75e60] Statistics: 919438 bytes read, 0 seeks
It could be considered a bug imo that FFmpeg does not warn about the broken frame.
Attachments (1)
Change History (2)
by , 11 years ago
Attachment: | vc1+vc1+++artifacts7_cut.vc1 added |
---|
comment:1 by , 11 years ago
Note:
See TracTickets
for help on using tickets.
The same problem exists with http://samples.ffmpeg.org/archive/all/vc1+vc1+++artifacts12-mplayerdemuxed-errorframe.vc1