GetDups  - Выделение уникальных дублированных кадров

Плагин для Avisynth 2.5

Версия 0.5.2 от 6 апреля 2004 года
Copyright (C)2004 Александр Г. Балахнин aka Fizick.
http://bag.hotmail.ru
 

    GetDups - специальный плагин для выделения из клипа уникальных дублированных кадров, то есть он оставляет только кадры, имевшие копии, по одному из последовательной группы.

 Он предназначен для обработки клипа, получаемого при оцифровке любительских 8 мм кинопленок, если использовался метод удаления обтюратора из кинопроектора, и пересъемка велась на малой скорости.

При этом входной клип содержит группы последовательных повторов  кадров (дублей), разделенные переходными смазанными (не похожими) кадрами.

Плагин выделяет и передает на выход один из кадров (обычно второй) из каждой группы одинаковых, и пропускает (не передает на выход) остальные дубли и переходные кадры.

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

первый параметр - входной клип

threshold - порог отличия между полями соседних кадров (реальное, процент от 0.0 до 100.0, default= 7.0)

fade - максимум коррекции общей яркости (default = 10)

chroma - учитывать цветовую информацию (default = false )

tff - порядок полей с первым верхним (default = как Avisynt полагает)

show - режим работы и показа информации о разности соседних кадров
     (0 - обработка, 1 - обработка и информация, 2 - просмотр и информация,   default = 0)

debug - режим вывода отладочной информации для утилиты DebugView (default=false)  

 

   Особенности и ограничения

  

  1. Работает только в цветовых форматах YV12 и YUY2.

  2. Работает с прогрессивными клипами.

  3. Тестирован с Avisynth  2.55.

  4. Произвольный доступ к кадрам не реализован. Плагин правильно работает только при последовательном прогоне кадров, начиная с самого начала, до конца клипа.

  5. GetDups использует метод и код поблочного сравнения кадров, заимствованный из плагина Dup (by Donald Graft/Klaus Post).

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

 

    Простой пример скрипта:

 

Avisource("input.avi")
loadplugin("GetDups.dll")
AssumeTFF()
GetDups()
AssumeFps(16)
#Trim(0,999)

 

    Использование

 

Предназначен для реализации одного из способов оцифровки кинопленок

(не для прямой пересъемки без доработки проектора, не для покадровой оцифровки).

1) Дорабатываем кинопроектор путем удаления обтюратора для отсутствия колебаний яркости;

2) устанавливаем небольшую частоту проекции около 4-6 кадров в секунду;

3) снимаем изображение на устойчиво установленную  видеокамеру и производим оцифровку (видеозахват) в файл;

4) делаем предварительную проверку видео фильтром GetDups в отладочном режиме (show=2),

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

5) делаем обработку в нормальном режиме, записываем результат в выходной файл.

При этом можно задать правильную частоту 16 или 18 кадров в сек командой AssumeFps.

6) удаляем из результата лишние кадры в конце, оставляем только начало.

 

    Дополнительная информация

 

Обсуждение методов оцифровки кинопленок и плагина ведется на форуме ixbt в ветке

"Пара вопросов освоившим покадровый захват с 8мм кинопленки." http://forum.ixbt.com/0029/016088-8.html#234

 

    Лицензия


Данная программа представляет собой свободно распространяемый
программный продукт; вы можете распространять ее далее и\или изменять
на условиях Стандартной публичной лицензии GNU, опубликованной
"Free Software Foundation" -- либо ее версии номер 2, либо (по вашему
выбору) любой более поздней ее версии.
Распространяя данный программный продукт, мы надеемся что он окажется
полезным, но НЕ ДАЕМ НИКАКИХ ГАРАНТИЙ, даже подразумеваемой гарантии
ПРИГОДНОСТИ К КУПЛЕ-ПРОДАЖЕ или ИСПОЛЬЗОВАНИЮ В КОНКРЕТНЫХ ЦЕЛЯХ
(см. "Стандартную публичную лицензию GNU").
Вместе с данной программой вы должны были получить копию "Стандартной
публичной лицензии GNU"; если это не так, напишите в Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

(Суть: Вы можете модифицировать и программу и ее исходный код,
но все модификации должны распространяться на таких же условиях, с исходными кодами, свободно).

Документация распространяется на условиях лицензии CreativeCommons BY-SA 3.0 license.

С благодарностью приму некоторую финансовую поддержку.

    Изменения версий:

Версия 0.1, 2 ноября 2004 -первая публичная. Благодарность Eugen65 за идею фильтра и обсуждение.

Версия 0.2, 3 ноября 2004 - Раздельный анализ полей, коррекция общей яркости, замена параметра Show на целый,
        игнорирование ложных дублей из-за пропущенных при захвате кадров (дропов).

Версия 0.3, 7 ноября 2004 - Непохожесть кадров теперь определяется по одному полю (было по обоим),
    последние лишние кадры теперь копия последнего дубликата.

Версия 0.4, 8 ноября 2004 - Дубликат выбирается по наиболее похожему полю, если обе разницы ниже порога.

Версия 0.5, 8 ноября 2004 - Размер блока сравнения уменьшен до 8 вместо 32.

Версия 0.5.2, 6 апреля 2005 - не публиковалась, выпущена 6 июля 2005 главным образом для исторических целей. Это специальная версия основана на версии 0.5 и содержит мой вклад в версию 0.8 (должна производить тот же результат, что и 0.8 в режиме mode=0): Скорректирован алгоритм для mode=0 - теперь плагин НЕ детектирует кадр как (ложный) дубликат, если малая разница найдена только для хронологически первого поля в кадре, и эта же разница была мала также и на предудущем шаге.


Download GetDups version 0.5.2

 

Возврат на главную страницу