Keka wrote:

EVR CP

Ради скорости и стабильности могу предложить попробовать схему:
MPC-B dec в режиме nvdec + встроенный рендер dx11

Необычный декодер можно взять из набора Shark 007. По тестам на моём скромном железе он ощутимо быстрее LAV и встроенных в Пот декодеров с бекбуффером. (Фактически проприетарный NVDEC шустрее общих DXVA)
А встроенный рендер мне просто всегда казался самым шустрым и гладким из всех, это вероятно, больше субьективный совет.)

Недавно заметил на 11-й винде что изображение прерывается будто проблемы с вертикальной синхронизацией.
Монитор показывал входной 60 кс после СВП, но плеер почему-то отображал 120 на выходе.
Пробовал искать проблему много где, настройки, разные рендеры, драйвера, от шейдеров плеер совсем почему-то в тормоза укатывался, даже винду сменил на свежую.
Рекомендация поставить в настройках SVP встроенку только лечила тормоза от шейдеров.

Но оказалось - из-за внешнего декодера.

Неважно, LAV или MPC-BE, внешние видеодекодеры сводят с ума современный ПотПлеер. (версия 230830 (1.7.21990))
Вернул родной DXVA Copy-Back с декодингом на дискретную, на неё же и СВП - снова стало идеально.
Может, кому-то поможет.

Есть вопрос, СВП же строит карту векторов, прямую, обратную или обе.
И в последнем случае как-то их обьединяет, насколько я понимаю.

А с OF, он делает тоже обе? Или одну? И почему не делать их с разным размером блока?
(глобальное/локальное уточнение, насколько я понимаю, так работает в стандартном алгоритме)

Пока лазил по форумам в поиске док для Avisynth, нашёл вот такую занятную строку:
AviSynth is based on the assumption that every filter can request any frame it wants from the filter(s) preceeding it (i.e. random, non-linear access), but of course this doesn't really work in ffdshow where the upstream DirectShow filters and/or the player application dictate the current frame that will get decoded and filtered. To work around this somewhat, the ffdshow AviSynth filter allows the user to specify a number of frames to buffer ahead and a number of frames to keep in a back-history.

Плюс ко всему, заметил в примерах к SVPflow такие переменные как global svp_cache_fwd и Prefetch.
Собственно вопрос, я правильно понимаю что SVP для векторов использует далеко не только несколько соседних кадров (как было часто сказано на форуме), но столько сколько указано в переменных? (и сколько позволяет плеер, естественно)
Этой настройки в про версии не нашёл, она берёт максимальное значение которое позволяет плеер? Или буфер никак не помогает в процессе?

На лету - точно не стоит, СВП всё ещё заметно подлагивает когда переходит между частотами кадров.
Насчёт детекта, я использовал для теста функцию ffdshow - mpdecimate. И на первый взгляд вполне удовлетворительный результат, на выходе можно получить VFR с 1-24 к/с.

Проблема в том, что уплавнение даже такого "подготовленного" материала через СВП не даёт на выходе нормальные, стабильные 60 кадров, они скачут и подтормаживают как в риалтайме.
Подозреваю, что это связано с потребностью "заглядывать на несколько (десятков) кадров вперед и делать какой-то анализатор", для VFR это должен быть анализатор двух соседних фреймов? Таймкоды там уже должны стоять подходящие, вроде как.

Насчёт TIVTC, штука интересная, спасибо, но как я понимаю, очень узконаправленная, возвращать из 30 кадров родные 24-25.)

А нельзя-ли что-нибудь сделать с переменной частотой кадров?
Я имею ввиду, что вот в аниме, например, используется во многих сценах 1-2 кадра из 24-х, что приводит к неприятным артефактам, а в экшн-сценах или свайпах (плавное перемещение камеры) задействованы все 24-ри. Уплавнение работает эффективно не всегда.
Некоторые гении могут выложить и обычный видеопоток 24 кадра закодированный в 30 кадров или того хуже.

Я пытался избавится от лишних кадров через фильтр, но такую кашу СВП в риалтайме не может переварить по понятным причинам, у него едет крыша.
По столь же очевидным причинам пытаться увеличивать через х2 видеопоток в 12 раз (например), а потом пытаться сделать из него те же 60 кадров - это плохая идея, картинку рвёт и ломает.

А что если собрать конвертер в самом СВП, который сам отсеет "пустые" кадры и заполнит пропуски интерполяцией?

Кстати, пишут что можно получить "Request Access to Optical Flow SDK Source Code".
И с gitlab-а смотреть прям исходники, а не просто готовый СДК, если я правильно понял.
https://forums.developer.nvidia.com/t/v … sed/233408

Может, стоит попробовать?

Лучше б они качество подтянули вместо своих "150 fps at 4K", там радиус поиска наверняка с дульку.
Радует только что АМД решились на ответ, может FluidMotion в этот раз будет посимпатичнее и по опенсорснее.

"Ada - 15% quality improvement" ага, спасибо Нвидия

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

Однако, в OpticalFlow и без того параметров маловато, было бы замечательно разделить даунскейл и размер области для векторов. Ведь пусть 4х4 даёт странные артефакты, он также местами выглядит лучше. Поле для экспериментов - то ради чего мы покупаем ПРО версию. (кроме благодарности за шикарный продукт, конечно)
Хотя-бы в виде примера/скрипта для SVPFlow, если его функционала достаточно.
2х2 с даунскейлом (8х8) может оказаться золотой серединой для каких-то случаев.
Ну и в конце-концов, зачем-то АМД и Интел выпускают новые поколения. smile

А ещё в документации упоминалось про какой-то легаси режим 8х8 для старых карточек. Его потом выпилили? Или он тоже работает скверно?

P.S.: если не на 3ххх, то на новом поколении есть весомый шанс что 2х2 и 1х1 станут обрабатываться аппаратно.  Этот чёрный ящик можно вскрыть разве что практическими тестами.)

В любом случае хотелось бы услышать мнение профессионалов, когда представят.)

Есть ещё такой вопрос, насколько я знаю, чтоб получить 16 пикселей на Optical Flow (по умолчанию 4), СВП даунскейлит картинку.
А в документации также написано, что с 3ххх Optical Flow также умеет в поиск по 2х2 и 1х1 пикселям.
В СВП это реализовано? (у меня просто на постоянке 2060, мог не заметить на новой серии)

Очень надеюсь что алгоритм Нвидия всё-таки подкрутили и выпустят в опенсорс что-нибудь лучше текущей реализации. Или он привязан напрямую к хардвейру? Тогда ток обновление поколения поможет?

P.S.: извиняюсь, гугл разбанил, качество зависит от хардвейра.

Optical Flow functionality in Turing and Ampere GPUs accelerates these use-cases by offloading the intensive flow vector computation to a dedicated hardware engine on the GPU silicon, thereby freeing up GPU and CPU cycles for other tasks. This functionality in hardware is independent of CUDA cores..

P.P.S.: но алгоритм удвоения кадров всё-таки выложат в опенсорс с версией Optical Flow SDK 4.0.)

Что скажете по поводу представленной DLSS3? Там используется всё тот же OpticalFlow или уже что-нибудь поновее-пошустрее-покачественнее? Есть ли надежда на имплементацию простым работягам в видеоплеер?

P.S.: качество поиска векторов зависит от хардовой части, т.е. от поколения карточек. СВП тут вряд-ли сможет что-то сделать.

P.P.S.: Ан-нет, кое-что они всё-таки представили. Собственное удвоение кадров. Очень жду имплементации.

The Optical Flow SDK 4.0 release introduces engine-assisted frame rate up conversion (FRUC), which interpolates new frames using optical flow vectors to double the effective frame rate of a video. The result is improved smoothness of video playback and perceived visual quality. Optical Flow SDK 4.0 will be available in October.

13

(1 replies, posted in Флуд)

Хотел опробовать SVPcode, но в списке дополнений его не обнаружил. И нормального обсуждения/ответа почему тоже.

З.Ы.: А ещё цвет окна совсем чуть-чуть отличается от цвета фона на форуме. Почему-бы не унифицировать?:)

Смотрел форум и не увидел чтобы сюда добавили предложение вставить дополнительную функцию GameDropFix в сам SVP.) (Сорри, если я слепой)
Или что-то подобное для исправления косяков воспроизводимого видео. Очень актуально.

Здравствуйте, ребята. Прошу сильно не бить, т.к. я новенький. smile
Хочу подключить GameDropFix_v5 (или любой другой) напрямую к PotPlayer (плеер тоже не критичен) вместе с SVP 4. (хотя SVP 3.1.7 тоже можно) То-есть просто собрать конвеер выдающий плавную картинку без выпадения кадров.
В более ранних версиях постоянно выбивает ошибки и если в случае с "There is no function named 'SetMTMode'", можно просто убрать эти строчки с многопотоком, то заявление плеера "I don`t know what 'width' means" ставит меня в тупик. (В случае самого GameDropFix_v5 просто пишет "Invalid script")