Radiance HDR (.hdr)
Radiance СтандартRadiance RGBE (HDR) е основополагащият формат с висок динамичен обхват, разработен за системата Radiance за синтетични изображения. Той съхранява фотометрично точни стойности на яркостта чрез общ 8-битов експонент.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират HDR файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират HDR файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
23 3F 52 41 44 49 41 4E 43 45 0AASCII ПРЕДСТАВЯНЕ: #?RADIANCE\n
Стандартизация: Radiance Synthetic Imaging System Standard
Технически спецификации
| Контейнерна архитектура | ASCII заглавка, завършваща с празен ред, следвана от низ с резолюцията и двоични растерни редове с RLE кодиране |
| Компресия | Адаптивно кодиране на серии (RLE) за всеки растерен ред и канал |
| Поредност на байтовете (Endianness) | Ред от старшия към младшия байт (Big-Endian, мрежов ред на байтовете). |
| Цветови пространства | Линейно Rec.709 RGB с координати на цветност CIE |
| Канали и структура | RGBE: червен, зелен и син канал (8-битови мантиси) плюс общ 8-битов експонент |
| Максимални размери | Практически неограничен размер (низове с резолюция с беззнакови 32-битови стойности) |
| Прозрачност | Няма (измервания на физическата яркост на светлината) |
| Поточно предаване и прогресивно зареждане | Последователно поточно възпроизвеждане ред по ред |
Техническа сравнителна матрица: HDR спрямо конкуренти
| Технически атрибут | HDR (Текущ) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Кодиране на пиксела | 32-битов RGBE (общ 8-битов експонент) | 16-bit half / 32-bit float на канал | Цяло число 8/16-bit или 32-bit float | 8-битово гама-кодирано цяло число |
| Основна употреба | 360-градусово осветление на околната среда (IBL) | VFX многопасово композиране | Фотография и предпечат | Стандартна уеб графика |
| Обхват на динамичния диапазон | 76 порядъка (10^-38 до 10^38) | Практически неограничен диапазон с плаваща запетая | Варира според цветовата дълбочина | Ограничен 8-битов SDR диапазон |
| Поддържани канали | Само RGB | Неограничени произволни канали | Множество произволни канали | RGB / CMYK |
Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни
В изображението се виждат хоризонтални ивици по цялата ширина на кадъра.
Първопричина: Повреден байт за броя на последователните пиксели при RLE декомпресиране на растерен ред.
Възстановяване: Възстановете повредените маркери на растерните редове с HDR Repair на File2File.app или конвертирайте файла в EXR.
Анализ на сигурността и вектори на атака към парсера
Декодерите на Radiance HDR често парсват ASCII заглавни редове с неограничени низови функции, което може да доведе до препълване на стек буфера.
Известни вектори на атака
- Неограничени извиквания на sprintf/sscanf при четене на низове с резолюцията („-Y %d +X %d“).
- Запис извън границите на heap паметта при декодиране на неправилно формиран RLE растерен ред.
- Целочислено препълване при заделяне на памет за целеви 32-битови буфери с плаваща запетая.
Най-добри практики за защита: Проверявайте дължината на ASCII заглавката и размерите на растерните редове, преди да заделяте буфери за изображението.
Исторически произход и етапи
Основни предимства
- Компактен размер от 32 бита на пиксел с обхват от 76 порядъка във физическата яркост на светлината.
- Поддържа се от много пакети за 3D рендиране за карти на околната среда, но поддръжката зависи от приложението.
- Сравнително компактна файлова структура, която могат да реализират програми с поддръжка на Radiance HDR.
Технически ограничения и минуси
- Заради общия 8-битов експонент в много тъмните области може да се появят ивици от квантуване.
- RGB каналите не могат да съхраняват отрицателни числа или произволни слоеве с множество рендер пасове.
- В голяма степен е заменен от OpenEXR за производство на визуални ефекти с множество рендер пасове.
Интересни технически факти
- Всеки Radiance HDR файл започва с текстовия ред в заглавката „#?RADIANCE“ или „#?RGBE“.
- Форматът е създаден за симулиране на физическо архитектурно осветление при проектиране на сгради преди построяването им.
- В емблематичната си статия за SIGGRAPH от 1997 г., „Recovering High Dynamic Range Radiance Maps from Photographs“, Paul Debevec използва този формат и преобразява CGI осветлението.
Често задавани технически въпроси
За какво се използва HDRI файл в 3D?
HDRI (.hdr) файловете служат като 360-градусови панорамни карти на околната среда, които осигуряват фотореалистично осветление от реалния свят, сенки и отражения върху 3D обекти.
Как работи 32-битовото кодиране RGBE?
Вместо три отделни числа с плаваща запетая RGBE използва по 8 бита за червения, зеления и синия канал плюс общ 8-битов експонент. Така пълният HDR динамичен обхват се побира в едва 4 байта на пиксел.
Мога ли да конвертирам HDR в JPG?
Да. File2File.app може да приложи тонално мапиране и да конвертира 32-битови Radiance HDR файлове в стандартни JPG или PNG направо в браузъра.