Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 / Salmon_sjatie_dannyh_izobrajeniy_i_zvuka[torrents.ru]

.pdf
Скачиваний:
24
Добавлен:
05.06.2015
Размер:
7.92 Mб
Скачать

^310 Глава 6. Сэюатие звука

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

Рис. 6.3. Сэмплирование звуковой волны.

Поскольку звуковые сэмплы являются числами, их легко редак­ тировать. Однако, основное назначение звуковых файлов состоит в их проигрывании и в прослушивании. Это делается с помощью пе­ ревода числовых сэмплов в электрическое напряжение, которое не­ прерывно подается на динамики. Устройство для выполнения этой процедуры называется цифро-аналоговым преобразователем (ЦАП или DAC, digital-to-analog converter). Очевидно, более высокая ско­ рость сэмплирования дает лучшее представление звука, но это же

6.2. Оцифрованный звук

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

Из рис. 6.3а видно, что может случиться, если скорость сэмпли­ рования низка. Звуковая волна сэмплировалась четыре раза и все сэмплы оказались равными друг другу. Если проиграть эти сэм­ плы, то получится равномерный звук, похожий на жужжание. На рис. 6.3b показано семь сэмплов; они больше похожи на исходную волну. К сожалению, если использовать их для воспроизведения зву­ ка, то получится пунктирная волна. Их также недостаточно для точного отображения исходного звука.

Решение задачи сэмплирования состоит в отборе звуковых фраг­ ментов со скоростью чуть выше скорости Наиквиста, которая равна удвоенному максимуму частоты волн данного звука. Такое сэмпли­ рование гарантирует весьма близкое восстановление звуковой вол­ ны. Это проиллюстрировано на рис. 6.3с, на котором приведены 10 отсчетов, взятых через равные интервалы времени на четырех пе­ риодах волны. Отметим, что сэмплы не обязательно отбираются от минимума до максимума волны; их можно брать в любых точках.

Диапазон слышимых частот лежит в интервале от 16-20 Гц до 20000-22000 Гц. Он зависит от возраста и других физических осо­ бенностей человека. Если необходимо оцифровывать звук с высокой точностью, то скорость сэмплирования должна быть выше скорости Наиквиста, которая равна 2 х 22000 = 44000 Гц. Поэтому высоко­ качественный оцифрованный звук основан на скорости сэмплиро­ вания 44100 Гц. Скорость ниже этого значения приводит к искаже­ ниям, а большая скорость сэмплирования не даст улучшение рекон­ струкции звука. Поэтому на практике можно использовать фильтры пропускания до 44100 Гц для эффективного удаления частот выше 22000 Гц.

Многие низкокачественные приложения сэмплируют звук на ско­ рости 11000 Гц, а система телефонии, изначально разработанная А,ЛЯ переговоров, но не для цифровых коммуникаций, сэмплирует звук с частотой всего в 8 кГц. Значит, любой звук с частотой выше 4 кГц будет искажаться при передаче по телефону. По этой же причине бывает трудно различить по телефону звуки «с» и «ф». Поэтому ча­ сто при сообщении по телефону имен, фамилий и адресов приходит­ ся диктовать первые буквы слов вроде «Михаил», «Ольга», «Семен», «Константин», «Виктория», «Анна».

Глава 6. Сжатие звука

Другая проблема сэмплирования заключается в размере звуко­ вого фрагмента, то есть, сэмпла. Каждый сэмпл - это число, но насколько большим может оно быть? Обычно на практике сэмплы состоят из 8 или 16 бит, но высококачественные звуковые карты допускают использование 32 бит. Предположим, что наибольшее на­ пряжение звуковой волны равно 1 вольт, тогда при длине сэмпла в 8 бит можно будет различить напряжение с шагом в 1/256 ^ 0.004 вольт, то есть, 4 милливольт (мВ). Тихие звуки, генерируюш;ие вол­ ны до 2 мВ, будут сэмплироваться в ноль и при воспроизведении не будут слышны. В отличие от этого, при 16-битных сэмплах воз­ можно различить звуки, начиная с 1/65536 « 15 микровольт (/хВ). Можно считать размер сэмпла шагом квантования исходных ау­ диоданных. 8-битовое сэмплирование является более грубым, чем 16-битовое. В результате будет произведено лучшее сжатие, но бо­ лее бедное воспроизведение (реконструированный звук будет иметь лишь 256 уровней).

Сэмплирование звука принято еп1;е называть импульсной кодо­ вой модуляцией (РСМ, pulse code modulation). Все слышали про AM и FM радио. Эти сокращения означают amplitude modulation (ампли­ тудная модуляция) и frequency modulation (частотная модуляция). Они указывают на применяемый метод модуляции (т.е. вкладыва­ ния двоичной информации) в непрерывные волны. Термин импульс­ ная модуляция обозначает технику перевода непрерывных волн в двоичный файл. Существует несколько методов импульсной моду­ ляции, включающих импульсную амплитудную модуляцию (РАМ, pulse amplitude modulation), импульсную позиционную модуляцию (РРМ, pulse position modulation) и импульсную числовую модуляцию (PNM, pulse number modulation). Хорошим источником этой инфор­ мации может служить [Pohlmann 85]. На практике, однако, наиболь­ шую эффективность обнаруживает метод РСМ перевода звуковых волн в числовую информацию. При оцифровывании стереозвука с помощью сэмплирования на 22000 кГц с 16-битными сэмплами в одну секунду генерируется 44000 сэмплов длины 16 бит, то есть, 704000 бит/сек или 88000 байт/сек.

6.3. Органы слуха человека

Как уже говорилось, человеческое ухо способно воспринять звуки с частотой от 20 до 22000 Гц, но его чувствительность не является одинаковой в этом интервале. Она зависит от частоты звука. Экс-

6.3. Органы слуха человека

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

Стоит отметить, что частотный диапазон человеческого голоса также весьма ограничен. Он располагается в интервале от 500 Гц до 2 кГц.

Суш;ествование порога слышимости дает основу для построения методов сжатия звука с потерями. Можно удалять все сэмплы, ве­ личина которых лежит ниже этого порога. Поскольку порог слыши­ мости зависит от частоты, кодер должен знать спектр сжимаемого звука в каждый момент времени. Для этого нужно хранить несколь­ ко предыдуп];их входных сэмплов (обозначим это число п — 1; оно или фиксировано, или задается пользователем). При вводе следую­ щего сэмпла необходимо на первом шаге сделать преобразование п сэмплов в частотную область. Результатом служит вектор, состо­ ящий из т числовых компонент, которые называются сигналами. Он определяет частотное разложение сигнала. Если сигнал для ча­ стоты / меньше порога слышимости этой частоты, то его следует отбросить.

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

Частотное маскирование (его еще называют слуховое маскиро­ вание) происходит тогда, когда нормально слышимый звук накры­ вается другим громким звуком с близкой частотой. Толстая стрелка на рис. 6.4Ь обозначает громкий источник звука с частотой 800 Гц. Этот звук приподнимает порог слышимости в своей окрестности (пунктирная линия). В результате звук, обозначенный тоненькой стрелкой в точке «х» и имеющий нормальную громкость выше свое­ го порога чувствительности, становится неслышимым; он маскиру­ ется более громким звуком. Хороший метод сжатия звука должен использовать это свойство слуха и удалять сигналы, соответствую­ щие звуку «X», поскольку они все равно не будут услышаны челове­ ком. Это один возможный путь сжатия с потерями.

Частотное маскирование (область под пунктирной линией на рис. 6.4Ь) зависит от частоты сигнала. Оно варьируется от 100 Гц для низких слышимых частот до более чем 4 кГц высоких частот. Следовательно область слышимых частот можно разделить на не­ сколько критических полос, которые обозначают падение чувстви­ тельности уха (не путать со снижением мощности разрешения) для

, 3 14 Глава 6. Сэюатие звука

KHz

(а)

KHz

Рис. 6.4. Порог и маскирование звука.

6.3. Органы слуха человека 315 j

более высоких частот. Можно считать критические полосы еще од­ ной характеристикой звука, подобной его частоте. Однако, в отли­ чие от частоты, которая абсолютна и не зависит от органов слуха, критические полосы определяются в соответствии со слуховым вос­ приятием. В итоге они образуют некоторые меры восприятия ча­ стот. В табл. 6.5 перечислены 27 приближенных критических полос.

полоса

область

полоса

область

полоса

область

0

0-50

9

800-940

18

3280-3840

1

50-95

10

940-1125

19

3840-4690

2

95-140

11

1125-1265

20

4690-5440

3

140-235

12

1265-1500

21

5440-6375

4

235-330

13

1500-1735

22

6375-7690

5

330-420

14

1735-1970

23

7690-9375

6

420-560

15

1970-2340

24

9375-11625

7

560-660

16

2340-2720

25

11625-15375

8

660-800

17

2720-3280

26

15375-20250

Табл. 6.5. 27 приближенных критических полос.

Критические полосы можно описать следуюш.им образом: из-за ограниченности слухового восприятия звуковых частот порог слы­ шимости частоты / приподнимается соседним звуком, если звук находится в критической полосе / . Это свойство открывает путь для разработки практического алгоритма сжатия аудиоданных с потерями. Звук необходимо преобразовать в частотную область, а получившиеся величины (частотный спектр) следует разделить на подполосы, которые максимально приближают критические полосы. Если это сделано, то сигналы каждой из подполос нужно кванто­ вать так, что шум квантования (разность между исходным звуко­ вым сэмплом и его квантованными значениями) был неслышимым.

Еще один возможный взгляд на концепцию критической поло­ сы состоит в том, что органы слуха человека можно представить себе как своего рода фильтр, который пропускает только часто­ ты из некоторой области (полосы пропускания) от 20 до 20000 Гц. В качестве модели ухо-мозг мы рассматриваем некоторое семейство фильтров, каждый из которых имеет свою полосу пропускания. Эти полосы называются критическими. Они пересекаются и имеют раз­ ную ширину. Они достаточно узки (около 100 Гц) в низкочастотной области и расширяются (до 4-5 кГц) в области высоких частот.

Ширина критической полосы называется ее размером. Для из­ мерения этой величины вводится новая единица «барк» («Bark» от

Глава 6. Сэюатие звука

H.G.Barkhausen). Один барк равен ширине (в герцах) одной крити­ ческой полосы. Эта единица определяется по формуле

1 барк

_ I 100

для частот /

< 500 Гц,

 

 

 

log

 

 

 

ушо)

<^^^ частот /

> 500 Гц.

На рис. 6.4с показаны несколько критических полос с величиной барк от 14 до 25 единиц, которые помещены над кривой порогов слышимости.

Время

-500-200-100

100 200 500

Рис. 6.6. Порог и маскирование звука.

Временное маскирование происходит, когда громкому звуку А частоты / по времени предшествует или за ним следует более сла­ бый звук В близкой частоты. Если интервал времени между этими звуками не велик, то звук В будет не слышен. Рис. 6.6 иллюстрирует пример временного маскирования. Порог временного маскирования от громкого звука в момент времени О идет вверх сначала круто, а потом полого. Более слабый звук в 30 дБ не будет слышен, если он раздастся за 10 млсек до или после громкого звука, но будет разли­ чим, если временной интервал между ними будет больше 20 мсек.

6.4. Общепризнанные методы

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

6.4' Общепризнанные методы

словарном подходе, наоборот, может произойти расширение. При­ ведем краткую характеристику эффективности этих трех методов при сжатии звуковых файлов.

RLE хорошо работает со звуками, которые содержат длинные се­ рии повторяюп];ихся звуковых фрагментов - сэмплов. При 8-битном сэмплировании это может происходить довольно часто. Напомним, что разность электрического напряжения между двумя 8-битовыми сэмплами п и п -\- 1 составляет около 4 мВ. Несколько секунд од­ нородной музыки, в которой звуковая волна будет меняться менее чем на 4 мВ, породят последовательность из тысяч тождественных сэмплов. При 16-битном сэмплировании, очевидно, длинные повто­ ры встречаются реже, и, следовательно, алгоритм RLE будет менее эффективен.

Статистические методы присваивают коды переменной длины звуковым сэмплам в соответствии с их частотностью. При 8-битном сэмплировании имеется всего 256 различных сэмплов, поэтому в большом звуковом файле сэмплу могут быть распределены равно­ мерно. Такой файл не удастся хорошо сжать методом Хаффмана. При 16-битном сэмплировании допускается более 65000 звуковых фрагментов. В этом случае возможно, что некоторые сэмплы будут встречаться чаще, а другие - реже. При сильной асимметрии веро­ ятностей хороших результатов можно добиться с помош;ью ариф­ метического кодирования.

Методы, основанные на словарном подходе, предполагают, что некоторые фразы будут встречаться часто на протяжении всего файла. Это происходит в текстовом файле, в котором отдельные слова или их последовательности повторяются многократно. Звук, однако, является аналоговым сигналом и значения конкретных сге­ нерированных сэмплов в большой степени зависит от работа АЦП. Например, при 8-битном сэмплировании, волна в 8 мВ становится числовым сэмплом, равным 2, но близкая ей волна, скажем, в 7.6 мВ или 8.5 мВ может стать другим числом. По этой причине, речевые фрагменты, содержащие совпадающие фразы и звучащие для нас одинаково, могут слегка отличаться при их оцифровывании. Тогда они попадут в словарь в виде разных фраз, что не даст ожидаемого сжатия. Таким образом, словарные методы не очень подходят для сжатия звука.

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

Глава 6. Сжатие звука

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

Идея подавления пауз заключается в рассмотрении малых сэм­ плов, как если бы их не было (то есть, они равны нулю). Такое обнуление будет порождать серии нулей, поэтому метод подавления пауз, на самом ц,ел<^^ является вариантом RLE, приспособленным к сжатию звука. Этот метод основан на особенности звукового вос­ приятия, которое состоит в терпимости уха человека к отбрасыва­ нию еле слышных звуков. Аудиофайлы, содержащие длинные участ­ ки тихого звука будут лучше сжиматься методом подавления пауз, чем файлы, наполненные громкими звуками. Этот метод требует участие пользователя, который будет контролировать параметры, задающие порог громкости для сэмплов. При этом необходимы еще два параметра, они не обязательно контролируются пользователем. Один параметр служит для определение самых коротких последо­ вательностей тихих сэмплов, обычно, это 2 или 3. А второй задает наименьшее число последовательных громких сэмплов, при появле­ нии которых прекращается тишина или пауза. Например после 15 тихих сэмплов может последовать 2 громких, а затем 13 тихих, что будет определено как одна большая пауза длины 30, а аналогичная последовательность из 15, 3 и 12 сэмплов, станет двумя паузами с коротким звуком между ними.

Уплотнение основано на том свойстве, что ухо лучше различает изменения амплитуды тихих звуков, чем громких. Типичное АЦП звуковых карт компьютеров использует линейное преобразование при переводе напряжения в числовую форму. Если амплитуда о бы­ ла конвертирована в число п, то амплитуда 2а будет переведена в число 2п. Метод сжатия на основе уплотнения сначала анализиру­ ет каждый сэмпл звукового файла и применяет к нему нелинейную функцию для сокращения числа бит, назначенных этому сэмплу. На­ пример, при 16-битных сэмплах, кодер с уплотнением может приме­

нять следующую простую формулу

 

образ = 32767 ^ 2 i ^ - 1^

(6.1)

6.4' Общепризнанные методы

для сокращения каждого сэмпла. Эта формула нелинейно отобра­ жает 16-битные сэмплы в 15-битные числа интервала [0,32767], при­ чем маленькие (тихие) сэмплы меньше подвергаются искажению, чем большие (громкие). Табл. 6.7 иллюстрирует нелинейность этой функции. На ней показано 8 пар сэмплов, причем в каждой паре разность между сэмплами равна 100. Для первой пары разность между их образами равна 34, а разность между образами послед­ ней (громкой) пары равна 65. Преобразованные 15-битные числа могут быть приведены к исходным 16-битным сэмплам с помоп1;ью обратной формулы

 

 

сэмпл = 65536 log2 ( l 4- f ^ ) .

(6.2)

Сэмпл

Образ

Разность

Сэмпл

Образ

Разность

100

-^

35

34

30000 ^

12236

47

200

->

69

30100 ->

12283

1000

->

348

35

40000 ->

17256

53

1100

-^

383

40100 -^

17309

10000 -^

3656

38

50000 ->

22837

59

10100 ->

3694

50100 ^

22896

20000

^

7719

43

60000 -^

29040

65

20100 ->

7762

60100 ->

29105

Табл. 6.7. Отображение 16-битных сэмплов в 15-битные числа.

Сокращение 16-битных сэмплов до 15-битных чисел не дает су­ щественного сжатия. Лучшее сжатие получается, если в формулах (6.1) и (6.2) заменить число 32767 меньшим. Например, если взять число 127, то 16-битные сэмплы будут представлены 8-битными чи­ слами, то есть, коэффициент сжатия буде равен 0.5. Однако, деко­ дирование будет менее аккуратным. Сэмпл 60100 будет отображен в число 113, а при декодировании по формуле (6.2) получится сэмпл 60172. А маленький 16-битный сэмпл 1000 будет отображен в 1.35, что после округления даст 1. При декодировании числа 1 получится 742, что сильно отличается от исходного сэмпла. Здесь коэффици­ ент сжатия может быть параметром, непосредственно задаваемым пользователем. Это интересный пример метода сжатия, при кото­ ром коэффициент сжатия известен заранее.

На практике нет необходимости обращаться к уравнениям (6.1) и (6.2), поскольку результат отображения можно заранее пригото­ вить в виде таблицы. Тогда и кодирование, и декодирование будут делаться быстро.

Соседние файлы в папке 1