stat
 
 
 
 
 
 
 
  TBS - Журнал Цифровое Видео    
Скидки
Разделы форума
Системы нелинейного
монтажа
Общие вопросы
Видеооборудование
Аудиооборудование
Светофильтры
Осветительное
оборудование
Барахолка
Поиск по архиву

Режим: "и" "или"
Избранное
Архив журнала
Цифровое Видео
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3

Вен Ваггонер

Видеокодеки: сравним возможности

Автор статьи анализирует результаты проведенных тестов по кодированию различных источников с помощью наиболее популярных программных кодеков для Интернета: Microsoft Windows Media Video 8 и RealNetworks RealVideo 8, Apple QuickTime (Sorenson Video 3, H.263, On2 VP3, Metastatis ZyGoVideo).
При сравнении результатов, полученных при разных скоростях передачи, оценивалась скорость кодирования, качество изображения и точность цветопередачи, а также эффективность работы кодека. Сжатые тестовые файлы доступны для просмотра на сайте
www.dv.com.

Тестирование

Для тестирования были выбраны четыре исходных материала, компрессия каждого проводилась при разрешении 640 х 480, 320 х 240 и 240 х 176.
Для кодирования в QuickTime я подготовил файлы в формате QuickTime Photo-JPEG (без потери качества), а для Real и Windows Media - AVI-файлы (кодирование по Хаффману). Photo-JPEG и AVI-файлы кодировались с соотношением 4:2:0, цветовая гамма определялась видом кодека, для декодирования всех файлов задавалась одинаковая скорость. Во всех источниках отсутствовал звук, а продолжительность видеоряда составляла ровно 60 с. Предварительную обработку файлов источников я проводил сам, чтобы полностью исключить различия в подобных встроенных инструментах для сжатия.
Для кодирования источников были выбраны три скорости передачи данных: 20 Кбит/с с разрешением 240х176, 200 Кбит/с с разрешением 320х240 и 800 Кбит/с с разрешением 640х480.
Чтобы оценить максимальные возможности кодеков, тестирование проводилось в режиме наивысшего качества изображения.

Компрессия

Для сравнения скорости сжатия кодирование подготовленных файлов во все форматы, в том числе в QuickTime, проводилось на одном и том же компьютере с двумя процессорами PIII 1 ГГц. Для автоматизации кодирования в RealProducer Plus с помощью утилиты Windows Media Encoding и вставки временных меток я создал загрузочные файлы (batch-files) под DOS. Версия QuickTime Player Pro для Macintosh поддерживает AppleScript лучше, чем RealProducer Plus или Windows Media под Windows, однако QuickTime Player Pro для Windows поддерживает кодирование из командной строки или через DCOM. Впрочем, программный интерфейс (API) кодека Apple QuickTime для Windows предоставляет все необходимые для этого средства, и любой опытный программист в состоянии написать приложение для кодирования из командной строки.
Изначально я планировал автоматизировать процесс кодирования в QuickTime под Windows с помощью пакетных файлов Media 100 Cleaner. Однако при запуске Cleaner даже в режиме минимального предварительного просмотра (Minimize Preview) и отключенном выводе графической информации, скорость кодирования была процентов на 40% меньше, чем при кодировании файлов в QuickTime Player Pro без Cleaner. Поэтому мне пришлось проводить кодирование с помощью QuickTime Player Pro и засекать длительность процесса по секундомеру компьютера. Если же такой показатель, как время кодирования, мне не требовался, то для удобства я проводил кодирование через Cleaner 5.
Я всегда выбирал приоритет качества над частотой и включал режим с пропуском кадров для обеспечения постоянной скорости потока данных, если кодек его поддерживал.
Кодирование проводилось для двух режимов передачи данных: прогрессивного и реального времени (Realtime Streaming Protocol или Microsoft Media Server). Если кодек поддерживал только один режим (например, RealVideo только RTSP, а VP3 только прогрессивный), компрессия выполнялась только для одного режима передачи.
В прогрессивном режиме я использовал полноценное двухпроходное кодирование с переменной скоростью передачи битов по всей длине файла.
Каждый кодек имеет свои оптимальные параметры для передачи потока реального времени. Так, в Windows Media, например, по умолчанию буферизируется пять секунд потока реального времени, а Real - семь секунд. Поэтому для RTSP-кодеков с поддержкой буферизации я устанавливал шестисекундный буфер. На всех кодеках через каждые десять секунд я вставлял ключевые кадры. Во многих сжатых файлах присутствовало много ключевых кадров, добавленных самим кодеком. Для кодеков, поддерживающих вставку ключевых кадров в автоматическом режиме, я сохранял значения чувствительности, заданные по умолчанию.
Результаты работы каждого кодека я оценивал, сравнивая качество полученного видео на нескольких компьютерах с разными процессорами и операционными системами.

Файлы источников

Для тестирования я выбрал четыре файла-источника: киноматериал, компьютерную движущуюся графику, видеосюжет "говорящая голова" и, художественный клип, смонтированный из видеоматериалов.
В цифровом варианте киноматериала была сделана попытка имитации характеристик художественного фильма с тщательно продуманным освещением и плавным движением камеры. Снятый на кинопленку материал был преобразован с помощью Adobe AfterEffects в формат 24 кадра в секунду. Я дополнил его эффектом перехода cross dissolve (перекрестный наплыв) длительностью 1 с и движущимися титрами.
Киноматериал оказался одним из самых легких источников для кодирования. При частоте 24 кадра в секунду на каждый пиксель можно отвести на 20 процентов больше бит, чем при кодировании источника с частотой 30 кадров в секунду. Несмотря на то, что в сцене присутствовало значительное движение, контент оказался очень чистым. Правда, в материале было много размытия по движению, характерного для кинопленки, но это является еще одной причиной, по которой киноматериалы кодируются так легко.
Движущаяся графика была получена в результате рендеринга проектов из замечательной книги Криса Мейера и Триш Мейер "Создание движущейся графики в After Effects" (CMP Books, 200). В начало этого материала я добавил сетку цветных полос 75%. При рендеринге проекта, описанного в этой книге, я задал другое разрешение (640 х 480) и прогрессивную развертку. По сетке цветных полос было легко отслеживать искажение цвета в процессе обработки материала кодеками. Так как эти графические последовательности я поместил в начало материала, кодирования протекало с высокой скоростью, поскольку кодеки не были заняты кодированием изображений с быстрым движением.
Сюжет "говорящая голова", т. е. крупный план говорящего человека без какого-либо сложного монтажа, был отснят сотрудником журнала DV для документального фильма. Хотя этот источник оказался самым легким для сжатия, отсутствие движения в материале позволяло оценить возможности кодека по созданию новых ключевых кадров, совпадающих с дельта-кадрами.
Художественный клип, смонтированный из видеоматериалов с быстрым движением, послужил великолепным примером контента, не оптимизированного для Интернета.

Windows Media Video 8

Кодеки сторонних производителей не поддерживает формат Microsoft Windows Media, но все кодеки Microsoft заслуживают самой высокой оценки. В настоящее время в свой набор программного обеспечения (SDK) Microsoft включает кодеки MS MPEG-4v3, Windows Media Video V7, Windows Media Video V8, ISO MPEG-4 и Windows Media Screen. Основное внимание я уделил Windows Media Video V8 (WMV8) - новейшей версии флагманского кодека компании.
WMV8 кодек включен в современный Windows Media Player (в момент написания статьи вышел плеер версии 7.1 для Windows и 7.01 для Macintosh). Более старые версии Windows Media Player, вплоть до 6.4, могут автоматически загружать новый кодек при обнаружении материала, кодированного в WMV8.
В новейшей версии кодека WMV8 включен ряд новых функциональных возможностей, например, поддержка режимов однопроходного кодирования с постоянной (CBR) и переменной скоростью потока (VBR). В соответствии с терминологией, принятой в Micrisoft, CBR - это режим оптимизированный для передачи потока, а VBR - для прогрессивной загрузки или для передачи данных по локальной сети.
Максимальный размер буфера можно задать только в режиме CBR, в режиме VBR полоса пропускания распределена по всему файлу. Однопроходное кодирование выполняется с помощью бесплатного кодировщика Windows Media Encoder 7.1 с графическим интерфейсом пользователя. Поддержку двухпроходного кодирования с переменной скоростью потока в современный набор программного обеспечения Microsoft не включила.
Я могу предположить, что некоторые решения, принятые относительно архитектуры на ранних стадиях разработки Windows Media, поставили разработчиков в безвыходное положение, и именно поэтому они создали кодировщик, работающий из командной строки DOS "C:\>" - Windows Media 8 Encoding Utility. Правда, для автоматической загрузки задаваемых параметров уже написано много утилит с графическим интерфейсом пользователя. Лично мне нравится "WM8GUI.EXE", которую можно найти на сайте www.dv.com.
На этапе воспроизведения кодек WMV8 позволяет выбрать уровень фильтрационной обработки. Выбор уровня (их четыре) зависит от свободной мощности центрального процессора на компьютере клиента после первичного декодирования. Чем выше уровень обработки, тем в большей степени декодер WMV8 будет производить интерполяцию (сглаживание блоков) в изображении, а на двух самых высоких уровнях включается функция сглаживание контуров.
WMV8 бесспорно является лучшим кодеком Windows Media, хотя многие до сих пор предпочитают использовать более старый кодек MPEG-4v3. Это объясняется тем, что MPEG-4v3 является единственной современной версией кодировщика Windows Media, работающей с плеером Windows Media Player 6.4, который совместим с Windows 95 или NT. А так как многие корпоративные компьютеры до сих пор работают под Windows NT или имеют только высокоскоростное подключение к Интернету, загрузить новый кодек на них нельзя. Сложившееся положение должно измениться, когда компания Microsoft, реализует свои планы по выпуску нового пакета WMP 6.4 с кодеком WMV8.
Windows Media 8 предлагает следующие режимы кодирования: традиционный однопроходный с постоянной скоростью передачи; двухпроходный с постоянной скоростью передачи и динамической буферизацией (лучшее решение для передачи мультимедийных потоков); однопроходный с переменной скоростью передачи (в этом режиме скорость потока меняется, иногда значительно, в соответствии с заданным качеством изображения; я не использовал этот режим, так как оценивал качество изображения для определенной скорости передачи); а также полноценный двухпроходный с переменной скоростью передачи битов по всей длине файла (идеально подходит для прогрессивной загрузки и воспроизведения локальных файлов, например, с жесткого диска или CD-ROM компьютера). Учтите, что плеер WMP 6.4 может не воспроизводить должным образом файлы, полученные в результате двухпроходного кодирования с переменной скоростью передачи на кодеке WMV8, зато подобные файлы прекрасно воспроизводит плеер WMP 7+.

Результаты тестирования

Скорость передачи данных у кодека WMV8 была непредсказуемой. В режимах с постоянной скоростью она была ближе к заданным значениям: так, при заданной скорости передачи данных 30 Кбит/с, реальная скорость составляла 32 Кбит/с, при 200 - 207, а при 800 - 807 Кбит/с. Обнаруженная погрешность была настолько постоянной, что для получения необходимой реальной скорости передачи данных можно было задавать заведомо неправильное значение на этапе кодирования.
Разброс значений для файлов с переменной скоростью передачи был еще более широким. Так, реальная скорость передачи при заданной 30 Кбит/с составляла 30 - 34 Кбит/с, при 200 - 192 - 212 Кбит/с, а при 800 - 768 - 855 Кбит/с. Скорости передачи сюжета с "говорящей головой" и движущейся графики были самыми низкими, а самая высокая скорость передачи данных наблюдалась при использовании источника, созданного на основе киноматериалов.

Частота кадров в каждом файле была абсолютно постоянной. В сжатых файлах на каждом фрагменте с движением частота кадров всегда сохранялась равной частоте кадров источника. Сетка цветных полос в начале движущейся графики воспроизводилась на скорости 1 кадр/с (в отсутствие движения кодек автоматически уменьшал частоту кадров).

Эффективность. Кодек WMP 7.1 работает на Pentium 166 МГц/32 Мбайт, хотя Microsoft рекомендует минимум Pentium или AMD Athlon K6 266 МГц с 64 Мбайт RAM. При воспроизведении у меня возникали лишь незначительные проблемы: на компьютере с двумя процессорами PIII 1 ГГц при скорости 800 Кбит/с фильтр сглаживания блоков не работал, однако, высокая скорость потока обеспечивала воспроизведение изображений с приличным качеством. Файлы с меньшей скоростью передачи данных подвергались значительной обработке. Пропуска кадров не наблюдалось. На более медленных компьютерах, особенно под управлением ОС Macintosh, фильтры сглаживания блоков отключались быстрее, и частота кадров уменьшалась. В целом эффективность декодера WMV8 была выше средней.

Качество. Изображения на всех файлах, сжатых кодеком WMV8, имели хорошее качество. При скорости потока 30 Кбит/с был отчетливо виден даже текст в конце файла с киноматериалом. Изображения в файлах, сжатых в двухпроходном режиме, особенно с переменной скоростью передачи изображение имели лучшее качество, чем при однопроходном кодировании, правда, это отличие было не столь значительным. Следует, однако, отметить, что некоторые элементы изображений в файлах, полученных в двухпроходном режиме, выглядели немного хуже, так как для некоторых фрагментов кодек увеличивает пропускную способность, а для некоторых уменьшает. В целом WMV8 обеспечивает высококачественное изображение.

Real Video

В новейшей версии RealVideo компания RealNetworks реализовала универсальное решение: RealVideo 8 (RV8) - это кодек, который поможет справиться со всеми задачами. И хотя в предлагаемый пакет компания до сих включает старые кодеки RealVideo G2 и G2+SVT, каких-либо веских причин для их использования не существует. Современная версия RealPlayer 8 поддерживает кодек RV8. Кроме того, можно предположить, что огромное большинство активных пользователей RealVideo уже включили кодек RV8 в ПО своих компьютеров или скоро сделают это с помощью надежной функции автоматического обновления, которую предлагает Real.
RV8 - солидный, современный кодек. Он предлагает возможность выбора между качеством изображения и частотой кадров, поддерживает двухпроходное кодирование с переменной скоростью передачи данных с буфером до 60 с (данный режим идеально подходит для CD-ROM).
Функции обработки декодера RV8 хорошо масштабируются, поэтому качество изображений при воспроизведении улучшается по мере увеличения мощности компьютера. На компьютерах с частотой процессора менее 200 МГц изображения воспроизводятся в том виде, в каком они были получены (без обработки). На компьютерах с большей тактовой частотой на этапе обработки включается фильтр сглаживания блоков. Если мощность компьютера намного больше необходимой для воспроизведения клипа, то RV8 будет проигрывать его с более высокой частотой кадров, чем та, для которой он был закодирован.
Дело в том, что кодек RV8 рассчитывает векторы движения для каждого клипа и создает интерполяционные кадры, причем этот алгоритм работает очень четко. Поэтому качество изображений, сжатых этим кодеком, в значительной степени зависит от мощности компьютера, используемого для просмотра.

Результаты тестирования

Скорость передачи данных. RealVideo очень точно и независимо от заданных установок контролирует скорость передачи данных. Однако при однопроходном кодировании могут получаться файлы разного размера. Например, размеры файлов движущейся графики и художественного клипа с быстрым движением превышали те, которые можно было бы ожидать для регистрируемой скорости передачи данных. При двухпроходном кодировании наблюдалось четкое соответствие размеров файлов.

Частота кадров. Прогнозируемая частота кадров в целом соблюдалась. На некоторых фрагментах в файлах с быстрым движением частота кадров была ниже заданной. При воспроизведении файлов, закодированных для скорости потока 30 Кбит/с, регистрируемая частота кадров вследствие интерполяции при обработке часто была выше заданной при кодировании.

Эффективность. Кодек RV8 неплохо работает на компьютерах под управлением Windows, однако клипы, компрессированные для скорости 800 Кбит/с на любом компьютере с процессором медленнее, чем PIII 1 ГГц, воспроизводятся в режиме с пропуском кадров. На Mac ОС декодер работал с крайне низкой эффективностью: корректно воспроизводить файлы, закодированные для скорости 800 Кбит/с, не могли даже машины высшего класса. А обычный iMac пропускал кадры и на файлах, сжатых для скорости передачи 200 Кбит/с.

Качество. Кодек RV8 обеспечивал хорошее качество изображения, хотя оно было хуже, чем у WMV8. Следует отметить, что RV8 имеет тенденцию к общей размытости изображения, особенно, это было заметно в киноматериале. В некоторых клипах, обработанных кодеком RV8 для скорости потока 30 Кбит/с, качество изображения из-за интерполяции частоты кадров ухудшалось. Например, в титрах киноматериала, нарушалась последовательность движущегося текста. Изменение частоты кадров в источниках с постоянным движением в результате интерполяции приводило к нежелательным раздражающим эффектам. Разработчикам следует предусмотреть возможность отключения этой функции пользователем.
Качество изображений, обработанных в двухпроходном режиме, было выше, чем в однопроходном, хотя отдельные области в изображении при этом выглядели хуже. По мере увеличения размера буфера преимущество двухпроходного режима в отношении качества изображения возрастало.

QuickTime 5

Для формата QuickTime 5 всегда предлагался самый широкий набор кодеков. Я даже не буду пытаться составлять полный список всех современных кодеков для этого формата. Дело в том, что QuickTime в отличие от Windows Media и RealVideo, используется не только для распространения, но и для создания контента. Другая причина, объясняющая широкое разнообразие кодеков QuickTime, заключается в том, что использование алгоритма QuickTime упрощает распространение кодеков сторонних разработчиков, так как последние могут работать со всеми существующими приложениями. А некоторые кодеки сторонних производителей компания Apple даже включила в свою систему автоматического обновления кодеков.
Когда пользователь проигрывает файл, для которого требуется новый кодек, плеер QuickTime посылает запрос на сервер Apple и выясняет, доступен ли этот кодек (или только декодер) для загрузки на компьютер клиента. Если такой кодек на сервере есть, QuickTime запрашивает у пользователя разрешения на его загрузку. В случае положительного ответа, кодек устанавливается, и плеер воспроизводит файлы с помощью нового кодека - ни перезагрузки компьютера, ни даже перезапуска плеера QuickTime при этом не требуется. Благодаря такой умной стратегии компании кодеки для QuickTime пользуются огромной популярностью.
Среди кодеков сторонних производителей в систему автоматического обновления компания Apple включила Sorenson Video 3, On2 VP3 и Media Metastatis ZyGoVideo.
QuickTime является превосходным форматом для прогрессивной загрузки и для воспроизведения локальных файлов, однако он не подходит для передачи потокового видео по протоколу RTSP. Правда, появление QuickTime 5 и сервера для потоковой передачи данных QuickTime/Darwin Streaming Server 3 (QTSS3) позволило устранить это ограничение. Технология защиты от пропуска (Skip protection), применяемая в QTSS3, значительно увеличивает качество изображения файлов QuickTime для конечного пользователя.
Технология защиты от пропуска предоставляет клиенту очень большой буфер, и если скорость подключения пользователя выше скорости передачи данных клипа, QuickTime буферизирует максимально возможную часть файла, поэтому даже при отключении компьютера от сети воспроизведение видеоклипа будет продолжаться до исчерпания буфера. Так как QTSS3 передает потерянные пакеты повторно, количество "рывков" в видеоряде уменьшается. Кроме того, сервер QTSS3 может динамически пропускать B-кадры для уменьшения частоты кадров и скорости передачи данных для потоков MPEG-1 и Sorenson Video 3.
Некоторые кодеки QuickTime имеют собственные упаковщики, предназначенные для передачи потоков по протоколу RTSP. Такие упаковщики позволяют кодеку обрабатывать разрушенные данные или данные с пропусками. Правда, с реализацией в сервере QTSS3 технологии защиты от пропуска наличие в кодеке собственного упаковщика стало менее актуальным. Из кодеков, имеющих собственный упаковщик, для передачи в Интернет потоков в формате QuickTime подходят Sorenson Video 2 и 3, а также H.263. Собственные упаковщики не влияют на качество работы кодека при прогрессивной загрузке или локальном просмотре.

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

Sorenson Video 3

Кодек Sorenson Video 3 (SV3), задержка выпуска которого вызвала много рекламного шума, является предпочтительным кодеком Apple для Интернет-видео в формате QuickTime 5. Хотя кодек Sorenson Video версии 3 основан на новой технологии, он поддерживает многие из функций прежних версий. Реализованные в нем преимущества архитектуры SV3 ставят его в один ряд с лучшими современными кодеками. Профессиональная версия SV3 ($499), несомненно, является самой полнофункциональной из доступных сегодня кодеков.
Воспроизведение в кодеке SV3 основано на алгоритме QuickTime 5.0.2, и любая версия QuickTime 5 при необходимости автоматически обновляет декодер SV3. Стандартная версия кодека SV3 для формата QuickTime 5.0.2 имеет хороший набор опций по умолчанию. SV3 лучше подходит для работы с контентом на CD-ROM или с прогрессивной загрузкой, чем старая версия SV2 Basic. Однако, профессиональным пользователям, особенно если они занимаются передачей потоков по протоколу RTSP лучше приобрести профессиональную версию.
Стандартный SV3 предлагает пользователю задать обычные для QuickTime установки: скорость данных, частоту кадров и частоту ключевых кадров. В профессиональной версии для этих опций используются предустановленные значения, и пользователь не может их изменить. По сравнению с прежними версиями Sorenson, кодек SV3 сжимает гораздо быстрее, а функция сглаживания изображения включается по умолчанию. Стандартная версия SV3 - эффективное решение для CD-ROM-авторинга и создания Интернет-контента с прогрессивной загрузкой.
Профессиональная версия SV3 предлагает множество опций. Самая важная из них - В-кодирование изображения с использованием промежуточных интерполяционных кадров (Bi-directional prediction), которая позволяет при заданном качестве снизить скорость передачи данных на 15-25%. Кроме того, при ограниченной полосе пропускания сервер QTSS3 может динамически пропускать часть B-кадров. Эта функция не сводится к передаче только ключевых кадров: в этом режиме возможно двухкратное уменьшение частоты кадров. Один из недостатков В-кодирования изображения с использованием промежуточных интерполяционных кадров заключается в том, что видеопоток воспроизводится с запаздыванием на два кадра. В результате может возникать рассинхронизация аудио и видео, возрастающая с уменьшением частоты кадров. Но эта опция автоматически становится не активной, если в кодере SV3 задать частоту кадров менее 10 кадр/с.
При включенной опции текущего масштабирования (Temporal Scalability) в случае перегрузки процессора при воспроизведении клипа В-кадры будут пропускаться. Функции Bi-directional prediction и Temporal Scalability в кодеке SV3 могут быть использованы одновременно, и это не приводит (в отличие от SV2) ни к снижению производительности, ни к ухудшению качества изображения.
Опция принудительного обновления блоков (Force Block Refresh) позволяет задавать максимальный промежуток времени между обновлением каждого блока видео размером 16х16 пикселей. Эта опция дает возможность регенерировать видеокадр в течение заданного в секундах времени в том случае, если пакет был отброшен. Применение опции Force Block Refresh очень незначительно влияет на пропускную способность при контенте с медленным движением и совсем не сказывается на пропускной способности при контенте с быстрым движением, поскольку для последнего характерна высокая вероятность обновления блоков. Я рекомендую при передаче медиа по протоколу RTSP для этой опции использовать те установки, которые предложены по умолчанию, и отключать ее во всех остальных случаях (что я и делал при кодировании своих файлов).
Среди других опций, реализованных в профессиональной версии SV3-кодера, следует отметить режим быстрого сжатия (Quick Copmression), конфигурируемую автоматическую расстановку ключевых кадров (Automatic Keyframe), режим пропуска кадров для минимального качества (Minimal Quality frame dropping), отключение фильтра сглаживания изображения (Smoothing deblocking filter), использование паролей (Media Passwords), поддержку альфа-канала в реальном времени, воспроизведение "водяных знаков". Причем, в отличие от SV2, SV3 поддерживает воспроизведение цветных "водяных знаков".
Еще одной важной возможностью профессиональной версии является двухпроходное кодирование с переменной скоростью передачи данных. Эта опция доступна только тогда, когда профессиональный SV3-кодер используется вместе с утилитой Media Cleaner 5.1. Cleaner 5.1 не позволяет задавать размер буфера, так она распределяет скорость передачи данных по всему файлу и ограничивать максимальную скорость передачи данных для снижения нагрузки на процессор при воспроизведении сложных фрагментов клипа. При кодировании в Cleaner 5.1 режим с переменной скоростью передачи данных оптимален для прогрессивной и локальной загрузки контента, но для его передачи по протоколу RTSP им пользоваться не следует.
Для декодирования кодеку SV3 необходим процессор большей мощности, чем SV2, поэтому в SV3 было предложено несколько способов, позволяющих уменьшить нагрузку на процессор. Во-первых, в стандартной и профессиональной версиях во время воспроизведения клипов с определенным разрешением на более медленных машинах автоматически отключается фильтр сглаживания изображения. Он не включается на компьютерах Macintosh с процессором ниже G3 и на PC с процессором ниже Pentium II, а также при воспроизведении клипов с разрешением 320х240 на G3 и Pentium II. Во-вторых, для контента с высокой скоростью передачи данных включение опции Temporal Scalability позволяет снизить потребляемую мощность процессора почти вдвое за счет того, что на более медленных машинах декодер будет пропускать половину кадров.
Набор различных опций у кодера SV3 столь велик, что для проведения тестирования пришлось выбирать их очень тщательно. Я отключил опцию Force Block Refresh (она подобна функции коррекции ошибок в RV8) и ограничил максимальную скорость при двухпроходном кодировании с переменной скоростью передачи данных значением 300 Кбит/с для передачи контента со скоростью 30 Кбит/с, 800 - для 200 Кбит/с и 1600 - для 800 Кбит/с. Без ограничения максимальной скорости данных в файле с быстрым движением для 800 Кбит/с ее значение превышало 3000 Кбит/с. В установочном меню опции "Минимальное качество" (Minimum Quality) я задал нулевое значение и разрешил режим с пропуском кадров, чтобы реальная скорость передачи данных точнее соответствовала заданной.

Результаты тестирования

Скорость передачи данных. На сложных клипах даже в режиме с пропуском кадров у SV3 возникали проблемы с достижением заданной скорости 800 Кбит/с. Скорость передачи данных в клипах, закодированных в однопроходном режиме, отличалась от заданной в большей степени, чем в клипах, закодированных в двухпроходном режиме.
При более низких скоростях передачи данных отличие реальной скорости от заданной составляло всего несколько процентов. В случае двухпроходного кодирования реальная скорость передачи данных почти всегда точно соответствовала заданной, исключение составляли источники с быстрым движением - в этом случае реальная скорость передачи данных была намного выше заданной.

Частота кадров. В клипах с быстрым движением и движущейся графикой, закодированных в однопроходном режиме, плеер пропускал 10-20% кадров источника. Частота кадров при двухпроходном кодировании всегда точно совпадала с той, что была в источнике.

Эффективность. При ограниченной максимальной скорости передачи данных на компьютере с процессором PIII 1 ГГц проигрывались все клипы. Без ограничения скорости клипы, закодированные для скорости 800 Кбит/с, не воспроизводились с заданной частотой кадров. Введение значения 1600 Кбит/с для ограничения максимальной скорости передачи позволило полностью устранить эту проблему. Поэтому при кодировании контента с высокой скоростью передачи в кодеке SV3 всегда следует ограничивать значение максимальной скорости. Ни на каком другом из используемых для проведения тестирования компьютеров файлы со скоростью потока 800 Кбит/с не воспроизводились с полной частотой кадров, но половинная частота кадров в режиме Temporal Scalability, как правило, стабильно поддерживалась. Отключение функции сглаживания блоков в изображении на более слабых машинах и при более низких скоростях передачи данных приводило к тому, что такие артефакты сохранялись на изображении, хотя его качество в целом оставалось хорошим.

Качество. В случае контента с разрешением 640х480 кодек SV3 автоматически отключал сглаживание блоков на изображении, поэтому в сложных сценах в клипах с высокой скоростью передачи данных эти артефакты были четко видны.
В целом профессиональная версия кодека SV3 дает изображение отличного качества, оно лучше, чем у RV8 и почти такое же, как у WMV8.

В цифровом варианте киноматериала была сделана попытка имитации характеристик художественного фильма с тщательно продуманным освещением и плавным движением камеры. Я дополнил его эффектом перехода cross dissolve (перекрестный наплыв) длительностью 1 с и движущимися титрами. Сжимать эту последовательность было не очень сложно, но она позволяла оценить способность кодека обрабатывать киноматериалы.

H.263

H.263 - признанный стандарт, широко используемый для проведения видеоконференций. Видеокодек MPEG-4, по сути, является модификацией H.263. По сравнению с SV2, кодек H.263 лучше работал с размытием по движению и обеспечивал более высокую скорость кодирования. Поэтому именно этот кодек выбирается по умолчанию для "живого" широкополосного вещания в QuickTime. Однако SV3 кодирует гораздо быстрее и качество изображения у него выше, чем у H.263.
Формат H.263 поддерживают плееры не только QuickTime, но и других форматов. При кодировании исходного материала с большим разрешением кодек H.263 увеличивает масштаб изображения (этот формат имеет ограничение в отношении разрешения - не более 352х288), что приводит к резкому ухудшению его качества.
При использовании H.263 для передачи потока по протоколу RTSP следует включать опцию "Промежуточные макроблоки" (Cycle Intra Marcoblocks). В этом случае пропущенные макроблоки в кадрах будут заменяться еще до получения следующего ключевого кадра. Так как для кодека H.263 максимальное разрешение соответствует 352х288, тестирование для скорости передачи данных 800 Кбит/с я не проводил.

Результаты тестирования

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

Частота кадров. Несмотря на то, что H.263 регистрировал равные частоты кадров на выходе и входе, визуально было заметно, что на трудных фрагментах он пропускал значительное число кадров.

Эффективность. Поток H.263 хорошо декодировался на всех машинах. Клипы со скоростью 800 Кбит/с для тестирования этого кодека не использовались, а в отношении всех других источников он обеспечивал высокую эффективность.

Качество. По качеству изображения кодек H.263 может конкурировать с Basic с SV2 и даже с SV2, но с новый кодек SV3 превосходит его по всем параметрам. Для H.263 характерны нерезкое изображение и пропуск кадров. Даже файл с сюжетом "говорящая голова" при скорости потока данных 30 Кбит/с выглядел ужасно.

Источник с движущейся графикой с резкими границами в изображении и яркими цветами, а также со значительным объемом движения позволил оценить способность кодека без искажений передавать цвет и сохранять высокое качество изображения при скоростях передачи данных.

VP3

Если провести конкурс на самый модный кодек формата QuickTime, то VP3, разработанный компанией On2 Technologies, которая ранее называлась The Duck Corporation, займет второе место (первое будет у SV3). Несмотря на то, что в стандартный комплект QuickTime 5.0.2 он не входит, VP3 стал первым кодеком, который был включен в систему автоматического обновления. Правда, для активизации функции обновления придется найти в Интернете материал, закодированный с помощью VP3. Установить кодек VP3 можно и из приложения QuickTime Update, нажав кнопку Custom.
Кроме того, компания On2 предлагает плагин для воспроизведения VP3 в RealPlayer, версию VP3, которая работает с приложениями, совместимыми с Video for Windows, и планирует выпуск версии VP3.2 с открытым кодом, что импортировать его на другие платформы.
Фильтр сглаживания блоков в изображении, используемый в VP3, улучшает качество изображения при воспроизведении на мощных процессорах (Mac G4, Windows P III), но не на G3, P II или более ранних. Набор опций для кодирования в кодеке VP3 аналогичен тем, что имеются в других кодеках формата QuickTime, но в нем реализовано и несколько специальных опций. По умолчанию предлагается режим "Быстрое сжатие" (Quick Compress), причем он обеспечивает более высокое качество кодирования, чем аналогичные режимы других кодеков. Для улучшения качества изображения и сохранения скорости передачи данных можно задать режим воспроизведения с пропуском кадров. Еще одна очень мощная функция кодека VP3 позволяет задавать ключевые кадры в автоматическом режиме.
Хотя опции, заданные в кодеке VP3 по умолчанию, функционируют хорошо с любым контентом, я задавал максимальное расстояние между ключевыми кадрами, равным частоте кадров, умноженной на десять. Если вы будете использовать такую установку, а я рекомендую это делать, выберите в диалоговом окне QuickTime [Keyframe every...] значение, равное 9999, при котором не будут вставляться дополнительные ключевые кадры.
Так как VP3 не кодирует материал для скорости 30 Кбит/с, для этой скорости он не тестировался. Я использовал встроенную в VP3 опцию распознавания ключевых кадров, отключив ее в QuickTime.

Результаты тестирования

Скорость передачи данных. Реальная скорость передачи данных закодированных для скоростей 200 Кбит/с и 800 Кбит/с, была очень близка к заданной, и только в клипах с быстрым движением она намного превышала заданную. Однако в некоторых случаях скорость передачи данных могла оказаться и ниже заданной. В режиме без пропуска кадров, размер файла с быстрым движением увеличивался вдвое, значительное увеличение размера наблюдалось и в отношении других файлов.

Частота кадров. При скоростях передачи 200 и 800 Кбит/с прогнозируемая частота кадров для сюжета "говорящая голова" и клипа, созданного из киноматериала соблюдалась; частота кадров при воспроизведении движущейся графики была на 10% меньше, а в художественном клипе, смонтированном из видеоматериалов, - на 25% меньше заданной.

Эффективность. Высокая эффективность - самая важная характеристика кодека VP3. Контент, закодированный этим кодеком с разрешением 640х480, можно было проигрывать даже на компьютерах средней мощности.

Качество. При скорости передачи данных 200 Кбит/с изображение имело не очень хорошее качество, но зато при скорости 800 Кбит/с кодек VP3 обеспечивал отличное качество изображения даже при выключенном фильтре сглаживания блоков. VP3 дает не только лучшее, чем кодек SV3 изображение, но и имеет более эффективный декодер, что позволяет проигрывать файлы большего размера на компьютерах меньшей мощности. VP3 не поддерживает режим двухпроходного кодирования с переменной скоростью передачи данных и не имеет собственного упаковщика. Данный кодек является хорошей альтернативой SV3 для передачи широкополосного контента с высоким разрешением.

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

ZyGoVideo

Кодек ZyGoVideo компании Media Metastasis основан на wavelets-технологии, т. е. на той же технологии, что и кодеки Indeo 5 и JPEG2000. И хотя технология wavelets отрывает многообещающие возможности для Web-видео (плавное увеличение/уменьшение масштаба и динамическое уменьшение качества для снижения полосы пропускания или требований к процессору), текущие версии кодека ZyGoVideo пока не поддерживают эти опции, однако, компания планирует включить некоторые из них в следующую его версию. В процессе разработки находится кодек ZyGoVideo для сверхпортативных компьютеров, работающих под управлением PalmOS.
В настоящее время предлагается бесплатная базовая и профессиональная (ее предварительная цена $49) версии кодека ZyGoVideo. В профессиональную версию включены несколько дополнительных опций для кодирования и внесено ряд модификаций, направленных на улучшение качества изображения, суть которых пока не разглашается. Среди дополнительных возможностей следует отметить регулируемые опции для ключевых кадров, обнаружения движения и сглаживания изображения. Увеличение значения в опции обнаружения движения в какой-то степени улучшает качество изображения, но при этом время, необходимое для кодирования, значительно возрастает. В моих тестах базовая версия ZyGoVideo кодировала материалы почти вдвое быстрее, чем профессиональная: дело в том, что в базовой версии кодека для обнаружения движения задано значение "Низкое", а в профессиональной я установил "Максимальное".
Кодек точно контролирует скорость передачи данных, вследствие чего ради увеличения полосы пропускания, он может подавлять отдельные ключевые кадры. Поэтому на изображении в ключевых кадрах появляется блочность, качество изображения восстанавливается только через несколько дельта-кадров. Кодек ZyGoVideo не имеет собственного упаковщика, поэтому его современная версия подходит только для прогрессивной загрузки и локального воспроизведения, при которых допускаются колебания в скорости передачи данных. Положение регулятора качества в основном диалоговом окне QuickTime влияет на размер ключевого кадра ZyGoVideo, и если на изображении в ключевых кадрах появляется блочность, попробуйте передвинуть этот регулятор выше, качество изображения должно значительно улучшиться.
Для двух более низких скоростей передачи данных я включал сглаживающий фильтр и выбирал значение "Максимум" в опции "Качество движения", а для скорости потока 800 Кбит/с - отключал этот фильтр и устанавливал в данной опции значение "Высокое", так как для такой скорости передачи данных большинство процессоров не могли поддерживать одновременно обе опции. В опции "Пространственное качество" (Spatial quality) я изменил установку 50 единиц, которая была задана по умолчанию, на 100, чтобы размер ключевых кадров был достаточно большим для уменьшения стробоскопического эффекта.

Результаты тестирования

Скорость передачи данных. Кодек ZyGoVideo плохо контролировал скорость передачи данных. На файлах с движущейся графикой реальная скорость передачи была 30-100% выше заданной, причем более значительные отличия были характерны для профессиональной версии. Скорость передачи данных для файлов с быстрым движением также была выше заданной, но отклонение в этом случае было меньшим. Скорость передачи данных для сюжета "говорящая голова" часто падала ниже заданной даже при плохом качестве изображения. Полученные результаты позволяют предположить, что в режиме с пропуском кадров кодек ZyGoVideo будет работать лучше.

Частота кадров. Кодек передавал закодированные кадры с частотой, которая точно соответствовала заданной при сжатии.

Эффективность. Равномерного воспроизведения всех кадров в файлах, закодированных ZyGoVideo для скорости 800 Кбит/с, не удалось добиться даже на компьютере с двумя процессорами P III. Это объясняется отсутствием в кодеке режима воспроизведения с пропуском кадров. В процессе тестирования при попытках произвольного доступа к разным точкам внутри файла, закодированного для скорости 800 Кбит/с, а также при воспроизведении нескольких файлов ZyGoVideo одновременно, несколько раз происходило аварийное завершение работы плеера QuickTime. С другими кодеками таких проблем не возникало, поэтому я предполагаю, что это вызвано ошибкой в программе декодера ZyGoVideo.

Качество. Текущая версия ZyGoVideo не конкурентоспособна. Даже при включенном фильтре сглаживании на изображении была заметна блочная структура, а во время воспроизведения файлов с быстрым движением в изображении появлялся эффект цветовой "тянучки".

Выводы
Какой кодек лучше? Это зависит от задач, стоящих перед вами, от того, для каких полос пропускания и скоростей потоков вы готовите свой материал, от исходного материала и от того, на какой системе он будет воспроизводиться. Я надеюсь, что правильный выбор вам помогут сделать тестовые файлы, которые открыты для доступа на сайте
http://www.dv.com/magazine/2001/1101/waggoner_codecs1101.html.

Бен Ваггоне - президент компании Interframe Media, которая предоставляет услуги по консультации, обучению и кодированию цифрового видео.
Ben Waggoner. Web Video Codecs Compared/ DV, ноябрь, 2001.