[FFmpeg-trac] #2521(avfilter:new): Cb and Cr positions on GEQ filter

FFmpeg trac at avcodec.org
Tue Apr 30 23:02:04 CEST 2013


#2521: Cb and Cr positions on GEQ filter
----------------------------------+--------------------------------------
             Reporter:  jbvsmo    |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avfilter  |                  Version:  git-master
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+--------------------------------------
 Summary of the bug:
 The "cb(X, Y)" and "cr(X, Y)" functions of GEQ filter look shrunk when
 applied to a larger plane, like luminance or alpha planes.

 {{{
 ffmpeg -i file.mp4 -vf "geq=lum_expr=cb(X\,Y):cb_expr=0:cr_expr=0" out.mp4
 }}}

 The correct output is achieved only using half of each dimension, i.e.
 "lum_expr=cb(X/2\,Y/2)".

 Setting "format=yuva444p" before the GEQ filter seems to fix the problem
 for "alpha_expr", but not for "lum_expr".

 I attached one frame with the original picture and the filtered one just
 so you can see the effect.

 Full output:
 {{{
 $ ffmpeg -y -v 99 -i M.mp4 -vf
 "geq=lum_expr=cr(X\,Y)+cb(X\,Y):cb_expr=0:cr_expr=0" -t 0.5 out.mp4
 ffmpeg version N-41713-g53efb2f Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Apr 30 2013 16:23:43 with gcc 4.7 (Ubuntu/Linaro
 4.7.2-2ubuntu1)
   configuration: --enable-gpl --enable-libass --enable-libfaac --enable-
 libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-
 libopencore-amrwb --enable-libspeex --enable-librtmp --enable-libtheora
 --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264
 --enable-nonfree --enable-version3 --enable-libfreetype --enable-
 libvidstab
   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 '-y' ... matched as option 'y' (overwrite output files)
 with argument '1'.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '99'.
 Reading option '-i' ... matched as input file with argument 'M.mp4'.
 Reading option '-vf' ... matched as option 'vf' (set video filters) with
 argument 'geq=lum_expr=cr(X\,Y)+cb(X\,Y):cb_expr=0:cr_expr=0'.
 Reading option '-t' ... matched as option 't' (record or transcode
 "duration" seconds of audio/video) with argument '0.5'.
 Reading option 'out.mp4' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option y (overwrite output files) with argument 1.
 Applying option v (set logging level) with argument 99.
 Successfully parsed a group of options.
 Parsing a group of options: input file M.mp4.
 Successfully parsed a group of options.
 Opening an input file: M.mp4.
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ebdca0] Format mov,mp4,m4a,3gp,3g2,mj2
 probed with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ebdca0] ISO: File Type Major Brand: isom
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ebdca0] File position before
 avformat_find_stream_info() is 2537955
 [h264 @ 0x1ebea60] no picture
 [aac @ 0x1ec01a0] skip whole frame, skip left: 0
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ebdca0] All info found
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1ebdca0] File position after
 avformat_find_stream_info() is 76059
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'M.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf55.3.100
   Duration: 00:00:10.03, start: 0.015238, bitrate: 2023 kb/s
     Stream #0:0(und), 2, 1/24000: Video: h264 (High) (avc1 / 0x31637661),
 yuv420p, 854x480, 1001/48000, 1892 kb/s, 23.98 fps, 23.98 tbr, 24k tbn,
 47.95 tbc
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(und), 1, 1/44100: Audio: aac (mp4a / 0x6134706D), 44100
 Hz, stereo, fltp, 127 kb/s
     Metadata:
       handler_name    : SoundHandler
 Successfully opened the file.
 Parsing a group of options: output file out.mp4.
 Applying option vf (set video filters) with argument
 geq=lum_expr=cr(X\,Y)+cb(X\,Y):cb_expr=0:cr_expr=0.
 Applying option t (record or transcode "duration" seconds of audio/video)
 with argument 0.5.
 Successfully parsed a group of options.
 Opening an output file: out.mp4.
 Successfully opened the file.
 [Parsed_geq_0 @ 0x1ecf0e0] Setting 'lum_expr' to value 'cr(X,Y)+cb(X,Y)'
 [Parsed_geq_0 @ 0x1ecf0e0] Setting 'cb_expr' to value '0'
 [Parsed_geq_0 @ 0x1ecf0e0] Setting 'cr_expr' to value '0'
 [graph 0 input from stream 0:0 @ 0x1ecf9a0] Setting 'video_size' to value
 '854x480'
 [graph 0 input from stream 0:0 @ 0x1ecf9a0] Setting 'pix_fmt' to value '0'
 [graph 0 input from stream 0:0 @ 0x1ecf9a0] Setting 'time_base' to value
 '1/24000'
 [graph 0 input from stream 0:0 @ 0x1ecf9a0] Setting 'pixel_aspect' to
 value '0/1'
 [graph 0 input from stream 0:0 @ 0x1ecf9a0] Setting 'sws_param' to value
 'flags=2'
 [graph 0 input from stream 0:0 @ 0x1ecf9a0] Setting 'frame_rate' to value
 '24000/1001'
 [graph 0 input from stream 0:0 @ 0x1ecf9a0] w:854 h:480 pixfmt:yuv420p
 tb:1/24000 fr:24000/1001 sar:0/1 sws_param:flags=2
 [format @ 0x1ed2940] compat: called with
 args=[yuv420p|yuvj420p|yuv422p|yuv444p]
 [format @ 0x1ed2940] Setting 'pix_fmts' to value
 'yuv420p|yuvj420p|yuv422p|yuv444p'
 [AVFilterGraph @ 0x1ebdb80] query_formats: 4 queried, 3 merged, 0 already
 done, 0 delayed
 [graph 1 input from stream 0:1 @ 0x1ecf8e0] Setting 'time_base' to value
 '1/44100'
 [graph 1 input from stream 0:1 @ 0x1ecf8e0] Setting 'sample_rate' to value
 '44100'
 [graph 1 input from stream 0:1 @ 0x1ecf8e0] Setting 'sample_fmt' to value
 'fltp'
 [graph 1 input from stream 0:1 @ 0x1ecf8e0] Setting 'channel_layout' to
 value '0x3'
 [graph 1 input from stream 0:1 @ 0x1ecf8e0] tb:1/44100 samplefmt:fltp
 samplerate:44100 chlayout:0x3
 [audio format for output stream 0:1 @ 0x1ed2fa0] Setting 'sample_fmts' to
 value 's16'
 [audio format for output stream 0:1 @ 0x1ed2fa0] Setting 'channel_layouts'
 to value '0x4|0x3|0x7|0x107|0x37|0x3f'
 [audio format for output stream 0:1 @ 0x1ed2fa0] auto-inserting filter
 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the
 filter 'audio format for output stream 0:1'
 [AVFilterGraph @ 0x1ecff60] query_formats: 4 queried, 9 merged, 3 already
 done, 0 delayed
 [auto-inserted resampler 0 @ 0x1ed4ac0] ch:2 chl:stereo fmt:fltp r:44100Hz
 -> ch:2 chl:stereo fmt:s16 r:44100Hz
 [libx264 @ 0x1ece3e0] using mv_range_thread = 40
 [libx264 @ 0x1ece3e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
 SlowShuffle
 [libx264 @ 0x1ece3e0] profile High, level 3.0
 [libx264 @ 0x1ece3e0] 264 - core 130 r60 c832fe9 - H.264/MPEG-4 AVC codec
 - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options:
 cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1
 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1
 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6
 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=23
 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0
 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 [h264 @ 0x1ebea60] detected 4 logical cores
 Output #0, mp4, to 'out.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf55.3.100
     Stream #0:0(und), 0, 1/24000: Video: h264 (libx264) ([33][0][0][0] /
 0x0021), yuv420p, 854x480, 1001/24000, q=-1--1, 24k tbn, 23.98 tbc
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(und), 0, 1/44100: Audio: aac (libfaac) ([64][0][0][0] /
 0x0040), 44100 Hz, stereo, s16, 128 kb/s
     Metadata:
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 -> libx264)
   Stream #0:1 -> #0:1 (aac -> libfaac)
 Press [q] to stop, [?] for help
 [h264 @ 0x28e0080] no picture
 [h264 @ 0x2924da0] no picture
 [aac @ 0x1ec01a0] skip whole frame, skip left: 0
 No more output streams to write to, finishing.=00:00:00.37 bitrate=
 1.0kbits/s
 [libx264 @ 0x1ece3e0] frame=   0 QP=20.41 NAL=3 Slice:I Poc:0   I:1620 P:0
 SKIP:0    size=9783 bytes
 [libx264 @ 0x1ece3e0] frame=   1 QP=24.24 NAL=2 Slice:P Poc:2   I:954
 P:322  SKIP:344  size=7025 bytes
 [libx264 @ 0x1ece3e0] frame=   2 QP=31.27 NAL=2 Slice:P Poc:4   I:873
 P:372  SKIP:375  size=6762 bytes
 [libx264 @ 0x1ece3e0] frame=   3 QP=23.57 NAL=2 Slice:P Poc:6   I:436
 P:376  SKIP:808  size=5379 bytes
 [libx264 @ 0x1ece3e0] frame=   4 QP=25.30 NAL=2 Slice:P Poc:8   I:1083
 P:364  SKIP:173  size=7295 bytes
 [libx264 @ 0x1ece3e0] frame=   5 QP=24.63 NAL=2 Slice:P Poc:10  I:958
 P:445  SKIP:217  size=6568 bytes
 [libx264 @ 0x1ece3e0] frame=   6 QP=25.03 NAL=2 Slice:P Poc:12  I:491
 P:348  SKIP:781  size=7379 bytes
 [libx264 @ 0x1ece3e0] frame=   7 QP=24.38 NAL=2 Slice:P Poc:14  I:453
 P:391  SKIP:776  size=6856 bytes
 [libx264 @ 0x1ece3e0] frame=   8 QP=23.95 NAL=2 Slice:P Poc:16  I:426
 P:366  SKIP:828  size=5757 bytes
 [libx264 @ 0x1ece3e0] frame=   9 QP=22.10 NAL=2 Slice:P Poc:18  I:559
 P:328  SKIP:733  size=6413 bytes
 [libx264 @ 0x1ece3e0] frame=  10 QP=23.98 NAL=2 Slice:P Poc:20  I:490
 P:437  SKIP:693  size=6328 bytes
 [libx264 @ 0x1ece3e0] frame=  11 QP=33.72 NAL=2 Slice:P Poc:22  I:417
 P:290  SKIP:913  size=3812 bytes
 frame=   12 fps=7.0 q=-1.0 Lsize=      89kB time=00:00:00.51
 bitrate=1424.4kbits/s
 video:78kB audio:9kB subtitle:0 global headers:0kB muxing overhead
 1.724562%
 [libx264 @ 0x1ece3e0] frame I:1     Avg QP:20.41  size:  9783
 [libx264 @ 0x1ece3e0] frame P:11    Avg QP:25.65  size:  6325
 [libx264 @ 0x1ece3e0] mb I  I16..4: 75.1%  9.9% 15.1%
 [libx264 @ 0x1ece3e0] mb P  I16..4: 37.7%  1.4%  0.9%  P16..4: 10.5%  6.6%
 5.6%  0.0%  0.0%    skip:37.3%
 [libx264 @ 0x1ece3e0] 8x8 transform intra:4.7% inter:30.2%
 [libx264 @ 0x1ece3e0] coded y,uvDC,uvAC intra: 5.0% 0.0% 0.0% inter: 13.3%
 0.0% 0.0%
 [libx264 @ 0x1ece3e0] i16 v,h,dc,p: 58% 42%  0%  0%
 [libx264 @ 0x1ece3e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 48% 16%  2%  2%
 2%  3%  2%  4%
 [libx264 @ 0x1ece3e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 39% 23% 21%  4%  2%
 2%  3%  3%  3%
 [libx264 @ 0x1ece3e0] i8c dc,h,v,p: 100%  0%  0%  0%
 [libx264 @ 0x1ece3e0] Weighted P-Frames: Y:0.0% UV:0.0%
 [libx264 @ 0x1ece3e0] ref P L0: 52.9% 11.1% 21.5% 14.5%
 [libx264 @ 0x1ece3e0] kb/s:1268.44
 55 frames successfully decoded, 0 decoding errors
 [AVIOContext @ 0x1ec3840] Statistics: 60 seeks, 79 writeouts
 [AVIOContext @ 0x1ec62e0] Statistics: 260780 bytes read, 2 seeks
 }}}

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


More information about the FFmpeg-trac mailing list