Audiophile's Software

О формате SACD/DSD. Описание технологии, воспроизведение, конвертирование

Дата обновления: 18 Сентября 2017
2017-09-18T13:16
Audiophile's Software


В качестве продолжения цикла статей об экзотических алгоритмах кодирования и носителях аудиоданных (уже можно почитать про DVD-Audio, HDCD и DTS/DTS-CD) хочу рассказать о таком интересном стандарте, как SACD.

1. SACD диски. Формат DSD

Super Audio Compact Disc — как и Audio CD — результат сотрудничества компаний Sony и Philips. Разработка стандарта была завершена в 1999 году — через 17 лет после выхода Red Book (CDDA).

SACD представляет собой оптический диск с высокой плотностью данных, по физическим размерам и объёму данных соответствующий диску DVD. Также у DVD и SACD совпадает длина волны считывающего лазера — 650 нм против 780 у CDDA (именно увеличение частоты позволило увеличить плотность питов и, как следствие, объём носителя). Одной из отличительных особенностей SACD является использование золота в качестве отражающего слоя (вместо алюминия). Это увеличивает отражающую способность, долговечность дисков, но также обуславливает их высокую стоимость.

Особый интерес представляет собой содержимое диска — данные в формате Direct Stream Digital. DSD — это однобитный поток с очень высокой частотой дискретизации: стандартные файлы DSD64 имеют частоту семлирования 2822,4 кГц (в 64 раза больше частоты для CDDA). По сути это тот самый поток, который получается на выходе сигма-дельта АЦП.

Особенностью сигма-дельта АЦП является кодирование не абсолютного значения уровня сигнала в конкретный момент времени, а его приращения.



Схема сигма-дельта АЦП

На выходе этого АЦП мы получаем нули и единицы, следующие с очень высокой частотой. Причем уровень сигнала пропорционален сумме закодированных за единицу времени приращений (1 означает «+1», а 0 — «-1»).

Подробнее об алгоритме работы данного АЦП можно почитать здесь. Вкратце — такой способ квантования позволяет получить широкий динамический диапазон (около 120 дБ) и очень низкий уровень шумов в слышимом диапазоне частот — за счет формовки шума (noise shaping) они вытесняются в сверхзвуковую область и могут быть легко отфильтрованы. Также, благодаря многократному превышению частоты Найквиста, такой способ помогает избежать фазовых задержек в области верхней граничной частоты (однако степень влияния этого фактора на качество звучания точно не установлено) и уменьшить влияние джиттера.

Итак, главным преимуществом SACD является отсутствие необходимости в так называемой децимации — понижении частоты дискретизации — ведь в действительности это промежуточное преобразование происходит в случае со всеми остальными форматами аудио, использующими PCM (CDDA, DVD-A). Т. е. при оцифровке студийной записи на выходе АЦП мы фактически получаем DSD поток, затем его приходится преобразовывать в PCM с повышенной разрядностью, но более низкой частотой дискретизации, что уже представляет собой алгоритм с потерями. И — что самое интересное — при воспроизведении, непосредственно перед цифро-аналоговым преобразованием (а, как известно, в аудиотехнике используется именно дельта-сигма ЦАП), частоту дискретизации всё равно придется повышать, выполняя преобразование в тот самый 1-битный DSD формат, в котором данные были сняты с АЦП.

Таким образом SACD позволяет хранить аудио в «первозданном» виде, и в таком же виде подавать их при воспроизведении на ЦАП. Отсутствие промежуточной децимации упрощает схемотехнику устройств и позволяет добиться более высоких показателей качества.

Примечание: к сожалению, ко всему вышесказанному нужно добавить большую «ложку дёгтя»: во многих случаях на студиях звукозаписи для мастеринга записей всё же используется промежуточное преобразование в PCM. Несмотря на то, что в 2000 году был разработан формат DSDIFF (расширение файлов *.dff), предназначенный для записи, редактирования и мастеринга аудио непосредственно в DSD представлении, его возможности весьма ограничены, и на многих студиях для сведения и мастеринга используется формат Digital eXtreme Definition. DXD по сути представляет собой стандартизированный PCM аудио с очень высокой частотой — 352.8 или 384 кГц и разрядностью 24 или 32 бит. Этот формат был придуман и использовался для мастеринга записей с высоким разрешением на студиях звукозаписи Pyramix (Merging Technologies), производивших SACD. Таким образом, для большинства SACD и DSD дисков исходником является именно DXD.

Существуют различные вариации стандартов SACD/DSD — с разной степенью оверсемплинга. Они обозначаются цифрой, равной отношению частоты дискретизации DSD к частоте дискретизации CDDA (44.1 kHz). SACD использует формат DSD64 (2822.4 kHz/ 44.1 kHz = 64), также разработаны и новые спецификации DSD128, DSD256 и DSD512, дополнительно увеличивающие частоту в 2, 4 и 8 раз. Таким образом мы получаем максимальную частоту 22579,2 кГц для DSD512, однако найти такие записи очень сложно, и далеко не все DSD-ЦАП их поддерживают. Кроме того, есть разрешения DSD, базирующиеся на частоте 48 кГц: например, 48kHz based DSD128 будет иметь частоту не 2822.4, а 3072 кГц, и т. д.

SACD поддерживает конфигурацию каналов 2.0 и 5.1, причем на одном SACD могут содержаться две дорожки — стерео и многоканальная. Многоканальная дорожка обязательно представляется в сжатом виде (сжатие без потерь; для стерео — опционально), так называемом DST формате (Direct Stream Transfer), который обеспечивает сжатие в 2—3 раза.

Так же, как и DVD, SACD бывают одно- и двухслойные. На однослойных SACD может содержаться CDDA слой для обратной совместимости с проигрывателями без поддержки технологии SACD (такие диски называются гибридными).

2. Защита SACD от копирования. Распространение аудио в формате DSD

Все SACD диски обладают специальной защитой (на физическом уровне), которая позволяет считывать SACD слой только лицензированным производителем устройствам, которые оснащены специальным ключом. Тем не менее, в интернете можно найти раздачи SACD рипов. Снятие рипов выполняется с помощью PlayStation 3 (или подходящего проигрывателя со специальной прошивкой) и специальной программы SACD Ripper для ПК. Рип представляет собой так называемый SACD-R образ (как правило в формате ISO). Этот образ можно записать (тем же ImgBurn, например) на DVD диск и далее слушать на стационарном SACD проигрывателе.

Таким образом мы видим, что технология SACD не включает в себя ничего принципиально нового — по сути это поток данных с АЦП, записанный на носитель вроде DVD. Весомое различие между SACD и DVD диском (кроме защиты от копирования) заключается лишь в размере сектора — 2064 вместо 2048 байт. Похоже, что этот трюк был придуман в коммерческих целях, и во многом именно поэтому ни один оптический привод для ПК не читает SACD диски.

Кроме SACD дисков DSD аудио также может распространяться и в виде файлов, в том числе записанных на так называемый DSD disc. Спецификация была разработана Sony и представляет собой DVD или Blue-ray носитель с файлами формата DSF (DSD Storage Facility), содержащими стерео звук. Многоканальное аудио стандартном не поддерживается, хотя формат DSF открытый и вполне может содержать многоканальное аудио, которое будут читать программные плееры (например, foobar2000). Минусом Sony DSF, как контейнера для хранения DSD, является отсутствие поддержки DST сжатия. Для поддержки DST сжатия следует использовать более сложный контейнер Philips DSDIFF, о котором было сказано ранее.

3. Как воспроизвести SACD?

Воспроизвести SACD диск на приводе ПК, как я уже сказал, невозможно, поэтому далее я буду рассматривать исключительно воспроизведение образов (SACD-R, DSD-Disc).

3.1 Воспроизведение на устройствах с поддержкой DSD

Если Вы счастливый обладатель звуковой карты / ЦАП с поддержкой DSD, поздравляю — вы сможете успешно воспользоваться преимуществами Super Audio CD. Как настроить правильный вывод DSD — я расскажу ниже.

3.1.1 Native DSD и DoP

Существует два варианта доставки DSD потока на ЦАП: native («родной») DSD и DoP (DSD over PCM). В первом варианте поток поступает на карту именно в том виде, о котором шла речь выше — с очень высокой частотой дискретизации и разрядностью 1 бит. Второй же вариант был разработан для совместимости с существующими PCM-транспортами (чтобы не сочинять новые алгоритмы передачи, а использовать уже имеющиеся для PCM) и представляет собой простое мультиплексирование высокочастотного 1-битного потока в 24-битный PCM с более низкой частотой, в котором старшие 16 бит содержат фрагмент DSD потока, а младшие 8 — специальный DoP-маркер, служебную информацию, говорящую, что данные являются не обычным PCM, а упакованным DSD потоком. Так, для передачи стандартного DSD64 с частотой 2822.4 кГц используется PCM формата 24 бит 176.4 кГц, который легко можно передать по USB, S/P-DIF и другим привычным интерфейсам. С повышением частоты DSD, соответственно, повышается и частота PCM-носителя. Так как поддержка PCM с частотой 705,6 кГц весьма скудная, то проигрывание DSD256 через DoP уже, как правило, не представляется возможным. Также нужно отметить, что процесс мультиплексирования/демультиплексирования самый что ни на есть простой и не предполагает никаких потерь информации/качества. Приведу пример в десятичной системе: представьте, что у вас есть значения 2, 5, 3, 6, 9, 0 и т. д., и вы называете их своему товарищу по-очереди — это обычная передача. Теперь представьте, что Вы условились читать имеющиеся значения «пачками», трехзначными числами — 253, 690 и т. д. — а товарищ будет по-прежнему записывать цифры по отдельности — это и есть мультиплексирование/демультиплексирование. Более чем просто, не правда ли?

3.1.2 Настройка foobar2000

Если по какой-либо причине вы не сможете сами разобраться с настройкой вывода DSD — не проблема — я могу вам в этом помочь. Свяжитесь со мной, чтобы заказать индивидуальную настройку foobar2000/звуковой карты/компьютера.

Итак, приступим к настройке воспроизведения. Наш инструментарий для воспроизведения SACD образов (имеющих формат ISO) включает в себя последние версии foobar2000 с плагинами SACD Decoder, DSD Processor и ASIO-драйвером DSD Transcoder (скачать можно там же, одним архивом с foo_input_sacd), а также ASIO-драйвер ASIO Proxy, который может нам понадобиться вместо DSD Transcoder в некоторых случаях.

Теперь нужно определиться, что мы имеем в плане оборудования. В моём распоряжении на данный момент находится USB-ЦАП iFI nano iDSD. Итак, смотрим в спецификацию и видим, что наше устройство поддерживает PCM вплоть до 384 кГц и DSD вплоть до 12.4 МГц. Таким образом, это означает поддержку всех форматов PCM (в спецификации это не указано, но карта поддерживает разрядность до 32-бит), включая DXD, поддержку DSD64 и DSD128 через DoP или native DSD, а также, дополнительно, поддержку DSD256 — только через native DSD (в последней версии прошивки добавлена поддержка вывода DSD256 также и в режиме DoP).

Вот, как выглядят настройки SACD декодера в нашем случае:

Настройки SACD декодера для DSD вывода

Настройки SACD декодера для DSD вывода

Здесь мы включили декодирование в формате DSD и включили использование DSD Processor. Кстати, если вы хотите, чтоб в плеере работали визуализации, можете установить декодирование в формате DSD+PCM, однако помните, что это негативно отразится на производительности. Остальные настройки:

Editable tags — включает возможность редактирования тегов. При этом новые теги пишутся не в файл образа, а в XML файлы в папке foobar2000/sacd_metabase.

Store tags with ISO — если включено, XML файл со значениями тегов сохраняется в той же папке, что и ISO образ.

Linked 2CH/MCH Tags — создаёт связь между тегами стерео и многоканальной версий трека, так что изменения в одном варианте влекут изменения и для второго.

Edited Master Playback — включает воспроизведение оригинальной мастер-записи, включая участки, которые не были включены при разметке SACD-диска. При этом фактическое время звучания некоторых треков может быть на несколько секунд больше, что может привести к неверному отображению текущей позиции воспроизведения.

Настройки DSD процессора для iFi nano iDSD

Настройки DSD процессора для iFi nano iDSD

DSD процессор нам нужен для того, чтобы сконвертировать неподдерживаемые форматы DSD в максимальный поддерживаемый. Кстати говоря, с сожалением отмечу, что по данным разработчика для преобразования DSD->DSD используется промежуточное преобразование в PCM (хотя и весьма качественное). Для nano iDSD я включил конвертацию DSD512 в DSD256 с использованием SDM Type D — максимально качественный фильтр 5-го порядка, использующий расчеты в 64-битном формате с плавающей точкой. Для интересующихся различиями между разными типами сигма-дельта модуляторов — SDM Type A/B/C/D — привожу таблицу:

Sample&Hold выключено (эта опция включает упрощение алгоритма за счет использования интерполяции нулевого порядка, что помогает снизить нагрузку на процессор, но негативно отражается на качестве).

Далее поток следует на вывод (обратите внимание: если выбран вывод DSD: ... и на него следует DSD/DoP поток, DSP и регулировка громкости отключаются; для обычных PCM данных они по-прежнему будут работать). Я могу просто использовать вывод DSD: ASIO: iFi (by AMR) HD USB Audio, при этом данные будут выводиться в DoP (именно в таком виде поступают данные с SACD декодера). Однако это меня не устраивает, т. к. тогда я потеряю возможность воспроизводить DSD256 (и вообще, я предпочитаю использовать родной DSD формат), и поэтому я предварительно настрою вывод через драйвер DSD Transcoder. Для этого нужно перейти в Playback->Output->ASIO и дважды нажать в списке на DSD Transcoder (DoP/Native).

Настройки DSD Transcoder для iFi nano iDSD

Настройки DSD Transcoder для iFi nano iDSD

Тут я просто установил вывод всех форматов DSD в режиме native. Параметр Transition отвечает за добавление тишины в начало треков, его можно увеличить, если вы заметите, что треки начинают звучать не сразу. Параметр Sample position override необходим, если в плеере некорректно отображается позиция воспроизведения (прошедшее/оставшееся время).

Далее осталось только выбрать вывод DSD на транскодер:

Кстати говоря, выбранная разрядность здесь роли не играет, т. к. конвертер глубины бит при DSD выводе не используется.

3.1.3 Проверка работоспособности настроек

Для теста я использовал DSD256 семпл Britten: Frank Bridge Variations - Romance, TrondheimSolistene со страницы 2L High Resolution Music.

Как видите, семпл воспроизводится, а в панели iFi (панель устройства ASIO можно открыть двойным кликом по названию в списке устройств ASIO — см. выше) отображается частота нативного DSD256.

3.1.4 Настройка для нескольких DSD устройств

Это всё хорошо, но только если вы пользуетесь для воспроизведения DSD только одним устройством. А что делать, если устройств несколько, и у них разная поддержка DSD (например, один ЦАП поддерживает DSD256, а другой — нет) — ведь в таком случае нужно будет постоянно менять настройки DSD процессора? В этом случае на помощь приходит ASIO Proxy и Custom channel mappings в foobar2000. Установите драйвер ASIO Proxy и затем добавьте новый пресет для ASIO, перейдя в настройках в Playback->Output->ASIO и нажав Add new в разделе Custom channel mappings. В открывшемся окне выберите драйвер foo_dsd_asio и введите подходящее название:

После этого нажмите Configure — появится окно настройки ASIO Proxy.



Настройки ASIO Proxy для iFi nano iDSD

Как видите, ASIO Proxy совмещает в себе функционал DSD транскодера и DSD процессора, позволяя настроить все параметры индивидуально для каждого устройства. Для своего ЦАП я выбрал настройки аналогичные приведённым ранее.

Обратите внимание: в ASIO Proxy кроме стандартных режимов DSD и DoP есть еще специальные режимы DoP для ЦАП-ов dCS и exD.

После сохранения настроек осталось выбрать устройство вывода DSD: ASIO: iFi nano iDSD custom и убедиться, что воспроизведение работает. Так и есть, панель iFI по-прежнему отображает частоту 11289.6 кГц.

Теперь можно аналогично создать новые пресеты ASIO с установками для любого другого ЦАП — затем останется лишь переключать при необходимости устройства вывода.

Примечание: у ASIO Proxy есть один минус: он не читает DoP маркеры, и если на него подать PCM 176 кГц или больше, он воспримет его как DSD over PCM и будет конвертировать согласно установкам. Например, в моём случае 352.8 кГц будет конвертироваться в DSD128 (что особого смысла не имеет, ЦАП всё равно сконвертирует PCM в DSD). Поэтому если вы собрались воспроизводить PCM — лучше переключиться на обычный вывод ASIO: <ваша звуковая карта>.

3.1.5 Устранение проблем

Если вы настроили всё согласно моей инструкции и спецификации своего устройства, но DSD поток не воспроизводится или воспроизводится с искажениями/щелчками, то попробуйте следующее:

  1. Если плеер (или вся система) тормозит и/или наблюдаются искажения, обратите внимание на загруженность процессора, в частности на то, сколько процессорных ресурсов потребляет foobar2000 (можно посмотреть в Диспетчере задач Windows). Если плеер слишком перегружает систему — попробуйте убрать из него лишние визуализации. Также большую нагрузку на процессор при старте трека может давать Waveform Seekbar, т. к. он дополнительно декодирует и анализирует всю запись (попробуйте временно удалить плагин).

  2. Если воспроизведение идёт с щелчками или искажениями: откройте панель вашего ASIO устройства (для этого поставьте воспроизведение на стоп, зайдите в Preferences->Playback->Output->ASIO и дважды щёлкните по названию ASIO драйвера) и проверьте настройки буфера вывода. Например, драйвер iFi пишет, когда размер буфера вывода не соответствует выбранному режиму и текущей частоте дискретизации:


    Чтобы увидеть это предупреждение, нужно открыть панель устройства во время воспроизведения DSD, но чтобы изменить настройки воспроизведение обязательно нужно остановить.

    Если вы испытываете проблемы с выводом DSD и видите такое предупреждение, увеличьте буфер вывода. Чтобы проверить, действительно ли проблема в буфере — установите максимально безопасный режим (Extra Safe) и увеличивайте размер буфера до тех пор, пока во время проигрывания не перестанет отображаться предупреждение. Даже если у вас другая панель — всё равно попробуйте увеличить буфер, часто это помогает от щелчков и искажений.

  3. Поменяйте режим вывода DSD на DoP (или наоборот) — возможно, с одним из них драйвер работает лучше.

  4. Обновите драйвер и (после обновления драйвера) прошивку (Firmware) вашего ЦАП — это может помочь, если проблемы воспроизведения связаны с каким-то багом в ПО. За последними драйверами/прошивками и инструкциями обращайтесь на сайт производителя устройства.

3.2 Настройка декодирования и вывода в PCM

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



Настройки SACD декодера для вывода PCM

В настройках декодера можно задать целевую частоту дискретизации и алгоритм преобразования DSD в PCM. Multistage является SSE-оптимизированным алгоритмом и использует плавающую точку с одинарной (32fp) или двойной (64fp) точностью. Direct метод является более медленным (примерно на 40% медленнее Multistage) и выполняет фильтрацию частот выше 30 кГц. Installable FIR режим позволяет загрузить одну из приложенных к плагину предустановок ФНЧ, давая таким образом возможность выбирать граничную частоту.



Спектр аудио 192 кГц, полученного алгоритмом Multistage (64fp). На графике виден высокий уровень шума в сверхзвуковом диапазоне, обусловленный нойз-шейпингом

Лично я советую выбрать режим Direct (64fp, 30kHz LF), чтобы исключить интермодуляции от ультразвуковых частот, и максимальную частоту дискретизации, а в DSP (обязательно в самое начало цепочки) поставить SoX ресемплер до опорной частоты звуковой карты (её, в свою очередь, установить максимальной). Касаемо настроек — рекомендую почитать мою статью про качественный вывод звука.

Также настройки позволяют установить увеличение уровня громкости. Как правило, SACD имеет пиковый уровень менее -6 dBFS (0.5 от максимума), потому его можно установить в +6 dBFS (при выводе в DSD такое повышение громкости выполняет ЦАП). Есть похожая настройка и для LFE (канала сабвуфера) — полезна для случаев, когда ваш ресивер изменяет уровень канала LFE. После настройки, чтобы убедиться в отсутствии клиппинга можно выполнить анализ результирующего пика с помощью ReplayGain сканера (в контекстном меню foobar2000). Если пик превысит 1.0, усиление следует занизить.

Воспроизведение SACD в foobar2000

Воспроизведение SACD-R в foobar2000. В плейлист загружены сжатые в DST стерео и 5.1 дорожки (битрейт отображается для декодированного DSD). На ВЧ шум на спектрограмме отсутствует, т. к. использован 30 кГц ФНЧ

4. Конвертирование SACD

Конвертирование SACD и DSD ничем не отличается от преобразования того же Hi-Res рипа 24/192 или т.п., единственное что предварительно необходимо настроить декодер для вывода PCM (или DSD+PCM), причем достаточно переключить в одни из этих режимов, настроить необходимые параметры, после чего можно вернуть режим вывода DSD — во время конвертирования декодер будет работать в режиме PCM. Всё остальное уже описано в статье Преобразование аудио высокой разрядности в 16 бит/44.1 кГц стерео.

[Обсудить на форуме]


Полезные ссылки:

Foobar 2000 for Dummies (Part 2) – Playing DSD – New SACD plugin (0.9.x and 1.0.x Series)
2L High Resolution Music Downloads
RuTracker: Осваиваем формат DSD. Программные проигрыватели, конвертеры. Настройки для корректного прослушивания.

Информация от спонсора

APPLE-Support.kz: сервисный центр Apple в городе Алматы. Ищете, где произвести ремонт iPhone в Алматы? В APPLE-Support вас быстро и качественно обслужат специалисты, имеющие богатый опыт работы с продукцией компании Apple.

Описание формата SACD/DSD, сопутствующих ему форматов файлов. Инструкция по воспроизведению SACD в режиме DSD и PCM, а также конвертации SACD в другие форматы.
 
   
Категория: Авторские статьи | Автор: | Добавил: Audiophile
Просмотров: 50967| Рейтинг: 5.0/5, голосов: 1
Комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]