ДеинтерлейсингЕсли вы откроете записанный с IPTV файл, а все движущиеся объекты в нём «обросли» тонкими горизонтальными полосками:
(http://a.imageshack.us/img706/3350/interlaced.jpg)
то значит, вы имеете дело с чресстрочным видео.
В кинофильмах мы имеем дело с кадрами, которые целиком сменяют друг друга. Такое видео называется последовательным
(progressive). Вот пример:
(http://a.imageshack.us/img199/6601/0cinema.gif) (http://a.imageshack.us/img824/8301/0cinema.png)
В то время как на телевидении вместо кадров
(frames) используются так называемые «полукадры»
(fields), которые сменяются в два раза чаще, а сами представляют из себя строки кадра, взятые через одну (в нечётных полукадрах только нечётные строки, в чётных — только чётные; или наоборот). Это называется чресстрочной развёрткой
(interlacing), а само видео — чресстрочным
(interlaced):
(http://a.imageshack.us/img256/4815/1television.gif) (http://a.imageshack.us/img594/7324/1television.png)
Телевизоры с электорннолучевой трубкой (кроме самых новых с большим экраном) работают именно в таком режиме. Это придумали на заре телевидения, когда это имело какой-то технический смысл. Сейчас же от этой чресстрочной развёртки одни проблемы. Все ЖК-экраны (а также ЭЛТ-мониторы и последние модели больших ЭЛТ-телевизоров) могут выводить только последовательное изображение, а для вывода чресстрочного, его приходится подвергать трудоёмкой процедуре деинтерлейсинга
(deinterlacing), которая к тому же никогда не даёт идеального результата. В ЖК-телевизорах деинтерлейсинг производится аппаратно, на компьютерах — чаще всего программно при воспроизведении.
Если по телеканалу показывают кино, то деинтерлейсинг обычно не нужен, так как изображение последовательное. Если же это новости, спорт или другие телепередачи, то, скорее, всего, деинтерлейсинг понадобится.
В вашем случае пережатия потока IPTV для хранения и просмотра на компьютере лучше произвести деинтерлейсинг до сжатия: будет и качественнее, и лучше сожмётся.
Когда вы открываете чресстрочный файл в программе видеообработки, полукадры в нём просто объединены в кадры, что выглядит как бахрома у движущихся объектов. Такой способ получения кадров из полукадров (его называют
weave) совершенно непригоден для просмотра и обработки. Он используется просто чтобы были кадры:
(http://a.imageshack.us/img62/2265/2weave.gif) (http://a.imageshack.us/img405/9045/2weave.png)
Часто применяются ещё два простых, но некачественных метода деинтерлейсинга:
blend — сливание полукадров вертикальным размытием, в результате которого частота смены изображений понижается в 2 раза, чёткость картинки пропадает, и движущиеся предметы двоятся:
(http://a.imageshack.us/img101/4712/3blend.gif) (http://a.imageshack.us/img443/7236/3blend.png)
и
bob — интерполяция полукадров, в результате которой чёткость опять же теряется, да ещё и всё прыгает (особенно заметно на неподвижных горизонтальных линиях):
(http://a.imageshack.us/img815/4028/4bob.gif) (http://a.imageshack.us/img534/1038/4bob.png)
Более «умные» методы деинтерлейсинга (напр,
"DGbob" или
"Yadif") размывают только движущиеся объекты и делают это аккуратно, что даёт весьма приемлемый результат:
(http://a.imageshack.us/img155/4545/5yadif.gif) (http://img843.imageshack.us/img843/7866/5yadif.png)
Профессионалы используют навороченные деинтерлейсеры с компенсацией движений, дающие почти идеальную картинку.
(Идеальная:
(http://a.imageshack.us/img245/2015/6ideal.gif) (http://a.imageshack.us/img7/3927/6ideal.png)
)
Правда все деинтерлейсеры с компенсацией движений, которые мне попадались, были очень некачественными и оставляли много артефактов.
Я пользуюсь в основном Yadif'ом.
Деинтерлейсеры типа Yadif, могут сохранять оригинальную частоту смены изображения, делая из каждого полукадра кадр. Я как любитель плавного движения (http://lingvoforum.net/index.php/topic,23124.0.html) всегда использую это, несмотря на необходимость увеличения битрейта (размера сжатого файла) раза в полтора. Но большинству людей плевать на плавность, и они выбирают режим, берущий кадры через один (частота кадров получается как в кино), тем самым более эффективно сжимая видео.
_______________________________
В программе AviDemux производить деинтерлейсинг очень просто (сначала надо убедиться, что он вообще нужен — если нет «бахромы» при движении, то ничего делать и не надо):
Надо войти в видеофильтры и выбрать в разделе Interlacing желаемый метод.
Например, можно выбрать Yadif. Если в параметрах выбрать «Temporal & spacial check», частота кадров будет в два раза меньше частоты полукадров; если выбрать «Bob, temporal & spacial check», то она будет равна частоте полукадров (плавные движения).
Второй параметр — Field order — уточняет, с какого полукадра начинается файл — с верхнего (нечётные строки) или с нижнего (чётные). Обычно бывает с верхнего (Top field first), но может встретиться и обратная ситуация.
Фильтр деинтерлейсинга обязательно должен стоять перед остальными фильтрами, кроме, возможно, обрезки. По крайней мере перед resize'ом, иначе будет жуть.
Таким образом, порядок фильтров такой:
— Crop
— Yadif
— Resize
_______________________________
Для справки: Стандартные частоты кадров.
Стандарт | Частота кадров | Частота полукадров |
Кино | 24 Гц | — |
ТВ: PAL и SECAM (СССР, Европа, Азия, Африка, ...) | 25 Гц | 50 Гц |
ТВ: NTSC (США, Япония, канада, ...) | 30000/1001 (≈29,970) Гц | 60000/1001 (≈59,940) Гц |
Кино для просмотра в NTSC | 24000/1001 (≈23,976) Гц | 60000/1001 (≈59,940) Гц |
(В последнем случае применяется так называемый
telecine — это когда 2 кинокадра запихивают в 5 телевизионных полукадров. Для получения из этого исходных кинокадров вместо деинтерлейсинга надо применить процедуру IVTC.)