Изображение Radiance RGBE (.hdr)
Radiance СтандартRadiance RGBE (HDR): основополагающий формат с расширенным динамическим диапазоном, разработанный для системы синтетической визуализации Radiance; в нем фотометрически точные значения яркости хранятся с использованием общей 8-битной экспоненты.
Анализ и метаданные
Операционные системы и анализаторы файлов идентифицируют файлы HDR по начальной двоичной последовательности байтов:
Сигнатура заголовка на уровне байтов (Magic Bytes)
Операционные системы и анализаторы файлов идентифицируют файлы HDR по начальной двоичной последовательности байтов:
HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):
23 3F 52 41 44 49 41 4E 43 45 0AПРЕДСТАВЛЕНИЕ ASCII: #?RADIANCE\n
Стандартизация: Radiance Synthetic Imaging System Standard
Технические спецификации
| Архитектура контейнера | ASCII-заголовок, заканчивающийся пустой строкой, за которой следует строка разрешения и двоичные RLE-строки сканирования |
| Сжатие | Адаптивное RLE-кодирование применяется к строкам каждого канала |
| Порядок байтов (Endianness) | С прямым порядком байтов / сетевой порядок байтов |
| Цветовые пространства | Линейный Rec.709 RGB с координатами цветности 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 |
Распространенные сценарии повреждения и руководство по восстановлению в HEX
По всей ширине кадра видны горизонтальные полосы.
Первопричина: Поврежден байт со счетчиком длин серий при построчной распаковке RLE.
Восстановление: Восстановите поврежденные маркеры строк с помощью File2File.app HDR Repair или конвертируйте в EXR.
Анализ безопасности и векторы атак на парсер
Декодеры Radiance HDR часто анализируют строки заголовков ASCII с помощью функций работы со строками неограниченной длины, что может вызвать переполнение буфера стека.
Известные векторы атак
- Неограниченные вызовы sprintf/sscanf при чтении заголовков строки разрешения ('-Y %d +X %d').
- Запись за пределами кучи во время некорректного декодирования RLE строк сканирования.
- Целочисленное переполнение при выделении целевых буферов с плавающей точкой 32 бита.
Лучшие практики защиты: Проверяйте длину заголовка ASCII и размеры строк сканирования перед выделением буферов изображения.
История происхождения и ключевые этапы
Ключевые преимущества и плюсы
- Компактный объем памяти 32 бита на пиксель при охвате 76 порядков величины физической яркости света.
- Универсальная поддержка во всех пакетах 3D-рендеринга (Blender, Unreal Engine, Unity, Cinema 4D) для 360-градусных карт окружения.
- Простая, надежная структура файла, легко реализуемая на всех программных платформах.
Технические ограничения и минусы
- Из-за кодирования с общей 8-битной экспонентой в крайне темных областях могут появляться полосы, вызванные квантованием.
- Каналы RGB не могут хранить отрицательные числа или произвольные многопроходные слои.
- В значительной степени вытеснен форматом OpenEXR для производства многопроходных визуальных эффектов.
Интересные технические факты
- Каждый файл Radiance HDR начинается с текстового заголовка '#?RADIANCE' или '#?RGBE'.
- Формат был создан для симуляции физического архитектурного освещения при проектировании зданий до их возведения.
- Знаковая статья Пола Дебевека для конференции SIGGRAPH 1997 года «Восстановление карт яркости с высоким динамическим диапазоном по фотографиям» описывала использование этого формата, которое произвело революцию в освещении компьютерной графики.
Часто задаваемые технические вопросы
Для чего используется файл HDRI в 3D?
Файлы HDRI (.hdr) используются как панорамные карты окружения на 360 градусов, чтобы реалистично освещать 3D-объекты, создавать тени и отражения с учетом условий реального мира.
Как работает 32-битное кодирование RGBE?
Вместо хранения трех отдельных чисел с плавающей запятой RGBE использует по 8 бит для красного, зеленого и синего, а также общую 8-битную экспоненту, вмещая полный динамический диапазон HDR всего в 4 байта на пиксель.
Могу ли я конвертировать HDR в JPG?
Да. File2File.app может применять тональную компрессию и конвертировать 32-битные файлы Radiance HDR в стандартные изображения JPG или PNG прямо в Вашем браузере.