Содержание
- Подготовка DVD
- Обработка видео
- Что такое interlace и с чем его едят
- Как определить что у нас: progressive, interlaced или telecined?
- Избавление от обычной чересстрочности (deinterlace)
- IVTC
- Сжимаем и запаковываем
С момента публикования предыдущей части прошло уже много времени, но у меня всё как-то не получалось сесть за продолжение. Связано это с тем, что тема IVTC для меня такая размытая, что даже страшно приступать, но, вот, сегодня выдался день безделья и я решил — пора.
Что такое telecine и зачем оно нужно можно освежить в памяти прочитав одну из предыдущих частей. IVTC это InVerse TeleCine, т.е. избавление от этой оказии.
Собственно, видео с обычной чересстрочностью в моей практике встречалось очень редко, практически всегда там был pulldown. Учитывая, количество типов pulldown (а также возможных ошибок, которые могут быть допущены при преобразовании или каких-нибудь «хаков») избавление от него становится занятием, я бы сказал, интуитивным.
Да, если всё сделано качественно, то достаточно взять плагинчик для AviSynth, немножечко покрутить настройки и получить на выходе хороший результат, но вот если что-то пойдёт не так, то кодирование превратится в ад с использованием сразу нескольких плагинов, причём для разных кусков видео их будет разный набор.
Впрочем, не буду снова вас запугивать. Давайте посмотрим какие инструменты у нас есть.
Общий алгоритм работы всех плагинов для IVTC сводится к следующему: сначала производится восстановление progressive кадров, затем по желанию постпроцессинг, который может помочь сделать прогрессивными кадры, котоыре не удалось распознать на первом этапе, а затем производится процедура Decimate для удаления повторяющихся кадров и приведения частоты кадров к некоему стандартному значению.
Decomb
Вот здесь лежит хороший и простой туториал по этому плагину. Не буду всё пересказывать, но вкратце упомяну ключевые моменты для тех кто не в ладах с английским.
1. Сначала, как и в случае с избавлением от чересстрочности, надо установить порядок полей.
DirectShowSource("00581.mts")
AssumeTFF()
2. Затем, надо установить тип pulldown, про который я писал здесь. Какие конкретно цифирки ставить смотрите в документацию, т.к. от версии к версии они могут меняться и дополняться.
DirectShowSource("00581.mts")
AssumeTFF()
Telecide(guide=2)
Я вижу что у вас возник вопрос — «как определить тип pulldown». Ха! Я об этом писал здесь, но на самом деле всё это фигня. :( Достоверно тип определить можно только просматривая видео вручную покадрово. А то, что пишут программки по ссылке можно использовать только как подсказку.
А ещё, в Telecide можно передать параметр show=true и открыть в плеере или в VirtualDub и оно будет поверх видео выводить вам статистику. Оригинальный файл, конечно же, не меняется.
DirectShowSource("00581.mts")
AssumeTFF()
Telecide(guide=1,post=0,show=true)
Выглядит это примерно вот так.
Тут же, в Telecide, настраивается постобработка.
DirectShowSource("00581.mts")
AssumeTFF()
Telecide(guide=1,post=2,vthresh=30)
3. И, последнее, надо избавиться от лишних кадров. Учтите, что если у вас PAL видео, то Decimate делать не надо.
DirectShowSource("00581.mts")
AssumeTFF()
Telecide(guide=1,post=2,vthresh=30)
Decimate()
По моему опыту Decomb плохо работает на hybrid видео. Это такое видео, которое содержит часть кадров с pulldown, а часть progressive. Так часто кодируют аниме.
Но в этом плагине есть всякие тонкие настройки, покрутив которые, наверняка, можно добиться хорошего результата.
TIVTC
А вот эта штучка мне нравится больше. По количеству настроек их тонкости может посоперничать с Decomb. Я бы даже назвал этот плагин user friendly, если такое вообще можно сказать про AviSynth и его плагины. :)
Как пользоваться этим плагином в тех или иных ситуациях я вам тоже не скажу, отослав к документации, но отмечу отдельные моменты.
Во-первых замечательная поддержка hybrid видео, здесь есть для этого специальная настройка с несколькими уровнями.
Во-вторых, поддержка внешних фильтров постобработки, вы можете даже свой написать и подключить.
В-третьих возможность обработки в два прохода! Это очень крутая возможность. Помимо лучшего качества и увеличения времени обработки, после второго прохода плагин генерирует файл с временными отметками для сбора в матрёшку (mkv). Другими словами вы сможете реализовать переменную частоту кадров.
Тоесть, если в некоторых местах, например, в каких нибудь титрах, идёт несколько повторяющихся кадров, или, что не редкость в аниме, даже во время самого действия есть несколько повторяющихся кадров, то плагин это обнаружит и сделает соответствующую пометку. Иногда, это здорово экономит размер выходного файла или же даёт дополнительный простор для сжатия с более высоким битрейтом.
Приведу пример двух avs файлов.
Первый проход:
LoadPlugin("Plugins\DGDecode.dll")
LoadPlugin("Plugins\tivtc.dll")
mpeg2source("D2V\e01.d2v")
AssumeTFF()
mpeg2source("D2V\e01.d2v")
tfm(d2v="D2V\e01.d2v", output="e01_matches.txt")
tdecimate(mode=4, output="e01_metrics.txt")
Второй проход:
LoadPlugin("Plugins\DGDecode.dll")
LoadPlugin("Plugins\tivtc.dll")
mpeg2source("D2V\e02.d2v")
AssumeTFF()
mpeg2source("D2V\e02.d2v")
tfm(d2v="D2V\e02.d2v", input="e02_matches.txt")
tdecimate(mode=5, hybrid=2, vfrDec=1, input="e02_metrics.txt", tfmIn="e02_matches.txt", mkvOut="e02_tcode.txt")
Видите, во втором случае mkvOut=«e02_tcode.txt»? Это оно и есть. Как воспользоваться расскажу в части про сбор матрёшки.
Больше про TIVTC говорить ничего не буду, потому что лучше чем в документации не скажу. Доки прсто замечательные, всё написано очень понятно. Может быть, когда-нибудь займусь переводом. Кто знает? :)