Многие ругают звуковые карты фирмы Creative за то, что их штатный DSP
работает на фиксированной частоте дискретизации 48кГц. Вследствии этого
все аудиопотоки, отличающиеся по частоте дискритизации от частоты DSP,
подвергаются передискретизации (resampling) в частоту 48кГц. Все бы ничего,
но алгоритм передискретизации носит ущербный характер, поэтому в сигналы
добавляются искажения. Причем передискретизация происходит на аппаратном
уровне, поэтому что-либо изменить в алгоритме нельзя. Но есть другой выход -
использовать программный ресемплер.
Здесь я рассмотрю два программных ресемплера-плагина для популярного
проигрывателя WinAmp и выясню на что они способны. Стандартные плагины,
как правило, входящие (загружаемые) в состав WinAmp называются out_ds.dll и
out_wave.dll. Плагины-ресемплеры соответственно out_ds_ssrc.dll и out_wave_ssrc.dll.
Все плагины [92,2кБ] можно скачать
здесь.
Измерения проводились методом Loopback. Драйвера аудиокарты - kX версии
3538i.
В плагинах вывода WinAmp устанавливалось - Device: kX Wave SB0350 [ff40] 4/5;
Resampling: 48000Hz, 24bit; остальное по умолчанию.
Проигрывались 16 битные стандартизованные сигналы, сгенерированные в
CoolEdit Pro 2.0. Все это записывалось на АЦП саундкарты в режиме HQ
(192kHz/16bit) с помощью SpectraLab 4.32.17. Причем SpectraLab откровенно
говорил, что карта (Audigy 2ZS) не поддерживает потоки 24bit, поэтому и были
использованы 16 битные сигналы.
Настройки в kX Mixer:
- Вкладка Мастер: Мастер Уровень - 100%, PCM - 100%, P16V - I2S 1;
- Вкладка Запись: Мастер Уровень Записи - 100%;
- Вкладка AC97-кодек: LineIn - 0dB, включаем "Режим рутинга AC97<->I2S";
- Все остальное в микшере выключить!;
- Из эффектов отключаем Reverb Lite, так как он создает паразитные шумы.
"Обстановка" при измерениях:
карта установлена в нижний PCI слот материнки CUCL2-C. В AGP слоте стоит ASUS
GeForce 4MX (128Mb). Память PCI133-512Mb, процессор Celeron 633MHz→745MHz.
Все это старье запитано от блока питания Procom LC-235ATX. Все электроприборы
(радиотелефон, сотовый, модем, БП ЛДС, телевизор и т.п.), создающие паразитные
наводки, отключены.
На всех графиках:
- Красным - плагин out_ds.dll
- Желтым - плагин out_ds_ssrc.dll
- Зеленым - плагин out_wave.dll
- Бирюзовым - плагин out_wave_ssrc.dll
• Результаты измерений
THD 1kHz плагины out_ds.dll и out_ds_ssrc.dll.
|
THD 1kHz плагины out_wave.dll и out_wave_ssrc.dll.
|
THD 10kHz плагины out_ds.dll и out_ds_ssrc.dll.
|
THD 10kHz плагины out_wave.dll и out_wave_ssrc.dll.
|
IMD плагины out_ds.dll и out_ds_ssrc.dll.
|
IMD плагины out_wave.dll и out_wave_ssrc.dll.
|
• Сводная таблица результатов измерений
Сразу замечу, что в каждой ячейке таблицы приведено по два значения -
верхнее для левого канала, нижнее - для правого:
Параметр ↓ / Плагин → |
out_ds.dll |
out_ds_ssrc.dll |
out_wave.dll |
out_wave_ssrc.dll |
Гармонические искажения на 1кГц, %: |
0,00411 0,00361 |
0,00396 0,00350 |
0,00418 0,00370 |
0,00410 0,00366 |
Сигнал/шум (SNR), dB: |
86,67 87,57 |
89,11 90,74 |
86,61 87,27 |
88,94 90,19 |
Пиковый уровень, dB: |
-3,88 -3,86 |
-3,88 -3,87 |
-3,88 -3,86 |
-3,88 -3,87 |
Гармонические искажения на 10кГц, %: |
0,01093 0,01078 |
0,01024 0,00989 |
0,01101 0,01081 |
0,01081 0,01044 |
Сигнал/шум (SNR), dB: |
43,25 43,25 |
78,08 78,27 |
43,25 43,24 |
77,76 77,98 |
Пиковый уровень, dB: |
-3,94 -3,91 |
-3,95 -3,92 |
-3,94 -3,91 |
-3,95 -3,92 |
Интермодуляционные искажения, %: |
0,0065 0,0069 |
0,0064 0,0068 |
0,0064 0,0068 |
0,0063 0,0067 |
Как видно из сводной таблицы, существенно ничего не изменяется. Правда
плагин out_ds_ssrc.dll по искажениям более предпочтителен, хотя при детальном
рассмотрении графика гармонических искажений на 10кГц он проигрывает
плагину out_wave_ssrc.dll из-за более высокого уровня (больше на 5-10dB)
некоторых гармоник (см. рисунок ниже). В остальном же эти плагины
идентичны друг другу, даже по степени загрузки ЦПУ (30-35%).
Я отдаю предпочтение out_ds_ssrc.dll, поскольку
он имеет более обширные настройки и удобные конфигурации регулировки
громкости. В частности, мне очень нравиться Hybrid Volume Control.
THD 10kHz плагины out_ds_ssrc.dll и out_wave_ssrc.dll.
|
• Вывод аудиопотока через Wave HQ
Теперь разберемся, что же получается, если выводить аудиопоток через Wave
HQ. Посмотрите на следующие графики:
THD 1kHz плагины out_ds.dll и out_ds_ssrc.dll выход HQ.
|
THD 1kHz плагины out_wave.dll и out_wave_ssrc.dll выход HQ.
|
Видим, что с обычными плагинами происходит некорректная передискретизация
сигнала из 44,1кГц в 48кГц это видно по наличию четных, нечетных и
комбинационных высших гармоник. С плагинами-ресемплерами ситуация кардинально
изменяется, но за полосой пропускания, неизвестно откуда, возникают гармоники с
уровнем -45dB. Как следствие, увеличивается THD и уменьшается SNR:
Параметр ↓ / Плагин → |
out_ds.dll |
out_ds_ssrc.dll |
out_wave.dll |
out_wave_ssrc.dll |
Гармонические искажения на 1кГц, %: |
0,00608 0,00576 |
0,826 0,832 |
0,00609 0,00579 |
0,717 0,721 |
Сигнал/шум (SNR), dB: |
85,66 86,16 |
41,65 41,59 |
85,70 86,20 |
42,89 42,84 |
Пиковый уровень, dB: |
-3,57 -3,56 |
-3,93 -3,92 |
-3,57 -3,56 |
-3,93 -3,92 |
Остальные графики и результаты я не привожу, поскольку на них та же
неудовлетворительная картина, что и на графиках выше. Таким образом,
подтвердилось мнение, что выход HQ не поддерживает аудиопотоки с частотой
дискретизации 44,1кГц.
Для себя я сделал вывод, что музыку необходимо выводить только через
стандартные выходы карты, а программные ресемплеры использовать лишь
в том случае, если имеется очень качественный усилитель и акустические
системы, позволяющие расслышать улучшения, вносимые ресемплерами.
• Ссылки по теме
- kX project - официальный сайт проекта kX;
- Сайт технической поддержки проекта kX;
- Русскоязычный форум сайта проекта kX;
- Измерения Audigy 2ZS в RMAA 5.5 - обсуждение на форуме сайта техподдержки проекта kX.
Последнее обновление 01.01.2006
|