MPEG2 - хранение
и передача видео
©Сергей Блохнин,
Компания Сплайн
В этой статье
мы попытаемся дать представление о формате MPEG и обсудим его
преимущества и недостатки для хранения, передачи и редактирования
видеоданных.
Концепция
Видеоданные по своей природе занимают чрезвычайно большой объем.
Над задачей возможно более эффективного сжатия видео уже много
лет бьются специалисты в этой области. В начале третьего тысячелетия
в связи с острой необходимостью передавать большие объемы видео
по различным сетям, задача оптимального по соотношению качество/объем
способа кодирования видео стала еще более актуальной.
Концепция сжатия видео в MPEG очень проста
- определить, какая именно информация в потоке повторяется хотя
бы в течении какого-то отрезка времени и принять меры к избежанию
дублирования этой информации. Наиболее ценное достоинство MPEG
кодирования, особенно удобное для передачи по различным сетям
- возможность гибкой настройки качества изображения в зависимости
от пропускной способности сети. Это и сделало MPEG-2 фактическим
стандартом для приема/передачи цифрового телевидения по различным
сетям.
К сожалению, не существует возможности
однозначно оценить качество кодирования некими приборами и измерениями.
Единственный критерий здесь - человек и как он воспримет сжатую
информацию. Поэтому правила сжатия видеоданных при MPEG кодировании
вырабатывались на основе модели восприятия человеком видеоизображений
(HVS - Human Visual Sense).
Избыточность изображения согласно HVS
определяется по трем основным критериям:
- Невидимые человеческим
глазом детали изображения - места гашения по вертикали и горизонтали.
Удаление этой информации вообще никак не сказывается на изображении
- Статистическая избыточность.
Подразделяется на пространственную и временную. Под пространственной
избыточностью понимаются участки изображения, на которых смежные
пиксели практически одинаковы. Под временной - не изменяемые
во времени фрагменты изображения.
- Избыточность по цвету
и яркости - рассчитывается исходя из ограниченной чувствительности
человека к небольшим изменениям цветов и яркости деталей изображения.
Как реализуется
Для удобства кодирования видеоданных весь видеопоток разбивается
на группы, называемые GOP (Group of Pictures). Такая группа строится
следующим образом:
где:
I - Intra кадры, которые обычно называются
опорными и содержат всю информацию об изображении. MPEG последовательности
без этих кадров быть не может в принципе. При компрессии I кадров
происходит удаление только пространственной избыточности. Именно
с этого кадра начинается декодирование изображения в последовательности.
P- Predictive кадры. "Предсказанные" кадры,
при формировании которых используется метод предсказания изображения
на следующем кадре с учетом компенсации движения от последнего
I или P кадра перед формируемым. P кадр также служит для дальнейшего
предсказания изображения. P кадр создается с помощью межкадровой
компрессии, уменьшающей как пространственную, так и временную
избыточность. Изображение P кадра вычитается из следующего изображения
и эта разница кодируется и вместе с вектором движения добавляется
к сжатым данным.
B - Bi-directional, "двунаправленные" кадры.
Они названы так потому, что хранят наиболее существенную информацию
с окружающих их I и P кадров. B кадры имеют наивысшую степень
компрессии, но требуют предыдущего и последующего изображения
для компенсации движения объектов на изображении.
Такую структуру MPEG потока обычно описывают в виде дроби M/N,
для которой M сообщает общее число кадров в GOP, а N - каким по
счету будет очередной P кадр после предыдущего. Таким образом,
GOP последовательность, изображенная на рисунке выше, может быть
записана как 12/3.
Собственно поток данных MPEG состоит
из 6-ти иерархических уровней
- Блок - данные по яркости
и цветности для блоков 8х8 изображения. Блоки анализируются
по значениям Y (яркость), CB и CR (цветоразностные сигналы)
- Макроблок - как следует
из названия, состоит из 4 простых блоков в окне 16х16
пикселей соответственно. В формате 4:2:0 макроблок содержит
4 блока яркостных данных Y и по одному CB и CR.
- Слой - содержит несколько
смежных макроблоков
- Кадр - состоит из группы
слоев, содержащих изображение, которое, в свою очередь, может
быть как I, так P или B.
- Группа изображений (она
же GOP) - содержит последовательность кадров. Может включать
до 15 кадров и должна обязательно начинаться с I кадра.
- Видеопоследовательность
- должна содержать минимум одну GOP, а также заголовок в начале
последовательности и код конца последовательности.
Уровни и профили MPEG
Под профилем MPEG понимается
подмножество структуры битового потока сжатого видеоизображения.
В пределах такого подмножества возможен широкий разброс параметров
потока и, соответственно, кодеров и декодеров для них.
Под уровнем понимается ряд ограничений,
применяемых к параметрам MPEG потока, например, разрешение выходного
изображения, частота кадров и т.п.
Таблица ниже иллюстрирует максимальные
значения ограничений, накладываемых на уровни и профили MPEG:
Профиль/
уровень |
Простой
I, P 4:2:0
(Simple Profile) |
Основной
I, P, B 4:2:0
(Main Profile) |
I,
P, B 4:2:2 |
I,
P, B 4:2:0
(SNR Scalable
Profile) |
Пространственный I, P, B
4:2:0
(Spatially
Scalable
Profile) |
Высокий
I, P, B 4:2:0 или 4:2:2
(High Profile)
|
Самый
высокий (High Level) |
|
1920x1152
80 Mbit/s |
|
|
|
1920x1152
100 Mbit/s |
Высокий
(High 1440 Level) |
|
1440x1152
60 Mbit/s |
|
|
1440x1152
60 Mbit/s |
1440x1152
80 Mbit/s |
Основной
(Main Level) |
720x576
15 Mbit/s |
720x576
15 Mbit/s |
720x608
50 Mbit/s |
720x576
15 Mbit/s |
|
720x608
20 Mbit/s |
Низкий
(Low Level) |
|
352x288
4 Mbit/s |
|
352x288
4 Mbit/s |
|
|
Эта таблица нужна в первую
очередь, для понимания часто встречающихся обозначений формата
конкретной записи или описаний возможности какого-либо кодера.
Например, вот так может характеризоваться запись в формате MPEG-1:
Название |
Обозначение |
Что есть что: |
Standard |
PAL |
**Система телевидения |
Resolution |
720*576 |
Разрешение изображения |
Profile and level |
MP@ML |
Main Profile и Main Level |
Frame rate |
25 |
Частота кадров |
Bitrate |
around 5 Mbit avg |
Скорость потока 5 Mbit |
GOP
structure |
IBBPBBPBBPBB |
Структура GOP |
**На самом деле здесь правильнее
было бы написать: PAL - название аналогового стандарта телевидения,
в котором был создан исходный видеофильм. Собственно MPEG фильм
нельзя отнести к какой-либо системе цветного телевидения, так
кадры в MPEG являются просто цифровым представлением ранее аналогового
изображения и не имеют никакого отношения даже к исходной для
оригинала фильма системе телевидения.
Практическое
использование
Придирчивый читатель спросит - чем поможет мне в работе эта информация?
Тем, кто не работает с видео, конечно, эта информация может мало
что дать, но остальным может помочь в их практической работе.
Многие пользователи, начавшие работать с DV видеокамерами и программами
для нелинейного видеомонтажа, стали задумываться над способами
сохранения своих творений если не на века, то, по крайней мере,
на ближайшие несколько десятков лет. Как не странно, большинство
начинающих DV видеомонтажников, еще основательно не зная MPEG,
планируют хранить свои проекты именно на CD дисках в формате MPEG,
даже не представляя, насколько сложно решается эта задача, если
пользователь желает в MPEG варианте сохранить качество исходного
DV фильма. Итак, наиболее часто встречающиеся вопросы на эту тему:
Почему я после сохранения
своего фильма в формате MPEG-2 вижу, что качество его заметно
ухудшилось?
Причин здесь несколько:
- С цифровой видеокамеры
на компьютер сбрасывается уже компрессированное, сжатое изображение.
DV, кстати, в сущности представляет собой частный случай MPEG
компрессии - это поток, состоящий только из I кадров.
Поэтому для сжатия в MPEG DV изображение подвергается
повторному сжатию, что качества не улучшит никогда.
- Параметры компрессии
были заданы неверно с точки зрения качества изображения.
- Используется быстрый,
но не очень качественный кодер MPEG
Почему качество изображения
на DVD дисках очень высокое, хотя это тоже MPEG-2 - можно ли получить
подобное качество в домашних условиях?
Качество видео на DVD дисках действительно очень высокое. Объясняется
оно двумя основными факторами - в качестве исходного видеоматериала
для создания MPEG-2 варианта фильма используется несжатое видео
профессионального качества, и, кроме этого, для кодирования в
MPEG-2 применяются аппаратные кодеры с очень высоким качеством
кодирования изображения. Стоимость таких кодеров доходит до нескольких
десятков тысяч долларов США. Поэтому получить в домашних условиях
подобное качество с DV фильма невозможно.
Я имею DV видеокамеру
с возможностью съемки в режиме прогрессивного сканирования. Потом
я хочу сохранить готовый фильм в формате MPEG. Как мне лучше снимать,
в обычном чересстрочном режиме или в прогрессивном?
Так как кодеры MPEG выполняют покадровую обработку изображения,
съемка с прогрессивной разверткой будет более правильным решением
для последующего сохранения в MPEG формате.
Что означают параметры,
которые предлагается указать до кодирования фильма в MPEG формат?
Таких параметров может быть много, но следует остановиться на
наиболее важных из них:
- Profile ID и Level ID
- см. таблицу выше
- Frame Intervals - для
понимания того, что имеется ввиду, следует учесть, что обычно
задается интервал между I кадрами, что фактически означает размер
GOP, а также каким по счету будет очередной P кадр после
предыдущего. Чем больше будет интервал между I кадрами, тем
хуже будет качество изображения, но меньше размер результирующего
файла. Кроме этого, интервал между I кадрами не рекомендуется
делать больше 15.
- Motion Estimation - компенсация
движения. Параметр определяет, насколько правильно будет предсказываться
движение объекта и очень важен как для качества выходного изображения,
так и для оценки времени кодирования. Большее значение даст
лучшее качество, но значительно увеличит время работы кодера.
При установке этого параметра надо понимать, что максимальное
значение может быть "неподъемным" для процессора компьютера
и желанный фильм может создаваться несколько суток.
- Frame sequence - параметр,
во многом аналогичный Frame Intervals. Обычно предлагает выбрать
вид кодирования - только I кадры, I + P кадры и I, P, B кадры,
а также интервалы для P и B кадров. Что касается того, как кодировать
- лучшее качество, но максимальный объем дает кодирование в
только I кадры, затем соответственно, I + P и I, P, B.
Классическими апробированными значениями для интервалов значениями
являются P=3 и B=2. Строго говоря, для DVD принято использовать
структуру 15/3 или IBBPBBPBBPBBPBB.
- Video Data Rate - скорость
видеопотока. Во многих кодерах, рассчитанных на массового пользователя,
это основной параметр, относительно которого кодер сам устанавливает
все остальные. Измеряется обычно в мегабитах в секунду. Установив
это значение и умножив его на продолжительность фильма в секундах,
легко получить объем итого файла.
Я хочу хранить свои фильмы
только в MPEG-2 формате. Каким образом я смогу показывать свои
фильмы в MPEG-2 на телевизоре моим гостям, ведь изображение на
TV выходе видеокарты очень некачественное?
Для этих целей желательно приобрести аппаратный MPEG-2 декодер,
стоимость которого не превышает $65-70. Эти декодеры имеют как
композитные, так и S-VHS видеовыходы и позволяют получить наивысшее
качество изображения. Следует помнить, что наилучшее качество
изображения всегда будет именно на телевизоре. Конечно, кодировать
свои фильмы в этом случае надо будет в том профиле и уровне MPEG,
который поддерживается аппаратным декодером.
Я хочу сразу сохранять
фильмы в MPEG формате и в нем же редактировать. Возможно и правильно
ли это делать?
Сохранять, конечно, можно, но редактировать MPEG видео очень трудно
и неудобно. Дело в том, что при редактировании MPEG невозможна
точная до кадра нарезка фрагментов, так как отделять фрагменты
друг от друга можно только по I кадрам, иначе, при удалении опорного
кадра и сохранении следующих за ним кадров, изображение потеряет
читаемость. Наложение эффектов, переходов, фильтров также будет
нельзя делать с точностью до кадра, что может привести к невозможности
воплощения художественных замыслов. Кроме этого, рекомпрессия
изображения будет занимать значительно большее, по сравнению с
DV, время и требовать более мощных процессоров для этого.
Какие кодеры MPEG поддерживают
работу с DV форматом и обеспечивают при этом хорошее качество?
Есть несколько популярных кодеров MPEG, поддерживающих работу
с DV форматом:
- TMPEnc Encoder
- английская страница одного из лучших кодеров по качеству
изображения. На этой странице есть англоязычные патчи к программе
кодера, а также сама программа, написанная талантливым японским
программистом.
- BBMpeg
1.2 - неплохой
и также бесплатный кодер
- Ligos
MPEG Encoder - входит в состав популярного
видеоредактора Ulead MediaStudio Pro 6.0 и также существует
в виде plug-in к Adobe Premiere, но он, к сожалению, не бесплатный.
- Страница сравнения всех более-менее известных MPEG кодеров,
разумеется, со ссылками на сами кодеры.
|