Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Максимова.doc
Скачиваний:
10
Добавлен:
01.04.2025
Размер:
20.86 Mб
Скачать

Более сложные методы сжатия

Более сложные методы сжатия были разработаны на основе, известных сведений о человеческом слухе. Этим подходом они напоминают JPEG, который, как известно, опирается на сведения о человеческом зрении. Эти методы избирательно отбрасывают некоторые звуковые данные, что приводит к довольно внушительному сжатию при сохранении высокого качества воспроизведения.

Некоторые методы сжатия были разработаны для использования на телефонных системах, включая сотовые телефоны. Эти методы основаны на модели человеческого голосового тракта. Они анализируют звук, используя специфические, созданные гортанью, горлом и ртом, образцы и передают только соответствующие им данные. Эти методы позволяют достигать внушительного сжатия человеческой речи.

Более мощные схемы были разработаны для звуков, отличных от человеческой речи. MPEG определяет три более мощных и сложных метода сжатия звука. Компании, занимающиеся выпуском электроники, вложили много денег в разработку патентованных схем, позволяющих им упаковывать часы музыкальных записей на компактные цифровые ленты и диски.

Разные люди интересуются разными видами сжатия звука. Те из них, кто обладает более быстрыми компьютерами и микросхемами DSP, используют MPEG и другие более сложные методы сжатия, в то время как пользователи с более медленными системами не могут использовать эти стандарты. Из-за такого разнообразия стандартов сжатия большинство современных систем обработки звука, в том числе пакет инструментальных средств QuickTime Macintosh, поддерживают замещаемые кодеки (модули КОдирования/ДЕКодирования). Использование замещаемых модулей позволяет тому же самому базисному программному обеспечению легко приспосабливаться к специфическим ситуациям и облегчает переход на новые версии программного обеспечения, поддерживающего более современные методы сжатия и микросхемы DSP.

Быстрое преобразование Фурье (БПФ; FFT)

Большинство сложных алгоритмов цифровой обработка звука сейчас работают с частотной информацией, в то время как в подавляющем большинстве случаев информация представлена в виде зависимости амплитуды от времени (например, файлы *.wav), для обработки информации, приходится переводить её в частотный вид, обрабатывать, а затем переводить обратно.

Для разложения сигнал в его частотные составляющие используется дискретное преобразование Фурье. Вычисление дискретного преобразования Фурье можно осуществлять двумя способами. Первый, так называемый стандартный способ, состоит в том, чтобы умножать исходную функцию на синусы и косинусы, суммировать всю дискретную функцию в одно число и записывая результат в коэффициенты. Еще этот метод называют метод корреляций: если функция коррелирует с искомым Sin или Cos, то сумма всех дискретных отсчетов получившегося произведения функций говорит нам, насколько много общего у них было. Этот способ довольно медленный, и используется только для вычисления небольших преобразований – около десяти-двадцати точек.

Для серьёзного ускорения процесса преобразования существует интересный алгоритм – быстрое преобразование Фурье БПФ, (FFT). БПФ работает с комплексными числами и размерами преобразований, представляющими из себя степень двойки (128, ..., 1024, 2048 и т.д.). В большинстве современных алгоритмов сжатия с потерями применяется БПФ, поэтому это название прочно закрепилось за всеми алгоритмами, которые раскладывают сигнал на частоты.

Если для реализации ДПФ требуется выполнения примерно N2 комплексных умножений и сложений, то при БПФ необходимо обеспечить Nlog(N) таких операций.

Непосредственные свойства преобразования:

  • В реальных приложениях можно считать, что разложив и сложив обратно сигнал, мы никогда ничего не теряем. Это очень важное свойство.

  • Разрешение по частоте зависит от размера преобразования, и составляет половину от этого размера. При FFT=512 мы получаем в результате амплитуды и фазы 256-ти равномерно расположенных частот.

Вообще говоря, перевод сигнала в частотное представление возможен только блоками (окнами). В нашем случае – FFT блоками. Мы делим исходный сигнал на блоки и говорим: в этом блоке имеются определённые частоты. Вернее, так: его можно получить, сложив определённые частоты. Важно понимать, что БПФ раскладывает функцию не на её гармоники, а на свои гармоники. Вывод из вышесказанного: строго говоря, нельзя трактовать результат разложения как спектр сигнала. Разложение – это просто данные, применив к которым обратное преобразование, можно получить исходную функцию.

В FFT-анализе применяются две технологии. Первая – использование результатов FFT-разложения для синтеза лишь центральной части исходной функции. Соответственно, второй принцип, следующий из этого – исходные FFT блоки тоже должны перекрываться, хотя бы для того, чтобы мы могли синтезировать сигнал обратно. Бывает полезно, однако, перекрывать их еще сильнее, используя усреднение результатов на стыке блоков. Это, как правило, тот параметр, который отвечает за качество FFT-разложения (и, соответственно, обработки).

Принято считать, что выигрывая в разрешении по времени, мы проигрываем в разрешении по частоте, и наоборот. Это, однако, сильно упрощенная картина. Дело в том, что вышеописанная проблема имеет простое решение. Ничего не мешает нам взять, допустим, 1000 отсчетов, дополнить их еще 64536 нулями справа и подвергнуть результат разложению с FFT = 65536. Таким образом мы получим большое разрешение и по времени, и по частоте. Побочные эффекты? Лишь уменьшение амплитуды спектра и изменение до неузнаваемости фазовых компонент. Но мы ведь их и так не используем, мы лишь строим спектр! Амплитуду можно поправить, её изменение вычисляется. Вывод: при одном лишь анализе мы можем получить какое угодно разрешение по времени и по частоте одновременно.

Вышеописанный алгоритм можно использовать для более точного спектрального анализа малых объемов данных.

Еще один прием, если у нас всё же имеется много информации. Перевести сигнал в меньшую частоту дискретизации - например, 8 кГц. В таком случае при FFT = 65536 мы анализируем в одном блоке целых 8 секунд информации, но разрешение по частоте получается почти 0.1 Гц - этого хватит на все практические нужды. Не считая того, что максимальная частота в этом случае – 4 кГц. Мы как бы сузили анализируемый диапазон с 22 кГц до 4 кГц, сохранив при этом разрешение.

Психоакустическая модель

MPEG (Motion Pictures Expert Group) – это название рабочей группы, созданной при Международной организации по стандартизации и Международном электрическом комитете (ISO/IEC) с целью разработки стандартов для цифрового сжатия видео и аудиоинформации. MPEG определяет синтаксис аудио и видео форматов, требующих сжатия с частичной потерей информации, а также конкретно операции, выполняемые декодерами. Алгоритмы, используемые кодерами, не определяются MPEG. Это открывает пути для постоянного улучшения кодеров и их адаптации к конкретным областям применения без необходимости пересмотра существующих форматов. Как для аудио, так и для видео кодирования, MPEG также определяет методы, позволяющие оценить соответствие формата и декодера принятым стандартам, и издает технические отчеты.

Многие аудио-компрессоры основаны на перцептивном кодировании (perception – восприятие). При перцептивном кодировании кодек после фаз кодирования и декодирования не пытается получить идентичный оригиналу сигнал. Целью кодека является получение сигнала, который кажется идентичным для человеческого уха.

Человеческая система восприятия звука имеет ограниченное, зависящее от частоты разрешение. Равномерное, с точки зрения восприятия человеком измерение частоты может быть выражено в единицах ширины Критических Полос (Critical Bands). Их ширина менее 100 Гц для нижних слышимых частот, и более 4 к Гц для наиболее высоких. Весь частотный диапазон может быть разделен на 25 критических полос. Новый отсчет частоты был назван барк (от фамилии Barkhausen):

    • 1 Барк = ширина одной критической полосы;

    • Для частот < 500 Гц, может быть рассчитан по формуле:частота/100 Барк;

    • Для частот > 500 Гц: 9 + 4log2(частота/1000) Барк.

Первый психоакустический эффект, который используется в перцептивном кодировании – это эффект маскирования, основанный на том факте, что определенные части сигнала не слышны ввиду особенностей функционирования системы слуха человека. Чтобы подавить эти составляющие, кодер использует психоакустическую модель, базирующуюся на принципах функционирования человеческого уха. Эта модель разбивает входной сигнал на несколько последовательных блоков, для каждого из которых определяется спектр сигнала. Затем моделируются маскирующие свойства системы слуха человека, и оценивается минимальный слышимый уровень.

Чувствительность человеческого уха в зависимости от частоты. Слушатель в тихой комнате, повышаем громкость тона частотой 1 кГц до уровня когда он становится слышимым. Изменяя частоту тона, получим:

Частотное (параллельное) маскирование. Заключается в том, что постоянно звучащий синусоидальный сигнал маскирует или "заглушает" более тихие близко лежащие на оси частот сигналы и маскирует другие синусоидальные сигналы, имеющие близкие частоты и много меньшие амплитуды. Причем маскируются в основном близкие по частоте звуки. Чем дальше друг от друга по оси частот на графике спектра находятся более мощный маскирующий сигнал и маскируемый звук, тем меньше проявляется этот эффект.

Рис. 11.13. Частотное маскирование с частотной шкалой выраженной в Барках

Как же используется маскирование в частотной области при компрессии данных? Для начала сигнал из временного ряда цифровых отсчетов преобразуется (с помощью быстрого преобразования Фурье – БПФ, дискретного косинусного преобразования, квадратурно-зеркальных фильтров или других методов) в последовательность спектров. Компрессирование в частотной области может заключаться в том, что замаскированные и нулевые (с нулевой амплитудой) компоненты не запоминаются и не передаются через системы связи. Делая обратное БПФ, получим сигнал, субъективно звучащий почти так же, как исходный.

При использовании для компрессии маскирования в частотной области, обычно учитывают и еще одно парадоксальное свойство человеческого слуха. Оказывается, ухо во много раз менее чувствительно к частотным искажениям, чем к искажениям формы сигнала, характерным для квантования с сильно ограниченной точностью. Проще говоря, обычный 8-битный цифровой сигнал звучит ужасно, а вот сигнал, полученный применением обратного БПФ к спектрам, у которых амплитуды частотных составляющих представлены 8-битными (в среднем) числами, субъективно звучит почти неотличимо от 16-битного оригинала. А это уже двукратная компрессия!

Для максимального сохранения субъективного качества сигнала в среднем диапазоне частот амплитуды кодируются 16 битами, а на краях, там, где ухо менее чувствительно к искажением, – шестью и даже четырьмя битами. Распределение количества бит на отсчет в зависимости от частоты подбирается с учетом свойств слуха, заданной степени компрессии и эффекта маскирования в частотной области.

Временное (последовательное) маскирование. Если мы слышим громкий звук, который внезапно прекращается, требуется некоторое время чтобы услышать более тихий тон.

Для временного маскирования важнее не абсолютная громкость звуков, а отношение мощности громкого сигнала к мощности тихого. Как же используется это свойство для компрессии? Замаскированный, неслышимый сигнал не сохраняется и не передается через системы связи. Например, громкий щелчок продолжительностью в 0,1 с может замаскировать тихие последующие звуки на 0,5 с, а значит, их не надо сохранять. То есть для субъективно точного воспроизведения отрезка сигнала со щелчком достаточно проиграть только малую часть от исходного сигнала, а именно сам щелчок (оставшаяся часть все равно не слышна). Таким образом, коэффициент компрессии в этом примере достигает 6:1.

  • Воспроизводим 1 кГц маскирующий тон на уровне 60 dB, и тестовый тон с частотой 1.1 кГц на уровне 40 dB. Тестовый тон не слышен (он замаскирован).

  • Отключаем маскирующий тон, затем, после небольшой задержки, отключаем тестовый тон.

  • Уменьшаем время задержки до тех пор пока тестовый тон еще слышен (например 5 ms).

  • Повторяем, используя различную громкость тестового тона, и получаем:

Рис. 11.14.

  • Общий эффект от частотного и временного маскирования:

Рис. 11.15.

Таким образом, звуки, находящиеся под кривой (Рис. 11.15), можно не кодировать, так как вследствие выше описанных свойств слуха человека, они всё равно не будут услышаны.

В фазе квантования и кодирования кодер пытается разместить количество потребляемых битов таким образом, чтобы оптимальным образом соответствовать требуемым маскирующим свойствам и заданному битовому диапазону. Декодер гораздо менее сложен, поскольку от него не требуется ни применение психоакустической модели, ни использование процедуры размещения битов. Единственная его задача – реконструкция звукового сигнала на основе записанной в файле информации.

Все вышеописанные свойства слуха интенсивно эксплуатируются в современных системах компрессии звуковых данных Dolby Digital AC-3 и MPEG Audio. Эти две системы компрессии отличаются только в деталях. Кроме того, Dolby AC-3 – закрытая патентованная система, и кроме её авторов, никому доподлинно не известно, что в ней реально происходит.

Система компрессии звука MPEG Audio полностью открыта для изучения, критики и усовершенствований. К сожалению, разработчики MPEG cо времен создания стандарта MPEG Audio 1 Layer 3, использующего маскирование в частотной и временной области и распределение бит в соответствии с кривой чувствительности уха (см. выше), двигались в сторону увеличения коэффициента компрессии, а не в сторону доведения качества звука до hi-fi при умеренном сжатии данных. Так, в новейшем стандарте MPEG 4 предусмотрено сжатие звуковых данных (музыки) до 4 кбит/с, а также применение алгоритмов на основе моделирования речевого тракта (вокодеров – см. выше) для сжатия речевых данных вплоть до 2 кбит/с. А вот для компрессии с качеством звука, близким к CD, MPEG 4 фактически использует те же самые алгоритмы MPEG 1 Layer 3. Следует отметить, что в Интернете большинство звуковых файлов с высоким качеством звука также записаны в MPEG 1 Layer 3.

Практика показывает, что формат MPEG 1 Layer 3 (MP3), стал вторым после CD-Audio широко распространённым стандартом представления аудиоданных де-факто. Его распространению способствовало бурное развитие Интернет-технологий, возможность сжимать в 6–12 раз аудиоданные с качеством, практически неотличимым от CD, и бесплатное или условно-бесплатное ПО для кодирования данных в этот формат.