#8328: QSV gives much worse PSNR/SSIM for HEVC transcode than VA-API or MediaSDK -------------------------------------+------------------------------------- Reporter: eero-t | Owner: Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+-------------------------------------
Comment (by fulinjie): Would you please help to attach "Netflix_FoodMarket_4096x2160_10bit_420_100mbs_600.h265" in this ticket, since the provided y4m is rather large(14GB+). BTW, I did some tests locally with a 4K, yuv420p10 clips, and this psnr issue is not reproduced with ffmpeg of either latest version or the commit at end of 2018. Clips: https://drive.google.com/file/d/1k0e5bBPs2JDHwJZdT8qBkpMdcwHywnSq/view?usp=sharing {{{ ffmpeg -hwaccel qsv -qsv_device /dev/dri/renderD128 -c:v hevc_qsv -i 4K_10_sunflower.mp4 -c:v hevc_qsv -b:v 20M -frames 300 qsv.h265 ffmpeg version N-93010-g26ce3a43a3 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1) configuration: --enable-libmfx --disable-optimizations --enable-debug=3 --disable-stripping --enable-gpl --enable-libopenh264 --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable- libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable- libx265 --enable-nonfree libavutil 56. 26.100 / 56. 26.100 libavcodec 58. 44.100 / 58. 44.100 libavformat 58. 26.100 / 58. 26.100 libavdevice 58. 6.101 / 58. 6.101 libavfilter 7. 48.100 / 7. 48.100 libswscale 5. 4.100 / 5. 4.100 libswresample 3. 4.100 / 3. 4.100 libpostproc 55. 4.100 / 55. 4.100 Guessed Channel Layout for Input Stream #0.1 : 5.1 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '4K_10_sunflower.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 title : Big Buck Bunny, Sunflower version artist : Blender Foundation 2008, Janus Bager Kristensen 2013 composer : Sacha Goedegebure encoder : Lavf58.33.100 comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net genre : Animation Duration: 00:00:10.33, start: 0.000000, bitrate: 4955 kb/s Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, progressive), 3840x2160 [SAR 1:1 DAR 16:9], 4560 kb/s, 30 fps, 30 tbr, 15360 tbn, 30 tbc (default) Metadata: handler_name : GPAC ISO Video Handler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 394 kb/s (default) Metadata: handler_name : GPAC ISO Audio Handler Stream mapping: Stream #0:0 -> #0:0 (hevc (hevc_qsv) -> hevc (hevc_qsv)) Press [q] to stop, [?] for help Output #0, hevc, to 'qsv.h265': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 title : Big Buck Bunny, Sunflower version artist : Blender Foundation 2008, Janus Bager Kristensen 2013 composer : Sacha Goedegebure genre : Animation comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net encoder : Lavf58.26.100 Stream #0:0(und): Video: hevc (hevc_qsv), qsv, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 20000 kb/s, 30 fps, 30 tbn, 30 tbc (default) Metadata: handler_name : GPAC ISO Video Handler encoder : Lavc58.44.100 hevc_qsv Side data: cpb: bitrate max/min/avg: 0/0/20000000 buffer size: 0 vbv_delay: -1 frame= 300 fps= 18 q=-0.0 Lsize= 16438kB time=00:00:09.86 bitrate=13648.0kbits/s speed=0.608x video:16438kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000% }}} {{{ ffmpeg -i 4K_10_sunflower.mp4 -i qsv.h265 -lavfi 'ssim;[0:v][1:v]psnr' -frames 300 -f null - ffmpeg version N-93010-g26ce3a43a3 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1) configuration: --enable-libmfx --disable-optimizations --enable-debug=3 --disable-stripping --enable-gpl --enable-libopenh264 --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable- libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable- libx265 --enable-nonfree libavutil 56. 26.100 / 56. 26.100 libavcodec 58. 44.100 / 58. 44.100 libavformat 58. 26.100 / 58. 26.100 libavdevice 58. 6.101 / 58. 6.101 libavfilter 7. 48.100 / 7. 48.100 libswscale 5. 4.100 / 5. 4.100 libswresample 3. 4.100 / 3. 4.100 libpostproc 55. 4.100 / 55. 4.100 Guessed Channel Layout for Input Stream #0.1 : 5.1 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '4K_10_sunflower.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 title : Big Buck Bunny, Sunflower version artist : Blender Foundation 2008, Janus Bager Kristensen 2013 composer : Sacha Goedegebure encoder : Lavf58.33.100 comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net genre : Animation Duration: 00:00:10.33, start: 0.000000, bitrate: 4955 kb/s Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, progressive), 3840x2160 [SAR 1:1 DAR 16:9], 4560 kb/s, 30 fps, 30 tbr, 15360 tbn, 30 tbc (default) Metadata: handler_name : GPAC ISO Video Handler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 394 kb/s (default) Metadata: handler_name : GPAC ISO Audio Handler Input #1, hevc, from 'qsv.h265': Duration: N/A, bitrate: N/A Stream #1:0: Video: hevc (Main 10), yuv420p10le(tv), 3840x2160 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 1200k tbn, 30 tbc Applying unspecific -frames to non video streams, maybe you meant -vframes ? Stream mapping: Stream #0:0 (hevc) -> ssim:main (graph 0) Stream #0:0 (hevc) -> psnr:main (graph 0) Stream #1:0 (hevc) -> ssim:reference (graph 0) Stream #1:0 (hevc) -> psnr:reference (graph 0) ssim (graph 0) -> Stream #0:0 (wrapped_avframe) psnr (graph 0) -> Stream #0:1 (wrapped_avframe) Stream #0:1 -> #0:2 (aac (native) -> pcm_s16le (native)) Press [q] to stop, [?] for help Output #0, null, to 'pipe:': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 title : Big Buck Bunny, Sunflower version artist : Blender Foundation 2008, Janus Bager Kristensen 2013 composer : Sacha Goedegebure genre : Animation comment : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net encoder : Lavf58.26.100 Stream #0:0: Video: wrapped_avframe, yuv420p10le, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc Metadata: encoder : Lavc58.44.100 wrapped_avframe Stream #0:1: Video: wrapped_avframe, yuv420p10le, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc Metadata: encoder : Lavc58.44.100 wrapped_avframe Stream #0:2(und): Audio: pcm_s16le, 48000 Hz, 5.1, s16, 4608 kb/s (default) Metadata: handler_name : GPAC ISO Audio Handler encoder : Lavc58.44.100 pcm_s16le frame= 300 fps=5.0 q=-0.0 Lq=-0.0 size=N/A time=00:00:10.00 bitrate=N/A speed=0.167x video:314kB audio:3600kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown [Parsed_ssim_0 @ 0x559413792f00] SSIM Y:0.998935 (29.728072) U:0.998056 (27.112709) V:0.997992 (26.972283) All:0.998632 (28.637829) [Parsed_psnr_1 @ 0x559413796300] PSNR y:52.651755 u:53.405014 v:53.026333 average:52.830453 min:42.830295 max:inf }}} -- Ticket URL: <https://trac.ffmpeg.org/ticket/8328#comment:4> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org https://ffmpeg.org/mailman/listinfo/ffmpeg-trac To unsubscribe, visit link above, or email ffmpeg-trac-requ...@ffmpeg.org with subject "unsubscribe".