Артефакты серого квадрата после 10-битного кодирования HEVC с использованием кодера NVENC от FFmpeg

Недавно я приобрел новый графический процессор - AORUS GeForce GTX 1080 Ti. Я узнал, что он поддерживает 10-битное кодирование HEVC, поэтому я хотел попробовать. К сожалению, после кодирования я заметил некоторые артефакты, которые возникают в темных сценах и для последнего кадра видео. Вы можете увидеть их на этих скриншотах:

Скриншот фотографии из анимационной сцены. Внизу и чуть левее есть артефакт. Он квадратной формы с белыми ворсинками

Снимок экрана из другой анимированной сцены. Артефакт выглядит так же, как на предыдущем изображении, но находится в другом месте, выше и ближе к центру

Мне было интересно, может ли кто-нибудь помочь мне выяснить, что может быть причиной этих артефактов и как я могу от них избавиться.

Вот MI исходного видео:

ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4.1
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 2 h 2 min
Bit rate mode                            : Variable
Bit rate                                 : 29.5 Mb/s
Maximum bit rate                         : 37.0 Mb/s
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.593
Stream size                              : 25.2 GiB (66%)
Language                                 : English
Default                                  : Yes
Forced                                   : No

А вот MI закодированного видео:

ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L4@Main
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 2 h 2 min
Bit rate                                 : 3 689 kb/s
Width                                    : 1 920 pixels
Height                                   : 800 pixels
Display aspect ratio                     : 2.40:1
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Standard                                 : Component
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.100
Stream size                              : 3.15 GiB (95%)
Default                                  : Yes
Forced                                   : No
Color range                              : Limited

Команда, которую я использую для кодирования:

ffmpeg -hide_banner -i "<input_file>" -map 0:v:0 -map_chapters -1 -map_metadata -1 -vf "crop=1920:800:0:140" -vcodec hevc_nvenc -pix_fmt p010le -preset hq -profile:v main10 -rc constqp -global_quality 21 -rc-lookahead 32 -g 240 -f matroska Video_CQP21_LAF32_GOP240.mkv

2 ответа

Решение

Задача решена. Оказывается, существует проблема с кодированием H.265, выполненным NVENC на графических процессорах, основанных на ядре GP102. Если вы разгоняете его до определенной точки, эти артефакты появляются после кодирования. Уменьшение тактовой частоты ядра GPU должно решить проблему.

О, это действительно интересно. Вы используете несколько необычных опций. Пожалуйста, попробуйте это:

ffmpeg -hide_banner -i "<input_file>" -map 0:v:0 -map_chapters -1 -map_metadata -1 -vf "crop=1920:800:0:140" -vcodec hevc_nvenc -pix_fmt p010le -preset slow -profile:v main10 -qmin 22 -qmax 22 -rc-lookahead 32 -g 240 -f matroska Video_CQP21_LAF32_GOP240.mkv

Этот параметр - лучшее, что я смог проверить на разрыв сцены.

Другие вопросы по тегам