Тарифы Услуги Сим-карты

Как выглядит гласный звук в сжатии mp3. Подготовка материала перед сжатием. Как со мной связаться

Сегодня количество потребляемой нами информации в сети выросло в тысячи раз в сравнении с началом 2000-х. И неудивительно, ведь раньше, помимо намного менее распространенного интернет-покрытия, привычные нам сайты и сервисы выглядели совсем по другому.

Мы ежедневно читаем статьи и новости о том, что та или иная компания разработала новый стандарт соединения, превосходящий нынешние аналоги по скорости передачи данных. За уже практически два десятилетия провайдеры и производители многих гаджетов сделали огромный шаг в направлении к скоростному доступу в Интернет. Но не одними лишь скоростями наш мгновенный доступ к сайтам един.


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

Работа алгоритма

Первым в новой серии статей станет самый популярный формат сжатия аудио–файлов *.mp3. Появился он в 1993 году, благодаря рабочей группе института Фраунгофера, а стандартизирован объединением MPEG. По данным Википедии, объединение было образовано международной организацией ISO для разработки норм в сжатии аудио и видеофайлов. Ими были установлены также следующие стандарты:

  • MPEG–1 : Предназначался для сжатия видео и аудио–файлов, позже стал устоявшимся стандартом для VCD (Video CD).
  • MPEG–2 : Уже ориентировался на передачу сигнала широковещательного телевидения семейств ATSC, ISDB и DVB и в прочих спутниковых ТВ-вещаниях. Таких как например Dish Network.
  • MPEG–3 : Стандарт разработанный для вещания HDTV, но был не принят по причине того, что MPEG–2, с небольшими доработками вполне хватало для таких целей. И нет, это не тот самый mp3, о котором вы сейчас могли подумать. На самом деле, mp3 является ответвлением стандарта MPEG–1, 3 уровня.
  • MPEG–4 : Является во многом усовершенствованным MPEG–1, с поддержкой декодирования 3D–контента и сжатия с низким битрейтом. В него также была интегрирована система программной защиты авторских прав - DRM. Из новых введенных в стандарт видео-форматов, можно отметить ASP и H.264.
Все таки давайте вернемся обратно к mp3. Основной задачей формата было и является уменьшение размера файлов за счет удаления определенных участков звукового спектра, которые не ощущаются на непрофессиональной аудиотехнике, в соответствии с психоакустической моделью звуковосприятия человека.

На этом этапе при помощи алгоритма преобразования Фурье, звуковая волна раскладывается на спектры разной частоты. Все те малоразличимые нашим слухом частоты просто удаляются. В основном это весь спектр звука выше 16 000 Гц. По такому принципу, кстати, работают и сервисы определения музыки, типа SoundHound и Shazam. Встроенный в их работу алгоритм разделяет слышимую звуковую волну на несколько, выделяет ритмику, основные ноты и сравнивает их со своей базой данных.

Но тем не менее, общая картина звучания, например, mp3-файла в битрейте 320 кбит/с мало чем отличается от несжатого файла, при этом в размере может составлять 1/10 от оригинального.

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

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

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

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

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

Аудиоинформации удается при использовании специальных методов, основанных на анализе структуры данных и последующим сжатием с некоторыми потерями .

Реальная возможность обработки звука, сравнимых по качеству с существующими аналоговыми примерами, появилась только в конце 80-х годов. В 1988 году Международной организацией стандартов ISO (International Standards Organization) был сформирован комитет MPEG (Moving Pictures Expert Group, группа экспертов в области движущихся изображений), основной задачей которого является разработка стандартов кодирования подвижных изображений, звука и их комбинации. За десять лет своего существования комитет выработал ряд стандартов по данному вопросу. В результате обобщив обширные исследования в этой области, был рекомендован ряд специфических форматов для хранения данных, отличных по качеству результатов и скорости потока данных.

В настоящее время наиболлее распространены три стандарта хранения видеоданных: MPEG-1, MPEG-2 и MPEG-4. В рамках первых двух форматов существуют также форматы хранения звуковой информации – Layer-1, Layer-2 и Layer-3. Эти три звуковых формата определены для MPEG-1 и незначительными расширениями используются в MPEG-2. Все три формата похожи друг на друга, но используют различные уровни компромисса между сжатием и сложностью. Уровень Layer-1 - наиболее простой, не требует значительных затрат на сжатие, но и дает незначительную степень сжатия. Уровень Layer-3 – наиболее трудоемкий и обеспечивает самое лучшее сжатие. В последнее время этот формат завоевал огромную популярность. Его часто называют MP3. Такое название связано с расширением звуковых файлов, хранящихся в этом формате.

Основанная идея, на которой основаны все методики сжатия аудио сигнала с потерями , – пренебрежение тонкими деталями звучания оригинала, лежащие вне пределов которые воспринимает человеческое ухо. Здесь можно выделить несколько моментов.

Уровень шума. Звуковое сжатие базируется на простом факте – если человек находиться рядом с громко воющей сиреной, то вряд ли он услышит разговор стоящих неподалеку людей. Причем это происходит не оттого, что человек обращает большое внимание на громкий звук, а в большей степени оттого, что человеческое ухо фактически теряет звуки, лежащие в том же диапазоне частот, что и более громкий звук. Этот эффект носит название маскирующего, он изменяется с различием в громкости и частоте звука.

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

Еще одним моментом кодирования является использование психоакустической модели, опирающейся на особенности человеческого восприятия звука. Сжатие с использованием этой модели основано на удалении заведомо неслышимых частот с более тщательным сохранением звуков, хорошо различаемых человеческим ухом. К сожалению, здесь не может быть точных математических формул. Восприятие звука человеком – сложный, до конца не изученный процесс, поэтому выбор методов сжатия выполняется на основе анализирующего прослушивания и сравнения по-разному сжатых звуков группами экспертов. Зато здесь имеются практически неограниченные возможности в сфере улучшения психоакустических моделей. Большинство существующих алгоритмов для кодировки человеческого голоса основано на высокой предсказуемости такого сигнала – универсальные алгоритмы сжатия MPEG с переменным успехом пытаются применить этот прием.

Еще одним приемом сжатия является использование так называемого совмещенного стерео. Известно, что слуховой аппарат человека может определить направление лишь средних частот – высокие и низкие звучат как бы отдельно от источника. Значит, эти фоновые частоты можно кодировать в моно сигнал. Кроме всего этого для сжатия используется различие в сложности потоков в каналах. Например, если в правом канале какое-то время полная тишина, это "зарезервированное" место используется для повышения качества левого канала или туда "впихиваются" необходимые биты, не влезшие в поток чуть раньше. На последней стадии сжатия используется алгоритм сжатия Хаффмана . Этот процесс позволяет улучшить степень сжатия для относительно однородных сигналов, которые плохо сжимаются с помощью описанных выше приемов. На основе описанных идей строятся алгоритмы сжатия, позволяющие достигать степени компрессии 10:1 или выше практически без потери в качестве звучания. При кодировании задают требуемый уровень компрессии, а алгоритмы сжатия добиваются требуемого значения уровня сжатия за счет потери качества. Требуемый уровень сжатия обычно указывают в виде величины потока данных (bit rate), измеряемого в Кбит/сек.

В качестве начального шага обработки изображения форматы сжатия MPEG-1 и MPEG-2 разбивают опорные кадры на несколько равных блоков, над которыми затем производится дискетное косинусное преобразование (DCT). По сравнению с MPEG-1, формат сжатия MPEG-2 обеспечивает лучшее разрешение изображения при более высокой скорости передачи видео данных за счет использования новых алгоритмов сжатия и удаления избыточной информации, а также кодирования выходного потока данных. Также формат сжатия MPEG-2 дает возможность выбора уровня сжатия за счет точности квантования. Для видео с разрешением 352х288 пикселей формат сжатия MPEG-1 обеспечивает скорость передачи 1,2 – 3 Мбит/с, а MPEG-2 – до 4 Мбит/с.

По сравнению с MPEG-1, формат сжатия MPEG-2 обладает следующими преимуществами:

  • MPEG-2 обеспечивает масштабируемость различных уровней качества изображения в одном видеопотоке.
  • В формате сжатия MPEG-2 точность векторов движения увеличена до 1/2 пикселя.
  • Пользователь может выбрать произвольную точность дискретного косинусного преобразования .
  • В формат сжатия MPEG-2 включены дополнительные режимы прогнозирования.

MPEG-4 использует технологию так называемого фрактального сжатия изображений. Фрактальное (контурно-основанное) сжатие подразумевает выделение из изображения контуров и текстур объектов. Контуры представляются в виде т.н. сплайнов (полиномиальных функций) и кодируются опорными точками. Текстуры могут быть представлены в качестве коэффициентов пространственного частотного преобразования (например, дискретного косинусного или вейвлет -преобразования).

Диапазон скоростей передачи данных, который поддерживает формат сжатия видео изображений MPEG 4, гораздо шире, чем в MPEG 1 и MPEG 2 . Дальнейшие разработки специалистов направлены на полную замену методов обработки, используемых форматом MPEG 2. Формат сжатия видео изображений MPEG 4 поддерживает широкий набор стандартов и значений скорости передачи данных. MPEG 4 включает в себя методы прогрессивного и чересстрочного сканирования и поддерживает произвольные значения пространственного разрешения и скорости передачи данных в диапазоне от 5 кбит/с до 10 Мбит/с. В MPEG 4 усовершенствован алгоритм сжатия , качество и эффективность которого повышены при всех поддерживаемых значениях скорости передачи данных.


Назад К cодержанию Вперёд

МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ

Экономический факультет

Кафедра «Прикладная информатика»

САМОСТОЯТЕЛЬНАЯ

КОНТРОЛИРУЕМАЯ РАБОТА

по дисциплине «Мультимедиа»

Тема «Сжатие звуковой информации»

Выполнил:

студент группы 2ПО

Проверил:

доцент кафедры ПИ,

к. т.н., доцент

Ставрополь, 2011

СЖАТИЕ ЗВУКОВОЙ ИНФОРМАЦИИ

Общие сведения

При первичном кодировании в студийном тракте используется об равномерное квантование отсчетов звукового сигнала (ЗС) с разрешением ∆А=16...24 бит/отсчет при частоте дискретизации f = 44,1...96 кГц. В каналах студийного качества обычно

∆А =16 бит/отсчет, f = 48 кГц, полоса частот кодируемого звукового сигнала

∆F = 20...20000 Гц. Динамический диапазон так цифрового канала составляет около 54 дБ. Если f = 48 кГц и ∆А =16 бит/отсчет, то скорость цифрового потока при передаче одного такого сигнала равна V= 48x16 = 768 кбит/с. Это требует суммарной пропускной способности канал связи при передаче звукового сигнала форматов 5.1 (Dolby Digital) или 3/2 плюс канал сверхнизких частот (Dolby Surround, Dolby-Pro-Logic, Dolby THX) более 3,840 Мбит/с. Но человек способен своими органами чувств сознательно обрабатывать лишь около 100 бит/с информации. Поэтому можно говорить о присущей сущей первичным цифровым звуковым сигналам значительной избыточности

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

Статистическая избыточность обусловлена наличием корреляционной связи между соседними отсчетами временной функции звукового сигнала при его дискретизации. Для ее уменьшения применяют достаточно сложные алгоритмы обработки. При их использовании потери информации нет, однако исходный сигнал оказывается представленным в более компактной форме, что требует меньшего количества бит при его кодировании. Важно, чтобы все эта алгоритмы позволяли бы при обратном преобразовании восстанавливать исходные сигналы без искажений. Наиболее часто для этой цели используют ортогональные преобразования. Оптимальным с этой точки зрения является преобразование Карунена - Лоэва. Но его реализация требует существенных вычислительных затрат. Незначительно по эффективности ему уступает модифицированное дискретное косинусное преобразование (МДКП). Важно также, что для реализации МДКП разработаны быстрые вычислительные алгоритмы. Кроме того, между коэффициентами преобразования Фурье (к которому мы все привыкли) и коэффициентами МДКП существует простая связь, что позволяет представлять результаты вычислений в форме, достаточно хорошо согласующейся с работой механизмов слуха. Дополнительно уменьшить скорость цифрового потока позволяют также методы кодирования, учитывающие стати звуковых сигналов (например, вероятности появления уровней звукового нала разной величины). Примером такого учета являются коды Хаффмана где наиболее вероятным значениям сигнала приписываются более короткие кодовые слова, а значения отсчетов, вероятность появления которых мала кодируются кодовыми словами большей длины. Именно в силу этих двух причин в наиболее эффективных алгоритмах компрессии цифровых аудиоданных кодирование подвергаются не сами отсчеты ЗС, а коэффициенты МДКП, и для их кодирования используются кодовые таблицы Хаффмана. Заметим, что число таких таблиц достаточно велико и каждая из них адаптирована к звуковому сигналу определенного жанра.

Однако даже при использовании достаточно сложных процедур обработки устранение статистической избыточности звуковых сигналов позволяет в конечном итоге уменьшить требуемую пропускную способность канала связи лишь 15...25% по сравнению с ее исходной величиной, что никак нельзя считать революционным достижением.

После устранения статистической избыточности скорость цифрового пока при передаче высококачественных ЗС и возможности человека по их обработке отличаются, по крайней мере, на несколько порядков. Это свидетельствует также о существенной психоакустической избыточности первичных цифровых ЗС и, следовательно, о возможности ее уменьшения. Наиболее перспективными с этой точки зрения оказались методы, учитывающие такие свойства слуха, как маскировка, предмаскировка и послемаскировка. Если известно, какие доли (части) звукового сигнала ухо воспринимает, а какие нет вследствие маскировки, то можно вычленить и затем передать по каналу связи лишь те части сигнала, которые ухо способно воспринять, а неслышимые доли (составляющие исходного сигнала) можно отбросить (не передавать по каналу связи). Кроме того, сигналы можно квантовать с возможно меньшим разрешением по уровню, так, чтобы искажения квантования, изменясь по величине с изменением уровня самого сигнала, еще оставались бы неслышимыми, т. е. маскировались бы ис­ходным сигналом. Однако, после устранения психоакустической избыточности точное восстановление формы временной функции ЗС при декодировании оказывается уже невозможным.

В этой связи следует обратить внимание на две очень важные для практики особенности. Если компрессия цифровых аудиоданных уже использовалась ранее в канале связи при доставке программы, то ее повторное применение часто ведет к появлению существенных искажений, хотя исходный сигнал кажется нам на слух вполне качественным перед повторным кодированием. Поэтому очень важно знать «историю» цифрового сигнала, и какие методы кодирования при его передаче уже использовались ранее. Если измерять традиционными методами параметры качества таких кодеков на тональных сигналах (как это часто и делается), то мы будем для них получать при разных, даже самых малых установленных значениях скорости цифрового потока, практически идеальные величины измеряемых параметров. Результаты же тестовых прослушиваний для них, выполненные на реальных звуковых сигналах, будут принципиально отличаться Иными словами, традиционные методы оценки качества для кодеков с компрессией цифровых аудиоданных не пригодны.

Работы по анализу качества и оценке эффективности алгоритмов компрессии цифровых аудиоданных с целью их последующей стандартизации начались в 1988 году, когда была образована международная экспертная группа MPEG (Moving Pictures Experts Group). Итогом работы этой группы на первом этапе явилось принятие в ноябре 1992 года международного, стандарта MPEG 1 ISO/IEC 11172-3 (здесь и далее цифра 3 после номера стандарта относится к той его части, где речь идет о кодировании звуковых сигналов).

К настоящему времени достаточное распространение в радиовещании получили также еще нескольких стандартов MPEG, таких, как MPEG-2 ISO/IEC 13818-3, 13818-7 и MPEG-4 ISO/IEC 14496-3.

В отличие от этого в США был разработан стандарт Dolby АС-3 (ад/52) качестве альтернативны стандартам MPEG. Несколько позже четко сформировались две разные платформы цифровых технологий для радиовещания и телевидения - это DAB (Digital Audi o Broadcasting), DRM (Digital Radio Mondiale), DVB (с наземной DVB-T, кабельной DVB-C, спутниковой DVB-S разновидностями) и ATSC (Dolby АС-3). Первая из них (DAB, DRM) продвигается Европой, ATSC - США. Отличаются эти платформы, прежде всего, выбранным алгоритмом компрессии цифровых аудиоданных, видом цифровой модуляции и процедурой помехоустойчивого кодирования ЗС.

Несмотря на значительное разнообразие алгоритмов компрессии цифровых аудиоданных, структура кодера, реализующего такой алгоритм обработки сигналов, может быть представлена в виде обобщенной схемы, показанной на рис. 4.1. В блоке временной и частотной сегментации исходный звуковой сигнал разделяется на субполосные составляющие и сегментируется по времени, Длина кодируемой выборки зависит от формы временной функции звукового сигнала. При отсутствии резких выбросов по амплитуде используется так назы­ваемая длинная выборка, обеспечивающая высокое разрешение по частоте. В случае же резких изменений амплитуды сигнала длина кодируемой выборки резко уменьшается, что дает более высокое разрешение по времени. Решение об изменении длины кодируемой выборки принимает блок психоакустического анализа, вычисляя значение психоакустической энтропии сигнала. После сегментации субполосные сигналы нормируются, квантуются и кодируются. В наиболее эффективных алгоритмах компрессии кодированию подвергаются не сами отсчеты выборки ЗС, а соответствующие им коэффициенты МДКП.

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

Алгоритмы сжатия звука MPEG основаны на описанных в первой главе свойствах восприятия звуковых сигналов слуховым аппаратом человека. Использование эффекта маскировки позволяет существенно сократить объем звуковых данных, сохраняя приемлемое качество звучания. Принцип здесь достаточно простой: «Если какая-то составляющая не слышна, то и передавать ее не следу». На практике это означает, что в области маскирования можно снизить число битов на отсчет до такой степени, чтобы шум квантования все еще оставался ниже порога маскирования. Таким образом, для работы звукового кодера необходимо знать пороги маскирования при различных комбинациях воздействующих сигналов. Вычислением этих порогов занимается важный узел в кодере психоакустическая модель слуха (ПАМ). Она анализирует входной сигнал в последовательные отрезки времени и определяет для каждого блока отсчетов спектральные компоненты и соответствующие им области маскирования. Входной сигнал анализируется в частотной области, для этого блок отсчетов, взятых во времени, с помощью дискретного преобразования Фурье преобразуется в набор коэффициентов при компонентах частотного спектра сигнала. Разработчики кодеров компрессии имеют значительную свободу в построении модели, точность ее функционирования зависит от требуемой степени сжатия

Полосное кодирование и блок фильтров. Наилучшим методом к кодирования звука, учитывающим эффект маскирования, оказывается полосное кодирование. Сущность его заключается в следующем. Группа отсчетов входного звукового сигнала, называемая кадром, поступает на блок фильтров (БФ) который содержит, как правило, 32 полосовых фильтра. Учитывая сказанное pan критических полосах и маскировании, хорошо бы иметь в блоке фильтров полосы пропускания, по возможности совпадающие с критическими. Однако практическая реализация цифрового блока фильтров с неравными полосами достаточно сложна и оправдана только в устройствах самого высокого класса Обычно используется блок фильтров на основе квадратурно-зеркальных (W. ров с равными полосами пропускания, охватывающих с небольшим взаимным, перекрытием всю полосу слышимых частот (рис. 4.2). В этом случае полоса пропускания фильтра равна π/32T, а центральные частоты полос равны (2к + 1) π /64Т, где Т - период дискретизации;

к = 0,1,..., 31. При частоте дискретизации 48 кГц полоса пропускания секции фильтра составляет 750 Гц.

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

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

Квантование и распределение битов. Все вышеописанные операции не сокращали заметно объем данных, они были как бы подготовительным этапом к собственно сжатию звука. Как и при компрессии цифровых видеосигналов, основное сжатие происходит в квантователе. Исходя из принятых ПАМ решений о переквантовании отсчетов в отдельных частотных полосах, квантователь меняет шаг квантования таким образом, чтобы приблизить шум квантования данной полосе к вычисленному порогу маскирования. При этом на отсчет может понадобиться вместовсего 4 или 5 битов.

Принятие решения о передаваемых компонентах сигнала в каждой частотной полосе происходит независимо от других, и требуется некий «диспетчер», который выделил бы каждому из 32 полосных сигналов часть из общего ресурса битов, соответствующую значимости этого сигнала в общем ансамбле. Роль такого диспетчера выполняет устройство динамического распределения битов.

Возможны три стратегии распределения битов.

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

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

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

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

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

Семейство стандартов MPEG

MPEG расшифровывается как «Moving Picture Coding Experts Group», дословно - группа экспертов по кодированию подвижных изображений. MPEG ведет свою историю с января 1988 года. Начиная с первого собрания в мае 1988 года, группа начала расти, и выросла до очень большого коллектива специалистов. Обычно, в собрании MPEG принимают участие около 350 специалистов из более чем 200 компаний. Большая часть участников MPEG - это специалисты, занятые в тех или иных научных и академических учреждениях.

Стандарт MPEG-1

Стандарт MPEG-1 (ISO/IEC 11172-3) включает в себя три алгоритма различных уровней сложности: Layer (уровень) I, Layer II и Layer III. Общая структура процесса кодирования одинакова для всех уровней. Однако, несмотря схожесть уровней в общем подходе к кодированию, уровни различаются п левому использованию и внутренним механизмам. Для каждого уровня определен цифровой поток (общая ширина потока) и свой алгоритм декодирования MPEG-1 предназначен для кодирования сигналов, оцифрованных с частотой дискретизации 32, 44.1 и 48 КГц. Как было указано выше, MPEG-1 имеет три уровня (Layer I, II и Ш). Эти уровни имеют различия в обеспечиваемом коэффициенте сжатия и качестве звучания получаемых потоков. MPEG-1 нормирует для всех трех уровней следующие номиналы скоростей цифрового потока: 32, 48, 56, 64, 96, 112, 192, 256, 384 и 448 кбит/с, число уровней квантования входного сигнала - от 16 до 24. Стандартным входным ^гналом для кодера MPEG-1 принят цифровой сигнал AES/EBU (двухканальный цифровой звуковой сигнал с разрядностью квантованиябита на отчет) Предусматриваются следующие режимы работы звукового кодера:

■ одиночный канал (моно);

■ двойной канал (стерео или два моноканала);

■ joint stereo (сигнал с частичным разделением правого и левого каналов). Важнейшим свойством MPEG-1 является полная обратная совместимость всех трех уровней. Это означает, что каждый декодер может декодировать сигналы не только своего, но и нижележащих уровней.

В основу алгоритма Уровня I положен, разработанный компанией Philips для записи на компакт-кассеты, формат DCC (Digital Compact Cassette). Кодирование первого уровня применяется там, где не очень важна степень компрессии и решающими факторами являются сложность и стоимость кодера и декодера. Кодер Уровня I обеспечивает высококачественный звук при скорости цифрового потока 384 кбит/с на стереопрограмму.

Уровень II требует более сложного кодера и несколько более сложного декодера, но обеспечивает лучшее сжатие - «прозрачность» канала достигается уже при скорости 256 кбит/с. Он допускает до 8 кодирований/декодирований без заметного ухудшения качества звука. В основу алгоритма Уровня П положен популярный в Европе формат MUSICAM.

Самый сложный Уровень III включает все основные инструменты сжатия: полосное кодирование, дополнительное ДКП, энтропийное кодирование, усовершенствованную ПАМ. За счет усложнения кодера и декодера он обеспечивает высокую степень компрессии - считается, что «прозрачный» канал формируется на скорости 128 кбит/с, хотя высококачественная передача возможна и на более низких скоростях. В стандарте рекомендованы две психоакустические модели: более простая Модель 1 и более сложная, но и более высококачественная Модель 2. Они отличаются алгоритмом обработки отсчетов. Обе модели могут использоваться всех трех уровней, но Модель 2 имеет специальную модификацию для Уровня III.

MPEG -1 оказался первым международным стандартом цифрового сжатия звуковых сигналов и это обусловило его широкое применение во многих областях: вещании, звукозаписи, связи и мультимедийных приложениях. Наиболее широко используется Уровень II, он вошел составной частью в европейские спутникового, кабельного и наземного цифрового ТВ вещания, в стандарты звукового вещания, записи на DVD, Рекомендации МСЭ BS.1115 и J.52. Уровень III (его еще называют МР-3) нашел широкое применение в цифровых сетях с интегральным обслуживанием (ISDN) и в сети Интернет Подавляющее большинство музыкальных файлов в сети записаны именно в этом стандарте.

Кодер первого уровня. Рассмотрим более подробно работу кодера первого уровня (рис 4.4). Блок фильтров (БФ) обрабатывает одновременно 384 о счета звуковых данных и распределяет их с соответствующей субдискретизацией в 32 полосы, по 12 отсчетов в каждой полосе с частотой дискретизации 48/32 =1,5 кГц. Длительность кадра при частоте дискретизации 48 кГц составляет 8 мс. Упрощенная психоакустическая модель оценивает только частотное маскирование по наличию и «мгновенному» уровню компонентов сигнала в каждой полосе. По результатам оценки для каждой полосы назначается как можно более грубое квантование, но так, чтобы шум квантования не превышал порога маскирования. Масштабирующие множители имеют разрядность 6 бит и перекрывают динамический диапазон 120 дБ с шагом 2 дБ. В цифровом потоке передаются также 32 кода распределения битов. Они имеют разрядность 4 бита и указывают на длину кодового слова отсчета в данной полосе после переквантования.

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

Кодер второго уровня. В кодере второго уровня устранены основные недостатки базовой модели полосного кодирования, связанные с несоответствием критических полос слуха и реальных полос БФ, из-за чего в низкочастотных участках диапазона эффект маскирования практически не использовался. Величина кадра увеличена втрое, до 24 мс при дискретизации 48 кГц, одновременно обрабатываются уже 1152 отсчета (3 субкадра по 384 отсчета). В качестве входного сигнала для ПАМ используются не полосные сигналы с выхода БФ, а спектральные коэффициенты, полученные в результате 512-точечного преобразования Фурье входного сигнала кодера. Благодаря увеличению и временной длительности кадра и точности спектрального анализа эффективность работы ПАМ возрастает.

На втором уровне применен более сложный алгоритм распределения битов. Полосы с номерами от 0 до 10 обрабатываются с четырехразрядным кодом распределения (выбор любой из 15 шкал квантования), для полос с номерами от 11 до 22 выбор сокращается до 3 разрядов (выбор одной из 7 шкал), полосы с номерами от 23 до 26 предоставляют выбор одной из 3 шкал (двухбитовый код), а полосы с номерами от 27 до 31 (выше 20 кГц) не передаются. Если шкалы квантования, выбранные для всех блоков кадра, оказываются одинаковыми, то номер шкалы передается только один раз.

Еще одно существенное отличие алгоритма второго уровня в том, что не все масштабирующие множители передаются по каналу связи. Если различие множителей трех последовательных субкадров превышает 2 дБ не более чем в течение 10% времени, передается только один набор множителей и это дает экономию расходуемых битов. Если в данной полосе происходят быстрые изменения уровня звука, передаются два или все три набора масштабирующих множителей. Соответственно декодер должен запоминать номера выбранных писал квантования и масштабирующие множители и применять их при необходимости к последующему субкадру. Кодер третьего уровня. Кодер Уровня III использует усовершенствованный алгоритм кодирования с дополнительным ДКП.

Основной недостаток кодеров второго уровня - неэффективная обработка быстро изменяющихся переходов и скачков уровня звука – устраняется благодаря введению двух видов блоков ДКП - «длинного» с 18 отсчетами и «короткого» с 6 отсчетами. Выбор режима осуществляется адаптивно путем переключения оконных функций в каждой из 32 частотных полос. Длинные блоки обеспечивают лучшее частотное разрешение сигнала со стандартными характеристиками, в то время как короткие блоки улучшают обработку быстрых переходов. В одном кадре могут быть как длинные, так и короткие блоки, однако общее число коэффициентов ДКП не изменяется, так как вместо одного длинною передаются три коротких блока. Для улучшения кодирования применяются также следующие усовершенствования.

■ Неравномерное квантование (квантователь возводит отсчеты в степень 3/4 перед квантованием для улучшения отношения сигнал-шум; соответственно, декодер возводит их в степень 4/3 для обратной линеаризации).

■ В отличие от кодеров первого и второго уровней, на третьем уровне масштабирующие множители присваиваются не каждой из 32 частотных полос БФ, а полосам масштабирования - участкам спектра, не связанным с этими полосами и примерно соответствующим критическим полосам.

■ Энтропийное кодирование квантованных коэффициентов кодом Хаффмана.

■ Наличие «резервуара битов» - запаса, который кодер создает в периоды стационарного входного сигнала.

Кодер третьего уровня более полно обрабатывает стереосигнал в формате joint stereo (MS Stereo). Если кодеры нижележащих уровней работают только в режиме кодирования по интенсивности, когда левый и правый каналы в полосах выше 2 кГц кодируются как один сигнал (но с независимыми масштабирующими множителями), кодер третьего уровня может работать и в режиме «сумма-разность», обеспечивая более высокую степень сжатия разностного канала. Стереосигнал раскладывается на средний между каналами и разностный. При этом второй кодируется с меньшей скоростью. Это позволяет несколько увеличить качество кодирования в обычной ситуации, когда каналы по фазе совпадают. Но это приводит и к резкому его ухудшению, если кодируются сигналы, по фазе не совпадающие, в частности, фазовый сдвиг практически всегда присутствует в записях, оцифрованных с аудиокассет, но встречается и на CD, особенно если сам CD был записан в свое время с аудиоленты.

В рамках третьего уровня кодирование стереосигнала допустимо еще тремя различными методами.

■ Joint Stereo (MS/IS Stereo) вводит еще один метод упрощения стереосигнала, повышающий качество кодирования на особо низких скоростях. Состоит в том, что для некоторых частотных диапазонов оставляется уже даже не разностный сигнал, а только отношение мощностей сигнала в разных каналах. Понятно, что для кодирования этой информации употребляется еще меньшая скорость. В отличие от всех остальных, этот метод приводит к потере фазовой информации, но выгоды от экономии места в пользу среднего сигнала оказы­ваются выше, если речь идет об очень низких скоростях. Этот режим по умолчанию используется для высоких частот на скоростях от 96 кбит/с и ниже (другими качественными кодерами этот режим практически не используется). Но, как уже говорилось, при применении данного режима происходит потеря фазовой информации. Кроме того, теряется также любой противофазный сигнал.

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

■ Stereo - каждый канал кодируется отдельно, но кодер может принять решение отдать одному каналу больше места, чем другому. Это может быть полезно в том случае, когда после отброса части сигнала, лежащей ниже порога слышимости или полностью маскируемой код не полностью заполняет выделенный для данного канала объем, и кодер имеет возможность использовать это место для кодирования другого канала. Этим, например, избегается кодирование «тишины» в одном канале, когда в другом есть сигнал. Данный режим используется на скоростях выше 192 кбит/с. Он применим и на более низких скоростях порядка кбит/с.

Основные используемые кодеры III Уровня - кодеры от фирмы XingTech, кодеры от фирмы FhG IIS, и кодеры, основанные на исходном коде ISO.

Кодеры от XingTech не отличаются высоким качеством кодирования, но вполне подойдут для кодирования электронной музыки. Благодаря своей скорости они остаются идеальными кодерами для музыки, не требующей высокого качества кодирования.

Кодеры от FhG IIS известны наивысшим качеством кодирования на низких и средних скоростях, благодаря наиболее подходящей для таких скоростей психоакустичекой модели. Из консольных кодеров данной группы наиболее предпочтителен 13епс 2.61. Пока также используется кодер mр3епс 3.1, но последний никто всерьез не тестировал. Другие кодеры, такие, как Audio Active или МРЗ Producer, обладают значительными недостатками в основном из-за ограничения возможностей настройки и неразвитости интерфейса.

Остальные кодеры ведут свое происхождение от исходных кодов ISO. Существует два основных направления развития - оптимизация кода по скорости и оптимизация алгоритма по качеству. Первое направление наилучшим образом представлял кодер BladeEnc, в котором используется первоначальная модель ISO, но проведено много оптимизаций кода, а вторую модель представляет mpegEnc.

Кодер МР3Рго анонсирован в июле 2001 года компанией Coding Technologies вместе с Tomson Multimedia и институтом Fraunhofer. Формат МР3Рго является развитием III уровня (МРЗ). МР3Рго является совместимым с МРЗ назад (полностью) и вперед (частично), т. е. файлы, закодированные с помощью МР3Рго, можно воспроизводить в обычных проигрывателях. Однако качество звучания при этом заметно хуже, чем при воспроизведении в специальном проигрывателе. Это связано с тем, что файлы МР3Рго имеют два потока аудио, в то время как обычные проигрыватели распознают в них только один поток, т. е. обычный MPEG-1 Layer 3.

В МР3Рго использована новая технология - SBR (Spectral Band Replication). Она предназначена для передачи верхнего частотного диапазона. Дело в том, что предыдущие технологии использования психоакустических моделей имеют один общий недостаток: все они работают качественно, начиная со скорости 128 кбит/с. На более низких скоростях начинаются различные проблемы: либо для передачи звука необходимо обрезать частотный диапазон, либо кодирование приводит к появлению различных артефактов. Новая технология SBR дополняет использование психоакустических моделей. Передается (кодируется) чуть более узкий диапазон частот чем обычно (т. е. с обрезанными «верхами»), а верхние частоты воссоздаются (восстанавливаются) уже самим декодером на основе информации о более низких частотных составляющих. Таким образом, технология SBR применяется фактически не столько на стадии сжатия, сколько на стадии декодирования. Второй поток данных, о котором говорилось выше, как раз и есть та минимальная необходимая информация, которая используется при воспроизведении для восстановления верхних частот. Пока достоверно не известно, какую точно информацию несет этот поток, однако проведенные исследования показывают, что эта информация о средней мощности в нескольких полосах частот верхнего диапазона.

Каждому кто хоть немного пользовался компьютером, знакомо слово «архиватор». Кому незнакомо, поясним, что архиватором называется программа, предназначенная для сжатия/разжатия файлов. Среди наиболее известных являются WinZip и WinRar. Они сжимают файлы в одном случае на несколько процентов, в другом - в разы. Все зависит от типа файла. Исполняемые файлы уменьшаются на незначительную величину, зато текстовые теряют свой «вес» сразу в несколько раз. Однако такие методы сжатия не подходят к звуковым файлам по ряду причин. Прослушать такой файл можно только после его распаковки. Но тогда теряется весь смысл сжатия. А в бытовых плеерах это вообще становится невозможным. Правда, есть еще возможность использования оперативной памяти, но она настолько дорога, что «овчинка выделки не стоит». Вторая причина кроется в том, что даже после сжатия звукового файла особого выигрыша в освободившемся пространстве не получится. Если взять WAV-файл размером 44 Мб, то после Упаковки его с помощью архиватора WinZip получится файл размером 34 Мб. Как вы заметили, «бонус» в 10 Мб не впечатляет. К тому же с никуда не Девшимися проблемами распаковки.
Поэтому для звуковых файлов применяют немного иные способы сжатия, идним из них (наверное, самым распространенным) является сжатие с потерями (Loss compression). Принцип его построен на особенностях человеческого восприятия той или иной среды (звука, изображения). Очень понятно это объясняется на примере цифровой фотографии. Все знают, что она состоит из множества точек. Каждая точка имеет свой определенный цвет. ^0 физиологически глаз человека не способен воспринимать все эти цвета, показывать вам каждую точку по отдельности (даже увеличив в разы), многие из них вы вообще не увидите. Дальтонизм тут ни при чем. Берется зрение обычного здорового человека. Так вот, если из фотографии изъять все эти невидимые точки, их количество заметно поубавится. Соответственно, как вы понимаете, уменьшится и размер фотографии. На этом принципе происходит кодирование и видеофайлов.
Так же и с нашим слухом. Не все звуки мы способны слышать, тем не менее они записываются в файл. Получается, что они впустую занимают место на диске. После удаления этих «глухих» мест файл существенно «похудеет». Например, если в звуке одновременно присутствует очень мощный сигнал (грохот пушек) и тут же находит место более тихий (выстрел из пистолета с глушителем), то соответственно он все равно не будет услышан, и его можно спокойно удалить, не изменяя общей картины.
Также сразу же после громкого звука человеческое ухо резко понижает свою чувствительность к тихому звуку. Например, каждый когда-нибудь испытал звон в ушах после того, как у вас под ухом взорвали хлопушку или тому подобное. Ведь после этого вы не слышали даже то, что вам говорят? Еще учитывается невосприимчивость большинства людей к звукам, находящимся в определенном частотном диапазоне.
Обычно человек слышит в диапазоне от 20 до 2000 Гц. Все это относится к адаптивному кодированию. Благодаря ему достигается до десятикратного уменьшения размера файла.

От редактора

Мы публикуем второе издание этой статьи, дополненное и переработанное. Многим нашим читателям изложенный здесь материал покажется слишком очевидным, другим — весьма спорным. Однако, для людей, только что открывших для себя существование магического мира MP3 , данная статья должна принести неоценимую пользу и ответить на большинство возникших вопросов.

От автора

Как следует из названия, статья посвящена описанию некоторых тонкостей, которые возникают при использовании стандарта сжатия аудиоданных MPEG I/II Layer 3 (mp3). Данная работа не претендует на статус законченного исследования, включающего в себя тестирование кодеров или проигрывателей mp3. Это лишь попытка автора структурировать свои знания, а также отразить свой опыт знакомства с вышеупомянутым стандартом.

Способ подачи материала предполагает наличие у читателя базовых знаний по mp3, которые, впрочем, вы можете почерпнуть в любой момент из источников, указанных в разделе "Список ссылок".

Стратегические вопросы

Имеет ли смысл использовать сжатие с потерями вообще ?

Давайте попытаемся обозначить границы применения mp3. Везде, где качество звука не должно в точности соответствовать оригиналу и где в будущем наверняка не потребуется серьезная обработка хранимых данных, использование mp3 (или другого формата сжатия с потерями) вполне допустимо. Не всякому захочется каждый час вставлять в CD привод новый музыкальный диск, если объем винчестера составляет десятки гигабайт. Куда как проще записать музыку в mp3 на винчестер или CD-ROM и слушать оттуда. Или воспользоваться портативным mp3 плеером, mp3-CD плеером, автомагнитолой с поддержкой mp3. А можно просто скачать mp3 из интернета на выбор.

В этом и следующем подразделах будут описаны случаи, когда применение сжатия с потерями недопустимо, а также предпринята попытка разобраться — почему?

Не имеет смысла делать архивы звуковых данных для их дальнейшей обработки (библиотеки сэмплов, фонотеки и т.п.) в mp3. Это касается и MiniDisk (там тоже используется сжатие с потерями), и других форматов: многие виды цифровой обработки влекут за собой слышимые искажения. Данное правило не зависит от используемого битрейта. Говоря о дальнейшей обработке звука я имею в виду нечто более серьезное, чем просто микширование или fade in/out, например flange, distortion, dynamic compression, reverberation, фильтрация шумов и даже использование эквалайзера… Скажем, в mp3 нельзя хранить сэмплы (для их хранения используют специальные форматы сжатия без потерь , например sfArk). Так как в случае кодирования с потерями нельзя восстановить утраченные на этапе кодирования данные, то в mp3 желательно сохранять только окончательные варианты звукозаписей.

Еще один аргумент: вы знаете как аудиодиск, перегнанный в mp3, записать обратно на аудиокомпакт-диск так, чтобы между треками не было ни пауз лишних, ни щелчков? Не знаете? Почитайте, скажем, www.r3mix.net . Морока та еще… Если вы хотите сказать: "А я вот делал — все ОК!" — конкретизируем задачу: музыка должна переходить без пауз из трека в трек, причем паузой считается не только промежуток в 1-2 секунды, но и маленькие отрезки тишины в единицы-десятки миллисекунд. Теоретически и в этом случае можно все сделать идеально слитно, но может так оказаться, что "овчинка не будет стоить выделки".

Какие существуют способы хранения звука без потерь?

Я храню фонотеку в wav-файлах (в PCM формате). Можно также использовать CD-DA; для него характерны большая совместимость, но меньшая точность считывания при проигрывании. Есть и другие варианты — обычное архивирование (ZIP , RAR) или специальные программы типа WavPack , Monkey"s Audio , RK Audio , LPAC Archiver , Shorten . Однако работа с файлами, сжатыми подобным образом, чревата неприятными сюрпризами: wav (PCM) играют подавляющее большинство проигрывателей, а вот экзотику типа RKA… Известно о существовании плагина для RKA под WinAmp, но на WinAmp свет клином не сошелся: есть же люди, которые им не пользуются. Таким образом, один только WinAmp — это еще не совместимость (в широком смысле). А другие программы-проигрыватели? А аппаратные плееры? А mp3-CD плееры? Не знаю, как для вас, а для меня совместимость в указанном выше смысле очень важна. А использование только одной пары кодер/проигрыватель существенно ограничивает свободу. Например, для того чтобы дать послушать какой-то файл своим друзьям, нужно еще убеждать их в необходимости использовать новый проигрыватель.

Из каких соображений нужно исходить при выборе параметров сжатия?

По моему мнению, можно выделить два основных режима сжатия: "сохранение приемлемого уровня качества при достижении максимального сжатия" (например, для публикации в Сети) и "полное субъективное сохранение качества исходного материала при не самом большом сжатии" (для хранения и регулярного прослушивания). Стоит заметить, что пороговые битрейты для того и другого режимов индивидуальны. Для меня они составляют 128 и 256 кб/с соответственно. Безусловно, существует множество промежуточных вариантов: есть портативный плеер mp3 с плохонькими наушниками, которому достаточно 160 кб/с; в машине установлена магнитола с поддержкой mp3 и акустикой получше — тут потребуется, скажем, 192 кб/с. Таким образом, выбирая параметры сжатия, нужно прежде всего определить те задачи, для которых создаются mp3 файлы, и уже исходя из этого решить, какое соотношение между качеством звука и размером файла вас устроит. Следует также учитывать, что понятие качества звука у разных людей может сильно отличаться.

С точки зрения здравого смысла, не стоит беспокоить себя вопросами: "Какого же битрейта достаточно, чтобы никто не услышал разницу с CD-DA?" Ведь всё дело в том, что психоакустическая модель алгоритмов mp3 разрабатывалась под среднестатистического человека с его среднестатистическими ушами. Поэтому оценочные суждения по затронутому вопросу могут быть диаметрально противоположными. Для кого-то качество mp3@128 kbps, сделанного Xing"ом, ничуть не хуже Audio CD даже на отличной аппаратуре. Другой запросто отличает mp3@320 kbps от музыкального CD в любых слепых тестах. Отсюда просто нужно сделать правильные выводы. В первом случае человеку не нужно тратить много денег на качественную аудиотехнику, а во втором — можно только порадоваться за ее (его) тонкий слух. Таким образом, исходя из собственных потребностей Вам придется один раз поэкспериментировать, чтобы выяснить, каких параметров в дальнейшем стоит придерживаться.

Хранение wav-файлов позволит в случае изобретения некоего принципиально нового, усовершенствованного алгоритма (условно назовем его mp2000) перегнать в более качественный формат точные копии оригиналов, в то время как самих оригиналов может уже и не быть под рукой… Если помните, аналогичная ситуация возникла с началом победного шествия формата видеосжатия MPEG4.

Какой формат сжатия с потерями лучше использовать: mp3, LQT, WMA, MP+, ogg vorbis …

Следует отметить, что пока ни одна из перечисленных в заголовке альтернатив формату mp3 одновременно и по качеству, и совместимости к нему не приблизилась. Существуют форматы, которые уже сегодня обеспечивают качество сравнимое или даже лучшее, чем у mp3. Например LQT AAC, который часто называют mp4. Однако битрейт у него ограничен до 192 кб/с (за что его не любят ценители mp3 @ 256/320 kbps), и запросы к аппаратуре куда как серьезнее (последнее, правда, в век бурного развития вычислительной техники является проблемой временной). Тем не менее, думаю, вы согласитесь, что по совместимости с mp3 пока никому не сравниться.

Еще один реальный конкурент — ogg vorbis. Формат сейчас находится в стадии бета-тестирования, но, говорят, у него очень неплохие показатели и, следовательно, большой потенциал. В Сети уже обсуждают "плюсы" и "минусы" использования ogg и mp3, и сравнение часто оказывается не в пользу последнего.

По всей видимости, вытеснять mp3 будут долго: вспомните CD-DA, которому пророчили скорую смерть по появлении mp3, MiniDisk и пр. Многие замечания о mp3 справедливы и для других форматов сжатия с потерями.

Воспроизведение mp3

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

Какой проигрыватель mp3 лучше?

Среди программных проигрывателей лучшими традиционно считаются сделанные на коде Fraunhofer: некоторые версии WinAmp "а, WinPlay , AudioActive , Microsoft Media Player … Код от Фраунгофера используется в WinAmp версий 1.5, 1.6, 2.13, 2.20, 2.21, 2.22, 2.666, 2.7 и более поздних; остальные версии оснащены собственным декодером от NullSoft, а копирайт Фраунгофера лишь соблюдение лицензионных требований. Также заслуживает упоминания X-Audio и все, что сделано на этом коде ( , CoolPlay , MusicMatch Jukebox). Еще есть множество проигрывателей, использующих код ISO, самые удачные — MPG123 , UltraPlayer и мой любимый Apollo (качество воспроизведения, конечно, не идеальное, но в целом он очень удобен). Существует даже плагин под WinAmp для декодирования mp3, построенный на основе MPG123. Широко известен проигрыватель NAD , базирующийся на коде ISO. Звук его считается одним из лучших, но беда в том, что он не понимает VBR. Все, что сделано на коде Xing (Xing player , FreeAmp), считается самым худшим вариантом: эти проигрыватели задирают высокие частоты, что сделано, по-видимому, для компенсации завала высоких частот кодерами Xing.

Что касается аппаратных проигрывателей mp3, то о их внутреннем устройстве по части применённых алгоритмов известно совсем мало. Но безусловно то, что алгоритмы в них используются те же, что и в программных проигрывателях. Некоторые содержат аппаратную реализацию алгоритма Fraunhofer в отдельном чипе. Другие проигрыватели имеют даже flash-микросхемы для обновления алгоритмов декодирования mp3. В любом случае нужно смотреть, на основе какого кода сделан проигрыватель. Считается, что Fraunhofer — это всегда хорошо, ISO и X-Audio — зависит от реализации, Xing — однозначно плохо.

Имеет ли смысл выбирать проигрыватель mp3 файлов в зависимости от используемого кодера?

Да. Как было написано выше, проигрыватели на базе Xing задирают высокие частоты, так как при сжатии кодеры на базе Xing эти частоты безбожно режут. В паре они компенсируют друг друга: mp3, сделанные Xing"ом, гораздо лучше звучат в исполнении Xing MPEG Player"а, чем Fraunhofer"a. Авторы LAME (см. следующий раздел) также советуют использовать именно LAME для декодирования сделанных ими mp3.

Безусловно, держать дома набор проигрывателей или даже декодеров (программ, которые могут только преобразовать mp3 в PCM wav файл) неудобно. Поэтому к таким крайним мерам я рекомендую прибегать только в особо ответственных случаях преобразования звука из mp3: запись на аудиокомпакт-диски, микширование, переупаковка другим кодером и т.п.

Как определить, каким кодером был создан mp3 файл?

Поскольку формат mp3 не предусматривает никаких подписей кодера в созданном файле, однозначно определить использовавшийся кодер очень сложно. Есть несколько примет, позволяющих с большей или меньшей степенью вероятности строить догадки: например, кодеры на основе Fraunhofer"а и ISO заполняют тишину разными значениями (акустически тишина не нарушается). Кодеры Xing первыми использовали технологию VBR. В такие файлы они вставляли свою подпись. Позже такую же подпись стал делать LAME (см. следующий раздел), чем, понятное дело, усложнил задачу определения использовавшегося кодера. Сегодня LAME ставит уже свою подпись.

Существуют программы, которые на основе известных признаков пытаются установить, каким кодером пользовались при создании mp3. Одна из таких программ — RenaTager . При ее использовании могут возникнуть проблемы: программа уже не модифицируется, в связи с чем неверно определяет новые версии кодеров. Возможно, такая функция скоро будет включена в альтернативный плагин под WinAmp для воспроизведения mp3 MAD . Я слышал еще о программе mp3GuessEnc , которая имеет интерфейс командной строки, и EncSpot , аналогичной программе с удобным оконным интерфейсом. Но со 100% вероятностью каким кодером был получен файл невозможно. Часто эти программы показывают, что один-два трека с компакт-диска сделаны другим кодером, хотя ведь диск был сжат одним кодером с одинаковыми параметрами.

К слову, стандарт id3v2 предусматривает поле, в котором указано название кодера.

Ламерам посвящается…

Чтобы читатель лучше понял, о чем пойдет речь, позволю себе привести выдержку из англо-русского словаря:

lame — — прил . 1) хромой, изувеченный; 2) неудачный, неправильный; 3) разг. простоватый, отсталый

Что такое лейм?

LAME (читается как "лейм") — это проект по созданию программного кодера mp3, основанный на принципах открытых исходных кодов. Название проекта расшифровывается как "Lame Ain"t a Mpeg Encoder", что означает "лейм — это не MPEG кодер".

Весь его код пишет группа програмистов-энтузиастов. За основу был взят свободно распространяемый в качестве приложения к стандарту MPEG демонстрационный код от ISO. Кодер динамично совершенствуется: новые версии выходят практически каждый день.

На мой взгляд, лейм заслуживает большего признания. Это отличный кодер, который имеет огромное количество настроек, позволяющих кодировать на любой вкус. Лейм поддерживает VBR, кодирование на битрейтах до 320 кб/с включительно, выбор режима кодирования стереосигнала, выбор частот среза фильтров ВЧ и НЧ и многое другое. Качество кодирования на высоких битрейтах всеми признано лучшим.

Чтобы обойти лицензионные ограничения автора стандарта MPEG Layer 3 и владельца патентов Fraunhofer IIS , лейм официально распространяют только в виде патча (исправление или замена нескольких файлов) для оригинального кода mp3 кодера от ISO. В соответствии с этими ограничениями автор или распространитель программ для работы с mp3 должен платить лицензионные отчисления вне зависимости от того, продается ли эта программа или распространяется свободно. Заявляя о нарушении своих прав, Fraunhofer добилась закрытия ряда интересных проектов в области mp3, например проигрывателя NAD , кодера mpegEnc .

Практически весь исходный код ISO подвергся доработке, поэтому для компиляции и сборки работающей версии лейма достаточно его исходных текстов. Учтите, на официальной странице нет готовых программ (чтобы Fraunhofer не могла придраться). О том, где их найти, вы узнаете в одном из следующих подразделов.

Лейм не имеет графической оболочки и управляется из командной строки. Где найти графические оболочки, созданные специально для этой программы, будет сказано ниже. Некоторые программы (например, для копирования музыки с аудиокомпакт-дисков) имеют возможность подключения внешнего mp3 кодера, в частности LAME. Список таких программ приведен на .

Какие версии лейма существуют? Какая версия новее, какая надежнее?

Самая последняя версия имеет типовое название alfa. Никто, включая авторов кодера, не может гарантировать отсутствие в ней ошибок. Поскольку обновление происходит очень часто, для однозначной идентификации версии кодера нужно указывать номер альфа-версии и дату внесения последних изменений в исходный код. Альфа-версии рекомендуется использовать только для тестирования новых возможностей лейма.

После того, как текущая версия пройдет стадию альфа-тестирования и исправления ошибок, появляется бета-версия. Иногда даже в ней встречаются серьезные огрехи (например — 3.67, если память не изменяет), и тогда выпускается новая, улучшенная бета-версия. Как правило, бета-версии работают много лучше и надежнее альфа-версий. Лично я предпочитаю подождать некоторое время (2 — 3 месяца), прежде чем начать использовать данную бета-версию.

В 1999 году координатор проекта лейм принял решение о регулярном выпуске stable (отлаженных) версий, отличающихся от текущих тем, что на протяжении длительного времени не подлежат содержательному обновлению (во избежание свежих ошибок, хотя исправление старых только приветствуется). Нынешняя stable — 3.70 (апрель 2000 года). Меня отговаривали от ее использования, потому что в 3.8х добавили ABR, улучшили качество (постоянная дилемма между надежностью и новыми возможностями).

Замечу, что последняя бета-версия — 3.87 — держится с сентября 2000 года. Это означает, что за все это время сколько-нибудь серьезных оплошностей не было замечено. И, для меня лично, этого достаточно, чтобы сделать свой выбор в пользу 3.87.

Лейм — это ISO код или нет?

Изначально лейм делался как патч именно для кода ISO. При модернизации кодера упор делался на исправление ошибок и совершенствование алгоритма. Но уже в 2000 году в версии, кажется, 3.6, было замечено, что весь код ISO изменен и лейм свободно компилируется без оригинальных исходников ISO. Так что сегодня лейм можно называть ISO-кодером только в историческом смысле, структура же его изменена настолько, что проще считать лейм самостоятельной разработкой. Причем разработкой качественной и перспективной: сейчас лейм уверенно конкурирует как по скорости, так и по качеству с аналогичными программами на основе кода от Fraunhofer.

Что лучше: LAME или Fraunhofer-based кодеры?

Одним нравится попадья, другим — свиной хрящик. Эта дискуссия сродни спорам о том, с какой стороны нужно разбивать яйцо. В августе 1999 года я в результате тестирования установил, что Fraunhofer-based кодеры имеют преимущество перед леймом на битрейтах в 160 кб/с и ниже. Лейм, соответственно, лучше при 192 кб/с и выше. Изменилось ли что-то с тех пор? Повсеместно наблюдаемая тенденция к использованию высоких битрейтов (от 160 и выше) и VBR может обеспечить LAME большое будущее.

ISO-based кодеры, а тем более кодеры на базе Xing использовать сегодня смысла не имеет. Лейм вобрал в себя все лучшее от ISO и ринулся догонять Fraunhofer. Кто-то считает, что уже догнал. А кто-то полагает, что лучше не спешить с выводами и использовать старый добрый Fraunhofer. Вспоминают о том, что во всех тестированиях на низких битрейтах (128 и ниже) Fraunhofer был лидером и уверенно обходил лейм, но забывают, что за прошедшее с тех пор время ситуация могла измениться.

Говорят, что версии лейма появляются чуть ли не каждый день потому, что в старых находят ошибки. Да, все так. У Фраунгофера тоже находят, но не исправляют годами — разве это лучше?

По крайней мере, VBR в лейме лучше, чем в Fraunhofer"е, хотя и тут он далек от идеала.

Где взять откомпилированный под Windows LAME?

На большинстве сайтов можно найти как stable-версии, так и последнюю beta, а иногда и alfa.

Есть ли для LAME оконные оболочки под Windows?

Подготовка материала перед сжатием

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

Постоянная составляющая

В некоторых случаях (практически никогда на CD и фактически всегда при записи с линейного или микрофонного входа) сигнал имеет так называемую постоянную составляющую: колебания уровня сигнала происходят не относительно условного нуля (середины диапазона уровней сигнала), а относительно некоторого другого уровня. Настоятельно рекомендуется эту составляющую убирать перед кодированием, благо это умеет практически любой звуковой редактор (remove DC offset). Некоторые кодеры (например лейм), кодируя такие файлы, сильно искажают звук, так как их психоакустическая модель рассчитана на исходный сигнал без постоянной составляющей.

Надо ли понижать уровень файла?

Да, надо, если пиковый уровень исходного сигнала около 0 дБ, иначе при кодировании может произойти искажение сигнала. Использование сжатия с потерями подразумевает, что исходный сигнал будет восстановлен не точно, а приблизительно. Из-за этого, на участке с пиковой амплитудой вы имеете шанс получить превышение пикового уровня сигнала (0 дБ), что и повлечет за собой искажения. Количество таких искажений зависит от кодера и битрейта (чем выше битрейт, тем меньше искажений). В общем, только заниженный перед сжатием уровень исходного сигнала гарантирует (в какой-то мере) защиту от искажений.

На сколько понижать? Вопрос спорный. Нужно учитывать то, что при понижении уровня и передискретизации также будут возникать искажения исходного сигнала. Естественно, что искажения будут меньше при понижении уровня ровно в 2 раза, но это достаточно большое понижение громкости. Можно попробовать выбрать что-то кратное этому "вдвое". Скажем, снизить уровень на 25%. А кто-то, может быть, предпочтет целые числа по децибелам, скажем — 3,00 дБ.

Поскольку наличие искажений от превышения пикового уровня сигнала зависит от битрейта и кодера, приведу здесь наблюдения одного из моих знакомых: "при 320 + лейм нормально — 98%, а при 128 — 85-88% от максимального уровня (100% = 0dB)". Сам я с файлами, уровень сигнала которых приближался к 0 дБ, не экспериментировал.

Надо ли использовать нормализацию?

Как правило, нет. Существует принцип невмешательства в работу исполнителя и звукорежиссера. Если что-то звучит тише, значит, так задумано. Это все равно, что читать книгу с главной героиней-брюнеткой, но представлять ее себе блондинкой, потому что вам так больше нравится. Это будет уже не авторский замысел, а ваша вольная обработка.

Тем более неразумно выглядит нормализация под очень высокий уровень (часто 98% или даже 100%) — см. предыдущий подраздел.

Таким образом, нормализация при работе с материалом, полученным с аудио компакт-дисков, практически не нужна, а при работе с другими записями — только в случае очень уж низкого уровня сигнала и только для альбома целиком.

Замечания по поводу увеличения уровня в целое число раз справедливы и в данном случае, так как нормализация — это передискретизация с новым уровнем сигнала.

Тонкости процесса сжатия

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

Надо ли (в лейме) выключать психоакустику?

Думаю, нет. Лейм очень быстро развивается. В августе 1999 года я тестировал версию 3.24, нынешняя версия — 3.87. В той, старой, версии я действительно слышал разницу в звучании между файлами, сделанными со включенной психоакустикой и с выключенной. Последний вариант мне нравился больше. Но, с точки зрения теории кодирования mp3, это неверно. Психоакустика составляет неотъемлемую и достаточно важную часть алгоритма сжатия. Так что плохо реализованные алгоритмы психоакустики были ошибкой старых версий лейма. И ее, кстати, исправили. Попробуйте сравнить сами.

Есть, правда, одно "но".

Тонкая настройка психоакустики при сжатии

Как я уже говорил выше, психоакустика рассчитана на среднего человека и соответствует настройкам "по умолчанию" для проигрывателя. Из-за этого, подняв высокие частоты в эквалайзере, мы можем услышать искажение идеального, на первый взгляд, звучания мп3 файла. Вот что говорят по этому поводу на MP3 Forum "е:

Народ! Я, кажется, раз 20 писал про одно простое соображение. Повторюсь еще раз.

Иногда некоторые моменты психоакустики отключать надо. Вот, например, в лейме есть опция понижения ATH (Absolute threshold of hearing), т.е. абсолютный порог слышимости. Зачем кодировать звуки, которые мы не слышим, скажете вы? А вот зачем. Если человек будет слушать эту музыку через эквалайзер, то данные параметры (параметры психоакустической модели с стандартным ATH — АГ) можно считать неприменимыми. Т.е. стоит чуток поднять высоких частот, все огрехи mp3 как на ладони.

Ну почему об этом до сих пор никто не написал, а?

Только вот понижение ATH слишком уж "больно" отражается на битрейте в виде его сильного увеличения.

Какой режим кодирования стереосигнала лучше: stereo, joint stereo или dual channel?

Выбор режима кодирования стерео зависит от конкретной ситуации. С одной стороны, при использовании joint stereo на кодирование среднего канала выпадает больше половины битрейта при почти одинаковых правом и левом каналах, с другой стороны, кодер может оставить слишком мало места для кодирования разницы каналов и смазать стереоэффекты. В таком случае, казалось бы, предпочтительнее режим stereo, когда кодер кодирует каналы раздельно, но пропорция, в которой он делит битрейт для правого и левого каналов, может изменяться. А если на каком-то ответственном отрезке кодер сделает поток в одном из каналов чересчур маленьким? Словом, у каждого метода есть преимущества и недостатки — оптимальный выбор будет зависеть от типа записи.

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

Лейм автоматически выбирает для каждого фрейма stereo или joint stereo (при желании вы можете запретить ему делать это: "-m s" — только stereo, "-m f" — только joint stereo). Я использую режим с автоматическим выбором "-m j".

Существует мнение, что кодеру нужно запрещать перераспределение потока между каналами стереозаписи, для того чтобы на каком-то ответственном отрезке кодер не сделал поток в одном из каналов чересчур маленьким. Режим, когда каждому каналу отдается ровно половина потока битов, называют dual channel. В лейме этот режим активируется ключом "-m d". Рекомендую использовать такой режим только при заведомо большом размере потока — битрейт в 256 кб/с и больше.

Использовать ли переменный битрейт (VBR)?

Проблема в том, что под VBR (Variable BitRate — переменный битрейт) нужна своя психоакустическая модель, которая и будет управлять изменением битрейта. Раньше кодеры использовали CBR (Constant BitRate — постоянный битрейт) и принцип "обеспечить максимальное качество, упаковывая данные в поток заранее заданной ширины". Переменный битрейт требует совершенно другого подхода: "обеспечить заданный уровень качества, используя поток минимальной ширины", поэтому алгоритмы сжатия для VBR нужно создавать практически с нуля. Более или менее приемлемым прообразом такого алгоритма обладает только лейм, как самый быстроразвивающийся кодер. Ни Ксинг, ни Фраунгофер качественной разработки VBR пока не представили. Их алгоритмы варьируют средний битрейт в пределах 10-15% от основного, что, по-видимому, является результатом попытки адаптировать алгоритмы CBR для использования с VBR (а ведь в старых алгоритмах вообще не было возможности изменить битрейт).

Проблема также состоит в том, что до сих пор не существует сколько-нибудь точной математической модели человеческого слуха. Поэтому разработка психоакустических алгоритмов ведется опытным путем — методом проб и ошибок. Сложность построения алгоритма, получающего на входе некий "уровень качества", заключается в том, что не до конца ясно, как этот уровень качества связан с прочими параметрами алгоритма, в частности с битрейтом. Хотя человеку, далекому от этой технологии, куда как проще оперировать с параметром, непосредственно задающим уровень качества сжатия, чем с некими внутренними параметрами алгоритма.

На этом фоне вполне логичным выглядит появление компромиссного варианта — ABR (Average BitRate — средний битрейт), реализованного в LAME. По сути, это VBR с элементами доработанного старого алгоритма кодирования CBR. Когда качество падает ниже некоторого порога, битрейт увеличивается, если кодируемый сигнал достаточно прост, битрейт уменьшается. В итоге мы получаем обычный файл с VBR потоком, где параметром является не некий абстрактный уровень качества, а заданный битрейт.

Следует отметить, что некоторые проигрыватели не умеют корректно воспроизводить VBR. Например, очень качественный проигрыватель NAD сильнейшим образом искажает звук таких файлов. Объясняется это тем, что, когда этот проигрыватель был создан, ни один из кодеров не использовал VBR. С аналогичной проблемой можно столкнуться при использовании некоторых аппаратных проигрывателей mp3.

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

Следует подробнее остановиться на следующей ситуации: при переключении битрейта между фреймами один фрагмент сложного участка может быть закодирован с большим битрейтом, другой — с меньшим, полученный в результате скачок — слышимый дефект звучания. Случай во многом напоминает рассмотренный выше с режимом стерео — вот поэтому-то любители dual channel всегда используют CBR.

Список ссылок

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

Ставший уже классикой и использующийся как ФАК в ФИДО эхоконференции RU.MPEG "Обзор MP3" (в двух частях: часть 1 , часть 2). В обзоре много ссылок на различные, связанные с mp3 сайты. Очень советую новичкам.

Техническая документация по стандарту сжатия mp3 — www.mp3-tech.org .

Официальный сайт проекта LAME — .

Намечается ли новое тестирование?

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

Как ты сам кодируешь музыку?

При помощи лейма, версии 3.87. На 128 CBR психоакустика включена, для того чтобы показать друзьям-товарищам. То есть это режим "сохранения приемлемого уровня качества при достижении максимального сжатия". При VBR -V2 психоакустика включена для временного хранения качественных записей в mp3. Весь материал, достойный долговременного хранения в моей фонотеке, записывается в формате wav.

Как со мной связаться?

Мой e-mail: [email protected] . Если есть вопросы, не стесняйтесь, задавайте. Я отвечаю на все письма. Если вы участвуете в обсуждении этой статьи в каком-то форуме, сообщите, пожалуйста, мне об этом.

Вместо заключения

Я признателен всем, кто присылал критические замечания, предложения, пожелания. Особо хочу выделить постоянных участников MP3 Forum и автора этого проекта Михаила Федотова..com), при участии которых был подготовлен данный материал.

Спасибо за внимание. Надеюсь, хотя бы часть из приведенной выше информации окажется полезной.

Вконтакте

Одноклассники