| ДонНТУ | Портал магистров ДонНТУ | Автобиография | Реферат | Библиотека | Ссылки | Отчет о поиске |

Магистр ДонНТУ Шеремет Андрей Геннадиевич

Email: a_g_sheremet@mail.ru

Цифровой звук. Кодирование цифрового звука

Чем определяется качество аудиосигнала?

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

Что такое AC’97, HDA?

     AC’97 и HDA (High Definition Audio) — предложенные Intel стандарты для аудиокодеков. AC’97 был представлен в 1997 году и затем неоднократно улучшался, однако в конце концов морально устарел и сегодня заменен HDA. HDA имеет полную совместимость с AC’97, обладает улучшенными характеристиками и расширенными возможностями.

В чем различие между AC’97 и HDA?

    AC’97 определяет максимальную разрядность аудиокодека в 16 бит при частоте дискретизации 48 кГц, HDA — 32 бит/192 кГц. Кроме того, HDA-устройства поддерживают восьмиканальный звук (7.1), формат DVD-аудио, технологии объемного звучания Dolby и имеют другие дополнительные возможности.

Что такое частота дискретизации и разрядность кодека?

    Дискретизация — это получение в процессе оцифровки мгновенных значений (выборок) аналогового сигнала с определенным временным шагом. Частота этого шага и называется частотой дискретизации (она же частота выборки или сэмплирования). Чем она больше, тем качественнее будет записываемый и воспроизводимый звук. В студийном оборудовании принята частота 48 кГц, в домашних системах — 44,1 кГц.
    Разрядность определяет качество записанного аудио. Выше — лучше. Значение разрядности, например 32, обозначает количество битов, которые выделяются для записи амплитуды сигнала в момент его измерения.
    Соответственно, чем чаще (частота дискретизации) и точнее (разрядность) измеряется аудиосигнал, тем более качественный аудиофайл получается.

Что такое отношение сигнал/шум?

    Отношение чистого аудиосигнала к шуму, создаваемому самим устройством. Чем значение выше (в дБ), тем лучше. У звуковой карты Sound Blaster X-Fi значение сигнал/шум — 118 дБ. У большинства аудиокодеков — 80-95 дБ.

Что такое ЦАП и АЦП?

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

Сравнение HDA и AC’97

Параметр    HDA   AC’97   Преимущества HDA   
Частота дискретизации, кГц    6-192   48/96   Увеличение частоты
позволяет повысить
качество звука.
Разрядность кодека, бит    8/16/20/24/32   16/20   Повышение разрядности
позволяет повысить
качество звука.
Поддержка аудиосистем     7.1/5.1   5.1   Возможность работы с
технологиями Dolby Digital
Surround EX, DTS ES.
Полоса пропускания (битрейт), Мбит/с 48,0 по выходу, 24,0 по входу   11,5   Возможность использования большего
числа каналов в более продвинутых
форматах (до 16 каналов в одном
звуковом устройстве).
Микрофонные входы 16   2   Возможность организации домашней студии звукозаписи.
Виртуализация звуковых устройств (Многозадачность)    Несколько логических звуковых устройств Одно звуковое устройство в системе Возможна работа с несколькими
источниками звука и вывод
разных звуков на разные
выходы. Поддержка концепции
Digital Home / Digital Office.

Что такое битрейт?

    Битрейт (bitrate, буквально — скорость прохождения бит информации), определяет максимальное количество информации, которое может передаваться по аудиоканалу в единицу времени. Высокий битрейт нужен для передачи насыщенной звуковой картины и не требуется при кодировании речи. Аудиозаписи с битрейтом 128 Кбит/с подойдут для бюджетных колонок, но при доступе к дорогой аппаратуре имеет смысл обзавестись музыкой в битрейте 192-256 Кбит/с.
   Удобное решение — кодирование с переменным битрейтом, изменяет полосу пропускания аудиоканала в зависимости от качества и насыщенности музыкального фрагмента.

Как работает Plug’n’Play в HDА?

    Все звуковые входы/выходы в HDA-устройствах переназначаемы — скажем, микрофонный вход можно сделать вторым выходом для наушников и т.д. Чип кодека может автоматически определить тип подключенного к разъему устройства (функция — Universal Audio Jack) и изменить функциональное назначение этого разъема.

Зачем нужны форматы MP3, AAC, OGG, WMA и др.?

Получаемый после оцифровки звука файл имеет значительный объем. Чтобы сэкономить место на HDD, используют различные форматы сжатия. Во всех случаях аудиофайл лишают некоторых звуков — тех, которые плохо воспринимает среднестатистический человек. Формат МР3 стал неким стандартом сжатого звука, между тем используют и другие, подчас более эффективные форматы: AAC, OGG, WMA и др. Какие параметры у звука в формате DVD-аудио? Звук в формате DVD-аудио — это до шести каналов с частотой дискретизации до 192 кГц, разрядностью до 24 бит, битрейтом до 9,5 Мбит/с и очень широкой полосой воспроизводимых частот — до 96 кГц.

Кодирование цифрового звука

    Формат МР3 для высококачественного кодирования звука становится все более и более популярным. Изначально разработанный для использования в рамках стандартов компрессии видео MPEG1 и MPEG2, он очень быстро получил распространение и в виде самостоятельного формата. Основными причинами такого поворота событий стали сохранение высокого качества звука при больших степенях сжатия и более чем активные попытки фирмы-разработчика IIS Fraunhofer извлечь максимум прибыли из своего детища.

     В своей основе МР3 является прямым развитием MPEG Layer I и Layer II, и в нем также используется психоакустическая модель для кодирования исходного сигнала. Из-за этого процесс кодирования неоднозначен и может варьироваться в зависимости от использованного кодера . Эта неоднозначность означает, что, закодировав один и тот же сигнал двумя разными кодерами, мы можем получить после декодирования два различающихся по звучанию сигнала. Очевидно, что предпочтителен тот кодер, который наилучшим образом сохраняет исходный сигнал. Цель данного обзора - выяснить, какой из современных кодеров даст нам наилучший результат.

Методика тестирования

     Обычно для сравнения исходного и кодированного сигнала применяют метод сравнения их Амплитудно-Частотных Характеристик (АЧХ). Существует две разновидности этого метода: сравнение средних АЧХ сигналов и сравнение изменения АЧХ во времени. Чаще всего используется первая разновидность ввиду простоты ее реализации - сравнение необходимо производить только один раз. Однако при усреднении теряется значительная часть информации о сигнале, и как следствие при абсолютно одинаковых АЧХ исходный и кодированный сигнал могут весьма различаться в звучании, если в сигнале существуют большие по амплитуде, но весьма кратковременные всплески некоторых частот. Вторая разновидность позволяет избежать таких проблем, однако для реализации тестирования необходимо производить столь огромное количество вычислений с плавающей точкой (быстрое преобразование Фурье (БПФ) дает весьма неплохие результаты для анализа больших блоков сэмплов, однако для определения АЧХ по 10-20 сэмплам оно абсолютно неприменимо), что весь процесс тестирования займет несколько дней для минуты сигнала CD качества.

    Не так давно распространение получил метод сравнения сонограмм сигналов - графического представления АЧХ сигналов во времени, в котором по оси абсцисс откладывается время, по оси ординат частота составляющей сигнала (обычно используется логарифмическая шкала), а интенсивность свечения точек определяет амплитуду данной частотной составляющей сигнала. Этот метод по сути дела представляет собой модификацию метода сравнения изменений АЧХ во времени, а проблема нехватки производительности в нем решается посредством уменьшения количества рассматриваемых частотных составляющих и расширении «окна сканирования" АЧХ до 50-100 сэмплов, что делает возможным использование БПФ. Такое упрощение метода неизбежно приводит и к уменьшению его точности. Во-первых уменьшение количества рассматриваемых частотных составляющих приводит к потере «разрешающей способности» этого метода, делая его практически аналогичным усреднению АЧХ во времени. Во-вторых из-за расширения сканируемого окна и использования БПФ возникает эффект «размазывания» сигнала во времени. Чтобы проиллюстрировать сказанное имеет смысл привести скриншот, сделанный в звуковом редакторе GoldWave 4.16.

     Данный скриншот был получен следующим образом: был создан файл содержащий в качестве сигнала синусоиду с частотой 2 Кгц, причем ей предшествовала примерно 1 секунда «тишины». Как видно из скриншота, несмотря на то, что маркер проигрываемого в настоящий момент сэмпла еще не достиг начала синусоидального сигнала, и АЧХ и сонограмма уже (!!!) показывают наличие сигнала с максимальной интенсивностью в районе 2 КГц, причем этот сигнал явно не синусоидальный, так как его АЧХ даже отдаленно не напоминает узкий пик. Форму узкого пика (тонкой и яркой линии на сонограмме) АЧХ приобретает только через ~0,1 секунды после начала синусоидального сигнала. Тем не менее «устойчивость» этого узкого пика также находится под большим вопросом - его максимум колеблется в пределах от 500 Гц до 4 Кгц. Если учесть, что сам алгоритм сжатия МР3 также вносит в сигнал похожие артефакты из-за того, что он основан на квантовании сигнала по частотным полосам, то использование сонограмм для оценки качества кодирования явно не имеет особого смысла ввиду огромной неточности получаемого результата.

    Для избежания упомянутых выше проблем с методами, основанными на анализе АЧХ, была разработана методика тестирования, работающая по абсолютно другому принципу. Кодер МР3 фактически является «грубым» архиватором, при «распаковке» продукции которого нельзя полностью восстановить исходную информацию. При таком подходе качество кодирования можно однозначно оценить через процент сохранения информации. Таким образом, если из исходного сигнала вычесть закодированный сигнал, результат будет представлять собой именно ту часть информации, которая была потеряна в процессе кодирования. Среднее значение амплитуды этого результата и будет тем самым параметром, определяющим качество кодирования. Он был назван «средней разницей сигналов» (СРС).

    Однако, не все так хорошо в этом методе. Например, если перевернуть сигнал относительно его нулевого уровня (или просто сместить этот уровень на некоторую величину), то СРС приимет значение удвоенного среднего уровня сигнала (или значение величины смещения нулевого уровня), несмотря на то, что сигнал будет звучать идентично исходному (и иметь соответствующую АЧХ).

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

    Но, несмотря на очевидные недостатки СРС, при тестировании было решено воспользоваться обоими методами. Это решение мотивировалось повышенными требованиями к кодеру. Хотя стандарт МР3 и был изначально разработан как «дающий похожее звучание, но не идентичные сигналы» (вот что значит слова «психоакустическая модель»), максимальное сохранение всех параметров исходного сигнала все равно является первостепенной задачей кодера, ввиду их явной корреляции с похожим звучанием.

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

    В то же время невозможна ситуация, когда сигнал с СРФС близкой к нулю будет сильно отличаться в звучании от исходного. Поэтому СРС и СРФС являются избыточными характеристиками и гарантируют, что различия сигналов будут не больше некоторого уровня. Поэтому первым этапом исследований было определение максимальных значений РС и СРФС, при которых человеческое ухо еще не может заметить разницы в сигналах. Для этого к синусоидальным сигналам разных частот (от 200 Гц до 20КГц) максимальной амплитуды прибавлялся «белый» шум разного уровня. Полученные сигналы прослушивались совместно с исходными и определялись те пороговые значения уровня белогошума, при которых его не слышно за основным синусоидальным сигналом. Для такого уровня шума определялись СРС и СРФС, которые и принимались за «эталон». В случае, если кодирование сигнала дает СРС и СРФС меньшие эталонных, дальнейшее улучшение качества кодирования представляется бесполезным. Для значений СРС и СРФС больших эталонных существует вероятность слышимого отличия сигналов. Однако, из-за использования психоакустической модели эта вероятность весьма мала даже для значений СРС и СРФС, превышающих эталонные в несколько раз.

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

Инструментарий

     Для проведения исследований были использованы две программы для работы со звуком и один язык программирования. Для декодирования МР3 файлов в WAV формат применялся Winamp v.2.62 с декодером MP3 от IIS Fraunhofer (v.2.23). Такой выбор был сделан из-за того, что большинство других декодеров/проигрывателей МР3 используют специальные пост-обработки сигналов для придания им «более мягкого» звучания, в то время как для исследований качества кодирования сигнала он необходим в чистом виде без всяких пост-обработок. Затем сохраненный WAV файл с кодированным сигналом подвергался обработке в звуковом редакторе GoldWave v.4.16.. В силу особенностей стандарта МР3 кодированный сигнал содержит некоторое количество (определяемое кодером) тишины или малозаметного шума перед началом сигнала. Поэтому методом визуального сравнения исходного и кодированного сигнала находилось реальное начало звуковых данных и предшествующий ему мусор удалялся. В нескольких случаях первые несколько сотен сэмплов исходного сигнала вообще не было закодировано. Однако, для сохранения чистоты эксперимента такие ошибки кодеров решено было признать просто «неточностями» в сохранении сигнала, и, следовательно, оставить их без внимания - все равно они повлияют на СРС и СРФС.

    Для нахождения СРС и СРФС с использованием Delphi 3 были написаны две небольшие программы. Первая создавала два файла одинакового формата, один из которых содержал РС, а второй РФС. Вторая программа находила среднее значение данных для файлов формата результатов первой.

Использованные кодеры
  128 Kbit/s 160 Kbit/s 192 Kbit/s 256 Kbit/s 128 VBR 160 VBR 192 VBR
Astrid/Quartex AACEnc v.0.2 + N/A N/A N/A N/A N/A N/A
Audioactive Production Studio v.1.0.5 + - - + N/A N/A N/A
Audioactive Production Studio v.1.5.4 + + + + N/A N/A N/A
Audioactive Production Studio v.1.5.5b + + + + N/A N/A N/A
Audioactive Production Studio v.2.0.4j + + + + N/A N/A N/A
Blade Encoder DLL v.0.91 + + + + N/A N/A N/A
Blade Encoder DLL v.0.93.4 + + + + N/A N/A N/A
Fraunhofer Radium MP3 codec v.1.263 + + + + N/A N/A N/A
Freeware AAC Encoder v.0.61 + + + + N/A N/A N/A
GOGO DLL v.2.3 + - - + N/A + +
GOGO v.2.35.1 + + + + N/A + +
L3Enc v.2.61 + - - + N/A N/A N/A
Lame DLL v.3.7 - - - + N/A N/A N/A
Lame DLL v.3.83 + + + + N/A N/A N/A
Lame v.3.61 + + + + + + +
Lame v.3.84 + + + + + + +
Lame v.3.85 + + + + + + +
LQT Liquid v.4.0 + + + N/A + N/A +
Microsoft WMA V1 + + N/A N/A N/A N/A N/A
Microsoft WMA V2 + + N/A N/A N/A N/A N/A
Microsoft WMA V7 + + + N/A N/A N/A N/A
MP3 Producer v.2.1 Professional + - - + N/A N/A N/A
MP3Enc v.3.0 + - - + N/A N/A N/A
OGG Vorbis N/A N/A N/A N/A ~137 N/A N/A
PULSE MP3 Master v.2.0 + + + + N/A N/A N/A
RealAudio v.3 80 N/A N/A N/A N/A N/A N/A
SCMPX v.1.5.1 + - - + + + +
Streambox Ripper v.2.009 + - - + N/A N/A N/A
TwinVQ Encoder v.2.1.1 80 and 96 N/A N/A N/A N/A N/A N/A
VQF Yamaha SoundVQ Encoder V.2.60b1e 80 and 96 N/A N/A N/A N/A N/A N/A
XingMP3 Encoder v.1.5 + + + N/A + + +
XingMPEG Encoder v.2.20 + + + + N/A N/A N/A
(+) - исследование проводилось; (-) - исследование не проводилось; (N/A) - формат не поддерживается

Подробнее об некоторых из кодеров

Astrid/Quartex AACEnc v.0.2

    Кодер базируется на алгоритме MPEG2 Advanced-Audio-Codec (AAC), используемый при кодировании звуковых дорожек DVD фильмов. В своей основе он почти не отличается от MPEG1 Layer I/II/III, также выполняя кодирование посредством квантования АЧХ сигнала. Cпециально для AAC были разработаны методы кодирования посторонних шумов (Temporal Noise Shaping, Perceptual Noise Substitution), а также методы искусственного увеличения эффективного битрейта с помощью предсказания будущих изменений сигнала (Long Term Prediction), однако этот кодер их не поддерживает. Графическим интерфейсом этот кодер не обладает, все кодирование происходит из командной строки win32 консоли. Для декодирования применяется специальный декодер aacdec, написанный также Astrid/Quartex. Плагинов для стандартных проигрывателей музыки найти не удалось, поэтому формат AAC от Astrid/Quartex вряд ли получит широкое распространение.

Audioactive Production Studio v.1.0.5

    Основан на коде от IIS Fraunhofer, и отличается от «родного» кода только оптимизацией по скорости. Обладает незатейливым интерфейсом, который, однако весьма удобен для кодирования большого количества файлов. Из параметров кодирования можно изменить только битрейт и вид оптимизации: по скорости и по качеству. В случае неправильного значения частоты дискретизации для выбранного битрейта автоматически производится ресэмплинг. Программа способна производить как и чисто МР3 файл, так и WAV-MP3 - файл МР3, «обутый» в RIFF чанк. Одной из особенностей является поддержка специального оборудования для аппаратного кодирования звука, производимого фирмой Audioactive. Основным преимуществом этого оборудования называется «сохранение прекрасного качества при скорости кодирования в реальном времени». Однако в свете все возрастающих производительностей процессоров это преимущество сходит на нет - уже на Pentium II 266 мы можем кодировать звук в реальном времени, используя чисто «программный» кодер, что делает покупку дополнительного оборудования лишенной смысла.

Audioactive Production Studio v.1.5.4

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

Audioactive Production Studio v.1.5.5b

    Эта версия использует более новый по сравнению с 1.5.4 код от IIS Fraunhofer, что, судя по обещаниям авторов, должно обеспечить более быстрое кодирование при сохранении качества на уровне старых версий. В реальности в быстром режиме кодирования качество значительно ухудшилось, в то время как High Quality режим стал действительно незначительно качественным. Заметного ускорения при этом замечено не было, что возможно объясняется пометкой «бета». К сожалению, найти финальную версию 1.5.5 так и не удалось. Интерфейс программы остался неизменным и полностью совпадает с интерфейсом версии 1.0.5 - еще одно подтверждение его уникальности и удобности.

Lame v.3.84 & Lame v.3.85

    Эти кодеры представляют собой обновленные версии библиотек семейства Lame. Добавлена поддержка «заказного» битрейта VBR, также полностью переписан и сам код VBR кодирования. Рекомендованным декодером для Lame-кодированных файлов был объявлен mpeg123, который также был встроен в кодер. Специально проведенное отдельное тестирование показало, что отличие декодированного сигнала с помощью IIS Fraunhofer декодера от декодированного сигнала с помощью декодера mpeg123 не превышало 2 отсчета на сэмпл - максимальная разница СРС не превышает 2, а СРФС - 4, что не может внести существенных изменений в полученные результаты. Поэтому для декодирования Lame-кодированных файлов все же был использован декодер от IIS Fraunhofer.

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

Несколько полезных советов:

    Если вы точно не хотите через пять-десять лет остаться у «разбитого корыта», встав перед фактом, что горячо любимый вами формат благополучно скончался, а все накопленные за это время файлы превратились в мусор, придерживайтесь форматов на основе промышленных стандартов MPEG. На данный момент это MP3 и MPEG-4 AAC. Шансы на полное вымирание у последнего в обозримом будущем минимальны. У первого, впрочем, тоже. Несмотря на свою привлекательность, форматы Musepack и Vorbis рискуют остаться в меньшинстве уже в ближайшие годы. И если благодаря сильной поддержке open source и Linux сообществ Vorbis наверняка останется на плаву, то будущее Musepack весьма туманно.

    Несмотря на свою привлекательность, форматы Musepack и Vorbis рискуют остаться в меньшинстве уже в ближайшие годы. И если благодаря сильной поддержке open source и Linux сообществ Vorbis наверняка останется на плаву, то будущее Musepack весьма туманно.

    Не рекомендую использовать кодеры Liquid Audio и VQF и другие мало популярные кодеки, которые вы еще можете найти на каком-нибудь варезнике (или по ссылке внизу статьи). Можно, конечно, немного поиграть с их настройками и сравнить звучание с современными кодеками, только практическая польза от полученных файлов будет равна нулю: возьмите любой современный кодер и он выполнит ту же работу лучше.

http://websound.ru/soft-coders_r.htm/


    Перечень источников:


http://www.music4sale.ru/articles/theory/ - Теория


http://websound.ru/soft-coders_r.htm/ Енкодеры/Декодеры


http://rose.ixbt.com/cgi-bin/click_i.cgi?id=10873&pg=447/ - Кодирование цифрового звука


www. audiocoding - если вас интересует техническая сторона работы кодеков, обязательно загляните в раздел Wiki этого замечательного сайта. Впрочем, и помимо wiki на нем немало интересного


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


www. rarewares. org - никакого «вареза», только легальный софт. Зато найти все собранные здесь программы где-либо еще будет очень непросто: рай для фанатов LAME, FAAC, Vorbis и т.д.


www. rjamorim. com/ rrw - на одном из сайтов R. J. Amorim содержится уникальная подборка устаревших, непопулярных и малораспространенных кодеков. Наверняка это понравится всем, кто интересуется историей развития алгоритмов кодирования.



©ДонНТУ
| ДонНТУ | Портал магистров ДонНТУ | Автобиография | Реферат | Библиотека | Ссылки | Отчет о поиске |