Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Компьютерная документация - ОС, программирование, железо


Программирование и софт, все о компьютерах и windows - аналитический форум

 

Технология 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

 

 

{mospagebreak} 

Эта таблица нужна в первую очередь, для понимания часто встречающихся обозначений формата конкретной записи или описаний возможности какого-либо кодера. Например, вот так может характеризоваться запись в формате 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 - скорость видеопотока. Во многих кодерах, рассчитанных на массового пользователя, это основной параметр, относительно которого кодер сам устанавливает все остальные. Измеряется обычно в мегабитах в секунду. Установив это значение и умножив его на продолжительность фильма в секундах, легко получить объем итого файла.

Я хочу хранить свои фильмы только в MPEG-2 формате. Каким образом я смогу показывать свои фильмы в MPEG-2 на телевизоре моим гостям, ведь изображение на TV выходе видеокарты очень некачественное?
     Для этих целей желательно приобрести аппаратный MPEG-2 декодер, стоимость которого не превышает $65-70. Эти декодеры имеют как композитные, так и S-Video видеовыходы и позволяют получить наивысшее качество изображения. Следует помнить, что наилучшее качество изображения всегда будет именно на телевизоре. Конечно, кодировать свои фильмы в этом случае надо будет в том профиле и уровне MPEG, который поддерживается аппаратным декодером.  

Я имею DV видеокамеру с возможностью съемки в режиме прогрессивного сканирования. Потом я хочу сохранить готовый фильм в формате MPEG. Как мне лучше снимать, в обычном чересстрочном режиме или в прогрессивном?
     Для MPEG-1 ответ однозначный - съемка с прогрессивной разверткой лучше, так при компрессии в MPEG-1 одно поле телевизионного изображения просто отбрасывается. Для MPEG-2 ответ на этот вопрос зависит от того, как планируется использовать созданный MPEG-2 клип. Если планируется просматривать его только на компьютере и/или аппаратного декодера нет, то лучше использовать съемку с прогрессивной разверткой - изображение будет более четким, без артефактов движения. Если же аппаратный декодер MPEG-2 есть и планируется смотреть фильм на телевизоре, то более плавные и естественные движения объектов в фильме будут при съемке в обычном режиме. Многие современные кодеры MPEG-2 разрешают выбор типа исходного фильма (прогрессивная или чересстрочная развертка), при выборе чересстрочной развертки используют поля и при выводе с аппаратного декодера на видеовыход будет восстанавливаться исходное изображение с теми же полями, что и до сжатия.

Я хочу сразу сохранять фильмы в MPEG формате и в нем же редактировать. Возможно и правильно ли это делать?
     Сохранять, конечно, можно, но редактировать MPEG видео очень трудно и неудобно. Дело в том, что при редактировании MPEG невозможна реальная точная до кадра нарезка фрагментов, так как отделять фрагменты друг от друга можно только по I кадрам, иначе, при удалении опорного кадра и сохранении следующих за ним кадров, изображение потеряет читаемость. Редакторы видео с поддержкой MPEG позволяют как бы редактировать с точностью до кадра, но надо понимать, что при любых изменениях не I кадра будет выполняться рекомпрессия всей GOP, что скажется на качестве фильма отнюдь не в лучшую сторону.  Наложение эффектов, переходов, фильтров также будет нельзя делать с точностью до реального кадра, что может привести к невозможности качественного воплощения художественных замыслов. Кроме этого, рекомпрессия изображения в случае MPEG-2 будет занимать значительно большее, по сравнению с DV, время и требовать более мощных процессоров для этого.

Сейчас очень популярен в России формат MPEG-4. Есть ли смысл сохранять свои фильмы в этом формате?
Формат MPEG-4 изначально создавался для передачи видео по низкоскоростным каналам и не предназначался для хранения видео. Качество изображения по MPEG-4 безусловно хуже MPEG-2, но немного лучше MPEG-1. Компрессия/декомпрессия в MPEG-4 требует значительных затрат процессорного времени и просмотр, а тем более создание видео в формате MPEG-4 на компьютере с процессором ниже Celeron II 700 весьма затруднителен. В основном MPEG-4 используется для рекомпрессии в него оригинальных MPEG-2 фильмов, записанных на DVD дисках. MPEG-4 позволяет записать на обычном CD диске часовой фильм. Сохранять же в этом формате собственные фильмы нет никакого смысла по двум основным причинам:

  • Качество намного хуже оригинала

  • Отсутствие дешевых аппаратных декодеров и DVD плееров не позволяет смотреть "правильное" ТВ изображение на телевизоре

  • Отсутствует стандарт записи MPEG-4 на диск, аналогичный DVD стандарту.

Какие кодеры MPEG поддерживают работу с DV форматом и обеспечивают при этом хорошее качество?
Есть несколько популярных кодеров MPEG, поддерживающих работу с DV форматом:

  • TMPEnc Encoder - программа, популярная даже не столько собственно кодировщиком MPEG, сколько инструментами для мультиплексирования, демультиплексирования и "склеивания"/"нарезки" MPEG файлов. 

  • Main Concept MPEG Encoder - неплохой кодер, встроенные в популярные видеоредакторы Adobe Premiere, Ulead MSP и Vegas Video. 

  • Canopus ProCoder - пожалуй, лучший кодировщик DV материалов.

 



В избранное