• Качество воспроизведения звука. Кодирование звуковой информации. Перед конвертированием музыки в другой формат следует «разжимать» её в WAV

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

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

    Рис. 1.1. Зависимость громкости и высоты тона звука от интенсивности и частоты звуковой волны

    Человеческое ухо воспринимает звук с частотой от 20 колебаний в секунду (низкий звук) до 20 000 колебаний в секунду (высокий звук).

    Человек может воспринимать звук в огромном диапазоне интенсивностей, в котором максимальная интенсивность больше минимальной в 1014 раз (в сто тысяч миллиардов раз). Для измерения громкости звука применяется специальная единица "децибел" (дбл) (табл. 5.1). Уменьшение или увеличение громкости звука на 10 дбл соответствует уменьшению или увеличению интенсивности звука в 10 раз.

    Таблица 5.1. Громкость звука
    Звук Громкость в децибелах
    Нижний предел чувствительности человеческого уха 0
    Шорох листьев 10
    Разговор 60
    Гудок автомобиля 90
    Реактивный двигатель 120
    Болевой порог 140
    Временная дискретизация звука. Для того чтобы компьютер мог обрабатывать звук, непрерывный звуковой сигнал должен быть преобразован в цифровую дискретную форму с помощью временной дискретизации. Непрерывная звуковая волна разбивается на отдельные маленькие временные участки, для каждого такого участка устанавливается определенная величина интенсивности звука.

    Таким образом, непрерывная зависимость громкости звука от времени A(t) заменяется на дискретную последовательность уровней громкости. На графике это выглядит как замена гладкой кривой на последовательность "ступенек" (рис. 1.2).

    Рис. 1.2. Временная дискретизация звука

    Частота дискретизации. Для записи аналогового звука и г го преобразования в цифровую форму используется микрофон, подключенный к звуковой плате. Качество полученного цифрового звука зависит от количества измерений уровня громкости звука в единицу времени, т. е. частоты дискретизации. Чем большее количество измерений производится за I секунду (чем больше частота дискретизации), тем точнее "лесенка" цифрового звукового сигнала повторяет кривую диалогового сигнала.

    Частота дискретизации звука - это количество измерений громкости звука за одну секунду.

    Частота дискретизации звука может лежать в диапазоне от 8000 до 48 000 измерений громкости звука за одну секунду.

    Глубина кодирования звука. Каждой "ступеньке" присваивается определенное значение уровня громкости звука. Уровни громкости звука можно рассматривать как набор возможных состояний N, для кодирования которых необходимо определенное количество информации I, которое называется глубиной кодирования звука.

    Глубина кодирования звука - это количество информации, которое необходимо для кодирования дискретных уровней громкости цифрового звука.

    Если известна глубина кодирования, то количество уровней громкости цифрового звука можно рассчитать по формуле N = 2I. Пусть глубина кодирования звука составляет 16 битов, тогда количество уровней громкости звука равно:

    N = 2I = 216 = 65 536.

    В процессе кодирования каждому уровню громкости звука присваивается свой 16-битовый двоичный код, наименьшему уровню звука будет соответствовать код 0000000000000000, а наибольшему - 1111111111111111.

    Качество оцифрованного звука. Чем больше частота и глубина дискретизации звука, тем более качественным будет звучание оцифрованного звука. Самое низкое качество оцифрованного звука, соответствующее качеству телефонной связи, получается при частоте дискретизации 8000 раз в секунду, глубине дискретизации 8 битов и записи одной звуковой дорожки (режим "моно"). Самое высокое качество оцифрованного звука, соответствующее качеству аудио-CD, достигается при частоте дискретизации 48 000 раз в секунду, глубине дискретизации 16 битов и записи двух звуковых дорожек (режим "стерео").

    Необходимо помнить, что чем выше качество цифрового звука, тем больше информационный объем звукового файла. Можно оценить информационный объем цифрового стереозвукового файла длительностью звучания 1 секунда при среднем качестве звука (16 битов, 24 000 измерений в секунду). Для этого глубину кодирования необходимо умножить на количество измерений в 1 секунду й умножить на 2 (стереозвук):

    16 бит × 24 000 × 2 = 768 000 бит = 96 000 байт = 93,75 Кбайт.

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

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

    Цифровой звук – это аналоговый звуковой сигнал, представленный посредством дискретных численных значений его амплитуды.

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

    Кодирование и воспроизведение звуковой информации осуществляется с помощью специальных программ (редакторы звукозаписи).

    Качество воспроизведения закодированного звука зависит от частоты дискретизации и её разрешения.

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

    Оцифровка звука включает в себя два процесса:

      процесс дискретизации (осуществление выборки сигнала по времени);

      процесс квантования по амплитуде.

    Процесс дискретизации по времени - процесс получения значений сигнала, который преобразуется с определенным временным шагом -шагом дискретизации .

    Количество замеров величины сигнала, осуществляемых в одну секунду, называют частотой дискретизации иличастотой выборки , иличастотой семплирования (от англ. « ampling» - «выборка»).

    Чем меньше шаг дискретизации, тем выше частота дискретизации и тем более точное представление о сигнале нами будет получено.

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

    Квантование – дискретизация по уровню.

    Принимается, что погрешности квантования, являющиеся результатом квантования с разрядностью 16 бит, остаются для слушателя почти незаметными.

    Каждый из 2 N возможных уровней называетсяуровнем квантования , а расстояние между двумя ближайшими уровнями квантования называетсяшагом квантования .

    Число N называют разрядностью квантования , а полученные в результате округления значений амплитуды числа -отсчетами илисемплами (от англ. « sample» - «замер»).

    Погрешности квантования, являющиеся результатом квантования с разрядностью 16 бит, остаются для слушателя почти незаметными.

    Оцифровка звука – итог:

    Плюсы: можно закодировать любой звук (в т.ч. голос, свист, шорох, …)

    Минусы: есть потеря информации, большой объем файлов

    Основные параметры, влияющие на качество звука:

    1. Разрядность - размерность (количество бит информации кодируемое/декодируемое при АЦП и ЦАП).

    2. Частота дискретизации - частота взятия отсчетов непрерывного во времени сигнала при его дискретизации (АЦП), измеряется в Герцах.

    3. Шум - нежелательные фазовые и/или частотные случайные отклонения передаваемого сигнала

    Форматы звуковых файлов

        WAV (Waveform audio format ), часто без сжатия (размер!)

        MP 3 (MPEG -1 Audio Layer 3 , сжатие с учётом восприятия человеком)

        AAC (Advanced Audio Coding , 48 каналов, сжатие)

        WMA (Windows Media Audio, потоковый звук, сжатие)

        OGG (Ogg Vorbis, открытый формат, сжатие)

    Биты, герцы, shaped dithering...

    Что скрывается за этими понятиями? При разработке стандарта аудио компакт дисков (CD Audio) были приняты значения 44 кГц, 16 бит и 2 канала (т.е. стерео). Почему именно столько? В чём причина такого выбора, а также - почему предпринимаются попытки повысить эти значения до, скажем, 96 кГц и 24 или даже до 32х битов...

    Разберёмся сначала с разрешением сэмплирования - то есть с битностью. Так уж получается, что выбирать приходится между числами 16, 24 и 32. Промежуточные значения были бы, конечно, удобнее в смысле звука, но слишком неприятны для использования в цифровой технике (весьма спорное утверждение, если учесть, что многие АЦП имеют 11 или 12 разрядный цифровой выход - прим. сост.).

    За что отвечает этот параметр? В двух словах - за динамический диапазон. Диапазон одновременно воспроизводимых громкостей - от максимальной амплитуды (0 децибел) до той наименьшей, которую позволяет передать разрешение, например, около минус 93 децибел для 16 битного аудио. Как ни странно, это сильно связано с уровнем шумов фонограммы. В принципе, для 16 битного аудио вполне возможна передача сигналов мощностью и в -120 дБ, однако эти сигналы будет затруднительно применять на практике из-за такого фундаментального понятия как шум дискретизации . Дело в том, что при взятии цифровых значений мы всё время ошибаемся, округляя реальное аналоговое значение до ближайшего возможного цифрового. Самая маленькая возможная ошибка - нулевая, максимально же мы ошибаемся на половину последнего разряда (бита, далее термин младший бит будет сокращаться до МБ). Эта ошибка даёт нам так называемый шум дискретизации - случайное несоответствие оцифрованного сигнала оригиналу. Этот шум носит постоянный характер и имеет максимальную амплитуду равную половине младшего разряда. Это можно рассматривать как случайные значения, подмешанные в цифровой сигнал. Иногда это называется шум округления или квантования (что является более точным названием, так как кодирование амплитуды называется квантованием, а дискретизацией называется процесс преобразования непрерывного сигнала в дискретную (импульсную) последовательность -- прим. сост.).

    Остановимся подробнее на том, что понимается под мощностью сигналов, измеряемой в битах. Самый сильный сигнал в цифровой обработке звука принято принимать за 0 дБ, это соответствует всем битам, поставленным в 1. Если старший бит (далее СБ) обнулить, получившееся цифровое значение будет в два раза меньше, что соответствует потере уровня на 6 децибел (10 * log(2) = 6). Таким образом, обнуляя единички от старших разрядов к младшим, мы будем уменьшать уровень сигнала на шесть децибел. Понятно, что минимальный уровень сигнала (единичка в младшем разряде, а все остальные разряды - нули) (N-1)*6децибел, где N - разрядность отсчета (сэмпла). Для 16 разрядов получаем уровень самого слабого сигнала - 90 децибел.

    Когда мы говорим "половина младшего разряда", мы имеем в виду не -90/2, а половину шага до следующего бита - то есть ещё на 3 децибела ниже, минус 93 децибел.

    Возвращаемся к выбору разрешения оцифровки. Как уже было сказано, оцифровка вносит шум на уровне половины младшего разряда, это говорит о том, что запись, оцифрованная в 16 бит, постоянно шумит на минус 93 децибел. Она может передавать сигналы и тише, но шум всё равно остаётся на уровне -93 дБ. По этому признаку и определяется динамический диапазон цифрового звука - там, где соотношение сигнал/шум переходит в шум/сигнал (шумов больше, чем полезного сигнала), находится граница этого диапазона снизу. Таким образом, главный критерий оцифровки - сколько шума мы можем себе позволить в восстановленном сигнале? Ответ на этот вопрос зависит отчасти от того, сколько шума было в исходной фонограмме. Важный вывод - если мы оцифровываем нечто с уровнем шумов минус 80 децибел - нет совершенно никаких причин цифровать это в более чем 16 бит, так как, с одной стороны, шумы -93 дБ добавляют очень мало к уже имеющимся огромным (сравнительно) шумам -80 дБ, а с другой стороны - тише чем -80 дБ в самой фонограмме уже начинается шум/сигнал, и оцифровывать и передавать такой сигнал просто не нужно.

    Теоретически это единственный критерий выбора разрешения оцифровки. Больше мы не вносим совершенно никаких искажений или неточностей. Практика, как ни странно, почти полностью повторяет теорию. Этим и руководствовались те люди, которые выбирали разрешение 16 бит для аудио компакт дисков. Шум минус 93 децибел - довольно хорошее условие, которое почти точно соответствует условиям нашего восприятия: разница между болевым порогом (140 децибел) и обычным шумовым фоном в городе (30-50 децибел) составляет как раз около сотни децибел, и если учесть, что на уровне громкости, приносящем боль, музыку не слушают - что ещё несколько сужает диапазон - получается, что реальные шумы помещения или даже аппаратуры получаются гораздо сильнее шумов квантования. Если мы можем расслышать уровень под минус 90 децибел в цифровой записи - мы услышим и воспримем шумы квантования, иначе - мы просто никогда не определим, оцифрованное это аудио или живое. Никакой другой разницы в смысле динамического диапазона просто нет. Но в принципе, человек может осмысленно слышать в диапазоне 120 децибел, и было бы неплохо сохранить весь этот диапазон, с чем 16 бит, казалось бы, не справляются.

    Но это только на первый взгляд: с помощью специальной техники, называемой shaped dithering , можно изменить частотный спектр шумов дискретизации, почти полностью вынести их в область более 7-15 кГц. Мы как бы меняем разрешение по частоте (отказываемся от воспроизведения тихих высоких частот) на дополнительный динамический диапазон в оставшемся отрезке частот. В сочетании с особенностями нашего слуха - наша чувствительность к выкидываемой области высоких частот на десятки дБ ниже чем в основной области (2-4 кГц) - это делает возможным относительно бесшумную передачу полезных сигналов дополнительно ещё на 10-20 дБ тише, чем -93 дБ - таким образом, динамический диапазон 16 битного звука для человека составляет около 110 децибел. Да и вообще - одновременно человек просто не может слышать звуки на 110 децибел тише, чем только что услышанный громкий звук. Ухо, как и глаз, подстраивается под громкость окружающей действительности, поэтому одновременный диапазон нашего слуха составляет сравнительно мало - около 80 децибел. Поговорим о dithring-е подробнее после обсуждения частотных аспектов.

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

    Разберемся сначала, что нам хотелось бы получить. Человек среднего возраста (скорее молодой) может чувствовать звуки от 10 Гц до 20 кГц, осмысленно слышать - от 30 Гц до 16 кГц. Звуки выше и ниже воспринимаются, но не составляют акустических ощущений. Звуки выше 16 кГц ощущаются как раздражающий неприятный фактор - давление на голову, боль, особо громкие звуки приносят такой резкий дискомфорт, что хочется покинуть помещение. Неприятные ощущения настолько сильны, что на этом основано действие охранных устройств - несколько минут очень громкого звука высокой частоты сведут с ума кого угодно, и воровать что либо в такой обстановке становится решительно невозможно. Звуки ниже 30 - 40 Гц при достаточной амплитуде воспринимаются как вибрация, исходящая от объектов (колонок). Вернее будет даже сказать так - просто вибрация. Человек акустически почти не определяет пространственное положение настолько низких звуков, поэтому в ход уже идут другие органы чувств - осязательные, мы чувствуем такие звуки телом.

    С высокими частотами все немного хуже, по крайней мере точно сложнее . Почти вся суть усовершенствований и усложнений ЦАП и АЦП направлена как раз на более достоверную передачу высоких частот. Под "высокими" подразумеваются частоты сравнимые с частотой дискретизации - то есть в случае 44.1 кГц это 7-10 кГц и выше.

    Представим синусоидальный сигнал с частотой 14 кГц, оцифрованный с частотой дискретизации 44.1 кГц. На один период входной синусоиды приходится около трех точек (отсчетов), и чтобы восстановить исходную частоту в виде синусоиды, надо проявить некоторую фантазию. Процесс восстановления формы сигнала по отсчетам происходит и в ЦАП, этим занимается восстанавливающий фильтр. И если сравнительно низкие частоты представляют собой почти готовые синусоиды, то форма и, соответственно, качество восстановления высоких частот лежит целиком на совести восстанавливающей системы ЦАП.Таким образом, чем ближе частота сигнала к одной второй частоты дискретизации, тем сложнее восстановить форму сигнала.

    Это и составляет основную проблему при воспроизведении высоких частот. Проблема, однако, не так страшна, как может показаться. Во всех современных ЦАП используется технология пересэмплирования (multirate), которая заключается в цифровом восстановлении до в несколько раз более высокой частоты дискретизации, и в последующем переводе в аналоговый сигнал на повышенной частоте. Таким образом проблема восстановления высоких частот перекладывается на плечи цифровых фильтров, которые могут быть очень качественными. Настолько качественными, что в случае дорогих устройств проблема полностью снимается - обеспечивается неискаженное воспроизведение частот до 19-20 кГц. Пересэмплирование применяется и в не очень дорогих устройствах, так что в принципе и эту проблему можно считать решенной. Устройства в районе $30 - $60 (звуковые карты) или музыкальные центры до $600, обычно аналогичные по ЦАПу этим звуковым картам, отлично воспроизводят частоты до 10 кГц, сносно - до 14 - 15, и кое-как остальные. Этого вполне достаточно для большинства реальных музыкальных применений, а если кому-то нужно большее качество - он найдет его в устройствах профессионального класса, которые не то чтобы сильно дороже - просто они сделаны с умом.

    Вернемся к dithering-у - посмотрим, как можно с пользой увеличить динамический диапазон за пределы 16 бит.

    Идея dithering-а заключается в том, чтобы подмешать в сигнал шум . Как ни странно это звучит - для того чтобы уменьшить шумы и неприятные эффекты квантования, мы добавляем свой шум. Рассмотрим пример - воспользуемся возможностью CoolEdit-а работать в 32х битах. 32 бита - это в 65 тысяч раз большая точность, нежели 16 бит, поэтому в нашем случае 32х битный звук можно считать аналоговым оригиналом, а перевод его в 16 бит - оцифровкой. Пусть в исходном 32х битном звуке самый высокий уровень звука соответствует минус 110 децибел. Это с запасом гораздо тише динамического диапазона 16 битного звука, для которого самый слабый различимый звук соответствует уровню минус 90 децибел. Поэтому если просто округлить данные до 16 бит - мы получим полную цифровую тишину.

    Добавим в сигнал "белый" шум (т.е. широкополосный и равномерный по всей полосе частот) с уровнем минус 90 децибел, примерно соответствующий по уровню шумам квантования. Теперь, если преобразовать эту сместь сигнала и "белого" шума в 16 бит (возможны только целые значения - 0, 1, -1, ...), то окажется, что какая-то часть сигнала осталась. Там, где исходный сигнал имел больший уровень, больше единиц, где меньший - нулей.

    Для экспериментальной проверки изложенного выше способа можно воспользоваться звуковым редактором Cool Edit (или любым другим, поддерживающим 32 битный формат). Чтобы услышать то, что получится, следует усилить сигнал на 14 бит (на 78 дБ).

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

    Более сложный способ - shaped dithering , заключается в том, что раз мы всё равно не слышим высоких частот в очень тихих звуках, значит, следует основную мощность шума направить в эти частоты, при этом можно даже воспользоваться шумом более высокого уровня - я воспользуюсь уровнем в 4 младших разряда (два бита в 16 битном сигнале). Полученную смесь 32 битного сигнала и шума преобразуем в 16 битный сигнал, отфильтровываем верхние частоты (которые реально не воспринимаются человеком на слух) и повышаем уровень сигнала, чтобы можно было оценить результат.

    Это уже вполне хорошая (для запредельно низкой громкости) передача звука, шумы примерно равняются по мощности самому звуку с исходным уровнем минус 110 децибел! Важное замечание: мы повысили реальные шумы дискретизации с половины младшего разряда (-93 дБ) до четырёх младших разрядов (-84 дБ), понизив слышимые шумы дискретизации с -93 дБ до примерно -110 дБ. Отношение сигнал/шум ухудшилось , но шум ушел в высокочастотную область и перестал быть слышимым, что дало существенное улучшение реального (воспринимаемого человеком) отношения сигнал/шум.

    (Иными словами, поскольку мощность шума как бы "размазана" по частотному диапазону, то не пропуская верхние частоты, мы отбираем у него часть мощности, в результате чего во временном представлении сигналов улучшается соотношение сигнал/шум. - Прим. сост.)

    Практически это уже уровень шумов дискретизации 20 битного звука. Единственное условие этой технологии - наличие частот для шума. 44.1 кГц звук даёт возможность размещать шум в неслышимых на тихой громкости частотах 10-20 кГц. А вот если оцифровывать в 96 кГц - частотная область для шума (неслышимая человеком) будет настолько велика, что при использовании shaped dithering 16 бит реально превращаются и во все 24.

    [На заметку: PC Speaker - однобитное устройство, с однако довольно высокой максимальной частотой дискретизации (включения/выключения этого единственного бита). С помощью процесса, сходного по сути с dithering-ом, называемым скорее широтно-импульсная модуляция, на нём игрался довольно качественный цифровой звук - из одного бита и высокой частоты дискретизации вытягивались 5-8 бит низкой частоты, а фильтром высокочастотного шума выступала неспособность аппаратуры воспроизводить столь высокие частоты, как впрочем и наша неспособность их слышать. Лёгкий высокочастотный свист, однако - слышимая часть этого шума - был слышен.]

    Таким образом, shaped dithering позволяет существенно понизить и без того низкие шумы дискретизации 16 битного звука, спокойно расширив таким образом полезный (бесшумный) динамический диапазон на всю область человеческого слуха. Поскольку сейчас уже всегда при переводе из рабочего формата 32 бит в конечный 16 бит для CD используется shaped dithering - наши 16 бит совершенно достаточны для полной передачи звуковой картины.

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

    Q:
    Почему говорят, что 32-х битный звук качественнее 16 битного?
    A1: Ошибаются.
    A2: [Имеют в виду немного другое: при обработке или записи звука нужно использовать большее разрешение. Этим пользуются всегда . Но в звуке как в готовой продукции разрешение более 16 бит не требуется.]
    Q: Имеет ли смысл увеличивать частоту дискретизации (например до 48 кГц или до 96)?
    A1: Не имеет. При хоть сколь грамотном подходе в конструировании ЦАП 44 кГц передают весь необходимый частотный диапазон.
    A2: [Имеют в виду немного другое: это имеет смысл, но лишь при обработке или записи звука.]
    Q: Почему всё же идет внедрение больших частот и битности?
    A1: Прогрессу важно двигаться. Куда и зачем - уже не столь важно...
    A2: Многие процессы в этом случае происходят легче. Если, например, устройство собирается обработать звук - ему будет легче это сделать в 96 кГц / 32 бита. Почти все DSP используют 32 бита для обработки звука, и возможность забыть про преобразования - облегчение разработки и всё же небольшое увеличение качества. Да и вообще - звук для дальнейшей обработки имеет смысл хранить в большем разрешении, нежели 16 бит. Для hi-end устройств которые лишь воспроизводят звук это абсолютно безразлично.
    Q: 32х или 24х или даже 18 битные ЦАП лучше чем 16 битные?
    A: В общем случае - нет . Качество преобразования нисколько не зависит от битности. В AC"97 кодеке (современная звуковая карта до $50) используется 18 битный кодек, а в картах за $500, звук которых с этой ерундой даже сравнивать нельзя - 16 битный. Это не имеет абсолютно никакого значения для воспроизведения 16 битного звука .
    Стоит также иметь в виду, что большинство ЦАПов обычно реально воспроизводят меньше бит, чем берутся. Например, реальный уровень шумов типичного дешевого кодека составляет -90 дБ, что составляет 15 бит, и даже если он сам 24х битный - вы не получите никакой отдачи от "лишних" 9 бит - результат их работы, даже если он имелся, потонет в их же собственном шуме. Большинство же дешевых устройств просто игнорируют дополнительные биты - они просто реально не идут в расчет в их процессе синтеза звука, хотя и поступают на цифровой вход ЦАПа.
    Q: А для записи?
    A: Для записи - лучше иметь АЦП большей разрядности. Опять же, большей реальной разрядности. Разрядность ЦАПа должна соответствовать уровню шумов исходной фонограммы, или просто быть достаточной для достижения желаемо низкого уровня шума .
    Также удобно бывает иметь разрядность с запасом, чтобы использовать повышенный динамический диапазон для менее точной регулировки уровня записи. Но помните - вы должны всегда попадать в реальный диапазон кодека. В реальности 32х битный АЦП, к примеру, почти полностью бессмысленнен , так как младший десяток бит будут просто непрерывно шуметь - настолько малого шума (под -200 дБ) просто не бывает в аналоговом музыкальном источнике.

    Требовать от звука повышенной разрядности или частоты дискретизации, по сравнению с CD, лучшего качества - не стоит. 16 бит / 44 кГц, доведённые до предела с помощью shaped dithering, вполне способны полностью передать интересующую нас информацию, если дело не идет о процессе звукообработки. Не стоит тратить место на лишние данные готового материала, также как не стоит ожидать повышенного качества звука от DVD-Audio с его 96 кГц / 24 бит. При грамотном подходе при создании звука в формате стандартного CD мы будем иметь качество, которое просто не нуждается в дальнейшем улучшении, а ответственность за правильную звукозапись конечных данных давно взяли на себя разработанные алгоритмы и люди, умеющие правильно их использовать. В последние несколько лет вы уже не найдете нового диска без shaped dithering и других приемов доведения качества звукопередачи до предела. Да, ленивым или просто криворуким будет удобнее давать готовый материал в 32х битах и 96 кГц, но по идее - стоит ли это в несколько раз больших аудио данных?..

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

    Форматы: каким бывает цифровой звук

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

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

    Немного теории

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

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

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

    Еще немного теории. Человеческое ухо воспринимает в большинстве случаев звук с частотой не выше 22000 Гц, и для того чтобы его полностью описать в цифровом виде, требуется частота дискретизации не менее 44,1 кГц. Так как абсолютно точно определить значение сигнала в определенный момент времени невозможно, то при оцифровке происходит квантование, то есть замена реальных значений сигнала приближенными. Чем больше уровней квантования звука, тем точнее описывается уровень сигнала. В итоге каждый стандартный компакт-диск несет на себе звуковой сигнал с частотой дискретизации в те самые 44,1 кГц и уровнем квантования в 16 бит, а в некоторых устройствах производится дискретизация с частотой 48 кГц.

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

    Оцифровка, или Туда и обратно

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

    Рис. 1. Осциллограмма звука

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

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

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

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

    Дискретизация

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

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

    Уровень сигнала

    Для начала стоит сразу понять, что когда речь идёт о цифровом сигнале, то можно говорить только об относительном уровне сигнала. Абсолютный зависит в первую очередь от воспроизводящей аппаратуры и прямо пропорционален относительному. При расчётах относительных уровней сигнала принято использовать децибелы . При этом за точку отсчёта берётся сигнал с максимально возможной амплитудой при заданной глубине дискретизации. Этот уровень указывается как 0 dBFS (dB - децибел, FS = Full Scale - полная шкала). Более низкие уровни сигнала указываются как -1 dBFS, -2 dBFS и т.д. Вполне очевидно, что более высоких уровней просто не бывает (мы изначально берём максимально возможный уровень).

    Поначалу бывает тяжело разобраться с тем, как соотносятся децибелы и реальный уровень сигнала. На самом деле всё просто. Каждые ~6 dB (точнее 20 log(2) ~ 6.02 dB) указывают на изменение уровня сигнала в два раза. То есть, когда мы говорим о сигнале с уровнем -12 dBFS, понимаем, что это сигнал, уровень которого в четыре раза меньше максимального, а -18 dBFS - в восемь, и так далее. Если посмотреть на определение децибела, в нём указывается значение - тогда откуда берётся 20? Всё дело в том, что децибел - это логарифм отношения двух одноимённых энергетических величин, умноженный на 10. Амплитуда же не является энергетической величиной, следовательно её нужно перевести в подходящую величину. Мощность, которую переносят волны с разными амплитудами, пропорциональна квадрату амплитуды. Следовательно для амплитуды (если все прочие условия, кроме амплитуды принять неизменными) формулу можно записать как

    N.B. Стоит упомянуть, что логарифм в данном случае берётся десятичный, в то время как большинство библиотек под функцией с названием log подразумевает натуральный логарифм.

    При различной глубине дискретизации уровень сигнала по этой шкале изменяться не будет. Сигнал с уровнем -6 dBFS останется сигналом с уровнем -6 dBFS. Но всё же одна характеристика изменится - динамический диапазон. Динамический диапазон сигнала - это разница между его минимальным и максимальным значением. Он рассчитывается по формуле , где n - глубина дискретизации (для грубых оценок можно пользоваться более простой формулой: n * 6). Для 16 бит это ~96.33 dB, для 24 бит ~144.49 dB. Это означает, что самый большой перепад уровня, который можно описать с 24-битной глубиной дискретизации (144.49 dB), на 48.16 dB больше, чем самый большой перепад уровня с 16-битной глубиной (96.33 dB). Плюс к тому - шум дробления при 24 битах на 48 dB тише.

    Восприятие

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

    Громкость

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

    Математика

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

    // Минимальное значение громкости - на этом уровне идёт отключение звука var EPSILON = 0.001; // Коэффициент для преобразований в dBFS и обратно var DBFS_COEF = 20 / Math.log(10); // По положению на шкале вычисляет громкость var volumeToExponent = function(value) { var volume = Math.pow(EPSILON, 1 - value); return volume > EPSILON ? volume: 0; }; // По значению громкости вычисляет положение на шкале var volumeFromExponent = function(volume) { return 1 - Math.log(Math.max(volume, EPSILON)) / Math.log(EPSILON); }; // Перевод значения громкости в dBFS var volumeToDBFS = function(volume) { return Math.log(volume) * DBFS_COEF; }; // Перевод значения dBFS в громкость var volumeFromDBFS = function(dbfs) { return Math.exp(dbfs / DBFS_COEF); }

    Цифровая обработка

    Теперь вернёмся к тому, что мы имеем цифровой, а не аналоговый сигнал. У цифрового сигнала есть две особенности, которые стоит учитывать при работе с громкостью:
    • точность, с которой указывается уровень сигнала, ограничена (причём достаточно сильно. 16 бит - это в 2 раза меньше, чем используется для стандартного числа с плавающей точкой);
    • у сигнала есть верхняя граница уровня, за которую он не может выйти.

    Из того, что уровень сигнала имеет ограничение точности, следует две вещи:

    • уровень шумов дробления возрастает при увеличении громкости. Для малых изменений обычно это не очень критично, так как изначальный уровень шума значительно тише ощутимого, и его можно безопасно поднимать в 4-8 раз (например, применять эквалайзер с ограничением шкалы в ±12dB);
    • не стоит сначала сильно понижать уровень сигнала, а затем сильно его повышать - при этом могут появиться новые шумы дробления, которых изначально не было.

    Из того, что сигнал имеет верхнее ограничение уровня, следует, что нельзя безопасно увеличивать громкость выше единицы. При этом пики, которые окажутся выше границы, будут «срезаны» и произойдёт потеря данных.

    На практике всё это означает, что стандартные для Audio-CD параметры дискретизации (16 бит, 44,1 кГц) не позволяют производить качественную обработку звука, потому что имеют очень малую избыточность. Для этих целей лучше использовать более избыточные форматы. Однако стоит учитывать, что общий размер файла пропорционален параметрам дискретизации, поэтому выдача таких файлов для он-лайн воспроизведения - не лучшая идея.

    Измерение громкости

    Для того чтобы сравнивать громкость двух разных сигналов, её для начала нужно как-то измерить. Существует по меньшей мере три метрики для измерения громкости сигналов - максимальное пиковое значение, усреднённое значение уровня сигнала и метрика ReplayGain.

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

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

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

    Нормализация громкости

    Если мы можем измерять громкость различных записей, мы можем её нормализовать. Идея нормализации состоит в том, чтобы привести разные звуки к одинаковому уровню воспринимаемой громкости. Для этого используется несколько различных подходов. Как правило, громкость стараются максимизировать, но это не всегда возможно из-за ограничений максимального уровня сигнала. Поэтому обычно берётся некоторое значение немного меньше максимума (например -14 dBFS), к которому пытаются привести все сигналы.

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

    Также внутреннюю нормализацию порой производят, чтобы повысить общую громкость треков. Это называется нормализацией с компрессией. При этом подходе среднее значение уровня сигнала максимизируется за счёт усиления всего сигнала на заданную величину. Те участки, которые должны были быть подвергнуты «обрезанию», из-за превышения максимального уровня усиливаются на меньшую величину, позволяя избежать этого. Этот способ увеличения громкости значительно снижает качество звучания трека, но, тем не менее, многие звукозаписывающие студии не брезгуют его применять.

    Фильтрация

    Я не стану описывать совсем все аудио-фильтры, ограничусь только стандартными, которые присутствуют в Web Audio API. Самым простым и распространённым из них является биквадратный фильтр (BiquadFilterNode) - это активный фильтр второго порядка с бесконечной импульсной характеристикой , который может воспроизводить достаточно большое количество эффектов. Принцип работы этого фильтра основан на использовании двух буферов, каждый с двумя отсчётами. Один буфер содержит два последних отсчёта во входном сигнале, другой - два последних отсчёта в выходном сигнале. Результирующее значение получается с помощью суммирования пяти значений: текущего отсчёта и отсчётов из обоих буферов перемноженных на заранее вычисленные коэффициенты. Коэффициенты данного фильтра задаются не напрямую, а вычисляются из параметров частоты, добротности (Q) и усиления.

    Все графики ниже отображают диапазон частот от 20 Гц до 20000 Гц. Горизонтальная ось отображает частоту, по ней применяется логарифмический масштаб, вертикальная - магнитуду (жёлтый график) от 0 до 2, или фазовый сдвиг (зелёный график) от -Pi до Pi. Частота всех фильтров (632 Гц) отмечена красной чертой на графике.

    Lowpass



    Рис. 8. Фильтр lowpass.

    Пропускает только частоты ниже заданной частоты. Фильтр задаётся частотой и добротностью.

    Highpass



    Рис. 9. Фильтр highpass.

    Действует аналогично lowpass, за исключением того, что он пропускает частоты выше заданной, а не ниже.

    Bandpass



    Рис. 10. Фильтр bandpass.

    Этот фильтр более избирателен - он пропускает только определённую полосу частот.

    Notch



    Рис. 11. Фильтр notch.

    Является противоположностью bandpass - пропускает все частоты вне заданной полосы. Стоит, однако, отметить разность в графиках затухания воздействия и в фазовых характеристиках данных фильтров.

    Lowshelf



    Рис. 12. Фильтр lowshelf.

    Является более «умной» версией highpass - усиливает или ослабляет частоты ниже заданной, частоты выше пропускает без изменений. Фильтр задаётся частотой и усилением.

    Highshelf



    Рис. 13. Фильтр highshelf.

    Более умная версия lowpass - усиливает или ослабляет частоты выше заданной, частоты ниже пропускает без изменений.

    Peaking



    Рис. 14. Фильтр peaking.

    Это уже более «умная» версия notch - он усиливает или ослабляет частоты в заданном диапазоне и пропускает остальные частоты без изменений. Фильтр задаётся частотой, усилением и добротностью.

    Фильтр allpass



    Рис. 15. Фильтр allpass.

    Allpass отличается ото всех остальных - он не меняет амплитудные характеристики сигнала, вместо чего делает фазовый сдвиг заданных частот. Фильтр задаётся частотой и добротностью.

    Фильтр WaveShaperNode

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

    Фильтр ConvolverNode

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

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

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