Тональная компрессия может быть выполнена либо глобально (пространственно однородным образом, по одним и тем же формулам для всех пикселей), либо локально (пространственно неоднородным образом, формулы учитывают окружение пикселя). Глобальные алгоритмы включают в себя, например, использование тональной кривой, в том числе заданной логарифмической или степенной функцией или S-кривой, для совмещения точек черного и белого изображения с соответствующими точками выходного устройства. Среди наиболее распространенных глобальных алгоритмов можно назвать гамма-компрессию.
Локальный вариант сохраняет локальный контраст в ущерб глобальному и обосновывается тем фактом, что адаптация зрения происходит не ко всему изображению как целому, а только к его небольшой области (к разным областям по очереди). Кроме этого, зрительная система человека более чувствительна к локальному контрасту, нежели к глобальному.
Изображение может быть подвергнуто сначала глобальной, а затем локальной компрессии. Тональное сжатие может быть выполнено для канала яркостей L* в пространстве CIELAB, или для каждого из rgb-каналов независимо. Во втором случае возможно искажение цвета, особенно в случае локального сжатия.
Глобальная тональная компрессия приводит к уменьшению глобального контраста, и малоконтрастные области могут потерять детали. Локальная – улучшает воспроизведение деталей, но может вызвать появление каемок вокруг темных объектов (гало). Кроме того, можно легко перестараться и получить неестественно выглядящее изображение, например, с неправильным ощущением глубины пространства или перенасыщенными цветами.
В последнее время проблемы большого динамического диапазона привлекли внимание многих специалистов по обработке изображений. В результате появилась масса идей, как надо поступать с HDR-изображениями.
Многие из этих алгоритмов сначала раскладывают исходное изображение на части по какому-то принципу, применяют к полученным частям тональное сжатие (по-разному для разных частей), а затем объединяют измененные части и получают результирующую картинку. Кратко опишем следующие алгоритмы:
• разложение картинки на зоны с разными интервалами яркостей,
• разложение картинки на части, содержащие разные пространственные частоты,
• разложение картинки на поля градиентов,
• выравнивание гистограммы.
Выделение в фотоснимке зон, сильно различающихся по яркости, применялось в фотографии давно. Обычно зоны обозначались римскими цифрами:
• I – самая темная зона, в которой различимы детали,
• V – серая зона,
• IX – самая светлая зона, в которой различимы детали,
Далее принималось решение, каким образом каждая зона будет изображаться на выходном устройстве.
Теперь эта технология усовершенствовалась. Например, для каждой зоны может использоваться своя тональная S-кривая, параметры которой зависят от характеристик зоны (минимальная, максимальная и средняя яркости зоны) и от диапазона яркостей выходного устройства. При этом учитывается также ключ изображения (high key, low key). Если диапазон яркостей снимка на входе достаточно большой, то этот метод может привести к слишком сильному уменьшению локального контраста (внутри какой-либо зоны или между зонами). Современные модификации этого метода допускают существование пересекающихся зон (дает более сглаженный переход между зонами) или даже иерархического дерева зон.
Другой метод (Lightness Perception in Tone Reproduction) состоит в том, что сначала определяется, какой цвет изображения будет
Идея разложить фотоснимок на части, содержащие разные пространственные частоты, основана на том, что динамические диапазоны полученных частей сильно различаются. Диапазон яркостей низкочастотной части (по крайней мере, для пейзажей) гораздо больше, чем диапазон высокочастотной части (деталей). Кроме того, глаз легко обмануть, если сжать диапазон яркостей низкочастотной части как нужно, а диапазон яркостей деталей – сжать в гораздо менее сильной степени или вообще не сжимать.
Такое разложение часто осуществляется с помощью пирамиды Лапласа (последовательности копий изображения, размер которых уменьшается в два раза при переходе от одной копии к другой). Такие изображения строятся с помощью линейных фильтров. При этом возле границ часто возникает каемка (гало) или обратные градиенты. Этот нежелательный эффект можно уменьшить, применив вместо линейного фильтра нелинейный сглаживающий фильтр, сохраняющий границы. Таких фильтров придумано много, например, двусторонний фильтр (bilateral filter) или анизотропная диффузия (anisotropic diffusion).