Основополагающая идея, лежащая в основе HPDR очень проста – описание световых характеристик (цвет и интенсивность) пиксела, формирующего изображение, реальными физическими величинами. Чтобы понять смысл и последствия этого принципа, необходимо вспомнить модель описания изображений, принятую в настоящее время.
Сейчас универсальной моделью описания изображений является аддитивная аппаратно-зависимая модель RGB (Red, Green, Blue), которая разрабатывалась для устройств отображения, таких, как, например, CRT (Cathode Ray Tube) – то есть, обычный компьютерный монитор. В соответствии с этой моделью, произвольный цвет можно представить как сумму трех основных цветов – красного (Red), зеленого (Green) и синего (Blue) с правильно подобранными интенсивностями. Интенсивность каждого основного цвета представляется в виде 256 оттенков (градаций интенсивности).
Число 256, в принципе, довольно произвольно, оно появилось ка результат поиска компромисса между производительностью графической подсистемы компьютера, требованием фотореалистичности изображений и двоичной природой компьютерных вычислений. В частности, в результате исследований было выяснено, что 16,7 миллионов оттенков (256х256х256) вполне достаточно для передачи изображений фотографического качества, к тому же, 256 довольно просто кодируется в двоичной системе как 2^8, т.е. один байт.
Итак, согласно модели RGB, черный цвет представляется как (0,0,, то есть полное отсутствие интенсивности, а белый – как (255, 255, 255), т.е. цвет с максимальной интенсивностью трех основных цветов.
Очевидно, что произвольный цвет в RGB описывается триадой целых чисел, причем, использование вещественных чисел (чисел с плавающей запятой – например, 1.6 или 25.4) в рамках этой модели недопустимо, а сами числа являются "фиктивными", то есть, не имеют ничего общего с реальными физическими величинами освещенности.
Еще одно интересное свойство 8-битного представления интенсивности – дискретность. Известно, что максимальная светимость экранов современных мониторов составляет около 100-120 cd/m^2. Если разделить эту величину на 256 оттенков, получим приблизительно 0,47 cd/m^2 – такой интервал яркости разделяет два соседних оттенка. Таким образом, изменение яркости на мониторе дискретно и величина дискретизации (можно ее еще назвать порогом чувствительности к градациям яркости) составляет 0,47 cd/m^2, если выкрутить регулировку яркости монитора на максимум и около 0,4 cd/m^2, если регулировка яркости установлена на 70-80% яркости.
С другой стороны, динамический диапазон зрения человека лежит в пределах от 10^-6 до 10^8 cd/m^2, то есть, составляет 100 000 000 000 000:1, или 14 порядков величины. Правда, глаз не может видеть свет из всего этого диапазона одновременно – максимальный диапазон интенсивностей, доступных глазу человека одновременно, составляет что-то около 10 000:1, а поскольку зрение человека фиксирует по отдельности интенсивность света и его цвет, вся доступная глазу одновременно гамма светов составляет: 10 000 оттенков яркости х 10 000 оттенков цвета, то есть, 10^8 цветов.
Еще одно важное свойство зрения – порог чувствительности, или минимальное изменение интенсивности освещения различаемое глазом (разрешающая способность по яркости). Величина порога чувствительности зависит от интенсивности света и возрастает с ее увеличением. В пределах от до 0.01 до 100 cd/m^2 отношение интенсивности к величине порога есть величина постоянная (закон Вебера), равная 0.02. То есть, для интенсивности света в 1 cd/m^2 порог чувствительности составляет 0.02 cd/m^2, для 10 – 0.2 cd/m^2, для 50 – 1 cd/m^2 и для 100 – 2 cd/m^2. Для остальной части диапазона интенсивностей это, вообще говоря, не так, и зависимость описывается более сложным законом.
Очевидно, что динамического диапазона монитора (и модели описания RGB) совершенно недостаточно для представления изображений реального мира или, по крайней мере, той его части, которая доступна зрению человека. Типичное следствие этого – «обрезание» интенсивностей в верхней или нижней части диапазона. В качестве примера можно привести отображение интерьера комнаты с открытым на улицу окном в яркий солнечный день. Монитор корректно отображает либо только комнату, либо только часть улицы, видимую через окно.
Что касается компьютерного монитора, то здесь, пожалуй, сделать ничего нельзя – не увеличивать же яркость монитора до яркости Солнца?
Но если с монитором мы ничего сделать не можем, то отказаться от модели RGB мы уже можем, притом – вполне безболезненно. Давайте описывать изображение реальными физическими величинами интенсивности и цвета освещенности, а монитор пусть показывает что сможет, все равно – хуже чем есть, уже не будет . Это и есть суть представления HDRI – для точек, образующих изображение, указывается интенсивность и цвет в реальных физических величинах или величинах, линейно им пропорциональных. Естественно, реальные (и фиктивные) значения освещенности указываются уже не целыми, а вещественными числами и обойтись 8 битами на канал не удастся. Такой подход разом снимает все ограничения модели RGB – т.е. динамический диапазон изображения теоретически вообще никак неограничен, полностью снимается вопрос о дискретности и количестве градаций яркости, решается проблема недостаточного цветового охвата.
Можно утверждать, что появление HDRI впервые позволило разделить и сделать независимым друг от друга описание, как числовое представление информации об изображении в рамках модели HDRI, и отображение этого описания на том или ином техническом устройстве вывода, например – на компьютерном мониторе, струйном принтере или фотонаборном аппарате. Таким образом, представление и отображение этого представления стали двумя самостоятельными процессами, а само HDRI-описание аппаратно независимым.
Отображение HDR изображения на мониторе или его вывод на печать требует преобразование динамического диапазона и цветового охвата HDRI в динамический диапазон и цветовой охват устройства отображения – RGB для мониторов, CMYK для печати, CIE Lab, Kodak CYY и других. Поскольку все эти модели являются LDRI (Low Dynamic Range Images, по аналогии c HDRI), выполнить такое преобразование без потерь невозможно. Процедура такого преобразования называется tone mapping и в общем случае использует свойства человеческого зрения для минимизации потерь при преобразовании. Поскольку в настоящее время нет математической модели полно и корректно описывающей зрение человека, нет и общего алгоритма tone mapping, всегда дающего качественные результаты.
Вернемся к числовому представлению описания HDRI. Бесконечный динамический диапазон – это хорошо, но компьютер не может оперировать бесконечностью. Поэтому, на практике динамический диапазон ограничивается сверху и снизу. Хорошим приближением для такого ограничения можно считать диапазон зрения человека, т.е от 10^-6 до 10^8. Возникает дилемма. С одной стороны, чем шире динамический диапазон представления, тем лучше. С другой стороны, необходимо экономить ресурсы компьютера, поскольку расширение диапазона приводит к увеличению объема данных, необходимых для описания изображения. Как средство решения этой проблемы были разработаны несколько форматов числового представления HDR-изображений, различающихся доступным динамическим диапазоном и требуемым объемом.
В данный момент используют - 16-битный формат OpenEXR, разработанный студией Industrial Light and Magic (ILM). В 16-битном описании OpenEXR один бит отводится под знак показателя экспоненты, пять битов для значения показателя экспоненты и десять бит для представления мантисс хроматических координат цвета (u, v), по пять бит на координату. Динамический диапазон представления составляет девять порядков величины – от 6.14*10^-5 до 6.41*10^4.
Проще говоря на канал выделяется не 8 бит в случае с RGB а 16 (G80 уже 32).
Процесс построения и вывода HDR изображения силами графического процессора разбивается на 3 фазы:
Light Transport – расчет сцены с высоким динамическим диапазоном освещенности и сохранение информации о световых характеристиках для каждого пиксела в буфере, использующем формат представления данных с плавающей точкой – OpenEXR.
Tone Mapping – перевод изображения с высоким динамическим диапазоном в LDRI-формат RGBA или sRGB.
Color and Gamma Correction – перевод изображения в цветовое пространство устройства отображения – CRT или LCD монитора и т.д.