Audiophile's Blog
Логин:Пароль:


Забыл пароль | Регистрация (убрать всю рекламу)
О сайте | Ликбез | Словарь | Audiophile's Testroom | Поддержать | Контакты
Разделы
Поиск по сайту
Популярное
Персональная настройка
Настройка звука онлайн (foobar2000, драйвера, Windows), создание персональных сборок foobar2000.

Контакты

Случайный опрос
Какой программный плеер вы используете для прослушивания музыки?
Всего ответов: 5008
Полезный софт
Opera QIP 2010 Download Master µTorrent
Ace Utilities AIDA64 SpeedFan 7-Zip
ESET NOD32 FileZilla Media Player Classic Home Cinema Paint.NET
Sony Sound Forge VirtualDub Unlocker Punto Switcher
Похожие проекты
Сейчас на сайте
Онлайн всего: 22
Гостей: 22
Пользователей: 0
» »

foobar2000: Kernel Streaming против DirectSound


18 Сентября 2009, 00:47

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

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

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

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

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

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

Окно RMAA

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

Установленные компоненты foobar2000

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

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

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

Ошибка, выдаваемая foobar'ом

Поэтому для Kernel Streaming тестовый файл пришлось воспроизводить через устройство Juli@ Ch1234.

Kernel Streaming 16-bit
foobar2000 KS 16-bit

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

DirectWARE для Juli@ Ch12

DirectWARE для Juli@ Ch1234

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

DirectSound 16-bit
foobar2000 DS 16-bit

DirectSound 16-bit Dither
foobar2000 DS 16-bit Dither

DirectSound 24-bit
foobar2000 DS 24-bit

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

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

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

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

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

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

ТестDirectSound 16Kernel Streaming 16
Динамический диапазон, дБ (А):97.897.8
Гармонические искажения, %:0.00040.0004
Интермодуляционные искажения + шум, %:0.00350.0035

Динамический диапазон
Динамический диапазон, DirectSound 16-bit output и Kernel Streaming 16-bit output

Нелинейные искажения + шум (при уровне -3 дБ)
Нелинейные искажения + шум, DirectSound 16-bit output и Kernel Streaming 16-bit output

Интермодуляционные искажения
Интермодуляционные искажения, DirectSound 16-bit output и Kernel Streaming 16-bit output

Цифры и графики абсолютно идентичны. Kernel Streaming никаких преимуществ перед DirectSound не показал.

Тест второй. DirectSound 16-bit output vs DirectSound 16-bit output + Dither.

ТестDirectSound 16DirectSound 16 Dither
Динамический диапазон, дБ (А):97.883.4
Гармонические искажения, %:0.00040.0038
Интермодуляционные искажения + шум, %:0.00350.040

Динамический диапазон
Динамический диапазон, DirectSound 16-bit output и DirectSound 16-bit output + Dither

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

Интермодуляционные искажения
Интермодуляционные искажения, DirectSound 16-bit output и DirectSound 16-bit output + Dither

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

Тест третий. DirectSound 16-bit output vs DirectSound 24-bit output.

ТестDirectSound 16DirectSound 24
Динамический диапазон, дБ (А):97.897.8
Гармонические искажения, %:0.00040.0004
Интермодуляционные искажения + шум, %:0.00350.0035

Динамический диапазон
Динамический диапазон, DirectSound 16-bit и 24-bit output

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

Интермодуляционные искажения
Интермодуляционные искажения, DirectSound 16-bit output и DirectSound 16-bit и 24-bit output

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

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

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

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

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

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

Тестирование, продолжение

Тест четвёртый. DirectSound 16-bit output vs Kernel Streaming 16-bit output, -2dB.

ТестDirectSound 16Kernel Streaming 16
Динамический диапазон, дБ (А):95.897.8
Гармонические искажения, %:0.00080.0004
Интермодуляционные искажения + шум, %:0.00440.0035

Динамический диапазон
Динамический диапазон, DirectSound 16-bit output и Kernel Streaming 16-bit output

Нелинейные искажения + шум (при уровне -3 дБ)
Нелинейные искажения + шум, DirectSound 16-bit output и Kernel Streaming 16-bit output

Интермодуляционные искажения
Интермодуляционные искажения, DirectSound 16-bit output и Kernel Streaming 16-bit output

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

Тест пятый. DirectSound 16-bit output vs DirectSound 16-bit output + Dither, -2dB.

ТестDirectSound 16DirectSound 16 Dither
Динамический диапазон, дБ (А):95.883.3
Гармонические искажения, %:0.00080.0040
Интермодуляционные искажения + шум, %:0.00440.040

Динамический диапазон
Динамический диапазон, DirectSound 16-bit output и DirectSound 16-bit output + Dither

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

Интермодуляционные искажения
Интермодуляционные искажения, DirectSound 16-bit output и DirectSound 16-bit output + Dither

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

Тест шестой. DirectSound 16-bit output vs DirectSound 24-bit output, -2dB.

ТестDirectSound 16DirectSound 24
Динамический диапазон, дБ (А):95.897.8
Гармонические искажения, %:0.00080.0004
Интермодуляционные искажения + шум, %:0.00440.0035

Динамический диапазон
Динамический диапазон, DirectSound 16-bit и 24-bit output

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

Интермодуляционные искажения
Интермодуляционные искажения, DirectSound 16-bit output и DirectSound 16-bit и 24-bit output

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

Интермодуляционные искажения, DirectSound 16-bit output и DirectSound 16-bit и 24-bit output, увеличенный фрагмент

Выводы

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

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

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

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

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

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

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

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

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

И напоследок цитата с сайта foobar2000, что думают сами авторы проигрывателя о качестве воспроизведения:

Q: Does foobar2000 sound better than other players?

A: No. Most of "sound quality differences" people "hear" are placebo effect (at least with real music), as actual differences in produced sound data are below their noise floor (1 or 2 last bits in 16bit samples). foobar2000 has sound processing features such as software resampling or 24bit output on new high-end soundcards, but most of the other mainstream players are capable of doing the same by now.

Автор: Павел Селиванов
Источник: http://spvd.ru

 
   
Категория: Программное обеспечение | Добавил: Audiophile ()
Просмотров: 28207 | Рейтинг: 5.0/5, голосов: 1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Авторские статьи
Сообщество
Последнее на форуме
Кодеки
TAK FLAC APE WV
MPC OGG AAC/ALAC MP3
WMA TTA OFR LA
Теги
Follow me
Twitter YouTube
Google+ Facebook
Полезные ссылки
Copyright Taras Kovrijenko © 2009–2017