Тестирование методов вывода звука. Перезагрузка.
Рубрики: Информация | 26.11.2016
Методика тестирования
С помощью программы RightMark Audio Analyzer (RMAA) генерируем 2 тестовых файла: 44.1 кГц / 16 бит и 192 кГц / 24 бит. Тестовый сигнал в файлах представляет из себя синусоиду частотой 1 кГц и амплитудой -3 дБ: это тест на величину гармонических искажений. Другие виды искажений, амплитудно-частотная характеристика (АЧХ), динамический диапазон (ДД) так же исследовались, но публиковать результаты их измерения нет смысла, т.к. график АЧХ всегда представлял из себя прямую линию, а все искажения были на уровне гармонических. Далее эти файлы будем воспроизводить в плеере, меняя настройки вывода. Звук снимаем с микрофонного входа карты: в виртуальной карте вход напрямую связан с выходом, минуя преобразование в аналоговый сигнал. Таким образом, мы сможем анализировать тот самый цифровой поток, который в реальной карте отправляется на вход цифро-аналогового преобразователя.
Тест 1: плеер и ОС 192 кГц / 24 бит
Рис. 1. Гармонические искажения методов вывода звука (24 бит)
Здесь всё просто и понятно: графики всех сигналов совпали до пикселя, это идеальный случай, когда метод вывода звука никак не влияет на его качество.
Тест 2: плеер и ОС 44.1 кГц / 16 бит
Рис. 2. Гармонические искажения методов вывода звука (16 бит)
Примечание к картинке: графики ASIO и WASAPI Exclusive полностью совпали с исходным сигналом.
В этом режиме не всё так просто, как в предыдущем. ASIO и WASAPI Exclusive показали 100% точность вывода звука. А вот методы вывода DirectSound и WASAPI (Shared Mode) имеют некий «шум», который на первый взгляд должен портить звучание. Что же это за шум? Ошибка разработчиков, или это было сделано специально? Ответ прост: шум этот, не что иное, как дизеринг. Кратко: дизеринг — это шум минимальной амплитуды, который обычно «подмешивается» к сигналу при понижении глубины дискретизации («битности») записи. Зачем добавлять какой-то шум в сигнал? Давайте узнаем.
Тест 3: плеер 192 кГц / 24 бит, ОС 192 кГц / 16 бит
Примечание: на практике чаще всего используется преобразование записи 192 кГц / 24 бит в 44.1 кГц / 16 битили 48 кГц / 16 бит: это нужно для карт, которые не поддерживают вывод с более высокими параметрами. Но в данном тесте, чтобы исключить влияние передискретизации, мы будем выводить запись 192 кГц / 24 бит, настроив в звуковой карте 192 кГц / 16 бит. Для этого в AIMP настраивается выход DirectSound 192 кГц, 32(float) бит. 32 бита с плавающей точкой — это та величина, с которой работает звуковой движок AIMP, таким образом сам плеер не будет делать никаких преобразований. Всё, что произойдёт с сигналом, будет «делом рук» ОС. График для сравнения получим с помощью звукового редактора, просто пересохранив файл с уменьшением глубины дискретизации до 16 бит (опцию дизеринга в редакторе, естественно, отключаем).
Рис. 3. Гармонические искажения методов вывода звука (16 бит) при обработке 24 битного источника
Из графика видно, насколько большие искажения получились при простом преобразовании сигнала. А вот сигнал, прошедший «обработку шумом» в недрах DirectSound или WASAPI, напротив, намного «чище». В этом и есть смысл подмешивания шума при выходе 16 бит.
Выводы
Итак, какой же метод вывода звука выбрать?
- Если вам важно слышать кроме музыки другие звуки вашего компьютера (уведомления от мессенджеров, звуки игры и т.д.), то нужно использовать WASAPI (Shared Mode) или DirectSound. Эти методы так же можно порекомендовать при воспроизведении 24 битных записей на звуковых картах, не поддерживающих эту разрядность: для этого настраиваем в ОС формат 16 бит. Что касается разницы между WASAPI (Shared Mode)и DirectSound — то она минимальна: вносимые шумы дизеринга на одном уровне. Режим DirectSound«перекочевал» из старых ОС для совместимости со старыми программами.
- Поклонники вывода звука «как есть» могут воспользоваться режимами ASIO или WASAPI Exclusive, которые будут глушить все посторонние звуки компьютера, позволяя полностью погрузиться в звучание композиции. Что касается отличий между режимами Event и Push, то разница между ними исключительно техническая, но не звуковая. Отличие состоит в алгоритме буферизации: режим Event предназначен для лучшей совместимости с USB картами, режим Push для остальных случаев. Но исходя из опыта использования, обычно, один из этих алгоритмов работает нестабильно, и это не зависит от интерфейса звуковой карты: в таком случае остаётся выбрать более стабильный режим.
- Ну и самый оптимальный вариант, если звуковая карта поддерживает 24 битный режим, — в этом случае любой метод вывода даст идеальный звук: просто не забываем настроить 24 бит в плеере и ОС.