Опубликовано: 26.12.2018  
   

Проблемы оцифровки звука. Часть 2. Дизеринг (Dithering), Нойзшепинг (Noise Shaping), Транкейт (Truncate), Раундинг (Rounding).

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

Проблемы оцифровки звука

В прошлой статье мы выяснили, что когда происходит оцифровка звука аналоговый сигнал преобразуется с некоторой погрешностью. Эти погрешности на слух и воспринимаются как шум, так называемый «шум квантования». Конечно, если мы работаем с битностью 24 Bit или 32 Bit, то о шуме можно практически забыть, так как он очень мал. Но вот незадача, потребительский аудиоформат компакт-дисков это 16 Bit/ 44 100 Hz. Значит разрядность приходиться понижать с 32 или 24 Bit до 16 Bit.

Шум квантования при 16 Bit разрешении звука тоже довольно не высокий. Но у него есть одна неприятная особенность — создаваемый шум коррелирован (взаимосвязан) с полезным сигнал. Этот шум очень сильно формировал у людей негативное отношение к цифровому звуку. Звук воспринимался как «металлический», «плоский», «пластмассовый».

Но всё изменилось с появлением специальных методов обработки звука — Дизеринг (Dithering), Нойзшепинг (Noise Shaping).

Дизеринг (Dithering)

Дизеринг или дитеринг переводиться как didderen — дрожать. Суть его состоит в том, что до понижения разрядности к полезному сигналу подмешивается очень слабый специфичный шум, который забивает шум квантования. В итоге эта смесь гораздо меньше воздействует на психику человека и на восприятие музыки. Запись получается более шумной, но этот шум настолько мал, что он практически неуловим на слух. А теперь поподробнее.

В математике есть такое понятие как вещественные числа с бесконечным количеством цифр после запятой. (например, 5,1754309874….) Но компьютер, не может оперировать с бесконечно точными значениями величин времени и сигнала. Когда преобразуется аналоговый звук в цифровой АЦП регистрирует значения только в определённые моменты времени, а затем округляет их. Процесс округления сводиться к тому, что выкидывается уйма уточняющих цифр и остаются приблизительные значения характеризующие сигнал.

Например, если мы имеем аналоговый сигнал, поступающий в АЦП с частотой дискретизации 96 kHz и 24 Bit. На выходе из АЦП  мы получаем комбинацию из единиц и нулей в количестве 24 штуки на каждый отсчёт. ЦАП (цифро-аналоговый преобразователь) также может принимать эту последовательность и выдавать приближенную копию исходного аналогового сигнала. Теперь, попробуем записать эту последовательность на компакт-диск, где только 16 Bit. Как это сделать? Берём и убираем младшие 8 Bit. Если объяснить проще, то это округление происходит так. Приходите в магазин. К примеру, хлеб стоит 56 руб. 78,4983 коп. Когда вы его оплачиваете на кассе с вас берут 56руб. 79 коп. или просто 57 руб.

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

Как работает Дизеринг

Возьмём для примера исходный сигнал с разрядностью 24 Bit. Сигнал будет иметь 24 отсчёта. Представим, что имеются вот эти отсчёты: AFDY JHUK JDUH JIDK JDHU FLDO, каждая из букв это либо 0 либо 1 (двоичное представление). Бит A (1 буква) — старший, соответственно O (последняя буква) — младший. Сам дизеринг при этом будет иметь следующую форму 0000 0000 0000 0000 ОАЛШ ВДЛО. Здесь последние 8 букв (младшие 8 Bit) соответствуют 0 или 1, а все старшие 16 равны 0.

После того как эти два сигнала суммируются, происходит обрезание до 16 Bit. При этом получившийся 16-битный сигнал имеет форму: AFDY JHUK JDUH JIЁЪ, где последние младшие 2 бита D и K могут измениться из за суммирования с дизерингом и стать Ё и Ъ. Получается, что убранная последовательность JDHU FLDO влияет на 2 младших бита Ё и Ъ.

После экспериментов оказалось, что добавление подобного шума не ухудшает восприятие 16 битной музыки, а наоборот улучшает.  Все важные характеристики, которые исчезали при простом обрезание младших 8 бит, остаются при обработки методом дизеринга. Вот это чудеса!!!

Нойзшепинг (Noise Shaping)

Спектральные характеристики шумового сигнала у разных фирм разные, начиная от белого шума до совсем специфичных (формально можно сказать нешумовых) сигналов. Но этот спектр важен, так как от него зависит не только восприятие самого шума, но и в целом общего шума записи. Также зависит и насколько широким будет динамический диапазон записи в целом.

Если шум имеет спектр сосредоточенный в высокочастотном диапазоне, то это и есть довольно распространённый алгоритм дизеринга — Нойзшепинг.  Суть  в том, что при его применении большая часть энергии шума находится в области высоких частот. Эта область имеет наименьшую восприимчивость для человеческого слухового аппарата. Получается, что на слух он практически не заметен и при этом прекрасно делает свою работу.

Не злоупотребляете дизерингом и нойзшепингом. Опытные звукорежссёры советуют пользоваться им один раз за весь период осуществления проекта. Постоянные преобразования из 24 в 16 и наоборот, убьют качество и уже никакой дизеринг не поможет. Также дизерингом не удастся компенсировать низкую разрядность внутренней арифметики процессоров (плагинов).

Несколько проблем с оцифровкой звука о которых следует знать

Как мы уже поняли дизеринг тесно связан с разрядность, точнее с  преобразованием из одной разрядность в другую, более грубую. (например, 24⇒16 Bit).

Но одно дело, когда мы осмысленно применяем его там, где это необходимо. А другое когда происходит транкейт или раундинг.

Транкейт (truncate)

Truncate переводится как усекать, отсекать. Этим термином обозначают целый ряд проблем, связанных c цифровым звуком, разрядностью выше 16 Bit. И прежде это связано с некотролируемым понижением разрядности. То есть оно происходит в тайне от вас или вы не обращаете на это внимание. К примеру, имеется три прибора: первый и последний 24 битные, а средний 16 битный. В итоге сигнал от первого понижается до 16 Bit, происходит транкейт. И никто этого не замечает. А у 16 битного звука есть шум квантования, который как вы уже знаете, довольно неприятный. Чем чаще в процессе обработки происходит транкейт, тем качество звучания всё больше снижается.

Конечно, можно сказать, что у меня нет супер дорогих приборов за тысячи долларов и все обработки имеются в цифровом виде в плагинах. Так вот, если обработать 24 битный аудиофайл 16 битным плагином (например, реверберация) это уже транкейт.

Способ борьбы с транкейтом простой. Есть инструкции, читайте её внимательно.

Схожим с транкейтом, является ещё один алгоритм изменения разрядности — Раундинг.

Раундинг (Rounding)

Если транкейт при изменения разрядности просто отсекает избыточное значение. То раундинг округляет промежуточное избыточное значение вверх или вниз.

Допустим, есть число 4,6. При транкейте мы получим просто число 4 (отсекутся 0,6), а при раундинге 0,6 округлятся к ближайшему целому числу, то есть к 5.

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

Спасибо, что вы с нами!

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

Похожие записи

Рассказать о New Style Sound друзьям:

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.