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