В 1988 г. в рамках Международной организации по стандартизации (ISO) начала работу группа MPEG (Moving Pictures Experts Group) - группа экспертов в области цифрового видео (ISO-IEC/JTC1/SC2/WG11/MPEG). Группа работала в направлениях, которые можно условно назвать MPEG-Video- сжатие видеосигнала в поток со скоростью до 1.5 Мбит/с, MPEG-Audio - сжатие звука до 64, 128 или 192 Кбит/с на канал и MPEG-System -синхронизация видео- и аудиопотоков [1]. Нас в основном будут интересовать достижения MPEG-Video, хотя очевидно, что многие решения в этом направлении принимались с учетом требований синхронизации.
Как алгоритм MPEG имеет несколько предшественников. Это, прежде всего, универсальный алгоритм JPEG. Его универсальность означает, что JPEG показывает неплохие результаты на широком классе изображений.
Если быть более точным, то стандарт MPEG, как и другие стандарты на сжатие, описывает лишь выходной битовый поток, неявно задавая алгоритмы кодирования и декодирования. При этом их реализация перекладывается на программистов-разработчиков. Такой подход открывает широкие горизонты для тех, кто желает оптимально реализовать алгоритм для конкретного вычислительного устройства (контроллера, ПК, распределенной вычислительной системы), операционной системы, видеокарты и т. п. [2]. При специализированных реализациях могут быть учтены весьма специфические требования на время работы, расход памяти и качество получаемых изображений. Алгоритмы сжатия видео весьма гибки, и зачастую для разных подходов к реализации можно получить существенную разницу по качеству видео при одной и той же степени сжатия. Более того, для одного и того же сжатого файла с помощью разных алгоритмов декодирования можно получить существенно различающиеся по визуальному качеству фильмы. Зачастую "простая" реализация стандарта дает дергающий видеоряд с хорошо заметными блоками, в то время как программы известных производителей проигрывают этот же файл вполне плавно и без бросающейся в глаза блочное™. Эти нюансы необходимо хорошо себе представлять, когда речь заходит о сравнении различных стандартов.
В сентябре 1990 г. был представлен предварительный стандарт кодирования MPEG-1. В январе 1992 г. работа над MPEG-1 была завершена и начата работа над MPEG-2, в задачу которого входило описание потока данных со скоростью от 3 до 10 Мбит/с [3]. Практически в то же время бьша начата работа над MPEG-3, который был предназначен для описания потоков 20-40 Мбит/с. Однако вскоре выяснилось, что алгоритмические решения для MPEG-2 и MPEG-3 принципиально близки и можно безболезненно расширить рамки MPEG-2 до потоков в 40 Мбит/с. В результате работа над MPEG-3 бьша прекращена. MPEG-2 был окончательно доработан к 1995 г.
В 1991 г. группой экспертов по видеотелефонам (EGVT) при Международном консультативном комитете по телефонии и телеграфии (СС1ТТ) предложен стандарт видеотелефонов рх64 Kbit/s [4,9]. Запись рх64 означает, что алгоритм ориентирован на параллельную передачу оцифрованного видеоизображения по р-каналам с пропускной способностью 64 Кбита/с. Таким образом, захватывая несколько телефонных линий, можно получать изображение вполне приемлемого качества. Одним из главных ограничений при создании алгоритма являлось время задержки, которое должно было составлять не более ISO мс. Кроме того, уровень помех в телефонных каналах достаточно высок, и это, естественно, нашло отражение в алгоритме. Можно считать, что рх64 Kbits - предшественник MPEG для потоков данных менее 1,5 Мбит/с и специфического класса видео.
В группе при СМТТ (совместный комитет при CCITT и CCIR-International Consultative Committee on bRoadcasting) работы были направлены на передачу оцифрованного видео по выделенным каналам с высокой пропускной способностью и радиолиниям. Соответствующие стандарты Н21 и Н22 ориентированы на 34 и 45 Мбит/с, и сигнал передается с очень высоким качеством.
MPEG-4 изначально был задуман как стандарт для работы со сверхнизкими потоками. Однако в процессе довольно долгой подготовки стандарт претерпел совершенно революционные изменения, и сейчас собственно сжатие с низким потоком входит в него как одна составная часть, причем достаточно небольшая по размеру. Например, сам формат сегодня включает в себя такие вещи, как синтез речи, рендеринг изображений и описания параметров визуализации лица на стороне программы просмотра.
Разработка MPEG-7 была начата в 1996 г. Собственно к алгоритмам сжатия видео этот стандарт имеет еще меньшее отношение, чем MPEG-4, поскольку его основная задача заключается в описании контента и управлении им. Описание MPEG-7 выходит за рамки это книги.
Параллельно все это время существовали форматы Motioh-JPEG и недавно появившийся Motion-JPEG 2000, предназначенные в основном для удобства обработки сжатого видео. Рассмотрим основные стандарты и лежащие в их основе алгоритмы поподробнее.