Мастеринг в обратную сторону: можно ли увеличить динамический диапазон сжатых записей? Динамическая компрессия Факторы, ограничивающие динамический диапазон

Эта группа методов основана на том, что передаваемые сигналы подвергаются нелинейным преобразованиям амплитуды, причем в передающей и приёмной частях нелинейности взаимообратны. Например, если в передатчике используется нелинейная функция Öu , в приемнике – u 2 . Последовательное применение взаимообратных функций приведет к тому, что в целом преобразование остается линейным.

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

; (2.17)
. (2.18)

Естественное желание увеличить динамический диапазон с помощью уменьшения U min ограничивается чувствительностью аппаратуры и возрастанием влияния помех и собственных шумов.

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

В то же время эти методы имеют и недостатки. Первый из них заключается в том, что логарифм малого числа отрицателен и в пределе:

то есть, чувствительность очень нелинейна.

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

причем А=87,6. Выигрыш от сжатия при этом составляет 24дБ.

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

Сжатие данных путем компрессии из-за ограничений по точности используется в неответственных случаях, например, для передачи речи по телефонным и радиоканалам.

Эффективное кодирование

Эффективные коды были предложены К.Шенноном, Фано и Хафманом . Сущность кодов заключается в том, что они неравномерные, то есть с неодинаковым числом разрядов, причем длина кода обратно пропорциональна вероятности его появления. Еще одна замечательная особенность эффективных кодов - они не требуют разделителей, то есть специальных символов, разделяющих соседние кодовые комбинации. Это достигается при соблюдении простого правила: более короткие коды не являются началом более длинных. В этом случае сплошной поток двоичных разрядов однозначно декодируется, поскольку декодер обнаруживает вначале более короткие кодовые комбинации. Эффективные коды долгое время были чисто академическими, но в последнее время успешно используются при формировании баз данных, а также при сжатии информации в современных модемах и в программных архиваторах .

Ввиду неравномерности вводят среднюю длину кода. Средняя длина - математическое ожидание длины кода:

причем, l ср стремится к H(x) сверху (то есть l ср > H(x)).

Выполнение условия (2.23) усиливается при увеличении N.

Существует две разновидности эффективных кодов: Шеннона-Фано и Хафмана. Рассмотрим их получение на примере. Предположим, вероятности символов в последовательности имеют значения, приведенные в таблице 2.1.

Таблица 2.1.

Вероятности символов

N
p i 0.1 0.2 0.1 0.3 0.05 0.15 0.03 0.02 0.05

Символы ранжируются, то есть представляются в ряд по убыванию вероятностей. После этого по методу Шеннона-Фано периодически повторяется следующая процедура: вся группа событий делится на две подгруппы с одинаковыми (или примерно одинаковыми) суммарными вероятностями. Процедура продолжается до тех пор, пока в очередной подгруппе не останется один элемент, после чего этот элемент устраняется, а с оставшимися указанные действия продолжаются. Это происходит до тех пор, пока в последних двух подгруппах не останется по одному элементу. Продолжим рассмотрение нашего примера, которое сведено в таблице 2.2.

Таблица 2.2.

Кодирование по методу Шеннона-Фано

N P i
4 0.3 I
0.2 I II
6 0.15 I I
0.1 II
1 0.1 I I
9 0.05 II II
5 0.05 II I
7 0.03 II II I
8 0.02 II

Как видно из таблицы 2.2, первый символ с вероятностью p 4 = 0.3 участвовал в двух процедурах разбиения на группы и оба раза попадал в группу с номером I . В соответствии с этим он кодируется двухразрядным кодом II. Второй элемент на первом этапе разбиения принадлежал группе I, на втором - группе II. Поэтому его код 10. Коды остальных символов в дополнительных комментариях не нуждаются.

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

По графу ориентируются следующим образом: составляют маршрут для выделенного символа; количество разрядов для него равно количеству ребер в маршруте, а значение каждого разряда равно направлению соответствующего ребра. Маршрут составляется из исходной точки (на чертеже она помечена буквой А). Например, маршрут в вершину 5 состоит из пяти ребер, из которых все, кроме последнего, имеют направление 0; получаем код 00001.

Вычислим для этого примера энтропию и среднюю длину слова.

H(x) = -(0.3 log 0.3 + 0.2 log 0.2 + 2 0.1 log 0.1+ 2 0.05 log 0.05+

0.03 log 0.03 + 0.02 log 0.02) = 2.23 бит

l ср = 0.3 2 + 0.2 2 + 0.15 3 + 0.1 3 + 0.1 4 + 0.05 5 +0.05 4+

0.03 6 + 0.02 6 = 2.9 .

Как видно, средняя длина слова близка к энтропии.

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

На втором этапе происходит собственно кодирование, которое начинается с последнего этапа: первому из двух символов присваивают код 1, второму - 0. После этого переходят на предыдущий этап. К символам, которые не участвовали в сжатии на этом этапе, приписывают коды с последующего этапа, а к двум последним символам дважды приписывают код символа, полученного после склеивания, и дописывают к коду верхнего символа 1, нижнего - 0. Если символ дальше в склеивании не участвует, его код остается неизменным. Процедура продолжается до конца (то есть до первого этапа).

В таблице 2.3 показано кодирование по алгоритму Хафмана. Как видно из таблицы, кодирование осуществлялось за 7 этапов. Слева указаны вероятности символов, справа - промежуточные коды. Стрелками показаны перемещения вновь образованных символов. На каждом этапе два последних символа отличаются только младшим разрядом, что соответствует методике кодирования. Вычислим среднюю длину слова:

l ср = 0.3 2 + 0.2 2 + 0.15 3 ++ 2 0.1 3 + +0.05 4 + 0.05 5 + 0.03 6 + 0.02 6 = 2.7

Это еще ближе к энтропии: код еще более эффективен. На рис. 2.12 приведено дерево кода Хафмана.

Таблица 2.3.

Кодирование по алгоритму Хафмана

N p i код I II III IV V VI VII
0.3 0.3 11 0.3 11 0.3 11 0.3 11 0.3 11 0.4 0 0.6 1
0.2 0.2 01 0.2 01 0.2 01 0.2 01 0.3 10 0.3 11 0.4 0
0.15 0.15 101 0.15 101 0.15 101 0.2 00 0.2 01 0.3 10
0.1 0.1 001 0.1 001 0.15 100 0.15 101 0.2 00
0.1 0.1 000 0.1 000 0.1 001 0.15 100
0.05 0.05 1000 0.1 1001 0.1 000
0.05 0.05 10011 0.05 1000
0.03 0.05 10010
0.02

Оба кода удовлетворяют требованию однозначности декодирования: как видно из таблиц, более короткие комбинации не являются началом более длинных кодов.

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

Эффект от внедрения таких кодов определяется в сравнении их с равномерным кодом:

(2.24)

где n - количество разрядов равномерного кода, который заменяется эффективным.

Модификации кодов Хафмана

Классический алгоритм Хафмана относится к двухпроходным, т.е. требует вначале набора статистики по символам и сообщениям, а потом описанных выше процедур. Это неудобно на практике, поскольку увеличивает время обработки сообщений и накопления словаря. Чаще используются однопроходные методы, в которых процедуры накопления и кодирования совмещаются. Такие методы называются ещё адаптивным сжатием по Хафману [ 46].

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

После введения очередного символа входной последовательности пересматривается кодовое дерево: пересчитываются веса вершин и при необходимости вершины переставляются. Правило перестановки вершин следующее: веса нижних вершин наименьшие, причём вершины, находящиеся слева на графе, имеют наименьшие веса.

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

Перестановка осуществляется в основном для висячих вершин. При перестановке должно учитываться сформулированное выше правило: вершины с большим весом имеют и больший номер.

После прохождения последовательности (она называется также контрольной или тестовой) всем висячим вершинам присваиваются кодовые комбинации. Правило присвоения кодов аналогично вышеизложенному: количество разрядов кода равно количеству вершин, через которые проходит маршрут от исходной до данной висячей вершины, а значение конкретного разряда соответствует направлению от родителя к "ребёнку" (скажем, переход влево от родителя соответствует значению 1, вправо - 0).

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

Для повышения эффективности метода желательно увеличивать размер словаря; в этом случае коэффициент сжатия повышается. Практически размер словаря составляет 4 - 16 Кбайт памяти.


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

Предположим теперь, что символ, соответствующий вершине 1, в тестовой последовательности встретился вторично. Вес вершины изменился, как показано на рис. 2.14, вследствие чего правило нумерации вершин нарушено. На следующем этапе меняем расположение висячих вершин, для чего меняем местами вершины 1 и 4 и перенумеровываем все вершины дерева. Полученный граф приведён на рис. 2.15. Далее процедура продолжается аналогично.

Следует помнить, что каждая висячая вершина в дереве Хафмана соответствует определённому символу или их группе. Родитель отличается от детей тем, что группа символов, ему соответствующая, на один символ короче, чем у его детей, а эти дети различаются последним символом. Например, родителю соответствуют символы "кар"; тогда у детей могут быть последовательности " кара " и " карп ".

Приведённый алгоритм не является академическим и активно используется в программах - архиваторах, в том числе и при сжатии графических данных (о них речь пойдёт ниже).

Алгоритмы Лемпеля – Зива

Это наиболее часто используемые в настоящее время алгоритмы сжатия. Они используются в большинстве программ - архиваторов (например, PKZIP. ARJ, LHA). Сущность алгоритмов состоит в том, что некоторая совокупность символов заменяется при архивировании её номером в специально формируемом словаре. Например, часто встречающаяся в деловой переписке фраза "На ваше письмо исходящий номер..." может занимать в словаре позицию 121; тогда вместо передачи или хранения упомянутой фразы (30 байт) можно хранить номер фразы (1,5 байта в двоично - десятичной форме или 1 байт - в двоичной).

Алгоритмы названы в честь авторов, впервые предложивших их в 1977 году. Из них первый - LZ77. Для архивирования создается так называемое скользящее по сообщению окно, состоящее из двух частей. Первая часть, большего формата, служит для формирования словаря и имеет размер порядка нескольких килобайт. Во вторую, меньшую часть (обычно размером до 100 байт) принимаются текущие символы просматриваемого текста. Алгоритм пытается найти в словаре совокупность символов, совпадающую с принятыми в окно просмотра. Если это удаётся, формируется код, состоящий из трёх частей: смещение в словаре относительно его начальной подстроки, длина этой подстроки, следующий за этой подстрокой символ. Например, выделенная подстрока состоит из символов " прилож " (всего 6 символов), следующий за ней символ - "е". Тогда, если подстрока имеет адрес (место в словаре) 45, то запись в словарь имеет вид "45, 6. е ". После этого содержимое окна сдвигается на позицию, и поиск продолжается. Таким образом формируется словарь.

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

Недостатки алгоритма появляются при увеличении размера словаря - увеличивается время на поиск. Кроме того, если в текущем окне появляется строка символов, отсутствующая в словаре, трёхэлементным кодом записывается каждый символ, т.е. получается не сжатие, а растяжение.

Лучшие характеристики имеет алгоритм LZSS, предложенный в 1978г. В нём есть отличия в поддержании скользящего окна и выходных кодах компрессора . Помимо окна, алгоритм формирует двоичное дерево, аналогичное дереву Хафмана для ускорения поиска совпадений: каждая подстрока, покидающая текущее окно, добавляется в дерево в качестве одного из детей. Такой алгоритм позволяет дополнительно увеличить размер текущего окна (желательно, чтобы его величина равнялась степени двойки: 128, 256 и т.д. байт). По - другому формируются и коды последовательностей: дополнительно вводится 1- битный префикс для различения незакодированных символов от пар "смещение, длина".

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

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

, Медиаплееры

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

Разумеется, здесь есть исключения – послушайте не так давно вышедший альбом Стивена Уилсона от MA Recordings или Reference Recordings , и вы услышите, насколько хорошим может быть цифровой звук. Но это редкость, большинство современных звукозаписей громкие и сжатые.

Последнее время компрессия музыки подвергается серьезной критике, но я готов спорить, что практически все ваши любимые записи сжаты. Какие-то из них менее, какие-то более, но все равно сжаты. Сжатие динамического диапазона – это своеобразный козел отпущения, которого винят в плохом музыкальном звучании, но сильно сжатая музыка – это не новое веяние: послушайте альбомы Motown 60-х годов. То же самое можно сказать про классические работы Led Zeppelin или более молодые альбомы Wilco и Radiohead. Сжатие динамического диапазона уменьшает естественное соотношение между самым громким и самым тихим звуком на записи, поэтому шепот может быть таким же громким как крик. Довольно проблематично найти поп-музыку последних 50 лет, которая не была подвержена компрессии.

Недавно я мило побеседовал с основателем и редактором журнала Tape Op Ларри Крэйном (Larry Crane) о хороших, плохих и «злых» аспектах сжатия. Ларри Крэйн работал с такими группами и исполнителями как Стефан Маркус, Cat Power, Sleater-Kinney, Дженни Льюис, M. Ward, The Go-Betweens, Джейсон Литтл, Элиот Смит, Quasi и Richmond Fontaine. Он также управляет звукозаписывающей студией Jackpot! в Портленде, Орегон, которая являлась пристанищем для The Breeders, The Decemberists, Эдди Веддера, Pavement, R.E.M., She & Him и еще для многих-многих других.

В качестве примера удивительно неестественно звучащих, но все равно отличных песен, я привожу альбом Spoon «They Want My Soul», вышедший в 2014 году. Крэйн смеется и говорит, что слушает его в машине, поскольку там он отлично звучит. Что приводит нас к еще одному ответу на вопрос, почему музыку сжимают: потому что сжатие и дополнительная «четкость» позволяют лучше её слышать в шумных местах.

Ларри Крэйн за работой. Фото Джейсона Куигли (Jason Quigley)

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

Многие торопятся обвинять мастеринг-инженеров в злоупотреблении компрессией, однако сжатие применяется непосредственно во время звукозаписи, во время микширования и только потом во время мастеринга. Если вы лично не присутствовали на каждом из этих этапов, то не сможете сказать, как звучали инструменты и вокальная партия в самом начале процесса.

Крэйн был в ударе: «Если музыкант хочет намеренно сделать звук безумным и искаженным как записи Guided by Voices, то в этом нет ничего плохого – желание всегда перевешивает качество звучания». Голос исполнителя практически всегда сжимается, то же самое происходит с басом, барабанами, гитарами и синтезаторами. С помощью компрессии громкость вокала сохраняется на нужном уровне на протяжении всей песни или немного выделяется на фоне остальных звуков.

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

Если бы музыканты хотели, чтобы вы слушали музыку, не прошедшую этапы микширования и мастеринга, то выпускали бы её на полки магазинов прямиком из студии. Крэйн говорит, что люди, которые создают, редактируют, микшируют музыкальные записи и проводят их мастеринг, существуют не для того, чтобы путаться под ногами у музыкантов – они помогают исполнителям с самого начала, то есть уже более ста лет.

Эти люди – часть процесса творения, в результате которого получаются удивительные произведения искусства. Крэйн добавляет: «Вам не нужна версия «Dark Side of the Moon», которая не прошла через микширование и мастеринг». Pink Floyd выпустили песню в таком виде, в каком они хотели её слышать.

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

Объять необъятное

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

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

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

В классической фотографии для оценки возможности фотоаппарата (или носителя в случае пленочных камер) передавать определенный диапазон яркостей используется понятие фотографической широты (подробнее см. во врезке). Теоретически фотографическая широта цифровых фотоаппаратов определяется разрядностью аналого-цифрового преобразователя (АЦП). Например, при применении 8-разрядного АЦП с учетом погрешности квантования теоретически достижимое значение фотографической широты составит 7 EV, для 12-разрядного - 11 EV и т.д. Однако в реальных устройствах динамический диапазон изображений оказывается у же теоретического максимума вследствие влияния разного рода шумов и прочих факторов.

Большой перепад уровней яркости представляет собой серьезную
проблему при фотосъемке. В данном случае возможностей фотоаппарата
оказалось недостаточно для адекватной передачи наиболее
светлых областей сцены, и в результате вместо участка голубого
неба (отмечен обводкой) получилась белая «заплатка»

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

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

Фотографическая широта современных моделей цифровых фотоаппаратов, оснащенных сенсорами большого размера и 14- либо 16-разрядными АЦП, составляет от 9 до 11 EV, что значительно больше по сравнению с аналогичными характеристиками цветных негативных пленок 35-миллиметрового формата (в среднем от 4 до 5 EV). Таким образом, даже относительно недорогие цифровые фотоаппараты обладают фотографической широтой, достаточной для адекватной передачи большинства типичных сюжетов любительской съемки.

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

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

Динамический диапазон и фотографическая широта

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

Ширину динамического диапазона можно выразить в виде отношения (например, 1000:1, 2500:1 и т.п.), однако чаще всего для этого используется логарифмическая шкала. В этом случае вычисляется значение десятичного логарифма отношения максимальной яркости к ее минимальной величине, а после числа ставится прописная буква D (от англ. density?- плотность), реже?- аббревиатура OD (от англ. optical density?- оптическая плотность). Например, если отношение максимальной величины яркости к минимальному значению какого-либо устройства составляет 1000:1, то динамический диапазон будет равен 3,0 D:

Для измерения фотографической широты традиционно используются так называемые единицы экспозиции, обозначаемые аббревиатурой EV (от англ. exposure values; профессионалы зачастую именуют их «стопами» или «ступенями»). Именно в этих единицах обычно задается величина коррекции экспозиции в настройках фотоаппарата. Увеличение значения фотографической широты на 1 EV эквивалентно удвоению разницы между максимальным и минимальным уровнями яркости. Таким образом, шкала EV также является логарифмической, но для расчета численных значений в данном случае применяется логарифм с основанием 2. Например, если какое-либо устройство обеспечивает возможность фиксации изображений, отношение максимальной величины яркости к минимальному значению которых достигает 256:1, то его фотографическая широта составит 8 EV:

Сжатие - разумный компромисс

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

Чтобы снизить вероятность потери деталей высококонтрастных снимков, преобразуемых внутри камеры в 8-битный JPEG, в аппаратах многих производителей (причем не только компактных, но и зеркальных) были внедрены специальные функции, позволяющие без вмешательства пользователя сжимать динамический диапазон сохраняемых изображений. За счет снижения общего контраста и потери незначительной части информации исходного образа подобные решения позволяют сохранить в 8-битном формате JPEG детали в светах и тенях, зафиксированные светочувствительным сенсором аппарата, даже в том случае, если динамический диапазон исходного образа оказался шире 8 EV.

Одним из пионеров в освоении этого направления стала компания НР. В выпущенной в 2003 году цифровой фотокамере HP Photosmart 945 была впервые в мире реализована технология HP Adaptive Lightling, позволяющая автоматически компенсировать недостаток освещенности на темных областях снимков и таким образом сохранять детали в тенях без риска переэкспонирования (что весьма актуально при съемке высококонтрастных сцен). Алгоритм работы HP Adaptive Lightling основывается на принципах, изложенных английским ученым Эдвином Лэндом (Edwin Land) в теории зрительного восприятия человека RETINEX.

Меню функции HP Adaptive Lighting

Как же работает функция Adaptive Lighting? После получения 12-битного образа снимка из него экстрагируется вспомогательное монохромное изображение, которое фактически представляет собой карту освещенности. При обработке снимка эта карта используется в качестве маски, позволяющей регулировать степень воздействия довольно сложного цифрового фильтра на изображение. Таким образом, на участках, соответствующих наиболее темным точкам карты, воздействие на образ будущего снимка минимально, и наоборот. Такой подход позволяет проявить детали в тенях за счет избирательного осветления этих областей и соответственно снижения общей контрастности результирующего изображения.

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

Вообще говоря, многие специфические функции современных цифровых фотоаппаратов (в том числе и рассмотренные в предыдущей статье системы распознавания лиц) являются своего рода побочными либо конверсионными продуктами научно-исследовательских работ, которые изначально выполнялись для военных заказчиков. Что касается функций оптимизации динамического диапазона изображений, то одним из наиболее известных поставщиков подобных решений является компания Apical. Созданные ее сотрудниками алгоритмы, в частности, лежат в основе работы функции SAT (Shadow Adjustment Technology - технология коррекции теней), реализованной в ряде моделей цифровых фотоаппаратов Olympus. Вкратце работу функции SAT можно описать следующим образом: на основе исходного образа снимка создается маска, соответствующая наиболее темным участкам, и затем для этих областей производится автоматическая коррекция величины экспозиции.

Лицензию на право использования разработок Apical приобрела и компания Sony. Во многих моделях компактных фотоаппаратов серии Cyber-shot и в зеркальных камерах серии «альфа» реализована так называемая функция оптимизации динамического диапазона (Dynamic Range Optimizer, DRO).

Фотоснимки, сделанные камерой НР Photosmart R927 с отключенной (вверху)
и активированной функцией Adaptive Lighting

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

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

Во многих моделях цифровых фотоаппаратов компании Nikon имеется функция D-Lighting, в основе которой также использованы алгоритмы Apical. Правда, в отличие от описанных выше решений, D-Lighting реализована в виде фильтра для обработки ранее сохраненных снимков посредством тональной кривой, форма которой позволяет сделать тени более светлыми, сохраняя в неизменном виде остальные участки изображения. Но поскольку в этом случае обработке подвергаются уже готовые 8-битные изображения (а не исходный образ кадра, имеющий более высокую разрядность и соответственно более широкий динамический диапазон), то возможности D-Lighting весьма ограниченны. Получить такой же результат пользователь может путем обработки снимка в графическом редакторе.

При сравнении увеличенных фрагментов хорошо заметно, что темные участки исходного снимка (слева)
при включении функции Adaptive Lighting стали светлее

Существует и ряд решений, базирующихся на иных принципах. Так, во многих фотоаппаратах семейства Lumix компании Panasonic (в частности, DMC-FX35, DMC-TZ4, DMC-TZ5, DMC-FS20, DMC-FZ18 и др.) реализована функция распознавания освещенности (Intelligent Exposure), которая является составной частью системы интеллектуального автоматического управления съемкой iA. Работа функции Intelligent Exposure основывается на автоматическом анализе образа кадра и коррекции темных участков снимка во избежание потери деталей в тенях, а также (при необходимости) сжатия динамического диапазона высококонтрастных сцен.

В ряде случаев работа функции оптимизации динамического диапазона предусматривает не только определенные операции по обработке исходного образа снимка, но и коррекцию настроек съемки. Например, в новых моделях цифровых фотоаппаратов Fujifilm (в частности, в FinePix S100FS) реализована функция расширения динамического диапазона (Wide Dynamic Range, WDR), позволяющая, по данным разработчиков, увеличить фотографическую широту на одну или две ступени (в терминологии настроек - 200 и 400%).

При активации функции WDR камера делает снимки с экспокоррекцией –1 или –2 EV (в зависимости от выбранной настройки). Таким образом, образ кадра получается недодержанным - это необходимо для того, чтобы сохранить максимум информации о деталях в светах. Затем полученный образ обрабатывается при помощи тоновой кривой, что позволяет выровнять общий баланс и скорректировать уровень черного. После этого изображение преобразовывается в 8-битный формат и записывается в виде файла JPEG.

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

Схожая функция под названием Dynamic Range Enlargement реализована в ряде компактных и зеркальных фотоаппаратов компании Pentax (Optio S12, K200D и др.). По данным производителя, применение функции Dynamic Range Enlargement позволяет увеличить фотографическую широту снимков на 1 EV без потери деталей в светах и тенях.

Действующая подобным образом функция под названием Highlight tone priority (HTP) реализована в ряде зеркальных моделей компании Canon (EOS 40D, EOS 450D и др.). Согласно информации, приведенной в руководстве пользователя, активация HTP позволяет улучшить проработку деталей в светах (а точнее, в диапазоне уровней от 0 до 18% серого).

Заключение

Подведем итоги. Встроенная функция сжатия динамического диапазона позволяет с минимальным ущербом преобразовать исходное изображение с большим динамическим диапазоном в 8-битный файл JPEG. При отсутствии функции сохранения кадров в формате RAW режим сжатия динамического диапазона дает фотографу возможность более полно использовать потенциал своей камеры при съемке высококонтрастных сцен.

Разумеется, необходимо помнить о том, что сжатие динамического диапазона - это не чудодейственное средство, а скорее компромисс. За сохранение деталей в светах и/или тенях приходится расплачиваться увеличением уровня шума на темных участках снимка, снижением его контрастности и некоторым огрублением плавных тональных переходов.

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

Завершая рассмотрение данной темы, необходимо отметить, что применение функций сжатия динамического диапазона не позволяет «вытянуть» на результирующем изображении детали, которые не были зафиксированы сенсором фотоаппарата. Для получения удовлетворительного результата при съемке высококонтрастных сюжетов необходимо использовать дополнительные приспособления (например, градиентные фильтры для фотографирования пейзажей) или специальные приемы (такие как съемка нескольких кадров с брекетингом по экспозиции и дальнейшее объединение их в одно изображение с применением технологии Tone Mapping).

Следующая статья будет посвящена функции серийной съемки.

Продолжение следует

Компрессия это одна из наиболее опутанных мифами тем саундпродакшна. Говорят, Бетховен даже пугал ей соседских детей:(

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

Что такое компрессия звука

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

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

Ты можешь вполне резонно удивиться с чем тогда связан такой хайп? Почему все говорят о рецептах правильной настройки компрессоров, но никто ими не делится? Почему, не смотря на огромное количество классных плагинов , во многих студиях до сих пор используются дорогущие раритетные модели компрессоров? Почему одни продюсеры применяют компрессоры на экстремальных настройках, а другие не используют совсем? И кто из них в конце концов прав?

Задачи, которые решает компрессия

Ответы на подобные вопросы лежат в плоскости понимания роли компрессии в работе со звуком. А она позволяет:

  1. Подчёркивать атаку звука, делать его более выраженным;
  2. «Усаживать» в микс отдельные партии инструментов , добавляя им мощности и «веса»;
  3. Делать группы инструментов или весь микс более цельным , таким единым монолитом;
  4. Решать конфликты между инструментами с помощью sidechain ;
  5. Исправлять огрехи вокалиста или музыкантов , выравнивая их динамику;
  6. При определённой настройке выступать в качестве художественного эффекта .

Как видишь, это не менее значимый творческий процесс чем, скажем, придумывание мелодий или наруливание интересных тембров. При этом любая из вышеперечисленных задач может быть решена с помощью 4-х основных параметров.

Основные параметры компрессора

Не смотря на огромное количество программных и аппаратных моделей компрессоров, вся «магия» компрессии происходит при правильной настройке основных параметров: Threshold, Ratio, Attack и Release. Рассмотрим их подробнее:

Threshold или порог срабатывания, dB

Этот параметр позволяет установить значение, с которого компрессор будет работать (то есть сжимать аудиосигнал). Так, если мы установим в threshold -12dB, компрессор будет срабатывать только в тех местах динамического диапазона, которые превышают это значение. Если весь наш звук тише -12db, компрессор просто пропустит его через себя, никак на него не влияя.

Ratio или коэффициент сжатия

Параметр ratio определяет насколько сильно будет сжиматься сигнал, превышающий threshold. Немного математики для полноты картины: допустим, мы настроили компрессор с threshold -12dB, ratio 2:1 и подали на него барабанный луп , в котором громкость бочки равна -4dB. Каким в этом случае будет результат работы компрессора?

В нашем случае уровень бочки превышает threshold на 8dB. Эта разница в соответствии с ratio будет сжата до 4dB (8dB / 2). В сумме с необработанной частью сигнала это приведёт к тому, что после обработки компрессором громкость бочки составит -8db (threshold -12dB + сжатый сигнал 4dB).

Attack, ms

Это время, спустя которое компрессор будет реагировать на превышение порога срабатывания. То есть, если время атаки выше 0ms — компрессор начинает сжатие превышающего threshold сигнала не мгновенно, а спустя указанное время.

Release или восстановление, ms

Противоположность атаке — значение данного параметра позволяет указать спустя какое время с момента возврата уровня сигнала ниже threshold компрессор прекратит сжатие .

Прежде чем мы двинемся дальше, настоятельно рекомендую взять хорошо знакомый семпл, повесить на его канал любой компрессор и 5-10 минут поэкспериментировать с вышеперечисленными параметрами для надёжного закрепления материала

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

  • Колено или излом (Hard/Soft Knee) . Этот параметр определяет как быстро будет применяться коэффициент сжатия (ratio): жестко по кривой или плавно. Отмечу, что в режиме Soft Knee компрессор срабатывает не прямолинейно, а начинает плавно (насколько это может быть уместно когда мы говорим о миллисекундах) поджимать звук уже перед значением threshold . Для обработки групп каналов и общего микса чаще используется именно soft knee (так как работает незаметно), а для подчёркивания атаки и других особенностей отдельных инструментов — hard knee;
  • Режим реагирования: Peak/RMS . Режим Peak оправдан когда нужно жёстко лимитировать всплески амплитуды, а также на сигналах со сложной формой, динамику и читаемость которых нужно полностью передать. Режим RMS очень бережно влияет на звук, позволяя уплотнить его, сохранив атаку;
  • Предусмотрительность (Lookahead) . Это время, за которое компрессор будет знать что ему предстоит. Своего рода предварительный анализ входящих сигналов;
  • Makeup или Gain . Параметр, позволяющий компенсировать понижение громкости в результате работы компрессии.

Первый и самый главный совет , снимающий все дальнейшие вопросы по компрессии: если ты а) понял принцип действия компрессии, б) твёрдо знаешь как воздействует на звук тот или иной параметр и в) успел на практике попробовать несколько разных моделейникакие советы тебе уже не нужны .

Я абсолютно серьёзен. Если ты внимательно прочёл эту запись, поэкспериментировал со штатным компрессором твоей DAW и одним-двумя плагинами , но так и не понял в каких случаях нужно устанавливать большие значения атаки, какой коэффициент ratio применять и в каком из режимов обрабатывать исходный сигнал — то так и будешь дальше искать в интернете готовые рецепты, применяя их бездумно куда попало.

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

Действуй!

Задумаемся над вопросом - а зачем нам поднимать громкость? Для того чтобы слышать тихие звуки, которые не слышны в наших условиях (например, если нельзя слушать громко, если есть посторонние шумы в комнате и т.д.). А можно ли усилить тихие звуки, а громкие не трогать? Оказывается можно. Эта техника называется сжатием динамического диапазона (компрессия, Dynamic Range Compression, DRC). Для этого необходимо изменять текущую громкость постоянно - тихие звуки усиливать, громкие - нет. Самый простой закон изменения громкости - линейный, т.е. громкость изменяется по закону output_loudness = k * input_loudness, где k - коэффициент сжатия динамического диапазона:

Рисунок 18. Сжатие динамического диапазона.

При k = 1 никаких изменений не производится (выходная громкость равна входной). При k < 1 громкость будет увеличиваться, а динамический диапазон - сужаться. Посмотрим на график (k=1/2) - тихий звук, имевший громкость -50дБ станет громче на 25дБ, что значительно громче, но при этом громкость диалогов (-27дБ) повысится всего лишь на 13.5дБ, а громкость самых громких звуков (0дБ) вообще не изменится. При k > 1 - громкость будет уменьшаться, а динамический диапазон - увеличиваться.

Посмотрим на графики громкости (k = 1/2: сжатие ДД в два раза):

Рисунок 19. графики громкости.

Как видно в оригинале присутствовали как очень тихие звуки, на 30дБ ниже уровня диалогов, так и очень громкие - на 30дБ выше уровня диалогов. Т.о. динамический диапазон составлял 60дБ. После компрессии громкие звуки всего лишь на 15дБ выше, а тихие - на 15дБ ниже уровня диалогов (динамический диапазон теперь составляет 30дБ). Таким образом, громкие звуки стали значительно тише, а тихие - значительно громче. При этом переполнения не происходит!

Теперь обратимся к гистограммам:

Рисунок 20. Пример компрессии.

Как хорошо видно - при усилении до +30дБ форма гистограммы хорошо сохраняется, что означает, что громкие звуки остаются хорошо выраженными (не уходят в максимум и не обрезаются, как это происходит при простом усилении). При этом выделяются тихие звуки. Гистограмма это показывает плохо, однако разница очень заметна на слух. Недостаток метода - те же самые прыжки громкости. Однако механизм их возникновения отличается от скачков громкости возникающих при обрезании, а их характер отличен - они проявляются в основном при очень сильном усилении тихих звуков (а не при обрезании громких, как при обычном усилении). Чрезмерный уровень компрессии приводит к уплощению звуковой картины - все звуки стремятся к одинаковой громкости и невыразительности.

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

Рисунок 21. Увеличение громкости, без увеличения шума.

Т.е. на уровне громкости -50дБ происходит перегиб передаточной функции, и шумы будут усиливаться меньше (желтая линия). При отсутствии такого перегиба шумы будут значительно громче (серая линия). Такая простая модификация значительно снижает количество шумов даже при очень сильных уровнях сжатия (на рисунке - сжатие 1:5). Уровень “DRC” в фильтре задает уровень усиления для тихих звуков (на уровне -50dB), т.о. уровень компрессии 1/5, показанный на рисунке, соответствует уровню +40дБ в настройках фильтра.