Re: Настройка отрисовщика madVR

Noweol
Да, удалось. Держит удвоение разрешения для 1280x720p при 24 к/сек. Для этого нужен драйвер 327.23 или более ранний. Последние драйвера не работали с NNED3 OpenCL. madshi начал переносить работу аппаратно-ускоренных алгоритмов с OpenCL на DirectCompute (поддерживаются D3D11 совместимые вимдеокарты, т.е. Nvidia 2xx и AMD 4xxx уже не подходят). На данный момент он перенес только дебандинг Error Diffusion. Это сократило объем требуемой видеопамяти вдвое и увеличило скорость работы на 10-25%.
Скачать madVR 0.78.4 бета3 с Error Diffusion на DirectCompute: http://madshi.net/madVRdirectCompute3.rar

Сейчас madshi работает над переносом NNEDI3 с OpenCL на DirectCompute. Так что я пока отложил замеры.

Re: Настройка отрисовщика madVR

По поводу качества удвоителя NNEDI3. Вот нарезка из сравнения качества увеличения размера в 4 раза алгоритмов Nearest Neibour, Jinc3 и NNEDI3.

http://www.svp-team.com/forum/misc.php?item=3009

Как видно, NNEDI3 лучше сглаживает наклонные линии и практически полностью убирает пикселизацию. Резкость при этом не падает так сильно, как при использовании Jinc3.

Post's attachments

Mario_NNEDI3.gif, 95.82 kb, 402 x 258
Mario_NNEDI3.gif 95.82 kb, 546 downloads since 2014-02-05 

Re: Настройка отрисовщика madVR

Его бы в эмуляторы прикрутить.

Re: Настройка отрисовщика madVR

http://madshi.net/madVRdirectCompute5.rar
В общем, на R7850 либо SVP, либо NNEDI. Вместе сплошные Dropped frames идут.

Re: Настройка отрисовщика madVR

И это печально... Видяйка-то из топовых...

Re: Настройка отрисовщика madVR

madVRdirectCompute5.rar все еще с OpenCL реализацией NNEDI3. madshi пишет, что пока ему не удается решить проблему 10-ти кратного падения производительности алгоритма NNEDI3, портированного на DirectCompute. Он взял тайм-аут. Учитывая не скорое появление обещанного быстрого аппаратно-ускоренного NNEDI3, я померял имеющийся OpenCL-алгоритм NNEDI3.

софт: SVP 3.1.5, MPC-HC 1.7.3, madVR 0.87.4 directCompute5, настройки по-умолчанию, включено NNEDI3 удвоение разрешения
железо: core i5-3570K, GTX 660 Ti (GeForce driver 327.23)

Максимальное разрешение, которое смогла удвоить эта конфигурация через NNEDI3 без дропов:
видео 1280x720 60 к/сек, увеличение до 1920x1080. загрузка GPU 77%, загрузка Memory Controller 30%, загрузка CPU 33%

(поток 55,3 МПикс/сек)

видео 1024x432 120 к/сек, увеличение до 1920x1080. загрузка GPU 80%, загрузка Memory Controller 35%, загрузка CPU 33%
(поток 53,1 МПикс/сек)

видео 1152x448 120 к/сек, увеличение до 1920x1080. загрузка GPU 89%, загрузка Memory Controller 36%, загрузка CPU 38%
(поток 61,9 МПикс/сек)

Максимальные цифры отмечены красным.

Re: Настройка отрисовщика madVR

Хорошие цифры. Это значит, что при наличии middle-end видяйки, nnedi3 реально можно пользоваться

Re: Настройка отрисовщика madVR

MAG79

Картинки бы сравнить, чуть более реальные чем пиксельно-мультяшная синтетика smile причем с двумя ресайзами (ну типа что "1280x720 увеличение до 1920x1080")
А еще, для чистоты эксперимента, сравнить скорость с программным NNEDI3 в ависните.

59 (edited by fakel 14-02-2014 18:49:10)

Re: Настройка отрисовщика madVR

Добрый день, подскажите пожалуйста так влияет ли на качество изображения «галка» в "enable automatic exclusive fullscreen mode"? У меня связка SVP 3.1.5+MadVR 0.87.4+POT (сборка 7sh3 1.5.44465x86) при включении этой галки, при автоматическом переходе в списке воспроизведения на следующий файл намертво виснет плеер. И еще, с момента выхода этой инструкции: svp-team.com/wiki/Настройка_MadVR ничего не поменялось? Может кто поделится настройками, как его правильно настроить(максимальное качество)? i5 2500K |  4Gb | MSI GTX560 Ti |  Win 8.1 64.

Re: Настройка отрисовщика madVR

fakel
с момента выхода этой инструкции: svp-team.com/wiki/Настройка_MadVR ничего не поменялось?
Менялось. Инструкция устарела.

Может кто поделится настройками, как его правильно настроить(максимальное качество)? i5 2500K |  4Gb | MSI GTX560 Ti |  Win 8.1 64
Самая лучшая инструкция - это сбросить настройки madVR к значениям по-умолчанию. Менять только то, что понимаешь. Все остальное уже настроено разработчиком и его армией поклонников на doom9.org.

так влияет ли на качество изображения «галка» в "enable automatic exclusive fullscreen mode"?
Она имеет своей целью исключить появление выпавших кадров. См. статистику по ctrl-j. Если она не помогает, то вместо нее можно включить галку "enable windowed overlay" либо "disable desktop composition". У них та же самая цель, только иная реализация этой цели.

Re: Настройка отрисовщика madVR

MAG79
Спасибо большое, извините если глупые вопросы, пытаюсь понимать... smile

62 (edited by psnsergey 01-03-2014 01:54:06)

Re: Настройка отрисовщика madVR

MAG79 wrote:

По поводу качества удвоителя NNEDI3.

Есть ещё вот такая ссылка: http://www.infognition.com/articles/vid … otout.html
Там вычисляют PSNR для восстановленной разными отрисовщиками вчетверо уменьшенной исходной картинки. NNEDI3 там плетётся почти в хвостике. А Lanczos с шарпером - среди фаворитов.
Лучше - больше

http://www.svp-team.com/forum/misc.php?item=3063

Post's attachments

Ресайзеры.png, 14.93 kb, 595 x 429
Ресайзеры.png 14.93 kb, 549 downloads since 2014-02-28 

63 (edited by Noweol 01-03-2014 06:02:33)

Re: Настройка отрисовщика madVR

Вот поэтому и говорят, что PNSR - плохое мерило всего. Во-первых, у lanczos рингинг будет, во вторых шарпинг его только увеличит. В третьих lanczos ещё и алиазинга добавит. Всего этого не будет у NNEDI3.

А вот VideoEnhancer заинтриговал. Если смотреть скрины bjorn.avi, то VideoEnhancer умудряется рамы в окнах восстанавливать, а у NNEDI3 это не получается. Всё остальные алгоритмы отдыхают. В общем и целом результат VideoEnhancer мне нравится - в среднем деталей больше выдаёт, но, бывают и промахи - Шрек и Panasonic.

P.S. Ха! У них бикубик и lanczos ничем друг от друга не отличаются. Насмешили, однако.

Re: Настройка отрисовщика madVR

Noweol wrote:

А вот VideoEnhancer заинтриговал. Если смотреть скрины bjorn.avi, то VideoEnhancer умудряется рамы в окнах восстанавливать, а у NNEDI3 это не получается. Всё остальные алгоритмы отдыхают.

Прикольно, что главная вычислительная сложность алгоритма заключается в том же самом определении движения объектов в кадре, которым и так занимается процессор в SVP...

Re: Настройка отрисовщика madVR

Noweol
А вот VideoEnhancer заинтриговал.

вроде как давно эту штуку на doom9 развенчали
по сути то что она делает - это денойс (по трем кадрам) + шарп, и как бы все
каждый может повторить это сам smile

66 (edited by psnsergey 02-03-2014 02:34:06)

Re: Настройка отрисовщика madVR

Chainik wrote:

по сути то что она делает - это денойс (по трем кадрам) + шарп, и как бы все
каждый может повторить это сам smile

Вы, похоже, правы (оттуда же, http://forum.doom9.org/archive/index.php/t-142704.html ):

Tempter57
26th November 2012, 11:07
@Jenyok
The problem is to discriminate between what is noise and what isn't. But the sharpening stage will sharpen also noise, which will be blend later inside the other frames. So you can't escape the temporal denoising, more efficient than spatial denoising, combined with motion compensation.

А есть способы сделать это или что-то похожее при проигрывании видео? Про плагины к MVTools знаю, но скорость их (если использовать не кластер из 10 машин) вызывает печаль... Шейдерами. Ведь векторы перемещения объектов в SVP и так определяются, и задача Super Resolution сильно облегчилась бы, если бы это можно было использовать не только как "построить промежуточные кадры с исходным разрешением" в видеокарте (как это делается в SVP сейчас), но и как
" 1. построить исходные кадры с увеличенным до размера экрана разрешением силами видеокарты посредством Super Resolution (того самого темпорал денойсинга и потом шарпа), используя определённые вектора перемещений;
  2. построить промежуточные кадры с увеличенным до размера экрана разрешением силами видеокарты из увеличенных в п. 1 исходных кадров, используя те же вектора перемещений. "
Так можно зарулить MadVR по качеству картинки так, что никакие NNEDI ему не помогут...

Подозреваю, что сие можно сделать скриптом AVISync для нынешнего SVP, но относительно .avs "давненько не брал я в руки шашек"... Никто не делал подобного?

Re: Настройка отрисовщика madVR

psnsergey
" 1. построить исходные кадры с увеличенным до размера экрана разрешением силами видеокарты посредством Super Resolution (того самого темпорал денойсинга и потом шарпа), используя определённые вектора перемещений;  2. построить промежуточные кадры с увеличенным до размера экрана разрешением силами видеокарты из увеличенных в п. 1 исходных кадров, используя те же вектора перемещений. "
Используёте увеличение картинки до свп . Хоть там и используется обычный сплайн ...
На секундочку - во всех промежуточных кадрах вы увидите реальные посчитанные пикселы , вместо отресайзенного изображения .
Честно сказать , уже давно практикую увеличение кадров до двухразмерного от мониторного , затем наложение шейдеров на полученный кадр , затем уменьшение рендером до размера монитора .
Картинка получается исключительная . Пикселы не бьют + более ,чем четвертьпиксельное построение .

При наличии ай5 и видяйки уровня 5750 - вполне реально "раскочегарить" свп до уровня 1500р .

68 (edited by psnsergey 02-03-2014 11:12:02)

Re: Настройка отрисовщика madVR

gaunt wrote:

Используёте увеличение картинки до свп . Хоть там и используется обычный сплайн ...

1. В том-то и дело, можно недорого (при наличии среднего уровня видеокарты) получить уменьшение шума на многие дБ благодаря темпоральному денойсингу. Вектора уже есть!..
Хотя если исходник плохой, то шумы там - артефакты сжатия, а они будут примерно те же самые в соседних кадрах, ибо сжатие основано на той же самой компенсации движения.
2. Вообще ресайзить до СВП - немножко не правильно, ИМХО. СВП же прежде всего надо вычислить вектора перемещений, а делать это лучше всего по исходной картинке до искажения ресайзом (а ресайз всегда искажение, он искажает спектр картинки). А вот потом, после того, как исходные кадры попадут в видеокарту, тут-то и надо их ресайзить - и потом уже и выводить отресайзенные кадры на телевизор, и строить из них же промежуточные кадры.

gaunt wrote:

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

Это как так? Ресайз в СВП работает только для алгоритма поиска векторов СВП, но не для построения промежуточных кадров? То есть цепочка построения выглядит как:
для исходных кадров - ресайз (с последующим построением маски векторов перемещений), вывод.
для промежуточных - построение из картинки исходного размера по маске векторов перемещений, ресайз, вывод?

Я думал, что раз до SVP изображение увеличено до HD - всё, SVP имеет дело с интерполированной картинкой и к исходной SD доступа не имеет.

Re: Настройка отрисовщика madVR

psnsergey
2. Вообще ресайзить до СВП - немножко не правильно, ИМХО. СВП же прежде всего надо вычислить вектора перемещений, а делать это лучше всего по исходной картинке до искажения ресайзом (а ресайз всегда искажение, он искажает спектр картинки). А вот потом, после того, как исходные кадры попадут в видеокарту, тут-то и надо их ресайзить - и потом уже и выводить отресайзенные кадры на телевизор, и строить из них же промежуточные кадры.
Это одно из заблуждений , не только ваше .
Не забываем - вектора ищатся не по соседним пикселам , а целыми блоками .
Т.е. блок 8*8 учитывает 64 пиксела . Ему абсолютно фиолетов тип ресайза на увеличение .
Блок 16*16 содержит уже 256 пиксел ...

С другой стороны - поиск векторов на грубых уровнях пирамиды , Тут надо понимать , что весь поиск может иметь лишь целые координаты .
Т.е. блок 8*8 и радиус 2 пиксела (четверть размера блока)
16*16 и радиус 4 пиксела (та же четверть)
32*32 и радиус 8 пиксел (опять четверть)
Всё это по сути одно и тоже . НО - сколько координат может дать радиус 2 пиксела ...0,1 и 2 .
4 пиксела - 0 ,1,2,3,4
8 пиксела от 0 до 9 .
Т.е. поиск блоком 32*32 будет в 4 раза точнее поиска блоком 8*8 . И это линейные размеры , по площади - в 16 раз .
Другое дело , что даже блок 8*8 является достаточно точным .

Т.е. увеличивая кадр , появляется возможность найти и вывести пиксела в натуральном виде . Ведь поиск целочисленный .
Как и монитор - реальный пиксел монитора тоже целочисленный .
Без движения ресайзить действительно неважно где , до или после .
Но с движением - появляется шанс вывести реальный мониторный пиксел , именно там , где он должен быть .
Т.е. в промежуточных - расчитанных кадрах элементарно растет точность , что выражается в улучшенном отображении деталей .
Чем не продвинутый ресайз ?
Ну и построение избыточной точности по определению будет уменьшать шум . Ибо поиск происходит блоками , где один-два пиксела погоды не сделает . При построении же - имеем смешивание , шумы уменьшатся , контуры подчеркнуты=усилены .


Если наложить шейдеры на реальный кадр , который сильно больше реального изображения монитора - вы получаете шейдер полупиксельной точности . Т.е. имеем относительно безопасное увеличение резкости .

Конечно , многое будет зависеть от качества обратного ресайза . Например , евр польз. с бикубиком 0.6,075 позволяет наложить лишь один шарпенкомплекс2 . С Мадвр и ланзосом - вполне можно накатить два раза подряд . Повторюсь - при размере видео после свп больше реальных пиксел монитора .

Re: Настройка отрисовщика madVR

madVR v0.87.5

* error diffusion now uses DirectCompute (DX11 GPU needed) instead of OpenCL
* added fast and reasonably high quality "ordered dithering" algorithm
* added "rendering\dithering" settings page with many new options
* new default dithering is now ordered dithering instead of random dithering
* madTPG now always uses monochromatic ordered dithering
* fixed: #107: XySubFilter: reducing CPU queue size during playback -> crash
* fixed: #112: 120fps clip resulted in 23Hz being selected instead of 60Hz
* fixed: #119: installation resulted in "might not have installed correctly"
* fixed: #123: XySubFilter: Nearest Neighbor/Bilinear distorted subtitles
* fixed: #125: forced film mode with unsupported FOURCCs: graphical corruption
* fixed: #133: XySubFilter: opaque black box when smooth motion was enabled
* fixed: #136: when playback is stopped, madVR now always turns the video off
* fixed: #137: Nearest Neighbor/Bilinear has problems with post-resize shaders
* fixed: #138: smooth motion FRC flickered when using Nearest Neighbor
* fixed: #145: DCI-P3 was using an incorrect white point
* fixed: #155: screeshots sometimes had an added black border
* fixed: #159: speciying DCI-P3 as the calibrated gamut -> green screen
* fixed: #160: corruption with uncompressed 4096x2304 v210 in AVI
* fixed: #161: YUV 4:4:4 videos with weird resolutions crashed madVR
* fixed: #165: overlay mode restricted madVR to single player window
* fixed: #167: dithering produced dithering noise on pure black areas
* fixed: #169: dithering produced dithering noise on pure white areas
* fixed: #170: Overlay mode sometimes unnecessarily cleared GPU gamma ramps
* fixed: Overlay mode applied 3dlut and gamma ramps in wrong order
* fixed: crash reporting didn't catch exceptions in private threads, anymore
* fixed: crash when using XySubFilter with small GPU queue size
* fixed: DVD navigator was not released properly by madVR
* fixed: Run/Seek hooks also affected secondary DirectShow graphs
* fixed: profile key shortcuts only worked for "scaling" profiles
* fixed: full range YCbCr input produced slightly incorrect colors
* reduced Overlay mode graphical corruption when resizing media player
* exclusive -> windowed switch now shows a black frame instead of an old one
* removed XySubFilter auto-loading functionality, it's now XySubFilter's job
* disabled resolution based DCI-P3 auto detection
* changed default luma doubling value to 32 neurons
* display bitdepth can be be set to as low as 3bit (just for testing)

Re: Настройка отрисовщика madVR

madVR v0.87.6

* fixed: #090: FSE mode switched to 23Hz instead of 24Hz in Windows 8
* fixed: #127: crash when jumping to next video file on secondary monitor
* fixed: #173: overlay: exiting multiple windows in same order -> black screen
* madTPG now forces ordered dither, but you can en/disable colored & dynamic
* added support for new subtitle API ISubRenderConsumer2::Clear()

Re: Настройка отрисовщика madVR

madVR v0.87.7

* added linear light processing for ordered dithering and error diffusion
* added "trade quality for performance" option for linear light dithering
* fixed: #175: Banding appears if bitdepth is set to '7 bit'
* fixed: crash in MC19 when switching videos with native DXVA decoding
* fixed: rare overlay stability problems introduced in v0.87.5
* random dithering doesn't round down to less than 8bit, anymore
* "present several frames in advance = off" now auto-disables error diffusion
* display bitdepth can be be set to as low as 1bit (just for testing)
* added silent exception handling for Intel OpenCL initialization crashes
* madTPG now optionally supports APL windows (gamma and linear light)
* madTPG now has a minimum image area of 4% instead of 10%
* madTPG now draws a 20 pixel black border around the measurement area
* madTPG now properly supports dynamic dithering (didn't before)
* madTPG dithering was optimized to not dither for integer test patterns
* madTPG headers and demo projects updated
* madVR in a media player no longer supports test pattern, only madTPG does

Re: Настройка отрисовщика madVR

madVR v0.87.8

* added workaround for NVidia OpenCL <-> D3D9 interop driver bug
* fixed: #158: NNEDI3 chroma upscaling + DXVA deint + NVidia -> green image
* fixed: DirectCompute rendering resources weren't properly released
* fixed: some multi monitor problems introduced in v0.87.7
* fixed: smooth motion frc sometimes incorrectly dropped frames
* fixed: toggling subtitle "trade quality" option required restart
* some DirectCompute stability improvements
* added vendor based OpenCL device filtering
* non-DX11-GPUs: error diffusion now falls back to ordered dithering
* improved Windows 8.1 FSE mode refresh rate hack

Re: Настройка отрисовщика madVR

madVR v0.87.9

* fixed: NNEDI3 didn't work properly on AMD/Intel (introduced in v0.87.8)
* fixed: native DXVA decoding + NNEDI3 chroma up + NVidia -> green color cast
* fixed: #032: Smooth Motion FRC sometimes failed to activate
* fixed: #096: Smooth Motion FRC resulted in last/only frame being hidden
* fixed: #097: Smooth Motion FRC didn't respect "treat 25p movies as 24p"
* fixed: #098: "Treat 25p movies as 24p" now only activates up to 25.5fps
* fixed: #104: "Delay playback until ..." failed when toggling subtitles
* fixed: #113: film mode key shortcut didn't enable Smooth Motion FRC
* fixed: #124: videoLUTs were not properly restored in multi monitor setup
* fixed: #132: Image corruption when leaving FSE with 3dlut loaded
* fixed: #171: film mode activation with display mode change could crash
* fixed: #178: RGB/YUV 4:4:4 with mod2 height showed black screen
* fixed: #182: NNEDI3 chroma up neuron count wasn't properly memorized
* fixed: #187: switching subtitles triggered a short black screen
* fixed: #189: Smooth Motion FRC sometimes activated when not needed
* NNEDI3 no longer offsets by 0.5 pixel if Luma needs to be resampled, anyway
* added "HKCU\Software\madshi\madVR\OpenCL\forceVendor" override option
* modified madLevelsTweaker GUI to make intended multi monitor usage clearer

Re: Настройка отрисовщика madVR

madVR v0.87.10

* added some optimizations to reduce AMD OpenCL interop cost
* added new windowed presentation path ("present several frames in advance")
* added support for decimating 50p/60p movies to 25p/24p
* added profile strings "filePath/Name/Ext", with wild char ("?", "*") support
* fixed: #181: profile auto switching sometimes invalidated file name tags
* fixed: #192: black flashing with Smooth Motion + NNEDI3 chroma doubling
* fixed: #193: image corruption when up&down scale is needed at the same time
* fixed: crash on Vista when trying to activate error diffusion
* fixed: Intel OpenCL CPU driver sometimes crashed
* OpenCL should now automatically prefer NVidia GPUs on Optimus laptops
* refresh rate hack is now only installed on Windows 8 (and newer)
* "Pause" OSD message no longer blocked
* file "madshi.net/madVR/version.txt" lists the current version number
* file "madshi.net/madVR/sha1.txt" lists SHA1 hash of the current "madVR.zip"