Методы сжатия видеоданных

Как выбрать метод сжатия? Методы сжатия данных используют математические алгоритмы для устранения, группировки и/или усреднения схожих данных, присутствующих в видеосигнале. Выбор конкретного алгоритма зависит от вашей конечной цели. Существует большое разнообразие алгоритмов сжатия, включая PLV, Compact Video, Indeo, RTV и AVC, но только Motion JPEG (Joint Photographic Experts Group), MPEG-1 и MPEG-2 признаны международными стандартами для сжатия видео.

Практически все рассматриваемые ниже видеоплаты построены на основе одного из двух методов компрессии: Motion-JPEG или MPEG. Нелегко судить о преимуществе одного формата над другим, тем более что области применения этих форматов несколько различаются, так как технология MPEG кодирования и монтажа до последнего времени была более дорогостоящей и сложной. Большую роль сыграло и анонсирование спецификаций формата MPEG-2, который ляжет в основу новых видеотехнологий не только на компьютерах, но и применительно к телевидению и кино. Судя по всему, этот формат в совокупности с новыми CD-дисками высокой плотности (DVD) основательно изменит привычный видеорынок. Без сжатия очень трудно обеспечить непрерывную передачу видео со скоростью 21 Мбайт/с (требования CCIR 601[3] - признанного в мире стандарта цифрового телевидения), а объемы и стоимость хранения несжатых видеоданных на дисках фактически делает невозможным применение PC для чернового монтажа. Качество сжатия варьирует в довольно широких пределах; обычными для современных видеосистем являются коэффициенты сжатия от 1:4 до 1:100. Для цифрового оборудования, которое используется при нелинейном монтаже видео с вещательным (1:4 и менее) качеством влияние сжатия может быть особенно заметным. На сегодняшний день наибольшее распространение получили два стандарта сжатия: Motion-JPEG и MPEG. Сейчас разрабатываются новые методы сжатия изображения и видеопотока, но какие бы совершенные алгоритмы при этом ни применялись, неизменным остается одно: чем выше

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




Что такое MPEG?

Структура MPEG-последовательности.

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)

Методы сжатия видеоданных - student2.ru

Рис. 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:4 1:1 1:1
4:2:2 1:2 1:1
4:2:0 1:2 1:2
4:1:1 1:4 1:1
4:1:0 1:4 1:4

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

Методы сжатия видеоданных - student2.ru
Рмс.2 Пример для формата 4:2:0


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

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

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

· Разница между блоками (которая затем и кодируется).

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

Таблица 2

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

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

· 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 достигает самого большого сжатия, но, соответственно, требует больше ресурсов на кодирование.

Методы сжатия видеоданных - student2.ru
Рис.3

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

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

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

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

· Компрессионный слой, содержащий видео и аудио потоки.

Методы сжатия видеоданных - student2.ru
Рис. 4

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

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

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

Методы сжатия видеоданных - student2.ru
Рис. 5


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

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

Таблица 3

Способ кодирования Скорость передачи kbps (килобит в сек.) Коэффициент сжатия
Layer I 1:4
Layer II 128..96 1:6..8
Layer III 64..56 1:10..12

Параметры Видео: в принципе с помощью 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 для улучшения качества.

Наши рекомендации