MPEG-2
На сегодняшний день мы часто используем различные видеоданные, и все знают, что они занимают очень большой объем. Множество специалистов в данной области бьются за то, что бы можно было эффективно сживать видео.
Эта проблема стала более актуальной с наступлением 21 века, когда множество пользователей отправляют не малые объемы видеоданных.
Давайте, к примеру, посмотрим на сжатие видео в формат MPEG. На первый взгляд она проста, потому что не сложно определить повторяющуюся информацию в потоке, и сделать некоторые операции к избеганию подобного дублирования данных.
Видео в формате MPEG можно легко передавать по различным сетям. Можно по-разному настраивать качество изображения, в зависимости от пропускной способности сети.
Таким образом, MPEG-2 стал неким стандартом для приема или передачи цифрового видео. Увы, сейчас таких приборов, которые дали бы точные результаты по качеству кодирования. С этой точки зрения единственным критерием является человек, который по-своему принимает сжатую информацию. Именно поэтому сжатие видео в формате MPEG всегда вырабатывается при помощи человеческого слуха, и восприятии видеоизображения (HVS - Human Visual Sense).
Теперь, давайте рассмотрим несколько критериев, по изображению согласно HVS:
Первое это удаление некоторых мест по вертикали и горизонтали, что никак не воспринимается человеческим глазом.
Второй критерий – это статическая избыточность. В свою очередь она подразделяется на временную или пространственную.
Третий критерий – это избыточное изображение, в плане яркости и цвета. Здесь расчет иодет на ограниченную чувствительность человека, в некоторым цветовым изменениям, а также некоторым деталям изображения.
Поток данных делится на шесть иерархических уровней.
Слой – соединение смежных макроблоков.
Кадр – имеет структуру из нескольких слоев.
Макроблок – состоит из 4 блоков в одном окне 16на 16 пикселей.
Блок – здесь используется данные по цветности и яркости.
Видеопоследовательность – содержит одну GOP, и имеет определенный заголовок в конце и начале последовательности.
Группа изображений, или иначе GOP – имеет некоторую последовательность кадров до 15 штук, и начало идет всегда с первого кадра.

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:
Название |
Обозначение |
Что есть что: |
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 в сущности представляет
собой частный случай JPEG компрессии - это поток, состоящий из
сжатых по немного измененному алгоритму JPEG кадров. От идеи (но не принципов
сжатия) MPEG в DV используется только то, что при сжатии в DV учитывается
информация с двух полей одного кадра - так называемая intrafield компрессия.
Поэтому для сжатия в MPEG DV изображение сначала декомпрессируется,
а затем подвергается повторному сжатию, что качества не улучшит никогда.
- Параметры компрессии были заданы неверно
с точки зрения качества изображения.
- Используется быстрый, но не очень качественный
кодер MPEG
Почему качество изображения на DVD дисках очень высокое,
хотя это тоже MPEG-2 - можно ли получить подобное качество в домашних
условиях?
Качество видео на DVD дисках действительно очень высокое. Объясняется
оно двумя основными факторами - в качестве исходного видеоматериала для
создания MPEG-2 варианта фильма используется несжатое видео профессионального
качества, и, кроме этого, для кодирования в MPEG-2 применяются аппаратные
кодеры с очень высоким качеством кодирования изображения. Стоимость таких
кодеров доходит до нескольких десятков тысяч долларов США. Поэтому получить
в домашних условиях подобное качество с DV фильма невозможно.
Что означают параметры, которые предлагается указать
до кодирования фильма в 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 - скорость
видеопотока. Во многих кодерах, рассчитанных на массового пользователя,
это основной параметр, относительно которого кодер сам устанавливает
все остальные. Измеряется обычно в мегабитах в секунду. Установив это
значение и умножив его на продолжительность фильма в секундах, легко
получить объем итого файла.
|