Предисловие
Общие вопросы:
- Зачем нужно видео на компьютере?
- На каком принципе основана реализация видео на компьютере?
- Как бороться с огромными размерами?
- Какие основные виды сжатия существуют?
- К каким проблемам приводит сжатие видео?
- Как работают и на каких принципах основаны аналоговые видеостандарты?
Вопросы по захвату:
- Что такое видеозахват?
- Какие минимальные требования к системе для видеозахвата?
- В какой формат файла производится видеозахват?
- Как бороться с 2 Гбайтным лимитом AVI?
- Что такое dropped frames (отброшенные кадры)?
- К каким проблемам приводит уменьшение частоты кадров?
- Какие виды сжатия, и для каких целей, надо применять при оцифровке?
- Что такое color format (метод кодирования цвета), luminance (яркость), chrominance (цветность)?
- Какие виды кодирования цвета существуют?
- Почему возникает десинхронизация звука и видео?
- Какие методы борьбы с десинхронизацией звука существуют?
- Что такое interlaced video (чересстрочное видео), field (полукадр), field order (порядок полукадров), scan line effect (эффект «расчески»)?
- Какие способы борьбы с эффектом «расчески» существуют?
- Как влияет эффект «расчески» на сжатие видео?
- В чем различие между захватом телеэфира (антенна), композитного сигнала (VHS) и сигнала S-Video (SVHS, большинство аналоговых и цифровых видеокамер)?
- Есть ли «готовые» настройки для оцифровки видео, поступающего с различных источников?
- Какой софт лучше всего использовать для оцифровки видео?
Вопросы по обработке захваченного видео:
- Какие стадии присутствуют в компьютерной обработке видео?
- Что такое нелинейный видеомонтаж?
- Что такое «фильтры» видео, и когда нужно их применять?
- Чем отличаются форматы MPEG, AVI и ASF?
- Когда следует сжимать видео в MPEG?
- Когда следует сжимать видео в ASF?
- Какие кодеки нельзя использовать в «выходном продукте»?
- Какой кодек (или формат файла) на сегодняшний день дает наилучшее качество видео при минимальном потоке?
- Каким кодеком следует сжимать звуковую дорожку AVI-файла (проблемы с использованием кодека MP3 и одно из возможных решений)?
- Как наиболее дешевым способом вывести обработанное видео обратно на телевизор/видеомагнитофон?
- Каким следует делать разрешение выходного видео?
- Как следует обрабатывать чересстрочное видео?
Предисловие
Все написанное в этом FAQ нацелено на использование в малобюджетной видеообработке. Многие советы могут быть абсолютно неприменимы для случаев полупрофессиональной и профессиональной видеообработки. Поэтому автор заранее просит не посылать ему обличительные письма о том, что надо давно было купить miroVIDEO DC1000 и не заниматься ерундой. Увы, столь дорогая техника пока недоступна большинству пользователей ПК в России, а использовать современные компьютерные методы для улучшения домашнего видеоархива хочется каждому. Именно для этих целей автор приобрел себе дешевый TV Tuner и остался полностью доволен полученным результатом (в особенности соотношениями цена/качество и цена/возможности). В процессе изучения основ цифрового видео автору пришлось столкнуться с проблемой нехватки документации по вопросу малобюджетной видеообработки, и он решил собрать с трудом добытые из разных источников данные и полученный опыт в один документ. Автор искренне надеется, что этот FAQ окажется полезным для начинающих и спасет их от многих ошибок.
Общие вопросы
Зачем нужно видео на компьютере?
Действительно, а что нам дает хранение видеоинформации на компьютере, а не на обычной видеокассете? В основном, цифровое хранение и обработка видео привлекают по двум причинам: во-первых, цифровое видео не «заезжается» от многократных просмотров; во-вторых, элементарно получить копию видеоматериала, абсолютно идентичную оригиналу. Уже этих двух причин достаточно для того, чтобы сохранять свое домашнее видео в цифровом виде.
На каком принципе основана реализация видео на компьютере?
На том же, что и все остальное видео и кино. Кадры последовательно сменяют друг друга 25 раз в секунду (для Pal/Secam), что наш мозг воспринимает как непрерывное движение. Из такого принципа делаем вывод: длинные видеопоследовательности имеют огромные размеры. Так, пусть мы сохраняем видео с размером кадра 352×288, 24 бит на пиксель. Для сохранения хотя бы минуты видео потребуется примерно 435 Мбайт. В этом и есть основная проблема цифрового видео — неимоверная прожорливость по части размера файла.
Как бороться с огромными размерами?
Есть два основных способа борьбы: уменьшение основных параметров видеозахвата и сжатие. Основными параметрами видеозахвата являются: размер кадра, кодировка цвета и частота кадров.
Достаточно часто вводят термин «битрейт». Средний битрейт — это размер видеопоследовательности в битах, отнесенный к его длительности в секундах. Единицей измерения битрейта служит 1 бит/с — 1 бит в секунду (1bps — 1 bit(s)-per-second). Поскольку 1 бит/с — величина очень маленькая в приложении к цифровому видео, также вводятся Килобит/с (Кбит/с) и Мегабит/с (Мбит/с). Для видео из предыдущего вопроса битрейт составляет 58 Мбит/с. Битрейт сжатого видео на VideoCD, имеющего такой же размер кадра и частоту кадров, равен 1,1 Мбит/с.
Какие основные виды сжатия существуют?
Сжатия разделяют на два типа: без потери качества (часто кратко называются «без потерь») и с потерей качества («с потерями»). Разница между этими типами понятна из их названия. Большинство методов сжатия без потери качества не учитывают визуальную похожесть соседних кадров видеопотока. Методы сжатия с потерей качества, наоборот, в большинстве случаев используют эту похожесть. Из-за этого максимальная степень сжатия среднестатистического видеофрагмента, достигаемая алгоритмами без потерь, не превышает 3 к 1, в то время как алгоритмы, работающие с потерей качества, могут сжимать вплоть до 100 к 1.
Довольно часто методы, учитывающие похожесть соседних кадров видеопотока, называют «рекурсивными». В них сохраняются полностью лишь отдельные кадры, называемые ключевыми (иногда, интра) кадрами. Все остальные кадры содержат лишь отличия от предыдущих (иногда они также содержат ссылки на информацию, содержащуюся в последующем кадре).
Методы, сжимающие каждый кадр отдельно от других, называют «раздельными». В видеопоследовательностях, сжатых такими методами, все кадры являются ключевыми.
При сжатии без потери качества чаще всего используются алгоритмы, аналогичные применяемым в файловых архиваторах (ZIP, RAR, LZH). Наиболее сильно сжимают алгоритмы, использующие дискретное преобразование Фурье с сохранением такого количества коэффициентов, которого достаточно для полного восстановления исходной информации.
В методах сжатия с потерей качества также чаще всего применяются алгоритмы, основанные на дискретном преобразовании Фурье, однако количество сохраняемых коэффициентов практически всегда значительно меньше алгоритмов, работающих без потери качества. При сжатии с потерями обычно жестко задают либо степень снижения качества для каждого кадра, либо средний или мгновенный битрейт выходного файла.
К каким проблемам приводит сжатие видео?
Оно приводит к т. н. артефактам. Артефакты — это видимые нарушения качества видеопоследовательности, возникающие в процессе сжатия с потерями. Наиболее часто встречающийся артефакт сжатия — разбиение картинки на квадратные блоки. У «рекурсивных» алгоритмов сжатия также часто наблюдаются «мусор» рядом с контрастными границами и движущимися объектами, а также «волнующиеся» и «расплывшиеся» цвета. Количество и интенсивность артефактов зависит от алгоритма сжатия, отношения выходного битрейта к исходному и характера сжимаемого изображения.
Существуют специальные алгоритмы фильтрации типичных артефактов сжатого видео. Обычно любой проигрыватель сжатого видео включает в себя постобработку декомпрессированного видео такими фильтрами.
Как работают и на каких принципах основаны аналоговые видеостандарты?
Этот вопрос требует фундаментальных знаний в области физики и радиотехники, и поэтому полное и развернутое объяснение в рамки этого FAQ не входит. В значительном упрощении схема работы аналогового кодирования видеосигнала такова: сигнал передается в виде синхронизационной и информационной компонент с применением частичного квантования. Сам сигнал является аналоговым, но его разделяют (квантуют) на линии и кадры. В стандарте PAL (и близком к нему SECAM) предполагается наличие 25 кадров в секунду, каждый из которых содержит 576 строк. Стандарт NTSC предполагает наличие 30 кадров в секунду, каждый из которых содержит 480 строк. Информацию о начале/окончании строк и кадров несет в себе компонента синхронизации. Информационная компонента несет яркостную составляющую (Y), использующуюся в черно-белом телевещании, и две цветовых компоненты (U/V). Во всех системах используется амплитудная модуляция яркостных и цветовых компонент, причем у PAL/SECAM частоты несущих цветовых компонент ниже в два раза, чем у яркостной, а у NTSC — в четыре раза.
Вопросы по захвату
Что такое видеозахват?
Видеозахватом называют процесс преобразования аналогового видео в цифровой вид с последующим его сохранением на цифровом носителе информации. Самый типичный пример видеозахвата — оцифровка телеэфира или VHS кассеты на специально оборудованном ПК.
Какие минимальные требования к системе для видеозахвата?
Во-первых, необходимо устройство видеозахвата, способное поставлять с достаточной скоростью кадры видеопоследовательности в одном из стандартных форматах кодировки цветности. Именно таким устройством является TV Tuner или видеокарта, снабженная видеовходом. Также существуют более дорогие и «продвинутые» устройства, способные сразу сжимать захватываемое видео, однако рассмотрение их выходит за рамки этого FAQ.
Во-вторых, потребуется достаточно быстрый жесткий диск большого объема, способный успевать записывать видео с большим битрейтом. Так, для захвата видео, которое впоследствии предполагается записать на VideoCD (352×288 YUV12), жесткий диск должен быть способен записывать 4 Мбайта/с (не Мбита!). А для захвата видео с наилучшим качеством аналогового телевещания (например, с отдельного DVD проигрывателя по интерфейсу S-Video, или просто с телевизионного эфира) потребуется диск, со скоростью записи более 19 Мбайт/сек.
В-третьих, потребуется действительно быстрый ЦПУ. Особенно если для уменьшения битрейта сжатие видео будет производиться непосредственно во время захвата. Минимально необходимым ЦПУ принято считать Pentium-II 300, тем не менее, «комфортной» работы с захваченным видео сложно добиться на любом процессоре с частотой меньше 550 МГц. Если же для сжатия использовать MPEG4 алгоритмы, то наилучшим выбором станет Athlon 800-900 (и выше) или Pentium 4, показывающие прекрасную производительность в задачах такого рода.
В-четвертых, потребуется как минимум 128 Мбайт ОЗУ, иначе любые нестабильности в скорости сжатия будут весьма пагубно влиять на качество захваченного фрагмента.
В какой формат файла производится видеозахват?
Формат файла зависит от используемого софта. На сегодняшний день наиболее распространены три формата: AVI, MPEG и ASF.
Наиболее часто при захвате используется AVI (Audio-Video Interleaved — формат с перемежающимися блоками аудио- и видеоинформации). Он был разработан Microsoft для хранения и воспроизведения видео в рамках API Video for Windows. По своему устройству этот формат относится к «чанковым»: как и в WAV или MIDI, вся информация упаковывается в заголовки, называемые chunks — чанки. Это позволяет записывать в AVI файл как несжатый, так и подвергнутый любому виду сжатия видеопоток. Основными недостатками AVI являются его неприспособленность к стримингу (streaming) — широковещательной передачи видео в сетях — и ограничение в 2 Гбайта на размер файла. И если неприспособленность к стримингу не оказывает заметного влияния на видеозахват, то ограничение размера может стать серьезным препятствием при захвате без сжатия видео «на лету» или при захвате длительных видеофрагментов.
Формат MPEG (название образовано от Motion Picture Experts Group — группы специалистов по сжатию видеопоследовательностей), в отличие от AVI, подразумевает использование одного из двух стандартных алгоритмов сжатия: MPEG1 и MPEG2. MPEG1 используется для сжатия видео с небольшим размером кадра (менее 288 по вертикали) и битрейтом порядка 1-2 Мбит/с, а MPEG2 — для видео с большим размером кадра (более 288 по вертикали) и битрейтом порядка 5-10 Мбит/с. В качестве основного применения MPEG1 можно назвать формат VideoCD. MPEG2 применяется в цифровом телевещании и на DVD. Ввиду огромных требований к ЦПУ при сжатии в MPEG (особенно в MPEG2), видеозахват непосредственно в этот формат практически не производится.
Формат ASF (Advanced Streaming Format — улучшенный формат для стриминга) был разработан Microsoft, как улучшенная версия AVI, предназначенная для стриминга в сетях c малой пропускной способностью (wide-area networks with small bandwidth). Основное применение этого формата (на сегодняшний момент) — интернет-телевидение и телеконференции. Захват видео в этот формат производится утилитой Windows Media Encoder, доступной для скачивания на сайте Microsoft. Эта утилита также позволяет рекомпрессировать AVI в ASF и производить стриминг захватываемого видео в реальном времени.
Как бороться с 2 Гбайтным лимитом AVI?
Временным решением проблемы может стать уменьшение битрейта видео посредством его сжатия «на лету» во время захвата, или уменьшения основных параметров видеозахвата. Однако в некоторых ситуациях сжатие «на лету» невозможно, также как и ухудшение основных параметров. Поэтому в большинстве программ для захвата видео в AVI файл включается возможность «сегментированного захвата». При таком методе захвата видео записывается в один файл-сегмент до достижения им определенного размера, а после этого создается новый файл-сегмент и процесс повторяется. Стандарта на сегментированный захват не существует, и каждая программа захвата предоставляет собственную реализацию этого метода.
Что такое dropped frames (отброшенные кадры)?
Если в процессе захвата драйверы устройства не смогли по какой-то причине вовремя скопировать очередной кадр из буфера оцифровщика в оперативную память, этот кадр «отбрасывается», так как оцифровщик записывает поверх него в буфер очередной кадр. Это приводит к тому, что в оцифрованном видео появляется «пустой» кадр — кадр, идентичный предшествующему «отброшенному». Если в процессе захвата было много «отброшенных» кадров, то все движения в полученном видеофрагменте будут резкими, «дерганными». Поэтому при видеозахвате стараются добиться отсутствия «отброшенных» кадров.
Основными причинами возникновения «отброшенных» кадров являются: нехватка производительности ЦПУ для сжатия «на лету», нехватка производительности дисковой подсистемы для записи видео с таким битрейтом и плохое качество аналоговых сигналов источника видео. Определить, какая из перечисленных проблем вызвала возникновение «отброшенных» кадров можно таким образом:
- Большинство программ видеозахвата выводят индикатор занятости ЦПУ (если не выводят, то придется запустить системный монитор). Если в процессе захвата ЦПУ постоянно занят на 100%, то переходим ко второму пункту. Иначе заключаем, что «отброшенные» кадры появились из-за плохого качества аналогового сигнала источника видео.
- В некоторых программах захвата есть возможность «тестового» захвата — в таком режиме производится обычный захват и сжатие видео «на лету» выбранным кодеком, однако результат не записывается на диск. Если в этом режиме работы ЦПУ постоянно занят на 100%, то «отброшенные» кадры возникают из-за нехватки производительности ЦПУ для сжатия «на лету». В противном случае не хватает скорости дисковой подсистемы. В качестве эмуляции тестового режима можно использовать виртуальный диск в памяти, созданный драйвером RAMDRIVE.SYS. Если возможности использовать RAMDRIVE нет, придется измерить скорость работы жесткого диска (например, с помощью ZiffDavis WinBench 99), и примерно оценить битрейт захватываемого потока с учетом сжатия «на лету». Если скорости диска хватает для поддержания такого битрейта, то виновата нехватка производительности ЦПУ.
Причиной возникновения «отброшенных» кадров в многозадачных системах также могут стать запущенные параллельно видеозахвату программы. Поэтому видеозахват рекомендуют производить в эксклюзивном (однозадачном) режиме.
В режимах синхронизации потока видео по звуковому потоку также могут возникать «отброшенные» кадры, но их природа отлична от рассмотренных выше, и о них подробнее будет рассказано в вопросе о десинхронизации звука и видео.
К каким проблемам приводит уменьшение частоты кадров?
Во-первых, визуально движения становятся более резкими, «дерганными».
Во-вторых, может возникнуть эффект «дрожания». Как известно, кадр в буфере оцифровщика всегда обновляется с частотой 25 кадров в секунду (30 для NTSC). Уменьшением частоты кадров захваченного видео занимается драйвер устройства. Принцип его достаточно простой: с идентичной заданной нами частотой, устройство видеозахвата генерирует сигналы (аппаратные прерывания), по которым драйвер копирует кадр из буфера оцифровщика и передает его захватывающему софту. Если мы задали не кратную 25 кадрам в секунду частоту, то неизбежно возникнет аналог стробоскопического эффект в физике по оси времени захваченного видео. Проще говоря, захваченное видео будет выглядеть постоянно немного ускоряющимся и замедляющимся. Наиболее заметен этот эффект будет при оцифровке с частотой кадров около 18. Поэтому уменьшать частоту кадров при видеозахвате рекомендуется только в целое число раз. В пересчете на цифры получим соответственно 12,5 кадров в секунду для уменьшения частоты в два раза, и 8,3 для уменьшения в три раза. Уменьшать частоту в большее число раз не имеет смысла ввиду того, что это уже будет «слайд шоу», а не видео.
В-третьих, уменьшение частоты кадров плохо влияет на «рекурсивные» алгоритмы сжатия ввиду увеличения отличий между соседними кадрами. Достаточно часто на практике, при сжатии с применением алгоритмов MPEG4, уменьшение частоты кадров приводит к значительному снижению качества сжатого видео.
Учитывая вышеназванные причины, уменьшать частоту кадров при видеозахвате рекомендуется в последнюю очередь.
Какие виды сжатия и для каких целей надо применять при оцифровке?
При видеозахвате всегда следует учитывать, будут ли производиться последующая обработка захваченного материала фильтрами и нелинейный видеомонтаж. Если будут, то при захвате рекомендуется либо вообще не использовать сжатие «на лету», либо использовать не очень сильное сжатие, основанное на «раздельном» алгоритме. Наиболее популярным видом такого сжатия является Motion JPEG (MJPEG). При сжатии этим методом каждый кадр компрессируется известным алгоритмом JPEG, позволяющим достигнуть степеней сжатия 7:1 без заметных искажений картинки. Такие рекомендации вызваны тем, что сильное сжатие и «рекурсивные» алгоритмы вносят в видеофрагмент очень большое количество «скрытых» артефактов, которые сразу станут заметными при проведении фильтрации или рекомпрессии, производимой после нелинейного видеомонтажа.
Если захватываемый видеофрагмент не предполагается обрабатывать фильтрами или производить нелинейный видеомонтаж, то допускается сильное сжатие «на лету» «рекурсивными» алгоритмами. Тем не менее, все равно лучше сначала производить захват в MJPEG, поскольку это даст возможность более гибко подобрать параметры финального сжатия и получить более качественный выходной продукт.
Что такое color format (метод кодирования цвета), luminance (яркость), chrominance (цветность)?
Color format (метод кодирования цвета) — это стандарт представления цветовой информации об одном пикселе изображения в цифровом виде. Наиболее известными стандартами являются: палитровый метод (указывается индекс цвета в массиве стандартной палитры), RGB представление (указывается интенсивность аддитивных компонент цвета), CMYK (указывается интенсивность субтрактивных компонент цвета), HUE (указываются более понятные человеку тон, насыщенность и чистота цвета).
Достаточно часто также используют метод, при котором информация о пикселе делится на две чести — яркость (luminance, Y) и цветность (chrominance, U/V). Во-первых, такой метод кодирования цвета позволяет получить черно-белую картинку простым отбрасыванием цветности. Во-вторых, известно, что человеческий глаз воспринимает изменения цвета хуже, чем изменения яркости. Поэтому цветность можно сохранять с худшим разрешением, чем яркость, сохраняя видимое качество картинки неизменным. Такой прием используется в аналоговом телевещании и композитном видеосигнале, а также в большинстве методов сжатия (например, MJPEG, MPEG, Intel Indeo). В зарубежной литературе этот прием получил название Chroma Subsampling.
Следует иметь в виду, что цветность достаточно часто называют цветоразностью. В принципе, это немного неправильно, так как цветоразностями называют компоненты цветности (всего их две - U и V). Такое название они получили из-за того, что если они равны нолю, то пиксель будет бесцветным — серым.
Какие виды кодирования цвета существуют?
Проще всего оформить ответ в виде таблицы:
Название | Бит на пиксель | Описание |
RGB32 | 32 | Для каждого пикселя сохраняются значения красной, зеленой и синей компоненты, а также канал прозрачности. На каждый сохраняемый параметр отводится по одному байту. Ввиду отсутствия в захватываемом аналоговом видеосигнале канала прозрачности использование этого вида кодирования цвета при захвате не имеет смысла. Аналогичное качество даст RGB24. |
RGB24 | 24 | Стандартный компьютерный формат TrueColor — для каждого пикселя сохраняются значения всех трех аддитивных компонент цвета. На каждую компоненту отводится по одному байту. Рекомендуется использовать для сохранения отдельных кадров видеопоследовательностей, а также для захвата видео с разрешением по горизонтали менее 512. |
RGB16/ RGB15 | 16/15 | Стандартный компьютерный формат HiColor — для каждого пиксела значения всех трех аддитивных компонент цвета. На каждую компоненту отводится по 5 бит (в RGB16 на зеленую компоненту отводится 6 бит). |
YUY2 UYVY YUYV CYUV YUV422 | 16 | Первый из форматов, использующий Chroma Subsampling. В нем для каждых двух пикселей по горизонтали сохраняются разные значения яркости (Y) и только одно общее значение компонент цветности (U/V). На все три компоненты отводится по одному байту. Итого, на два соседних пикселя приходится два байта яркости и два байта компонент цветности, что дает 16 бит на один пиксель. Благодаря особенностям человеческого глаза, изображение, закодированное таким способом, практически неотличимо от RGB24. Этот формат рекомендуется применять при оцифровке полноформатного телеэфира стандарта PAL/SECAM (768х576), поскольку в нем частоты несущих цветоразностей в два раза меньше частоты несущей яркости. RGB24 для этого случая будет сохранять «излишнюю» информацию о цвете, зря расходуя битрейт. Также YUY2 является входным форматом для большинства кодеков MJPEG, MPEG2, и устаревшего кодека CinePak. YUY2 также часто обозначают такой последовательностью цифр: 4:2:2. Это означает, что для каждых четырех подряд идущих пикселей сохраняются четыре значения яркости (Y), и по два значения для каждой компоненты цветности (U/V). |
YUV12 I420 IYUV YUV420 | 12 | В этом формате значения Y сохраняются для всех пикселей, а U/V объединяются у пикселей, образующих квадраты 2х2. Итого, на четыре пикселя сохраняются четыре байта яркости и два байта цветности, что дает 12 бит на пиксель. Этот формат является входным для сжатия MPEG1. Оцифровку в него можно производить с разрешением по вертикали, меньшим 288, так как из-за объединения пикселей из соседних линий чересстрочное видео подвергнется серьезным искажениям. Цифровое обозначение формата имеет вид 4:2:0. Расшифровки, подобной приведенной для YUY2, у этого обозначения не существует. |
BTYUV Y41P YUV411 | 12 | Для четырех подряд идущих пикселей по горизонтали сохраняются четыре значения Y и общие значения U/V. Благодаря объединению пикселей только одной строки этот формат можно применять при оцифровке чересстрочного видео. Этот формат рекомендуется применять при оцифровке полноформатного телеэфира стандарта NTSC (640×480), поскольку в нем частоты несущих цветоразностей в четыре раза меньше частоты несущей яркости. Точно также, его имеет смысл применять при оцифровке видео с композитных (VHS видеомагнитофоны, игровые приставки) и S-VIDEO (SVHS камеры, SVHS видеомагнитофоны) источников, так как у них частоты несущих цветоразностей примерно в пять раз меньше частоты несущей яркости. Цифровое обозначение формата имеет вид 4:1:1. |
YUV9 YVU9 | 9 | Это формат является наихудшим с точки зрения качества. В нем значения U/V сохраняются для квадрата пикселей 4×4. Яркость сохраняется для каждого пикселя в квадрате. Оцифровывать в этот формат можно видео с размером кадра по вертикали не более 288 — иначе возникнут сильные искажения чересстрочного видео. В качестве входного этот формат используют кодеки серии Intel Indeo. |
Y8 YUV400 Grayscale B&W | 8 | Этот формат не является методом кодирования цвета — в нем сохраняется только яркостная информация о пикселе. Имеет смысл использовать при оцифровке черно-белых видеоматериалов, так как U и V не будут содержать шумов, вызывающих «цветной снег» на черно-белом изображении. |
Почему возникает десинхронизация звука и видео?
Основная причина возникновения эффекта убегания/отставания звука от видео — захват их с разных устройств. Во-первых, как бы ни были точны современные кварцевые генераторы импульсов, но расхождения между конкретными экземплярами по частоте все-таки есть. Они практически незаметны на малых периодах времени, но за двадцать минут захвата из-за расхождений генераторов частот на карте видеозахвата и звуковой карте может набежать секунда разницы. Во-вторых, если во время захвата производится сжатие «на лету», и в какой-то момент кодек был вынужден затребовать все вычислительные мощности процессора для сжатия особо сложной сцены, кроме отброшенных кадров могут возникнуть и отброшенные звуковые данные. Поскольку вместо всех отброшенных кадров в видеопоток будут вставлены «заглушки», а в аудиопоток аналогичные «заглушки» вставить невозможно, звук «убежит» вперед.
Какие методы борьбы с десинхронизацией звука существуют?
Следует разделить эти методы на применяемые во время захвата и после него.
Основной способ борьбы с десинхронизацией звука и видео во время захвата — контроль частоты кадров видеопотока в соответствии с длительностью аудиопотока. Если аудио убегает вперед, то стоит ему убежать на время, большее промежутка между соседними кадрами, как в видеопоток добавляется «лишний» кадр. Если звук отстает, то стоит ему отстать на время, большее промежутка между соседними кадрами, как очередной кадр отбрасывается без вставления заглушки. Эти простые действия гарантируют синхронность потоков в любой ситуации.
Однако описанный метод не лишен недостатков — при нем не сохраняется плавность движений исходного видео, а также может теряться часть видеоинформации. Поэтому лучшим вариантом было бы воздействие на звуковой поток, что невозможно делать во время захвата — отбрасывание кусков или дополнение тишиной звуковой информации неизбежно приведет к слышимым искажениям.
Если захват производился без контроля синхронности по аудиопотоку, то длины захваченных видео- и аудио- потоков не будут совпадать. Для восстановления синхронности потоков можно воспользоваться двумя разными методами:
- Изменить частоту кадров видеопотока так, чтобы его длительность совпала с длительностью аудиопотока. Этот метод прекрасно подходит для случаев, когда оцифрованное видео планируется просматривать только на компьютере. При нем сохраняется плавность движений, и используются все кадры аналогового источника. Но использовать такие файлы для вывода информации на аналоговый видеовыход или для компрессии в стандарты MPEG будет невозможно из-за несоответствия частоты кадров видеопотока стандартным (25 для PAL/SECAM и 30 для NTSC).
- Изменить в звуковом редакторе длительность аудиопотока так, чтобы она совпала с длительностью видеопотока. Для этого потребуется записать звуковой поток в отдельный файл, в звуковом редакторе растянуть/сжать его до длительности видеопотока, и снова слить потоки в один файл.
Когда десинхронизация потоков вызвана отбрасыванием части аудиоинформации, восстановить синхронность гораздо сложнее. Для этого придется разбивать файл на куски, разрезая в местах отбрасывания звука, и для каждого куска вручную подбирать время, на которое необходимо задержать/растянуть/сжать звуковой поток.
Что такое interlaced video (чересстрочное видео), field (полукадр), field order (порядок полукадров), scan line effect (эффект «расчески»)?
В аналоговом видео принято разделять полный кадр на два полукадра (fields), равных ему по ширине и вдвое меньших по высоте. В одном полукадре содержатся нечетные линии кадра (Field A, odd field), в другом — нечетные (Field B, even field). Такое разделение очень удобно для отображения видео на электронно-лучевых трубках телевизоров, использующих чересстрочную (interlaced) развертку. При чересстрочной развертке на экране сначала прочерчиваются все четные линии, а затем — все нечетные. Такой метод позволяет добиться отсутствия видимого мерцания картинки, несмотря на сравнительно медленную скорость ее изменения.
Тот факт, что отображение на экране четных и нечетных полукадров разнесено во времени, позволил повысить видимую частоту кадров - при съемке видеокамера производит захват кадров не 25 раз в секунду, а 50. Из каждого захваченного кадра попеременно отбрасываются четные либо нечетные строки, и полученный полукадр модулируется в аналоговый сигнал. Получается, что четные и нечетные полукадры такого сигнала относятся к разным моментам времени, и при выводе на ЭЛТ с чересстрочной разверткой это позволяет достигнуть большей плавности движений.
Важным понятием является порядок захвата полукадров (field order). В стандартах не оговорено, какой полукадр относится к более раннему моменту времени — четный или нечетный. При редактировании чересстрочного видео с применением изменяющихся во времени эффектов это может привести к неприятным последствиям в виде пульсаций освещенности, дрожании движений и пр. Поэтому в программах обработки видео обычно просят указать полукадр, соответствующий более раннему моменту времени.
Негативными последствиями чересстрочного видео является проблема его вывода на экран с прогрессивной разверткой, при которой отображается весь кадр целиком. Из двух полукадров приходится предварительно собирать один полный кадр, и лишь после этого производить отображение. Но, так как четные и нечетные полукадры такого кадра относятся к разным моментам времени, на границах движущихся предметов неизбежно возникнут не состыковки четных и нечетных линий, видимые в виде «зазубренностей». Этот эффект получил название эффекта «расчески» (scan line effect), ввиду того, что границы предметов при их движении становятся похожи на расческу.
Следует помнить, что все рассматриваемые в этом FAQ источники видео являются чересстрочными (телеэфир, композитный видеосигнал, S-Video сигнал).
Какие способы борьбы с эффектом «расчески» существуют?
Универсального метода борьбы с этим эффектом не существует. Самым простым способом является захват с разрешением по вертикали не превышающим 288 строк для PAL/SECAM или 240 строк для NTSC. При таком захвате будет использоваться информация только из одного полукадра (четного или нечетного, в зависимости от устройства видеозахвата), что исключит возможность возникновения эффекта расчески. Очевидным недостатком этого метода является потеря половины информации о видеосигнале.
Как возможный выход можно производить смешивание соответствующих линий полукадров, и дублирование результата. В этом случае на границах движущихся предметов вместо «зазубрин» возникнет подобие эффекта «motion blur», гораздо лучше выглядящего на дисплее с прогрессивной разверткой. Но для быстро движущихся предметов вместо «motion blur» возникнет эффект «двойного изображения».
Теоретически возможно нормально просматривать чересстрочное видео на прогрессивном дисплее, если программно эмулировать чересстрочный принцип построения картинки с учетом затухания свечения люминофора. Для этого потребуются дисплеи с прогрессивной разверткой порядка 150 Гц. Такие дисплеи уже существуют, однако софта для подобного просмотра пока нет. Остается надеяться, что в ближайшем будущем он появится.
Также, следует отметить, что не рекомендуется производить коррекцию эффекта расчески в случае, если впоследствии предполагается вывод видео на чересстрочные дисплеи.
Как влияет эффект «расчески» на сжатие видео?
Это зависит от используемого алгоритма сжатия. Если кодер знаком с понятием чересстрочного видео, то он перед сжатием разбивает кадр на два полукадра и сжимает их раздельно (так поступают MPEG2 и MJPEG). В противном случае кодер будет сжимать зазубренные края движущихся предметов как множество мелких деталей изображения, что приведет к неразумному расходу битрейта, и неизбежной потере качества. Поэтому, перед таким сжатием необходимо произвести фильтрацию эффекта расчески.
В чем различие между захватом телеэфира (антенна), композитного сигнала (VHS) и сигнала S-Video (SVHS, большинство аналоговых и цифровых видеокамер)?
Основное различие состоит в качестве исходных сигналов. Теоретически, наиболее качественным сигналом является телеэфир. Однако, его хорошее качество возможно только в случае кабельного вещания или в случае размещения принимающей антенны в прямой видимости от передающей башни. На втором месте по качеству идет S-Video сигнал, а наихудшим по качеству является композитный сигнал.
Есть ли «готовые» настройки для оцифровки видео, поступающего с различных источников?
Да, если под «готовыми» настройками подразумевается оцифровка видео с полным сохранением его качества. Вот эти настройки:
Система | Телеэфир | S-Video | Композитный сигнал |
PAL/SECAM | 720×576 YUV422 | 400×576 YUV411 | 360×576 YUV411 |
NTSC | 720×480 YUV411 | 400×480 YUV411 | 360×480 YUV411 |
Какой софт лучше всего использовать для оцифровки видео?
На этот вопрос нельзя дать точного ответа. Все зависит от личных предпочтений. Вполне нормально работают программы, входящие в поставку коммерческих продуктов нелинейного видеомонтажа. Из бесплатного софта упоминания заслуживает программа VirtualDUB. Она позволяет преодолевать ограничение в 2 Гбайта, сжимать и обрабатывать фильтрами видео «на лету» и многое другое. Скачать ее можно с сайта программы
Вопросы по обработке захваченного видео
Какие стадии присутствуют в компьютерной обработке видео?
Обработку видео на компьютере обычно разделяют на три стадии: захват, монтаж и финальное сжатие. Разберем их последовательно.
В первой стадии — захвате — основной целью является оцифровка всех видеофрагментов, необходимых для составления конечного продукта, с максимально возможным качеством. Это исключает из применения при захвате рекурсивные алгоритмы сжатия. На это есть несколько причин: во-первых, эти алгоритмы вносят в изображение невидимые искажения, которые проявляются при обработке фрагментов фильтрами; во-вторых, при использовании таких алгоритмов монтаж без рекомпрессии возможен с точностью до ключевого (интра) кадра; в-третьих, деградация качества видео от сжатия «рекурсивным» методом весьма высока, и даже при однократной рекомпрессии снижение качества бросается в глаза.
Вторая стадия — монтаж — состоит из двух основных процедур. Во-первых, именно на этой стадии производится обработка видео различными фильтрами, а также проверяется и восстанавливается синхронность аудио и видео потоков. Во-вторых, на этой стадии производится нелинейный видеомонтаж оцифрованного материала.
Третья стадия — финальное сжатие — достаточно часто совмещается со второй в качестве ее последнего этапа. На этой стадии смонтированная видеопоследовательность подвергается окончательному сжатию с большим коэффициентом. Смонтированный и сжатый таким образом видеопоток считается окончательным результатом, пригодным для просмотра и помещения в видеоархив.
Что такое нелинейный видеомонтаж?
Нелинейным видеомантаж (НВМ) — это метод редактирования и совмещения нескольких видеоклипов в один финальный продукт, при котором в любой момент времени возможно использование любой части исходного видеоматериала. Самыми известными применениями НВМ являются плавные переходы с различными эффектами между разными видеоклипами, смешение методом «растворения» двух видеоклипов и метод «синего экрана» (замещение всех пикселей одного видеоклипа, имеющих один цвет, соответствующими пикселями другого видеоклипа).
НВМ стал стандартом в области обработки цифрового видео благодаря двум коммерческим программным пакетам: Adobe Premier и Ulead MediaStudio. По своим функциям оба пакета практически равнозначны, и выбор между ними в основном зависит от личных предпочтений.
Что такое «фильтры» видео, и когда нужно их применять?
Фильтры видео — это общее название для программ нанесения различных графических эффектов на кадры видеопотока. Их можно разделить на две основных группы: фильтры постобработки захваченного видео и фильтры нанесения спецэффектов. Для успешного монтажа необходимо знать следующие фильтры (все они относятся к первой группе):
- Brightness (Яркость), Contrast (контрастность), Levels (уровни), Hue (оттенок), Saturation (насыщенность цвета). Эта группа фильтров позволяет скорректировать освещенность и цветность изображения.
- Deinterlace (корректор эффекта «расчески»). Нужен для удаления эффекта расчески при подготовке видео, которое предполагается просматривать на прогрессивном дисплее.
- Blur (размытие), Sharpen (увеличение четкости). Позволяют компенсировать высокочастотный шум или недостаточную четкость.
- Resize (изменение размера), Crop (обрезание). Эти фильтры нужны для изменения размера кадра захваченного видео.
Чем отличаются форматы MPEG, AVI и ASF?
Эти форматы можно разделить на две группы: MPEG и AVI/ASF. Основное отличие между этими группами в том, что у всех MPEG жестко стандартизирован алгоритм декомпрессии, в то время как AVI/ASF являются всего лишь «оболочками» для сжатых данных, алгоритм декомпрессии которых может быть абсолютно любым. Для корректной декомпрессии AVI/ASF в их заголовках указывается четырехбуквенный код декомпрессора, который предварительно должен быть установлен в системе. Такая организация AVI/ASF приводит, с одной стороны, к необычайно гибкости этих форматов, но, с другой стороны, создает проблемы с переносимостью видео на другие компьютеры.
Достаточно интересно обстоят дела с отличиями между AVI и ASF. По сути дела, оно заключено в заголовках файла и блоков данных, расположении индекса, и наличии контрольных сумм для каждого блока данных. В свое время в сети была доступна для скачивания программа, конвертирующая любой AVI в ASF без рекомпрессии данных, что говорит о принципиальной похожести этих форматов. Однако стараниями Microsoft в большинстве новейших кодеков установлен программный блок, позволяющий этим кодекам работать только в составе Windows Media Tools. Кроме того, в судебном порядке Microsoft преследует любые попытки создать софт, позволяющий конвертировать видео из ASF в любой другой формат. Такое положение дел весьма прискорбно. У формата ASF есть неоспоримые преимущества в виде отсутствия ограничения на размер файла и хорошей поддержкой стриминга. Казалось бы, это открывает ему хорошие перспективы для использования в качестве промежуточного для оцифровки, перед нелинейным монтажом и компрессией в MPEG. Но, из-за отсутствия софта для редактирования и сжатия ASF в MPEG, область применения ASF ограничена стримингом (в основном в виде интернет-телевидения).
Формат MPEG является основным стандартом современного цифрового видео. Для декомпрессии MPEG потоков существуют множество аппаратных решений, применяемых как в компьютерах, так и в бытовой видеотехнике.
Отдельного упоминания заслуживает алгоритм сжатия MPEG4. Несмотря на то, что этот алгоритм также входит в группу MPEG стандартов, одобренных ISO, наибольшую популярность он получил в несколько модифицированных реализациях Microsoft MPEG4 V2, V3 и V7 для ASF и DivX 3.x, 4.x для AVI. Стандартный ISO MPEG4 (реализован в Microsoft MPEG4 V1) используется лишь при аппаратной компрессии видео некоторыми мобильными устройствами для передачи качественного видео по каналу с низкой пропускной способностью.
Когда следует сжимать видео в MPEG?
Видео следует сжимать в MPEG для достижения максимальной переносимости. Ввиду жестко стандартизированного алгоритма декомпрессии MPEG видео можно будет просматривать на любом компьютере, в том числе и с использованием специальной платы аппаратной декомпрессии MPEG. Кроме того, если сжать видео в MPEG1 формат и записать его на CD-R в соответствии со стандартом VideoCD, то результат можно будет просматривать на обычном телевизоре с использованием практически любого DVD- или VideoCD-плеера.
Когда следует сжимать видео в ASF?
В ASF видео следует сжимать для организации стриминга в сетях с низкой пропускной способностью. Одной из ключевых особенностей ASF является возможность помещения в один файл нескольких копий аудио и видео потоков с различным битрейтом, что позволяет клиенту запрашивать у сервера вариант видео с битрейтом, наиболее близким к пропускной способности канала клиент/сервер.
Какие кодеки нельзя использовать в «выходном продукте»?
Этот вопрос относится только к AVI-файлам. Ввиду достаточно большого возраста формата, для него существует множество различных кодеков (и их версий). Поэтому перечислить полный список кодеков, не рекомендованных к использованию при финальном сжатии невозможно. Однако возможно привести основные правила, которых следует придерживаться при выборе кодека. Во-первых, это должен быть аппаратно независимый кодек. Под аппаратной независимостью подразумевается наличие бесплатно доступного декомпрессора, работающего с достаточной для просмотра видео скоростью на ПК средней мощности. Именно по этой причине не рекомендуется использовать MJPEG в качестве кодека для финального сжатия. Во-вторых, не следует использовать старые кодеки. Под старыми кодеками имеются в виду кодеки, возраст которых превышает три года. Также не следует использовать кодеки старых версий, если уже вышли более новые версии. В-третьих, надо избегать использовать нестандартные кодеки, не включенные в стандартную поставку Windows. В случае использования таких кодеков желательно вместе с видео прилагать и кодек для декомпрессии.
Какой кодек (или формат файла) на сегодняшний день дает наилучшее качество видео при минимальном потоке?
Этот кодек называется DivX 4.01, и он доступен для бесплатного скачивания и использования на сайте проекта. Многие опасаются его использовать, так как в интернете распространена информация о том, что DivX является взломанной версией Microsoft MPEG-4. Это соответствует действительности для DivX 3.х, но абсолютно неверно для DivX 4.x. Последний был разработан на основе полностью бесплатно доступных кодов ISO MPEG4, посредством оптимизации алгоритма для работы в больших разрешениях с низким битрейтом. Еще одной привлекательной стороной этого кодека является постоянное обновление его версий, с сохранением полной обратной совместимости. Так, декомпрессор DivX 4.х способен проигрывать потоки, сжатые DivX 3.x.
Каким кодеком следует сжимать звуковую дорожку AVI-файла (проблемы с использованием кодека MP3 и одно из возможных решений)?
Одна из наиболее часто совершаемых ошибок при финальной компрессии видео — сохранение аудиопотока в несжатом виде. В случае сжатия видео с малым коэффициентом это практически не влияет на размер файла, но для сильно сжатого видео битрейт аудиопотока может превысить битрейт видеопотока. Поэтому аудиопоток необходимо сжимать хотя бы в формат ADPCM, предоставляющий приличное качество при уменьшении размера в 3-4 раза.
Наилучшим вариантом является сжатие аудио в формат MP3. Однако при использовании этого формата могут возникнуть несколько проблем. Во-первых, потребуется версия аудиокодека, поддерживающая сжатие. Это может быть как легальный платный кодек Frauhhofer IIS MPEG Layer-3 Codec (professional), так и его одноименный взломанный вариант, наиболее известный под названием «Radium MP3». Кроме того, стандартные средства Video for Windows и Active Movie не умеют использовать для сжатия эти кодеки. Единственной программой, которую автор этого FAQ смог заставить сжимать аудио в MP3 этими кодеками, оказалась VirtualDUB. Причем, захватывать звук сразу в МР3 он также не может, однако при последующей обработке видео возможно провести сжатие аудиопотока, не рекомпрессируя при этом видеопоток.
Как наиболее дешевым способом вывести обработанное видео обратно на телевизор/видеомагнитофон?
Достаточно доступными решениями (менее 100 долларов) являются покупка дополнительной видеокарты с TV Out, либо платы аппаратного декодирования MPEG. Первый вариант достаточно привлекателен из-за отсутствия необходимости предварительного сжатия видео в формат MPEG перед выводом, однако качество исполнения TV Out на видеокартах зачастую оставляет желать лучшего. Второй вариант потребует больших временных затрат для рекомпрессирования видео в MPEG, однако аппаратное сглаживание и фильтрация артефактов MPEG могут значительно улучшить видимое качество. Кроме того, при наличии DVD привода появляется приятная дополнительная возможность качественного просмотра DVD фильмов. Поэтому второй вариант более предпочтителен.
Каким следует делать разрешение выходного видео?
Основное ограничение на разрешение выходного видео накладывает аппаратный оверлей современных видеокарт. Для просмотра видео с использованием аппаратного оверлея необходимо, чтобы его размеры по горизонтали и вертикали были кратны 16. Кроме того, стандартами де-факто стали отношения сторон кадра 4:3 и 16:9. В случае, если производится оцифровка видео, имеющего отношение сторон кадра 16:9, но дополненное до 3:4 с помощью черных полос, эти полосы необходимо перед сжатием удалить, вернув видео изначальное отношение сторон 16:9. Это необходимо сделать перед финальным сжатием видео, так как качественное сжатие резкой контрастной границы между черной полосой и кадром потребует большую часть битрейта видео. Среди стандартных компьютерных разрешений для видео чаще всего используют 320×240, 512×384 и 640×480. Из стандартных телевизионных разрешений используют 176×144, 352×288 и 704×576.
Как следует обрабатывать чересстрочное видео?
Обработка чересстрочного видео представляет собой отдельную проблему, так как единственными кодеками, разделяющими поля при сжатии, являются MJPEG и MPEG2. Поэтому при компьютерной обработке видео с последующей записью результата на аналоговый носитель необходимо использовать MJPEG для захвата и обработки, а финальный продукт сжимать в MPEG2. В случае применения любого другого кодека перед сжатием необходимо произвести фильтрацию эффекта «расчески», чтобы избежать повышенного расхода битрейта. Для обработки чересстрочного видео фильтрами также необходимо предварительно разделять поля. Для этих целей можно использовать фильтр Deinterlace из поставки VirtualDUB в режиме Unfold Fields Side-by-Side. Впоследствии поля можно снова совместить с помощью этого же фильтра в режиме Fold Side-by-Side Fields Together.