Меню

Что такое оборудование mpeg



Формат MPEG — спецификация и возможности

В настоящее время у каждого любителя видео имеется возможность для создания собственной домашней видеостудии на базе персонального компьютера. Известно, что при работе с видеофайлами возникает необходимость обработки и хранения очень больших объемов информации, например одна минута цифрового видеосигнала с разрешением SIF (сопоставимым с VHS) и цветопередачей true color (миллионы цветов), займет (288 x 358) пикселов x 24 бита x 25 кадров/с x 60 c = 442 Мб, то есть на носителях, используемых в современных ПК, таких, как компакт-диск (CD-ROM, около 650Мб) или жеский диск (несколько десятков гигабайт) сохранить полноценное по времени видео, записанное в таком формате не удастся. С помощью MPEG-сжатия объем видеоинформации можно заметно уменьшить без заметной деградации изображения. О том, как работает MPEG и какие еще он имеет применения, и пойдет речь далее.

Слово MPEG является сокращением от Moving Picture Expert Group — названия экспертной группы ISO, действующая в направлении разработки стандартов кодирования и сжатия видео- и аудио- данных. Официальное название группы — ISO/IEC JTC1 SC29 WG11. Часто аббревиатуру MPEG используют для ссылки на стандарты, разработанные этой группой. На сегодняшний день известны следующие:

  • MPEG-1 предназначен для записи синхронизированных видеоизображения (обычно в формате SIF, 288 x 358) и звукового сопровождения на CD-ROM с учетом максимальной скорости считывания около 1.5 Мбит/с. Качественные параметры видеоданных, обработанных MPEG-1, во многом аналогичны обычному VHS-видео, поэтому этот формат применяется в первую очередь там, где неудобно или непрактично использовать стандартные аналоговые видеоносители.
  • MPEG-2 предназначен для обработки видеоизображения соизмеримого по качеству с телевизионным при пропускной способности системы передачи данных в пределах от 3 до 15 Мбит/с, а в профессиональной аппаратуре используют потоки скоростью до 50 Мбит/с. На технологии, основанные на MPEG-2, переходят многие телеканалы, сигнал сжатый в соответствии с этим стандартом транслируется через телевизионные спутники, используется для архивации больших объемов видеоматериала.
  • MPEG-3 — предназначался для использования в системах телевидения высокой четкости (high-defenition television, HDTV) со скоростью потока данных 20-40 Мбит/с , но позже стал частью стандарта MPEG-2 и отдельно теперь не упоминается. Кстати, формат MP3, который иногда путают с MPEG-3, предназначен только для сжатия аудиоинформации и полное название MP3 звучит как MPEG-Audio Layer-3.
  • MPEG-4 — задает принципы работы с цифровым представлением медиа-данных для трех областей: интерактивного мультимедиа (включая продукты, распространяемые на оптических дисках и через Сеть), графических приложений (синтетического контента) и цифрового телевидения.

КАК ПРОИСХОДИТ СЖАТИЕ

Базовым объектом кодирования в стандарте MPEG является кадр телевизионного изображения. Поскольку в большинстве фрагментов фон изображения остается достаточно стабильным, а действие происходит только на переднем плане, сжатие начинается с создания исходного кадра. Исходные (Intra) кадры кодируются только с применением внутрикадрового сжатия по алгоритмам, аналогичным используемым в JPEG. Кадр разбивается на блоки 8×8 пикселов. Над каждым блоком производится дискретно-косинусное преобразование (ДКП) с последующим квантованием полученных коэффициентов. Вследствии высокой пространственной корелляции яркости между соседними пикселами изображения, ДКП приводит к концентрации сигнала в низкочастотной части спектра, который после квантования эффективно сжимается с использованием кодирования кодами переменной длины. Обработка предсказуемых (Predicted) кадров производится с использованием предсказания вперед по предшествующим исходным или предсказуемым кадрам. Кадр разбивается на макроблоки 16×16 пикселов, каждому макроблоку ставится в соответствие наиболее похожий участок изображения из опорного кадра, сдвинутый на вектор перемещения. Эта процедура называется анализом и компенсацией движения. Допустимая степень сжатия для предсказуемых кадров превышает возможную для исходных в 3 раза. В зависимости от характера видеоизображения, кадры двунаправленной интерполяции (Bi-directional Interpolated ) кодируются одним из четырех способов: предсказание вперед; обратное предсказание с компенсацией движения — используется когда в кодируемом кадре появляются новые объекты изображения; двунаправленное предсказание с компенсацией движения; внутрикадровое предсказание — при резкой смене сюжета или при высокой скорости перемещения злементов изображения. С двунаправленными кадрами связано наиболее глубокое сжатие видеоданных, но, поскольку высокая степень сжатия снижает точность восстановления исходного изображения, двунаправленние кадры не используются в качестве опорных. Если бы коэффициенты ДКП передавались точно, восстановленное изображение полностью совпадало бы с исходным. Однако ошибки восстановления коэффициентов ДКП, связванные с квантованием, приводят к искажениям изображения. Чем грубее производится квантование, тем меньший объем занимают коэффициенты и тем сильнее сжатие сигнала, но и тем больше визуальных искажений.

Благодаря тому, что MPEG разрабатывается в такой авторитетной организацией как ISO и является достаточно универсальным методом сжатия (может использоваться в видеозаписи, телевещании, домашнем видеомонтаже, мультимедийных программах (обучающих, игровых) телеконференциях создании видеороликов для презентаций в Интернет) он стал доминирующим стандартом сжатия цифрового видео, избавив от необходимости использования множества существовавших до него несовместимых способов сжатия видео.

Как работает MPEG-видео

Цветное цифровое изображение из сжимаемой последовательности переводится в цветовое пространство YUV (YCbCr). Компонента Y представляет собой интенсивность, а U и V — цветность. Так как человеческий глаз менее восприимчив к цветности, чем к интенсивности, то разрешений цветовых компонент может быть уменьшено в 2 раза по вертикали, или и по вертикали и по горизонтали. К анимации и высококачественному студийному видео уменьшение разрешения не применяется для сохранения качества, а для бытового применения, где потоки более низкие, а аппаратура более дешевая, такое действие не приводит к заметным потерям в визуальном восприятии, сохраняя в то же время драгоценные биты данных.

Основная идея всей схемы — это предсказывать движение от кадра к кадру, а затем применить дискретное косинусное преобразование (ДКП), чтобы перераспределить избыточность в пространстве. ДКП выполняется на блочках 8×8 точек, предсказание движения выполняется на канале интенсивности (Y) на блоках 16×16 точек, или, в зависимости от характеристик исходной последовательности изображении (черезстрочная развертка, содержимое), на блоках 16×8 точек. Другими словами, данный блок 16×16 точек в текущем кадре ищется в соответствующей области большего размера в предыдущих или последующих кадрах. Коэффициенты ДКП (исходных данных или разности этого блока и ему соответствующего) квантуются, то есть делятся на некоторое число, чтобы отбросить несущественные биты. Многие коэффициенты после такой операции оказываются нулями. Коэффициент квантизации может изменяться для каждого «макроблока» (макроблок — блок 16×16 точек из Y-компонент и соответсвующие блоки 8×8 в случае отношения YUV 4:2:0, 16×8 в случае 4:2:2 и 16×16 в случае 4:4:4. Коэффициенты ДКП, параметры квантизации, векторы движения и пр. кодируется по Хаффману с использованием фиксированных таблиц, определенных стандартом. Закодированные данные складываются в пакеты, которые формируют поток согласно синтаксису MPEG.

Соотношение и типы кадров

Существует три типа закодированных кадров. I-фремы — это кадры, закодированные как неподвижные изображения — без ссылок на последующие или предыдущие. Они используются как стартовые. P-фреймы — это кадры, предсказанные из предыдущих I- или P-кадров. Каждый макроблок в P-фрейме может идти с вектором и разностью коэффициентов ДКП от соответствующего блока последнего раскодированного I или P, или может быть закодирован как в I, если не соответствующего блока не нашлось.

И, наконец, существуют B-фреймы, которые предсказаны из двух ближайших I или P-фреймов, одного предыдущего и другого — последующего. Соответсвующие блоки ищутся в этих кадрах и из них выбирается лучший. Ищется прямой вектор, затем обратный и вычисляется среднее между соответствующими макроблоками в прошлом и будущем. Если это не работает, то блок может быть закодирован как в I-фрейме.

Последовательность раскодированных кадров обычно выглядит как
I B B P B B P B B P B B I B B P B B P B .

Здесь 12 кадров от I до I фрейма. Это основано на требовании произвольного доступа, согласно которому начальная точка должна повторяться каждые 0.4 секунды. Соотношение P и B основано на опыте.

Чтобы декодер мог работать, необходимо, чтобы первый P-фрейм в потоке встретился до первого B, поэтому сжатый поток выглядит так:
0 x x 3 1 2 6 4 5 .
где числа — это номера кадров. xx может не быть ничем, если это начало последовательности, или B-фреймы -2 и -1, если это фрагмент из середины потока.
Сначала необходимо раскодировать I-фрейм, затем P, затем, имея их оба в памяти, раскодировать B. Во время декодирования P показывается I-фрейм, B показываются сразу, а раскодированный P показывается во время декодирования следующего.

Алгоритм MPEG-компрессии аудио

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

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

Потоки, частоты и размеры кадров

Как MPEG-1, так и MPEG-2, могут быть применены к широкому классу потоков, частот и размеров кадров. MPEG-1, знакомый большинству людей, позволяет передавать 25 кадров/с с разрешением 352×288 в PAL или 30 кадр/с с разрешением 352×240 в NTSC при величине потока менее 1.86 Мбит/с — комбинация, известная как «Constrained Parameters Bitstreams». Это цифры введены спецификацией White Book для видео на CD ( VideoCD ).

Фактически, синтаксис позволяет кодировать изображения с разрешением до 4095×4095 с потоком до 100 Мбит/с. Эти числа могли бы быть и бесконечными, если бы не ограничение на количество бит в заголовках.

С появлением спецификации MPEG-2, самые популярные комбинации были объединены в уровни и профили. Самые общие из них:

  • Source Input Format (SIF), 352 точки x 240 линий x 30 кадр/с, известный также как Low Level (LL) — нижний уровень, и
  • «CCIR 601» (например 720 точек/линию x 480 линий x 30 кадр/с), или Main Level — основной уровень.

Компенсация движения заменяет макроблоки макроблоками из предыдущих картинок
Предсказания макроблоков формируются из соответсвующих 16×16 блоков точек (16×8 в MPEG-2) из предыдущих восстановленных кадров. Никаких ограничений на положение макроблока в предыдущей картинке, кроме ее границ, не существует.

Исходные кадры — reference — (из которых формируются предсказания) показаны безотносительно своей закодированной формы. Как только кадр раскодирован, он становится не набором блоков, а обычным плоским цифровым изображением из точек.

В MPEG размеры отображаемой картинки и частота кадров может отличаться от закодированного в потоке. Например, перед кодированием некотрое подмножество кадров в исходной последовательности может быть опущено, а затем каждый кадр фильтруется и обрабатывается. При восстановлении интерполированы для восстановления исходного размера и частоты кадров. Фактически, три фундаментальных фазы (исходная частота, кодированная и показываемая) могут отличаться в параметрах. Синтаксис MPEG описывает кодированную и показываемую частоту через заголовки, а исходная частота кадров и размер известен только кодеру. Именно поэтому в заголовки MPEG-2 введены элементы, описывающие размер экрана для показа видеоряда.
В I-фрейме макроблоки должны быть закодированы как внутренние — без ссылок на предыдущие или последующие, если не используются масштабируемые режимы. Однако, макроблоки в P-фрейме могут быть как внутренними, так и ссылаться на предыдущие кадры. Макроблоки в B-фрейме могут быть как внутренними, так и ссылаться на предыдущий кадр, последующий или оба. В заголовке каждого макроблока есть элемент, определяющий его тип.

Без компенсации движения:

С компенсацией движения:

Пропущенные макроблоки в P-фреймах:

Пропущенные макроблоки в B-фреймах:

Последовательность кадров может иметь любую структуру размещения I, P и B фреймов. В промышленной практике принято иметь фиксированную последовательность (вроде IBBPBBPBBPBBPBB), однако, более мощные кодеры могут оптимизировать выбор типа кадра в зависимости от контекста и глобальных характеристик видеоряда.
Каждый тип кадра имеет свои преимущества в зависимости от особенностей изображения (активность движения, временные эффекты маскирования. ).
Например, если последовательность изображений мало меняется от кадра к кадру, есть смысл кодировать больше B-фреймов, чем P. Поскольку B-фреймы не используются в дальнейшем процессе декодирования, они могут быть сжаты сильнее, без влияния на качество видеоряда в целом.
Требования конкретного приложения также влияют на выбор типа кадров: ключевые кадры, переключение каналов, индексирование программ, восстановление от ошибок и т.д.
При сжатии видео используются следующие статистические характеристики:
1. Пространственная корреляция: дискретное косинусное преобразование 8×8 точек.

2.Особенности человеческого зрения — невосприимчивость к высокочастотным составляющим: скалярное квантование коэффициентов ДКП с потерей качества.

3. Большая пространственная корреляция изображения в целом: предсказание первого низкочастотного коэффициента преобразования в блоке 8×8 (среднее значение всего блока).

4. Статистика появления синтаксических элементов в наиболее вероятном кодируемом потоке: оптимальное кодирование векторов движения, коэфициентов ДКП, типов макроблоков и пр.

5. Разряженная матрица квантованных коэффициентов ДКП: кодирование повторяющихся нулевых элементов с обозначением конца блока.

6. Пространственное маскирование: степень квантования макроблока.

7. Кодирование участков с учетом содержания сцены: степень квантования макроблока.

8. Адаптация к локальным характеристикам изображения: кодирование блоков, тип макроблока, адаптивное квантование.

9. Постоянный размер шага при адаптивном квантовании: новая степень квантования устанавливается только специальным типом макроблока и не передается по умолчанию.

10. Временная избыточность: прямые и обратные векторы движения на уровне макроблоков 16×16 точек.

11. Кодирование ошибки предсказаний макроблоков с учетом восприятия: адаптивное квантование и квантование коэффициентов преобразования.

12. Малая ошибка предсказания: для макроблока может быть сигнализированно отсутствие ошибки.

13. Тонкое кодирование ошибки предсказания на уровне макроблоков: каждый из блоков внутри макроблока может быть кодирован или пропущен.

14. Векторы движения — медленное движение фрагмента изображения со сложным рисунком: предсказание векторов движения.

15. Появления и исчезновения: прямое и обратное предсказание в B-фреймах.

16. Точность межкадрового предсказания: билинейно интерполированные (фильтрованные) разности блоков. В реальном мире движения объектов от кадра к кадру редко попадают на границы точек. Интерполяция позволяет выяснить настоящее положение объекта, зачастую увеличивая эффективность сжатия на 1 дБ.

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

18. Компланарное движение в B-фреймах: пропущенные макроблоки. Когда вектор движения тот же, а ошибка предсказания нулевая.

Источник

MPEG: Общая информация

Стандарт сжатия MPEG разработан Экспертной группой кинематографии (Moving Picture Experts Group — MPEG). MPEG это стандарт на сжатие звуковых и видео файлов в более удобный для загрузки или пересылки, например через интернет, формат.

Существуют разные стандарты MPEG (как их еще иногда называют фазы — phase): MPEG-1, MPEG-2, MPEG-3, MPEG-4, MPEG-7.

MPEG состоит из трех частей: Audio, Video, System (объединение и синхронизация двух других).

MPEG-1

По стандарту MPEG-1 потоки видео и звуковых данных передаются со коростью 150 килобайт в секунду — с такой же скоростью, как и односкоростной CD-ROM проигрыватель — и управляются путем выборки ключевых видео кадров и заполнением только областей, изменяющихся между кадрами. К несчастью, MPEG-1 обеспечивает качество видеоизображения более низкое, чем видео, передаваемое по телевизионному стандарту.

Читайте также:  Налогообложение физического лица при продаже оборудования

MPEG-1 был разработан и оптимизирован для работы с разрешением 352 ppl (point per line — точек на линии) * 240 (line per frame — линий в кадре) * 30 fps (frame per second — кадров в секунду), что соответствует скорости передачи CD звука высокого качества. Используется цветовая схема — YCbCr (где Y — яркостная плоскость, Cb и Cr — цветовые плоскости).

Как MPEG работает:

В зависимости от некоторых причин каждый frame (кадр) в MPEG может быть следующего вида:

  • I (Intra) frame — кодируется как обыкновенная картинка.
  • P (Predicted) frame — при кодировании используется информация от предыдущих I или P кадров.
  • B (Bidirectional) frame — при кодировании используется информация от одного или двух I или P кадров (один предшествующий данному и один следующий за ним, хотя может и не непосредственно, см. Рис.1)

Последовательность кадров может быть например такая: IBBPBBPBBPBBIBBPBBPB …

Последовательность декодирования: 0312645…

Нужно заметить, что прежде чем декодировать B кадр требуется декодировать два I или P кадра. Существуют разные стандарты на частоту, с которой должны следовать I кадры, приблизительно 1-2 в секунду, соответствуюшие стандарты есть и для P кадров (каждый 3 кадр должен быть P кадром). Существуют разные относительные разрешения Y, Cb, Cr плоскостей (Таблица 1), обычно Cb и Cr кодируются с меньшим разрешением чем Y.

Таблица 1


Вид ФорматаОтношения разрешений по горизонтали (Cb/Y):Отношение разрешений по вертикали (Cb/Y):
4:4:41:11:1
4:2:21:21:1
4:2:01:21:2
4:1:11:41:1
4:1:01:41:4

Для применения алгоритмов кодировки происходит разбивка кадров на макроблоки каждый из которых состоит из определенного количества блоков (размер блока — 8*8 пикселей). Количество блоков в макроблоке в разных плоскостях разное и зависит от используемого формата (Рис. 2):


Рмс.2 Пример для формата 4:2:0

Техника кодирования:

Для большего сжатия в B и P кадрах используется алгоритм предсказания движения (что позволяет сильно уменьшить размер P и B кадров — Таблица 2) на выходе которого получается:

  • Вектор смещения (вектор движения) блока который нужно предсказать относительно базового блока.
  • Разница между блоками (которая затем и кодируется).

Так как не любой блок можно предсказать на основании информации о предыдущих, то в P и B кадрах могут находиться I блоки (блоки без предсказания движения).

Таблица 2


Вид кадраIPBСредний размер
Размер кадра для стандарта SIF (kilobit)150502038

Метод кодировки блоков (либо разницы, получаемой при методе предсказание движения) содержит в себе:

  • Discrete Cosine Transforms (DCT — дискретное преобразование косинусов).
  • Quantization (преобразование данных из непрерывной формы в дискретную).
  • Кодировка полученного блока в последовательность.

DCT использует тот факт, что пиксели в блоке и сами блоки связаны между собой (т.е. коррелированны), поэтому происходит разбивка на частотные фурье компоненты (в итоге получается quantization matrix — матрица преобразований данных из непрерывной в дискретную форму, числа в которой являются величиной амплитуды соответствующей частоты), затем алгоритм Quantization разбивает частотные коэффициенты на определенное количество значений. Encoder (кодировщик) выбирает quantization matrix которая определяет то, как каждый частотный коэффициент в блоке будет разбит (человек более чувствителен к дискретности разбивки для малых частот чем для больших). Так как в процессе quantization многие коэффициенты получаются нулевыми то применяется алгоритм зигзага для получения длинных последовательностей нулей (Рис.3)

Звук в MPEG:

Форматы кодирования звука деляться на три части: Layer I, Layer II, Layer III (прообразом для Layer I и Layer II стал стандарт MUSICAM, этим именем сейчас иногда называют Layer II). Layer III достигает самого большого сжатия, но, соответственно, требует больше ресурсов на кодирование.

Принципы кодирования основаны на том факте, что человеческое ухо не совершенно и на самом деле в несжатом звуке (CD-audio) передается много избыточной информации. Принцип сжатия работает на эффектах маскировки некоторых звуков для человека (например, если идет сильный звук на частоте 1000 Гц, то более слабый звук на частоте 1100 Гц уже не будет слышен человеку, также будет ослаблена чувствительность человеческого уха на период в 100 мс после и 5 мс до возникновения сильного звука). Psycoacustic (психоакустическая) модель используемая в MPEG разбивает весь частотный спектр на части, в которых уровень звука считается одинаковым, а затем удаляет звуки не воспринимаемые человеком, благодаря описанным выше эффектам.

В Layer III части разбитого спектра самые маленькие, что обеспечивает самое хорошее сжатие. MPEG Audio поддерживает совместимость Layer’ов снизу вверх, т.е. decoder (декодировщик) для Layer II будет также распознавать Layer I.

Синхронизация и объединение звука и видео, осуществляется с помощью System Stream (Рис. 4), который включает в себя:

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

Видео поток (Рис. 5) содержит заголовок, затем несколько групп картинок (заголовок и несколько картинок необходимы для того, что бы обеспечить произвольный доступ к картинкам в группе в независимости от их порядка).

Звуковой поток состоит из пакетов каждый из которых состоит из заголовка и нескольких звуковых кадров (audio-frame).

Для синхронизации аудио и видео потоков в системный поток встраивается таймер, работающий с частотой 90 КГц (System Clock Reference — SCR, метка по которой происходит увеличения временного счетчика в декодере) и Presentation Data Stamp (PDS, метка насала воспроизведения, вставляются в картинку или в звуковой кадр, чтобы объяснить декодеру, когда их воспроизводить. Размер PDS сотавляет 33 бита, что обеспечивает возможность представления любого временного цикла длинной до 24 часов).

Параметры MPEG-1 (Утверждены в 1992)

Параметры Аудио: 48, 44.1, 32 КГц, mono, dual (два моно канала), стерео, интенсивное стерео (объединяются сигналы с частотой выше 2000 Гц.), m/s stereo (один канал переносит сумму — другой разницу). Сжатие и скорость передачи звука для одного канала, для частоты 32 КГц представлены в Таблице 3.

Таблица 3


Способ кодированияСкорость передачи kbps (килобит в сек.)Коэффициент сжатия
Layer I1921:4
Layer II128..961:6..8
Layer III64..561:10..12

Параметры Видео : в принципе с помощью MPEG-1 можно передавать разрешение вплоть до 4095×4095×60 fps (в этих границах кадр может быть произвольного размера), но так как существует Constrained Parameters Bitstream (CPB, неизменяемые параметры потока данных; другие стандарты для MPEG-1 поддерживаются далеко не всеми декодерами) которые ограничивают общее число макроблоков в картинке (396 для скорости forwards compatible » (вперед совместимыми) — MPEG-2 Audio Decoder понимает любые MPEG-1 аудио каналы.

  • » backward compatible » (обратно совместимыми) — MPEG-1 Audio Decoder должен понимать ядро MPEG-2 Audio (L-канал, R-канал)
  • » matrixing » (матрицируемыми) — MPEG1 Audio Decoder должен понимать 5-ти канальный MPEG-2 (L = left signal + a * center signal + b * left surround signal, R = right signal + a * center signal + b * right surround signal)
  • MPEG-1 Звуковой декодер не обязан понимать MPEG-2 AAC.
  • В следствии зтого совершенно спокойно можно использовать MPEG-1 Vidio + MPEG-2 Audio или наоборот MPEG-2 Audio + MPEG-1 Video.

    Изменения в Видео:

    • Требуется чтобы разрешение по вертикали и горизонтали было кратно 16 в кодировщике кадров (frame-encoder) стандартах (покадровое кодирование), и 32 по вертикали в кодировщике полей (field-encoder, каждое поле состоит из двух кадров) стандартах (interlaced video).
    • Возможность форматов 4:4:4, 4:2:2 (Next profile).
    • Введены понятия Profile (форма, профиль) и Levels (уровни).
    • Размер frame до 16383*16383.
    • Возможность кодировать interlaced video.
    • Наличие режимов масштабирования (Scalable Modes)
    • Pan&Scanning вектор (вектор панорамировани и масштабирования), который говорит декодеру как преобразовывать, например 16:9 в 4:3.

    Изменения связаные с алгоритмами кодирования:

    • Точность частотных коэффициентов выбирается пользователем (8, 9, 10, 11 бит на одно значение × в MPEG-1 только 8 бит).
    • Нелинейный quantization процесс (разбиение непрерыных данных в дискретные).
    • Возможность загрузить quantization matrix (матрица преобразований непрерыных данных в дискретные) перед каждым кадром.
    • Новые режимы предсказания движения (16×8 MC, field MC, Dual Prime)

    Scalable Modes (доступно только в Next и Main+ Profile) делят MPEG-2 на три слоя (base, middle, high) для того чтобы организовать уровни приоритета в видеоданных (на пример более приоритетный канал кодируется с большим количеством информации по коррекции ошибок чем менее):

    1. Spatial scalability (пространственное масштабирование) — основной слой кодируется с меньшим разрешением и затем он используется как предсказание для более приоритетных.
    2. Data Partitioning (дробление данных) — разбивает блок из 64 quantization коэффициентов в два потока из которых более приоритетный переносит низкочастотные (наиболее критичные к качеству), а менее приоритетный (высокочастотные).
    3. SNR (Signal to Noise Ratio) Scalability (масштабировние соотношения сигна/шум) — каналы кодируются с одинаковой скоростью, но с разным качеством (менее приоритетный слой содержит плохую картинку — более дискретные шаги, а высокоприоритетный слой содержит довесок позволяющий построить качественную картинку)
    4. Temporal Scalability (временное масштабирование) — менее приоритетный слой содержит канал с низкой скоростью передачи кадров, а высокоприоритетный содержит информацию позволяющую восстановить промежуточные кадры используя для предсказания менее приоритетные.

    Таблица 4, Уровни


    УровеньМаксимальное разрешениеМаксимальная скоростьПримечание
    Low352*240*304 MbpsCIF, кассеты
    Main720*480*3015 MbpsCCIR 601, студийное TV
    High 14401440*1152*3060 Mbps4×601, бытовое HDTV
    High1920*1080*3080 MbpsПродукция SMPTE 240M std

    Таблица 5, Профили


    ПрофильКомментарии
    SimpleТакой же как и Main только без B — картинок. Используется в программах и CATV (кабельное ТВ)
    MainСтандартный MPEG-1, 95% пользователей, CATV, спутники
    Main+Main со Spatial и SNR Scalability
    NextMain+ c форматом 4:2:2

    Таблица 6, Допустимые комбинации Профилей и Уровней


    SimpleMainMain+Next
    HighNoNo4:2:2
    High 1440NoMain c Spatial Scalability4:2:2
    Main90% от всехMain c SNR Scalability4:2:2
    LowNoMain c SNR ScalabilityNo

    Таблица 7, Наиболее популярные стандарты.


    РазрешениеКомментарии
    352*480*24 (progressive)VHS, хорош для фильмов
    544*480*30 (interlaced)Laserdisc (LD), D-2, Качество как у PAL
    704*480*30 (interlaced)Качество CCIR 601.Studio D-1

    Системный уровень MPEG-2, обеспечивает два уровня объединения данных:

    1. Packetized Elementary Stream (PES) — разбивает звук и видео на пакеты.
    2. Второй уровень делится на:
      • MPEG-2 Program Stream (совместим с MPEG-1 System) — для локальная передача в среде с маленьким уровнем ошибок
      • MPEG-2 Transport Stream (Рис. 6) — внешнее вещание в среде с высоким уровнем ошибок — передает транспортные пакеты (длиной 188 либо 188+16 бит) двух типов (сжатые данные — PES — и сигнальную таблицу Program Specific Information — PSI).

    MPEG-3 — ненужный формат

    Был разработан для HDTV приложений с параметрами — максимальное разрешение (1920*1080*30), скорость 20 — 40 Mbps. Так как он не давал принципиальных улучшений по сравнению с MPEG-2 (да и к тому же MPEG-2 стал широко использоваться в разных вариантах, в том числе и для HDTV), то он благополучно вымер.

    MPEG-4 — очень мощный формат

    MPEG-4 — стандарт для низкоскоростной передачи (64 kbps), находящийся еще в стадии разработки. Первую версию планируется закончить в 1999 году.

    Краткое описание:

    • Разделяет картинку на различные элементы, называемые media objects (медиа объекты).
    • Описывает структуру этих объектов и их взаимосвязи чтобы затем собрать их в видеозвуковую сцену (Рис. 7).
    • Позволяет изменять сцену, что обеспечивает высокий уровень интерактивности для конечного пользователя (Рис. 8).

    Видеозвуковая сцена состоит из медиа объектов, которые объеденены в иархическую структуру:

    • Неподвижные картинки (например фон)
    • Видио объекты (говорящий человек).
    • Аудио объекты (голос связанный с этим человеком).
    • Текст связанный с данной сценой.
    • Синтетические объекты — объекты которых не было изначально в записываемой сцене, но которые туда добавляются при демонстрации конечному пользователю (например синтезируется говорящая голова).
    • Текст связанный с головой из которого в конце синтезируется голос.

    Такой способ представления данных позволяет:

    • Перемещать и помещать медиа объекты в любое место сцены.
    • Трансформировать объекты, изменять геометрические размеры.
    • Собирать из отдельных объектов составной объект и проводить над ним какие-нибудь операции.
    • Изменять текстуру объекта (например цвет), манипулировать объектом (заставить ящик передвигаться по сцене)
    • Изменять точку наблюдения за сценой.

    MPEG-J

    MPEG-J — стандартное расширение MPEG-4 в котором используются Java — элементы.

    MPEG-7

    MPEG-7 — не является продолжение MPEG как такового — стал разрабатываться сравнительно недавно, планируется его закончить к 2001 г. MPEG — 7 будет обеспечивать стандарт для описания различных типов мультимедийной информации (а не для ее кодирования), чтобы обсепечивать эффективный

    и быстрый ее поиск. MPEG-7 официально называют — «Multimedia Content Description Interface» (Интерфейс описания мультимедиа данных). MPEG-7 определяет стандартный набор дискриптеров для различных типов мультимедиа информации, так же он стандартизует способ определения своих дискриптеров и их взаимосвязи (description schemes). Для этой цели MPEG-7 вводит DDL (Description Definition Language — язык описания определений). Основная цель применения MPEG-7 это поиск мультимедиа информации (так же как сейчас мы можем найти текст по какому-нибудь предложению), например:

    • Музыка . Сыграв несколько нот на клавиатуре можно получить список музыкальных произведений, которые содержат такую последовательность.
    • Графика . Нарисовав несколько линий на экране, получим набор рисунков содержащих данный фрагмент.
    • Картины . Определив объект (задав его форму и текстуру) получим список картин, содержащих оный.
    • Видео . Задав объект и движение получим набор видео или анимации.
    • Голос . Задав фрагмент голоса певца, получим набор песен и видео роликов где он поет.

    MHEG — (Multimedia & Hypermedia Expert Group — экспертная группа по мультимедиа и гипермедиа) — определяет стандарт для обмена мультимедийными объектами (видео, звук, текст и другие произвольные данные) между приложениями и передачи их разными способами (локальная сеть, сети телекоммуникаций и вещания) с использованием MHEG object classes. Он позволяет программным объектам включать в себя любую систему кодирования (например MPEG), которая определена в базовом приложении. MHEG был принят DAVIC (Digital Audio-Visual Council — совет по цифровому видео и звуку). MHEG объекты делаются мультимедиа приложениями используя multimedia scripting languages.

    Утверждается, что MHEG — будущий международный стандарт для интерактивного TV, так как он работает на любых платформах и его документация свободно распространяема.

    Источник

    MPEG-2: ликбез: Видео

    Разбиение на макроблоки

    Типы предсказания смещения изображения в кадрах

    MPEG-2 — это стандарт, предназначенный для кодирования сигналов цифрового вещательного телевидения, так что начинать рассказ о нем надо с истории цифрового видео. Она, как ни странно, связана вовсе не с компьютерами, как кажется сейчас, а с телевещанием, ведь недостатки аналогового сигнала сказывались прежде всего на телевизионной аудитории. Основных проблем две — это стремительное падение качества с каждым новым перезаписыванием (страшно вспомнить, что такое «пятая копия» на VHS) и большие помехи при передаче сигнала, с которыми очень сложно бороться. Первое сказывается на качестве программ, второе — на качестве картинки у зрителя. Способ избавиться от этих недостатков был известен еще с 50-х годов — это перевод сигнала в цифровую форму. Однако технические возможности для оцифровки видео в реальном времени появились лишь около четверти века тому назад, и в 1979 году Европейский Вещательный Союз (EBU) и Общество инженеров кино и телевидения (SMPTE) совместно подготовили проект международного стандарта цифрового кодирования цветного телевизионного сигнала, а в 1982 году стандарт был принят. MPEG-2 базируется именно на этом стандарте ITU-R BT.601.

    Как получают цифровой видеосигнал

    Известно, что любой из миллионов оттенков, которые различает человек, представим в виде комбинации трех опорных цветов: красного (Red), зеленого (Green) и синего (Blue) — это так называемая цветовая модель RGB. Используя эту модель, цветной аналоговый сигнал (например, изображение, которое «видит» объектив аналоговой видеокамеры) можно разложить на RGBкомпоненты.

    Однако для телевидения такое разложение не подходило: при переходе к цветному вещанию требовалось, чтобы цветные передачи можно было смотреть на черно-белых телевизорах, а это невозможно, если сигнал состоит из RGBкомпонент. Решением стало преобразование RGBсигналов в сигнал яркости Y и два цветоразностных сигнала U и V — в этом случае информация о цвете (U и V) передается отдельно от информации о яркости Y, и в черно-белом телевидении используется только сигнал яркости, а в цветном — яркости совместно с цветом. Заодно оказалось возможным уместить цветной телевизионный сигнал в стандартную полосу пропускания: за счет того, что человеческий глаз менее чувствителен к пространственным изменениям цвета, чем к изменениям яркости, информацию о цвете можно «урезать» без ущерба для восприятия.

    Для цифрового кодирования одинаково подходят оба разложения.

    Итак, для того чтобы сформировать цифровой сигнал, необходимо выполнить над каждой компонентой аналогового сигнала (R, G, B или Y, U, V) следующие операции: дискретизацию, квантование и кодирование.

    Дискретизация — это представление непрерывного аналогового сигнала последовательностью значений его амплитуд (так называемых отсчетов). Частота, с которой выбираются значения, называется частотой дискретизации. На схемах справа показаны аналоговый и дискретизированный с частотой 1/T сигналы. Очевидно, что чем больше частота дискретизации, тем точнее будет воспроизведен аналоговый сигнал. Чтобы получить изображение высокого качества, частота дискретизации должна быть не менее 12 МГц (то есть 12 млн отсчетов в секунду). В стандарте цифрового кодирования она выбрана равной 13,5 МГц.

    Квантование — округление значений отсчетов. Так как человеческий глаз обладает конечной разрешающей способностью, то передавать абсолютно точно все значения отсчетов нет необходимости. Было придумано заменять величину отсчета ближайшим значением из некоторого набора фиксированных величин, которые называются уровнями квантования, то есть округлять до ближайшего уровня. На схеме справа показан квантованный сигнал. Для создания сигнала нужного качества достаточно 256 уровней квантования.

    И наконец, кодирование. Так как квантованный сигнал может принимать только конечное число значений (в соответствии с набором уровней квантования), то для каждого отсчета можно представить его просто числом, равным собственно порядковому номеру уровня квантования. Это число может быть закодировано двоичными символами (например, нулями и единицами). Чтобы закодировать 256 уровней квантования, требуется как минимум восемь бит (28 = 256), то есть значение каждого отсчета передается восемью битами.

    В итоге после дискретизации, квантования и кодирования мы получили из аналогового сигнала набор импульсов, принимающих только два значения — 0 и 1, которые уже можно передавать как обычные данные. Это называется аналого-цифровым преобразованием, или АЦП.

    Легко посчитать необходимую скорость потока при передаче оцифрованного нами сигнала: умножим восемь бит на количество отсчетов, передаваемых в секунду (не забудем, что у нас три компоненты): 8 [бит] х 13,5 [МГц] х 3 = 324 Мб/с. Работать с такими потоками — очень дорогое и почти недоступное удовольствие (для сравнения: стандартный модем передает со средней скоростью 33,2 кб/с, то есть в десять тысяч раз медленнее).

    Здесь самое время напомнить о том, что, как и в аналоговом телевидении, при оцифровке Y, U и V можно безболезненно удалить часть информации о цвете, то есть уменьшить в несколько раз частоту дискретизации цветоразностных сигналов. Поэтому кодирование YUV (называемое раздельным) с точки зрения величины потока получается более выгодным, чем RGB. При раздельном кодировании принято указывать соотношение частот дискретизации компонент. Например, 4:2:2 означает, что Y передается в каждом отсчете в каждой строке, а U и V — в каждом втором отсчете в каждой строке (то есть частота дискретизации Y равна 13,5 МГц, а U и V в два раза меньше — 6,75 МГц).

    Сжатие

    Однако результаты кодирования в отношении величины цифрового потока все равно никого не устраивали. Для вещательного телевидения требуется раздельное кодирование как минимум 4:2:2 — это 216 Мб/с. Даже если не говорить о передаче данных, просто писать такой поток на ленту или на винчестер представляется проблемой.

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

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

    Надо сказать, что со времен начала работы с цифровым видео было создано великое множество форматов сжатия: от Cinepak и Intel Indeo до H.263, MJPEG и DV. Часть из них удаляют только пространственную избыточность (как DV или MJPEG), но некоторые алгоритмы (например, Intel Indeo) используют и межкадровую разность.

    Жизнь с таким количеством несовместимых друг с другом стандартов оказалась слишком уж сложной, поэтому в 1988 году была создана специальная группа экспертов — Moving Picture Experts Group (MPEG), которая должна была разработать методы сжатия и восстановления цифрового видеосигнала. Над стандартом MPEG2 группа начала работать в 1990 году. Стандарт предназначался специально для цифрового телевидения, то есть для передачи телевизионных изображений высокого качества, и был принят уже в 1994 м. Сегодня это самый распространенный и самый многофункциональный из всех стандартов MPEG.

    Как осуществляется сжатие в MPEG-2

    Сначала в каждом кадре последовательно выбираются элементы изображения размером 16 х 16 пикселей — это так называемые макроблоки.

    В MPEG принято кодирование YUV, поэтому каждый макроблок представлен в виде набора блоков 8 х 8 пикселей — каждый блок несет информацию или о яркости, или о цвете. Например, в формате цветности 4:2:2 потребуется четыре блока 8 х 8 с информацией о яркости и по два блока 8 х 8 с информацией о каждой цветоразностной компоненте, всего восемь блоков. Каждый элемент в блоке яркости или цвета представляет собой значение отсчета. В дальнейшем MPEG-2 работает уже с макроблоками.

    В MPEG-2 выделено три типа кадров. I-кадры (Intra) — опорные кадры, кодирование каждого макроблока в которых осуществляется без ссылок на макроблоки в предыдущих или последующих кадрах. По сути, I-кадры закодированы как неподвижные изображения.

    Pкадры (Predicted) — кадры, макроблоки в которых закодированы относительно предшествующих I или P-кадров (хотя не все макроблоки могут быть так закодированы, об этом ниже). Изображение в кадре предсказывается с использованием информации предыдущего кадра — так называемое предсказание «вперед». Поэтому Pкадры частично содержат только ссылки на макроблоки в предыдущих кадрах, и, таким образом, сжаты они сильнее, чем I-кадры.

    B-кадры (Bidirectionally Predicted) — кадры, макроблоки в которых закодированы относительно или предыдущих, или последующих, или и тех, и тех I или P-кадров. Здесь реализовано двунаправленное предсказание («вперед» и «назад»): изображение в кадре предсказывается с использованием информации из предыдущего и из следующего кадра. То есть считывание кадров декодером должно происходить быстрее их восстановления.

    Если оказывается, что макроблок в P-кадре или B-кадре невозможно закодировать со ссылкой на другие кадры (например, в случае, если в кадре появился новый объект), то макроблок кодируется как макроблок в I-кадре.

    Кадры объединены в последовательности (Group Of Pictures, GOP), и предсказание всегда осуществляется только в пределах одной группы. Понятно, что при таком условии каждая группа должна начинаться с I-кадра, несущего наиболее полную информацию об изображении, ведь I-кадр является точкой отсчета, относительно которой кодируются остальные кадры. Было бы замечательно, если бы I-кадры всякий раз приходились на начало сюжета, но, к сожалению, все сюжеты имеют разную длительность.

    В MPEG-2 определены стандартные типы последовательностей — например, IPBBPBBPBBPBBPBB. Если сюжет почти не меняется от кадра к кадру, то можно кодировать с большим количеством B-кадров, а если требуется очень высокое качество — наоборот, использовать группы, состоящие только из одного I-кадра. В принципе, можно оптимизировать выбор типа кадра — например, при появляющихся больших ошибках предсказания в B-кадрах добавлять I-кадры в последовательность.

    Сразу скажем, слово «предсказание» несколько путает — это термин, хотя и устоявшийся, но не очень верный. Мы ничего не предсказываем, мы абсолютно точно определяем, что должно быть в кадре. Для этого вычисляется ошибка предсказания — разница между изображением, взятым из другого кадра, и изображением в текущем кадре, и эта разница используется при декодировании.

    Под компенсацией движения понимается учет смещения изображения относительно предыдущих или последующих кадров. Компенсация движения в P и B-кадрах реализуется следующим образом: для каждого найденного в предыдущем/следующем кадре макроблока вычисляется вектор движения, то есть определяется, каково относительное смещение соответствующего макроблока. Таким образом, при предсказании с компенсацией движения декодеру передаются не только ошибки предсказания, но и векторы движения.

    Теперь мы подходим к внутрикадровому кодированию. Нам нужно сжать информацию в макроблоках, которые ни на что не ссылаются. Это делается с помощью дискретно-косинусного преобразования (ДКП), в основе которого лежит преобразование Фурье. ДКП отнюдь не прерогатива MPEG, оно применяется при внутрикадровом кодировании очень во многих форматах сжатия — в том числе, для сжатия статических изображений (всем известный JPEG, разработанный для цифровой фотографии группой Joint Photographic Experts Group).

    Все основано на том, что человек хорошо различает форму объекта даже при нечетких границах. Поэтому, если сделать контуры менее резкими, зритель ничего не заметит, а вот объем передаваемой информации кардинально уменьшится. В оцифрованном сигнале каждый элемент в блоке есть значение отсчета, а каждый блок — соответственно, матрица значений отсчетов. Применение к матрице отсчетов ДКП позволяет выделить информацию о резких переходах и ее отбросить. То немногое, что остается, кодируется по специальному оптимизирующему алгоритму, в котором используются известные в технике кодирования приемы (и, в том числе, есть способы исправления ошибок при передаче данных).

    Небезынтересно будет узнать, что практически все фильтры в графических редакторах построены на операциях над матрицей отсчетов. Примените в Photoshop фильтр, размывающий границы, — увидите ДКП в действии. И, кстати, сможете убедиться, что изображение даже с немного размытыми контурами сжимается JPEG гораздо эффективнее.

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

    Профили и уровни

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

    Идея профилей и уровней оказалась настолько плодотворной, что добавлением уровней удалось даже расширить стандарт для кодирования сигналов телевидения высокой четкости (ТВЧ). А ведь первоначально для ТВЧ разрабатывался MPEG-3, который был благополучно забыт, как только в MPEG-2 были введены соответствующие возможности.

    Форматы видеозаписи

    В стандарте MPEG нигде не определено, каким образом осуществляется непосредственно кодирование, он описывает только, как должен выглядеть результирующий поток данных, поскольку именно это важно для декодеров.

    Кодирование может осуществляться как аппаратно, так и программно, и каждая фирма создает свои собственные алгоритмы (принципиально важен, например, алгоритм поиска смещенных макроблоков). При этом разработчики выбирают нужный профиль, уровень, необходимые операции по сжатию данных и, что очень важно при аппаратном кодировании, базу, на которой реализуется алгоритм (специальная плата, процессор и т. п.). Например, фирма Sony создала уже два формата видеозаписи на основе MPEG-2 — это Betacam SX и MPEG IMX. Оба они используют один и тот же профиль 422Р, но для них установлены разные размеры потоков данных и при кодировании используются разные аппаратные средства.

    Источник

    Что такое оборудование mpeg

    MPEG — это группа людей в ISO (Internation Standards Organization), которые встречаются для выработки стандартов сжатия цифрового видео и аудио. В частности, они определили сжатый поток и декомпрессор для него. Алгоритмы сжатия определяются индивидуально каждым производителем, в чем и достигается преимущество в рамках опубликованного международного стандарта. Группа MPEG собирается приблизительно четыре раза в год примерно на неделю. Основная работа делается между встречами, будучи организованной и спланированной на них.

    Имеет ли он отношение к JPEG?

    Да, названия созвучны, и группы принадлежат одному подкомитету ISO, вместе с JBIG и MHEG. Встречаются они в одно время и в одном месте. Тем не менее, это разные люди с разными целями и запросами. JPEG — это старндарт, который предназначен для сжатия неподвижных изображений, а MPEG — «живого» видео и сопутствующего аудио.

    Что такое JBIG и MHEG?

    JBIG — это стандарт сжатия двоичных изображений без потерь, а MHEG — стандарт, предназначенный для мультимедиаданных: интеграция неподвижных изображений, видео, аудио, текста и т. д.

    Как работает MPEG видео?

    Цветное цифровое изображение из сжимаемой последовательности переводится в цветовое пространство YUV (YCbCr). Компонента Y представляет собой интенсивность, а U и V — цветность. Так как человеческий глаз менее восприимчив к цветности, чем к интенсивности, то разрешения цветовых компонент могут быть уменьшены в два раза по вертикали, или и по вертикали, и по горизонтали. К анимации и высококачественному студийному видео уменьшение разрешения не применяется, чтобы сохранить качество изображения, а для бытового применения, где потоки более низкие, а аппаратура более дешевая, такое действие не приводит к заметным потерям в визуальном восприятии, сохраняя в то же время драгоценные биты данных.

    Основная идея всей схемы — это предсказывать движение от кадра к кадру, а затем применить дискретное косинусное преобразование (ДКП), чтобы перераспределить избыточность в пространстве. ДКП выполняется на блоках 8х8 точек, предсказание движения выполняется на канале интенсивности (Y) на блоках 16х16 точек, или, в зависимости от характеристик исходной последовательности изображения (черезстрочная развертка, содержимое), на блоках 16х8 точек. Другими словами, данный блок 16х16 точек в текущем кадре ищется в соответсвующей области большего размера в предыдущих или последующих кадрах. Коэффициенты ДКП (исходных данных или разности этого блока и ему соответсвующего) квантуются, то есть делятся на некоторое число, чтобы отбросить несущественные биты. Многие коэффициенты после такой операции оказываются нулями. Коэффициент квантизации может изменяться для каждого макроблока (макроблок — блок 16х16 точек из Y-компонент и соответсвующие блоки 8х8 в случае отношения YUV 4:2:0, 16х8 в случае 4:2:2 и 16х16 в случае 4:4:4). Коэффициенты ДКП, параметры квантизации, векторы движения и прочее кодируется по Хаффману с использованием фиксированных таблиц, определенных стандартом MPEG. Закодированные данные складываются в пакеты, которые формируют поток согласно синтаксису MPEG.

    Как кадры соотносятся друг с другом?

    Существует три типа закодированных кадров. I-кадры — это кадры, закодированные как неподвижные изображения без ссылок на последующие или предыдущие. Они используются как стартовые. P-кадры — это кадры, предсказаные из предыдущих I- или P-кадров. Каждый макроблок в P-кадре может идти с вектором и разностью коэффициентов ДКП от соответвующего блока последнего раскодированного I или P, или может быть закодирован как в I, если не соответсвующего блока не нашлось.

    И, наконец, существуют B-кадры, которые предсказаны из двух ближайших I или P-кадров, одного предыдущего и одного последующего. Соответсвующие блоки ищутся в этих кадрах и из них выбирается лучший. Ищется прямой вектор, затем обратный, и вычисляется среднее между соответсвующими макроблоками в прошлом и будущем. Если это не работает, то блок может быть закодирован как в I-кадре.

    Последовательность раскодированных кадров обычно выглядит как

    I B B P B B P B B P B B I B B P B B P B .

    Здесь 12 кадров от I до I. Это основано на требовании произвольного доступа, согласно которому начальная точка должна повторяться каждые 0,4 секунды. Соотношение P и B основано на опыте.

    Чтобы декодер мог работать, необходимо, чтобы первый P-кадр в потоке встретился до первого B, поэтому сжатый поток выгдядит так:

    0 x x 3 1 2 6 4 5 .

    где числа — это номера кадров, а xx может не быть ничем, если это начало последовательности, или B-кадры -2 и -1, если это фрагмент из середины потока.

    Сначала необходимо раскодировать I-кадр, затем P, затем, имея их оба в памяти, раскодировать B. Во время декодирования P показывается I-кадр, B показывается сразу, а раскодированный P показывается во время декодирования следующего.

    Как сжимается аудио?

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

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

    Странные слухи об MPEG.

    Существует множество зачастую непонятных и надуманных слухов об MPEG.

    1. Коэффициет сжатия свыше 100:1
    Зачастую статьи в прессе и маркетинговой литературе заявляют, что MPEG достигает необычайно высокого качества видео при степени компрессии свыше 100:1. Эти заявления обычно не включают понижение цветового разрешения исходного цифрового изображения. На практике, поток кодируемого изображения редко превышает величину потока, закодированного в MPEG, более чем в 30 раз. Предварительное сжатие за счет уменьшения цветового разрешения играет основную роль в формировании коэффициентов сжатия с 3 нулями во всех методах кодирования видео, включая отличные от MPEG.

    2. MPEG-1 всегда 352×240
    Как MPEG-1, так и MPEG-2, могут быть применены к широкому классу потоков, частот и размеров кадров. MPEG-1, знакомый большинству людей, используется для передачи 25 кадр/с с разрешением 352×288 в PAL или 30 кадр/с с разрешением 352×240 в NTSC при величине потока менее 1.86 Мбит/с — комбинация, известная как Constrained Parameters Bitstreams. Эти цифры введены спецификацией стандарта White Book для видео на CD (VideoCD).

    Фактически, синтаксис позволяет кодировать изображения с разрешением до 4095х4095 с потоком до 100 Мбит/с. Эти числа могли бы быть и бесконечными, если бы не ограничение на количество бит в заголовках.

    С появлением стандарта MPEG-2, самые популярные комбинации были объединены в уровни и профили. Самые общие из них:

    • Source Input Format (SIF), 352 точки x 240 линий x 30 кадр/с, известный также как Low Level (LL) — нижний уровень,
    • CCIR 601 (например 720 точек/линию x 480 линий x 30 кадр/с), или Main Level — основной уровень.

    3. Компенсация движения заменяет макроблоки макроблоками из предыдущих картинок
    Предсказания макроблоков формируются из соответсвующих 16х16 блоков точек (16х8 в MPEG-2) из предыдущих восстановленных кадров. Никаких ограничений на положение макроблока в предыдущей картинке, кроме ее границ, не существует.

    Исходные кадры (reference, из которых формируются предсказания) показаны безотносительно своей закодированной формы. Как только кадр раскодирован, он становится не набором блоков, а обычным плоским цифровым изображением из точек.

    4. Размер отображаемой картинки совпадает с размером закодированной
    В MPEG размеры отображаемого изображения и частота кадров может отличаться от закодированного в потоке. Например, перед кодированием некотрое подмножество кадров в исходной последовательности может быть опущено, а затем каждый кадр фильтруется и обрабатывается. При восстановлении интерполированы для восстановления исходного размера и частоты кадров.

    Три фундаментальных фазы (исходная частота, кодированная и показываемая) могут отличаться в параметрах. Синтаксис MPEG описывает кодированную и показываемую частоту через заголовки, а исходная частота кадров и размер известен только кодеру. Именно поэтому в заголовки MPEG-2 введены элементы, описывающие размер экрана для вывода цифрового видео.

    5. В I, P и B-фреймах все макроблоки одного типа.
    В I-фрейме макроблоки должны быть закодированы как внутренние — без ссылок на предыдущие или последующие кадры, если не используются масштабируемые режимы. Однако, макроблоки в P-фрейме могут быть как внутренними, так и ссылаться на предыдущие кадры. Макроблоки в B-фрейме могут быть как внутренними, так и ссылаться на предыдущий кадр, последующий или оба. В заголовке каждого макроблока есть элемент, определяющий его тип.

    Без компенсации движения:

    С компенсацией движения:

    Пропущенные макроблоки в P-фреймах:

    Пропущенные макроблоки в B-фреймах:

    6. Структура последовательности строго фиксирована шаблоном I,P,B.
    Последовательность кадров в MPEG может иметь любую структуру размещения I, P и B фреймов. В промышленной практике принято иметь фиксированную последовательность (вроде IBBPBBPBBPBBPBB), однако, более мощные кодеры могут оптимизировать выбор типа кадра в зависимости от контекста и глобальных характеристик видеоряда.

    Каждый тип кадра имеет свои преимущества в зависимости от особенностей изображения (активность движения, временные эффекты маскирования. ). Например, если последовательность изображений мало меняется от кадра к кадру, есть смысл кодировать больше B-фреймов, чем P. Поскольку B-фреймы не используются в дальнейшем процессе декодирования, они могут быть сжаты сильнее, без влияния на качество видеоряда в целом.

    Требования конкретного приложения также влияют на выбор типа кадров: ключевые кадры, переключение каналов, индексирование программ, восстановление от ошибок и т. д.

    Откуда берутся огромные коэфициенты сжатия?

    Коэфициент сжатия MPEG видео часто заявляется как 100:1, тогда как в действительности он находися в районе от 8:1 до 30:1.

    Как получается «более 100:1» для видео на компакт-диске (White Book) с потоком 1.15 Мбит/с.

    1. Высокое разрешение исходного видео.
    Большинство источников видеосигнала для компрессии имеют большее разрешение, чем то, которое актуально оказывается в закодированном потоке. Самый популярный студийный сигнал, известный как цифровое видео D-1 или CCIR 601, кодируется на 270 Мбит/с.

    Цифра 270 Мбит/с получается из следующих вычислений:

      Интенсивность (Y): 858 точек/линию x 525 линий/кадр x 30 кадр/с x 10 бит/точку

    = 135 Мбит/с
    R-Y (Cb): 429 точек/линию x 525 линий/кадр x 30 кадр/с x 10 бит/точку

    = 68 Мбит/с
    B-Y (Cb): 429 точек/линию x 525 линий/кадр x 30 кадр/с x 10 бит/точку

    Итого: 27 млн. точек/с x 10 бит/точку = 270 Мбит/с

    Итак, начинаем с коэффициента сжатия 270/1.15. 235:1.

    2. Выбросим гасяшие интервалы.
    Из 858 точек яркости на линию под информацию изображения задействованы только 720. В действительности, количество точек на линию — предмет многих ссор на инженерных семинарах, и это значение лежит в пределах от 704 до 720. Аналогично, только 480 линий из 525 задействованы под изображение по вертикали. Настоящее значение лежит в пределах от 480 до 496. В целях совместимости MPEG-1 и MPEG-2 определяют эти числа как 704х480 точек на интенсивность и 352х480 для цветоразностей. Пересчитывая исходный поток, будем иметь:

      Y 704 точек/линию x 480 линий x 30 кадр/с x 10 бит/точку

    = 104 Мбит/с
    C 2 компоненты x 352 точки/линию x 480 линий x 30 кадр/с x 10 бит/точку

    Отношение (207/1.15) составляет всего 180:1.

    3. Учтем большее количество бит/точку.
    В MPEG на точку отводится 8 бит. Принимая во внимание этот фактор, отношение становится 180 * (8/10) = 144:1.

    4. Учтем более высокое разрешение цветности.
    Известный студийный сигнал CCIR-601 представляет сигнал цветности с половинным разрешением по горизонтали, но с полным вертикальным разрешением. Это соотношение частот оцифровки известно как 4:2:2. Однако, MPEG-1 и MPEG-2 Main Profile устанавливают использование формата 4:2:0, который считается достаточным для бытовых приложений. В этом формате разрешение цветоразностных сигналов в 2 раза меньше по горизонтали и вертикали, чем интенсивность. Таки образом, имеем:
    720 точек x 480 линий x 30 кадр/с x 8 бит/отсчет x 1.5 остчетов/точку = 124 Мбит/с
    . и отношение уже становится 108:1.

    5. Учтем размер кодируемого изображения.
    Последняя стадия предварительной обработки — это преобразование кадра формата CCIR-601 в формат SIF с уменьшением в 2 раза по горизонтали и вертикали. Всего в 4 раза. Качественное масштабирование по горизонтали выполняется с помощью взвешенного цифрового фильтра с 7 или 4-мя узлами, а по вертикали — выбрасыванием каждой второй линии, второго поля или, опять, цифровым фильтром, управляемым алгоритмом оценки движения между полями. Отношение теперь становится
    352 точек x 240 линий x 30 кадр/с x 8 бит/отсчет x 1.5 отсчетов/точку

    Таким образом, настоящее отношение A/B должно вычисляться между исходной последовательностью в стадии 30 Мбит/с перед кодированием, поскольку это есть действительная частота оцифровки, записываемая в заголовках потока и воспроизводимая при декодировании. Так, сжатия можно добиться уже одним сокращением частоты оцифровки.

    6. Не забудем о частоте кадров.
    Большинство коммерческих видеофильмов снимаются с киноленты, а не с видео. Основная часть фильмов, записанных на компакт-дисках, была оцифрована и редактирована при 24 кадр/с. В такой последовательности 6 из 30 кадров, отображаемых на телевизионном мониторе (30 кадр/с или 60 полей/с а NTSC), фактически избыточна, и может быть не кодирована в MPEG поток. Это ведет нас к шокирующему выводу, что действительный поток был всего 24 Мбит/с (24 кадр/с / 30 кадр/с * 30 Мбит/с), и коэффициент сжатия составляет всего каких-то 21:1.

    Даже при таком скромном коэффициенте сжатия, как 20:1, несоответствия могут возникнуть между исходной и восстановленной последовательностями изображений. Только консервативные коэффициенты в районе 12:1 и 8:1 демонстрируют почти полную прозрачность процесса сжатия последовательностей со сложными пространственно-временными характеристиками (резкие движения, сложные текстуры, резкие контуры и т.д.). Несмотря на это, правильно закодированное видео с использованием предварительной обработки и грамотного распределения битов, может достигать и более высоких коэффициентов сжатия при приемлемом качестве восстановленного изображения.

    Как достигается сжатие видео?

    При сжатии видео используются следующие статистические характеристики:

    Пространственная корреляция: дискретное косинусное преобразование 8х8 точек.

    Особенности человеческого зрения: невосприимчивость к высокочастотным составляющим — скалярное квантование коэффициентов ДКП с потерей качества.

    Точность межкадрового предсказания: билинейно интерполированные (фильтрованные) разности блоков. В реальном мире движения объектов от кадра к кадру редко попадают на границы точек. Интерполяция позволяет выяснить настоящее положение объекта, зачастую увеличивая эффективность компрессии на 1 дБ.

  • Ограниченная активность движения в P-фреймах: пропущенные макроблоки. Когда вектор движения и ошибка предсказания нулевые. Пропущенные макроблоки очень желательны в кодированном потоке, поскольку не занимают битов, кроме как в заголовке следующего макроблока.
  • Компланарное движение в B-фреймах: пропущенные макроблоки. Когда вектор движения тот же, а ошибка предсказания нулевая.
  • Как работает MPEG аудио?

    MPEG стандарт определяет три высокопроизводительных схемы сжатия звука, называемых уровнями: Layer 1, 2 и 3. С возрастанием номера возрастает сложность и производительность алгоритма кодирования, задержка кодирования и соотношение качества восстановленного сигнала к величине потока. Эти три схемы иерархически совместимы, то есть декодер уровня 3 может читать layer 3, 2 и 1, а декодер уровня 2 — 2 и 1. Для каждого уровня стандарт жестко определяет синтаксис потока и алгоритм декодирования.

    Все уровни имеют одинаковую базовую структуру. Кодер анализирует входной сигнал, вычисляя для него гребенку фильтров, и применяет к нему психоакустическую модель. На стадии квантования и кодирования кодер пытается так распределить доступные биты данных, чтобы выполнить требования фиксированной, наперед заданной величины потока и маскирования.

    Декодер менее сложен. Его задача — синтезировать звуковой сигнал из спектральных компонент.

    Все три уровня используют одну гребенку фильтров (32 полосы). Помимо этого, layer 3 применяет модифицированное дискретное косинусное преобразование (МДКП), чтобы увеличить частотную характеристику. Все уровни используют одну структуру потока и одни информационные заголовки, для поддержания иерархической совместимости. Частота оцифровки входного сигнала может быть 32, 44.1 и 48 КГц.

    Video compression guru

    Elecard — ведущий разработчик программного обеспечения для кодирования, анализа и мониторинга видео в различных форматах (VVC, HEVC, AV1, VP9, MPEG-2 и H.264/AVC). Лидеры телеком индустрии, а также операторы OTT и IPTV вещания по всему миру используют наши потоковые кодеры. Анализаторы, зонды для мониторинга QoS & QoE параметров в режиме реального времени, кодеры и плееры помогают разработчикам, системным инженерам, архитекторам, тестерам сократить срок разработки и повысить качество продукта.

    Источник