Wednesday, September 19, 2007

Компрессия и декомпрессия аудиоданных по закону Мю и А

Введение
На основе алгоритмов сжатия по закону мю и А построено простое приложение выполняющее действие кодера и декодера этих форматов аудиофайлов, проведен анализ полученных результатов. В работе также приводятся идеи других рекомендаций МККТТ, описание природы звука, его основных характеристик, описание технических средств работы со звуком, основные идеи магнитной записи, рассказывается о звуковых файлах и функциях, которые позволяют с ними удобно работать в программе на языке Visual C++.

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

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

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

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

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

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

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

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

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

При выборе шага квантования следует добиваться того, чтобы шум квантования был, по крайней мере, сравним по мощности с другими шумами канала. До недавнего времени считалось, что достаточно иметь 12 разрядов для квантования речевого сигнала в телефонной линии, но в более современных стандартах речь идет уже о 13 или 14 разрядах. Поскольку при передаче телефонной информации используется частота дискретизации 8 кГц, то нетрудно подсчитать, что при отсутствии компрессии для передачи ИКМ-информации по одному каналу требуется обеспечить его пропускную способность на уровне от 96 до 112 кбит/с, что в четыре раза превышает теоретический предел пропускной способности телефонного канала. Исходя из этого, актуальной становится задача компрессии/декомпрессии оцифрованной речевой информации таким образом, чтобы ее можно было передавать по стандартному телефонному каналу. Эту задачу на сегодня решают путем применения различных алгоритмов компрессии/декомпрессии, среди которых наиболее простые - закон ?, закон А, более сложные - ADPCM, GSM и другие.

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

Применение логарифмического преобразования сигнала приводит к необходимости создания достаточно сложных и медленных вычислительных устройств. Поэтому в МККТТ при разработке рекомендации G.711 был использован подход, во многом напоминающий преобразование чисел в формате с плавающей запятой. В этом случае для представления числа отводится 3 поля: поле знака, поле мантиссы и поле порядка. В поле порядка содержится степень, в которую следует возвести число 2, чтобы при умножении результата этой операции на мантиссу получить истинное значение данного числа в формате с фиксированной запятой.

В рекомендации G.711 предложены два алгоритма преобразования сигналов: закон мю и закон А. Кодирование по закону мю широко используется в США и Японии, а кодирование по закону А - в Европе. Оба эти алгоритма преобразуют исходные отсчеты исходной последовательности сигнала в формате ИКМ в байтовые отсчеты. Каждый отсчет исходной последовательности преобразуется в один байт. Таким образом, пропускная способность канала для передачи преобразованной информации снижается до 64 кбит/с.

В рекомендации МККТТ законы мю и А заданы в виде таблицы, однако во многих случаях к оперативной памяти предъявляется больше требований, чем к быстродействию, кроме того алгоритм, всегда позволит построить первоначальную таблицу, согласно рекомендации G.711.

Более подробно читайте здесь. Приводится полное описание программной реализации (исходники) на Microsoft Visual C++ 6.0, алгоритмы компрессии и декомпрессии, технические средства работы со звуком и др.

Downloads
Cкачать программу с исходниками можно ccitt.zip
Более подробное описание сжатия звука здесь.

No comments: