[FFmpeg-trac] #2524(avcodec:new): vc1 error concealment

FFmpeg trac at avcodec.org
Wed May 1 14:36:57 CEST 2013


#2524: vc1 error concealment
---------------------------------------+---------------------------------
               Reporter:  cehoyos      |                  Owner:
                   Type:  enhancement  |                 Status:  new
               Priority:  wish         |              Component:  avcodec
                Version:  git-master   |               Keywords:  vc1
             Blocked By:               |               Blocking:
Reproduced by developer:  0            |  Analyzed by developer:  0
---------------------------------------+---------------------------------
 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.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2524>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list