Мартышка и наушники 08.12.2003 Филипп (Finar) Казаков
Любители мультимедиа-технологий наверняка знают, что на сегодняшний день существует немало различных форматов сжатия звука. RealAudio предназначен для потокового транслирования звука через Интернет, MAC1 неплохо сжимает без потери качества, AC3 отлично подходит для DVD-video, WMA известен благодаря своему владельцу и высокому качеству на низких битрейтах, Vorbis OGG привлекает бесплатностью и, позволю предположить, молодой открытостью (вспомним DivX). Даже внутри MP3 существует разделение: алгоритмы Xing сжимают очень быстро, но плохо, официальный Fraunhoffer жмет хорошо на низких битрейтах, открытый для всех Lame — лидер на высоких. При этом популярностью пользуются все три алгоритма. Все2 распространенные потоковые форматы сжатия (MP3, AC3, WMA, OGG) основаны на схожем принципе работы, состоящем из трех основных этапов: - Быстрое преобразование Фурье (FFT) исходного сигнала (фрейма, так как форматы потоковые). Кратко FFT — это процесс, представляющий исходный сигнал в виде суммы синусоид: F(t)=A1sin(l1t) + … + Ansin(lnt) + … Теперь, вместо того чтобы хранить информацию о величине амплитуды волны в каждом сэмпле, остается запомнить только значения амплитуд (Ai) и длин волн (li). Обратное преобразование Фурье для реальных звуков без потери качества невозможно. - Психоакустическая обработка, призванная вычистить из звукового потока информацию, не воспринимаемую человеческим ухом. Алгоритм FFT известен сравнительно давно, и на его модификации далеко не уедешь, поэтому разработчики совершенствуют методики сжатия за счет оптимизации математического и психоакустических алгоритмов кодирования. Если математический алгоритм в каждом формате свой, то основные принципы действия психоакустического алгоритма сжатия схожи и заимствуют общие идеи у небезызвестного формата MPEG-1 Layer II, разработанного в 1992 году Moving Picture Experts Group4. Давайте поговорим о свойствах нашего слуха, благодаря которым мы можем слушать сжатую в несколько раз аудиоинформацию практически без искажений. Диапазон слышимости Человеческое ухо неидеально. Во младенчестве человек воспринимает звук в диапазоне от 15 Гц до 22 кГц; с возрастом рамки сужаются, и средний взрослый человек слышит звуки от 20 Гц до 18 кГц. Такая же ситуация и с восприятием амплитуды волны, то есть с громкостью. Динамический диапазон человеческого уха составляет 96 дБ. Проще и линейно говоря, самый громкий звук (выше которого находится болевой порог) более чем в 30 тысяч раз интенсивнее самого тихого, который ухо может различить. На этих свойствах слухового аппарата основана работа первого фильтра кодировщика. Он просто отрезает сигналы, выходящие за пределы указанных диапазонов частот и амплитуд. Однако уже эта операция уменьшает «живость» звука. Многие сверхнизкие и сверхвысокие звуки человек не может услышать, осознать, при этом все же ощущая их. Громкие сверхнизкие тона можно «услышать телом» по резонансу в костях и других частях тела. Тихие же вызывают бессознательное чувство беспокойства, напряженности. Безопасный инфразвук (10–15 кГц) применяется в кинотеатрах для пущего нагнетания атмосферы в фильмах ужасов. Следующее важное свойство человеческого слуха — неравномерность распределения границы слышимости звука по частотам. Наилучшим образом мы слышим частоты в районе 2–4 кГц (не случайно речевой диапазон находится примерно в этой же области, в природе все взаимосвязано), к низким и высоким частотам чувствительность уха снижается. Таким образом, чем дальше частота слышимого звука от 2-4 кГц, тем выше граница слышимого звука, тем больше информации можно вырезать без заметных потерь в качестве. Чувствительность уха К изменению каждого их двух параметров волны — частоты и амплитуды — у уха есть некоторый нижний порог чувствительности. Если изменение меньше этого порога, алгоритм его игнорирует. Например, для сигнала с частотой 1 кГц порог чувствительности составляет примерно 30 Гц. Если в кодируемом сигнале частота изменяется с 1000 Гц на 1020 Гц, сохранять это изменение не имеет смысла, так как человек все равно его не заметит. Таким образом, достаточно просто увеличить временные рамки звучания тона 1 кГц, а не кодировать два разных сигнала. Частотная маскировка Любой слышимый тон изменяет восприятие остальной звуковой картины. При воспроизведении какого бы то ни было тона граница слышимости соседних с ним по частотам звуков изменяется. В этом случае воспроизводимый тон называется маскирующим, а граница слышимости окружающих его тонов поднимается тем выше, чем ближе их частота к частоте маскирующего сигнала. То есть, слушая низкий звук, значительно проще услышать высокий звук, нежели низкий другой частоты. Под воздействием тона частотой 1 кГц и интенсивностью 60 дБ измененная граница слышимости будет выглядеть примерно как на рис. 2. Обратите внимание, что зачастую в музыке одновременно присутствуют самые разнотоновые компоненты. Бочка, например, и тарелки. Таким образом, маскирующих тонов может быть несколько. При использовании сразу нескольких маскирующих тонов (частотой 0,25, 1, 4, 8 кГц, см. рис. 3) граница слышимости остальных сигналов сильно поднимается. На рис. 3 видно, что наилучшим образом маскируются высокие частоты. Уже при воспроизведении 8-килогерцового маскирующего тона граница слышимости на 14 килогерцах поднимается. Алгоритмы компрессии этим активно пользуются — при сжатии качество высоких частот страдает обычно в первую очередь, что особенно хорошо проявляется на низких битрейтах. Создается ощущение, что в реальной музыке можно замаскировать почти все. Это не совсем так. Музыка тем, в частности, отличается от шума, что в ней существуют отдельные партии. И изначально они играются с таким расчетом, чтобы слушатель воспринимал их все, чтобы их частоты не слишком пересекались. Интересное наблюдение: при кодировании с переменным битрейтом на перенасыщенных звуком моментах (например, когда очень грозно и громко играют металлисты) битрейт обычно ниже, чем при кодировании чистого звучания флейты. Временная маскировка Это явление похоже на частотную маскировку, но — как понятно из названия — здесь происходит маскировка во времени. Эффект временной маскировки почувствовать очень просто: близко взорвавшаяся хлопушка приводит к временному «закладыванию» одного из ушей неудачливого пиротехника (закладывание обоих ушей маловероятно, но тоже возможно). Хотя в приведенном примере происходит эффект совершенно другого рода, он отлично передает суть маскировки. В обычных условиях эффект от временной маскировки длится значительно меньше. После того как воспроизведение маскирующего тона резко прекращается, в течение короткого времени (около сотни миллисекунд, в зависимости от частоты и амплитуды сигнала) граница слышимости изменяется, причем нелинейно. На рис. 4 представлен график, иллюстрирующий временную маскировку. Кроме того, существует такое явление, как предмаскировка — увеличение порога слышимости до появления маскирующего тона. Но так как эффект предмаскировки длится всего около 10 мс и сильно различается у разных людей, его использование на текущем этапе эволюции форматов нецелесообразно. 1 (назад)Не путать с Мак’овским AIFF. — Прим. ред.
|