Каковы основные принципы работы АЦП?
Примечание. Советую обратить на этот материал особое внимание, поскольку в большинстве школьных учебников он отсутствует; из тех, что мне известны, могу порекомендовать [2, 3].
Во-первых, АЦП производит дискретизацию записываемого звукового сигнала по времени. Это означает, что измерение уровня интенсивности звука ведется не непрерывно, а, напротив, в определенные фиксированные моменты времени (удобнее, разумеется, через равные временныRе промежутки). Частоту, характеризующую периодичность измерения звукового сигнала, принято называть частотой дискретизации. Вопрос о ее выборе не праздный, и ответ в значительной степени зависит от частотного спектра сохраняемого сигнала: существует специальная теорема Найквиста, согласно которой частота оцифровки звука должна как минимум в 2 раза превышать максимальную частоту, входящую в состав спектра сигнала. Считается, что редкий человек слышит звук частотой более 20 000 Гц = 20 кГц; поэтому для высококачественного воспроизведения звука верхнюю границу обычно с некоторым запасом принимают равной 22 кГц. Отсюда немедленно следует, что частота при таких требованиях должна быть не ниже 44 кГц3. Названная частота используется, в частности, при записи музыкальных компакт-дисков. Однако часто такое высокое качество не требуется, и частоту дискретизации можно значительно снизить. Например, при записи речи вполне достаточно частоты 8 кГц. Результат при этом получается хотя и не блестящий, но вполне разборчивый4 — вспомните, как вы легко различаете голоса своих друзей по телефону. Хотя качество воспроизведения тем лучше, чем выше частота дискретизации, но и объем звуковых данных при этом тоже возрастает, так что оптимального “на все случаи” значения частоты не существует.
Во-вторых, АЦП производит дискретизацию амплитуды звукового сигнала. Это следует понимать так, что при измерении имеется “сетка” стандартных уровней (например, 256 или 65 536 — это количество характеризует глубину кодирования), и текущий уровень измеряемого сигнала округляется до ближайшего из них. Напрашивается линейная зависимость между величиной входного сигнала и номером уровня. Иными словами, если громкость возрастает в 2 раза, то интуитивно ожидается, что и соответствующее ему число возрастет вдвое. В простейших случаях так и делается, но, как показывает более детальное рассмотрение, это не самое лучшее решение. Проблема в том, что в широком диапазоне громкости звука человеческое ухо не является линейным. Например, при очень громких звуках (когда “уши закладывает”) увеличение или уменьшение интенсивности звука почти не дает эффекта, в то время как при восприятии шепота очень незначительное падение уровня может приводить к полной потере разборчивости. Поэтому при записи цифрового звука, особенно при 8-битном кодировании, часто используют различные неравномерные распределения уровней громкости, в основе которых лежит логарифмический закон (m-law, A-law и другие; впечатляющие формулы для них можно посмотреть в книге [4]).
В качестве практической иллюстрации к проблеме выбора параметров цифровой записи звука можно заглянуть в списки форматов и атрибутов программы “Звукозапись”, входящей в состав Windows (для получения изображенного на рис. 2 диалогового окна необходимо в меню Файл программы выбрать пункт Свойства).
Рис. 2
Итак, в ходе оцифровки звука мы получаем поток целых чисел, причем “величина числа соответствует силе звука в данный момент” [1]. На рис. 3 приведенное выше описание процесса дискретизации проиллюстрировано графически:
Рис. 3
На рисунке представлен процесс оцифровки зависимости интенсивности звукового сигнала I от времени t. Отчетливо видна дискретизация по времени (равномерные отсчеты на горизонтальной оси) и по интенсивности (требуемое при этом округление схематически изображено “изломами” горизонтальных линий разметки). Подчеркнем, что на рисунке степень дискретизации для наглядности сознательно утрирована: реально различие между соседними значениями по обеим осям значительно меньше и, следовательно, форма сигнала передается гораздо точнее.
Мы рассмотрели лишь наиболее общие принципы записи цифрового звука. На практике для получения качественных звуковых файлов используется целый ряд дополнительных технических приемов. Их интересное и подробное описание дается, в частности, в серии популярных статей в журнале “Компьютерра” [5].
Изложенный метод преобразования звуковой информации с целью хранения в памяти компьютера в очередной раз подтверждает уже неоднократно обсуждавшийся ранее тезис: любая информация в компьютере приводится к числовой форме и затем переводится в двоичную систему. Теперь мы знаем, что и звуковая информация не является исключением из этого фундаментального правила.
При воспроизведении записанного в компьютерный файл звука производится преобразование в противоположном направлении — из дискретной цифровой формы представления сигнала в непрерывную аналоговую, поэтому вполне естественно соответствующий узел компьютерного устройства называется ЦАП — цифроаналоговый преобразователь. Процесс реконструкции первоначального аналогового сигнала по имеющимся дискретным данным нетривиален, поскольку никакой информации о форме сигнала между соседними отсчетами не сохранилось. В разных звуковых картах для восстановления звукового сигнала могут использоваться различные способы. Наиболее наглядный и понятный из них состоит в том, что по имеющимся соседним точкам рассчитывается некоторая гладкая функция, проходящая через заданные точки, которая и принимается в качестве формы аналогового сигнала. Технические возможности современных микросхем позволяют для реконструкции формы сигнала производить весьма сложные вычисления. Выпускаются даже специализированные микропроцессоры, для которых в технической литературе принято название DSP (Digital Signal Processor) — процессоры цифровой обработки сигналов.
Результаты дискретизации звуковой информации, как и все остальные компьютерные данные, сохраняются на внешних носителях в виде файлов. Звуковые файлы могут иметь различные форматы; опираясь на данные замечательной книги [4], рассмотрим наиболее распространенные из них.
Формат AU. Этот простой и распространенный формат на системах Sun и NeXT (в последнем случае, правда, файл будет иметь расширение SND). Файл состоит из короткого служебного заголовка (минимум 28 байт), за которым непосредственно следуют звуковые данные. Широко используется в Unix-подобных системах и служит базовым для Java-машины.
Формат WAVE (WAV). Стандартный формат файлов для хранения звука в системе Windows. Является специальным типом другого, более общего формата RIFF (Resource Interchange File Format); другой разновидностью RIFF служат видеофайлы AVI. Файл RIFF составлен из блоков, некоторые из которых могут, в свою очередь, содержать другие вложенные блоки; перед каждым блоком данных помещается четырехсимвольный идентификатор и длина. Звуковые файлы WAV, как правило, более просты и имеют только один блок формата и один блок данных. В первом содержится общая информация об оцифрованном звуке (число каналов, частота дискретизации, характер зависимости громкости и т.д.), а во втором — сами числовые данные. Каждый отсчет занимает целое количество байт (например, 2 байта в случае 12-битовых чисел, старшие разряды содержат нули). При стереозаписи числа группируются парами для левого и правого канала соответственно, причем каждая пара образует законченный блок — для нашего примера его длина составит 4 байта. Такая, казалось бы, излишняя структурированность позволяет программному обеспечению оптимизировать процесс передачи данных при воспроизведении, но, как в подобных случаях всегда бывает, выигрыш во времени приводит к существенному увеличению размера файла.
Формат MP3 (MPEG Layer3). Это один из форматов хранения аудиосигнала, позднее утвержденный как часть стандартов сжатого видео. Природа получения данного формата во многом аналогична уже рассмотренному нами ранее сжатию графических данных по технологии JPEG (см. билет № 19). Поскольку произвольные звуковые данные обратимыми методами сжимаются недостаточно хорошо, приходится переходить к методам необратимым: иными словами, базируясь на знаниях о свойствах человеческого слуха, звуковая информация “подправляется” так, чтобы возникшие искажения на слух были незаметны, но полученные данные лучше сжимались традиционными способами. Это называется адаптивным кодированием и позволяет экономить на наименее значимых с точки зрения восприятия человека деталях звучания. Приемы, применяемые в MP3, непросты для понимания и опираются на достаточно сложную математику, но зато обеспечивают очень значительный эффект сжатия звуковой информации. Успехи технологии MP3 привели к тому, что ее применяют сейчас и во многих бытовых звуковых устройствах, например, плеерах и сотовых телефонах.
Формат MIDI. Название MIDI есть сокращение от Musical Instrument Digital Interface, т.е. цифровой интерфейс для музыкальных инструментов. Это довольно старый (1983 г.) стандарт, объединяющий разнообразное музыкальное оборудование (синтезаторы, ударные, освещение). MIDI базируется на пакетах данных, каждый из которых соответствует некоторому событию, в частности, нажатию клавиши или установке режима звучания. Любое событие может одновременно управлять несколькими каналами, каждый из которых относится к определенному оборудованию. Несмотря на свое изначальное предназначение, формат файла стал стандартным для музыкальных данных, которые при желании можно проигрывать с помощью звуковой карты компьютера безо всякого внешнего MIDI-оборудования. Главным преимуществом файлов MIDI является их очень небольшой размер, поскольку это не детальная запись звука, а фактически некоторый расширенный электронный эквивалент традиционной нотной записи. Но это же свойство одновременно является и недостатком: поскольку звук не детализирован, то разное оборудование будет воспроизводить его по-разному, что в принципе может даже заметно исказить авторский музыкальный замысел.
Формат MOD. Представляет собой дальнейшее развитие идеологии MIDI-файлов. Известные как “модули программ воспроизведения”, они хранят в себе не только “электронные ноты”, но и образцы оцифрованного звука, которые используются как шаблоны индивидуальных нот. Таким способом достигается однозначность воспроизведения звука. К недостаткам формата следует отнести большие затраты времени при наложении друг на друга шаблонов одновременно звучащих нот.