Skip to main content

Ликбез по HPDR - модель OpenEXR

Аватар пользователя badangel
Не в сети
Студент
Зарегистрирован: 12.09.2006
Сообщения: 677
Баллы: 761
Ликбез по HPDR - модель OpenEXR

Основополагающая идея, лежащая в основе 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,Innocent, то есть полное отсутствие интенсивности, а белый – как (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 мы уже можем, притом – вполне безболезненно. Давайте описывать изображение реальными физическими величинами интенсивности и цвета освещенности, а монитор пусть показывает что сможет, все равно – хуже чем есть, уже не будет Smile. Это и есть суть представления 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 монитора и т.д.

Аватар пользователя -=ZERO=-
Не в сети
Студент
Зарегистрирован: 20.08.2005
Сообщения: 287
Баллы: 290
Ликбез по HPDR - модель OpenEXR

GX-BadAngeL, не в обиду будет сказано, у меня вопрос, для кого ты закинул эту статью?
Если чел не имел представления, что такое HDR(high dynamic range), я думаю он мало чего понял, в этих цифрах и названиях... Ну, про тех кто знаком с этим, все понятно....они и так знают....
P.S. Так вот, кто хочет убедиться на примере, чтобы понять, что же такое HDR, надо запустить игру Counter-Strike Source, в настройках видео выбрать функцию HDR(если поддерживается вашей видюхой) и посмотреть... de_dust, de_train, cs_militia... Wink

Аватар пользователя ATHLON
Не в сети
Студент
Зарегистрирован: 21.08.2006
Сообщения: 146
Баллы: 165
Ликбез по HPDR - модель OpenEXR

"-=ZERO=-" пишет:

GX-BadAngeL, не в обиду будет сказано, у меня вопрос, для кого ты закинул эту статью?
Если чел не имел представления, что такое HDR(high dynamic range), я думаю он мало чего понял, в этих цифрах и названиях... Ну, про тех кто знаком с этим, все понятно....они и так знают....
P.S. Так вот, кто хочет убедиться на примере, чтобы понять, что же такое HDR, надо запустить игру Counter-Strike Source, в настройках видео выбрать функцию HDR(если поддерживается вашей видюхой) и посмотреть... de_dust, de_train, cs_militia... Wink

А как это можно получить HDR качество на мониторе (да плюс и видеоплате) с RGB кодированием?

Аватар пользователя badangel
Не в сети
Студент
Зарегистрирован: 12.09.2006
Сообщения: 677
Баллы: 761
Ликбез по HPDR - модель OpenEXR

ЦитатаА как это можно получить HDR качество на мониторе (да плюс и видеоплате) с RGB кодированием?
Результат вычислений интерполируется на возможности монитора, результат все-равно получается лучше Smile
Видеокарты давным-давно работают с FP Wink

Аватар пользователя ATHLON
Не в сети
Студент
Зарегистрирован: 21.08.2006
Сообщения: 146
Баллы: 165
Ликбез по HPDR - модель OpenEXR

"GX-BadAngeL" пишет:

Результат вычислений интерполируется на возможности монитора, результат все-равно получается лучше Smile

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

Аватар пользователя badangel
Не в сети
Студент
Зарегистрирован: 12.09.2006
Сообщения: 677
Баллы: 761
Ликбез по HPDR - модель OpenEXR

Цитатано это возможно только на мониторах с DVI(цифровым) входом, так как все VGA используют три несущих RGB (а их ограничение по байту невозможно обойти).
Заблуждаетесь и очень сильно Wink
В любом случае подключения качество будет одинаковым, Для справки- вывод в любом случае идет 8-бит на канал, подключение по DVI-D позволяет вывод в большем разрешении не более, это никак не связано с HDR.

Аватар пользователя ATHLON
Не в сети
Студент
Зарегистрирован: 21.08.2006
Сообщения: 146
Баллы: 165
Ликбез по HPDR - модель OpenEXR

"GX-BadAngeL" пишет:

Заблуждаетесь и очень сильно Wink
В любом случае подключения качество будет одинаковым, Для справки- вывод в любом случае идет 8-бит на канал, подключение по DVI-D позволяет вывод в большем разрешении не более, это никак не связано с HDR.

Но ведь в статье написано, что смысл HDR стандарта, в том чтобы расширить пределы яркости пиксела (свыше 256). Но если осталось восемь бит - пределы не расширились. Каким образом тогда огранизован алгоритм передачи данных о яркости?

Аватар пользователя badangel
Не в сети
Студент
Зарегистрирован: 12.09.2006
Сообщения: 677
Баллы: 761
Ликбез по HPDR - модель OpenEXR

ЦитатаНо ведь в статье написано, что смысл HDR стандарта, в том чтобы расширить пределы яркости пиксела (свыше 256). Но если осталось восемь бит - пределы не расширились. Каким образом тогда огранизован алгоритм передачи данных о яркости?

Нет слов, еще раз перечитываем статью. Алгоритм передачи яркости существенно не менялся в течении 10 лет как и принципы вывода изображения, пределы яркости пиксела расширяются значительно на велечину описанную выше.
И кстати чип NVIO отвечающий за вывод имеет 10 бит на канал, что не меняет цветовой диапазон монитора 255*3, возможно в будущем ситуация изменится...

смотрим скрин:
ftp://badangel.centr.lan/Stuff/splinter_c...enderingbig.jpg

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".