FFT3DGPU

Общая информация

Автор: Tonny Petersen aka tsp
Версия: 0.6.4
Загрузка: http://www.avisynth.org/tsp/
Категория: Разнообразные другие плагины (Misc Plugins)
Требования: Цветовое пространство YV12, Графическая плата Directx 9
Лицензия: GPL

Инструкция

FFT3DGPU - это GPU версия фильтра Fizick'а FFT3DFilter, т.е. алгоритм (Быстрое Преобразование Фурье, шумодав) по большей части тот же. К настоящему времени не реализована поддержка для чересстрочного видео, цветового пространства YUY2 и метод образца шума

В текущей версии, для оптимизации, FFT3DGPUзапрашивает у AVISynth'а следующий кадр, пока работает GPU. Это означает, что фильтры идущие в тексте до FFT3DGPUработают параллельно с ним.

Установка:

Для использования данного фильтра необходим DirectX 9.0c или новее, а также нужна графическая плата, аппаратно поддерживающая DirectX 9. Это как минимум ATI Radeon 95xx или nVidia GeForce FX 5xxx. Рекомендуется GeForce 6xxx или лучше. Если Вы скачали Установщик (прим. пер.: исполняемый EXE-файл), просто запустите его и он всё сделает за Вас, иначе скопируйте fft3dgpu.hlsl и fft3dgpu.dll в одну и ту же директорию. Также скопируйте d3dx9_27.dll в папку c:\windows\system32.
В старых версиях есть fft3dgpu9b.dll (в данное время не поддерживается) для Directx 9.0b (НЕ копируйте обе dll в папку автозагрузки плагинов.)
Возможно DirectX 9.0c быстрее на платах nVidia GeForce 6xxx поскольку там добавлена поддержка PixelShader 3.0 Если У Вас нет последней версии DirectX (октябрь 2005) Вы можете скачать её тут или распаковать файл d3dx9_27.dll в папку c:\Windows\System32. Установщик сам копирует d3dx9_27.dll нужное место, это означает, что его не надо копировать, если у Вас уже установлен Directx 9c.

Синтаксис:

FFT3DGPU(clip, float "sigma", float "beta", int "bw", int "bh", int "bt", float "sharpen", int "plane", int "mode", int "bordersize", int "precision", bool "NVPerf", float "degrid", float "scutoff", float "svr", float "smin", float "smax", float "kratio", int "ow", int "oh", int "wintype" )

Параметры функции:

clip: фильтруемый клип. Должен быть YV12.

sigma и beta имеет те же значение как в FFT3DFilter. По умолчанию = 1.

bw,bh: ширина и высота блока. Должны быть степенью 2-ки, т.е. правильные величины 4,8,16,32,64,128,256,512. (Заметьте, что bw,bh должно быть больше, чем 4 для наилучшего результата). По умолчанию = 32

bt: способ фильтрации.
bt=-1 только повышение резкости,
bt=0 режим фильтра Кальмана,
bt=1 пространственный 2D фильтр Винера,
bt=2 используются предыдущий и текущий кадры.
bt=3 используются предыдущий, текущий и следующий кадры,
bt=4 используются два предыдущих, текущий и следующий кадры.
По умолчанию = 1

sharpen: положительные величины - степень повышения резкости, отрицательные - уменьшают резкость. 0 - отключает изменение резкости. По умолчанию = 0.

plane: 0 - обрабатывать только канал яркости,
1,2 и 3 - синонимы, обрабатываются каналы цветности (оба - U и V).
4 - яркость и обе цветоразности.
По умолчанию = 0.

mode: 0 - перекрытие 1:1. Это самый быстрый способ но с высокими величинами сигмы возможны артефакты.
mode=1 режим полного перекрытия 2:1. Это самый медленный но с меньшими артефактами.
mode=2 опять перекрытие 1:1, но с дополнительной границей. Это уменьшает граничные артефакты видимые при mode=0. Скорость между mode = 0 и 1.
Фильтр Кальмана (bt=0) работает с mode=0. По умолчанию 1

bordersize: используется только с mode=2. Определяет размер границы. По умолчанию 1.

precision: 0: используется 16 битная вещественная арифметика (половинная точность),
1: используются 32 битная вещественная арифметика (одинарная точность) для преобразования Фурье (FFT) и 16 битная для фильтр Винера/Кальмана и повышения резкости.
2: всегда использует 32 битную арифметику.
Использование 16 битной арифметику увеличивает скорость исполнения, но уменьшает точность. На GeForce 6800 precision=0 примерно в 3 раза быстрее precision=2, и precision=1 быстрее 1.33 раза, чем precision=2. По умолчанию 0.

NVPerf: Включает поддержку NVPerfHUD. По умолчанию = false.

degrid: снижение сеточности. Работает только когда mode=1. Не работает с фильтром Кальмана (но работает для повышения резкости (если включено) после фильтра Кальмана). По умолчанию 1.0 для mode=1 и 0.0 для mode = 0 или 2

scutoff, svr, smin, smax:то же самое, что для FFT3DFilter. Управляет режимом повышения резкости. По умолчанию scutoff=0.3, svr=1.0, smin=4.0, smax=20.0

kratio: Как и в FFT3DFilter. Порог сброса фильтра Кальмана. По умолчанию 2.0

ow,oh: работает только при mode=1. Определяет величину перекрытие между блоками. Размер перекрытия должен быть меньше или равный половине размера блока. По умолчанию ow=bw/2 ,oh=bh/2

wintype: Изменяет тип окна анализа и синтеза. Аналогично FFT3DFilter

ЧаВО:

В: Что означает, когда я получаю в отдельном окне сообщение о неожиданной ошибке с кодом: D3DERR_OUTOFVIDEOMEMORY.

О: Это означает, что для FFT3DGPUнужно больше памяти чем доступно на графической плате. Короче, или Вы должны модернизировать видео плату, или пробовать уменьшить разрешение, bt,bh,bw,ow,oh, или использовать precision=0, или mode=0 или 2

В: Какие настройки дают тот же результат как FFT3DFilter?

О: FFT3DGPU(mode=1,precision=2) подобно FFT3DFilter(), но пожалуйста заметьте, что bw,ow,bh,ow имеют другие значение по умолчанию.

В: Какие ещё существуют различия между FFT3DFilterи FFT3DGPU?

О: Некоторые параметры из FFT3DFilterдо сих пор отсутствуют.

В: Почему FFT3DGPUмедленнее по сравнению с FFT3DFilter?

О: Или у вас медленная графическая карта подобно GeForce FX 5200, или Вы не сильно используете CPU, например тяжелый кодек (подобно XviD/DivX)

В: Как мне использовать NVPerfHUD?

О: Установите NVperf=true и используя командную строку или создав ярлык для запуска:
"Путь к NVPerfHUD\NVPerfHUD.exe" "Путь к VIRTUALDUBMOD\virtualdubmod.exe" "Путь к AVS\test.avs"
и включите (разрешите) "force NON PURE device"

В: Я получаю сообщение об ошибке: "Only pixelshader 2.0 or greater supported"

О: Это потому, что Вам нужна графическая плата с аппаратной поддержкой DirectX 9.

Следующие видеокарты не поддерживаются:

Nvidia:
TNT
TNT2
GeForce 256
GeForce2 Ultra, Ti, Pro,MX,Go and GTS
GeForce3 Ti 200, Ti 500
GeForce4 Ti, MX, Go

ATI:
Radeon 7xxx
Radeon 8xxx
Radeon 90xx
Radeon 92xx

Matrox:
G2xx
G4xx
G5xx
может быть Parhelia

А эти должны работать:

Nvidia:
GeForce FX 5xxx
GeForce 6xxx
GeForce 7xxx

ATI:
Radeon 9500
Radeon 9550
Radeon 9600
Radeon 9700
Radeon 9800
Radeon Xxxx

где x - любая цифра.

Поддержка:

В этой ветке на форуме doom9 или мой email адрес (tsp (coбaкa) person.dk).

Планы на будущее:

Чересстрочное видео, YUY2, поддержка нескольких сигм и (может быть) поддержка метода образца шума. Устранение всех глупых ошибок. Снова добавить версию для DirectX 9.0b.

История изменений:

Исходный текст, документация и перевод выпущены под лицензией GPL, смотри copying.txt

$English Date: 2006/06/11 17:25:07 $
Русский перевод 26.12.2005-08.06.2006 AI