Видео ролики бесплатно онлайн

Смотреть 365 видео

Официальный сайт moscowout 24/7/365

Смотреть видео бесплатно

Audiophile's Software

foobar2000: Kernel Streaming против DirectSound

Дата обновления: 18 Сентября 2009
2009-09-18T00:47
Audiophile's Software

Многие задаются вопросом выбора программного аудиоплеера. А определившись с плеером, начинают терзаться сомнениями, какому интерфейсу отдать предпочтение для прослушивания музыки - 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 16 Kernel Streaming 16
Динамический диапазон, дБ (А): 97.8 97.8
Гармонические искажения, %: 0.0004 0.0004
Интермодуляционные искажения + шум, %: 0.0035 0.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 16 DirectSound 16 Dither
Динамический диапазон, дБ (А): 97.8 83.4
Гармонические искажения, %: 0.0004 0.0038
Интермодуляционные искажения + шум, %: 0.0035 0.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 16 DirectSound 24
Динамический диапазон, дБ (А): 97.8 97.8
Гармонические искажения, %: 0.0004 0.0004
Интермодуляционные искажения + шум, %: 0.0035 0.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 16 Kernel Streaming 16
Динамический диапазон, дБ (А): 95.8 97.8
Гармонические искажения, %: 0.0008 0.0004
Интермодуляционные искажения + шум, %: 0.0044 0.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 16 DirectSound 16 Dither
Динамический диапазон, дБ (А): 95.8 83.3
Гармонические искажения, %: 0.0008 0.0040
Интермодуляционные искажения + шум, %: 0.0044 0.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 16 DirectSound 24
Динамический диапазон, дБ (А): 95.8 97.8
Гармонические искажения, %: 0.0008 0.0004
Интермодуляционные искажения + шум, %: 0.0044 0.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

 
  Tweet  
Категория: Программное обеспечение | Автор: | Добавил: Audiophile
Просмотров: 35783| Рейтинг: 5.0/5, голосов: 1
Комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]

Смотреть видео 365 онлайн


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн