Foobar2000 1.3.7Foobar2000 для Windowsпоследняя версия: 1.3.7, обновление от 19.02.2019

Версия для
Windows
Логотип Foobar2000
  • Автор:
    FOOBARE2000
  • Тип лицензии:
    Крякнутая
  • Языки:
    Мульти
  • ОС:
    Windows 8, 8 64-bit, 7, 7 64-bit, Vista, Vista 64-bit, XP, XP 64-bit
  • Просмотров:
    171
  • Скачано:
    68

foobar2000: DirectSound против Kernel Streaming

У многих возникают трудности при выборе программного аудиопроигрывателя. А после того, как определились с проигрывателем, начинают терзать себя сомнениями, какой интерфейс выбрать для прослушивания любимой музыки - DirectSound или Kernel Streaming, ASIO, или даже WASAPI? Сегодня я сделаю попытку сопоставить вывод звука в одном из популярнейших проигрывателей - foobar2000, с помощью таких интерфейсов как Kernel Streaming и DirectSound.

Идеей для создания этой статьи стало словоизлияние участника форума 3DNews Dimmka в ветке Некоторые вопросы качества воспроизведения программных плееров:

«Народ, я задаюсь вопросом, через какой интерфейс foobar-ом лучше выводить звук для проигрывания музыки: Kernel Streaming, Direct Sound, WASAPI, ASIO? На просторах инета встречал в основном только общие фразы (возможно я плохо искал) типа: Kernel Streaming - это супер, ASIO - ещё лучше, kmixer - отстой и так далее. Какой либо сравнивающий тест этих плагинов к foobar-у я не смог найти, может кто сталкивался?»

Для старта возьмем только интерфейсы DirectSound и Kernel Streaming и проверим на них.

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

Измерения проводились с использованием тестового пакета RіghtMark Audio Analyzer 6.2.3 PRO. Запись в RMAA выполнялась через интерфейс ASIO, 32 bit с частотой 44,1 kHz.

foobar2000: DirectSound против Kernel Streaming картинка №1

Воспроизведение проводилось плеером foobar2000, версии 0.9.6.3 с подключенным к нему плагином Kernel Streaming Output 1.2.2.

foobar2000: DirectSound против Kernel Streaming картинка №2

Foobar-ом проигрывался сгенерированный в RMAA WAV-файл 16 bit частотой 44,1 kHz. Выбиралась такая частота дискретизации и битность по причине предположения, что пока большинство музыкальных материалов в таком виде хранятся на компьютерах .

При воспроизведении вышла одна заминка. При тестировании принимала участие звуковая карта ESIJuli@, драйвер версии 1.23 (Windows XP). Драйвер звуковой карты ESI Juli@ создаёт в системе 3 виртуальных устройства вывода, это: Juli@ Ch12, Ch34 и Ch1234. Каналы 1 и 2 соответствуют аналоговому выходу, 3 и 4 цифровому, а виртуальное устройство Juli@ Ch1234 служит для одновременного вывода сигнала через цифровые и аналоговые выходы.

По началу было предположение воспроизвести тестовый файл с помощью виртуального устройства Juli@ Ch12, которое соответствует аналоговому выходу, ну а воздействие аналоговой части звуковой карты устранить с помощью функции DirectWIRE реализованной в драйвере ESI. Но в результате попытки воспроизвести через интерфейс Kernel Streaming и устройство Ch12 плеер фубар выдавал ошибку:

foobar2000: DirectSound против Kernel Streaming картинка №3

Вследствие этого для интерфейса Kernel Streaming тестовый файл понадобилось проигрывать через устройство Juli@ Ch1234.

Kernel Streaming 16-bit

foobar2000: DirectSound против Kernel Streaming картинка №4

Direct Sound в фулбаре такой проблемы не создавал, но в DirectWIRE для Ch12 и Ch1234 нужно было соединять различные интерфейсы драйвера.

DirectWARE для Juli@ Сh12

foobar2000: DirectSound против Kernel Streaming картинка №5

DirectWARE для Juli@ Сh1234

foobar2000: DirectSound против Kernel Streaming картинка №6

Дополнительный тест который был проведен, показал что отсутствует любая разница, но в результате для всех тестов было решено выбрать виртуальное устройство Juli@ Ch1234 для вывода в проигрывателе foobar2000.

DirectSound 16-bit

foobar2000: DirectSound против Kernel Streaming картинка №7

DirectSound 16-bit Dither

foobar2000: DirectSound против Kernel Streaming картинка №8

DirectSound 24-bit

foobar2000: DirectSound против Kernel Streaming картинка №9

Громкость проигрывателя была поставлена на максимум, бегунок Wave, в микшере системы, в самом верхнем положении.

foobar2000: DirectSound против Kernel Streaming картинка №10

На вопрос почему отсутствует тест для Kernel Streaming 24-bit, отвечаю. Ну, во-первых, по той причине что Kernel Streaming с включенным 24-bit Output не заработал у меня (хотя нормально заработал с 32-bit), взамен нормального звука из колонок было слышно скрежет. Ну а во-вторых, по сути не было и цели детально разъяснить разницу помеж 16 и 24-bit, а только есть ли эффект от повышения разрешения в плеере при проигрывании 16-bit материала.

В процессе всего тестирования морально поддерживал кот Зухель.

foobar2000: DirectSound против Kernel Streaming картинка №11

Тестирование

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

Тест первый. DirectSound 16-bit output против Kernel Streaming 16-bit output.

Тест

DirectSound 16

Kernel Streaming 16

Динамический диапазон, дБ (А):

97.8

97.8

Гармонические искажения, %:

0.0004

0.0004

Интермодуляционные искажения + шум, %:

0.0035

0.0035

Динамический диапазон

foobar2000: DirectSound против Kernel Streaming картинка №12

Нелинейные искажения + шум (при уровне -3 дБ)

foobar2000: DirectSound против Kernel Streaming картинка №13

Интермодуляционные искажения

foobar2000: DirectSound против Kernel Streaming картинка №14

Графики и цифры полностью идентичны. Интерфейс Kernel Streaming вообщето никаких преимуществ над DirectSound в принципе не произвел.

Тест № 2. DirectSound 16-bit output против DirectSound 16-bit output + Dither.

Тест

DirectSound 16

DirectSound 16 Dither

Динамический диапазон, дБ (А):

97.8

83.4

Гармонические искажения, %:

0.0004

0.0038

Интермодуляционные искажения + шум, %:

0.0035

0.040

Динамический диапазон

foobar2000: DirectSound против Kernel Streaming картинка №15

Нелинейные искажения + шум (при уровне -3 дБ)

foobar2000: DirectSound против Kernel Streaming картинка №16

Интермодуляционные искажения

foobar2000: DirectSound против Kernel Streaming картинка №17

На самом то деле опция Dither в плеере foobar2000 это даже не дизеринг (dithering), это нойз шейпинг (noise shaping), то есть алгоритм который более продвинутый. В теории нойз шейпинг нужен для улучшения звучания, который уводит искажения из среднечастотной области в высокочастотную область. Весь этот эффект основан на том, что, во-первых, зачастую акустика, скажем, невысокого класса имеет довольно таки сильный завал на краях слышимого диапазона, во-вторых, чувствительность нашего слуха в зависимости от частоты - довольно таки неравномерная, максимум слуха приходит на среднечастотную область, а в-третьих, искажения звука субъективно на среднем диапазоне воспринимаются намного лучше, чем искажения на высоких частотах. Но в этом тесте видно, что опция использована не к месту и общую картину, скорее всего, только ухудшает.

Тест № 3. DirectSound 16-bit output против DirectSound 24-bit output.

Тест

DirectSound 16

DirectSound 24

Динамический диапазон, дБ (А):

97.8

97.8

Гармонические искажения, %:

0.0004

0.0004

Интермодуляционные искажения + шум, %:

0.0035

0.0035

Динамический диапазон

foobar2000: DirectSound против Kernel Streaming картинка №18

Нелинейные искажения + шум (при уровне -3 дБ)

foobar2000: DirectSound против Kernel Streaming картинка №19

Интермодуляционные искажения

foobar2000: DirectSound против Kernel Streaming картинка №20

Разницы никакой. Если на сигнал не действовать никакими программными обработками, и в том числе также регулировкой громкости, включение в фубаре 24-bit вывода на изначальном 16-bit источнике, то никакого выигрыша это не даёт.

Промежуточные выводы

Судя по первой серии проводимых тестов можно сказать, что при смене в программном проигрывателе foobar-е интерфейса вывода с Direct Sound на Kernel Streaming и включение 24-bit вывода на 16-bit источнике особо никаких преимуществ нам не демонстрирует. А использование функции Dither в принципе скорее вредит.

Тогда скажите, откуда появляется столько откликов, которые гласят об улучшении качества звука от вывода его через Kernel Streaming, с включением 24 bit output или использования функций дизеринга инойз шейпинга? Также обратите Ваше внимание, для серии выше показанных тестов, уровень громкости в плеере и в микшере системы был поставлен на максимум, тоесть в 0 Дб. Отложим громкость в плеере пока в сторону (рассмотрению этого вопроса используется отдельная статья: Winamp и foobar2000, влияние программной регулировки громкости), и обратим Ваше внимание на микшер системы.

Для драйвера звуковой карты ESI Juli@, которая принимала участие в этом тестировании, максимальная позиция бегунка Wave в микшере системы равнялась нулевому изменению уровня сигнала. Но как показывает практика, такое происходит с драйверами не всех звуковых карт. Сымитируем аналогичную ситуацию, сдвинув бегунок так, чтоб уровень сигнала изменился примерно на -2 Дб (судя по показаниямRMAA) и опять повторим серию тестов.

foobar2000: DirectSound против Kernel Streaming картинка №21

Для лучего сравнения на графиках дополнительно будет присутствовать и результат DirectSound 16-bit из первой части тестирования.

Продолжение тестирования

Тест № 4. DirectSound 16-bit output против Kernel Streaming 16-bit output, -2dB.

Тест

DirectSound 16

Kernel Streaming 16

Динамический диапазон, дБ (А):

95.8

97.8

Гармонические искажения, %:

0.0008

0.0004

Интермодуляционные искажения + шум, %:

0.0044

0.0035

Динамический диапазон

foobar2000: DirectSound против Kernel Streaming картинка №22

Нелинейные искажения + шум (при уровне -3 дБ)

foobar2000: DirectSound против Kernel Streaming картинка №23

Интермодуляционные искажения

foobar2000: DirectSound против Kernel Streaming картинка №24

Голубой и зелёный графики совпали полностью. Изменение громкости в микшере на результат KernelStreaming вообще никак не влияет, потому что Kernel Streaming обходит микшер системы, а вотDirectSound нет. Поэтому результат с DirectSound стал немного хуже, но сравнивать их между собой теперь не совсем правильно, потому что уровень громкости принял изменения только для DirectSound.

Тест № 5. DirectSound 16-bit output против DirectSound 16-bit output + Dither, -2dB.

Тест

DirectSound 16

DirectSound 16 Dither

Динамический диапазон, дБ (А):

95.8

83.3

Гармонические искажения, %:

0.0008

0.0040

Интермодуляционные искажения + шум, %:

0.0044

0.040

Динамический диапазон

foobar2000: DirectSound против Kernel Streaming картинка №25

Нелинейные искажения + шум (при уровне -3 дБ)

foobar2000: DirectSound против Kernel Streaming картинка №26

Интермодуляционные искажения

foobar2000: DirectSound против Kernel Streaming картинка №27

Тут нойз шейпинг делает именно то, для чего он и предназначен. Хотя с одной стороны, судя по абсолютным цифрам видно что искажения возросли, и довольно таки значительно. Но если посмотреть с другой стороны, судя по графикам видно то, что включение опции Dither увело искажения в область высоких частот за 15 кГц. И поэтому вопрос включать или не включать, скажем так, неоднозначный, включение этой опции дает как плюсовые, так и минусовые результаты при различных сочетаниях в звуковой цепочке, также включая уши слушателя.

Тест № 6. DirectSound 16-bit output против DirectSound 24-bit output, -2dB.

Тест

DirectSound 16

DirectSound 24

Динамический диапазон, дБ (А):

95.8

97.8

Гармонические искажения, %:

0.0008

0.0004

Интермодуляционные искажения + шум, %:

0.0044

0.0035

Динамический диапазон

foobar2000: DirectSound против Kernel Streaming картинка №28

Нелинейные искажения + шум (при уровне -3 дБ)

foobar2000: DirectSound против Kernel Streaming картинка №29

Интермодуляционные искажения

foobar2000: DirectSound против Kernel Streaming картинка №30

Включение 24 bit output для DirectSound впритык приближает результаты к DirectSound 16 bit из первой серии тестов (напоминаю, про полностью совпавший с результатом Kernel Streaming). Найти отличия между голубым и зелёным графиками возможно только в некоторых местах и при большом увеличении.

foobar2000: DirectSound против Kernel Streaming картинка №31

Выводы

Тут вспоминается один старый анекдот. Как-то ехали на поезде по Шотландии четверо ученых в одном купе: математик, астроном, физик и логик. И узрели они в окно одну черную овцу.

Астроном говорит: "Посмотрите, оказывается в Шотландии все овцы черные!".

Физик говорит: "Нет, у нас есть возможность утверждать только то, что в Шотландии только некоторые овцы черным цветом.".

Математик глаголет: "Нет, мы только знаем то, что в Шотландии есть одна черная овца как минимум есть .".

Логик: "Нет, ми знаем только то, что в Шотландии как минимум есть одна овца, и она черная ну как минимум с одной стороны!".

Из выше показанных результатов тестирования возможно сделать вывод, что если есть в наличии довольно таки качественная звуковая карта с также качественным драйвером, проигрывание музыкального материала с помощью интерфейса Kernel Streaming не даст преимуществ над DirectSound, при исполнении одного условия: соответствующие бегунки микшера системы должны быть поставлены на 0 Дб — обычно, это максимальное положение ползунка. Про отключенные звуки системы и отсутствие других запущенных в данный момент воспроизводяще-записывающих программ, я думаю, Вам и так все понятно.

Если это условие является трудновыполнимым, ну например, из-за проблем с драйвером, проявляющейся в том, что верхняя позиция бегунка микшера системы не соответствует 0-му изменению уровня громкости, или используются другие утилиты, которые регулируют громкость изменением уровней в микшере (ну например, утилиты для ТВ-тюнера), тогда для проигрывания музыки лучше использовать Kernel Streaming.

Если вдруг использование Kernel Streaming показано, но по каким-нибудь причинам задействовать его у Вас не получается (например, плеер выдаёт какую то ошибку или система начинает терять стабильность), то в проигрывателе foobar2000 есть возможность добиться близких результатов, включив Output data format 24-bit для DirectSound.

Если опять не повезло, и не функционирует Kernel Streaming и не можете включить 24 бита для DirectSound, то иногда плюсовой эффект может также дать включение в foobar2000 опции "Dither".

Другие программы

    • CPU-Z для Windows 1.72CPU-Z для Windows

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

    • GPU-Z для Windows 0.8.2GPU-Z для Windows

      Предоставляет информацию о видеосистеме.

    • CrystalDiskInfo для Windows 6.2.0CrystalDiskInfo для Windows

      CrystalDiskInfo - информация о жёстком диске.

    • EVEREST Ultimate Edition для Windows 4.00.1043EVEREST Ultimate Edition...

      Диагностики и анализа компьютера.

    • Speccy для Windows 1.28.709Speccy для Windows

      Определения информации о системе и компьютере

    • System Monitor II для Windows 20.3System Monitor II для Windows

      System Monitor II показ параметров компьютера

    • Fraps для Windows 3.5.99Fraps для Windows

      Измерение частоты FPS

    • AS SSD benchmark для Windows 1.7.4739AS SSD benchmark для Windows

      AS SSD Benchmark измерит скорость SSD диска.

    • SpeedFan для Windows 4.51SpeedFan для Windows

      Контроль темпетаруты и скорости вентиляторов.

    • SIW для Windows 1.64 build 623SIW для Windows

      SIW- информация о компонентах компьютера.

    • EVEREST Home Edition для Windows 2.20 BetaEVEREST Home Edition для...

      Предназначена для диагностики.

    • PerformanceTest для Windows 8.0.1041PerformanceTest для Windows

      Тестирование всех компонентов компьютера.