Введение

Стандарт кодирования видео

Сегодня MPEG 1 стал самым широко совместимым форматом аудио/видео с потерями в мире и используется в большом количестве продуктов и технологий. Пожалуй, наиболее известной частью стандарта MPEG 1 является первая версия аудиоформата MP3, которую он представил. Стандарт MPEG 1 опубликован как ISO/IEC 11172 под названием «Информационные технологии — Кодирование движущихся изображений и сопутствующего звука для цифровых носителей информации со скоростью до 1,5 Мбит/с». Стандарт состоит из следующих пяти частей:
Системы (хранение и синхронизация видео, аудио и других данных)
Видео (сжатый видеоконтент)
Аудио (сжатый аудиоконтент)
Тестирование на соответствие (проверка корректности реализации стандарта)
Программное обеспечение для справки (пример программного обеспечения, демонстрирующего кодирование и декодирование в соответствии со стандартом)

Патенты

Из-за своего возраста MPEG 1 больше не защищен действующими патентами и может использоваться без получения лицензии или уплаты каких-либо сборов. В базе данных патентов ISO указан один патент на ISO 11172, US 4,472,747, срок действия которого истек в 2003 году. Практически полная версия проекта стандарта MPEG 1 была общедоступна как ISO CD 11172. Ни в статье Kuro5hin от июля 2008 года "Patent Status of MPEG 1, H.261 and MPEG 2", ни в августовской дискуссии 2008 года в рассылке gstreamer devel не удалось найти ни одного неистекшего патента на MPEG 1 Video и MPEG 1 Audio Layer I/II. В майской дискуссии 2009 года в рассылке whatwg упоминался патент США US 5,214,678, который предположительно распространялся на MPEG 1 Audio Layer II. Заявленный в 1990 году и опубликованный в 1993 году, этот патент также истек. Полный декодер и кодер MPEG 1 с поддержкой "аудио Layer III" не могли быть реализованы без уплаты роялти, так как существовали компании, требовавшие патентные сборы за реализацию MPEG 1 Audio Layer III, как обсуждалось в статье про MP3. Все патенты в мире, связанные с MP3, истекли 30 декабря 2017 года, что делает этот формат полностью свободным для использования. 23 апреля 2017 года Fraunhofer IIS прекратил взимать плату за лицензионную программу MP3 от Technicolor за определенные патенты и программное обеспечение, связанные с MP3.

Приложения

Наиболее популярные программы для воспроизведения видео включают в себя декодирование MPEG 1, в дополнение к любым другим поддерживаемым форматам. Популярность аудио MP3 создала огромную базу установленного оборудования, способного воспроизводить MPEG 1 Audio (все три уровня). "Практически все цифровые аудиоустройства" могут воспроизводить MPEG 1 Audio. Широкое распространение MPEG 2 среди вещательных компаний означает, что MPEG 1 может воспроизводиться большинством цифровых кабельных и спутниковых приставок, а также цифровыми проигрывателями дисков и кассет благодаря обратной совместимости. MPEG 1 использовался для полноэкранного видео на CD i Green Book и на Video CD (VCD). Стандарт Super Video CD, основанный на VCD, использует исключительно аудио MPEG 1, а также видео MPEG 2. Формат DVD-видео в основном использует видео MPEG 2, но поддержка MPEG 1 явно определена в стандарте. Изначально стандарт DVD-видео требовал использования MPEG 1 Audio Layer II для стран PAL, но впоследствии был изменен, чтобы разрешить диски, использующие только AC-3/Dolby Digital. MPEG 1 Audio Layer II по-прежнему допускается на DVD, хотя более новые расширения формата, такие как MPEG Multichannel, редко поддерживаются. Большинство DVD-плееров также поддерживают воспроизведение Video CD и MP3 CD, которые используют MPEG 1. Международный стандарт цифрового видеовещания (DVB) в основном использует MPEG 1 Audio Layer II и видео MPEG 2. Международный стандарт цифрового аудиовещания (DAB) использует исключительно MPEG 1 Audio Layer II благодаря его особенно высокому качеству, умеренным требованиям к производительности декодера и устойчивости к ошибкам. Цифровая компакт-кассета использует PASC (Precision Adaptive Subband Coding) для кодирования звука. PASC является ранней версией MPEG 1 Audio Layer I с фиксированной скоростью передачи 384 килобита в секунду.

Часть 1: Системы

Часть 1 стандарта MPEG 1 охватывает системы и определена в ISO/IEC 11172-1. MPEG 1 Systems определяет логическую структуру и методы, используемые для хранения закодированных аудио-, видео- и других данных в стандартный битовый поток, а также для обеспечения синхронизации между различными компонентами контента. Этот формат файла специально разработан для хранения на носителях информации и передачи по каналам связи, считающимся относительно надежными. Стандарт предусматривает лишь ограниченную защиту от ошибок, и незначительные ошибки в битовом потоке могут приводить к заметным дефектам. Позднее эта структура получила название потока программ MPEG: "Конструкция MPEG 1 Systems по существу идентична структуре потока программ MPEG 2". Эта терминология более распространена, точна (позволяет отличать ее от потока транспорта MPEG) и будет использоваться в дальнейшем.

Элементарные потоки, пакеты и часы ссылок

Элементарные потоки (ES) — это необработанные битовые потоки аудио- и видеоданных, закодированных в формате MPEG 1 (выходные данные кодировщика). Эти файлы могут распространяться самостоятельно, как, например, MP3-файлы. Пакетированные элементарные потоки (PES) — это элементарные потоки, разбитые на пакеты переменной длины, то есть разделенные на независимые фрагменты, к каждому из которых добавлена контрольная сумма CRC для обнаружения ошибок. Временная метка системы (SCR) — это значение времени, хранящееся в 33-битном заголовке каждого пакета PES с частотой/точностью 90 кГц и дополнительным 9-битным расширением, которое хранит дополнительные данные о времени с точностью 27 МГц. Эти метки вставляются кодировщиком на основе системного времени (STC). Одновременно закодированные аудио- и видеопотоки не будут иметь идентичных значений SCR из-за буферизации, кодирования, джиттера и других задержек.

Потоки программ

Программные потоки (PS) обеспечивают объединение нескольких пакетизированных элементарных потоков (обычно одного аудио и одного видео PES) в единый поток, гарантируя одновременную доставку и поддержание синхронизации. Структура PS известна как мультиплекс или контейнерный формат. В PS используются временные метки представления (PTS) для коррекции неизбежной разницы между значениями SCR аудио и видео (коррекция базового времени). Значения PTS в 90 кГц, содержащиеся в заголовке PS, сообщают декодеру, каким значениям SCR видео соответствуют значения SCR аудио. Декодер задержит воспроизведение видео или аудио до тех пор, пока не поступит соответствующий сегмент другого потока и не будет расшифрован. Работа с PTS может быть сложной. Декодеры должны принимать несколько программных потоков, объединенных последовательно (конкатенированных). Это приводит к сбросу значений PTS в середине видео до нуля, после чего они снова начинают увеличиваться. Такие несоответствия, вызванные переполнением PTS, могут привести к проблемам с синхронизацией, которые декодер должен обрабатывать специальным образом. Кроме того, из-за наличия B-кадров требуются временные метки декодирования (DTS). При наличии B-кадров в видеопотоке соседние кадры необходимо кодировать и декодировать не по порядку (кадры, переупорядоченные во времени). DTS аналогичны PTS, но вместо обработки последовательных кадров содержат точные временные метки, указывающие декодеру, когда декодировать и отображать следующий B-кадр (типы кадров описаны ниже) относительно его опорного (P или I) кадра. Если в видео нет B-кадров, значения PTS и DTS совпадают.

Мультиплексирование

Для генерации ПС мультиплексор будет чередовать (два или более) пакетированные элементарные потоки. Это необходимо для того, чтобы пакеты одновременных потоков могли передаваться по одному каналу и гарантированно поступать в декодер одновременно. Это пример мультиплексирования с разделением по времени. Определение объема данных из каждого потока, который должен содержаться в каждом чередуемом сегменте (размер чередования), – сложная, но важная задача. Неправильное чередование приведет к недостатку или переполнению буфера, поскольку приемник получит больше данных из одного потока, чем сможет сохранить (например, аудио), до того, как получит достаточно данных для декодирования другого одновременного потока (например, видео). MPEG Video Buffering Verifier (VBV) помогает определить, сможет ли мультиплексированный ПС быть декодирован устройством с заданной пропускной способностью и размером буфера. Это обеспечивает обратную связь для мультиплексора и кодировщика, позволяя им изменять размер мультиплекса или регулировать битрейт для обеспечения соответствия требованиям.

Часть 2: Видео

Часть 2 стандарта MPEG 1 охватывает видео и определена в ISO/IEC 11172-2. На дизайн оказал значительное влияние стандарт H.261. MPEG 1 Video использует методы перцептивного сжатия для существенного снижения скорости передачи данных, необходимой для видеопотока. Он уменьшает или полностью отбрасывает информацию в определенных частотах и областях изображения, которые человеческий глаз не способен полностью воспринять. Также используется временная (во времени) и пространственная (внутри кадра) избыточность, свойственная видео, для достижения более эффективного сжатия данных, чем было бы возможно в иных условиях. (См. сжатие видео)

Цветовое пространство

Перед кодированием видео в MPEG 1 цветовое пространство преобразуется в Y′CbCr (Y′=Luma, Cb=Chroma Blue, Cr=Chroma Red). Лума (яркость, разрешение) хранится отдельно от хромы (цвет, тон, фаза) и дополнительно разделяется на красную и синюю компоненты. Хрома также подвергается субдискретизации до 4:2:0, что означает уменьшение разрешения вдвое по вертикали и вдвое по горизонтали, то есть до одной четверти количества выборок, используемых для компонента лумы видео. Длина между I-кадрами известна как размер группы кадров (GOP). MPEG 1 чаще всего использует размер GOP от 15 до 18, то есть 1 I-кадр на каждые 14–17 не-I-кадров (некоторая комбинация P- и B-кадров). При использовании более продвинутых кодировщиков размер GOP выбирается динамически, но не превышает заранее установленного максимального значения. Частичные макроблоки и черные границы/полосы, закодированные в видео и не совпадающие точно с границей макроблока, приводят к проблемам при прогнозировании движения. Информация о заполнении/границе блока мешает точному сопоставлению макроблока с другими областями видео, поэтому для каждого из нескольких десятков частичных макроблоков вдоль границы экрана необходимо кодировать значительно больший объем информации об ошибке прогнозирования. DCT-кодирование и квантование (см. ниже) также менее эффективны при наличии большого/резкого контраста изображения в блоке. Еще более серьезная проблема возникает с макроблоками, содержащими значительный, случайный краевой шум, где изображение переходит (обычно) в черный цвет. Все вышеперечисленные проблемы также относятся к краевому шуму. Кроме того, добавленная случайность практически не поддается значимому сжатию. Все эти факторы существенно снижают качество (или увеличивают битрейт) видео.

История / Музыка

MPEG 1 Audio Layer II был разработан на основе аудиокодека MUSICAM (Masking pattern adapted Universal Subband Integrated Coding And Multiplexing), созданного совместно Центром общих исследований в области телевидения и телекоммуникаций (CCETT), Philips и Институтом радиотехники (IRT/CNET) в рамках общеевропейской межправительственной исследовательской и опытно-конструкторской инициативы EUREKA 147, направленной на разработку цифрового аудиовещания. Большинство ключевых характеристик MPEG 1 Audio были напрямую заимствованы из MUSICAM, включая фильтр-банк, обработку во временной области, размеры аудиофреймов и т.д. Однако были внесены улучшения, и фактический алгоритм MUSICAM не был использован в окончательном стандарте MPEG 1 Audio Layer II. Распространенное использование термина MUSICAM для обозначения Layer II является полностью неверным и не рекомендуется по техническим и юридическим соображениям.

Технические детали

MP2 — это кодировщик, работающий во временной области. Он использует малозадержный 32-полосный полифазный фильтр-банк для преобразования во временную-частотную область, с перекрывающимися диапазонами (то есть полифазный), чтобы предотвратить алиасинг. Второй слой также может опционально использовать стереокодирование на основе интенсивности – разновидность совместного стерео. Это означает, что частоты выше 6 кГц обоих каналов объединяются/смешиваются в один (моно) канал, но информация "бокового канала" об относительной интенсивности (громкости, амплитуде) каждого канала сохраняется и кодируется в битовом потоке отдельно. При воспроизведении этот единый канал воспроизводится через левый и правый динамики, при этом информация об интенсивности применяется к каждому каналу, создавая иллюзию стереозвука. Этот (приблизительный) коэффициент сжатия 1:6 для CD-аудио особенно впечатляет, поскольку он довольно близок к предполагаемому верхнему пределу перцептивной энтропии, который составляет чуть больше 1:8. Достичь более высокой степени сжатия невозможно, не отбрасывая при этом часть воспринимаемой информации. MP2 остается популярным стандартом аудиокодирования с потерями благодаря его особенно высоким показателям кодирования для важного аудиоматериала, такого как кастаньеты, симфонический оркестр, мужские и женские голоса, а также особенно сложные и высокоэнергетические переходные процессы (импульсы), такие как перкуссионные звуки: треугольник, глокеншпиль и аплодисменты публики. Это одна из причин, по которой аудио MP2 продолжает широко использоваться. Однако тесты проверки MPEG 2 AAC Stereo показали совершенно иные результаты, продемонстрировав, что AAC обеспечивает более высокую производительность по сравнению с MP2 при вдвое меньшей скорости передачи данных. Причина этого расхождения с более ранними и более поздними тестами неясна, но, странным образом, в последнем тесте отсутствует образец аплодисментов. Аудиофайлы второго уровня обычно имеют расширение ".mp2" или иногда ".m2a".

Слой III

MPEG 1 Audio Layer III (первая версия MP3) — это формат с потерями, разработанный для обеспечения приемлемого качества звука при скорости около 64 кбит/с для монофонического аудио по одноканальным (BRI) линиям ISDN и 128 кбит/с для стереофонического звука.

История / ASPEC

MPEG 1 Audio Layer III был разработан на основе кодека Adaptive Spectral Perceptual Entropy Coding (ASPEC), созданного Fraunhofer в рамках общеевропейской межправительственной исследовательской и опытно-конструкторской инициативы EUREKA 147, направленной на развитие цифрового аудиовещания. ASPEC был адаптирован к структуре Layer II (размер кадра, фильтр-банк, FFT и т.д.), чтобы стать Layer III.

Технические детали

MP3 – это кодировщик аудио, выполняющий преобразование в частотную область. Несмотря на использование некоторых функций нижних слоев, MP3 существенно отличается от MP2. MP3 работает с 1152 семплами, как и MP2, но для эффективной обработки и квантования с использованием частотного преобразования (MDCT) требуется анализ нескольких кадров. Он выдает переменное количество семплов, используя битовый буфер для реализации кодирования с переменным битрейтом (VBR) при сохранении размера выходных кадров в 1152 семпла. Это приводит к значительно большей задержке при выводе, из-за чего MP3 считается неподходящим для студийных приложений, где требуется редактирование или другая обработка. MP3 использует алгоритмы обнаружения предэха и кодирование VBR, позволяющие временно увеличивать битрейт на сложных участках, чтобы уменьшить этот эффект. Он также может переключаться между стандартным окном квантования в 36 семплов и тремя короткими окнами по 12 семплов, чтобы сократить временную протяженность артефактов квантования. В отличие от слоев I и II, MP3 использует кодирование Хаффмана переменной длины (после перцептивного анализа) для дальнейшего снижения битрейта без ухудшения качества. MPEG 2 Audio определен в стандарте ISO/IEC 13818-3. MPEG Multichannel – многоканальный звук, обратно совместимый с форматом 5.1-канального объемного звучания.

Часть 4: Испытание соответствия

Часть 4 стандарта MPEG 1 охватывает тестирование соответствия и определена в ISO/IEC 11172-4. Соответствие: процедуры проверки соответствия. Предоставляет два набора рекомендаций и эталонных битовых потоков для тестирования соответствия аудио- и видеодекодеров MPEG 1, а также битовых потоков, генерируемых кодировщиком.

Часть 5: Справочное программное обеспечение

Часть 5 стандарта MPEG 1 включает в себя эталонное программное обеспечение и определена в ISO/IEC TR 11172–5. Симуляция: эталонное программное обеспечение. Референтный код на языке C для кодирования и декодирования аудио и видео, а также мультиплексирования и демультиплексирования. Это включает в себя код аудиокодера ISO Dist10, который послужил основой для LAME и TooLAME изначально.

Расширение файла

.mpg – одно из множества расширений файлов для сжатия аудио и видео MPEG 1 или MPEG 2. Видео MPEG 1 Часть 2 встречается редко в наши дни, и это расширение обычно относится к потоку программ MPEG (определенному в MPEG 1 и MPEG 2) или потоку транспорта MPEG (определенному в MPEG 2). Существуют и другие суффиксы, такие как m2ts, которые указывают точный контейнер, в данном случае MPEG 2 TS, но это не имеет большого значения для носителей MPEG 1. .mp3 – наиболее распространенное расширение для файлов, содержащих аудио MP3 (обычно MPEG 1 Audio, иногда MPEG 2 Audio). MP3-файл обычно представляет собой поток необработанного аудио без контейнера; общепринятый способ добавления тегов к MP3-файлам – запись данных в "неиспользуемые" сегменты каждого кадра, которые сохраняют информацию о медиа, но игнорируются проигрывателем. Это во многом похоже на то, как добавляются теги к необработанным файлам AAC (но эта возможность поддерживается в меньшей степени в настоящее время, например, в iTunes). Следует отметить, что хотя это и возможно, .mpg обычно не используется для файлов с необработанным AAC или AAC в контейнерах MPEG 2 Часть 7. Расширение .aac обычно обозначает эти аудиофайлы.