Видео кодеки

Подготовили: Евгений Рыжков и Татьяна Головко Дата публикации: 22.03.2011

Когда ты говоришь «просмотр видео», ты, скорее всего, имеешь в виду комбинацию, состоящую из видео и аудио потоков. Но у тебя нет двух разных файлов, есть только «видео». Может быть, это AVI файл или MP4. Как я уже писал — это всего лишь форматы файлов (как, например, ZIP), которые могут содержать несколько разных файлов. Формат определяет, как именно хранить видео и аудио потоки в одном файле.

Когда ты смотришь видео, видеоплеер делает сразу несколько вещей:

  • интерпретирует формат: пробует понять, как хранятся файлы, и пытается найти доступные аудио и видео дорожки;
  • декодирует видео поток и отображает его на экране в виде серии картинок;
  • декодирует аудио поток и оправляет звук на колонки.

Видео кодек — это алгоритм декодирования видео потока (2-й пункт из вышеприведенного списка). Слово кодек (codec) происходит от сочетания английских слов "coder" и "decoder". Твой видеоплеер декодирует видео поток в соответствии с алгоритмом видео кодека, затем отображает серию картинок на экране. Большинство современных видео кодеков сводят к минимуму требуемую им для воспроизведения следующего кадра информацию. Например, вместо того, чтобы хранить каждый кадр отдельно, хранятся только отличия между кадрами. Такие уловки позволяют добиться высокой степени сжатия видео файлов, что ведет к уменьшению их веса.

Различают видео кодеки с потерями и без потерь. Видео кодеки без потерь являются слишком тяжелыми, чтобы быть полезными в Веб, поэтому я их рассматривать не буду. Видео кодеки с потерями при кодировании безвозвратно теряют часть информации. Это как при копировании аудио кассеты: каждая последующая копия буде хуже предыдущей по качеству. В отличии о перезаписанных аудио кассет, в которых появляется «шипение», пере-пере-перекодированное видео будет выглядеть в виде квадратов, особенно в сценах с большим количеством движений. Такое может произойти и при первой копии с первоисточника, если использовать «кривой» кодер или задать неверные параметры. Видео кодеки научились с этим бороться — они сглаживают такие квадраты, что делает потери почти незаметными для нашего с тобой глаза.

Существует куча кодеков. Наиболее значимые из них это: H.264, Theora и VP8.

H.264

H.264 еще известен как "MPEG-4 часть 10", а так же "MPEG-4 AVC" или "MPEG-4 Advanced Video Coding". H.264 был разработан MPEG group и стандартизирован в 2003 году. Его задача — обеспечить единым кодеком как пользователей с низкой пропускной способностью и слабым процессором (мобильные телефоны), так и имеющих широкий канал и мощный процессор (домашние ПК). Для достижения этого H.264 разделяется на «профили», каждый из которых снабжается определенным набором опций, количество которых влияет на размер файла. Высшие профили используют больше опций, обеспечивая лучшее качество изображения при меньшем размере, но требующее больших мощностей CPU для декодирования в режиме реального времени.

Несколько примеров, чтобы ты имел примерное представление о разнообразии профилей. iPhone от Apple поддерживает базовый профиль. Телевизионные приставки Apple поддерживают базовый и основной профили. Adobe Flash для ПК поддерживает базовый, основной и высокий профили. YouTube (который купил Google) использует H.264 для кодирования видео с высоким разрешением, которое может быть просмотрено с помощью Adobe Flash. YouTube предоставляет так же H.264 для мобильных устройств, включая iPhone'ы и смартфоны, работающие под Google Android. А еще, H.264 является одним из основных кодеков спецификации Blu-ray. Тут используется высокий профиль.

Большинство устройств, которые не относятся к настольным ПК (включая iPhone и проигрыватели Blu-ray), производят декодирование в специальном чипе, т.к. основной процессор слишком слаб для декодирования в реальном времени. Сейчас многие видеокарты поддерживают аппаратное декодирование H.264. Существует целый ряд конкурирующих кодеров H.264, включая библиотеку x264 с открытым исходным кодом. Стандарт H.264 основан на патенте, лицензирование происходит посредством группы MPEG LA. H.264 может быть включен в большинство современных видео форматов, включая MP4 (в основном используется в iTunes) и MKV (используют энтузиасты для создания некоммерческого видео).

Theora

Theora эволюционировал из кодека VP3 и был разработан Xiph.org Foundation. Theora — это бесплатный кодек, не обремененный никакими патентами. Хотя стандарт был заморожен в 2004, проект "Theora" (который включает в себя кодер и декодер с открытыми исходными кодами) был реализован в ноябре 2008 под версией 1.0, а в сентябре 2009 появилась версия 1.1.

Кодек Theora может быть включен в любой формат, но чаще всего его можно увидеть в Ogg. Все основные версии Linux поддерживают этот кодек по умолчанию. Firefox 3.5 имеет встроенную поддержку кодека Theora в формате Ogg. Говоря «встроенная поддержка» я имею в виду поддержку без необходимости устанавливать дополнительные плагины. На Windows и Mac OS Theora так же будет доступен после установки Xiph.org — декодера с открытым исходным кодом.

VP8

VP8 — еще один кодек от On2 — компании, которая разработала VP3 (Theora). Технически он схож с H.264 базового профиля, но имеет большой потенциал для развития.

В 2010 году Google приобрел On2, опубликовал спецификации кодека и выложил примеры кода кодера/декодера. Более того, Google «открыл» все патенты On2, зарегистрированные на VP8, сделав их свободными от отчислений. Это лучшее, что можно сделать с патентами. Вы не можете на самом деле «освободить» их или свести на нет, после того как они были выпущены. Чтобы сделать их открытыми для пользователей у вас должна быть лицензия без отчислений, после чего каждый может использовать технологию, ничего не платя и без заключения лицензионного соглашения. С мая 2010 VP8 — это современный видео кодек, не обремененный никакими патентами, кроме патентов, которые On2 (теперь Google) уже лицензировали безвозмездно.

Куда дальше

Показать комментарии