# TTempSmooth

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

Автор: tritical
Версия: 0.9.4
Загрузка: http://bengal.missouri.edu/~kes25c/
Категория: временные сглаживатели (Temporal Smoothers)
Требования:

- Цветовое пространство YV12 или YUY2

Лицензирование: GPL

## Обзор

`TTempSmooth` это адаптивный к движению (он работает только на статичных частях изображения) фильтр временного сглаживания. В настоящее время поддерживаются цветовые форматы YV12 и YUY2. `TTempSmoothF` - более быстрая (40-50%) версия `TTempSmooth`, у которой отсутствуют параметры lmdiff/cmdiff (это эквивалентно запуску `TTempSmooth` с параметрами lmdiff/cmdiff равными или больше чем lthresh-1/cthresh-1).

### Синтаксис:

`TTempSmooth` (clip, int "maxr", int "lthresh", int "cthresh", int "lmdiff", int "cmdiff", int "strength", float "scthresh", bool "fp", int "vis_blur", bool "debug", bool "interlaced", PClip "pfclip")
`TTempSmoothF` (clip, int "maxr", int "lthresh", int "cthresh", float "scthresh", bool "fp", int "vis_blur", bool "debug", bool "interlaced", PClip "pfclip")

### ПАРАМЕТРЫ

maxr - (максимальный временной радиус)

Устанавливает максимальный временной радиус. Между прочим `TTempSmooth` автоматически меняет радиус... Здесь задается максимальная граница. Возможны величины от 1 до 7. При 1 `TTempSmooth` может (максимально) использовать пиксели на удалении 1 кадра от среднего кадра (всего 3 кадра может быть рассмотрено включая текущий кадр). При 7 будет задействованы пиксели на удалении до 7 соседних кадров (всего 15 кадров будет рассмотрено). С проверкой на движение не очень опасно устанавливать большие значения, в основном выбор качество либо скорость. Низкие значения быстрее, в то время как большие величины стремятся создать более стабильную картинку.

по умолчанию = 3 (int)

lthresh/cthresh - (Порог движения яркости и цветности)

Ваши стандартные пороги для яркости и цветности, т.е. на сколько различаются пиксели между кадрами. lthresh для яркости и cthresh для цветности. `TTempSmooth` проверяет 2 межкадровых промежутка от текущего кадра (назад и вперед - прим. ред.), так что можно устанавливать немного большие значения, чем для большинства временных сглаживателей и всё же избегать артефактов. Правильные значения - от 1 до 256. Так же важно то, что пока "mdiff" меньше чем величина порога, то пиксели с большими отличиями от оригинала будут иметь меньший вес в среднем значении. Таким образом, даже с довольно большим порогом пиксели чуть ниже порога не будут иметь большой вес, что помогает уменьшить артефакты.

по умолчанию - lthresh = 4 (int)
cthresh = 5 (int)

lmdiff/cmdiff - (поддерживать различие) - (используется только в `TTempSmooth`, нет в `TTempSmoothF`)

Любые пиксели с различиями менее или равное чем "mdiff" будут смазаны по максимуму. Обычно, чем больше различие со средним пикселем, тем меньше "вес" в усреднении. mdiff заставляет `TTempSmooth` обрабатывать пиксели, имеющие разницу меньшие или равные "mdiff", как будто у них разница равна 0. Другими словами, это отодвигает точку нулевого различия подальше. Установите величину "mdiff" больше и равно чем lthresh-1/cthresh-1, чтобы полностью отключить взвешивание по обратной (1/x - прим. пер.) разнице пикселей. Правильные значения от 0 до 255. lmdiff - для яркости, а cmdiff - для цветности.

по умолчанию - lmdiff = 2 (int)
сmdiff = 3 (int)

strength - (показатель пространственного веса)

`TTempSmooth` использует обратную (1/x - прим. пер.) к расстоянию, чтобы решить, какой вес давать каждой величине пикселя. Параметр strength позволяет вам сместить точку спада дальше от центра, что дает более сильный эффект сглаживания и добавить вес к внешним пикселям. Это делает для пространственного веса то же, что mdiff делает для веса разницы. Возможные варианты:
1 = 0.13 0.14 0.16 0.20 0.25 0.33 0.50 1.00 0.50 0.33 0.25 0.20 0.16 0.14 0.13
2 = 0.14 0.16 0.20 0.25 0.33 0.50 1.00 1.00 1.00 0.50 0.33 0.25 0.20 0.16 0.14
3 = 0.16 0.20 0.25 0.33 0.50 1.00 1.00 1.00 1.00 1.00 0.50 0.33 0.25 0.20 0.16
4 = 0.20 0.25 0.33 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.50 0.33 0.25 0.20
5 = 0.25 0.33 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.50 0.33 0.25
6 = 0.33 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.50 0.33
7 = 0.50 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 0.50
8 = 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
Показаны величины для maxr = 7, при использовании меньшего радиуса, вес вне диапазона просто не будет использоваться. Таким образом, установление величины strength равное maxr+1 или больше делает пространственный вес одинаковый для всех пикселей. В версиях до v0.9.3 всегда использовались весовые значения как для strength = 2.

по умолчанию = 2 (int)

scthresh - (Порог смены сцены)

Стандартный порог изменения сцены - это процент максимально возможного изменения плоскости luma. Хороший диапазон значений между 8 и 15. Используйте опцию debug для выбора, какие кадры были обнаружены как изменение сцены и насколько величина изменяется для каждого кадра. Установите scthresh<=0.0 для отключения обнаружения изменения сцен.

по умолчанию = 12.0 (float)

fp - (усреднение регулярное или фиксированное по количеству)

Установка fp=true будет добавлять вес, не доданный внешним пикселям (из возможного), назад, к центральному пикселю, когда вычисляется финальная величина. Установка fp=false будет просто делать нормальное взвешенное усреднение. fp=true значительно лучше для уменьшения артефактов в подвижных областях и производстве хороших результатов в общем.

по умолчанию = true (bool)

vis_blur - (визуализация размытия)

Эта опция выводит карту, которая показывает какие пиксели будут отфильтрованы и на сколько. Для каждого пикселя она вычисляет, как много веса было дано внешним пикселям (т.е. не центральному пикселю) из максимально возможного веса, который мог бы быть дан внешним пикселям. Затем результат масштабируется в диапазон от 0 до 255, так что в областях, где не было дано веса внешним пикселям, (не производиться ни какого сглаживания) карта будет показана черным, а в областях, где весь возможный вес был дан внешним пикселям (максимальное сглаживание имеет место) карта будет белая. Другими словами, чем темнее величина, тем слабее сглаживание, чем ярче величина, тем больше сглаживание.
Возможные величины:
0 - не показывать карту
1 - карта размытия Y плоскости
2 - карта размытия U плоскости
3 - карта размытия V плоскости

по умолчанию = 0 (int)

debug - (вывод отладочной информации)

Если включено, `TTempSmooth` выводит статистику срабатываний изменения сцен и показывает какие кадры обнаружены как изменение сцены. Это предназначено, чтобы помочь настроить scthresh. Вы можете использовать "DebugView" от sysinternals.

по умолчанию = false (bool)

interlaced - (интерлейсный YV12 ввод)

Установите это в true, если Вы используете `TTempSmooth` для чересстрочного YV12 клипа. В противном случае установите false. Эта настройка имеет эффект только для YV12 и не имеет эффекта на YUY2, потому что чересстрочный YUY2 не нуждается в специальной обработке.

по умолчанию = false (bool)

pfclip - (предварительно фильтрованный клип для разницы между пикселями)

Это позволяет Вам задавать отдельный клип для `TTempSmooth`, чтобы использовать его при расчете разницы между пикселями. Это относится к проверке порогов движения, вычисляющий вес как обратную к разнице между пикселями, и обнаружению изменения сцен. В общем, pfclip будет использоваться, чтобы определять вес усредненной величины, но вес будет применен к оригинальным значениям пикселей. Эта опция подобна "ppClip" в `TBilateral`... Несколько предложений возможных для префильтрации: размытия Гаусса, адаптивные медианы, и т.д...

по умолчанию = NULL (PClip)

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

11/17/2005 v0.9.4
+ Добавлен параметр interlaced (исправляющий некорректную обработку цветности для чересстрочного YV12)
+ Добавлен параметр pfclip
+ Добавлена MMX программа смены сцены (для тех у кого процессор не поддерживает iSSE)
- Изменено значение по умолчанию scthresh на 12.0

07/20/2005 v0.9.3
+ Добавлено обнаружение изменения сцены
+ Добавлена опция визуализации размытия
+ Снова добавлен fp и способ регулярного усреднения (был удален в v0.9.1)
+ Добавлен debug
+ Добавлена опция strength для регулировки пространственного веса
+ Переписан весь код (значительно сократился общий размер исходного кода)
+ 10% увеличения скорости для `TTempSmooth()`
- Заменён maxr вместо maxd, увеличен максимально возможный радиус с 4 до 7 и уменьшен минимально возможный радиус с 2 на 1
- Переименованы некоторые параметры (mdiff=lmdiff, mdiffc=cmdiff)
- Изменены значения по умолчанию lmdiff/cmdiff на 2/3 (было 3/4)

07/29/2004 v0.9.2
- Модифицирован код буферизации, удалены ненужные `BitBlts()` ... небольшое увеличение скорости (5-10%).
- Кадры запрошенные в линейном порядке полностью заполняют буфер.
- Добавлен `TTempSmoothF()`, более быстрая версия `TTempSmooth` (50-75%), которая эквивалентна использованию `TTempSmooth()` с mdiff/mdiffC равными или больше чем LThresh/CThresh. Таким образом нужны только параметры maxd, LThresh, и CThresh.
- Изменены значения по умолчанию, чтобы не быть слишком агрессивными.
- Нет никакого изменения качества, те же настройки производят ту же фильтрацию как в v0.9.1.

06/15/2004 v0.9.1
- Исправлена большая ошибка, которая приводила к неправильному расчету разницы для chroma, что делало фильтр полностью бесполезным.
- Избавился от параметров amount/amountC и fixedPoint. Они были не нужны, т.к. когда amount и fixedPoint = true всегда работало лучше чем false...
- Небольшое увеличение скорости
- Изменены некоторые настройки по умолчанию.

06/11/2004 v0.9
- Первая версия

`$English Date: 2005/07/12 16:11:01 $
Русский перевод 09.05.2006 AI
Редакция 12.05.2006 Fizick http://avisynth.org.ru`