Технология MP3
- Минимальный порог слышимости.
Минимальный порог слышимости человеческого уха нелинеен и представлен, в соответствии с законом Флетчера и Мансена, кривой с максимумом чувствительности в диапазоне от 2 до 5 кГц (см
. рис.2), следовательно нет необходимости кодировать звуки, лежащие под этой кривой, поскольку они все равно не будут услышаны.
Рис.2. Порог чувствительности человеческого уха.
- Эффект маскирования
Для адекватного восприятия звуковой картины человеческим ухом не требуется кодировать все звуки, т.к. слух человека устроен таким образом, что более тихие звуки (например шумы в паузах) маскируются более громкими звуками.
Приведенный на рис.3 график иллюстрирует восприятие звука человеком при маскировании звукового спектра тоном 1 кГц на громкости 60 дБ.
Рис.3. Восприятие человеком звука при маскировании звукового спектра тоном 1 кГц на громкости 60 дБ.
3. Битовый резерв
Часто определенные фрагменты музыкального произведения не могут быть закодированны в рамках данного битового диапазона без потерь качества. В таком случае MP3 использует небольшой запас битов, как буфер, кодируя менее сложные фрагменты в меньший битовый диапазон.
4. Прием Joint-stereo
Joint-stereo - прием, основанный на особенности человеческого слуха, которая заключается в том, что ниже определенной частоты человек становится не способен определить пространственную картину звука. Таким образом, низкие частоты записываются как монофонический сигнал с добавлением некоторых данных, позволяющих восстановить минимальную информацию о пространственной звуковой картине.
5. Кодирование Хаффмана
MP3 использует классический алгоритм Хаффмана на последней стадии сжатия.Этот алгоритм создает в рамках целого числа битов коды переменной длины. Символы с большей вероятностью появления имеют коды меньшей длины. Коды Хаффмана обладают уникальными префиксами, так что они могут быть корректно декодированны, несмотря на их переменную длину. Декодирование осуществляется достаточно быстро (с использованием таблиц соответствия). Этот вид кодирования обычно позволяет сжать аудиоданные еще на 20%.
Кодирование Хаффмана является превосходным дополнением к перцептивным методам сжатия. Перцептивное кодирование особенно эффективно при кодировании сложного полифонического звучания в силу того, что многие звуки маскируются или их влияние на общую картину снижается. При кодировании же чистых звуков оказывается эффективным алгоритм Хаффмана из-за того, что оцифрованный звук содержит много избыточных байтов, которые при кодировании заменяются более короткими кодами.