MPEG2 и MPEG4 - описание форматов. MPEG2 и MPEG4 - описание форматов Mpeg 1 2 какой выбрать

На данный момент большинство операторов кабельного и спутникового телевидения используют стандарт MPEG2 для передачи своих сигналов. Стандарт MPEG2 был разработан рабочей группой Moving Pictures Experts Group Международной Организации Стандартизации. MPEG2 опубликован как международный стандарт ISO/IEC 13818. Данный стандарт описывает лишь общие принципы компрессии, оставляя детали для изготовителей кодеров.

В основе алгоритма сжатия заложены особенности восприятия изображения человеком. Например, глаз человека намного лучше воспринимает градации яркости, чем цветности; градации одних цветов воспринимаются лучше, других - хуже.

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

Еще один принцип, который применяется при компрессии изображения в стандарте MPEG2 - это отбрасывание малозначимой информации, аналогичный принципам, используемым в графическом формате JPEG.

Но вернемся собственно к теме нашего разговора. Развитием технологий управляет принцип: лучше, красивее, больше c меньшими затратами и по меньшей цене. В нашем случае подразумевается картинка лучшего качества, при меньшей ширине информационного канала (спутникового, кабельного, эфирного). Совершенствование видео кодеков формата MPEG2 привело к тому, что сейчас для передачи изображения требуется канал с пропускной способностью в 2 раза меньше, чем в начале эры цифрового вещания. С течением времени стало очевидным, что новые разработки позволяют значительно уменьшить объем передаваемой информации, но они не соответствуют существующему формату MPEG2. Поэтому перед специалистами встала задача разработки более универсального и соответствующего современным технологиям стандарта.

Для цифрового спутникового телевидения , использующего MPEG2, с разрешением 720 на 576 точек максимальная скорость информационного потока 15 Мбит/сек, а практически используемая скорость потока - 3-4 Мбит/сек. На одном транспондере (приемнике - передатчике) на спутнике обычно умещается 8-12 каналов.

Поскольку HDTV предполагает разрешение 1920 на 1080 точек, т.е. площадь экрана в 5 раз больше по сравнению с обычным телевидением, то для вещания одного канала HDTV в стандарте MPEG2 потребовалось бы арендовать половину транспондера.

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


Наиболее важные подстандарты:

  • ISO 14496-1 (Системы), формат контейнера MP4, анимация/интерактивность (например, DVD меню)
  • ISO 14496-2 (Видео #1), Продвинутый Простой Профайл (Advanced Simple Profile - ASP)
  • ISO 14496-3 (Аудио), Продвинутое Кодирование Аудио (Advanced Audio Coding - AAC)
  • ISO 14496-10 (Видео #2), Продвинутое Кодирование Видео (Advanced Video Coding - AVC), так же известное как H.264.

Я не буду перечислять особенности технологий и алгоритмов, которые применялись при разработке формата MPEG4.
Перейдем к самому важному: совместное применение DVB-S2 (усовершенствованный стандарт цифровой передачи данных) и H.264 позволяет разместить 6-8 каналов в транспондере, но уже HDTV телевидения . Необходимо отметить, что как всегда увеличение качества не проходит бесплатно: значительно возросло количество вычислений как в приемниках так и на передающем оборудовании. К сожалению, это в значительной степени повлияло на стоимость оборудования для потребителей и для вещателей.

Стандарт сжатия 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 кадров

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

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

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

Таблица 1

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

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

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

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

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

Таблица 2

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

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

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

Звук в 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 , который включает в себя:

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

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

Звуковой поток состоит из пакетов каждый из которых состоит из заголовка и нескольких звуковых кадров (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

Параметры Видео : в принципе с помощью MPEG-1 можно передавать разрешение вплоть до 4095x4095x60 fps (в этих границах кадр может быть произвольного размера), но так как существует Constrained Parameters Bitstream (CPB, неизменяемые параметры потока данных; другие стандарты для MPEG-1 поддерживаются далеко не всеми декодерами) которые ограничивают общее число макроблоков в картинке (396 для скорости <= 25 fps и 330 для скорости <= 30 fps) то MPEG-1 кодируется стандартом SIF /352*240*30 - (получено урезанием стандарта CCIR-601) или 352*288*25 - (урезанный PAL, SECAM) формат 4:2:0, 1.15 MBPS (мегабит в сек.), 8 bpp (бит на точку) - в каждой плоскости/.

Существует более высокое разрешение для MPEG-1 - так называемый MPEG-1 Plus, разрешение как у MPEG-2 ML@MP (Main Level, Main Profile) - этот стандарт часто используется в Set-Top-Box для улучшения качества.

MPEG2 - upgrade для MPEG1

Компрессия по стандарту MPEG-2 кардинально меняет положение вещей. Более 97% цифровых данных, представляющих видео сигнал дублируются, т.е. являются избыточными и могут быть сжаты без ущерба качеству изображения. Алгоритм MPEG-2 анализирует видеоизображение в поисках повторений, называемых избыточностью. В результате процесса удаления избыточности, обеспечивается превосходное видеоизображение в формате MPEG-2 при более низкой скорости передачи данных. По этой причине, современные средства поставки видеопрограмм, такие как цифровые спутниковые системы и DVD, используют именно стандарт MPEG-2.

Изменения в Audio:

  • Появились новые виды частот 16, 22.05, 24 КГц.
  • Поддержка многоканальности - возможность иметь 5 полноценных каналов (left, center, right, left surround, right surround) + 1 низкочастотный (subwoofer).
  • Появился AAC (Advanced Audio Coding - прогрессивное кодирование звука) стандарт - обеспечивает очень высокое качество звука со скоростью 64 kbps per channel (килобит в сек. на канал), возможно использовать 48 основных каналов, 16 низкочастотных каналов для звуковых эффектов, 16 многоязыковых каналов и 16 каналов данных. До 16 программ может быть описано используя любое количество элементов звуковых и других данных. Для AAC существуют три вида профиля - Main (используется когда нет лишней памяти), Low Complexity (LC), Scalable Sampling Rate (SSR, требуется декодер с изменяемой скоростью приема данных).

Декодеры должны быть:

  1. "forwards compatible " (вперед совместимыми) - MPEG-2 Audio Decoder понимает любые MPEG-1 аудио каналы.
  2. "backward compatible " (обратно совместимыми) - MPEG-1 Audio Decoder должен понимать ядро MPEG-2 Audio (L-канал, R-канал)
  3. "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)
  4. 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 (матрица преобразований непрерыных данных в дискретные) перед каждым кадром.
  • Новые режимы предсказания движения (16x8 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, Уровни

Уровень Максимальное разрешение Максимальная скорость Примечание
Low 352*240*30 4 Mbps CIF, кассеты
Main 720*480*30 15 Mbps CCIR 601, студийное TV
High 1440 1440*1152*30 60 Mbps 4x601, бытовое HDTV
High 1920*1080*30 80 Mbps Продукция SMPTE 240M std

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

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

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

  1. Packetized Elementary Stream (PES) - разбивает звук и видео на пакеты.
  2. Второй уровень делится на:
    • MPEG-2 Program Stream (совместим с MPEG-1 System) - для локальная передача в среде с маленьким уровнем ошибок
    • MPEG-2 Transport Stream - внешнее вещание в среде с высоким уровнем ошибок - передает транспортные пакеты (длиной 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 (медиа объекты).
  • Описывает структуру этих объектов и их взаимосвязи чтобы затем собрать их в видеозвуковую сцену.
  • Позволяет изменять сцену, что обеспечивает высокий уровень интерактивности для конечного пользователя.

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

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

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

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

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

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

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

Характеристики форматов, сравнение, история возникновения и развития.

Вступление

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

Это сейчас формат MPEG-2 ассоциируется в первую очередь с DVD-дисками, а в 1992 году, когда стартовали работы по созданию этого формата, не существовало широко доступных носителей, на которые можно было бы записать видеоинформацию сжатую MPEG-2, но самое главное, компьютерная техника того времени не могла обеспечить нужную полосу пропускания - от 2 до 9 Мбит в секунду. Зато данный канал могло обеспечить спутниковое телевидение с новейшим по тем временам оборудованием. Такие высокие требования к каналу вовсе не означали, что степень сжатия MPEG-2 ниже, чем у MPEG-1, наоборот, значительно выше! А вот разрешение изображения и количество кадров в секунду значительно больше, так как именно высокое качество при разумном битрейте и было той основной целью, которую поставили перед комитетом MPEG заказчики. Именно благодаря MPEG-2 и стало возможно появление телевидения высокого разрешения - HDTV, в котором изображение намного четче, чем у обычного телевидения.

Спустя несколько лет после начала работ, в октябре 1995 года через космический телевизионный спутник "Pan Am Sat" было осуществлено первое 20-канальное ТВ-вещание использующее стандарт MPEG-2. Спутник осуществлял и до сих пор осуществляет трансляцию на территории Скандинавии, Бельгии, Нидерландов, Люксембурга, Ближнего Востока и Африки.
В настоящее время идет широкая экспансия HDTV на Дальнем Востоке - в Японии и Китае.
Видеопотоки сжатые MPEG-2 с битрейтом 9 Мбит в секунду используются при студийной записи и в высококачественном цифровом видеомонтаже.

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

Закончим с ретроспективным обзором MPEG-2 и попытаемся покопаться в его внутренностях. Как уже говорилось, MPEG-2 формат эволюционный, именно поэтому уместно его рассматривать, сравнивая с его именитым прародителем MPEG-1, с указанием, что же нового было внесено в исходный формат.

MPEG-2. Что нового?

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

Как стало известно из исследований комитета MPEG, свыше 95% видеоданных, так или иначе, повторяются в разных кадрах, причем неоднократно. Эти данные являются балластными или, если использовать термин, предложенный комитетом MPEG, избыточными. Избыточные данные удаляются практически без ущерба для изображения, на место повторяющиеся участков при воспроизведении подставляется один единственный оригинальный фрагмент. К уже известным алгоритмам сжатия и удаления избыточной информации, которые встречались нам в формате MPEG-1, добавился еще один, по-видимому, наиболее эффективный. После разбивки видеопотока на фреймы, данный алгоритм анализирует содержимое очередного фрейма на предмет повторяющихся, избыточных данных.

Составляется список оригинальных участков и таблица участков повторяющихся. Оригиналы сохраняются, копии удаляются, а таблица повторяющихся участков используется при декодировании сжатого видеопотока. Результатом работы алгоритма удаления избыточной информации является превосходное высокочеткое изображение при низком битрейте. Подобное соотношение размер/качество до появления MPEG-2 считалось недостижимым.

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

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

Изменения в алгоритмах сжатия видеоданных по сравнению с MPEG-1.

Основные изменения коснулись алгоритмов квантования, то есть алгоритмов преобразования непрерывных данных в дискретные. В MPEG-2 используется нелинейный процесс дискретно-косинусного преобразования, который гораздо эффективнее предшественника. Формат MPEG-2 предоставляет пользователям и программистам значительно большую свободу по сравнению с MPEG-1. Так теперь стало возможным в процессе кодирования задавать точность частотных коэффициентов матрицы квантования, что непосредственно влияет на качество получаемого в результате сжатия изображения (и на размер тоже). Используя MPEG-2, пользователь может задавать следующие значения точности квантования - 8, 9, 10 и 11 бит на одно значение элемента, что делает этот формат значительно более гибким по сравнению с MPEG-1, в котором было только одно фиксированное значение - 8 бит на элемент.

Также стало возможным загрузить отдельную матрицу квантования (quantization matrix) непосредственно перед каждым кадром, что позволяет добиться очень высокого качество изображения, хоть это и довольно трудоемко. Как с помощью матрицы квантования улучшить качество изображения? Не секрет что быстро движущиеся участки - традиционно слабое место для семейства MPEG, в то время как статичные участки изображения кодируются очень хорошо. Отсюда следует вывод, что нельзя статику и участки с движением кодировать одинаково. Так как качество изображения зависит от стадии квантования, которая во многом зависит от используемой матрицы квантования, то меняя эти матрицы для разных участков видеоролика можно добиться улучшения качества изображения. Многие кодеки MPEG-2 делают это автоматически, но есть программы, позволяющие помимо этого задавать матрицы квантования вручную, например перекодировщик AVI2MPG2, который можно найти в сети Internet по адресу: http://members.home.net/beyeler/bbmpeg.html .

Не обошли нововведения и алгоритмы предсказания движения. Данная секция обогатилась новыми режимами: 16x8 MC, field MC и Dual Prime. Данные алгоритмы существенно повысили качество картинки и, что немаловажно позволили делать ключевые кадры реже по сравнению с MPEG-1, увеличив, таким образом, количество промежуточных кадров и повысив степень сжатия. Основной размер блоков, на которые разбивается изображение, может быть 8х8 точек, как и MPEG-1, 16х16 и 16х8, что впрочем используется только в режиме 16х8 МС.

Из-за некоторых особенностей реализации алгоритмов предсказания движения в MPEG-2 появились некоторые ограничения на размер картинки. Теперь стало необходимо, чтобы разрешение изображения по вертикали и горизонтали было кратно 16 в режиме покадрового кодирование, и 32 по вертикали в режиме кодирования полей (field-encoder), где каждое поле состоит из двух кадров. Размер фрейма увеличился до 16383*16383.

Было введено еще два соотношения цветовых плоскостей и плоскости освещенности - 4:4:4 и 4:2:2.

Помимо вышеперечисленных улучшений в формат MPEG-2 были введены еще несколько новых нигде ранее не используемых алгоритмов компрессии видеоданных.

Наиболее важные из них - это алгоритмы под названиями Scalable Modes, Spatial scalability, Data Partitioning, Signal to Noise Ratio (SNR) Scalability и Temporal Scalability. Несомненно, эти алгоритмы внесли весьма важный вклад в успех MPEG-2 и заслуживают более подробного рассмотрения.

Scalable Modes - набор алгоритмов, который позволяет определить уровень приоритетов разных слоев видеопотока. Поток видеоданных делится на три слоя - base, middle и high. Наиболее приоритетный на данный момент слой (например, передний план) кодируется в большим битрейтом

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

Data Partitioning (дробление данных) - этот алгоритм дробит блоки размером в 64 элемента матрицы квантования на два потока. Один поток данных, более высокоприоритетный состоит из низкочастотных (наиболее критичные к качеству) компонентов, другой, соответственно менее приоритетный состоит из высокочастотных компонентов. В дальнейшем эти потоки обрабатываются по-разному. Именно поэтому в MPEG-2 и динамические и статистические сцены смотрятся весьма неплохо, в отличие от MPEG-1, где динамические сцены традиционно ужасны.

Signal to Noise Ratio (SNR) Scalability (масштабирование соотношения сигна/шум) - при действии этого алгоритма разные по приоритету слои кодируются с разным качеством. Низкоприоритетные слои более дискретизированны, более грубы, соответственно содержат меньше данных, а высокоприоритетный слой содержит дополнительную информацию, которая при декодировании позволяет восстановить высококачественное изображение.

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

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

Уровни

Название уровня

разрешение

максимальный битрейт

качественное соответствие

CIF, бытовая видео кассета

CCIR 601, студийное TV

4x601, бытовое HDTV

Hi-End видеомонтажное оборудование

Профили

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

Main c Spatial Scalability

90% от всех

Main c SNR Scalability

Main c SNR Scalability

Наиболее популярные стандарты

Название

Разрешение

За короткое время аббревиатура MPEG стала нам настолько привычной, что нет повода задуматься, как это работает

Анастасия Близнецова

Аналого-цифровое преобразование


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


Дискретно-косинусное преобразование

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Р, но для них установлены разные размеры потоков данных и при кодировании используются разные аппаратные средства.