Статья в Энциклопедическом Фонде

Формат MP3

Формат MP3 - кодек третьего уровня, разработанный рабочей группой MPEG, лицензируемый формат файла для хранения аудиоинформации.

Звук в цифровом виде стал неотъемлемой частью нашей жизни. Одним из самых распространенных и популярных форматов цифрового кодирования звуковой информации стал MP3. Более точно его название звучит как MPEG-1 Layer III.


1. Общая информация

MPEG (Motion Pictures Expert Group) - рабочая группа, созданная при Международной организации по стандартизации (ISO) и Международном электрическом комитете (IEC) с целью разработки стандартов сжатия видео и аудио-информации. MPEG определяет аудио- и видео-форматы, использующие сжатие с частичной потерей информации, а также операции производимые кодерами MPEG.


2. Кодирование данных

Для создания MP3 файла применяются программы-компрессоры, включающие сложные алгоритмы, которые основаны на так называемом перцептивном кодировании (от англ. Perception - восприятие). Все принципы сжатия основаны исключительно на нелинейности человеческого слуха. Также оценивается минимальный слышимый уровень. Целью является получение сигнала, который в результате последующего декодирования будет казаться человеку идентичным исходному сигналу.

Применяется несколько основных приемов для достижения большого уровня компрессии:

  • Минимальный порог слышимости
  • Эффект маскирования
  • Битовый резерв
  • Прием Joint-Stereo
  • Кодирование Хаффмана


2.1. Минимальный порог слышимости

Для человека он нелинеен и представлен кривой зависимости громкости (дБ) от частоты (Гц) с максимумом чувствительности в диапазоне от 2КГц до 5КГц (в соответствии с законом Флетчера и Мансена). Звуки расположенные ниже этой кривой исключаются.


2.2. Эффект маскирования

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


2.3. Битовый резерв

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


2.4. Прием Joint Stereo

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


2.5. Кодирование Хаффмана

Используется на последней стадии сжатия. На этом этапе создаются коды переменной длины. Символы с большей вероятностью появления имеют коды меньшего размера, что позволяет избежать избыточного количества байтов в результате. Прием помогает сжать данные еще на 20%.


3. Фреймовая модель файла

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

Таблица 1. Формат заголовка фрейма
Длина в битах Описание
11 Frame sync(все биты равны "1"). Обозначает начало фрейма.
2 Идентификатор версии MPEG.
"00" - MPEG версии 2.5
"01" - зарезервировано
"10" - MPEG версии 2
"11" - MPEG версии 1
2 Идентификатор уровня.
"00" - зарезервировано
"01" - Layer III
"10" - Layer II
"11" - Layer I
1 Защита
"0" - защита
"1" - нет защиты
4 Индекс битрейта.
Биты Mpeg1 Layer I Mpeg1 Layer II Mpeg1 Layer III Mpeg2 Layer I Mpeg2 Layer II(Layer III)
0000 Свободный Свободный Свободный Свободный Свободный
0001 32 32 32 32 8
0010 64 48 40 48 16
0011 96 56 48 56 24
0100 128 64 56 64 32
0101 160 80 64 80 40
0110 192 96 80 96 48
0111 224 112 96 112 56
1000 256 128 112 128 64
1001 288 160 128 144 80
1010 320 192 160 160 96
1011 352 224 192 176 112
1100 384 256 224 192 128
1101 416 320 256 224 144
1110 448 384 320 256 160
1111 Неверный Неверный Неверный Неверный Неверный
2 Индекс частоты дискретизации.
Биты MPEG-1 MPEG-2 MPEG-2.5
00 44100 Гц 22050 Гц 11025 Гц
01 48000 Гц 24000 Гц 12000 Гц
10 32000 Гц 16000 Гц 8000 Гц
11 зарезервировано зарезервировано зарезервировано
1 Бит заполненности.
"0" - фрейм заполнен
"1" - фрейм заполнен с одним лишним слотом
1 Персональный бит (Расширение).
"0" - нет
"1" - приватное
2 Каналы.
"00" - Stereo (стерео)
"01" - Joint Stereo(совместное стерео)
"10" - Dual Channel (двойное моно)
"11" - Single Channel (моно)
2 Расширение режима.
Полный диапазон частоты в MPEG файле разделен на 32 подмножества.
Биты Layer I, Layer II Layer III
подмножеств Intensity stereo MS stereo
00 4 - 31 выключено выключено
01 8 - 31 включено выключено
10 12 - 31 выключено включено
11 16 - 31 включено включено
1 Авторское право.
"0" - Не защищен
"1" - Защищен
1 Оригинал.
"0" - Копия оригинальной композиции
"1" - Оригинальная композиция
2 Выразительность.
"00" - отсутствует
"01" - 50/15 миллисекунд
"10" - зарезервировано
"11" - CCIT J.17
Выразительность используется, чтобы сообщить декодеру, что нужно произвести обработку амплитудно-частотного соотношения в звуке после схемы шумоподавления, подобной. Используется в редких случаях.


4. ID3 теги

Формат метаданных содержащий информацию о названии, исполнителе, альбоме и т.д. называется ID3. Существуют две совершенно разных версии метаданных этого типа. ID3v1 находится в конце файла его размер составляет 128 байт и имеет следующую структуру:

Таблица 2. Структура данных ID3v1
Поле Размер в байтах Описание
Header 3 Маркер. Всегда содержит "TAG"
Title 30 Название трека
Artist 30 Исполнитель
Album 30 Название альбома
Year 4 Год выпуска
Comment 28 или 30 Комментарий
Zero-Byte 1 Если есть год выпуска - установлен нулевой байт
Track 1 Номер трека
Genre 1 Номер жанра или "255"


4.1. ID3v2

Практически сразу возникла необходимость увеличить размер ID3-данных. Так появилась вторая версия ID3v2. Такой тип метаданных представляет собой фрейм, имеет переменную длину и размещается вначале файла, что дает возможность поддерживать потоковую передачу. Как любой фрейм имеет заголовок и информативную часть.

Таблица 3. Структура заголовка фрейма ID3v2
Байты 0 1 2 3 4 5 6 7 8 9
Описание Маркер "ID3" Версия Суб-версия Флаги Длинна ID3 в байтах


5. Заключение

В данной статье рассматривались структурные особенности строения файла в формате MPEG-1, Layer III(MP3). Формат представления аудиоданных MP3 - это сложный, структурированный набор данных, позволяющий сократить размер исходного звукового материала в 10 - 12 раз, без значительного изменения качества с точки зрения восприятия человеком. Помимо проблем хранения данных, существенное уменьшение размера при кодировании снижает объем сетевого трафика, что достаточно удобно при использовании потоковой передачи мультимедиа.


6. Используемые источники
1. habrahabr.ru/post/103635
2. audiocoding.ru/статьи/структура-mp3-файла.html
3. kunegin.com/ref/mp3
4. ru.wikipedia.org/wiki/MP3
5. programmersclub.ru

Энциклопедический Фонд