DXVA2 - артефакты, при перемотке стрелками вправо, влево

Автор Evgeniy1990, 12 августа 2016, 13:13:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Evgeniy1990

Краткое описание проблемы:

В последних SVN-билдах довольно часто проявляются артефакты, при воспроизведении и перемотке различных видео файлов в аппаратном режиме DXVA2. Наиболее часто это наблюдается на видеокартах "ATI (AMD)".

Основное условие проявления артефактов в различных местах - это "быстрая" перемотка с помощью клавиш - стрелок вправо и влево, особенно если при этом эти клавиши мы удерживаем.

Алгоритм воспроизведения:

1. Скачать видео файл из этого торрент-файла: https://yadi.sk/d/X3GzS1hkuAKbf
2. Запустить его
3. Во время его воспроизведения, необходимо как можно чаще перематывать данный видео файл, с помощью клавиш "стрелка право (перемотка вперед)" и "стрелка влево (перемотка назад)".
Можно также попробовать его перемотать стрелками в режиме "Пауза".

Фактический результат: во время перемотки данного видео файла, в состоянии его воспроизведения, или паузы, проявляются в различных местах артефакты.
Ожидаемый результат: во время воспроизведения и перемотки, артефакты не должны проявляться.

P.S.

1. Прилагаю скриншоты: https://yadi.sk/i/xCnUuQbmuAKd5 и https://yadi.sk/i/xCnUuQbmuAKd5

2. В данном видео файле артефакты проявляются строго всегда, в различных местах, при перемотке стрелками.

3. Артефакты проявляются только при использовании нашего встроенного MPC Video Decoder в режиме DXVA2.
При использовании, например, внешнего LAV Video Decoder, они вообще не проявляются.

4. Есть предположение, что проявление артефактов зависит от алгоритмов перемотки, в зависимости от используемых видео декодеров. Если сравнить два видео декодера: наш MPC Video Decoder и внешний сторонний LAV Video Decoder, то наш видео декодер гораздо больше показывает нам видео кадров, при перемотке, нежели чем внешний сторонний видео декодер. Вполне возможно, что именно поэтому на внешнем стороннем видео декодере LAV Video Decoder артефакты не наблюдаются и не проявляются. Это говорит о том, что есть отличие и разница в перемотке, в зависимости от используемых видео декодеров.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Как я уже сказал - у себя не смог воспроизвести данный "баг".
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Как я уже сказал - у себя не смог воспроизвести данный "баг".
Вы попробуйте пожалуйста воспроизвести его на этом видео файле, который я выложил для вас.
[merge_posts_bbcode]Добавлено: 2016-08-13 12:07:13[/merge_posts_bbcode]

Aleksoid1978, действительно, проблема в перемотке, при использовании аппаратного режима, поскольку если запустить данный видео файл в программном режиме, при использовании нашего MPC Video Decoder, то он станет перематываться точно также, как и на внешнем стороннем LAV Video Decoder в режиме "DXVA2 Native".

Даже если взять только наш MPC Video Decoder и сравнить перемотку на двух режимах - аппаратном и программном, то уже будет видна разница. В программном режиме, при перемотке, количество кадров гораздо меньше, чем при использовании аппаратного режима.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Хрен его знает - на перемотке "просмотрел" 3 раза, не одного артефакта.
[merge_posts_bbcode]Добавлено: 2016-08-15 12:01:31[/merge_posts_bbcode]

Вот пробуем - https://yadi.sk/d/nu2IBcTduDLqL
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Вот пробуем - https://yadi.sk/d/nu2IBcTduDLqL
Скачал тестовый билд. Буду как можно более тщательнее прогонять различные форматы видео файлов в аппаратном режиме. Позднее отпишусь. Быстро проверить не получится, поскольку артефакты "довольно хитрые", могут сразу и не проявиться, поэтому необходимо несколько раз прогнать различные видео файлы, в том числе и наиболее проблемные.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Я уверен что на ATI - 100% не будет в DXVA. Дело в том что при работе с H.264 в софте, а так же при DXVA на интерлейсе, при перемотке происходит полная реинициализация ffmpeg декодера(а при DXVA - еще и самого DXVA декодера). У LAV - всегда при софте и так же всегда на ATI картах(не только на интерлейс).

Почему полезли иногда артефакты - ну видимо на стороне ffmpeg что-то немного "поломали" и не всегда срабатывает проверка на кл. кадр при перемотке, либо что-то не очищается.

Изменять пока ничего не буду - по мне пусть уж лучше изредка квадратики вылезут чем заметно медленная сама перемотка и в большинстве случаев отсутствие картинки во время перемотки(особенно на DXVA из-за полной реинициализации этого самого DXVA декодера).
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Я уверен что на ATI - 100% не будет в DXVA. Дело в том что при работе с H.264 в софте, а так же при DXVA на интерлейсе, при перемотке происходит полная реинициализация ffmpeg декодера(а при DXVA - еще и самого DXVA декодера). У LAV - всегда при софте и так же всегда на ATI картах(не только на интерлейс).
Проверил тестовый билд. Да, действительно, теперь на ATI-видеокартах вообще нет и не проявляется артефактов.
При перемотке отображается только один кадр, с которого начали перематывать. Если перематывать с удержанием клавиш "стрелка вправо" и "стрелка влево", то остальные кадры вообще просто не отображаются до самого конца.

Но зато теперь наш DXVA2-декодер стал работать также как и DXVA2 Native в LAV Video Decoder, за исключением одного - в отличие от LAV Video Decoder (DXVA2 Native), наш DXVA2-декодер почему-то не отображает кадры, при перемотке. Вы уже ответили почему, но ведь LAV Video Decoder их как-то все равно отображает.

Т.е. еще осталась эта вот недоработка. Если вы сможете ее устранить, тогда наш декодер станет полностью равным LAV Video Decoder (DXVA2 Native).

Но есть и один большой плюс ваших изменений - теперь хотя бы не проявляются "рандомно" в произвольных местах артефакты на некоторых различных форматах видео файлов. А это - самое главное.  

Цитата: Aleksoid1978Изменять пока ничего не буду - по мне пусть уж лучше изредка квадратики вылезут чем заметно медленная сама перемотка и в большинстве случаев отсутствие картинки во время перемотки(особенно на DXVA из-за полной реинициализации этого самого DXVA декодера).
По мне, самовольное "рандомное" проявление артефактов в произвольных местах - это просто "самый настоящий кошмар" и это очень плохо. Я знал, что проявление артефактов на ATI-видеокартах - это очередная поломка, возникшая после очередного обновления ffmpeg.

Как лучше всего поступить?

1. Ждать очередного обновления ffmpeg с исправленным декодером, что маловероятно.
2. Внести ваши изменения в SVN, что является наиболее разумным, если вы устраните одну недоработку, про которую я вам расписал.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Что за страшные и громкие слова самый настоящий кошмар - это перемотка, в любом случае после нее картинка становится нормальной.

Никаких изменений не будет из-за которых пострадает скорость этой самой перемотки а также выводимая кртинка. Больше не надо продолжать эту тему.

P.S. Вот еще один тестовый билд(изменения на стороне ffmpeg) - https://yadi.sk/d/mjbssYTUuEEFd
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Что за страшные и громкие слова самый настоящий кошмар - это перемотка, в любом случае после нее картинка становится нормальной.

Никаких изменений не будет из-за которых пострадает скорость этой самой перемотки а также выводимая кртинка. Больше не надо продолжать эту тему.
Вы не совсем поняли. Я поясню...

Фактически, на ATI-видеокартах имеются две проблемы:

1. Артефакты, при перемотке стрелками вправо и влево, по ключевым кадрам.
2. Самовольное "рандомное" проявление артефактов в произвольных местах различных форматов видео файлов, во время их воспроизведения.

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

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

Обе эти проблемы присутствуют в последних SVN-билдах и проявляются только на видеокартах "ATI (AMD) Radeon".

Так вот, то что я назвал "настоящим кошмаром", я имел в виду именно вторую проблему, которая является плавающей, поскольку артефакты проявляются самовольно, сами по себе, в "рандомных" местах, при воспроизведении видео файлов. И это, действительно, самая неприятная проблема, поскольку бывают даже случаи, когда, после проявления артефактов, они остаются до конца воспроизведения и даже не думают исчезать.

И вот эта вторая проблема, с плавающими артефактами, очень "доставучая", прямо как и проблема с зависанием при перемотке, которая уже давно исправлена. Т.е. как назло во время воспроизведения видео файла вдруг ни с того, ни с сего  проявляются сами по себе эти артефакты, т.е. чисто самовольно.

Прошу прощение, если мои слова показались вам "громкими", просто я не знаю, как еще более мягко назвать то, что творится с видео файлами на экране монитора, во время их воспроизведения.

Опишу для вас просто кратко, что происходит:

1. Сначала проявляются самовольно артефакты
2. Потом появляется некая "размытость" изображения
3. Потом начинается выборочное мерцание видео кадров
4. И, наконец, происходит слияние некоторых цветов

Вот такая вот "каша" получается в итоге. Естественно, увидев "такое", первое что бросается в голову на мысль, так это слово "кошмар", по другому не скажешь.
[merge_posts_bbcode]Добавлено: 2016-08-16 03:30:19[/merge_posts_bbcode]

Цитата: Aleksoid1978P.S. Вот еще один тестовый билд(изменения на стороне ffmpeg) - https://yadi.sk/d/mjbssYTUuEEFd
Проверил второй тестовый билд. К сожалению, в нем также проявляются артефакты, при перемотке стрелками вправо и влево, по ключевым кадрам, как и во всех последних SVN-билдах.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Про "артефакты" просто во время воспроизведения я без понятия и не разу такого не видел ...
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215