Показать сообщение отдельно
Старый 30.07.2008, 15:06   #9
Polad
Кинооператор
Медаль пользователю. ЗОЛОТО Любитель
Аватар для Polad
Регистрация: 30.03.2007
Адрес: Тридевятое царство
Сообщения: 267
Репутация: 41
9. Коррекция яркости и цвета

В AviSynth есть несколько способов коррекции цвета (встроенные фильтры Levels, Tweak, ColorYUV и некоторые другие). Наиболее мощным является ColorYUV (пожалуй, он перегружен числом режимов). Усиление, смещение, гамма и контраст могут быть установлена для каждого яркостного или цветового канала Y,U,V. Просто меняйте значения соответствующих параметров, обновляйте изображение (F5 в VirtualDubMod) и наблюдайте результат. Однако часто визуального контроля недостаточно. В функции ColorYUV имеется очень полезный режим Analyze=true для анализа максимума и минимума каналов и вывода чисел на кадр.
#Пример скрипта 9
# Анализ и коррекция яркости (можно и цвета)
AviSource("film.avi")
ColorYUV(gain_y=10, off_y=0, gamma_y=0, cont_y=0) # яркости
ColorYUV(analyze=true) # анализ результата
Естественно, после настройки яркости строчку с анализом надо убрать или закомментировать.
Если диапазон YUV так широк, а нужен безопасный для телевидения, его можно сузить специальной командой ColorYUV(levels="PC->TV"), а если превышения небольшие, лучше подрегулировать усиление, смещение, гамму, или контраст перед обрезкой (ограничением). Обратите внимание, что анализ выдает не только абсолютные максимум и минимум, но и нестрогий (loose) максимум и минимум, за значения которых выходит очень небольшое число точек (часто случайных, краевых). Часто можно ими пожертвовать и ограничить, не корректируя остальную картинку.
Во многих DVD и HDTV источниках используется набор коэффициентов преобразования в RGB, слегка отличный от используемого в AviSynth и DivX, и для коррекции этого существует плагин ColorMatrix (разработчики Wilbert Dijkhof и др.) с одноименной функцией (которая может работать автоматически, получая подсказки о цветовой матрице от MPEG2Source через параметр hints).
Коррекцию цвета лучше делать в начале скрипта, но некоторые фильтры (смена размеров, повышение резкости) могут расширить интервал, поэтому при необходимости в конец можно добавить команду Limiter().
Для "запущенных" случаев существует плагин автоматического локального усиления яркости в тенях HDRAGC (разработчик "pavico").