Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ОПЕРАЦИОННЫЕ СИСТЕМЫ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
642.56 Кб
Скачать

2.5. Представление звуков

Два основных подхода к хранению звуковых файлов можно сопоставить с векторным и растровым способами хранения изображений: это MIDI и по­добные ему форматы, и оцифрованный звук.

В формате MIDI звук генерируется синтезатором, который умеет порождать звуки различного тембра, высоты, длительности и громкости. Тембры этих звуков обычно более или менее соответствуют звукам распространенных музыкальных инструментов. Вместо собственно звука хранится последова­тельность команд этого синтезатора. Используя в качестве звуковых прими­тивов фонемы человеческого языка, этот подход можно применить и для синтеза речи.

MIDI-файлы имеют малый объем и, при наличии аппаратного синтезатора, не требуют ресурсов центрального процессора для воспроизведения, поэтому их часто используют в качестве фонового озвучивания игровых программ и Web-страниц. К недостаткам этого формата следует отнести тот факт, что качество его воспроизведения определяется качеством синтезатора, которое у дешевых звуковых карт оставляет желать лучшего, и то, что далеко не вся­кий звук можно воспроизвести таким способом.

Задача преобразования реального звука в MIDI сродни задаче векторизации растрового изображения и другим задачам распознавания образов, и в об­щем виде не разрешима.

Оцифрованный звук, напротив, является результатом простого осуществле­ния аналого-цифрового преобразования реального звука. Характеристиками такого звука являются частота дискретизации, разрешение АЦП и количест­во каналов — моно или стерео.

2.6. Упаковка данных

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

Научной основой всех методов упаковки является теория информации: дан­ные, в которых имеются статистические автокорреляции, называются избы­точными или имеющими низкую энтропию. Устранив эти автокорреляции, т. е. повысив энтропию, объем данных можно уменьшить без потери смыс­ла, а зачастую и с возможностью однозначно восстановить исходные дан­ные. Методы повышения энтропии, которые не позволяют по упакованному потоку восстановить исходный, называются необратимыми, приблизительны­ми или сжимающими с потерями (losing compression). Соответственно, методы, которые позволяют это сделать, называются обратимыми, точными, или сжимающими без потерь (losless compression).

Один из первых методов упаковки был предложен задолго до разработки современной теории информации; в 1844 году Сэмюэл Морзе построил пер­вую линию проволочного телеграфа. Система кодировки букв, известная как Азбука Морзе (табл. 1.4), использовала для представления различных букв алфавита посылки различной длины, при этом длина посылки зависела от частоты использования соответствующего символа в английском языке. Часто встречающиеся символы кодировались более короткими последова­тельностями.

В конце сороковых годов XX века основателем современной теории инфор­мации Шенноном, и независимо от него, Фано был разработан универсаль­ный алгоритм построения оптимальных кодов. Более известый аналог этого алгоритма был предложен несколько позже Дэвидом Хаффманом. Принцип построения этих кодов в целом соответствует логике, кото­рой руководствовался Морзе, — кодировать значения, которые часто повто­ряются в потоке, более короткими последовательностями битов.

Коды Хаффмана и Шеннона-Фано устраняют автокорреляции, соответствую­щие неравномерности встречаемости символов, но сохраняют без измене­ний часто встречающиеся последовательности символов, а они ответственны за значительную часть избыточности текстов на естественных и синтетиче­ских языках. Для упаковки данных такого рода в конце 70-х Лемпелем и Зиффом было предложено семейство алгоритмов, наиболее известные из которых — LZ77 и LZW.

Все эти алгоритмы сводятся к поиску в потоке повторяющихся последова­тельностей и замене этих последовательностей на их номер в динамически формируемом словаре. Различие состоит в способах кодирования номера и формирования словаря. Номер последовательности в словаре должен содер­жать больше битов, чем символы исходного потока, хотя бы уже для того, чтобы его можно было отличить от символа, поэтому алгоритмы Лемпеля-Зиффа предполагают дальнейшее перекодирование преобразованного пото­ка кодом Хаффмана. Большинство современных архиваторов, такие, как PkZip, GNU Zip, RAR, основаны на вариациях и аналогах алгоритмов Лемпеля-Зиффа.

При упаковке нетекстовых данных могут применяться и другие способы удаления повторений. Например, при упаковке растровых изображений ши­роко используется метод RLE (Run-Length Encoding), когда повторяющиеся пикселы заменяются счетчиком повторений и значением пиксела.. Все перечисленные алгоритмы способны только устранять автокорреляции, уже существующие во входном потоке. Понятно, что если автокорреляций не было, то упаковки не произойдет, поэтому гарантировать уровень упа­ковки эти алгоритмы не могут.

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

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

Идея обширного семейства алгоритмов, пригодных для сжатия зашумленных сигналов, была позаимствована из принципа работы цифровых фильтров - «шумодавов». Шумодав работает следующим образом: он осуществляет над сигналом преобразование Фурье и удаляет из полученного спектраль­ного образа самые слабые частоты, которые ниже порога подавления.

Сигнал при этом, конечно, искажается, но сильнее всего при этом страдает равномерно распределенный по спектру шум, что и требуется (рис. 1.8).

Алгоритмы JFIF (лежащий в основе распространенного формата хранения растровых изображений JPG), MPEG, MP3 тоже начинаются с выполнения над входным потоком преобразования Фурье. Но, в отличие от шумодава, JFIF удаляет из полученного спектра не частоты, которые ни­же заданного порога, а фиксированное количество частот — конечно же, стараясь отобрать самые слабые. Количество частот, которые надо выки­нуть, определяется параметром настройки упаковщика. У JFIF этот пара­метр так и называется — коэффициентом упаковки, у МРЗ — битрейтом.

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

При разумно выбранном уровне упаковки результат — фотореалистичное изображение или музыкальное произведение — на взгляд (или, соответст­венно, на слух) практически неотличим от оригинала. Различие может пока­зать только спектральный анализ данных. Но если распаковать сжатое с по­терями изображение, подвергнуть его редактированию (например, отмасштабировать или пририсовать какой-нибудь логотип), а потом упако­вать снова, результат будет удручающим: редактирование привнесет в изо­бражение новые частоты, поэтому велика опасность, что повторная упаков­ка даже с более низким коэффициентом сжатия откусит какие-то из "полезных" частот изображения. После нескольких таких перепаковок от изображения остается только сюжет, а от музыки — только основной ритм. Экспериментальные варианты приблизительных алгоритмов вместо класси­ческого разложения по взвешенной сумме синусов и косинусов используют разложение по специальным функциям, так называемым вэйвлетам (wavelet). Утверждается, что вэйвлетная фильтрация при том же уровне сжа­тия (понятно, что сравнивать по уровню сжатия алгоритмы, которые сжи­мают что угодно в заданное число раз, совершенно бессмысленно) дает меньший уровень субъективно обнаружимых искажений. Но субъективное восприятие, как известно, сильно подвержено эффекту плацебо (человек склонен видеть улучшение или вообще изменение там, где его нет, если имеет основания предполагать, что изменение должно произойти) зато вэйвлетные алгоритмы сильно уступают обычным вариациям JFIF по про­изводительности, поэтому до сих пор они не вышли из экспериментального состояния.