Наверх
30 комментариев 30/11/2015

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

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 аккуратно и с пониманием. До скорого!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

30 комментариев

по хронологии
по рейтингу сначала новые по хронологии
1

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

Автор2

Увы, нет. rip CD подразумевает собой создание этих самых wav-файлов. Путем считывания "цифры". Считывать ее без использования квантователя не научились до сих пор. Квантователь этот бесстратсен. И ему абсолютно все равно, имеет ли он дело с "цифрой" или аналоговым звуком. Его задача свести количество помех и ошибок квантования к минимуму. И некоторые участки с dither-постобработкой он вполне спокойно сочтет шумом/пылью на считывающем лазере. И сгладит эти моменты до идеальной прямой. Итог - шум квантования возрождается.

3

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

Автор4
Ripping is distinct from simple file copying, in that the source audio or video often isn't originally formatted for ease of use in a computer file system; ripping such data usually involves reformatting it and optionally compressing it during the extraction process.

- внезапно, правда? :)
Или вы думаете, что треки на CD хранятся в wav-формате? Это далеко не так. Ну и помимо всего прочего - в любой процесс конвертирования аудио так или иначе неизбежно вовлечено квантование.

5

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

Автор6

Мишаил, ниже я привел контр-аргументы. Увы, но не все так просто применительно к смене аудио-контейнеров.

7

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

Автор8

Эта цитата взята из википедии. Пожалуйста, не путайте считывание данных с их преобразованием в wav-формат. Как вы сами и говорите, избыточность нужна для корректного считывания. Которое в свою очередь происходит при воспроизведении.
Переквантование же при риппинге происходит. Ведь меняется формат хранения тех самых данных.
Я не желаю и дальше с вами спорить. Пусть каждый останется при своем мнении. То, о чем я говорю, основано на личном опыте.
Квантование же при переводе WAV во FLAC проводится. Ведь мы имеем дело с абсолютно иным контейнером.
Для ликвидации же пробела в ваших знаниях о конвертации очень рекомендую ознакомиться вот с этим: http://audiophilesoft.ru/publ/my/foobar2000_converter_setup/11-1-0-27
Конвертер глубины бит и применение PCM с плавающей точкой как бы безальтернативно намекают на неизбежность промежуточного переквантования :).Но повторюсь, доказывать что-либо я не намерен. Вы в полном праве оставаться при своем мнении.

9
Сергей

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

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

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

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

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

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

10

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

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

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

Автор11

[quote]Таким образом, никакого изменения содержимого семплов и тут не происходит[/quote] - вот тут все очень далеко не так. Набор семплов определяется не самой записью в единоличном режиме. Но еще и тем, какой библиотекой семплов располагает конкретное аудио-устройство, отвечающее за кодирование. И тут применительно к разным аудиокартам возможны очень разные варианты.
WAV - это формат разве что самописных CD. Штампованные экземляры его не используют. Здесь мы уже говорим как минимум о .cda
Ну и даже при сохранении параметров квантования изначальной записи, как мы уже понимаем, переквантование имеет место быть. Ведь тот же FLAC подразумевает PCM с плавающей точкой. В отличие от фиксированного WAV/cda.
В целом же очень благодарен за дискуссию. Всегда приятно вести аргументированный спор. Независимо от того, кто оказывается прав :)

12

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

Вы не правы.

13

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

14

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

Автор15

А если я тупой

- то с вероятностью 99.9% эти статьи не представляют для тебя никакого интереса. Не говоря уже об информационной ценности. Я фокусируюсь на определенной целевой аудитории. Стремление же угождать всем не увенчается успехом.

Автор16

Сергей, прости, но я предупреждал по поводу мата. Комментарий удаляется. Огромная просьба, дружище, пожалуйста, будь немного сдержанней в выражениях. Спасибо :)

17

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

Автор18

Категория "те, куда ходишь, чтобы узнать что-то новое" для тебя не существует исходя из этой логики. Ну ок :)

19

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

Автор20

Эта галочка касается любого режима, в опциях которого она существует. Ну а в каких случаях Dither выполняет полезные функции, описано в статье. Весьма однозначно :)

21

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

22

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

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

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

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

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

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

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

Автор23

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

24

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

Автор25

RT-дизеринг foobar2K равно как и Neutron Player уже давно перешагнули за 120. Ну да ладно

26

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

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

Автор27

начали за здравие и закончили за упокой :). Дизеринг в реальном времени по определению дает лучший результат при воспроизведении 16/44, чем вариант без него. Тот же Mac-овский Audirvana с iZotop-ом внутри к стати содержит в себе более 5 различных вариантов дизера в реальном времени. И чувствует себя при этом прекрасно. Звук при воспроизведении CD-DA при включенном дизере там мягко говоря улучшается.
Студийная же работа со звуком - это тема для принципиально других статей.

28

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

Автор29

Если мыслить в бескомпромиссных категорях, то 16/44 вообще нет места в музыкальной библиотеке. Сам по себе CD-DA уже компромисс. А потому перечисленные заморочки - практически бесполезная и ничем не оправданная трата времени.

30

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

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

Modal box

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: