# PeachSmoother

## Общее описание

автор: Lindsey Dubb
версия: 1.0c
закачка: http://www.avisynth.org/warpenterprises/
категория: Пространственно-временные сглаживатели
требования: YUY2 цветовой формат

## Введение

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

Фильтр Peach (переводится как персик, любил автор фрукты - прим.перев.) разработан, чтобы бороться со странностями транслируемого (аналогового) телевидения. Он автоматически подстраивает себя для хорошего или плохого качества сигнала и приема, и может даже приемлемо обращаться с некоторыми видами интерференционных помех. Он замечательный!

Фильтр анализирует изображение, делает выводы о количестве шума в (видео-)картинке, и использует эту оценку, чтобы определить, как удалить этот шум. Чтобы отличить шум от движения, фильтр использует корреляции внутри и между полями, а также локальные различия цвета. Степень определенности о том, движение ли это, шум или детали, используется, чтобы решить, какую смесь предыдущего, текущего и соседнего цветов выдать на выход.

Чтобы использовать Peach, Ваш компьютер должен быть способен выполнять инструкции SSE. По простому, это означает, что Вы должны иметь Pentium 3, Athlon, недавний Celeron, или любой более поздний процессор.

Это фильтр работает в цветовом формате YUY2. Так что если Ваш клип закодирован в цветах RGB, Вы должны сначала обработать его командой ConvertToYUY2().

Фильтр Peach Smoother для AVISynth был написан Lindsey Dubb, copyright 2002. Если Вы имеете вопросы, комментарии, проблемы или предложения, добро пожаловать послать мне письмо или сообщить на Doom9 форум по AVISynth.

## Параметры

NoiseReduction (Подавление шума)
Целое от 1 до 200; 35 по умолчанию

Иногда фильтр не знает, произошло ли изменение изображения из-за шума или движения. Когда это происходит, есть выбор — Предположить движение, и изображение будет шумнее, если Вы ошиблись. Предположить шум, и ошибка размажет движение.

Параметр NoiseReduction позволяет Вам сказать фильтру, как сделать этот выбор. Установите его низким, и компьютер будет действовать безопасно, избегая любых частей изображения, которые могли бы быть в движении. Установите его высоким, и шум будет сильно подавлен — за счет размытия и потери деталей в медленно движущихся областях. Этот выбор зависит от количества шума — чем больше шума на изображении, тем большее размытие будет необходимо, чтобы его снизить.

Нет совершенного способа выбрать его — просто попробуйте разные величины, пока изображение буде выглядит так хорошо, как возможно. Комедии и драмы являются вероятно наилучшим материалом для подбора настроек, так как крупные планы лиц делают любое размытие легко заметным. (Это потому, что мы особенно хорошо видим искажения в лицах.)

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

Однако, есть два вида видео, которое требует некоторого специального рассмотрения: мультфильмы и спорт. Для мультфильмов Вы можете использовать много более высокий NoiseReduction, так как анимация имеет тенденцию иметь менее тонкие детали. А для спорта (или любого другого действия с непрерывным движением), есть очень малая выгода от (этого) шумопонижающего фильтра, так что вы можете просто пропустить его.

Перед тем как точно выставить этот параметр, убедитесь что фильтр способен оценивать шум в Вашем клипе. Чтобы сделать это, воспользуйтесь (параметром) Dot, описанным ниже.

Stability (Стабильность)
Целое от -100 до 100; 20 по умолчанию

Этот параметр говорит фильтру, как сильно смешивать цвета, когда неясно, движение ли это. Чтобы сохранить небольшое количество шума по всему изображению, уменьшите этот параметр. Чтобы получить строго чисто выглядящее изображение, используйте более высокую величину. Не устанавливайте ее слишком высокой, однако, или вы получите плакатность (posterization).

Независимо от Ваший установки Stability, фильтр будет всегда оставлять определенное количество вариации, чтобы поддержать глубину цвета оригинального изображения.

DoSpatial (Делать пространственно)
Логический; TRUE (Да) по умолчанию

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

Spatial (Пространственный)
Целое от 0 до 400; 100 по умолчанию

Определяет, как много использовать пространственного сглаживания. Он измеряется в процентах, относительно к степени временнОго сглаживания. Но Peach предпочитает использовать временное сглаживание где возможно, так что пространственное сглаживание делает взнос, только если временное сглаживание отказывает.

Dot (Точка)
Лочический; FALSE по умолчанию

Это является ... маленькой зеленой точкой!

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

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

Readout (Считывание)
Лочический; FALSE по умолчанию

Чтобы помочь решить, как сильно сглаживать, данный фильтр измеряет шум в видео. Если Вы включите Readout, эти измерения будут показаны на выходе.

Вы увидите два числа. Первое - это мера среднего уровня шума. Второе - это мера наименьшего количества шума, видимого где-нибудь на картинке. Это дает некоторую идею о том, как сильно шум изменяется в видео. Эти оценки будут изменяться по мере прокрутки видео.

Эти числа измеряются как ожидаемое абсолютное изменение единичного пиксела (считая как цветность так и яркость) между двумя последовательными кадрами.

Это дает объективное измерение шума. Это также способ выявить величины для параметров NoiseLevel и Baseline , описанных ниже.

NoiseLevel (Уровень шума) и Baseline (Базисный уровень)
Два параметра — каждый является числом с плавающей точкой от 0.0 до 100.0; Не используется по умолчанию

Вместо того чтобы оценивать уровень шума, Вы можете сказать фильтру Peach конкретно, как много шума есть в картинке.

Чтобы сделать это, выберите величины как для NoiseLevel так и для Baseline. Чтобы получить эти величины, используйте опцию Readout, описанную выше. Заметьте, что Baseline не должен быть больше чем NoiseLevel.

Почему Вы захотели бы указать эти числа? Потому что Peach тратит время, чтобы выявить количество шума. И в редких случаях он может введен в заблуждение. (Это обычно вызывается сценами с облаками тумана и пыли, которые Peach может ошибочно посчитать как шум.) Путем указания величин шума, оценка не будет колебаться. Пропуск оценки шума также сделает обработку немного быстрее.

С другой стороны, некоторое видео не имеет изменения количества шума. В этом случае, Вам будет лучше без обычного детектирования шума фильтром Peach.

ShowMotion (Показать движение)
Логический; FALSE по умолчанию

Еще одна диагностика неопределенности. Если это включено, то фильтр будет чередовать его оценку, произошло ли движение. Белые области являются точно движением, черные области точно стационарны. Серые области есть серые области.

Debug (Отладка)
Логический; FALSE по умолчанию

Эта опция только значима для stout основы. Для объяснения его выхода, смотри комментарии в конце FLT_AdaptiveNoise.c .

## Про Peach

### Насколько сильное понижение шума я должен использовать?

Пусть Ваши глаза будут судьей. Я люблю держать настройки достаточно низкими — Размытые лица выглядят хуже, чем небольшие помехи.

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

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

### Я вижу много размытия в ранних частях моего видео с непрерывным движением (или очень темного). Что я должен сделать, чтобы улучшить результаты?

Если Вы видите много размытия, попытайтесь использовать опцию Dot. Если зеленая точка не показывается, то проблема в том, что Peach не способен выявить, насколько много было шума.

Существует несколько способов решить это. Наилучший - это включить опцию Readout, и наблюдать более позднюю часть этого видео, где картинка неподвижна. Заметьте значения NoiseLevel и Baseline стационарной части. Затем укажите их в команде, и вся последовательность должна выглядеть прекрасно.

Если Ваше видео не содержит никаких стационарных частей, то вы должны просто не использовать этот фильтр. Временной сглаживатель не сделает много хорошего для чисто высоко динамичного материала.

Другой способ решить эту проблему - поместить некоторое неподвижное видео (из того же клипа) в начале последовательности. Это позволит фильтру Peach оценить шум прежде чем покажется быстрый материал.

### Картинка выглядит немного мягкой. Если ли что-то, что я могу сделать с этим?

Попытайтесь снизить параметр Stability.

## Шум вообще

### Каков наилучший способ избавиться от шума?

Удостоверьтесь, что Вы имеете хороший сигнал. Шум может прийти из скруток кабеля, плохих соединений, плохого питания и заземления, плохо сконструированной карты видеовхода, электрических принадлежностей (всего от переключателей света до различных компьютерных компонент) или от плохого видео источника. Эти вопросы за пределами данного файла справки. Я предлагаю заглянуть на Вопросы и Ответы по Домашнему театру и доску форума AV Science Forum , где эти темы обсуждаются подробно.

### Должен ли я использовать фильтр шума?

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

Peach работает правильно с трудным материалом, отключая себя где он регистрирует движение. Это вызывает неожиданно мало проблем со спортом на поле, пока фоновый шум не слишком плох. Но он не совершенен — дорожные гонки особо подвержены размытию. Если это случается, лучше не использовать никаких временных сглаживателей.

В других случаях, воспользоваться фильтром шума вообще стоит.

### Сколько фильтров шума я должен использовать?

Будьте очеь осторожны используя больше одного. Выполнение нескольких временных фильтров шума может вызвать более поздние фильтры иметь чрезмерную уверенность в их оценке шума/движения. Это обычно ведет к плакатности (posterization), пятнистости (speckling), и полосатости (banding).

Выполнение пространственного фильтра после Peach Smoother может еще работать довольно хорошо, так как его пространственное сглаживание весьма слабое — просто будьте уверены не выполнить пространственную фильтрацию первой.

### Где в моем скрипте я должен поместить фильтр шума?

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

С чересстрочным материалом, хорошая идея выполнить данный фильтр пред деинтерлейсом. Это потому, что хорошее подавление шума может здорово улучшить точность деинтерлейсера.

Для обратного телекино ситуация более трудная для суждения. Но как эмпирическое правило, лучше все же выполнить понижение шума первым.

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

### Могут какие-нибудь другие хитрости помочь снижению шума?

Если Вы используете карту на Bt8x8, Вы можете выключить обострение нечетной и четной яркости (Odd and Even Luma Peaking). Включение горизонтального фильтра (Horizontal Filter) карты будет снижать шум, но также потеряет некоторые детали.

## Изменения фильтра

- Версия 0.9a — Начальный выпуск
- Версия 0.9b — Позволил параметрам настраиваться; Другие умолчания; Скорректировал чтобы работать с Y = 16 черным; Дополнительный оранжевый туман (orange smoke)
- Версия 0.9c — Добавил проверку параметров
- Версия 0.9d — Исправил чтобы допустить пространственное сглаживание больше 100%
- Версия 0.9e — Фильтр теперь отключается при прыжке между кадрами
- Версия 0.9f — Фильтр теперь обрабатывает чересстрочный материал корректно; Опция сглаживания перемасштабирована к чему-то более близкому к реальным процентам; Другие умолчания; Еще больше оранжевого тумана
- Версия 0.9g — Разрешил пространственное (но не временнОе) сглаживание при прыжках между кадрами; Выключение пространственного сглаживания теперь улучшает скорость; разрешил предсказание (prefetching) для ускорения; улучшил обработку параметров
- Версия 0.9h — Обеспечил (четкое) экранное считывание количества шума. Разрешил ввод пользователем величин шума. Разрешил пространственное сглаживание первого кадра.
- Версия 1.0a — Улучшил определение количества используемого пространственного сглаживания. Улучшил код горизонтальной корреляции. Улучшил точность считывания оценки шума. Сделал временную цветовую комбинацию ближе к теоретической цели. (Посторонний эффект: Вы можете захотеть снизить Ваш NoiseReduction на примерно 10.) Увеличил роль пространственной корреляции в оценках движения. Изменил имя опции Estimates на Readout.
- Версия 1.0b — Обеспечил показ внутренней оценке движения с опцией ShowMotion. Разрешил отрицательные значения Stability.
- Версия 1.0c — Передвинул readout немного дальше от края экрана.

`$English Date: 2004/08/17 20:31:18 $
Русский перевод 28.07.2005 Fizick http://bag.hotmail.ru`