Как сделать деинтерлейсинг видео
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).
Как сделать деинтерлейсинг видео
Бесплатная техническая библиотека:
▪ Все статьи А-Я
▪ Энциклопедия радиоэлектроники и электротехники
▪ Новости науки и техники
▪ Журналы, книги, сборники
▪ Архив статей и поиск
▪ Схемы, сервис-мануалы
▪ Электронные справочники
▪ Инструкции по эксплуатации
▪ Голосования
▪ Ваши истории из жизни
▪ На досуге
▪ Случайные статьи
▪ Отзывы о сайте
Техническая документация:
▪ Схемы и сервис-мануалы
▪ Книги, журналы, сборники
▪ Справочники
▪ Параметры радиодеталей
▪ Прошивки
▪ Инструкции по эксплуатации
▪ Энциклопедия радиоэлектроники и электротехники
Бесплатный архив статей
(200000 статей в Архиве)
Алфавитный указатель статей в книгах и журналах
Бонусы:
▪ Ваши истории
▪ Загадки для взрослых и детей
▪ Знаете ли Вы, что.
▪ Зрительные иллюзии
▪ Веселые задачки
▪ Каталог Вивасан
▪ Палиндромы
▪ Сборка кубика Рубика
▪ Форумы
▪ Карта сайта
Дизайн и поддержка:
Александр Кузнецов
Техническое обеспечение:
Михаил Булах
Программирование:
Данил Мончукин
Маркетинг:
Татьяна Анастасьева
При использовании материалов сайта обязательна ссылка на https://www.diagram.com.ua
сделано в Украине
Интерлейсинг и как с ним бороться
Из этого материала вы узнаете о том, что такое интерлейсинг видео, зачем он нужен, а так же получите начальные сведения о том, как достичь максимально качественного результата в создании собственного фильма. В примерах в качестве программы монтажа рассматривается Sony Vegas.
В особо запущенных случаях после монтажа и кодирования видео может превратиться даже в нечто подобное:
Что такое интерлейсинг?
Даже если схема работы интерлейсинга пока до конца не понятна, важно знать, что в интерлейсном формате работает все телевидение в России. В таком же формате работает и ваша видеокамера (иначе она бы стоила несколько тысяч долларов, и вы бы вряд ли стали читать этот материал). Компьютерные видеокарты и мониторы, наоборот, работают только в прогрессивном режиме, из-за чего на них и возникают «полоски».
Чтобы понять, для чего нужен интерлейсинг, проведем небольшой экскурс в историю.
Откуда пошел интерлейсинг?
Интерлейсинг берет свое начало во времена появления первых телевизоров с электронно-лучевыми трубками (ЭЛТ). Он был нужен для того, чтобы телевизоры показывали качественную картинку, а мерцание экрана было не заметно. Несмотря на то, что сегодняшние электронно-лучевые трубки вполне способны отображать прогрессивную картинку (пример: ЭЛТ-мониторы для компьютеров), все равно все телевизоры с электронно-лучевой трубкой, а также большинство бытовых проигрывателей DVD и игровые приставки работают с интерлейсингом.
Важно заметить, что даже формат телевидения высокого разрешения Full HD 1080i работает с интерлейсингом. Почему? Потому что никто бы не купил телевизор, изображение на котором «тормозит» по сравнению с тем, к которому он привыкал на протяжении всей его жизни. А создать доступную по цене технику, которая могла бы снимать и воспроизводить 50 кадров в секунду в разрешении 1920×1080, пока невозможно. Современные LCD-панели и плазменные телевизоры могут воспроизводить прогрессивную картинку, однако большая часть населения, по крайней в ближайшие несколько лет, не будет в массовом порядке менять свои телевизоры на новые.
Таким образом, мы подошли к первому важному выводу материала: для проигрывания на любой бытовой технике видео с интерлейсингом подходит лучше, чем без него. Это обязательно нужно учитывать при работе над фильмом.
Зачем нужно прогрессивное видео?
Если интерлейсинг так хорош, зачем вообще нужно прогрессивное видео? Как уже говорилось выше, компьютерные мониторы работают только с прогрессивной разверткой. Любое видео, записанное в режиме интерлейсинга и проигрываемое на компьютере, преобразовывается в прогрессивное с помощью операции де-интерлейсинга или воспроизводится с неприятным эффектом «гребенки», например, таким:
Это кадр из видео, в котором оранжевый овал движется по экрану слева направо. В дальнейшем для примеров мы будем использовать именно его.
Самым оптимальным вариантом, конечно, является изначальная съемка в прогрессивном формате. При таком раскладе во время монтажа не возникнет проблем, да и конвертация в интерлейсный формат не составит труда. Но на рынке нет видеокамер по доступной цене, способных вести подобную запись (стоимость самых «доступных» моделей колеблется в районе двух тысяч долларов). По-этому большинству кинолюбителей придется делать де-интерлейсинг.
Как правильно проводить де-интерлейсинг?
Мы подошли к главной части материала: как же можно преобразовать интерлейсное видео, чтобы его качество было наилучшим? Ответ очевиден: нужно свести количество любых преобразований к минимуму. Так как бытовые камеры снимают в интерлейсном режиме, для проигрывания на телевизоре преобразовывать его не нужно. Однако монтировать-то свой фильм вы будете на компьютере, да и наверняка захотите показать его людям через интернет, а значит здесь потребуется прогрессивный режим. Как же быть?
На самой ранней стадии создания фильма необходимо принять решение, будет ли оно проигрываться на телевизоре или будет сугубо онлайново-компьютерным зрелищем. В принципе, сконвертированное из интерлейсного в прогрессивное видео можно будет потом сконвертировать снова, однако его качество (прежде всего плавность, но на самом деле не только она) будет заметно хуже. При этом учтите, что даже если вы запишете прогрессивный DVD, обычный DVD-плеер, подключенный к телевизору, будет конвертировать видео в интерлейс автоматически.
Если вам не важно, как будет выглядеть видео на экране телевизора, можно прямо в программе видеомонтажа установить такие настройки, которые будут делать де-интерлейс на лету. Вот, например, как это делается в Sony Vegas:
Нужно зайти в окно свойств проекта через меню File > Project Properties и на первой вкладке (Video) установить Field Order: «None (Progressive scan)» (выделено красным). Затем ниже необходимо установить метод де-интерлейсинга. Для этого в том же окне чуть ниже изменяем параметр Deinterlace method (выделено зеленым). В том, чем отличаются методы, мы сейчас разберемся.
Важно убедиться в том, что в окне свойств проекта также установлены правильные настройки, подходящие для вашей камеры. По умолчанию в Вегасе установлены настройки для американского стандарта NTSC! Поэтому сразу после установки Вегаса меняйте параметры проекта на европейский PAL!
Как вы можете заметить, Вегас предлагает два метода де-интерлейсинга: Blend fields [Объединение полей] и Interpolate fields [Интерполяция полей]. Существуют и другие методы де-интерлейсинга, которые можно применять с использованием сторонних программных продуктов, однако для большинства фильмов подойдет один из стандартных методов.
Метод объединения полей, Blend fields, теоретически предназначен для видео с не слишком активным движением. В этом методе два соседних полукадра объединяются в один, в результате чего получается прогрессивная картинка с почти сохраненным разрешением по вертикали. Однако при таком раскладе в моментах с быстрым движением за объектами появляется неприятный полупрозрачный шлейф:
Избежать шлейфа позволяет метод интерполяциии, Interpolate Fields. В нем каждый нечетный полукадр просто удаляется, а оставшиеся 25 полукадров растягиваются по вертикали до полного разрешения. Минусы такого подхода очевидны: вертикальное разрешение падает в два раза, в результате чего на контурах контрастных объектов становится заметна «лесенка»:
Здесь важно, чтобы при проведении интерполяции вы сразу же установили уменьшенный размер кадра. Уменьшение картинки из уже готового «большого» видео, прошедшего через интерполяцию, даст меньшее качество.
Смотрите другие статьи раздела Искусство видео.
Читайте и пишите полезные комментарии к этой статье.
Как сделать деинтерлейсинг видео
Дмитрий Смирнов (djnewman).
5 сентября 2011 года.
Kdenlive. Перевод видео из интерлейса в прогрессив.
Ссылка: http://mediaediting.narod.ru/lin/kdenlive_5_from_i_to..
Kdenlive прекрасно работает и с интерлейсом (черезстрочной развёрткой), и с прогрессивом (построчной).
А что делать, если нам надо убрать черезстрочную «гребёнку» интерлейса?
Давайте разбираться как это сделать.
Нужно сразу оговориться, что при монтаже в «эффектах» нет специального фильтра деинтерлейса.
Так же нужно сказать, что при рендере проекта в видеофайл есть простенький фильт деинтерлейса, но качество его работы не всегда может понравиться.
Исходя из этого есть несколько вариантов устранения «гребёнки».
1. В avidemux заранее подготовить ваше видео, наложив фильтр деинтерлейса (их там много с разными алгоритмами). Затем срендерить это видео в видеофайл с кодеком без потерь (Huffyuv, mjpeg, FFV1, DV), а затем открыть его в KDENLIVE.
Способ рационален, если вы импортируете в проект с прогрессивом (25р) небольшое колличество видеофайлов с интерлейсом (25i).
2. Если вы используете большое колличество видеофайлов с интерлейсом, но хотите вывести весь ваш проект в прогрессив, в настройках вашего профиля проекта нужно отметить галочкой пункт «Progressive» или создать отдельный профиль для вашего проекта.
Вот пример переделанного профиля DV/DVD PAL:
Описание: DV/DVD PAL 25p
Размер: 720х576
Частота кадров: 25/1
Пропорции пикселя: 16/15
Отображать пропорции: 4/3
Progressive отмечен галочкой.
Хитрость тут в том, что при рендере вашего проекта в видеофайл автоматически на клипы с интерлейсом будет наложен фильтр «деинтерлейс» (как я понял это стандартный фильтр ffmpeg, используется метод деинтерлейса по-умолчанию, комманда «deinterlace»), что в свою очередь уберёт «гребёнку».
Но следует понимать, что стандартный фильтр денитерлейса использует простой алгоритм смешивания верхнего и нижнего полей, что не всегда хорошо смотрится. Поэтому если вас не устроило качество этого фильтра, можно сделать весь проект в профиле с выключеным «Progressive», отрендерить в отдельный файл с кодеком без потерь (например Huffyuv, mjpeg, FFV1, DV, MPEG4 I-frames, x264 I-frames), а затем открыть его в Avidemux для наложения более качетвенного фильтра deinterlace (например, Yadif).
3. В KDENLIVE встроены функции перекодировки аудио и видеоклипов, импортированных в окно «Дерево проекта», из одного формата в другой. Вот и воспользуемся этой замечательной штукой.
Принцип работы перекодировщика описан в предыдущей статье на примере работы с форматом AVCHD (http://mediaediting.narod.ru/lin/kdenlive_4_avchd.html)
Пример моего профиля:
Благодоря этому дейтвию вы также сможете заранее перевести видеоклипы в прогрессив.
Перекодируем эти видеоклипы в прогрессив и открываем их в «Дереве проекта», а исходник если не нужен можно удалить из проекта.
Деинтерлейсинг интерполяцией, лёгкий строб
А что такое камера, NLE?
Итак, начнём с того, что ответ на свой вопрос на форуме я не нашёл, хоть и искал старательно. Предпологаемые решения перечислю ниже.
Ситуация: занимаюсь съёмкой скейтбординга (экстрим спорт), камера Canon HFS 100, съёмка на автомате, выдержка устанавливается 1/100. Режим 50i. Монтажка Vegas.
Проблема: Наблюдается лёгкий строб (не такой, как от перепутанных полей) при выводе проекта в HD 720p (1280*720). Деинтерлейсинг делаю интерполяцию, т.к. при смешивании двоение раздразжаёт. Такой же строб возникает при программном деинтерлейсинге этой же интерполяцией интерлейсного HD видео в проигрывателе
Строб возникает не всегда, а только в тех случаях, где идёт быстрое движение по горизонтали. Ну это и так ясно.
Строб уменьшается, когда:
Под конец добавлю, смотрел видео 720p, 30 кадров. Строб заметен, но не так, как у меня. Не на всех сценах, и намного мягче. Чтобы не говорили, что глаз не может различить 25 и 30.
У меня HDV 1080i показывают нормально (т.е. без тормозов и с преобразованием в 50p «налету») следующие программы:
Power DVD
Nero ShowTime
Media Player Classic
В чем проблема? Вы на чем вообще хотите все это смотреть.
А что такое камера, NLE?
Pereves, Видео будет смотреть большое количество людей и хочется оставить HD с максимальной совместимостью. Напрягает один момент. KM Плеер стоит у многих знакомых, кто будет смотреть, но версии с сайта (не сборки) не просто не делают деинтерлейс, они вообще не могут интерлейсное hd воспроизвести. Непонятно почему.
Я тут почитал споры аля «Прогрессив vs Интерлейс», глаза чуть на лоб не вылезли от количества мнений. Т.е. кто-то не заметит строба вообще, а у кого-то глаза болеть начнут. Ужас.
Подержал камеру в руках
Кое-что умею, кое-чему еще учусь.
и хочется оставить HD с максимальной совместимостью
Что именно подразумевается? Чтобы смотрелось на бОльшем числе компьютеров? Тогда больше шансов у MPEG2 сжатия. О чем Pereves и говорил.
А что такое камера, NLE?
и хочется оставить HD с максимальной совместимостью
Что именно подразумевается? Чтобы смотрелось на бОльшем числе компьютеров? Тогда больше шансов у MPEG2 сжатия. О чем Pereves и говорил.
Любитель радиоактивных роллов
Многие не видят разницы между 25i и 25p и делают, например, компьютерную графику для ТВ в таком вот диком стробе, без полей и без motion-blurа. И ладно, когда дело было в SD, но в HD это выглядит просто чудовищно.
Я не хочу ничего подобного сказать про вас, но посмотреть бы кусочек вашего «проблемного» видео. До и после.
А что такое камера, NLE?
Научил друга включать камеру
А что такое камера, NLE?
Pereves, скачал поглядел. Была конечно идейка с дорисовыванием кадров, как у вас, до 50 и делать 50p, но так же артефакты вылезают при перекрещивании движущихся объектов, хотя мало кто это увидит.
Научил друга включать камеру
А что такое камера, NLE?
Допустимо? Я уже снимал и делал замедление из 50i и из 25p. И в курсе, что допустимо, а что нет ) Зачем мне объяснять про какой-то синемоде, если проблема зависит не от камеры? =) Зачем мне говорить про прогрессив, если он в моей камере фиктивный? Я рад, что вы делаете всё правильно, но мне надо убрать СТРОБ. Кроме того я делаю версию и для ТВ, а им надо интерлейс. Прочитал в соседней ветке, что нужен Премьер и Magic Bullet, в нём есть чудо фильтр =)
Теперь нужны 2 вещи:
1. Волшебный фильтр деинтерлейса, который волшебным образом уберёт строб
Тут 50p попробовал из 50i сделать. Впринципе пойдёт. хз
Научил друга включать камеру
Была конечно идейка с дорисовыванием кадров, как у вас, до 50 и делать 50p, но так же артефакты вылезают при перекрещивании движущихся объектов, хотя мало кто это увидит.
Да не будет там никаких артефактов. И никакого «перекрещивания объектов» не будет.
Научил друга включать камеру
Ни одна камера реально не дает «полного» разрешения, то есть стлько строк, сколько их в матрице. Ни одна.
Так что терять то, чего нет, в общем-то не очень страшно.
Кстати, телевизор (хоть кинескопный, хоть плоский) тоже при просмотре малость жульничает. Так что и сравнивать будет не с чем.
Научил друга включать камеру
А что такое камера, NLE?
Дело даже не в том, что строб есть или его нет, а в том, что в одном видео под названием Debacle, которое снято с выдержками от 1/100 и короче в качестве 720p строб менее заметен, чем у меня. Там есть быстрые движения и кадры очень чёткие, и строб не заметен.
Сегодня снова попробовал снять с выдержкой 1/50, результат не устраивает.
Я тут немного подумал, а что если строб зависит от динамического диапазона камеры? Если строб больше заметен при перемещении толстых контрастных объектов, а с ростом ДД тёмные предметы прорисовываются больше, то и строб уменьшится?
А что такое камера, NLE?
Да я уж потихоньку разобрался в проблеме, т.к. пообщался с владельцем FX7, который снимает скейтбординг. Он мне доходчиво объяснил, что если я кино снимать буду, то 1/50 мне хватит, а вот если я буду снимать спорт, то тут кроме 3 матричной камеры (причём лучше NTSC) мне ничего не поможет. Высокий ДД с 30 fps против низкого ДД с 25 fps %)
Однако пора менять технику ) Всем спасибо.
Научил друга включать камеру
-Ни одна камера реально не дает «полного» разрешения, то есть стлько строк, сколько их в матрице. Ни одна.
-Так что терять то, чего нет, в общем-то не очень страшно.
— Кстати, телевизор (хоть кинескопный, хоть плоский) тоже при просмотре малость жульничает.
А тож! Ограничения в реальных технологиях никто не отменял. Это правильно?
Потом понял, что дело только в размере телека и скорости двигающихся объектов
А что такое камера, NLE?
С этим «высказыванием» абсолютно не согласен!
Научил друга включать камеру
«Я эти 13 страниц перечитал уже пару раз ещё до создания темы. Пресловутый Моушен Блур мне не подходит.»
Да я вам там целый фильм скинул в пример
А что такое камера, NLE?
Пригодился совет, называется «Научись снимать» =)
Блур не потянет, всё размыто.
Высокая выдержка не потянет, аналогично. Можно попробовать 1/75. Но в моей камере это сделать можно будет только подбирая каждый раз диафрагму.
Меньше панорам (собственно они и стробят), конечно можно с натяжкой. получим статичное красивое кино. А снимали спорт =)
Меньше поперечного движения в кадре. Будем стараться совмещать движение со статикой.
Меньше движущихся вытянутых контрастных тёмных объектов, это ещё куча мороки. и т.д.
Не по детски? Да пожалуйста. с цифрами.
Научил друга включать камеру
А что такое камера, NLE?
Научил друга включать камеру