Этот плагин для Avisynth реализует надежный детектор повторяющихся кадров. Изначально он был создан как тестовая площадка для нового алгоритма дифференцирования кадров, но, чтобы сделать его своего рода более применимым фильтром, были реализованы возможности копирования и смешивания, в соответствии с чем цепочка кадров, каждый из которых имеет допороговое различие с первым кадром цепочки, будет заменен цепочкой кадров идентичных последнему кадру рассматриваемой цепочки. Используется последний кадр вместо первого, потому что часто первый кадр после смены сцены имеет больше засоряющих артефактов, и т.п. Если включена опция смешивания, заменяющий кадр будет сгенерирован из смеси всех дубликатов в цепочке (полезно для шумоподавления).
Это предназначено для использования в клипах, имеющих значительное число кадров повторяющихся содержания, которые однако различаются из-за шума. Типично, аниме имеет много таких повторений. Заменой шумных дубликатов точными повторениями, может быть достигнуто понижение величины потока. Это халява. ('Marc FD' реализовал эту функциональность копирования первый.) Дополнительно, если включена опция смешивания, достигается существенное шумоподавление для повторяющихся кадров.
Некоторые детекторы повторений неспособны адаптироваться к изменениям уровней яркости в различных сценах клипа, и крайне подвержены влиянию шума. Они имеют непростые абсолютные пороги которые должны быть заданы пользователем. Данный фильтр пытается решить все эти проблемы.
Dup использует небольшое окно, которое пробегает по кадру сканируя его, так что он способен замечать очень малые изменения. Эффект шума уменьшается посредством автоматического сокращения через процесс суммирования. Несовпадение кадров нормализуется в область 0-100% что-бы сделать установку порога более интуитивной.
Фильтр принимает как YUY2 так и YV12 входы. Он ещё не оптимизирован по скорости, оптимизация будет включена в следующей версии.
Эта версия Dup требует Avisynth 2.5 и выше. Есть устаревшая версия Dup для использования с версией Avisynth 2.0x.
Dup использует именованные параметры. Это значит вы не должны беспокоится о порядке параметров и просто можете ссылаться на них по имени и располагать их в любом порядке в списке параметров. Если вы опустите параметр, его значение будет взято по умолчанию. Для примера, если вы желаете запустить Dup с определением уровня повторений в 5% и с включенной отладкой, вы можете просто сказать:
Dup(threshold=5,debug=true)
Допустима любая комбинация и порядок именованных параметров. Помните однако, что вы должны всегда использовать пустые скобки, если вы не задаёте никаких параметров.
Если вам не нравятся предопределения параметров описанные ниже, вы можете установить свои собственные стандартные значения по умолчанию. Для переопределения значний по умолчанию, сперва создайте директорию плагинов Avisynth и зарегистрируйте её. Вы регистрируете её добавлением следующих строк в текстовый файл, называемый 'plugin.reg', изменяя путь на соответствующий, и затем правым кликом на иконке файла с выбором Merge (Слияние).
REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\AviSynth] "plugindir2_5"="d:\\avisynthplugins"
Затем, создайте файлы предопределений как требуется в директории плагинов. К примеру, чтобы установить значение по умолчанию blend=true для Dup(), создайте файл называемый Dup.def и поместите в него эту строку:
blend=true
Вы можете перечислить так много присвоений параметров, как вам нравится, один на строку. Не указанные, приобретают значения данные ниже. Конечно, вы всегда можете переопределить значения по умолчанию в ваших скриптах, когда вы вызываете функции.
ЗАМЕЧАНИЕ: Строки в файле предопределений не должны содержать никаких пробелов или табуляций.
Далее синтаксис для Dup (замените parameter_list вашим списком именованых параметров разделённых запятой):
Dup(parameter_list)
threshold (0.0-100.0, по умолчанию 3.0): Этот параметр определяет процент изменения в наиболее отличающемся окне 32x32 пиксела, которое достаточно для определения кадра как повторения. Верно думать об этом как: если порог установлен (скажем) 7%, то если все области 32x32 пиксела изменяется меньше 7%, то это дубликат, иначе - нет. Используйте опцию show для отображения значения отличия кадра в помощь установке порога если вы предпочитаете что-то иное, нежели значение по умолчанию.
Вы всегда должны устанавливать ваш порог выше уровня шума клипа. Насколько выше зависит от того, как много дубликатов вы хотите сгенерировать, т.е. от желаемого понижения величины потока. Для определения уровня шума, изучите кадры и разыщите те, которые имеют повторяющееся содержимое, хотя и с вызванной шумом разницей. Вы можете найти, что кадры с повторяющимся содержимым показывают величину высотой в несколько процентов (из-за шума). Определите наивысшую величину, которую вы получите для повторяющегося содержимого. Затем установите ваш порог выше этого уровня с таким запасом, которые вы желаете для достижения необходимого понижения величины потока.
chroma (true/false, по умолчанию true): Установить chroma= false для исключения цвета из дифференциации кадров.
show (true/false, по умолчанию false): Когда установлено в true, информация накладывается на верхний левый угол кадра. Когда copy=false, область 32x32 пиксела с наибольшей разницей в сравнении с такой-же областью следующего кадра помечается белым квадратом, и величина различия отображается. Если квадрат имеет X через него, кадр был определен дубликатом в соответствии с настройкой процентной разности (порогом). Когда copy=true, квадрат не отображается. Текстовая информация скажет вам какие кадры сдублированы и с какого кадра источника.
copy (true/false, по умолчанию true): Если эта опция установлена в true, определённые дубликаты будут заменены единственной копией. Если есть цепочка дубликатов, последний кадр в цепочке используется для всех копий. Если blend=true, кадры копии будут сгенерированы смешением вместе всех дубликатов в цепочке.
maxcopies (1-20, по умолчанию 20): Определяет максимальное число копий, которые могут быть выделены из определенных повторений. Однако, если входной поток имеет больше, чем максимальное значение повторений в цепочке, то, конечно, они все будут выведены. Это ограничение только заставляет текущую повторяющуюся последовательность закончиться; сравнение начнется повторно со следующего кадра.
blend (true/false, по умолчанию false): Если эта опция установлена в true, то поведение copy будет модифицировано, так что вместо использования последнего кадра цепочки повторов, кадр будет создан и использован из смешения всех дубликатов цепочки. Это полезно для шумоподавления. Эта опция требует copy=true. Также обратите внимание, что смешанный кадр генерируется когда происходит обращение к первому кадру цепочки. Поэтому случайный доступ в середину цепочки не вызовет смешения. Воспроизводите клип начиная прямо со стартовой точки для правильности операции.
debug (true/false, по умолчанию false): Этот параметр включает отладочный вывод в утилиту DebugView. Эта утилита может быть скачана с сайта указанного выше.
$English Date: 2004/08/13 21:57:25 $
Русский перевод 27.07.2005 mitra [email protected]
Редакция 23.04.2006 Fizick http://bag.hotmail.ru