Видео маппинг, видео перформансы

Обработка видео

Многопроходное сжатие кодеком

Многопроходное сжатие кодеком

DivX начиная с версии 5.03 предоставляет возможность выполнять второй проход несколько раз подряд, это называется N–ным проходом (Nth pass). При выполнении N–ного прохода информация о распределении битов между кадрами модифицируется и записывается в файл с информацией об анализе видеоряда (если в настройках кодера не отключен режим Update log file). Таким образом, каждый следующий N–ный проход сжатия более эффективно распределяет биты между кадрами видеоряда, что ведёт к более высокому качеству сжатого видео при том же размере. В Официальном руководстве по DivX 6.0 достаточно дипломатично сказано «обычно оптимальное качество на 98–99% достигается за 3 прохода или менее». Вряд ли имеет смысл делать больше трёх проходов сжатия, да и третий проход скорее всего существенно поможет лишь при малых потоках данных (скажем, менее 700 кбит/сек) — то есть когда небольшое перераспределение битов между кадрами может существенно повлиять на качество изображения.

Формат контейнера видеозаписи

Видеозапись состоит из видеоряда, звуковой дорожки (или нескольких), субтитров (возможно, нескольких), текстовых комментариев к ней и т. д. Файл, в который сохраняется видеозапись, имеет специальный формат. Помимо собственно видеоряда и звуковой дорожки он должен содержать некоторую служебную информацию: какой формат применён для сжатия видео и звука, так называемый индекс (index, блок данных, который содержит адреса расположения конкретных участков записи — он используется во время перемотки), текстовые описатели (тэги, tags — название записи, автор, информация об авторских правах и прочее). Формат такого файла называют контейнером (container). Процесс объединения набора файлов видеозаписи в один называется mux (сокращение от «multiplex», не путайте с mix - микширование), процесс выделения отдельных компонентов записи в файл — demux (demultiplex). Ниже я буду использовать русские термины внедрение (сведение) и извлечение.

AVI

Традиционный контейнер для видеозаписей — это AVI (Audio and Video Interleaved). Любая версия Windows содержит специальную программу (splitter или demultiplexer), которая обеспечивает воспроизведение файлов этого формата. Контейнер AVI имеет целый ряд ограничений: невозможно использовать звуковую дорожку в формате OGG Vorbis, не все программы поддерживают отображение внедрённых в AVI субтитров. Некоторые аппаратные проигрыватели не поддерживает переменный поток данных у звуковых дорожек (VBR, variable bitrate).

Поскольку контейнер AVI — стандартный контейнер для видеозаписей в системе Windows, его поддерживают все программы, которые работают с видео. Расширенные возможности по работе с AVI, как то внедрение субтитров, множества звуковых дорожек, использование VBR звука, поддерживает VirtualDubMod и AVIMux_GUI (последний даже поддерживает формат сжатия звука AAC). Предпочтительно использовать для видеозаписей именно этот контейнер, в силу его универсальности и совместимости.

Ogg (OGM)

Серьёзный конкурент AVI — Ogg или OGM (Ogg Media Format). В рамках проекта Ogg разработан формат файла-контейнера и ряд форматов сжатия звука: Vorbis, FLAC и другие. Изначально этот контейнер планировалось использовать только для звуковой информации, но оказалось, что в него можно внедрить и видео данные. Для воспроизведения таких видеозаписей Tobias Waldvogel разработал DirectShow splitter для контейнера Ogg — с этого и началось его повсеместное распространение. Чтобы отличать видео файлы от звуковых, видео файлы начали называть OGM (хотя формально они используют тот же контейнер Ogg, что и звуковые файлы). Этот контейнер поддерживает субтитры, VBR звук и, конечно, звуковую дорожку в формате Ogg Vorbis. «Накладные расходы» контейнера OGM (блок index и прочая служебная информация) занимают больше места, чем в AVI.

Возможность интегрировать субтитры внутрь файла с видеозаписью была впервые реализована именно в программах для работы с контейнером OGM, что послужило причиной широкого распространения этого контейнера для видеозаписей. Сегодня множество записей (иногда даже с mp3 звуковой дорожкой) упаковываются в OGM. Однако контейнер Ogg разрабатывался как контейнер для потокового вещания через интернет (streaming), потому он не вполне подходит для хранения записей: например, иногда не работает перемотка записи назад.

Для работы с этим форматом сжатия звука и контейнером необходимы: DirectShow декодер Ogg, OGM splitter, OGM mux утилита (VirtualDubMod также поддерживает этот контейнер). Учтите, что декодер и splitter нужены также и для воспроизведения OGM файлов.

Матрёшка

Ещё одна альтернатива — контейнер Матрёшка (по-английски его называют Matroska). Это проект с открытыми исходными кодами. Он содержит несколько уникальных возможностей, например субтитры в Матрёшке всегда хранятся в универсальной кодировке Юникод, что позволяет избежать проблем с кодировкой текста субтитров. Этот формат разрабатывался специально для хранения аудио и видеозаписей. Он основан на стандарте XML и обеспечивает двустороннюю совместимость: ваша запись может быть воспроизведена любым проигрывателем при помощи любого декодера (splitter’а) этого формата. «Накладные расходы» контейнера Матрёшка (блок index и прочая служебная информация) заметно меньше, чем в AVI. Если вы согласны использовать для своих записей нестандартный контейнер (не AVI), то Матрёшка — однозначно лучше Ogg.

Для работы с этим форматом также нужен комплект из Matroska splitter и утилиты для Matroska mux — они же нужны и для воспроизведения таких файлов. VirtualDubMod и AVIMux_GUI также поддерживают этот контейнер.

Windows Media, RealMedia, QuickTime, MP4 и другие

Microsoft продвигает контейнер для видеозаписей собственной разработки — Windows Media. В этом контейнере могут использоваться только форматы сжатия Windows Media разных версий: WMA (Audio) и WMV (Video). Работать с этим контейнером может Microsoft Windows Movie Maker. Сохранять видео в этот контейнер также может iuVCR. Формат этого контейнера закрытый, потому VirtualDub и другие программы не в состоянии его считать. Также пока не существует аппаратных проигрывателей, способных воспроизводить видеозаписи в WMV — на момент написания статьи только появилась информация о планах выпуска таких устройств. По описанным выше причинам формат этот не очень популярен.

В определённых приложениях распространены контейнеры MPEG для MPEG–1 и –2 потоков (они используются для записи Video CD и DVD). Контейнер RealMedia используется для хранения записей в формате RealVideo и RealAudio, потому он также мало распространён (как и Windows Media — это закрытый формат). Контейнер Apple Quicktime используется в первую очередь на компьютерной платформе Apple. Контейнер и не плох и универсален, но поддержка его на платформе Windows очень ограничена, формат — закрытый, потому — не популярный.

В стандарте MPEG–4 также есть описание контейнера — MP4. Его сейчас редко используют, но завтра ситуация может измениться. Уже сегодня некоторые программы — например 3ivX и Nero Digital — обеспечивают поддержку этого контейнера. Основным форматом сжатия звука для этого контейнера является MPEG-4 AAC.

DivX Networks, разработчик совместимого с MPEG–4 формата сжатия DivX, обещают в середине 2005 года выпустить новую версию: DivX Q, которая будет включать в себя не только сжатие видео, но и формат для сжатия звука и формат контейнера (подробнее см. интервью).


Яндекс.Метрика Copyright by www.Malbred.com 2005