ОБРАТИТЕ ВНИМАНИЕ: Статья находится в процессе доработки. На данный момент информация в этой статье актуальна для foobar2000 v0.9.6.9 - v1.0 и Windows XP SP3.
Copyright (C) 2010, Audiophile
При воспроизведении данного текста или его части ссылка на источник обязательна.
ВСТУПЛЕНИЕ.
Основным критерием качества воспроизведения
является количество искажений, которое вносится в аудиопоток при
прохождении через звуковой тракт. Искажения, в свою очередь, неизбежно
вносятся при любой обработке, так что главная для нас задача - свести к
минимуму или вообще исключить обработку звука на участке тракта, по
которому сигнал передается в цифровом виде.
Звуковой тракт в нашем случае имеет следующий вид:
1) Источник - сам звуковой файл - MP3, FLAC, OGG etc
2) Декодер
- встроен в плеер, декодирует входной поток данных, в результате чего
получаем несжатый звуковой поток в виде импульсно-кодовой модуляции, а
точнее поток в формате 32 bit floating-point PCM (с плавающей точкой).
3) Цифровые обработчики звука - DSP, эффекты etc.
- совершают дополнительную обработку звукового потока. Надо отметить,
что данную составляющую тракта надо использовать только при
необходимости, т.к. практически любая обработка звука - будь то даже
изменение громкости - непременно вносит определенные искажения
4) Плагин вывода
- данная составляющая необходима как связующее звено между плеером и
звуковой картой. Плагин вывода определяет каким образом будет
производиться вывод полученного (в результате работы всех предыдущих
звеньев) аудиопотока из плеера на звуковую карту. Часто это звено
играет решающую роль, т.к. порой позволяет обойти некоторые
некачественные участки дальнейшего тракта. Надо отметить, что на этапе
вывода поток преобразуется в формат с фиксированной точкой (глубина бит
от 8 до 32 бит - в зависимости от выбранных параметров), к чему это
может привести - будет рассмотрено далее.
5) Драйвер звуковой карты
- составляющая, которая играет не меньшую роль, чем все предыдущие - на
этом этапе также может совершаться обработка звука, но тут она
абсолютно нежелательна
6) DSP звуковой карты - это уже
аппаратная составляющая. Digital Signal Processor находится
непосредственно на звуковой карте и совершает необходимую обработку
звукового потока, а также обработку в соответствии с выставленными
настройками в микшере звуковой карты (все действия, которые производит
данный блок зависят от выставленных настроек звуковой карты и от самой
модели звуковой карты)
7) ЦАП - Цифро-Аналоговый
Преобразователь. Производит преобразование полученных цифровых
аудиоданных в аналоговый вид для дальнейшего усиления и подачи на
аналоговый выход звуковой карты (с него - на наушники или внешний
усилитель).
ЧАСТЬ 1. Настройка программного плеера foobar2000
Теперь рассмотрим первые четыре составляющие тракта - источник и компоненты относящиеся к плееру.
1. Источник
Бесспорно,
это звено является основой. Если изначально запись некачественная, нет
большого смысла тратить усилия на настройку остального тракта.
Источники можно подразделить на два типа:
Lossless
(wav, flac, wv, ape, tak, tta, ofr etc.) - аудио закодированное без
потерь (при декодировании полученный аудиопоток в точности
соответствует тому что кодировали в Lossless - аналогично распаковке
файлов из архива ZIP)
Lossy (mp3, ogg, aac, mpc
etc.) - аудио сжатое с потерями. При кодировании происходят необратимые
потери некоторой части информации (а именно, вырезается та часть
звуковых данных, которую человек не воспринимает или же почти не
воспринимает).
Если в первом случае проблемы качественного
воспроизведения сводятся к минимуму, то во втором случае для наиболее
качественного воспроизведения необходимо принять определенные меры, о
которых будет написано дальше.
2. Декодер.
С данным
компонентом (а точнее, с компонентами, декодер под каждый формат -
свой) у foobar2000 проблем нет - декодеры постоянно обновляются,
мельчайшие ошибки быстро исправляются, о качестве не стоит и говорить.
3. Цифровые обработчики звука
Это
звено в плеере можно подразделить на два пункта: ReplayGain и DSP.
Также сюда входит регулятор громкости и конвертер битовой глубины, но о
них будет сказано позже.
3.1 ReplayGain
Прежде всего нужно отметить, что любой lossy аудио-файл не содержит
цифрового аудиопотока как такового. Он содержит его описание с помощью
различных функций и т.д., по которым можно восстановить примерную форму
исходной волны (что и делают декодеры lossy форматов). И вот,
при декодировании возникает один нюанс: т.к. кодирование происходит с
потерями (повторюсь: данные в lossy аудио-файле позволяют восстановить
только примерную форму исходной волны), уровень семплов на выходе имеет
уровень отличный от того что был на входе - вплоть до того что
некоторые участки звуковой волны могут выходить за максимальный уровень
- 0dB (если Вы включите в Foobar2000
View->Visualizations->Peakmeter, сами сможете увидеть текущий
уровень). Чаще всего это бывает когда уровень закодированной записи был
высоким и пик записи находился на максимальном уровне - 0dB - или же
близко к нему, практически всегда такие записи после кодирования в
lossy и последующего декодирования имеют участки выходящие за 0dB.
Далее должен указать на еще один факт. Декодер foobar2000 работает в
формате с плавающей точкой, что позволяет ему обрабатывать и описывать
волну не только в пределах 0dB (значения уровня в таком случае могут
быть от 0 до 1) но и за ними (значения выше 1). Проблема же состоит в
следующем. После того как сигнал передается плеером на вывод, он
автоматически преобразовывается в формат с фиксированной точкой, что
равносильно потере всего что лежит выше максимального уровня, все
семплы, имеющие значения выше 0dB (в формате с плавающей точкой они
имели значение больше 1) - приравниваются к уровню 0dB (в формате с
плавающей точкой это было бы аналогично их приравниванию к единице). И
что же мы получаем? Все участки волны выходящие за максимальный уровень
"обрезаются", в следствии чего, вместо синусоиды например мы получим
что-то похожее на прямоугольные импульсы (если "верхушки" синусоиды
окажутся выше 0dB, они будут "срезаны"), а это означает что мы имеем
дополнительные нелинейные искажения (уровень искажений зависит от того,
какая часть звуковой волны выходит за максимум). Что-то схожее можно
услышать при "запирании" колонок - когда подаешь на колонки сигнал с
мощностью превышающей максимальную допустимую - диффузоры не могут
двигаться дальше максимального уровня отклонения, получаются такие же
искажения как и в нашем случае. Первое явление (с цифровым
аудиопотоком) - это софтовый клиппинг (англ. clipping - обрезание),
второе (с диффузорами) - аппаратный клиппинг (в некоторых других
случаях это явление называют "перегрузкой").
Для чего же в нашем случае нужен ReplayGain?
а)
Чтобы определить, выходит ли уровень декодированного сигнала за
допустимые пределы, а именно определить пиковый уровень записи - это
делает ReplayGain Scanner.
б) Понизить уровень трека так, чтобы
он вписывался в рамки допустимого - после того как сканер произвел
сканирование, он записывает ReplayGain теги (с информацией о пиковом
уровне), а плеер при проигрывании считывает эти теги и занижает уровень
громкости всей записи (именно всей - чтобы не менять баланс громкости
между отдельными участками) так, что пик оказывается на уровне 0 dB (в
данном случае этот уровень соответствует значению 1), а всё остальное -
конечно же, не выше этого уровня.
Настройка:
Volume - изменение громкости в плеере. Настоятельно рекомендуется максимальное значение.
Replay GainSource mode:track, если Вы хотите сохранять баланс громкости только в пределах одного трека,
album - если Вам важен баланс громкости между треками всего альбома.
Processing:Prevent clipping according to peak
- лучший в большинстве случаев вариант, при котором будет только
предотвращаться clipping (уровень, на который будет занижаться
громкость, будет рассчитываться с помощью тега track peak или album
peak - в зависимости от выбранного source mode).
Apply gain
- в этом режиме ReplayGain поможет выровнять воспринимаемую громкость
прослушиваемых Вами треков (часто воспринимаемая громкость не связана с
пиковыми уровнями, т.к. она определяется методом психоакустического
анализа); данный вариант не рекомендуется, т.к. при этом может сильно
изменяться громкость треков, что только ухудшает положение в плане
качества.
Apply gain and prevent clipping according to peak.
в результате анализа трека утилита ReplayGain может посчитать его
слишком тихим и прописать в тегах положительное значение усиления,
громкость при воспроизведении такого трек будет завышаться, в следствии
чего пики результирующего сигнала могут оказаться выше максимального
уровня. Этот режим позволяет утилите при воспроизведении анализировать
не только тег track (или album - в зависимости от source mode) gain, но
и track (album) peak и рассчитывать максимальное допустимое усиление,
чтобы предотвратить клиппинг.
Pre-amp: Дополнительное
усиление на выбор пользователя. Работает только при включенном Apply
gain (или apply gain and prevent clipping), суммируется с усилением из
тега Track (Album) gain.
Использование данной функции не рекомендуется, т.к., опять же, может негативно повлиять на качество.
With RG Info - для треков с тегами ReplayGain
Without RG info - для треков без тегов Replay Gain
3.2 DSPЭто цифровые обработчики звука, необходимы для выполнения различных преобразований звукового потока в режиме реального времени.
В
идеале любая обработка звука конечно же должна отсутствовать, но в
большинстве случаев для достижения более высокого качества приходится
использовать некоторые обработчики. В частности, DSP под названием
Resampler просто необходим при отсутствии аппаратной поддержки звуковой
картой частоты дискретизации воспроизводимого сигнала (чаще всего это
материал со звуковых компакт-дисков с частотой дискретизации 44.1кГц)
для выполнения предварительного преобразования звукового потока в вид
соответствующий аппаратным возможностям звуковой карты (чаще всего это
преобразование 44.1->48кГц).
НастройкаРассмотрим два варианта для воспроизведения материалов с частотой дискретизации 44.1кГц:
a) Ваша карта аппаратно
поддерживает данную частоту дискретизации. В этом случае для достижения
максимального качества на вкладке DSP должны отсутствовать какие-либо
включенные обработчики (первый список, слева).
б) Ваша карта аппаратно НЕ поддерживает данную частоту дискретизации. Для достижения максимального качества установите плагин SoX Resampler
и выставьте в его настройках максимальную частоту дискретизации,
которую аппаратно поддерживает Ваша звуковая карта. После плагина SoX
resampler в список активных плагинов обязательно добавьте Advanced
Limiter - этот плагин позволит предотвратить клиппинг, занижая уровни
участков звукового потока которые в результате ресемплинга сигнала
могут оказываться выше максимально допустимого уровня.


Если
у Вас второй случай и Вы выставили рекомендуемые настройки, то теперь
появится возможность максимально качественно (для этой звуковой карты
)воспроизводить не только записи 44.1 кГц, но и записи с любой другой
частотой дискретизации. В случае, если частота воспроизводимого
материала совпадет с максимальной поддерживаемой Вашей картой,
ресемплер просто отключится (за ненадобностью).
3.3 Output (вывод)Как
я уже писал, это звено цифрового аудиотракта часто является решающим.
Но должен отметить, что не всегда. На данный момент в foobar2000
существуют следующие способы вывода звука: DirectSound, Kernel
Streaming, ASIO, WASAPI (только для Vista и Windows 7, будет рассмотрен
позже, в более новых версиях статьи).
Первый выводит звук через
микшер Windows - то есть на громкость воспроизведения будет влиять
регулятор Wave в микшере Windows. Надо сказать, что в случае
использования этого вывода и некачественных драйверов звуковой карты
(это сейчас не редкость, особенно устаревшие драйвера) в аудио могут
вноситься дополнительные искажения. Искажения эти могут возникать как в
результате программной регулировки громкости регулятором Wave (что
крайне не рекомендуется!), так и в случае положения этого регулятора на
максимум , т.к. для некоторых драйверов положение регулятора Wave на
максимум в действительности не соответствует максимальному значению.
Эту
проблему решают два других плагина вывода. Оба плагина обходят
некоторые некачественные участки дальнейшего тракта, включая регулятор
Wave. Главное отличие ASIO и Kernel Streaming заключается как раз в том
что они способны выводить звук мимо микшера Windows и в некоторых
случаях избежать вышеописанных проблем с качеством. Отличие ASIO в том
что данный интерфейс ориентирован на минимизацию задержки (латентности
вывода), что на качество воспроизведения никоим образом не влияет. К
тому же различные драйвера ASIO могут иметь свои ошибки, а потому для
достижения наиболее точного вывода рекомендуется использовать именно
Kernel Streaming.
ОБРАТИТЕ ВНИМАНИЕ: для многих
современных звуковых карт с нормальными драйверами, результаты для всех
выводов при регуляторе Wave на максимум (имеет значение только для
DirectSound) совпадают. А при поддержке 24-битного (и выше) вывода
вообще можно обойтись одним DirectSound, даже в случае когда уровень
Wave нельзя выставить на максимум - качество будет таким же, как и при
выводе через KS. Чтобы окончательно развеять Ваши сомнения, рекомендую
к прочтению статью foobar2000: Kernel Streaming против DirectSound.
Настройка:
И так, тут всё просто. Устанавливаем плагин
Kernel Streaming, запускаем foobar2000 и на странице вывода выбираем:
Output Device: KS: <Ваша звуковая карта> - для вывода звука будет использоваться плагин Kernel Streaming, звук будет выводиться на указанную звуковую карту.
Buffer Length:
регулировка буфера плеера. Чем меньше значение - тем быстрее (считая от
момента включения/изменения) будут вступать в силу изменения громкости,
включение плагинов и т.д. На качество вывода данная опция не влияет,
изменять стандартное значение не рекомендуется.
Output format / Postprocessing
Output data format: установите максимальную разрядность, аппаратно поддерживаемую Вашей звуковой картой.
Dither: включение dither + noise shaping. Данная функция может быть полезна только при выполнении одного из следующих условий:
а)
Если Ваша звуковая карта аппаратно НЕ поддерживает разрядность звука
выше 16 бит и Вы используете одну из функций: ReplayGain, DSP, Volume
Control (регулятор громкости в foobar2000).
б) Ваша звуковая
карта аппаратно НЕ поддерживает разрядность звука выше 16 бит и Вы
воспроизводите в foobar2000 материал с разрядностью более 16 бит.
Во всех остальных случаях (например в случае, если Ваша звуковая карта аппаратно поддерживает разрядность звука выше 16 бит) включение данной функции только ухудшит качество.
ЧАСТЬ 2. Настройка звуковой карты
Так
как звуковых карт огромное множество, в этой части даются только общие
рекомендации или же рекомендации по настройке с помощью стандартных
средств Windows.
1. Настройка средствами Windows
Чтобы начать настройку, Вам необходимо перейти в Панель управления
Windows->(Звук, речь и аудиоустройства->)->Звуки и
аудиоустройства.
Рис. 1.
Громкость следует установить в максимальное положение, регулировку
уровня громкости производить аналоговым методом (например, ручкой на
усилителе). По окончании настройки нажать на кнопку "Дополнительно" в
графе "Громкость микшера".
Рис. 2.1.
Все источники, кроме Wave (его надо установить на максимум) и Play
Control конечно же, следует отключить. Wave тоже можно отключить, если
Вы не используете в плеере вывод через DirectSound, при этом все
остальные звуки, в том числе системные, не будут слышны. Предварительно
необходимо перейти в "Свойства" и включить отображение всех источников:
Рис. 2.2. Тут Вы должны включить отображение всех источников воспроизведения для настраиваемого устройства.
Рис. 3.
Данное окно вызывается с помощью кнопки "Дополнительно" в графе
"Настройка динамиков" окна изображенного на рис. 1. Здесь Вы должны
выбрать Вашу конфигурацию динамиков. Далее переходим на вторую вкладку.
Рис. 4.
Тут оба регулятора следует выставить в максимальное положение.
Естественно, подразумевается, что никаких неполадок с воспроизведением
звука (чаще всего это может происходить в играх) у Вас не возникает.
Если же неполадки есть, подберите наибольшие положения регуляторов, при
которых неполадки исчезнут. В таком случае, стоит отметить, что данные
настройки не влияют на воспроизведение с использованием Kernel
Streaming и ASIO, из этого следует, что если Вам пришлось установить
один из регуляторов в более низкое положение, для качественного вывода
звука в плеере необходимо использовать один из этих плагинов вывода.
По завершении настроек в каждом окне следует нажимать кнопку "Ок".
2. Настройка звуковой карты (рекомендации)На
этом этапе принцип настройки не отличается от предыдущих: необходимо
обеспечить достоверную передачу цифрового аудиопотока без внесения в
него каких-либо изменений (в идеале - до самого цифро-аналогового
преобразователя). Рекомендации по настройке состоят в следующем:
а) Все эффекты/эквалайзеры и т.п. должны быть
выключены.
По возможности следует включить режим "Bit-Matched Playback" (для карт
Creative эта опция может находиться в Creative Audio Console или же
Console Launcher).
б) Для большинства карт есть возможность
выбора опорной частоты дискретизации (Master Sampling Rate) - ее
следует установить равной частоте дискретизации воспроизводимого
материала или же частоте установленной в ресемплере foobar2000. Там же
может быть настройка глубины квантования (Bit Depth) - ее следует
выставить на максимум.
в) Все регуляторы громкости влияющие на громкость воспроизведения следует устанавливать в положение
максимум.
ЧАСТЬ 3. Рекомендации по воспроизведению аудиоматериала
Для получения наилучшего результата, перед воспроизведением трека рекомендуется выполнить следующие действия.
Для lossy:1.
Выделите трек(и) в библиотеке или плейлисте foobar2000, нажмите на
выделенном правую кнопку мыши и выберите из раскрывшегося списка
Utils->Verify Integrity. Произведется сканирование трека(ов) на
наличие ошибок. При наличии ошибок в файлах формата MP3 foobar2000
может их исправить. Если Вы увидите ошибку вроде "Reported length is
inaccurate...", выделите треки для которых отобразилась данная ошибка,
нажмите правую кнопку и выберите Utils->Fix VBR MP3 Header, после
обработки проверьте трек еще раз, ошибка должна отсутствовать.
Если
при проверке Вы наблюдаете ошибку вида "MPEG Stream error...", её можно
исправить с помощью опции Utils->Rebuild MP3 Stream. После
выполнения операции исправления ошибки не забывайте повторно проверять
треки.
2. Выделите треки, нажмите на выделении правой кнопкой
и выберите ReplayGain->Scan Per-File Track Gain, если выделены треки
из разных альбомов или альбомы в тегах не указаны, Scan Selection As
Single Album - если выделены треки одного альбома и Scan As Albums (by
tags) - если выделены несколько альбомов. Также можно использовать
опцию Scan As Albums (by folders), если теги альбомов не прописаны но
треки каждого альбома находятся в отдельной папке. После сканирования
Вы увидите информацию о рассчитанных пиках и значениях усиления для
каждого альбома/трека (в зависимости от выбранного типа сканирования),
нажмите кнопку "Update File Tags" чтобы записать теги ReplayGain в файл.
Для lossless:В
случае с этим типом источника выполнение каких-либо действий для
достижения максимального качества не требуется. Вы также можете
проверить материал на ошибки с помощью функции Utils->Verify
Integrity, но вероятность ошибок для lossless меньше, тем более, в
случае их наличия, исправить их средствами foobar2000 возможности нет
(по крайней мере, таким же образом как в случае с MP3). Функцию
ReplayGain в случае c lossless использовать не рекомендуется, т.к.
клиппинга (в том виде, в котором мы его обычно имеем в случае lossy) в
lossless источниках быть не может, а использование функции "Apply Gain"
не рекомендуется потому как данная обработка может только ухудшить
качество.
За помощь в "поисках истины" огромное спасибо участникам форумов foobar2000.org, websound.ru, hydrogenaudio.org
Смотрите также:
Настройка X-Fi XtremeAudio PCI @ Win XP SP3