Radiance HDR (.hdr)

Radiance Стандарт

Radiance RGBE (HDR): це базовий формат з високим динамічним діапазоном, розроблений для синтетичної системи візуалізації Radiance, який зберігає фотометрично точні значення яскравості за допомогою спільного 8-бітного показника степеня.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли HDR, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (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 (Поточний)EXRTIFFJPEG
Піксельне кодування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 та розміри рядків перед виділенням буферів зображення.

Історичне походження та віхи

2000Пол Дебевек популяризує освітлення на основі зображень HDR (IBL) у комп'ютерній графіці за допомогою файлів Radiance .hdr.
1997Адаптивне кодування довжин серій рядків стандартизовано для зменшення розмірів файлів.
1989Грег Ворд винайшов 32-бітне піксельне кодування RGBE та формат .hdr у Національній лабораторії імені Лоуренса в Берклі.

Основні переваги

  • Компактний формат займає 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 безпосередньо у вашому браузері.