Психоакустика изучает, как человеческий слух воспринимает звук, и именно она превратила сжатие аудио из инженерной задачи в отрасль прикладной науки о восприятии. Формат MP3, появившийся в начале девяностых годов как результат работы группы MPEG, не стремится записать звуковую волну точно: он стремится записать её так, чтобы человек не услышал разницы. Разница между этими двумя целями огромна. Исследования слуха показали, что значительная часть информации в музыкальном сигнале просто не доходит до сознания слушателя: одни звуки заглушают другие, тихие частоты исчезают в тени громких, а короткие всплески энергии временно ослепляют слуховую систему. Кодек-восприятия, а именно так называют MP3 в профессиональной литературе, построен на систематическом использовании этих слепых пятен. Он анализирует каждый фрагмент музыки, строит модель того, что реально будет услышано, и тратит доступные биты только на слышимое. Всё остальное смело отбрасывается. Понимание того, как это работает, полезно и инженеру, и музыканту, и любому, кто спорит о битрейтах на слух.
Маскирование частот и критические полосы слуха
Базовый феномен, на котором держится вся архитектура MP3, называется частотным маскированием. Если в ухо подать громкий чистый тон, например на частоте 1000 Гц, а рядом с ним тихий тон на 1100 Гц, то тихий тон слушатель попросту не расслышит. Громкий звук, который называют маскером, поднимает порог слышимости в окрестности своей частоты, и всё, что оказывается ниже этого приподнятого порога, исчезает из восприятия. Кривая маскирования не симметрична: в сторону высоких частот она спадает медленнее, поэтому басовый маскер накрывает широкий диапазон выше себя, а высокочастотный тон маскирует лишь узкую полоску под собой. Это асимметрия механики внутреннего уха, где возбуждение базиллярной мембраны распространяется от базовой её части к верхушечной.
Частотное разрешение слуха при этом не равномерно. Ухо работает как набор перекрывающихся полос пропускания, ширина которых растёт с частотой: внизу диапазона полоса составляет около 100 Гц, а выше 10 кГц уже несколько килогерц. Эти полосы получили название критических, а шкала, построенная на их последовательном перечислении, известна как шкала Барка. Весь слышимый диапазон от 20 Гц до 20 кГц укладывается примерно в 24 критические полосы. Внутри одной полосы энергия звука суммируется, и маскирование действует особенно жёстко: два сигнала в одной полосе конкурируют напрямую, а сигналы в далёких полосах почти не мешают друг другу.
Для инженера-кодировщика это открытие стоит мегабайт. Если в критической полосе уже есть громкая составляющая, то тихие гармоники в той же полосе можно не передавать вовсе или передать с очень грубым квантованием: шум ошибки всё равно окажется ниже порога маскирования и останется неслышимым. Психоакустическая модель кодека вычисляет для каждого кадра музыки карту маскеров и порогов, и именно эта карта решает судьбу каждого бита.
Временное маскирование и исчезновение звука во времени
Слух маскирует не только по частоте, но и по времени, и этот эффект ещё удивительнее. Громкий резкий звук, например удар тарелки или щелчок кастаньет, способен заглушить тихие звуки, которые играли за несколько миллисекунд до него. Это называется пре-маскированием или обратным маскированием, и его типичный запас составляет от 5 до 20 миллисекунд в зависимости от условий эксперимента. Объяснение кроется в скорости нейронной обработки: громкий сигнал обрабатывается слуховой системой быстрее тихого и успевает перекрыть его след в памяти восприятия.
Пост-маскирование действует в другую сторону и длится дольше. После мощного всплеска слуховая система нуждается в восстановлении, и порог слышимости остаётся приподнятым на интервале порядка 100 миллисекунд, плавно спадая к норме. В течение этого времени тихие послезвучия, реверберационные хвосты и фоновые детали фактически недоступны сознанию.
MP3 использует оба эффекта прагматично. Возле резкой атаки кодек снижает точность кодирования соседних участков, потому что шум квантования там всё равно будет накрыт. Правда, тут таится и ловушка, о которой речь пойдёт ниже: если кодек создаёт шум до момента атаки, а маскер ещё не звучит, пре-маскирование может не справиться, и слушатель услышит характерный артефакт. Временное маскирование тем самым задаёт не только экономию, но и главные технические сложности формата.
Порог абсолютной слышимости и кривая минимальной чувствительности
Прежде чем считать маски, психомодель опирается на более фундаментальную величину: абсолютный порог слышимости, обозначаемый ATH. Это минимальный уровень звукового давления, который средний слушатель способен уловить в идеальной тишине на каждой частоте. Кривая ATH имеет характерную форму чаши: максимальная чувствительность слуха приходится на область около 2-5 кГц, где слышны звуки почти на нуле децибел, а по краям диапазона порог резко растёт. Ниже 100 Гц и выше 15 кГц для восприятия требуется заметно больше энергии, а на 20 Гц и 20 кГц порог подступает к десяткам децибел даже у молодых слушателей с неповреждённым слухом.
Любой спектральный компонент, лежащий ниже кривой ATH, не нужно кодировать вообще: его никто не услышит при любых условиях прослушивания. Это первый и самый грубый фильтр экономии. Затем модель берёт реальные маскеры текущего кадра, приподнимает кривую ATH в их окрестностях по законам частотного и временного маскирования и получает итоговый глобальный порог маскирования. Всё, что ниже этой линии, теоретически можно удалить без потери качества. Так формируется главная итоговая величина психоакустического расчёта: отношение сигнал-маска, или SMR, показывающее, насколько сильный сигнал превышает порог маскирования в каждой полосе и, значит, сколько бит точности ему действительно нужно.
Внутреннее устройство кодера и распределение битов по полосам
Рассмотрим практический конвейер кодера MP3. Входной PCM-поток сначала проходит через гибридный банк фильтров: полифазный фильтр делит спектр на 32 равные подполосы, а затем в каждой подполосе выполняется модифицированное дискретное косинусное преобразование, MDCT. Преобразование имеет два режима длины: длинное окно на 576 отсчётов даёт высокое частотное разрешение для стационарной музыки, а короткое окно на 192 отсчёта даёт высокое временное разрешение для атак и переходных процессов. Один гранул кадра содержит 1152 отсчёта, что при частоте 44100 Гц соответствует примерно 26 миллисекундам звучания.
Параллельно с фильтрацией работает психоакустическая модель, в спецификации MPEG-1 описана как модель 1 или 2. Она вычисляет БПФ по более длинному окну, находит тональные и шумоподобные маскеры, распределяет их энергию по критическим полосам, применяет функции расширения маскирования и учитывает ATH. Результат записывается как массив SMR по полосам. Дальше вступает контур распределения битов: итеративный алгоритм квантует спектральные коэффициенты каждой подполосы так, чтобы шум квантования оставался ниже порога маскирования. Полосы с большим SMR получают больше бит, полосы вблизи порога получают мало бит или не получают ничего. Побочная информация и коэффициенты сжимаются кодами Хаффмана, а в описанном потоке масштабирующие множители аккуратно прячут шум под кривой маскировки.
При битрейте 128 кбит/с на стерео-канал приходится в среднем около 64 кбит/с, и кодек работает на пределе модели: многие высокочастотные полосы обнуляются, бюджет битов распределяется жёстко, и на сложных записях шум местами приподнимается над порогом. При 320 кбит/с запас намного комфортнее, а lossless-кодеки вроде FLAC не трогают психоакустику вовсе, экономя место только за счёт статистической избыточности и сохраняя бит в бит исходную волну.
Пре-эхо и переключение окон на сложной музыке
Самый известный артефакт MP3 называется пре-эхо, и рождается он из уже упомянутого временнго конфликта. Когда кодек анализирует длинное окно на 576 отсчётов и внутри него внезапно появляется резкая атака, квантование считает единой усреднённой величиной по всему окну. Шум ошибки оказывается размазан по всему временнму интервалу, включая тихую область до атаки. Поскольку пре-маскирование удерживает слух закрытым лишь считанные миллисекунды до всплеска, шум, вылезший раньше этого срока, слышен как сухой размытый шелест перед ударом. На записях с кастаньетами, колокольчиками-треугольниками и резкими смычковыми щелчками эффект отчётлив даже у нетренированного слушателя.
Борьба с пре-эхо строится на переключении окон. Когда психомодель обнаруживает быстрый рост энергии, измеряемый величиной воспринимаемой энтропии, кодер переключает подполосу в режим коротких окон на 192 отсчёта. Временное разрешение возрастает втрое, шум локализуется вплотную к атаке и надёжно прячется под её маской, а после всплеска контур возвращается к длинным окнам ради частотной точности. Дорогой запас здесь тот, что переключение удорожает побочную информацию и требует переходных стартовых и стоповых окон, поэтому срабатывать оно должно разумно. Современные энкодеры LAME дополнительно улучшают модуляцию шума и тонко настраивают пороги срабатывания.
Ещё одна важная мера касается стерео. Режим joint stereo объединяет каналы там, где это безопасно, но слух вскрывает подвох через бинауральное размаскирование: двумя ушами мозг вычленяет тихий сигнал из шума заметно лучше, чем одним, поэтому маска, надёжная в моно, в стерео иногда пробивается. По этой причине сведение каналов в моно экономит биты, но ужесточает требования к чистоте кодирования, и опытные инженеры держат под контролем пространственную сцену.
Гигиена восприятия и мифы о грубой обрезке частот
Распространённое представление, будто MP3 просто срезает всё выше 15 или 16 кГц, грубо искажает действительность. Кодек восприятия не пропускает спектр через топорный фильтр: он ежекадрово решает, какие полосы слышны, и направляет биты именно туда. Если в верхнем диапазоне есть энергия, превышающая порог маскирования, она будет закодирована; если её нет или она надёжно укрыта громкими средними частотами, биты уходят вниз, где ошибка была бы заметнее. Верхняя граница полосы пропускания у конкретного файла выступает следствием бюджета битов и полифазного фильтра, а не принципиальным отсечением: на высоких битрейтах LAME пропускает контент выше 19 кГц.
Гигиенический вывод из всей этой науки звучит спокойно. Слух человека не измерительный прибор, а адаптивная система с жёсткими полосовыми фильтрами, инерцией во времени и чашеобразной кривой чувствительности, и кодер MP3 лишь аккуратно эксплуатирует эту конструкцию. Он не улучшает и не ухудшает музыку в физическом смысле: он перераспределяет ошибку туда, где восприятие её не достаёт. Качество результата зависит не от магии битрейта, а от точности психомодели, от того, насколько честно она описывает реальные кривые маскирования живого слушателя. Поэтому разные энкодеры при одном битрейте звучат по-разному, а слепые тесты уверенно отличают удачную модель от поспешной. Психоакустика здесь не декорация, а рабочий инструмент, без которого цифровой звук остался бы делом объёмных носителей.
Отдельно стоит исторический урок о восприятии слушателей. На заре массового распространения MP3 разгорелись споры о «слышимости» сжатия, и слепые тесты разбирали половину мифов индустрии. Выяснилось, что большинство слушателей на привычном контенте не отличает высокобитрейтный файл от исходника, а те, кто отличает, замечают ошибки именно в областях, где маскировка обнажена: резкие атаки тарелок, шипящие согласные вокала и шуршащие текстуры, живущие именно на свойствах временного маскирования. Это знание вошло в более поздние кодеки: AAC и его наследники используют более гибкие окна, точнее строят шаблон маскирования и бережнее распределяют биты между каналами, что позволяет уменьшить битрейт ещё на треть при сопоставимом опыте. Эволюция кодеков - это на деле эволюция психоакустической модели, а не только количества вычислительных трюков.
Полезен и технический парадокс напоследок: чем искуснее искажение спрятано от слушателя, тем точнее кодирование работает против математики, тогда как слушатель думает, что математика работает на него. Именно эта инверсия ролей и делает психоакустическое сжатие одним из самых изящных предприятий в истории обработки сигналов: инженер не борется с ограничениями человека, а превращает их в ресурс.