[FFmpeg-trac] #3785(swscale:new): SWSCALE: in_range, in_color_matrix, out_range, out_color_matrix incorrect

FFmpeg trac at avcodec.org
Sat Jul 19 21:11:42 CEST 2014


#3785: SWSCALE: in_range, in_color_matrix, out_range, out_color_matrix incorrect
------------------------------------+-----------------------------------
             Reporter:  troy_s      |                    Owner:
                 Type:  defect      |                   Status:  new
             Priority:  normal      |                Component:  swscale
              Version:  git-master  |               Resolution:
             Keywords:              |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |
------------------------------------+-----------------------------------

Comment (by troy_s):

 I will likely need a little help to assert that the output I'll be getting
 is precisely what we are discussing. I have used the following ffmpeg
 command to dump the raw YCbCr to a planar file:
 {{{
 ./ffmpeg -i ~/Downloads/testchart.tif -pix_fmt yuv444p -vf
 scale="in_range=full:in_color_matrix=bt709:out_range=full:out_color_matrix=bt709"
 out.yuv
 }}}

 I am hoping that, given 444 encoding:
 1. Three planes of Y, Cb, and Cr respectively at the test chart's
 1920x1080
  1. Y at 1920x1080 with full JFIF / JPEG range.
  1. Cb / Cr (again with yuv444p) at 1920x1080 with full JFIF / JPEG range.
 1. Encoded using ITU-REC-709 luminance coefficients.

 Can we assert that the given line will result in the above?

 {{{
 ffmpeg version N-64740-g6be71e9 Copyright (c) 2000-2014 the FFmpeg
 developers
   built on Jul 18 2014 15:56:09 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
   configuration: --enable-gpl --enable-libx264 --disable-asm
   libavutil      52. 92.101 / 52. 92.101
   libavcodec     55. 69.100 / 55. 69.100
   libavformat    55. 48.101 / 55. 48.101
   libavdevice    55. 13.102 / 55. 13.102
   libavfilter     4. 11.102 /  4. 11.102
   libswscale      2.  6.100 /  2.  6.100
   libswresample   0. 19.100 /  0. 19.100
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, image2, from '/home/aphorism/Downloads/testchart.tif':
   Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: tiff, rgb24, 1920x1080 [SAR 1:1 DAR 16:9], 25 tbr,
 25 tbn, 25 tbc
 File 'out.yuv' already exists. Overwrite ? [y/N] y
 Output #0, rawvideo, to 'out.yuv':
   Metadata:
     encoder         : Lavf55.48.101
     Stream #0:0: Video: rawvideo (444P / 0x50343434), yuv444p, 1920x1080
 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
     Metadata:
       encoder         : Lavc55.69.100 rawvideo
 Stream mapping:
   Stream #0:0 -> #0:0 (tiff (native) -> rawvideo (native))
 Press [q] to stop, [?] for help
 frame=    1 fps=0.0 q=0.0 Lsize=    6075kB time=00:00:00.04
 bitrate=1244160.0kbits/s
 video:6075kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.000000%
 }}}

 If we can agree on the encoding command to generate the correct YCbCr
 output, I can proceed from here.

 Thanks for all of your help in all of this. Hopefully we can dig through
 some of the color issues in FFMPEG and generate test units.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/3785#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list