Форматы сжатия аудиоданных с потерями
Особенности сжатия цифрового звука
Сегодня большинство из нас имеет дело преимущественно с цифровыми системами воспроизведения звука. В этих системах звук хранится в цифровом виде – то есть – в виде последовательностей нулей и единиц, которые после раскодирования их с помощью специального программного и аппаратного обеспечения, превращаются в звук. В мире цифровой музыки идет борьба, с одной стороны, за качество воспроизведения, а с другой – за объем хранимых данных. Это два противоборствующих понятия – чем выше качество звука, тем, обычно, больше места требуется для его хранения. Для того, чтобы сохранить цифровой звук с как можно более высоким качеством в как можно меньшем объеме информации, были разработаны алгоритмы сжатия звука.
Существует два различных подхода к сжатию аудиоинформации. Первый называется сжатием без потерь (lossless) – в ходе такого сжатия звук, записанный в цифровом виде, сохраняется полностью, без потерь. Другой подход к сжатию аудиоданных называется сжатием с потерями (lossy) – звук особым образом обрабатывается, из него удаляется все, по заключению алгоритма сжатия, лишнее, а то, что остается, сжимается. Такое сжатие, в сравнении со сжатием без потерь, позволяет добиться гораздо более высоких уровней сжатия, то есть – уменьшить размеры звуковых файлов, в то время как качество звучания, если не стараться сжать файл слишком сильно, страдает не особенно заметно.
Музыкальные записи можно сжимать и обычными архиваторами, однако они не могут работать в режиме реального времени, к тому же, уровень сжатия несжатых музыкальных записей редко когда превышает 50%. Другой, используемый на практике, способ сжатия аудиоинформации заключается в применении специальных программ – так называемых кодеков, с помощью которых можно сжимать и "на лету" заниматься раскодированием и воспроизведением сжатых композиций.
Говоря о кодеках для сжатия аудиоинформации, следует различать понятия кодек и контейнер медиаданных. Контейнер – это, упрощенно говоря, некая стандартная оболочка, в которой хранятся аудиоданные, сжатые тем или иным кодеком. Например, в MP4-контейнере могут храниться данные, сжатые различными кодеками – в частности – кодеком сжатия с потерями AAC, кодеком сжатия без потерь ALAС и другими. Обычно для различных типов данных, которые хранятся в MP4-контейнере, применяются различные расширения файла. Точно так же, в WAV-файле могут храниться различные данные – например, сжатые в популярном формате MP3 или несжатая информация в формате PCM – в случае с WAV-файлами расширение имени файла остается неизменным (.wav), а различаются эти файлы лишь по своей внутренней структуре.
Перечень программ
В табл. 3.1. приведены программы, описанные в данной теме. Это, в основном, универсальные программы, вы можете выбрать для кодирования тех или иных файлов любую из них. Входным форматом файлов по умолчанию является WAV, однако практически все программы умеют кодировать музыку между форматами и "разжимать" исходные файлы в стандартные WAV.
*Программа ImToo WMA MP3 Converter поддерживает большое количество входных форматов файлов, на выходе же могут быть лишь MP3 и WMA.
**Программа MP4 Converter конвертирует видеофайлы различных форматов в формат, понятный плеерам Apple iPod.
***Программа для разбиения больших аудиофайлов в соответствии с индексными картами.
Сжатие с потерями
Среди существующих форматов сжатия аудиоданных с потерями можно отметить "большую четверку" - MP3, WMA, Ogg Vorbis и AAC. Ваш MP3-плеер с практически 100% вероятностью будет поддерживать один из этих форматов, а скорее всего – несколько. Знания о некоторых особенностях форматов будут особенно полезны при практической работе с аудиоинформацией. Например, в следующих лекциях мы рассмотрим ПО для работы со звуком, в частности, подробно остановимся на конверсии звука из одного формата в другой, и если вы будете знать о формате сжатия данных немного больше, чем его название, это может вам неплохо помочь. Итак, начнем с самого популярного формата.
MP3
Полное название MP3 – MPEG 1 Audio Layer 3. MP3 – это формат сжатия аудиоданных с потерями, который добился невероятной популярности по всему миру. В настоящее время существуют варианты стандарта - MPEG-2 Layer 3 и MPEG-2.5 Layer 3.
История MP3 начинается в конце 1980-х годов, когда рабочая группа инженеров института Фраунгофера (Fraunhofer Society) начала работать над проектом DAB (Digital Audio Broadcast). Проект был частью исследовательской программы EUREKA и в ее рамках был известен как EU-147. MP3 стал результатом переработки стандартов сжатия аудиоинформации Musicam и ASPEC, добавления к идеям, используемых в этих стандартах, новых оригинальных концепций. Непосредственное отношение к стандарту имеет так же компания Thomson.
Стандарт развивался в начале 1990-х, в 1995 году была опубликована окончательная версия стандарта, однако еще в 1994 году был создан первый программный MP3-кодировщик, который назывался l3enc. Тогда же было выбрано расширение .mp3 для файлов, закодированных в данном формате, а в 1995 году появился первый программный MP3-проигрыватель Winplay3, доступный широкой общественности. Благодаря высокому качеству музыки при небольшом размере файлов, а так же из-за появления простого и качественного программного обеспечения для проигрывания и создания MP3-файлов (например, широко известного и ныне здравствующего WinAmp’a, который появился еще в середине 1990-х годов), стандарт обрел огромную популярность и пользуется ей до сих пор.
Возможности MP3
Говоря о возможностях формата MP3, пожалуй, надо начать с формата, в котором хранят музыку на обычных музыкальных CD-дисках, на так называемых Audio CD. Звук, записанный на такие диски, имеет вполне определенные характеристики, а именно, это 44.1kHz 16Bit Stereo (44,1 кГц, 16-битный стереозвук). В переводе на нормальный человеческий язык это означает, что каждая секунда звучания состоит из 44100 образцов (этот параметр называют частотой дискретизации), каждый из которых имеет размер 16 бит (то есть – два байта), причем, информация записывается для двух каналов – для правого и для левого. В итоге получается, что для хранения одной секунды музыки в формате Audio CD потребуется 44100*16*2=1411200 бит, или 176400 байт, или 172,2 Кб. Таким образом, пятиминутная композиция займет 176400*5*60=52920000 байт, то есть – почти 50 мегабайт дискового пространства. Даже сегодня, учитывая десятки, а чаще – сотни гигабайт жестких дисков, которые есть в распоряжении обычных пользователей, довольно сложно представить себе музыкальную коллекцию, состоящую исключительно из звука, записанного в таком неэкономном формате. Что и говорить о жестких дисках на пару гигабайт, которые были пределом мечтаний многих лет десять назад.
Файлы, сжатые в MP3 практически без потери первоначального качества, занимают в 6-10 раз меньше места, чем оригинал. То есть из огромного 50-мегабайтного файла получается вполне пристойный 5-мегабайтный. Причем, если сжать такой файл с помощью обычных алгоритмов сжатия (RAR или ZIP, например), которые используются для простых файлов, мы получим, в лучшем случае, 50% выигрыш (то есть файл порядка 25 Мб). В чем же дело? Почему же MP3 способен так сильно сжимать файлы, практически не ухудшая их качества. Ответ на вопрос здесь кроется в слове "практически". Ведь обычное сжатие не изменяет качества композиций, оно полностью сохраняет его, а MP3 проводит некие манипуляции с файлом, которые могут сказаться на его качестве.
Как работает MP3
В основе MP3 лежит множество механизмов сжатия, в частности, так называемое адаптивное кодирование, основанное на психоакустических моделях, которые учитывают особенности восприятия звука человеком и удаляют из него все "лишнее" - все то, что среднестатистическому человеку невозможно услышать при прослушивании композиций. Как мы уже говорили, если не стремиться слишком сильно сжать композицию, применив наиболее качественный вариант MP3-кодирования, то ее размер будет примерно в 6-10 раз меньше оригинала с CD-качеством, а качество этих двух записей будет идентичным – вряд ли даже профессионал различит их. При более высоких уровнях сжатия потери (их еще называют артефактами сжатия) слышны гораздо сильнее, но тот, кто пользуется сильно сжатой MP3-музыкой, сознательно идет на такой шаг. Например, сильно сжатые MP3 чрезвычайно популярны в среде сотовых телефонов – часто встроенной памяти аппарата не хватает для того, чтобы закачать в него достаточное количество качественных MP3, в результате владелец жертвует качеством записи ради количества. Но вернемся к описанию принципов работы MP3, в частности, к психоакустическим моделям.
Адаптивное кодирование, основанное на психоакустических моделях, применяет различные знания об особенностях восприятия звуков человеком. Так, если одновременно воспроизводятся два звуковых сигнала, один из которых слабее, то более слабый сигнал заглушается (или, как говорят, маскируется) более сильным сигналом. В результате получается, что человек слышит более сильный звук, а более слабый – нет. В таком случае информация о более слабом звуке просто отбрасывается. Точно так же происходит, если сразу после громкого звука идет тихий – громкий звук вызывает временное понижение слуховой чувствительности, в результате – тихий звук оказывается не слышным – информацию о нем так же можно убрать. Так же при обработке музыкальных композиций учитывается то, что большинство людей не способны различить сигналы, мощность которых находится ниже определенного уровня для различных частотных диапазонов.
Битрейт
При MP3-кодировании особенную важность имеет так называемый битрейт (bitrate или ширина потока), который задается при кодировании. Например, уже описанный Audio CD может быть закодирован с максимальным битрейтом 320 Кбит/c (килобит в секунду – этот показатель так же обозначают как kbps, kbs, kb/s) до 128 и ниже. На практике, при битрейте ниже 128 Кбит/с качество звучания падает настолько сильно, что кодировать с подобным битрейтом есть смысл лишь тогда, когда другой альтернативы просто нет.
С одним и тем же битрейтом могут быть закодированы различные исходные материалы, например, звук может быть не стереофоническим, а монофоническим, другой может быть частота дискретизации или размер выборки, однако битрейт – это очень важный интегральный показатель качества MP3-файла. В общем случае, чем он больше – тем это лучше. Очень часто при кодировании MP3-записей Audio CD-качества, можно встретить битрейт 192 Кбит/с – он неплохо подходит для этих целей, однако при прослушивании подобных записей на качественной аудиоаппаратуре (особенно, если сравнить их с оригинальными Audio CD), заметны артефакты сжатия.
Однако, нельзя однозначно утверждать, что любая музыкальная композиция, скажем, записанная на битрейте 192 Кбит/с лучше, чем композиция, записанная на 128 Кбит/с. Многое зависит от самой музыки, от кодировщика, от исходного качества записи, а так же от того, какой тип битрейта использован при записи композиции.
Так, наиболее простой тип битрейта – это постоянный битрейт – или CBR (Constant Bit Rate). Этот битрейт не меняется в течение кодирования всей композиции, то есть каждая секунда звучания, независимо от ее содержимого, кодируется одинаковым количеством бит.
Интереснее выглядит переменный битрейт (VBR, Variable Bit Rate). Он динамически изменяется при кодировании в зависимости от аудиоданных, которые подвергаются обработке. Это наиболее прогрессивный тип кодирования MP3 – при его использовании качество записей повышается, в сравнении с использованием постоянного битрейта, а размер файлов уменьшается. Это происходит из-за того, что более насыщенные участки записи кодируются с более высоким битрейтом, а участки, где высокий битрейт не требуются, кодируются с битрейтом более низким. Основной минус VBR заключается в том, что перед началом кодирования практически невозможно назвать размер выходного файла.
Еще один вариант битрейта называется усредненным битрейтом (ABR, Average Bit Rate) – его можно назвать комбинацией VBR и CBR. Так, перед началом кодирования пользователь задает средний битрейт, а при кодировании программа, используя переменный битрейт, следит за тем, чтобы в итоге битрейт вписался в установленное пользователем ограничение. Качество выходного файла получается, таким образом, хуже, чем при использовании VBR (но немного лучше, чем при использовании аналогичного CBR), однако размер файла поддается гибкой и точной регулировке.
В ходе кодирования исходный аудиосигнал разбивается на участки, которые называются фреймами. Каждый фрейм кодируются отдельно, а при декодировании звуковой сигнал реконструируется из декодированных фреймов. Особый интерес при кодировании MP3 представляет способ обработки стереосигнала – давайте остановимся на этом вопросе подробнее.