Radiance HDR (.hdr)
Radiance СтандартRadiance RGBE (HDR): це базовий формат з високим динамічним діапазоном, розроблений для синтетичної системи візуалізації Radiance, який зберігає фотометрично точні значення яскравості за допомогою спільного 8-бітного показника степеня.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли HDR, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли HDR, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
23 3F 52 41 44 49 41 4E 43 45 0AПОДАННЯ В ASCII: #?RADIANCE\n
Стандартизація: Radiance Synthetic Imaging System Standard
Технічні характеристики
| Архітектура контейнера | ASCII-заголовок, що закінчується порожнім рядком, за яким слідують рядок роздільної здатності та бінарні рядки розгортки RLE |
| Стиснення | Адаптивне RLE-кодування застосовується до рядків кожного каналу |
| Порядок байтів (Endianness) | Порядок байтів від старшого до молодшого / Мережевий порядок байтів |
| Колірні простори | Лінійний RGB Rec.709 з координатами кольоровості CIE |
| Канали та структура | RGBE: червоний, зелений, синій (8-бітні мантиси) + спільний 8-бітний показник степеня |
| Максимальні розміри | Практично необмежені (32-бітні беззнакові значення роздільної здатності) |
| Прозорість | Відсутня (фізичні вимірювання випромінюваної яскравості) |
| Потокове та прогресивне завантаження | Послідовне потокове відтворення рядків за рядками |
Технічна матриця порівняння: HDR проти конкурентів
| Технічний атрибут | HDR (Поточний) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Піксельне кодування | 32-бітне RGBE (спільний 8-бітний показник степеня) | 16-бітне з половинною точністю / 32-бітне з плаваючою комою на канал | Цілочисельне 8/16-бітне або 32-бітне з плаваючою комою | 8-бітне цілочисельне з гамма-кодуванням |
| Основне призначення | Освітлення середовища на 360 градусів (IBL) | Багатопрохідне компонування VFX | Фотографія та додрукарська підготовка | Стандартна вебграфіка |
| Динамічний діапазон | 76 порядків величини (від 10^-38 до 10^38) | Практично нескінченний діапазон чисел із плаваючою комою | Змінюється залежно від глибини бітів | Обмежений 8-бітний діапазон SDR |
| Підтримувані канали | Лише RGB | Необмежена кількість довільних каналів | Кілька довільних каналів | RGB / CMYK |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
На зображенні по всій ширині кадру з’являються горизонтальні смуги.
Першопричина: Пошкоджений байт із кількістю повторів під час розпакування RLE-рядка.
Відновлення: Відновіть пошкоджені маркери рядків за допомогою засобу відновлення HDR у File2File.app або конвертуйте в EXR.
Аналіз безпеки та векторів атак на парсери
Декодери Radiance HDR часто аналізують рядки заголовків ASCII за допомогою необмежених рядкових процедур, які можуть викликати переповнення стекового буфера.
Відомі вектори атак
- Виклики sprintf/sscanf без обмеження довжини під час читання заголовків рядків роздільної здатності ('-Y %d +X %d').
- Запис за межами динамічної пам’яті під час декодування пошкодженого рядка RLE.
- Переповнення цілого числа під час виділення цільових 32-бітних буферів із плаваючою комою.
Рекомендації щодо захисту: Перевіряйте довжину заголовка ASCII та розміри рядків перед виділенням буферів зображення.
Історичне походження та віхи
Основні переваги
- Компактний формат займає 32 біти на піксель і охоплює 76 порядків величини фізичної яскравості світла.
- Підтримується багатьма пакетами 3D-рендерингу для карт середовища, але підтримка залежить від програми.
- Відносно компактна структура файлу, яку можуть реалізувати програми з підтримкою Radiance HDR.
Технічні обмеження та недоліки
- У дуже темних ділянках може з’явитися постеризація через спільне кодування 8-бітного показника степеня.
- Канали RGB не можуть зберігати від'ємні числа або довільні багатопрохідні шари.
- Формат OpenEXR значною мірою витіснив HDR для багатопрохідного виробництва візуальних ефектів.
Цікаві технічні факти
- Кожен файл Radiance HDR починається з текстового заголовка '#?RADIANCE' або '#?RGBE'.
- Формат був створений для симуляції фізичного архітектурного освітлення під час проєктування будівель, до початку їхнього зведення.
- Культова стаття Пола Дебевека 1997 року на SIGGRAPH 'Відновлення карт яскравості з високим динамічним діапазоном за фотографіями' використала цей формат, щоб докорінно змінити освітлення в комп'ютерній графіці.
Поширені технічні запитання
Для чого використовується файл HDRI в 3D?
Файли HDRI (.hdr) використовуються як панорамні карти середовища на 360 градусів для забезпечення фотореалістичного освітлення, характерного для реального світу, тіней та відбитків на 3D-об'єктах.
Як працює 32-бітне кодування RGBE?
Замість зберігання трьох окремих чисел з плаваючою комою, RGBE використовує по 8 біт для червоного, зеленого та синього, а також спільний 8-бітний показник степеня, поміщаючи повний динамічний діапазон HDR лише в 4 байти на піксель.
Чи можу я конвертувати HDR у JPG?
Так. File2File.app може виконувати тонування та конвертувати 32-бітні файли Radiance HDR у стандартні зображення JPG або PNG безпосередньо у вашому браузері.