Hi-Fi-практика. Этот загадочный Dithering

Дорогой читатель, ты уже наверняка сталкивался с загадочной и малопонятной опцией Dithering/Dither в серьезных программах-плеерах, будь то Foobar2K или же Neutron Music Player. Вопрос “Что же эта штука делает?” повисал в воздухе. Сегодня одним белым пятном станет меньше. И ты наконец научишься правильно ею пользоваться!

Немного теории

Цифровая звукозапись. В отличие от аналоговой, она призвана вместить музыку в конечную череду нулей и единиц. То есть, сколь большой ни была бы разрядность квантования и сколь высокой – его частота (будь то 16/44.1 или же студийные 24/192 и выше), точность записи всегда конечна.

sound_compare_1

Таким образом, в отличие от бесконечно плавной аналоговой записи, мы получаем пусть и максимально к ней приближенную, но все же упрощенную версию. Это можно сравнить с цифровым изображением. Сколь высоким ни было бы его разрешение, при определенном приближении/увеличении станут видны отдельные пиксели. Дела с цифровой звукозаписью обстоят примерно так же.

SenalRuidoCuantificacion4bits

Шумы квантования во всей красе

В записи любого музыкального произведения могут встретиться растянутые во времени, слишком плавные частотные переходы, затяжные вокальные партии и прочие моменты. Именно тут и может возникать такое явление, как шум квантования. Когда колебания частот в описываемом произведении слишком незначтельны, чтобы их можно было запечатлеть на цифровой записи с выбранной частотой, аппаратура “принимает решение” упростить такие участки до единого значения, растянутого во времени.

img_compare_1

Аналогом может служить изображение, сохраненное в упрощенной, оптимизированной для web палитре. Как видим, участки, отличающиеся друг от друга полутонами, заливаются здесь единым цветом. Такое изображение, конечно, можно назвать приближенным к оригиналу, но лишь в определенной степени.

Устранить слишком уж наглядные проявления такого эффекта и призван метод, названный дизерингом. Что же он собой представляет?

775_front

Принцип прост. В запись порционно добавляются специально сгенерированные неточности/шумы, накладывающиеся на те ее фрагменты, где имеют место шумы квантования. То есть на слишком длинные по мнению алгоритма однородные участки. Это позволяет привнести в звук ту естественность, которую он при квантовании утратил. Слушать такую запись по умолчанию приятнее.

img_compare_2

Тот же метод применяется и для цифровых изображений в некоторых форматах с пережатием. К примеру, в PNG.

Практика

Вот тут начинается самое интересное. Разрядности современных студийных записей (24/192 и выше) вполне хватает для того, чтобы в 99,9% случаев избежать такого явления, как шумы квантования. Применение дизеринга для таких записей просто избыточно и привносит в них лишь дополнительную окраску звучания, пагубно влияющую на достоверность. Но, как мы знаем, “народным” является формат FLAC/ALAC с разрядностью 16/44.1. То есть полный аналог CD.

Что же происходит с изначальной студийной записью, когда с нее начинают штамповать CD-диски? Правильно! Детализация теряется. Плавные переходы, в которых не было места шумам квантования, все чаще сменяются ровными, как блин, участками. То есть происходит то же самое, что и при сохранении цифрового изображения с меньшим разрешением. На определенном расстоянии отличить их будет почти невозможно, но стоит подойти ближе/вслушаться и…

sound_compare_2

Вот тут на помощь звукорежиссеру со всей своей аптекарской точностью приходит беспристрастный алгоритм дизеринга, снабжая участки с шумами квантования порцией дополнительного, оживляющего их шума. Получаем эффект fight fire with fire. И звукозапись заново приобретает утраченную естественность и красоту. Но сохраняется ли при этом достоверность? Нет! Такая запись уже очень серьезно отличается от оригинала. Ведь она содержит в себе то, чего в изначальном произведении никогда не было. Пусть и в скрупулезно выверенных количествах.

cd_rip

А теперь вернемся к вопросу lossless-форматов. Откуда мы берем те самые FLAC 16/44.1? Давайте будем честны сами с собой. 90% таких файлов – это рипы с CD-дисков, а не прямая понижающая переоцифровка со студийных записей. Что же мы имеем? А то, что происходит повторное квантование с не самой высокой разрядностью 16/44.1. И этот процесс заново воскрешает участки с шумами квантования, “закрашивая одним цветом” то, что звукооператором при записи CD было профессионально разбавленно полезными шумами дизеринга. Именно для таких файлов и нужно включать заветную опцию Dither в foobar2K или Neutron.

dither_on

Помимо этого варианта применения существует и другой. Он заключается в необходимости воспроизведения Hi-Res Audio файлов на аппаратуре, не поддерживающей bit-perfect декодирование таких файлов и стремящейся провести понижающую передискретизацию до тех самых 16/44.1 или 16/48 на лету. Прямо при воспроизведении. В таких случаях Dither также способен очень сильно выручить. По крайней мере, музыку станет комфортнее слушать. Исчезнет грязь и размытость. Звук станет более согласованным. Но повторюсь, не стоит обольщаться! Dithering все же пагубно влияет на достоверность звучания. И если у вас есть возможность обойтись без него, советую так и поступить.

На этом всё. Надеюсь, эта информация была вам полезна и теперь вы будете пользоваться опцией Dither аккуратно и с пониманием. До скорого!

Please wait...
Теги: , , , , , , , , , , , , , , , , , , , , , ,
0
34 Комментарий
Сначала Новые
Сначала Старые Популярные
guest

Межтекстовые Отзывы
Посмотреть все комментарии
Novatone
Novatone
3 лет назад

Браво! Трудно представить себе более дилетантскую статью про дизеринг. Особенно ярко автор раскрыл свои незнания в области цифрового аудио в своих комментариях. К сожалению, одним “белым пятном” меньше так и не стало.

1. ошибки квантования не имеют ничего общего с частотой. Сравнивать их с пикселями в изображении некорректно. Они не влияют на “плавность частотных переходов”, как утверждает автор. Они лишь добавляют низкоуровневые шумы, но гораздо более неприятные, чем шум дизеринга, о котором так предостережительно говорит автор.

2. Все современные 24-битные аудио интерфейсы по умолчанию используют дизеринг при воспроизведении файлов более высокой разрядности. Никакой необходимости включать его в плеере нет. Более того, отключить его в аудиокартах невозможно. (функция дизеринга в Foobar существует только для старых 16-разрядных аудиоинтерфейсов) Ни о какой деградации аудио речи не идет. Шум дизеринга и шум квантования равны между собой. Однако дизеринг увеличивает динамический диапазон 16-битной записи до 20 бит (что соответствует >118 dB динамического диапазона) и звучит похоже на шум магнитной ленты, что никак не может ухудшить музыкальность фонограммы. Дизеринг с шейпингом незначительно влияет на частотный окрас фонограммы, но шейпинг необходимо подбирать либо просто не использовать.
3. при конвертации рипов во flac качество сигнала остаётся неизменным при условии, что не меняется разрядность (длина слова) и частота дискретизации.
4. Дискретизация не имеет ничего общего с квантованием.
5. при квантовании из 24 бит в 24 бит либо из 16 в 16 деградации никакой не происходит, так как уровень сигнала остаётся неизменным. Шумы квантования появляются лишь в следствии не кратных изменений динамического уровня сигнала в большую или меньшую стороны.
6. Но особенно развеселило реплика Автора в комментариях: “Для справки – уменьшение разрядности записи само по себе является одним из видов понижающей передискретизации”. Это уже ни в какие ворота не лезет… Видимо автор выдумывает термины на лету, не вдумываясь какую белиберду он пишет. “Передискретизация” не может быть понижающей и уж никакого отношения не может иметь к разрядности.

Please wait...
Владимир
Владимир
3 лет назад

Андрей, я меломан. Про Dither в курсе, но до прочтения этой статьи пренебрегал (и пока продолжаю это делать). Дождусь ответа. Что хотелось узнать?
1. Если я слушаю рипы СD, или сами ли СD (фирменные и не очень), то они как раз в формате 16/44 и Dither для более приятного прослушивания включать? (Думаю, понял это правильно).
2. Главное. Много музыки имею в 24/192, но в большей степени она попадает ко мне в 32/192, а в последнее время и в DSD в 32/384. Для моей звуковой аппаратуры это избыточное качество. Остановился на 24/192. Поэтому процесс конвертации использую очень часто для понижения частоты дискредитации и разрядности (не последнее место занимает и избыточный размер файлов). Правило использую вроде устоявшееся: Все промежуточные операции выполняю в PCM. Если DSD 32/384, то путь таков DSD 32/384 => Wav 32/384 => Wav 32/192 => Wav 24/192 => Flac 24/192. И вот теперь задумался, много ли я теряю в качестве при понижении разрядности с 32 до 24 без включения дизеринга? Или этим можно пренебречь и просто наслаждаться музыкой? Спасибо.

Please wait...
Novatone
Novatone
3 лет назад
Ответ  Владимир

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

Please wait...
Владимир Михайлов
Владимир Михайлов
3 лет назад
Ответ  Novatone

Спасибо.

Please wait...
Vic
Vic
8 лет назад

Что-то тут смешались в кучу кони-люди. Попробую объяснить на пальцах.

CDA, WAV, FLAC и прочие распространенные форматы кодируют звук с помощью импульсно-кодовой модуляции (Pulse-Code Modulation – PCM). Строго говоря, надо добавлять, что это линейная импульсно-кодовая модуляция, то есть семплы считываются с постоянной скоростью. Бывает еще нелинейная (с переменной скоростью), но это зверь редкий, и для записи звука практически не используется. Во избежание путаницы лучше не использовать слово “семпл”, а то тут уже вспомнили в комментариях “библиотеки семплов”, которые относятся уже к MIDI и синтезаторам, а не простой цифре. Будем использовать слово “фрейм”.

При воспроизведении ЦАП 44.1 тысячи раз в секунду (или сколько задано форматом) читает значение в следующем фрейме и программирует свою аналоговую часть. Шум квантования при этом есть ВСЕГДА, это характеристика ЦАПа и его схемы аналогового преобразования. У современных ЦАПов это очень низкое значение, и куда важнее “тепловой” шум полупроводниковых компонентов. Тем не менее, шум квантования всегда присутствует.

Рип источника – это просто копирование последовательности значений фреймов на уровне данных. В этом процессе ЦАП не участвует вообще. При копировании могут возникать ошибки, но хороший софт их либо не допускает, либо сводит к абсолютному минимуму. Рип источника, который записан в другой технологии (например с использованием дельта-сигма модуляции, DSD) требует хотя бы виртуальной передискретизации с использованием ЦПУ либо имеющегося под рукой ЦАПа. В такой ситуации появление дополнительных дефектов неизбежно как на уровне ресемплинга, так и на уровне понижения разрядности.

Что касается дизеринга, то он вступает в дело не при передискретизации, а при УМЕНЬШЕНИИ РАЗРЯДНОСТИ исходного материала (для LPCM). Если разрядность уменьшается, скажем, с 24 бит до 16, то тут уже без дизеринга не обойтись, если хочется сохранить приемлемое отношение сигнал-шум. А передискретизация при сохранении разрядности требует совсем других алгоритмов – там важнее использование фильтров высокой и низкой частоты высокой добротности и подбор крутизны обрезающей кривой. Идеальный фильтр – жесткая ступенька, но его использование мало кому понравится, потому что искажений в высоких и гармоник при этом вылезет over9000.

Дизеринг действительно призван уменьшить шум квантования при уменьшении разрядности. Если ее уменьшить тупо, то в результирующем материале возникнут неприятные ступеньки, которые влекут за собой появление гармонических искажений. Хорошие алгоритмы дизеринга используют психоакустические модели и подмешивают шумовую составляющую в сигнал. Это позволяет добиться снижения воспринимаемого уровня шума на 10-12 Дб на длинных фейдах. Плюс к тому там еще задействована функция бланкинга для получения истинной тишины там, где надо.

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

Please wait...
Vic
Vic
8 лет назад

Вопрос, видимо, в качестве, которое требуется. Алгоритмы реального времени в среднем способны обеспечить уровень шума на уровне -96-110 Дб. Для студийного качества это недостаточный уровень.

Please wait...
Vic
Vic
8 лет назад

Нет, не перешагнули. Тут производители кривят душой, указывая одну из компонент суммарного шума, например, интермодуляционные искажения, которые действительно в хороших образцах взвешенно по частотам доходят до -130. Для реального времени отличный результат, но неплохо бы посмотреть равномерность этой шумовой характеристики и значения по всем составляющим, а так же алиасинг сигнала в ультразвуке. В общем, останусь я при своем мнении – хороший студийный софт с окном начиная от 4096 фреймов даст многим лучший результат.

И все же: ресемплинг и понижение разрядности – это разные процессы. Их, конечно, можно проводить в один проход, но при необходимости контролировать результат лучше в два. Я тут не про реальное время, конечно, а про студийную работу. Откройте, например, Izotope RX2 и посмотрите на настройки ресемплера и дизеринга – это разные процессы, и параметры у них разные. При изменении частоты семплирования без изменения разрядности дизеринг не используется – там куда большая проблема с алиасингом и “звоном”.

Please wait...
Vic
Vic
8 лет назад

Лучший результат даст хороший звуковой интерфейс, который нативно, аппаратно, поддерживает любые частоты дискретизации и переменную разрядность. Конечно, если такого под рукой нет, то дизеринг поможет уменьшить шумы. Просто если мыслить в бескомпромиссных категориях, то я бы посоветовал медленным и печальным способом пересемплировать всю библиотеку и забыть про программную обработку в реальном времени по возможности. Ну а если возможности нет… тут уж никуда не деться.

Please wait...
Vic
Vic
8 лет назад

Во-от. С этим полностью согласен. Жаль, что не все можно найти в хорошем качестве.

Please wait...
SlavaK
SlavaK
8 лет назад

В статье есть несколько неявно описанных моментов с точки зрения новичка:
1. Глава “Практика”: из картинки со ступеньками возникает ощущение, что дизеринг нужно использовать при понижении частоты дискретизации.
2. “И звукозапись заново приобретает утраченную естественность и красоту”: то есть сначала происходит потеря естественности, а потом подмешивают шум и естественность восстанавливается?
3. “Именно для таких файлов и нужно включать заветную опцию Dither”: имется ввиду, что опцию рекомендуется включать всегда при прослушивании FLAC 16/44.1?

Please wait...
Andrea
Andrea
8 лет назад

Т.е. Dither возвращает “то, что звукооператором при записи CD было профессионально разбавленно полезными шумами”? Это (галочка) касается только wasapi, или asio тоже?

Please wait...
Nеmоv Sergei
Nеmоv Sergei
8 лет назад

Я с утрица нифига не понял, кроме того что Flac 192/24 это ваще не касается и нужно слушать в этом формате… а если вдруг вам досталась криворукая конвертация CD-диска во Flac 41/16 тогда нужно галочку ставить… Кстати почему в статье не стоит где и куда эту галочку ставить .. Только из скриншота понятно куда лесть… А если я тупой и мне надо пошагово объяснить куда тыкаться?

Please wait...
Nеmоv Sergei
Nеmоv Sergei
8 лет назад

Мене скушно… Ну ты хоть прочиткал… Хлебнул суть…
…iT ресурсы делятся на 3 категории… Туда куда ходишь когда нужно решить проблему… Туда куда лезешь чтоб развлечься… И те где меряются первичными половыми признаками высоколобые (тут нет цензурного слова)… Кеддрюком стремительно из второго превращается в третье и это печалька потому что первым он никогда не был…

Please wait...
oldskool
oldskool
8 лет назад

Андрей, спасибо за статью, очень интересно!
Я не совсем понял тезис о повторном квантовании при кодировании CD-ripов в FLAC.
CD-rip по сути своей – это набор wav-файлов, которые, в свою очередь, содержат тот самый результат работы звукооператора. Само же кодирование FLAC не подразумевает никакого переквантования, а просто сжимает аудиоданные без потерь, чтобы при воспроизведении восстановить на 100% тот же исходный wav. Таким образом, квантование в указанном процессе происходит один-единственный раз – при записи CD. Разъясните, пожалуйста.

Please wait...
oldskool
oldskool
8 лет назад

С CD считывается цифра. Она уже готовая. Это не винил и не магнитная лента, где идет преобразование, (а, соответственно, и квантование) из аналогового сигнала в цифровой. Информация с CD считывается ровно в том виде, как была туда записана, без всякого квантования. В этом и смысл цифровых носителей информации. Так о каком “квантователе” при считывании цифровых данных вы говорите?

Please wait...
oldskool
oldskool
8 лет назад

Андрей, вы ошибаетесь. Не знаю, откуда вы взяли приведенную цитату, но доверия написанный текст у меня лично не вызывает. Я хорошо знаком с форматом CD-DA, рекомендую и вам почитать про этот формат и особое внимание обратить на избыточность данных, предназначенную для коррекции ошибок чтения. Эта избыточность как раз и предназначена для обеспечения надежного считывания данных именно в том виде, как они были записаны.
Если говорить о воспроизведении аудио CD, то тут используются совершенно другие алгоритмы, нежели при риппинге. Цель алгоритмов воспроизведения – обеспечить непрерывный поток аудиоданных, пусть даже ценой неточности в декодировании. При этом декодер аудиоданных позволяет себе такие вольности, как интерполяция ошибочно считанных или нечитаемых вовсе сэмплов. Отсюда и возникают мифы о невозможности 100% точного рипа. Хотя на самом деле он возможен.
Алгоритмы риппинга нацелены на другое – как можно более точное считывание записанных данных. Поэтому они могут требовать больше времени, чем воспроизведение в реальном времени, особенно для дисков с физическими дефектами.
Еще раз повторю: диск содержит цифровые данные, никакого переквантования при риппинге не происходит, если диск без физических дефектов. Данные считываются 1:1 в идеальной ситуации (диск без дефектов).
Что касается конвертирования аудио: при преобразовании wav в flac, повторюсь, никакого квантования, помимо уже существующего в wav, не производится. Если же говорить о lossy форматах, там, конечно, совершенно другая история.

Please wait...
Elektronik94
Elektronik94
8 лет назад
Ответ  oldskool

С CD считывается цифра. Она уже готовая.

Вы не правы.

Please wait...
oldskool
oldskool
8 лет назад
Ответ  Elektronik94

Аргументы будут? Я свою позицию выразил достаточно четко и аргументированно, того же ожидаю и от оппонентов.
А подобные высказывания, извините, не рассматриваю в силу их несерьезности.

Please wait...
oldskool
oldskool
8 лет назад

Андрей, я затеял этот спор не с целью что-то кому-то доказать, а с целью пополнить и скорректировать свои знания в интересной мне области.
Жаль, что вы не разделяете моего желания совершенствоваться, ну да это личное дело каждого.
Что до WAV-формата – это, по-хорошему, тема для отдельной статьи. Но несколько ремарок я все же сделаю. Во-первых, WAV формат совершенно замечательно позволяет хранить данные в формате PCM 16 бит, частота квантования 44100 Гц. То есть, именно тот формат, в котором записаны аудиоданные на дисках CD-DA. Таким образом, это идеальный формат для хранения данных _без_ какой-либо конвертации и квантования. Во-вторых, сам файл WAV – это набор семплов PCM с заголовком. Это универсальный формат, только и всего. Никакого преобразования аудиоданных при риппинге из CD-DA в WAV _не_происходит_.
Касательно квантования при преобразовании из WAV в FLAC – извините, но вы показываете недостаточную теоретическую подготовленность. Цель FLAC (как и любого другого lossless-кодека) – получить на выходе именно тот набор семплов, который использовался при кодировании. Таким образом, никакого изменения содержимого семплов и тут не происходит. Мы имеем дело с алгоритмом сжатия для компактного хранения данных, но не с алгоритмом преобразования звука, как в случае с MP3.

Ваш пример с конвертером фубара работает только в случае, когда мы задаем частоту квантования, отличную от исходной. В примере, с которого мы начали разговор, идет речь о формате 16/44, и никаких изменений формата не подразумевалось.

Ну и википедия – не самый надежный источник информации. Это так, уже к слову.

Please wait...
Сергей
Сергей
8 лет назад

Простите Андрей, но это уже ни в какие ворота.
Раз и навсегда закройте этот вопрос:
Андрей, возьмите, в конце концов, любой 44/16 WAV файл и конвертните его в том же foobar во FLAC, И затем Этот flac конвертните обратно в WAV. Вы получите два побитно идентичных WAV файла.

Конвертер глубины бит и применение PCM с плавающей точкой …

…не имеют никакого отношения к формату FLAC 44/16

Квантование же при переводе WAV во FLAC проводится. Ведь мы имеем дело с абсолютно иным контейнером.

Ознакомьтесь на досуге о понятии “контейнер”. И применительно к FLAC мы меняем лишь способ хранения цифровых данных, сами данные остаются неизменными.

Из вашей же логики следует, что упакованный в RAR файл, и распакованный из него будут разными, но это полный бред.

Please wait...
Michael M.
Michael M.
8 лет назад

Андрей, я соглашусь с ораторами тут, Вы тут ошибаетесь. Если прочитать и правильно понять эту запись, она не подразумевает какие-либо переквантования. Там говорится лишь то, что обычно носитель не отформатирован для удобного использования в ФС компьютера, поэтому риппинг – это ре-форматирование данные для использования их в ФС компьютера. Грубо говоря, если у Вас есть один диск с ФС exFat, а другой диск с ФС HFS+, то записанный на эти ФС файл будет различаться на физическом уровне, но при считывании его с обоих дисков и побитовом сравнении он будет абсолютно идентичен. Какие-либо ошибки рипинга диска получить можно, но точно так же можно и сделать 1 в 1 точную копию цифровых данных с CD.

Please wait...
Наверх