Сегодня 22 ноября 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Звук и акустика

Семейство форматов MPEG. Часть первая - MPEG-1.

Автор: Дан Гьен

История семейства форматов MPEG, к которому собственно и принадлежит стремительно набирающий в последнее время популярность формат MPEG-4, началась в далеком 1988 году. Именно в этом году был основан комитет Moving Pictures Expert Group, что на русский переводится примерно как экспертная группы кинематографии (движущихся изображений), аббревиатура которого - MPEG известна теперь любому, кто имел дело с мультимедиа - компьютерами или с цифровым телевидением. В этом же году была начата разработка формата MPEG-1, который в окончательном виде был выпущен в 1993 году. Несмотря на все очевидные недостатки этого формата, MPEG-1 по-прежнему является одним из наиболее массовых форматов видеосжатия, лишь в последнее время, начиная постепенно сдавать позиции под натиском более новых и совершенных форматов видеокомпрессии, по большей части из этого же семейства.

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

Формат MPEG-1. Старый, но еще не побежденный.

Формат MPEG-1 начал разрабатываться в те трудно вообразимые времена, когда не было широкодоступных носителей большого объема, в то время, как видеоданные, даже и сжатые, занимали совершенно колоссальные для конца 80-х объемы - средней продолжительности фильм имел размер больше гигабайта. Если кто не помнит, то это была эпоха 286 и 386 процессоров, 4 Мб оперативной памяти и 250 Мб винчестер считались роскошью, а не убогостью, как сейчас, Windows была примочкой для DOS, а не наоборот, а в качестве легко переносимых носителей информации доминировали 5 дюймовые дискеты и только-только появившиеся 3,5" дискеты от фирмы SONY. В таких условиях необходимо было найти носитель, на который можно было бы записать гигабайт информации, при этом этот носитель должен был быть недорогим, иначе ни о какой массовости не могло быть и речи.

И такой носитель был найден. Как раз в эти годы впервые на платформе PC появился такой новый тип носителей информации как CD-ROM диски, которые смогли обеспечить необходимый объем информации. Правда, на один диск фильм в формате MPEG-1 все-таки не вмещался, но что мешало записать его на 2 CD, тем более, что новинка стоила очень недорого? Разумеется, первые CD-ROM проигрыватели были односкоростными, поэтому не стоит удивляться, что максимальная скорость пересылки потока данных (bitstream) в формате MPEG-1 ограничена 150 Кб/сек., что соответствует одной скорости CD-ROM.

Надо сказать, что возможности MPEG-1 не ограничены тем низким разрешением, которое вы все видели при просмотре VIDEO-CD. В самом формате была заложена возможность сжатия и воспроизведения видеоинформации с разрешением вплоть до 4095х4095 и частотой смены кадров до 60 Гц. Но из-за того, что поток передачи данных был ограничен 150 Кб/сек., то есть так называемый Constrained Parameters Bitstream (CPB) - зафиксированная ширина потока передачи данных, разработчики формата, а в дальнейшем и создатели кодеков на его основе, были вынуждены использовать разрешения кадра, оптимизированные под данный CPB. Наиболее широко распространенными являются два таких оптимизированных формата - это формат SIF 352х240, 30 кадров в секунду и урезанный формат PAL/SECAM 352х288, 25 кадров в секунду.

Ну вот, с разрешением определились, теперь можно и посмотреть, как это все сжимается.

Принципы Сжатия информации в MPEG-1.

В качестве примера рассмотрим урезанный формат PAL/SECAM, который более распространен, чем SIF, хотя оба эти формата за исключением разрешения и частоты смены кадров ничем друг от друга не отличаются.

Урезанная версия формата PAL/SECAM содержит 352 ppl (point per line - точек на линию), 288 lpf (line per frame - линий на кадр) и 25 fps (frame per second - кадров в секунду). Надо сказать, что полноценный стандарт PAL/SECAM имеет параметры в 4 раза большие, чем аналогичные у MPEG-1 (кроме fps). Поэтому принято говорить, что VIDEO-CD имеет четкость в четыре раза хуже, по сравнению с обычным видео.

Что касается глубины цвета, то тут не все так просто, как в компьютерной графике, где на каждый пиксел отводится определенное фиксированное число бит. MPEG-1 использует цветовую схему YСbCr, где Y - это яркостная плоскость, Сb и Cr - плоскости цветовые. Эти плоскости кодируются с разным разрешением. Существуют несколько вариантов кодирования, которые можно представить с следующем виде:

Вариант кодирования Отношение разрешений Сb/Y (Сr/Y) по горизонтали Отношение разрешений Сb/Y (Сr/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

Как видно из таблицы Сb и Cr практически всегда кодируются с меньшим разрешением, чем Y. Чем меньше разрешение цветовых плоскостей, тем грубее и неестественнее цветопередача в видеоролике. Разумеется, самым некачественным, но и самым компактным будет последний вариант.

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

  1. Кадры типа I - Intra frame. Ключевые кадры, которые сжимаются без изменений.
  2. Кадры типа P - Predirected frame. При кодировании этих кадров часть информации удаляется. При воспроизведении P кадра используется информация от предыдущих I или P кадров.
  3. Кадры типа В - Bidirectional frame. При кодировании этих кадров потери информации еще более значительны. При воспроизведении В кадра используется информация уже от двух предыдущих I или P кадров. Наличие В кадров в видеоролике - тот самый фактор, благодаря которому MPEG-1 имеет высокий коэффициент сжатия (но и не очень высокое качество).

При кодировании формируется цепочка кадров разных типов. Наиболее типичная последовательность может выглядеть следующим образом: IBBPBBPBBIBBPBBPBB... Соответственно очередь воспроизведения по номерам кадров будет выглядеть так: 1423765...

По окончании разбивки кадров на разные типы начинается процесс подготовки к кодированию.

С I кадрами процесс подготовки к кодированию происходит достаточно просто - кадр разбивается на блоки. В MPEG-1 блоки имеют размер 8х8 пикселов.

А вот для кадров типа P и B подготовка происходит гораздо сложнее. Для того, чтобы сильнее сжать кадры указанных типов используется алгоритм предсказания движения.

В качестве входной информации алгоритм предсказания движения получает блок 8х8 пикселов текущего кадра и аналогичные блоки от предыдущих кадров (I или P типа). На выходе данного алгоритма имеем следующую информацию о вышеуказанном блоке:

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

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

Но у алгоритма предсказания движения есть ограничения. Зачастую в фильмах бывают статические сцены, в которых движения нет или оно незначительно и возникают блоки или целые кадры, в которых невозможно использовать алгоритм предсказания движения. Думаю, вы замечали, что у видеороликов сжатых MPEG-1 качество сцен с небольшим количеством двигающихся объектов заметно выше, чем в сценах с интенсивным движением. Это объясняется тем, что в статических сценах P и B кадры, по сути, представляют собой копии I кадров, потерь практически нет, но и сжатие информации незначительно.

В случае же корректного срабатывания алгоритма предсказания движения, объемы кадров разного типа в байтах соотносятся друг с другом примерно следующим образом - I:P:B как 15:5:2. Как вы видите из данного соотношения, уменьшение объема видеоинформации налицо уже на стадии подготовки к кодированию.

По окончании этой стадии начинается собственно само кодирование. Процесс кодирования содержит в себе 3 стадии:

  1. Discrete Cosine Transformation - DTC, дискретное преобразование косинусов, преобразование Фурье.
  2. Quantization - квантование. Перевод данных из непрерывной формы в прерывистую, дискретную.
  3. Преобразование полученных блоков данных в последовательность, то есть преобразование из матричной формы в линейную.

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

Все эти преобразования касаются только изображения. Но кроме изображения в практически любом видеофрагменте присутствует так же и звук. Кодирование звука осуществляется отдельным звуковым кодером. По мере развития формата MPEG, звуковые кодеры неоднократно переделывались, становясь все эффективнее. К моменту окончательной стандартизации формата MPEG-1 было создано три звуковых кодера этого семейства - MPEG-1 Layer I, Layer II и Layer 3 (тот самый знаменитый MP3). Принципы кодирования всех этих кодеков основаны на психоакустической модели, которая становилась все более и более совершенной и достигла своего апофеоза для семейства MPEG-1 в алгоритмах Layer-3.

Про психоакустическую модель и принципы сжатия аудиоданных с потерями написано множество статей, в частности статья "Описание формата аудиосжатия MP3", которую вы можете прочитать на этом сайте, поэтому описание аудиокодеров можно опустить, упомянув, единственно о синхронизации аудио- и видеоданных и форматов аудиотреков.

Синхронизация аудио- и видеоданных осуществляется с помощью специально выделенного потока данных под названием System stream. Этот поток содержит встроенный таймер, который работает со скоростью 90 КГц и содержит 2 слоя - системный слой с таймером и служебной информацией для синхронизации кадров с аудиотреком и компрессионный слой с видео- и аудиопотоками.

Под служебной информацией понимаются несколько видов меток, наиболее важными из которых являются метки SCR (System Clock Reference) - инкремент увеличения временного счетчика кодека и PDS (Presentation Data Stamp) - метка начала воспроизведения видеокадра или аудиофрейма.

Ну вот рассказ о MPEG-1 практически подошел к концу, осталось лишь назвать некоторые параметры аудиотреков, которые используются в этом формате.

Качество аудиотреков в MPEG-1 может варьироваться в очень больших пределах - от высококачественных до безобразных. Окончательно все форматы сжатия аудиоданных были стандартизированы в 1992 году европейской комиссией по стандартам ISO.

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

На этом хватит о MPEG-1, а в следующих главах речь пойдет о его более чем достойных и перспективных наследниках.

 
 
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
Новая статья: Верные спутники: 20+ полезных Telegram-ботов для путешественников 3 ч.
Итоги Golden Joystick Awards 2024 — Final Fantasy VII Rebirth и Helldivers 2 забрали больше всех наград, а Black Myth: Wukong стала игрой года 5 ч.
В программу сохранения классических игр от GOG вошли S.T.A.L.K.E.R. Shadow of Chernobyl и Call of Pripyat, а Clear Sky — на подходе 6 ч.
Star Wars Outlaws вышла в Steam с крупным обновлением и дополнением про Лэндо Калриссиана 7 ч.
Рекордная скидка и PvP-режим Versus обернулись для Warhammer: Vermintide 2 полумиллионом новых игроков за неделю 8 ч.
Новый трейлер раскрыл дату выхода Mandragora — метроидвании с элементами Dark Souls и нелинейной историей от соавтора Vampire: The Masquerade — Bloodlines 9 ч.
В Японии порекомендовали добавить в завещания свои логины и пароли 11 ч.
Обновления Windows 11 больше не будут перезагружать ПК, но обычных пользователей это не касается 11 ч.
VK похвасталась успехами «VK Видео» на фоне замедления YouTube 13 ч.
GTA наоборот: полицейская песочница The Precinct с «дозой нуара 80-х» не выйдет в 2024 году 15 ч.
Представлен внешний SSD SanDisk Extreme на 8 Тбайт за $800 и скоростной SanDisk Extreme PRO с USB4 4 ч.
Представлен безбуферный SSD WD_Black SN7100 со скоростью до 7250 Мбайт/с и внешний SSD WD_Black C50 для Xbox 4 ч.
Новая статья: Обзор ноутбука ASUS Zenbook S 16 (UM5606W): Ryzen AI в естественной среде 5 ч.
Redmi показала флагманский смартфон K80 Pro и объявила дату его премьеры 7 ч.
Астрономы впервые сфотографировали умирающую звезду за пределами нашей галактики — она выглядит не так, как ожидалось 10 ч.
Представлена технология охлаждения чипов светом — секретная и только по предварительной записи 10 ч.
Японская Hokkaido Electric Power намерена перезапустить ядерный реактор для удовлетворения потребности ЦОД в энергии 10 ч.
Грузовик «Прогресс МС-29» улетел к МКС с новогодними подарками и мандаринами для космонавтов 11 ч.
Meta планирует построить за $5 млрд кампус ЦОД в Луизиане 11 ч.
Arm задаёт новый стандарт для ПК, чтобы навязать конкуренцию x86 11 ч.