Дорогой читатель, ты уже наверняка сталкивался с загадочной и малопонятной опцией Dithering/Dither в серьезных программах-плеерах, будь то Foobar2K или же Neutron Music Player. Вопрос “Что же эта штука делает?” повисал в воздухе. Сегодня одним белым пятном станет меньше. И ты наконец научишься правильно ею пользоваться!
Цифровая звукозапись. В отличие от аналоговой, она призвана вместить музыку в конечную череду нулей и единиц. То есть, сколь большой ни была бы разрядность квантования и сколь высокой – его частота (будь то 16/44.1 или же студийные 24/192 и выше), точность записи всегда конечна.
Таким образом, в отличие от бесконечно плавной аналоговой записи, мы получаем пусть и максимально к ней приближенную, но все же упрощенную версию. Это можно сравнить с цифровым изображением. Сколь высоким ни было бы его разрешение, при определенном приближении/увеличении станут видны отдельные пиксели. Дела с цифровой звукозаписью обстоят примерно так же.
Шумы квантования во всей красе
В записи любого музыкального произведения могут встретиться растянутые во времени, слишком плавные частотные переходы, затяжные вокальные партии и прочие моменты. Именно тут и может возникать такое явление, как шум квантования. Когда колебания частот в описываемом произведении слишком незначтельны, чтобы их можно было запечатлеть на цифровой записи с выбранной частотой, аппаратура “принимает решение” упростить такие участки до единого значения, растянутого во времени.
Аналогом может служить изображение, сохраненное в упрощенной, оптимизированной для web палитре. Как видим, участки, отличающиеся друг от друга полутонами, заливаются здесь единым цветом. Такое изображение, конечно, можно назвать приближенным к оригиналу, но лишь в определенной степени.
Устранить слишком уж наглядные проявления такого эффекта и призван метод, названный дизерингом. Что же он собой представляет?
Принцип прост. В запись порционно добавляются специально сгенерированные неточности/шумы, накладывающиеся на те ее фрагменты, где имеют место шумы квантования. То есть на слишком длинные по мнению алгоритма однородные участки. Это позволяет привнести в звук ту естественность, которую он при квантовании утратил. Слушать такую запись по умолчанию приятнее.
Тот же метод применяется и для цифровых изображений в некоторых форматах с пережатием. К примеру, в PNG.
Вот тут начинается самое интересное. Разрядности современных студийных записей (24/192 и выше) вполне хватает для того, чтобы в 99,9% случаев избежать такого явления, как шумы квантования. Применение дизеринга для таких записей просто избыточно и привносит в них лишь дополнительную окраску звучания, пагубно влияющую на достоверность. Но, как мы знаем, “народным” является формат FLAC/ALAC с разрядностью 16/44.1. То есть полный аналог CD.
Что же происходит с изначальной студийной записью, когда с нее начинают штамповать CD-диски? Правильно! Детализация теряется. Плавные переходы, в которых не было места шумам квантования, все чаще сменяются ровными, как блин, участками. То есть происходит то же самое, что и при сохранении цифрового изображения с меньшим разрешением. На определенном расстоянии отличить их будет почти невозможно, но стоит подойти ближе/вслушаться и…
Вот тут на помощь звукорежиссеру со всей своей аптекарской точностью приходит беспристрастный алгоритм дизеринга, снабжая участки с шумами квантования порцией дополнительного, оживляющего их шума. Получаем эффект fight fire with fire. И звукозапись заново приобретает утраченную естественность и красоту. Но сохраняется ли при этом достоверность? Нет! Такая запись уже очень серьезно отличается от оригинала. Ведь она содержит в себе то, чего в изначальном произведении никогда не было. Пусть и в скрупулезно выверенных количествах.
А теперь вернемся к вопросу lossless-форматов. Откуда мы берем те самые FLAC 16/44.1? Давайте будем честны сами с собой. 90% таких файлов – это рипы с CD-дисков, а не прямая понижающая переоцифровка со студийных записей. Что же мы имеем? А то, что происходит повторное квантование с не самой высокой разрядностью 16/44.1. И этот процесс заново воскрешает участки с шумами квантования, “закрашивая одним цветом” то, что звукооператором при записи CD было профессионально разбавленно полезными шумами дизеринга. Именно для таких файлов и нужно включать заветную опцию Dither в foobar2K или Neutron.
Помимо этого варианта применения существует и другой. Он заключается в необходимости воспроизведения Hi-Res Audio файлов на аппаратуре, не поддерживающей bit-perfect декодирование таких файлов и стремящейся провести понижающую передискретизацию до тех самых 16/44.1 или 16/48 на лету. Прямо при воспроизведении. В таких случаях Dither также способен очень сильно выручить. По крайней мере, музыку станет комфортнее слушать. Исчезнет грязь и размытость. Звук станет более согласованным. Но повторюсь, не стоит обольщаться! Dithering все же пагубно влияет на достоверность звучания. И если у вас есть возможность обойтись без него, советую так и поступить.
На этом всё. Надеюсь, эта информация была вам полезна и теперь вы будете пользоваться опцией Dither аккуратно и с пониманием. До скорого!
Браво! Трудно представить себе более дилетантскую статью про дизеринг. Особенно ярко автор раскрыл свои незнания в области цифрового аудио в своих комментариях. К сожалению, одним “белым пятном” меньше так и не стало.
1. ошибки квантования не имеют ничего общего с частотой. Сравнивать их с пикселями в изображении некорректно. Они не влияют на “плавность частотных переходов”, как утверждает автор. Они лишь добавляют низкоуровневые шумы, но гораздо более неприятные, чем шум дизеринга, о котором так предостережительно говорит автор.
2. Все современные 24-битные аудио интерфейсы по умолчанию используют дизеринг при воспроизведении файлов более высокой разрядности. Никакой необходимости включать его в плеере нет. Более того, отключить его в аудиокартах невозможно. (функция дизеринга в Foobar существует только для старых 16-разрядных аудиоинтерфейсов) Ни о какой деградации аудио речи не идет. Шум дизеринга и шум квантования равны между собой. Однако дизеринг увеличивает динамический диапазон 16-битной записи до 20 бит (что соответствует >118 dB динамического диапазона) и звучит похоже на шум магнитной ленты, что никак не может ухудшить музыкальность фонограммы. Дизеринг с шейпингом незначительно влияет на частотный окрас фонограммы, но шейпинг необходимо подбирать либо просто не использовать.
3. при конвертации рипов во flac качество сигнала остаётся неизменным при условии, что не меняется разрядность (длина слова) и частота дискретизации.
4. Дискретизация не имеет ничего общего с квантованием.
5. при квантовании из 24 бит в 24 бит либо из 16 в 16 деградации никакой не происходит, так как уровень сигнала остаётся неизменным. Шумы квантования появляются лишь в следствии не кратных изменений динамического уровня сигнала в большую или меньшую стороны.
6. Но особенно развеселило реплика Автора в комментариях: “Для справки – уменьшение разрядности записи само по себе является одним из видов понижающей передискретизации”. Это уже ни в какие ворота не лезет… Видимо автор выдумывает термины на лету, не вдумываясь какую белиберду он пишет. “Передискретизация” не может быть понижающей и уж никакого отношения не может иметь к разрядности.
Андрей, я меломан. Про 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 без включения дизеринга? Или этим можно пренебречь и просто наслаждаться музыкой? Спасибо.
не теряете, если делаете транкейт единожды. Шум квантования будет настолько низок, что услышать его будет практически невозможно.
Спасибо.
Что-то тут смешались в кучу кони-люди. Попробую объяснить на пальцах.
CDA, WAV, FLAC и прочие распространенные форматы кодируют звук с помощью импульсно-кодовой модуляции (Pulse-Code Modulation – PCM). Строго говоря, надо добавлять, что это линейная импульсно-кодовая модуляция, то есть семплы считываются с постоянной скоростью. Бывает еще нелинейная (с переменной скоростью), но это зверь редкий, и для записи звука практически не используется. Во избежание путаницы лучше не использовать слово “семпл”, а то тут уже вспомнили в комментариях “библиотеки семплов”, которые относятся уже к MIDI и синтезаторам, а не простой цифре. Будем использовать слово “фрейм”.
При воспроизведении ЦАП 44.1 тысячи раз в секунду (или сколько задано форматом) читает значение в следующем фрейме и программирует свою аналоговую часть. Шум квантования при этом есть ВСЕГДА, это характеристика ЦАПа и его схемы аналогового преобразования. У современных ЦАПов это очень низкое значение, и куда важнее “тепловой” шум полупроводниковых компонентов. Тем не менее, шум квантования всегда присутствует.
Рип источника – это просто копирование последовательности значений фреймов на уровне данных. В этом процессе ЦАП не участвует вообще. При копировании могут возникать ошибки, но хороший софт их либо не допускает, либо сводит к абсолютному минимуму. Рип источника, который записан в другой технологии (например с использованием дельта-сигма модуляции, DSD) требует хотя бы виртуальной передискретизации с использованием ЦПУ либо имеющегося под рукой ЦАПа. В такой ситуации появление дополнительных дефектов неизбежно как на уровне ресемплинга, так и на уровне понижения разрядности.
Что касается дизеринга, то он вступает в дело не при передискретизации, а при УМЕНЬШЕНИИ РАЗРЯДНОСТИ исходного материала (для LPCM). Если разрядность уменьшается, скажем, с 24 бит до 16, то тут уже без дизеринга не обойтись, если хочется сохранить приемлемое отношение сигнал-шум. А передискретизация при сохранении разрядности требует совсем других алгоритмов – там важнее использование фильтров высокой и низкой частоты высокой добротности и подбор крутизны обрезающей кривой. Идеальный фильтр – жесткая ступенька, но его использование мало кому понравится, потому что искажений в высоких и гармоник при этом вылезет over9000.
Дизеринг действительно призван уменьшить шум квантования при уменьшении разрядности. Если ее уменьшить тупо, то в результирующем материале возникнут неприятные ступеньки, которые влекут за собой появление гармонических искажений. Хорошие алгоритмы дизеринга используют психоакустические модели и подмешивают шумовую составляющую в сигнал. Это позволяет добиться снижения воспринимаемого уровня шума на 10-12 Дб на длинных фейдах. Плюс к тому там еще задействована функция бланкинга для получения истинной тишины там, где надо.
В общем случае хороший алгоритм дизеринга не может работать в реальном времени, поскольку требует анализа окна звука не в несколько фреймов (которые помещаются в буфер), а в несколько секунд. Дизеринг в реальном времени – это чаще всего дешевый трюк, и он неизбежно вносит нелинейные искажения в результирующий сигнал. Шумовая составляющая у таких недоделок не подобрана тщательно под исходный звук, а чаще всего основана на функции розового или белого шума, что кое-как где-то работает, но серьезного улучшения того самого отношения сигнал-шум дать не может. Из чего очевидным образом следует рекомендация отключать этот улучшайзер безоговорочно.
Дизеринг в реальном времени уже довольно давно работает на основе предикативных алгоритмов. Для которых ну ни разу не нужен буфер длинной в несколько секунд. и никакого дешевого трюка тут нет.
Для справки – уменьшение разрядности записи само по себе является одним из видов понижающей передискретизации. И в свою очередь не может означать неминуемое применение дизеринга. Без изменений частоты семплирования его необходимость не очевидна.
Вопрос, видимо, в качестве, которое требуется. Алгоритмы реального времени в среднем способны обеспечить уровень шума на уровне -96-110 Дб. Для студийного качества это недостаточный уровень.
RT-дизеринг foobar2K равно как и Neutron Player уже давно перешагнули за 120. Ну да ладно
Нет, не перешагнули. Тут производители кривят душой, указывая одну из компонент суммарного шума, например, интермодуляционные искажения, которые действительно в хороших образцах взвешенно по частотам доходят до -130. Для реального времени отличный результат, но неплохо бы посмотреть равномерность этой шумовой характеристики и значения по всем составляющим, а так же алиасинг сигнала в ультразвуке. В общем, останусь я при своем мнении – хороший студийный софт с окном начиная от 4096 фреймов даст многим лучший результат.
И все же: ресемплинг и понижение разрядности – это разные процессы. Их, конечно, можно проводить в один проход, но при необходимости контролировать результат лучше в два. Я тут не про реальное время, конечно, а про студийную работу. Откройте, например, Izotope RX2 и посмотрите на настройки ресемплера и дизеринга – это разные процессы, и параметры у них разные. При изменении частоты семплирования без изменения разрядности дизеринг не используется – там куда большая проблема с алиасингом и “звоном”.
начали за здравие и закончили за упокой :). Дизеринг в реальном времени по определению дает лучший результат при воспроизведении 16/44, чем вариант без него. Тот же Mac-овский Audirvana с iZotop-ом внутри к стати содержит в себе более 5 различных вариантов дизера в реальном времени. И чувствует себя при этом прекрасно. Звук при воспроизведении CD-DA при включенном дизере там мягко говоря улучшается.
Студийная же работа со звуком – это тема для принципиально других статей.
Лучший результат даст хороший звуковой интерфейс, который нативно, аппаратно, поддерживает любые частоты дискретизации и переменную разрядность. Конечно, если такого под рукой нет, то дизеринг поможет уменьшить шумы. Просто если мыслить в бескомпромиссных категориях, то я бы посоветовал медленным и печальным способом пересемплировать всю библиотеку и забыть про программную обработку в реальном времени по возможности. Ну а если возможности нет… тут уж никуда не деться.
Если мыслить в бескомпромиссных категорях, то 16/44 вообще нет места в музыкальной библиотеке. Сам по себе CD-DA уже компромисс. А потому перечисленные заморочки – практически бесполезная и ничем не оправданная трата времени.
Во-от. С этим полностью согласен. Жаль, что не все можно найти в хорошем качестве.
В статье есть несколько неявно описанных моментов с точки зрения новичка:
1. Глава “Практика”: из картинки со ступеньками возникает ощущение, что дизеринг нужно использовать при понижении частоты дискретизации.
2. “И звукозапись заново приобретает утраченную естественность и красоту”: то есть сначала происходит потеря естественности, а потом подмешивают шум и естественность восстанавливается?
3. “Именно для таких файлов и нужно включать заветную опцию Dither”: имется ввиду, что опцию рекомендуется включать всегда при прослушивании FLAC 16/44.1?
Т.е. Dither возвращает “то, что звукооператором при записи CD было профессионально разбавленно полезными шумами”? Это (галочка) касается только wasapi, или asio тоже?
Эта галочка касается любого режима, в опциях которого она существует. Ну а в каких случаях Dither выполняет полезные функции, описано в статье. Весьма однозначно :)
Я с утрица нифига не понял, кроме того что Flac 192/24 это ваще не касается и нужно слушать в этом формате… а если вдруг вам досталась криворукая конвертация CD-диска во Flac 41/16 тогда нужно галочку ставить… Кстати почему в статье не стоит где и куда эту галочку ставить .. Только из скриншота понятно куда лесть… А если я тупой и мне надо пошагово объяснить куда тыкаться?
– то с вероятностью 99.9% эти статьи не представляют для тебя никакого интереса. Не говоря уже об информационной ценности. Я фокусируюсь на определенной целевой аудитории. Стремление же угождать всем не увенчается успехом.
Сергей, прости, но я предупреждал по поводу мата. Комментарий удаляется. Огромная просьба, дружище, пожалуйста, будь немного сдержанней в выражениях. Спасибо :)
Мене скушно… Ну ты хоть прочиткал… Хлебнул суть…
…iT ресурсы делятся на 3 категории… Туда куда ходишь когда нужно решить проблему… Туда куда лезешь чтоб развлечься… И те где меряются первичными половыми признаками высоколобые (тут нет цензурного слова)… Кеддрюком стремительно из второго превращается в третье и это печалька потому что первым он никогда не был…
Категория “те, куда ходишь, чтобы узнать что-то новое” для тебя не существует исходя из этой логики. Ну ок :)
Андрей, спасибо за статью, очень интересно!
Я не совсем понял тезис о повторном квантовании при кодировании CD-ripов в FLAC.
CD-rip по сути своей – это набор wav-файлов, которые, в свою очередь, содержат тот самый результат работы звукооператора. Само же кодирование FLAC не подразумевает никакого переквантования, а просто сжимает аудиоданные без потерь, чтобы при воспроизведении восстановить на 100% тот же исходный wav. Таким образом, квантование в указанном процессе происходит один-единственный раз – при записи CD. Разъясните, пожалуйста.
Увы, нет. rip CD подразумевает собой создание этих самых wav-файлов. Путем считывания “цифры”. Считывать ее без использования квантователя не научились до сих пор. Квантователь этот бесстратсен. И ему абсолютно все равно, имеет ли он дело с “цифрой” или аналоговым звуком. Его задача свести количество помех и ошибок квантования к минимуму. И некоторые участки с dither-постобработкой он вполне спокойно сочтет шумом/пылью на считывающем лазере. И сгладит эти моменты до идеальной прямой. Итог – шум квантования возрождается.
С CD считывается цифра. Она уже готовая. Это не винил и не магнитная лента, где идет преобразование, (а, соответственно, и квантование) из аналогового сигнала в цифровой. Информация с CD считывается ровно в том виде, как была туда записана, без всякого квантования. В этом и смысл цифровых носителей информации. Так о каком “квантователе” при считывании цифровых данных вы говорите?
– внезапно, правда? :)
Или вы думаете, что треки на CD хранятся в wav-формате? Это далеко не так. Ну и помимо всего прочего – в любой процесс конвертирования аудио так или иначе неизбежно вовлечено квантование.
Андрей, вы ошибаетесь. Не знаю, откуда вы взяли приведенную цитату, но доверия написанный текст у меня лично не вызывает. Я хорошо знаком с форматом CD-DA, рекомендую и вам почитать про этот формат и особое внимание обратить на избыточность данных, предназначенную для коррекции ошибок чтения. Эта избыточность как раз и предназначена для обеспечения надежного считывания данных именно в том виде, как они были записаны.
Если говорить о воспроизведении аудио CD, то тут используются совершенно другие алгоритмы, нежели при риппинге. Цель алгоритмов воспроизведения – обеспечить непрерывный поток аудиоданных, пусть даже ценой неточности в декодировании. При этом декодер аудиоданных позволяет себе такие вольности, как интерполяция ошибочно считанных или нечитаемых вовсе сэмплов. Отсюда и возникают мифы о невозможности 100% точного рипа. Хотя на самом деле он возможен.
Алгоритмы риппинга нацелены на другое – как можно более точное считывание записанных данных. Поэтому они могут требовать больше времени, чем воспроизведение в реальном времени, особенно для дисков с физическими дефектами.
Еще раз повторю: диск содержит цифровые данные, никакого переквантования при риппинге не происходит, если диск без физических дефектов. Данные считываются 1:1 в идеальной ситуации (диск без дефектов).
Что касается конвертирования аудио: при преобразовании wav в flac, повторюсь, никакого квантования, помимо уже существующего в wav, не производится. Если же говорить о lossy форматах, там, конечно, совершенно другая история.
Вы не правы.
Аргументы будут? Я свою позицию выразил достаточно четко и аргументированно, того же ожидаю и от оппонентов.
А подобные высказывания, извините, не рассматриваю в силу их несерьезности.
Эта цитата взята из википедии. Пожалуйста, не путайте считывание данных с их преобразованием в wav-формат. Как вы сами и говорите, избыточность нужна для корректного считывания. Которое в свою очередь происходит при воспроизведении.
Переквантование же при риппинге происходит. Ведь меняется формат хранения тех самых данных.
Я не желаю и дальше с вами спорить. Пусть каждый останется при своем мнении. То, о чем я говорю, основано на личном опыте.
Квантование же при переводе WAV во FLAC проводится. Ведь мы имеем дело с абсолютно иным контейнером.
Для ликвидации же пробела в ваших знаниях о конвертации очень рекомендую ознакомиться вот с этим: http://audiophilesoft.ru/publ/my/foobar2000_converter_setup/11-1-0-27
Конвертер глубины бит и применение PCM с плавающей точкой как бы безальтернативно намекают на неизбежность промежуточного переквантования :).Но повторюсь, доказывать что-либо я не намерен. Вы в полном праве оставаться при своем мнении.
Андрей, я затеял этот спор не с целью что-то кому-то доказать, а с целью пополнить и скорректировать свои знания в интересной мне области.
Жаль, что вы не разделяете моего желания совершенствоваться, ну да это личное дело каждого.
Что до WAV-формата – это, по-хорошему, тема для отдельной статьи. Но несколько ремарок я все же сделаю. Во-первых, WAV формат совершенно замечательно позволяет хранить данные в формате PCM 16 бит, частота квантования 44100 Гц. То есть, именно тот формат, в котором записаны аудиоданные на дисках CD-DA. Таким образом, это идеальный формат для хранения данных _без_ какой-либо конвертации и квантования. Во-вторых, сам файл WAV – это набор семплов PCM с заголовком. Это универсальный формат, только и всего. Никакого преобразования аудиоданных при риппинге из CD-DA в WAV _не_происходит_.
Касательно квантования при преобразовании из WAV в FLAC – извините, но вы показываете недостаточную теоретическую подготовленность. Цель FLAC (как и любого другого lossless-кодека) – получить на выходе именно тот набор семплов, который использовался при кодировании. Таким образом, никакого изменения содержимого семплов и тут не происходит. Мы имеем дело с алгоритмом сжатия для компактного хранения данных, но не с алгоритмом преобразования звука, как в случае с MP3.
Ваш пример с конвертером фубара работает только в случае, когда мы задаем частоту квантования, отличную от исходной. В примере, с которого мы начали разговор, идет речь о формате 16/44, и никаких изменений формата не подразумевалось.
Ну и википедия – не самый надежный источник информации. Это так, уже к слову.
[quote]Таким образом, никакого изменения содержимого семплов и тут не происходит[/quote] – вот тут все очень далеко не так. Набор семплов определяется не самой записью в единоличном режиме. Но еще и тем, какой библиотекой семплов располагает конкретное аудио-устройство, отвечающее за кодирование. И тут применительно к разным аудиокартам возможны очень разные варианты.
WAV – это формат разве что самописных CD. Штампованные экземляры его не используют. Здесь мы уже говорим как минимум о .cda
Ну и даже при сохранении параметров квантования изначальной записи, как мы уже понимаем, переквантование имеет место быть. Ведь тот же FLAC подразумевает PCM с плавающей точкой. В отличие от фиксированного WAV/cda.
В целом же очень благодарен за дискуссию. Всегда приятно вести аргументированный спор. Независимо от того, кто оказывается прав :)
Простите Андрей, но это уже ни в какие ворота.
Раз и навсегда закройте этот вопрос:
Андрей, возьмите, в конце концов, любой 44/16 WAV файл и конвертните его в том же foobar во FLAC, И затем Этот flac конвертните обратно в WAV. Вы получите два побитно идентичных WAV файла.
…не имеют никакого отношения к формату FLAC 44/16
Ознакомьтесь на досуге о понятии “контейнер”. И применительно к FLAC мы меняем лишь способ хранения цифровых данных, сами данные остаются неизменными.
Из вашей же логики следует, что упакованный в RAR файл, и распакованный из него будут разными, но это полный бред.
Андрей, я соглашусь с ораторами тут, Вы тут ошибаетесь. Если прочитать и правильно понять эту запись, она не подразумевает какие-либо переквантования. Там говорится лишь то, что обычно носитель не отформатирован для удобного использования в ФС компьютера, поэтому риппинг – это ре-форматирование данные для использования их в ФС компьютера. Грубо говоря, если у Вас есть один диск с ФС exFat, а другой диск с ФС HFS+, то записанный на эти ФС файл будет различаться на физическом уровне, но при считывании его с обоих дисков и побитовом сравнении он будет абсолютно идентичен. Какие-либо ошибки рипинга диска получить можно, но точно так же можно и сделать 1 в 1 точную копию цифровых данных с CD.
Мишаил, ниже я привел контр-аргументы. Увы, но не все так просто применительно к смене аудио-контейнеров.