Что такое interlaced png

Video rip. Часть 2-1. Что такое interlace и с чем его едят

Содержание

В этой статье мы узнаем что такое interlace, deinterlace, telecine, pulldown, ivtc и как всё это вместе нам усложняет жизнь.

Все видео-сигналы можно разделить на две категории: interlaced и progressive.

Interlace, по нашему чересстрочная развёртка, как метод, была придумана Львом Сергеевичем Терменом в 1927 году. Суть её заключается в том, что ТВ кадр состоит из нескольких сотен строк. Строки отображаются на экране не одна за другой, а через одну, таким образом разделяя кадр на два полукадра. Таким образом изображение на телевизоре обновляется со скоростью 50 (PAL) или 60 (NTSC) полукадров в секунду. Поле, которое начинается с нечётной строки называется нечётным или верхним, соответственно, другое, чётным или нижним. Благодаря этому методу мы получаем на экране телевизора изображение хорошего качества без увеличения полосы пропускания (а также проблемы при рипе).

Progressive это видео без чересстрочности. Его мы обсуждать не будем потому, что никаких необходимых преобразований над ним проводить не требуется.

Избавление от чересстрочности называют deinterlace. Делать это надо потому, что на экране компьютера, например, видео с чересстрочностью будет восприниматься как видео с помехами, с такой неприятной взгляду «гребёнкой».

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Существует два фактора которые могут нам помешать от неё избавиться.

Во первых, если видео записывается камерой сразу в PAL или NTSC стандартах вещания, то два полукадра идущие друг за другом вместе не представляют собой один кадр. Промежуток между двумя полукадрами составляет 1/50 (PAL) или 1/60(NTSC) секунды. Это означает, что просто так их нам не соединить.

Во вторых, нам будет мешать процедура telecine. Она применяется для преобразования из 24 FPS (стандартное количество кадров в секунду для фильмов снятых на плёнке) в PAL или NTSC. Telecine состоит из двух слов television и cinema. Вообще говоря обычно под telecine подразумевают дублирование некоторых кадров или т.н. pulldown.

Итоги

Видео бывает изначально чересстрочное и подвергнутое telecine. Также стоит помнить, что помимо описанных методов telecine встречаются разные другие, встречаются битые файлы и вообще много чего встречается. В таких случаях сложно дать однозначный совет, надо применять смекалку. Я надеюсь что все те приёмы и инструменты, о которых пойдёт речь в дальнейшем, вам в этом помогут.

Источник

Оптимизация PNG и JPEG без потери качества. Часть 1

Введение

И так, как же происходит оптимизация? Давайте разберемся по порядку, в основном это происходит из-за нескольких причин, и сейчас мы их рассмотрим.

Non-interlaced или Interlaced
ColorType и BitDepth

PNG RGB + alpha — 17 853 байт

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

PNG Palette — 13 446 байт

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Разница в размере — 4407 байт (24%), при этом визуально картинки не изменились. Если Вы видите разные изображение, то это оптический обман.

PNG 4-bit — 6 253 байт

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

PNG 8-bit — 5 921 байт

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Разница в размере — 332 байт (5,3%), при этом визуально картинки не изменились. Если Вы видите разные изображение, то это оптический обман.

Обе технологии поддерживают почти все редакторы изображений, которые умеют сохранять в PNG, но об этом знают мало людей, и по этому разработчикам программ-оптимизаторов PNG приходится об этом заботиться.

Chunks

Если кто в танке не в курсе, PNG состоит из Chunks. Писать, что это такое Chunks не буду, можете сами прочитать. Лучше я покажу, для этого есть программа — TweakPNG, возьмите любое изображение формата PNG и откройте через данную программу и увидите всю структуру PNG.

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Есть еще программы наподобие TweakPNG, но она лучшая и удобная. Об остальных программах расскажу в заключении.

Оптимизация палитры

Может быть реализована только в PNG Palette, технология основана на оптимизации chunks PLTE, может уменьшить размер изображения, хотя и не намного. На мой взгляд лучше все это технология реализована в Color Quantizer, один из его алгоритмов был реализован и в TruePNG.

Оптимизация альфа-канала

Оригинальное изображение. Размер — 214 903 байт.

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png
Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png
Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png
Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png
Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png
Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png
Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Алгоритм сжатия Deflate + Фильтрация строк

Как мы же говорили, PNG состоит из Chunks, в данном случае, нас интересует Chunks — IDAT. Для его сжатия в основном играют два фактора, фильтрация строк и алгоритм сжатия Deflate. Давайте об этом поговорим поподробнее.

Фильтрация строк
Алгоритм сжатия Deflate

На сегодняшний день есть несколько библиотек, основанных на алгоритме сжатия Deflate:

Библиотека
Deflate
Скорость
работы
Степень
сжатия
ПрограммыПримечание
ZlibВысокаяНизкаяTruePNG
OptiPNG
PNGWolf
Благодаря высокой скорости работы может быстро перебрать большое количество значение параметров и выбрать оптимальные.
7-zipСредняяСредняяAdfDef
PNGWolf
Не всегда выбранные значения параметров в Zlib являются для них оптимальными (близки к оптимальным). Перебор значений параметров будет занимать большое количество времени и почти всегда затраченное время не оправдывает полученный результат.
KzipНизкаяВысокаяPNGOut

PNGWolf использет одновременно и Zlib, и 7-zip.

Важно: все эти программы дополняют друг друга, и они сильны, когда едины. Это самое большая проблема, когда их используют отдельно, а потом сравнивают полученные результаты. В первую очередь надо использовать Zlib, а потом уже 7-zip и/или Kzip.

В следующей части мы поговорим об этих программах поподробнее, а также построим три алгоритма оптимизации PNG (с учетом оптимизации альфа-канала) по степени сжатия и затраченного времени. Ниже приведен условный график зависимости степени сжатия от затраченного времени на оптимизацию Chunks IDAT.

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Как видно из графика, чем больше степень сжатия, тем больше времени требуется.

И еще немного.

Итак мы переходим к JPEG, здесь все гораздо проще, и так продолжим. Но перед этим скажу, что JPEG нельзя пересохранить не потеряв качество, даже со степенью качеством 100 (это не максимальное качество, а математический предел оптимизации). Рассмотрим следующий пример (чтобы было честно, изображения были оптимизированы по одному и тому же алгоритму).

Оригинальное изображение — 52 917 байт.

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Новое изображение (сохранен через Adobe Photoshop CS5, Save for Web 100) — 53 767 байт

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Строим diff-разницу изображений.

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Вот так вот сильно изменилась картинки, да, визуально ничего не заметно. Как видно размер картинки увеличился. Это из-за специфики библиотеки, которая создает JPEG, о библиотеках поговорим чуть позже.

Есть только одна программа, которая позволяет пересохранить изображения в JPEG не потеряв качество — BetterJPEG (есть плагин к Adobe Photoshop). Если не ошибаюсь, для жителей стран СНГ для некоммерческого использования программа бесплатная. Лично я использую BetterJPEG, когда нет исходника и требуется незначительное редактирование изображения. Рассмотрим пример работы BetterJPEG.

Оригинальное изображение.
Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png
Новое изображение (усложняем ситуацию, добавляем надпись «HTML»).
Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png
Строим diff-разницу изображений.

Что такое interlaced png. Смотреть фото Что такое interlaced png. Смотреть картинку Что такое interlaced png. Картинка про Что такое interlaced png. Фото Что такое interlaced png

Markers

JPEG в отличие от PNG состоит из маркеров. Рекомендую прочитать статью «Структура файла, маркеры», также рекомендую вообще посмотреть сам сайт. Самая мощная программа по изучению структуры JPEG — JPEGsnoop. Есть еще программы, но о них расскажу в заключении. Для изучения структуры JPEG рекомендую следующее изображение — PhotoME.
Удаления некоторых маркеров (APP0-APP15, COM), может существенно уменьшить размер изображения. Мне больше всего для этого нравится программа — Jhead, наиболее простая и удобная.

Progressive и Optimized
Библиотека создания JPEG

Сказать какая из двух библиотек оптимизирует лучше, вопрос очень сложный и не однозначный, но из-за очень высокой скорости работы JPEGTran, Вы просто не замечаете его работу, только не забывайте проверять размер изображения, увеличился или нет, Все это можно сделать и через bat. Помните, JPEGTran может переводить JPEG из Progressive в Optimized и наоборот, не изменяя саму картинку.

Заключение

Это конечно все причины, но наиболее существенные. Почти со всеми авторами приведенных программа я общался, и все они очень талантливые люди. Хотел отдельно поблагодарить x128 за огромную помощь в изучении оптимизации изображений.

Источник

Video rip. Часть 2-3. Избавление от обычной чересстрочности (deinterlace)

Содержание

Первое, что надо сделать — выкинуть из головы идею воспользоваться фильтром deinterlace из VirtualDub. Я знаю, это непросто, но необходимо. Всё дело в том, что после обработки этим фильтром (с некоторыми настройками) на видео появляются паразитные изображения, например т.н. ghost effect. Выглядит он примерно вот так или вот так. Это ужасно.

Скриншоты для примеров я делал с видео, которым со мной поделился madnut.

Избавляться от чересстрочности мы будем при помощи плагинов для AviSynth. Придумано их много, поэтому все возможные упомянуты не будут. Если забыл ваш любимый — не сердитесь. Подчеркну, что в этой статье не рассматриваются плагины для удаления pulldown и IVTC. О них — потом.

Также, напомню, что в случае обычной чересстрочности сделать видео прогрессивным без потерь качества — не получится.

Для начала требуется установить правильный порядок появления полей. Top Field First (TFF) или Bottom Field First(BFF). Для этого в AviSynth существуют две команды AssumeTFF или AssumeBFF. Как это сделать хорошо написано здесь. Также, это показывает DGMpgDec. Также, вам в этом может помочь MeGUI. Как? Читайте предыдущую часть, только вместо Source type смотрите на поле Field order.

В результате у вас будет нечто такое:

Перейдём непосредственно к фильтрам.

Это даже не название конкретного плагина, а название целой техники «Bob deinterlacing». Суть её в том, что частота кадров — удвояется, используя поля в качестве кадров. Одновременно с этим восстанавливаются недостающие строки в каждом поле при помощи интерполяции или дублирования. Минусы вытекают из удвоения частоты кадров — более ресурсоёмкое декодирование и увеличение размера видеопотока.

Считается лучшим методом, если судить только по выходному качеству.

Для применения «Bob deinterlacing» добавьте в конец скрипта команду Bob. В результате получится:

DirectShowSource(«00581.mts»)
AssumeTFF()
Bob()

Название — аббревиатура от Yet Another DeInterlacing Filter. Этот фильтр был портирован для AviSynth Михаэлем Ниедермауэром (Michael Niedermayer). Он проверяет пикселы предыдущего, текущего и следующего кадра для восстановления полей посредством локального адаптивного метода (edge-directed interpolation) и использует spatial check для предотвращения появления большинства артефактов. Подробное объяснение алгоритма здесь.

Один из самых простых в использовании фильтров. У меня версия 0.9.

На вход принимает 4 параметра:

DirectShowSource(«00581.mts»)
AssumeTFF()
Yadif(0)

или, что тоже самое,

DirectShowSource(«00581.mts»)
AssumeTFF()
Yadif()

Какой из методов использовать? Используйте — 0, если вы не знаете, что вам нужны другие.

Этот плагин посложнее. Имеет кучу всяких параметров для тонкой подстройки. Использовать его, впрочем, достаточно просто.

DirectShowSource(«00581.mts»)
AssumeTFF()
SmoothDeinterlace()

Можно добавлять разные настройки, например, doublerate — удвоение частоты кадров.

DirectShowSource(«00581.mts»)
AssumeTFF()
SmoothDeinterlace(doublerate=true)

TomsMoComp.dll – это фильтр деинтерлейса, использующий компенсацию движения и адаптивную обработку. Он работает с различной скоростью в зависимости от параметра SearchEffort, который в данной версии варьируется от 0 (просто чуть более качественный BOB-деинтерлейс) до 30 (слишком большой объём вычислений для современных компьютеров). Из этого диапазона реально используется несколько значений (в данной версии 0,1,3,5,9,11,13,15,19,21,max), если задать другое значение, то используется ближайшее из перечисленных. Значения свыше 15 пока ещё не очень тщательно тестировались и, вероятно, их следует избегать.

Собственно, не добавить и не убавить.

DirectShowSource(«00581.mts»)
AssumeTFF()
TomsMoComp(-1, 1, 0)

Параметр SearchEffort — второй.

Скриншоты для SearchEffort = 1, 30.

На этом, пожалуй, остановлюсь. Какой фильтр использовать, спросите вы? А я отвечу — не знаю. Выбор фильтра сродни спорам о выборе кодека или операционной системы. Пробуйте. Какой вам кажется лучшим — тот и используйте. Если всё же вас раздирают сомнения, то пробуйте сначала YADIF, потом TomsMoComp и если ни один из этих не подошёл SmoothDeinterlace. Чистый Bob используйте в том случае, если вы точно уверены в необходимости его использования.

Разговор был бы неполным без легендарного скрипта MVBob, считается лучшим в своём роде. О нём лучше прочитать всё, что найдётся на doom9.
Если кто-то хочет попробовать, то вот не очень свежая сборка (зато всё в комплекте).

А как же TDeint? На мой взгляд, его можно в ряд с вышеперечисленными ставить.

TDeint — это двунаправленый, компенсированный по движению (резкостный) удалитель чересстрочности (деинтерлейсер). Он также может адаптивно выбирать между использованием адаптации к движению по целым полям и по пикселам. Может использовать кубическую интерполяцию, ядерную (матричную) интерполяцию (с переключением временнОго направления), или одну из двух форм модифицированой краевой адаптивной (ELA) интерполяции, которая помогает уменьшить «зубчатые» края в движущихся областях, где интерполяция должна использоваться. TDeint также поддерживает ручную коррекцию пользователем через специальный входной файл и может работать как интеллектуальный преобразователь полей в полноформатный кадр (bobber) или удалитель черестрочности с сохранением исходной частоты кадров, а также как пост-обработчик обратного преобразования телекино (IVTC).

Источник

Video rip. Часть 2-3. Избавление от обычной чересстрочности (deinterlace)

Содержание

Первое, что надо сделать — выкинуть из головы идею воспользоваться фильтром deinterlace из VirtualDub. Я знаю, это непросто, но необходимо. Всё дело в том, что после обработки этим фильтром (с некоторыми настройками) на видео появляются паразитные изображения, например т.н. ghost effect. Выглядит он примерно вот так или вот так. Это ужасно.

Скриншоты для примеров я делал с видео, которым со мной поделился madnut.

Избавляться от чересстрочности мы будем при помощи плагинов для AviSynth. Придумано их много, поэтому все возможные упомянуты не будут. Если забыл ваш любимый — не сердитесь. Подчеркну, что в этой статье не рассматриваются плагины для удаления pulldown и IVTC. О них — потом.

Также, напомню, что в случае обычной чересстрочности сделать видео прогрессивным без потерь качества — не получится.

Для начала требуется установить правильный порядок появления полей. Top Field First (TFF) или Bottom Field First(BFF). Для этого в AviSynth существуют две команды AssumeTFF или AssumeBFF. Как это сделать хорошо написано здесь. Также, это показывает DGMpgDec. Также, вам в этом может помочь MeGUI. Как? Читайте предыдущую часть, только вместо Source type смотрите на поле Field order.

В результате у вас будет нечто такое:

Перейдём непосредственно к фильтрам.

Это даже не название конкретного плагина, а название целой техники «Bob deinterlacing». Суть её в том, что частота кадров — удвояется, используя поля в качестве кадров. Одновременно с этим восстанавливаются недостающие строки в каждом поле при помощи интерполяции или дублирования. Минусы вытекают из удвоения частоты кадров — более ресурсоёмкое декодирование и увеличение размера видеопотока.

Считается лучшим методом, если судить только по выходному качеству.

Для применения «Bob deinterlacing» добавьте в конец скрипта команду Bob. В результате получится:

DirectShowSource(«00581.mts»)
AssumeTFF()
Bob()

Название — аббревиатура от Yet Another DeInterlacing Filter. Этот фильтр был портирован для AviSynth Михаэлем Ниедермауэром (Michael Niedermayer). Он проверяет пикселы предыдущего, текущего и следующего кадра для восстановления полей посредством локального адаптивного метода (edge-directed interpolation) и использует spatial check для предотвращения появления большинства артефактов. Подробное объяснение алгоритма здесь.

Один из самых простых в использовании фильтров. У меня версия 0.9.

На вход принимает 4 параметра:

DirectShowSource(«00581.mts»)
AssumeTFF()
Yadif(0)

или, что тоже самое,

DirectShowSource(«00581.mts»)
AssumeTFF()
Yadif()

Какой из методов использовать? Используйте — 0, если вы не знаете, что вам нужны другие.

Этот плагин посложнее. Имеет кучу всяких параметров для тонкой подстройки. Использовать его, впрочем, достаточно просто.

DirectShowSource(«00581.mts»)
AssumeTFF()
SmoothDeinterlace()

Можно добавлять разные настройки, например, doublerate — удвоение частоты кадров.

DirectShowSource(«00581.mts»)
AssumeTFF()
SmoothDeinterlace(doublerate=true)

TomsMoComp.dll – это фильтр деинтерлейса, использующий компенсацию движения и адаптивную обработку. Он работает с различной скоростью в зависимости от параметра SearchEffort, который в данной версии варьируется от 0 (просто чуть более качественный BOB-деинтерлейс) до 30 (слишком большой объём вычислений для современных компьютеров). Из этого диапазона реально используется несколько значений (в данной версии 0,1,3,5,9,11,13,15,19,21,max), если задать другое значение, то используется ближайшее из перечисленных. Значения свыше 15 пока ещё не очень тщательно тестировались и, вероятно, их следует избегать.

Собственно, не добавить и не убавить.

DirectShowSource(«00581.mts»)
AssumeTFF()
TomsMoComp(-1, 1, 0)

Параметр SearchEffort — второй.

Скриншоты для SearchEffort = 1, 30.

На этом, пожалуй, остановлюсь. Какой фильтр использовать, спросите вы? А я отвечу — не знаю. Выбор фильтра сродни спорам о выборе кодека или операционной системы. Пробуйте. Какой вам кажется лучшим — тот и используйте. Если всё же вас раздирают сомнения, то пробуйте сначала YADIF, потом TomsMoComp и если ни один из этих не подошёл SmoothDeinterlace. Чистый Bob используйте в том случае, если вы точно уверены в необходимости его использования.

Разговор был бы неполным без легендарного скрипта MVBob, считается лучшим в своём роде. О нём лучше прочитать всё, что найдётся на doom9.
Если кто-то хочет попробовать, то вот не очень свежая сборка (зато всё в комплекте).

А как же TDeint? На мой взгляд, его можно в ряд с вышеперечисленными ставить.

TDeint — это двунаправленый, компенсированный по движению (резкостный) удалитель чересстрочности (деинтерлейсер). Он также может адаптивно выбирать между использованием адаптации к движению по целым полям и по пикселам. Может использовать кубическую интерполяцию, ядерную (матричную) интерполяцию (с переключением временнОго направления), или одну из двух форм модифицированой краевой адаптивной (ELA) интерполяции, которая помогает уменьшить «зубчатые» края в движущихся областях, где интерполяция должна использоваться. TDeint также поддерживает ручную коррекцию пользователем через специальный входной файл и может работать как интеллектуальный преобразователь полей в полноформатный кадр (bobber) или удалитель черестрочности с сохранением исходной частоты кадров, а также как пост-обработчик обратного преобразования телекино (IVTC).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *