Знакомьтесь: MPEG

Всем нам когда-нибудь приходилось собирать чемодан перед отъездом куда-либо. С одной стороны, хочется взять все необходимое, с другой - чтобы все это занимало как можно меньше места и как можно меньше весило. Технологии сжатия информации преследуют в точности те же цели. Конечно, одну и ту же проблему можно решать по-разному. Например, взять "чемодан" побольше, но даже если использовать обещанные ведущими производителями 17-гигабайтные двухслойные и двухсторонние компакт-диски, это решит лишь вопрос хранения данных. А ведь сейчас, во время развития и стремительного размножения Всемирной Паутины (WWW), намного сложнее обстоит дело именно с передачей информации по сравнительно медленным каналам связи. Проблем хватает с передачей одного только звука, не говоря уже о видеоизображении. Однако здесь есть и другой путь - увеличение пропускной способности каналов. Но ведь про сетевые модемы, подключаемые к хосту Internet через систему кабельного телевидения и развивающие скорость до 40Mb в секунду, пока приходится только мечтать, да и неизвестно еще, сколько они будут стоить. Так что единственное, чего может ожидать в обозримом будущем рядовой пользователь - это новое поколение обычных модемов, работающих на скорости 57600 бод. Поэтому вопросам сжатия и кодирования видеоинформации сейчас уделяется особое внимание.

Более 20 лет потребовалось, чтобы упорные исследования в этой области получили путевку в жизнь. В начале 80-х годов пошла волна стандартизации цифрового кодирования видеоданных. Начинателем этого доброго дела стал небезызвестный Международный консультативный комитет по телефонии и телеграфии (CCITT), затем Международный консультативный комитет по радио (CCIR). Как результат, на свет появились несколько стандартов, среди них - ISO 11172, известный также как MPEG-1. Позже были выпущены стандарты MPEG-2 и MPEG-3, а в 1993 году началась разработка стандарта MPEG-4, принятие которого ожидается в 1998 году.

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

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

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

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

Хорошим средством уменьшения временной избыточности между кадрами является также предсказание с компенсацией перемещения. Оно нашло применение в стандартах MPEG-1 и MPEG-2. Суть этого метода состоит в оценке перемещений изображения между кадрами. Если определенные элементы видеосцены пространственно перемещаются в определенном направлении, то можно не передавать все эти элементы заново в каждом следующем кадре, а просто описать их перемещение. При использовании этого метода изображение разбивается, как правило, на блоки пикселов (16x16), и для каждого такого блока передается вектор оценки перемещения. Этот алгоритм - ДИКМ с компенсацией перемещения - становится ключевым элементом при разработке конечного стандарта кодирования видеоинформации.

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

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

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

Константин ФРАНЦЕВ

При подготовке статьи использовались
материалы "Компьютер Пресс"

Версия для печатиВерсия для печати

Номер: 

16 за 1997 год

Рубрика: 

Графика
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!