Статья Дмитрий Шмунк (dmitrijs@qdesign.com)
Простые методы сжатия
Традиционные методы сжатия без потерь (Huffman, LZW, итд.) обычно плохо применимы для сжатия аудио информации (по тем же причинам что и при сжатии визуальной информации).
Ниже перечислены некоторые методы сжатия с потерями:
Алгоритм кодека использующего психоакустику обычно состоит из следующих шагов:
Устройство уха
В общем случае ухо - нелинейная система и не может быть точно описано с помощью только линейных элементов (таких как фильтры и линии задержки). Как побочный результат нелинейности может проявляться, например, следующий эффект: при подаче двух тонов с частотой 1000 и 1200Hz может также быть слышен третий тон с частотой 800Hz. Однако в интересующем нас диапазоне амплитуд нелинейность достаточно слаба и ей обычно пренебрегают.
Строение
Ухо состоит из трех частей: ушной раковины (также называемой внешним ухом), среднего уха и внутреннего уха - улитки. Проходя через различные части уха звук претерпевает изменения.
Критические полосы (Critical Bands)
Вопрос: Взаимодействуют ли звуковые рецепторы друг с другом ?
Ухо в данном случае невозможно описать с помощью линейной системы. Теоретически обоснованных подходов для описания восприятия в данном случае автору не известно. Можно описать лишь несколько хорошо известных эффектов проявляющихся при кодировании данных сигналов:
Простые методы сжатия
Традиционные методы сжатия без потерь (Huffman, LZW, итд.) обычно плохо применимы для сжатия аудио информации (по тем же причинам что и при сжатии визуальной информации).
Ниже перечислены некоторые методы сжатия с потерями:
- Сжатие тишины(пауз) - определяет периоды "тишины", работает аналогично run-length кодированию.
- ADPCM - Adaptive Differential Pulse Code Modulation (в
русскоязычной литературе применяется термин адаптивная
дельта-импульсно-кодовая модуляция (АДИКМ).
Например, стандарт CCITT G.721 -- от 16 до 32 Kbits/sec:
Кодирование разницы между двумя или более последовательными отсчетами; затем разница квантуется --> при квантовании часть информации теряется. Квантование адаптивно (меняет параметры в зависимости от сигнала), в результате меньшее количество бит необходимо для достижения лучшего SNR. Необходимо предсказывать как звук изменится --> сложно - Apple разработал собстенную систему названную ACE/MACE. Сжатие с потерями, пытается предсказать, каково будет значение следующего отсчета. Сжатие порядка 2:1.
- Linear Predictive Coding (LPC) - пытается описать сигнал с помощью "речевой модели" и передает параметры модели --> звучит как компьютерно синтезированная речь, 2.4 kbits/sec.
- Code Excited Linear Predictor (CELP) - тоже самое что и LPC, однако дополнительно передает ошибку квантования (используя предопределенный набор "кодовых слов") --> телефонное качество при 4.8 kbits/sec.
Методы сжатия, основанные на психоакустике
Представители: MPEG layers 2, MPEG layer 3 (MP3), AAC (Advanced audio coding), TwinVQ, Ogg Vorbis, и др.Алгоритм кодека использующего психоакустику обычно состоит из следующих шагов:
- Обсчет психоакустической модели (маскирования).
- Разделение сигнала на частотные подполосы (FFT, DCT/MDCT, FilterBanks, и т.д.).
- Квантование сигнала в подполосах в соответствии с результатами психоакустической модели. Возможно использование одного квантового уровня. сразу для нескольких входных значений (векторное квантование - Vector Quantization) - TwinVQ.
Некоторые факты о восприятии звука
- Частотный спектр воспринимаемый человеком (примерно) от 20 Hz до 20 kHz, наибольшая чувствительность в диапазоне от 2 до 4 KHz.
- Динамический диапазон (от самых тихих воспринимаемых звуков до самых громких) около 96 dB (более чем 1 к 30000 по линейной шкале).
- Общеизвестно, что человек в состоянии различить изменение частоты на 0.3% на частоте порядка 1kHz.
- Если два сигнала различаются менее чем на 1дб по амплитуде - они трудноразличимы. Разрешение по амплитуде зависит от частоты и наибольшая чувствительность наблюдается в диапазоне от 2 до 4 KHz.
- Пространственное разрешение (способность к локализации источника звука) - до 1 градуса.
- Звуки различной частоты распространяются в воздухе с разной скоростью. В результате высокочастотная часть спектра от источника находящегося на удалении от слушателя несколько запаздывает.
- Человек не в состоянии заметить внезапное исчезновение высоких частот, если оно не превышает порядка 2ms.
- Некоторые исследования показывают, что человек в состоянии ощущать частоты выше 20kHz. С возрастом частотный диапазон сужается.
- Частотный спектр, несущий информацию в человеческой речи: от 500 Hz до 2 kHz
Низкие частоты - басы и гласные
Высокие частоты - согласные - Лучшее сжатие речи достигается с использованием параметрических кодеров (LPC, CELP, и пр.), пытающихся представить речь как набор параметров некоторой речевой модели. Кодеки общего назначения (MPEG и др.), как правило, дают худшее сжатие.
Устройство уха
В общем случае ухо - нелинейная система и не может быть точно описано с помощью только линейных элементов (таких как фильтры и линии задержки). Как побочный результат нелинейности может проявляться, например, следующий эффект: при подаче двух тонов с частотой 1000 и 1200Hz может также быть слышен третий тон с частотой 800Hz. Однако в интересующем нас диапазоне амплитуд нелинейность достаточно слаба и ей обычно пренебрегают.
Строение
Ухо состоит из трех частей: ушной раковины (также называемой внешним ухом), среднего уха и внутреннего уха - улитки. Проходя через различные части уха звук претерпевает изменения.
- Одна из функций внешнего уха (ушной раковины) - улучшение локализации источника звука в пространстве. Благодаря ее несимметричной форме АЧХ сигналов приходящих из разных точек пространства изменяется по разному. Ушная раковина может влиять лишь на сигналы с длинной волны, сопоставимой с размерами уха (>3kHz). Внешний ушной канал резонирует на частоте около 2kHz , что дает повышенную чувствительность в данном диапазоне.
- Среднее ухо выполняет роль гидравлического усилителя. Так как в улитке находится жидкость а снаружи - воздух, то необходимо согласование сопротивления среды. Среднее ухо также защищает от низкочастотных звуков чрезмерной амплитуды.
- Внутреннее ухо - улитка. В развернутом виде будет представлять из себя трубочку, с постепенно уменьшающимся к одному из концов диаметром. Улитка выполняет роль частотного анализатора. Внутри улитки находятся до 4000 нервных окончаний. Различные области улитки входят в резонанс при подаче сигнала определенной частоты.
- Так как нейрон может возбуждаться не чаще чем 500 раз в
секунду, то для получения информации о более высоких частотах слуховой
аппарат человека прибегает к некоторым "ухищрениям":
На частотах до 500 Hz --> колебания непосредственно переходят в нервные импульсы.
Примерно до 1.5кГц проблема решается подключением одновременно до 3 нейронов к одному нервному окончанию. Нейроны в данном случае возбуждаются последовательно, один за другим и, соответственно, помогают улучшить частотное разрешение в 3 раза.
На более высоких частотах регистрируется лишь амплитуда сигнала.
- Таким образом бинауральный слух, играющий большую роль в локализации источника звука, лучше всего развит на частотах меньших 1.5кГц. Выше этой частоты источником информации о местоположении служит лишь разница амплитуд сигнала для левого и правого уха. Это делает возможным применение при кодировании режимов Joint Stereo - запоминается либо информация для суммы правого и левого каналов и их разница, со значительно меньшей точностью (Mid/Side coding), либо вообще запоминается лишь амплитуда сигнала (Intensity coding).
Критические полосы (Critical Bands)
- Человеческая система восприятия звука имеет ограниченное,
зависящее от частоты разрешение. Равномерное, с точки зрения восприятия
человеком измерение частоты может быть выражено в единицах ширины Критических Полос.
Их ширина менее 100 Hz для нижних слышимых частот, и более 4 kHz для наиболее высоких. Весь частотный диапазон может быть разделен на 25 критических полос. - Новый отсчет частоты был назван барк (bark, after Barkhausen):
1 Барк = ширина одной критической полосы
Для частот < 500 Hz, может быть рассчитан по формуле: частота / 100 Барк,
Для частот > 500 Hz: 9 + 4log2(частота / 1000) Барк.
- Эксперимент: Слушатель в тихой комнате. Повышаем громкость
тона частотой 1 kHz до уровня когда он становится слышимым. Изменяя
частоту тона получим:
Вопрос: Взаимодействуют ли звуковые рецепторы друг с другом ?
- Эксперимент: Воспроизводим тон частотой 1 kHz (маскирующий сигнал), с фиксированной громкостью (60 dB). Воспроизводим тестовый (маскируемый) тон с различной громкостью (скажем с частотой 1.1 kHz), и повышаем его уровень до тех пор пока он не становится слышимым.
- Изменяем частоту тестового тона и рисуем границу слышимости:
- Повторяем эксперимент для различных частот маскирующего сигнала:
- Частотное маскирование с частотной шкалой выраженной в Барках:
Если мы слышим громкий звук, который внезапно прекращается, требуется некоторое время чтобы услышать более тихий тон.
Эксперимент: Воспроизводим 1 kHz маскирующий тон на уровне 60 dB, и тестовый тон с частотой 1.1 kHz на уровне 40 dB. Тестовый тон не слышен (он замаскирован).Общий эффект от частотного и временного маскирования:
Отключаем маскирующий тон, затем, после небольшой задержки отключаем тестовый тон.
Уменьшаем время задержки до тех пор пока тестовый тон еще слышен (например 5 ms).
Повторяем используя различную громкость тестового тона и получаем:
Транзиентные сигналы
Представленная выше теория маскирования верна в случае рассмотрения квазистационарных, медленно меняющихся по амплитуде и частотным характеристикам сигналов. В случае же рассмотрения сигналов с резко меняющимися параметрами (транзиентные сигналы) она неприменима.Ухо в данном случае невозможно описать с помощью линейной системы. Теоретически обоснованных подходов для описания восприятия в данном случае автору не известно. Можно описать лишь несколько хорошо известных эффектов проявляющихся при кодировании данных сигналов:
- Пре-эхо (pre-echo, ringing). Возникает перед резкими увеличениями амплитуды сигнала (атаками). При кодировании с недостаточным временным разрешением (и выделением недостаточного количества бит при квантовании) часть сигнала предшествующая атаке существенно искажается шумом квантования. Так как существует эффект пре-маскирования, то некоторое искажение допустимо, однако оно должно быть достаточно коротким по времени. Некоторые исследования показывают, что время пре-маскирования уменьшается с увеличением частоты сигнала.
- Речевой сигнал. Голосовые участки речевого сигнала являются по своей природе часто идущими атаками с быстрым затуханием (pitched signals): Стандартная психоакустическая модель маскирования сигналов в данном случае выдает завышенные пороги слышимости (из-за недостаточного временного разрешения) и, как результат, становится слышимым шум квантования.
Комментариев нет:
Отправить комментарий