[FFmpeg-trac] #8034(avfilter:new): zscale: inaccurate conversion from YCbCr Narrow range to RGB Full range
FFmpeg
trac at avcodec.org
Mon Jul 29 10:53:10 EEST 2019
#8034: zscale: inaccurate conversion from YCbCr Narrow range to RGB Full range
------------------------------------+------------------------------------
Reporter: cepesh | Owner:
Type: defect | Status: new
Priority: normal | Component: avfilter
Version: git-master | Resolution:
Keywords: zscale | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
------------------------------------+------------------------------------
Comment (by cepesh):
In [https://github.com/sekrit-twc/zimg/issues/109#issuecomment-515526912
this post] richardpl advised
>Could you use zscale=other parameters as usual,format=rgb48le instead of
what are you using currently?
I have tried that and the situation improved a lot. This seems to be
placing the issue back into ffmpeg rather than zimg library.
{{{
ffmpeg started on 2019-07-29 at 08:45:19
Report written to "ffmpeg-20190729-084519.log"
Command line:
"C:\\tools\\ffmpeg-20190722-3883c9d-win64-static\\bin\\ffmpeg.exe"
-loglevel debug -report -s 3840x2160 -vcodec v210 -i YUV_pattern-2fr.v210
-vf
"zscale=dither=none:matrix=bt2020nc:matrixin=bt2020nc:in_range=limited:out_range=full,format=rgb48le"
-vframes 1 ffmpeg_3883c9d_zscale_format_rgb48le.TIFF -y
ffmpeg version N-94383-g3883c9d147 Copyright (c) 2000-2019 the FFmpeg
developers
built with gcc 9.1.1 (GCC) 20190716
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
--enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
--enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
--enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
--enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
--enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-
nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
libavutil 56. 32.100 / 56. 32.100
libavcodec 58. 55.100 / 58. 55.100
libavformat 58. 30.100 / 58. 30.100
libavdevice 58. 9.100 / 58. 9.100
libavfilter 7. 58.100 / 7. 58.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument 'debug'.
Reading option '-report' ... matched as option 'report' (generate a
report) with argument '1'.
Reading option '-s' ... matched as option 's' (set frame size (WxH or
abbreviation)) with argument '3840x2160'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec
('copy' to copy stream)) with argument 'v210'.
Reading option '-i' ... matched as input url with argument 'YUV_pattern-
2fr.v210'.
Reading option '-vf' ... matched as option 'vf' (set video filters) with
argument
'zscale=dither=none:matrix=bt2020nc:matrixin=bt2020nc:in_range=limited:out_range=full,format=rgb48le'.
Reading option '-vframes' ... matched as option 'vframes' (set the number
of video frames to output) with argument '1'.
Reading option 'ffmpeg_3883c9d_zscale_format_rgb48le.TIFF' ... matched as
output url.
Reading option '-y' ... matched as option 'y' (overwrite output files)
with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Applying option report (generate a report) with argument 1.
Applying option y (overwrite output files) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url YUV_pattern-2fr.v210.
Applying option s (set frame size (WxH or abbreviation)) with argument
3840x2160.
Applying option vcodec (force video codec ('copy' to copy stream)) with
argument v210.
Successfully parsed a group of options.
Opening an input file: YUV_pattern-2fr.v210.
[NULL @ 000001516e19b840] Opening 'YUV_pattern-2fr.v210' for reading
[file @ 000001516e19c8c0] Setting default whitelist 'file,crypto'
[v210 @ 000001516e19b840] Format v210 probed with size=2048 and score=50
[v210 @ 000001516e19b840] Before avformat_find_stream_info() pos: 0 bytes
read:32768 seeks:0 nb_streams:1
[v210 @ 000001516e19b840] All info found
[v210 @ 000001516e19b840] Estimating duration from bitrate, this may be
inaccurate
[v210 @ 000001516e19b840] After avformat_find_stream_info() pos: 22118400
bytes read:22118400 seeks:0 frames:1
Input #0, v210, from 'YUV_pattern-2fr.v210':
Duration: 00:00:00.08, start: 0.000000, bitrate: 4423680 kb/s
Stream #0:0, 1, 1/25: Video: v210, 1 reference frame, yuv422p10le,
3840x2160, 0/1, 4423680 kb/s, 25 tbr, 25 tbn, 25 tbc
Successfully opened the file.
Parsing a group of options: output url
ffmpeg_3883c9d_zscale_format_rgb48le.TIFF.
Applying option vf (set video filters) with argument
zscale=dither=none:matrix=bt2020nc:matrixin=bt2020nc:in_range=limited:out_range=full,format=rgb48le.
Applying option vframes (set the number of video frames to output) with
argument 1.
Successfully parsed a group of options.
Opening an output file: ffmpeg_3883c9d_zscale_format_rgb48le.TIFF.
Successfully opened the file.
Stream mapping:
Stream #0:0 -> #0:0 (v210 (native) -> tiff (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless
if it occurs once at the start per stream)
detected 32 logical cores
[Parsed_zscale_0 @ 000001516e1a4a00] Setting 'dither' to value 'none'
[Parsed_zscale_0 @ 000001516e1a4a00] Setting 'matrix' to value 'bt2020nc'
[Parsed_zscale_0 @ 000001516e1a4a00] Setting 'matrixin' to value
'bt2020nc'
[Parsed_zscale_0 @ 000001516e1a4a00] Setting 'in_range' to value 'limited'
[Parsed_zscale_0 @ 000001516e1a4a00] Setting 'out_range' to value 'full'
[Parsed_format_1 @ 000001516e1a3300] Setting 'pix_fmts' to value 'rgb48le'
[graph 0 input from stream 0:0 @ 000001516e1b69c0] Setting 'video_size' to
value '3840x2160'
[graph 0 input from stream 0:0 @ 000001516e1b69c0] Setting 'pix_fmt' to
value '66'
[graph 0 input from stream 0:0 @ 000001516e1b69c0] Setting 'time_base' to
value '1/25'
[graph 0 input from stream 0:0 @ 000001516e1b69c0] Setting 'pixel_aspect'
to value '0/1'
[graph 0 input from stream 0:0 @ 000001516e1b69c0] Setting 'sws_param' to
value 'flags=2'
[graph 0 input from stream 0:0 @ 000001516e1b69c0] Setting 'frame_rate' to
value '25/1'
[graph 0 input from stream 0:0 @ 000001516e1b69c0] w:3840 h:2160
pixfmt:yuv422p10le tb:1/25 fr:25/1 sar:0/1 sws_param:flags=2
[format @ 000001516e1b8880] Setting 'pix_fmts' to value
'rgb24|rgb48le|pal8|rgba|rgba64le|gray|ya8|gray16le|ya16le|monob|monow|yuv420p|yuv422p|yuv440p|yuv444p|yuv410p|yuv411p'
[auto_scaler_0 @ 000001516e1bc980] Setting 'flags' to value 'bicubic'
[auto_scaler_0 @ 000001516e1bc980] w:iw h:ih flags:'bicubic' interl:0
[Parsed_format_1 @ 000001516e1a3300] auto-inserting filter 'auto_scaler_0'
between the filter 'Parsed_zscale_0' and the filter 'Parsed_format_1'
[AVFilterGraph @ 000001516e1a2800] query_formats: 5 queried, 3 merged, 1
already done, 0 delayed
[Parsed_zscale_0 @ 000001516e1a4a00] w:3840 h:2160 fmt:yuv422p10le sar:0/1
-> w:3840 h:2160 fmt:yuv422p10le sar:0/1
[auto_scaler_0 @ 000001516e1bc980] w:3840 h:2160 fmt:yuv422p10le sar:0/1
-> w:3840 h:2160 fmt:rgb48le sar:0/1 flags:0x4
[Parsed_zscale_0 @ 000001516e1a4a00] w:3840 h:2160 fmt:yuv422p10le sar:0/1
-> w:3840 h:2160 fmt:yuv422p10le sar:0/1
Output #0, image2, to 'ffmpeg_3883c9d_zscale_format_rgb48le.TIFF':
Metadata:
encoder : Lavf58.30.100
Stream #0:0, 0, 1/25: Video: tiff, 1 reference frame, rgb48le,
3840x2160, 0/1, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
Metadata:
encoder : Lavc58.55.100 tiff
Clipping frame in rate conversion by 0.000008
No more output streams to write to, finishing.
[image2 @ 000001516e1ae440] Opening
'ffmpeg_3883c9d_zscale_format_rgb48le.TIFF' for writing
[file @ 000001516e1b9cc0] Setting default whitelist 'file,crypto'
[AVIOContext @ 000001516e1eeb40] Statistics: 0 seeks, 13 writeouts
frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
speed=0.0957x
video:3195kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
Input file #0 (YUV_pattern-2fr.v210):
Input stream #0:0 (video): 1 packets read (22118400 bytes); 1 frames
decoded;
Total: 1 packets (22118400 bytes) demuxed
Output file #0 (ffmpeg_3883c9d_zscale_format_rgb48le.TIFF):
Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (3271738
bytes);
Total: 1 packets (3271738 bytes) muxed
1 frames successfully decoded, 0 decoding errors
[AVIOContext @ 000001516e1a4b00] Statistics: 22118400 bytes read, 0 seeks
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8034#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list