Тестирование методов вывода звука. Перезагрузка.

Предыдущая статья, посвящённая исследованию методов вывода звука, была опубликована более 3-х лет назад, с тех пор мир немного шагнул вперёд: появились новые операционные системы (ОС) Windows 8, 8.1, 10, AIMP научился выводить звук через WASAPI Exclusive, кроме того, формат High-resolution Audio 192 кГц / 24 бит стал набирать популярность среди обывателей, благодаря появлению более доступных устройств с его поддержкой. Настало время повторить исследования с учётом этих изменений.

Список подопытных

  • ASIO (ASIO4ALL)
  • DirectSound
  • WASAPI (Shared Mode)
  • WASAPI Exclusive (Event)
  • WASAPI Exclusive (Push)

Конфигурация

  • Плеер: AIMP v4.00, build 1678
  • ОС: Windows 10 x64
  • Звуковая карта: Virtual Audio Cable
    Виртуальная звуковая карта позволяет исключить особенности железа и реализации драйверов к нему
  • Звуковой редактор Audacity
    С помощью этого редактора записывался звук
  • Настройки плеера и ОС: 44.1 кГц / 16 бит, 192 кГц / 24 бит, громкость 100%, обработчики звука, эквалайзер и другие эффекты выключены

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

С помощью программы RightMark Audio Analyzer (RMAA) генерируем 2 тестовых файла: 44.1 кГц / 16 бит и 192 кГц / 24 бит. Тестовый сигнал в файлах представляет из себя синусоиду частотой 1 кГц и амплитудой -3 дБ: это тест на величину гармонических искажений. Другие виды искажений, амплитудно-частотная характеристика (АЧХ), динамический диапазон (ДД) так же исследовались, но публиковать результаты их измерения нет смысла, т.к. график АЧХ всегда представлял из себя прямую линию, а все искажения были на уровне гармонических. Далее эти файлы будем воспроизводить в плеере, меняя настройки вывода. Звук снимаем с микрофонного входа карты: в виртуальной карте вход напрямую связан с выходом, минуя преобразование в аналоговый сигнал. Таким образом, мы сможем анализировать тот самый цифровой поток, который в реальной карте отправляется на вход цифро-аналогового преобразователя.

Тест 1:  плеер и ОС 192 кГц / 24 бит

Гармонические искажения методов вывода звука (24 бит)

Рис. 1. Гармонические искажения методов вывода звука (24 бит)

Здесь всё просто и понятно: графики всех сигналов совпали до пикселя, это идеальный случай, когда метод вывода звука никак не влияет на его качество.

Тест 2: плеер и ОС 44.1 кГц / 16 бит

Гармонические искажения методов вывода звука (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 бит (опцию дизеринга в редакторе, естественно, отключаем).

Гармонические искажения методов вывода звука (16 бит) при обработке 24 битного источника

Рис. 3. Гармонические искажения методов вывода звука (16 бит) при обработке 24 битного источника

Из графика видно, насколько большие искажения получились при простом преобразовании сигнала. А вот сигнал, прошедший «обработку шумом» в недрах DirectSound или WASAPI, напротив, намного «чище». В этом и есть смысл подмешивания шума при выходе 16 бит.

Выводы

Итак, какой же метод вывода звука выбрать?

  1. Если вам важно слышать кроме музыки другие звуки вашего компьютера (уведомления от мессенджеров, звуки игры и т.д.), то нужно использовать WASAPI (Shared Mode) или DirectSound. Эти методы так же можно порекомендовать при воспроизведении 24 битных записей на звуковых картах, не поддерживающих эту разрядность: для этого настраиваем в ОС формат 16 бит. Что касается разницы между WASAPI (Shared Mode) и DirectSound — то она минимальна: вносимые шумы дизеринга на одном уровне. Режим DirectSound «перекочевал» из старых ОС для совместимости со старыми программами.
  2. Поклонники вывода звука «как есть» могут воспользоваться режимами ASIO или WASAPI Exclusive, которые будут глушить все посторонние звуки компьютера, позволяя полностью погрузиться в звучание композиции. Что касается отличий между режимами Event и Push, то разница между ними исключительно техническая, но не звуковая. Отличие состоит в алгоритме буферизации: режим Event предназначен для лучшей совместимости с USB картами, режим Push для остальных случаев. Но исходя из опыта использования, обычно, один из этих алгоритмов работает нестабильно, и это не зависит от интерфейса звуковой карты: в таком случае остаётся выбрать более стабильный режим.
  3. Ну и самый оптимальный вариант, если звуковая карта поддерживает 24 битный режим, — в этом случае любой метод вывода даст идеальный звук: просто не забываем настроить 24 бит в плеере и ОС.

Тестирование методов вывода звука. Перезагрузка.: 8 комментариев

  1. 8246793

    просто не забываем настроить 24 бит в плеере и ОС…
    То есть в Windows в настройках вывода звука (колонки) переключаю на 24 bit 44Khz а в Aimp 4 ставлю вывод через Direct Sound и ставлю в его параметрах 24 bit или 24 bit (i32) ??… или в плеере оставить 32 bit ?? или включить Wasapi Shared mode но там даже нельзя переключать битность..она всегда на 32 стоит.

  2. Ruslan91

    Здесь и в самом плеере сказано что при выборе режима ASIO что посторонние приложения не могут выводить звук. Но почему у меня при прослушивании музыки в этом режиме я могу прослушивать звук и в других программах? Карта: Audigy 2zs

    1. Soolo Автор записи

      Это происходит от того, что у вашей карты так называемый псевдо-ASIO, который реализован через одно место и только лишь для «галочки», ради наклейки на коробке. Никакой реальной пользы от него нет и быть не может.

  3. LSN124

    Soolo, спасибо Вам большое за нужные статьи!
    У меня вопрос. Windows 7 32 bit, AIMP 3.60 build 1503, режим WASAPI Exclusive (event), сигнал по USB кабелю идёт с ноутбука на внешний ЦАП (Arcam rDAC) — при такой конфигурации и настройке я должен получить на входе в ЦАП точную битовую копию проигрываемого файла (т.е., насколько я понял, сигнал никак не меняется). Тогда почему при изменении громкости в AIMP’е меняется громкость звучания? Значит всё-таки система вмешивается и меняет сигнал (в данном случае его громкость)? Просто я считал, что если сигнал «чистый», т.е. 1 в 1 совпадает с исходным файлом, то не должно быть возможности его изменять каким бы то ни было способом.

    1. Soolo Автор записи

      «Просто я считал, что если сигнал «чистый», т.е. 1 в 1 совпадает с исходным файлом, то не должно быть возможности его изменять каким бы то ни было способом.»
      Нет, с чего вы взяли, что не должно быть возможности? Побитовая точность вовсе не означает полное отсутствие фильтров на пути сигнала. Сигнал может пройти любой фильтр (например, громкость) 1в1, если фильтр настроен так, что не меняет сигнал (к примеру, громкость 100%): что получено на входе — то отправляется на выход.

  4. LSN124

    Понятно. У меня ещё вопросик. Один из режимов в настройках AIMP, в котором вы проводили тест, был 192 кГц / 24 бит. У меня выставлено значение 96 кГц / 24 бит (максимально возможные характеристики ЦАПа при воспроизведении через кабель USB). Что же тогда происходит при воспроизведении файла с частотой и битовой глубиной, отличной от установленной в настройках? Например, в моём случае, при воспроизведении файла 44,1 кГц / 16 бит или 192 кГц / 24 бит AIMP постоянно конвертирует значение в 96 кГц / 24 бит? Т.е. в первом случае интерполяция с 44,1 кГц / 16 бит до 96 кГц / 24 бит, во втором случае понижение с 192 кГц до 96 кГц. Я правильно понял или ошибаюсь?

Добавить комментарий