[FFmpeg-trac] #5995(undetermined:new): Blockiness and ringing in prores4444 encoded video with alpha
FFmpeg
trac at avcodec.org
Mon Dec 5 08:48:43 EET 2016
#5995: Blockiness and ringing in prores4444 encoded video with alpha
-------------------------------------+-------------------------------------
Reporter: stib | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
prores,alpha | Reproduced by developer: 0
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
'''How to reproduce:'''
Transcode a file with an alpha channel to ProRes4444 using prores_ks
encoder
{{{
% ffmpeg -i 'input.mov' -c:v prores_ks -profile:v 4 -quant_mat 'hq'
-pix_fmt yuva444p10le 'output.mov'
}}}
{{{
ffmpeg version N-82664-g801b5c1 Copyright (c) 2000-2016 the FFmpeg
developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-
bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
--enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc
--enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg
--enable-libopus --enable-librtmp --enable-libschroedinger --enable-
libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-
libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264
--enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-
decklink --enable-zlib
libavutil 55. 41.101 / 55. 41.101
libavcodec 57. 66.108 / 57. 66.108
libavformat 57. 58.101 / 57. 58.101
libavdevice 57. 2.100 / 57. 2.100
libavfilter 6. 67.100 / 6. 67.100
libswscale 4. 3.101 / 4. 3.101
libswresample 2. 4.100 / 2. 4.100
libpostproc 54. 2.100 / 54. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\alpha test.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2016-12-12T03:17:14.000000Z
Duration: 00:00:10.00, start: 0.000000, bitrate: 406275 kb/s
Stream #0:0(eng): Video: qtrle (rle / 0x20656C72), bgra(progressive),
1920x1080, 405436 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 25 tbn, 25 tbc
(default)
Metadata:
creation_time : 2016-12-12T03:17:14.000000Z
handler_name : Apple Alias Data Handler
encoder : Animation
timecode : 00:00:00:00
Stream #0:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
Metadata:
creation_time : 2016-12-12T03:17:14.000000Z
handler_name : Apple Alias Data Handler
timecode : 00:00:00:00
File 'prorestest2.mov' already exists. Overwrite ? [y/N] y
Output #0, mov, to 'prorestest2.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
encoder : Lavf57.58.101
Stream #0:0(eng): Video: prores (prores_ks) (ap4h / 0x68347061),
yuva444p10le, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps,
12800 tbn, 25 tbc (default)
Metadata:
creation_time : 2016-12-12T03:17:14.000000Z
handler_name : Apple Alias Data Handler
timecode : 00:00:00:00
encoder : Lavc57.66.108 prores_ks
Stream mapping:
Stream #0:0 -> #0:0 (qtrle (native) -> prores (prores_ks))
Press [q] to stop, [?] for help
frame= 250 fps=5.5 q=-0.0 Lsize= 186122kB time=00:00:09.96
bitrate=153082.2kbits/s speed=0.218x
video:186119kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.001761%
}}}
'''Expected'''
Something similar to the original. This is a png from the test file, which
was created with Adobe AFter Effects, encoded as QTRLE bgra-8 in a .mov
container:
[[Image(https://i.stack.imgur.com/KpMMP.png)]]
'''Observed'''
Blockiness, ringing and noise, particularly in areas with partial alpha.
This is a png saved from the transcoded result, which was created using
the command above. The artefacts appear in areas where the alpha channel
is partially transparent, although the alpha channel itself seems to be
ok. The problem is worse when the '''-alpha_bits''' encoding option is set
to '''16''':
[[Image(https://i.stack.imgur.com/XUbk5.png)]]
The effect is most noticeable when viewing one channel against black. This
is a screenshot of the Red channel video playing in DJV View:
[[Image(https://i.stack.imgur.com/Ngh3m.png)]]
And here is the Alpha channel:
[[Image(https://imgur.com/a/ncWHK)]]
The machine used to encode was running windows7 x64
--
Ticket URL: <https://trac.ffmpeg.org/ticket/5995>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list