Изображение Radiance RGBE (.hdr)

Radiance Стандарт

Radiance RGBE (HDR): основополагающий формат с расширенным динамическим диапазоном, разработанный для системы синтетической визуализации Radiance; в нем фотометрически точные значения яркости хранятся с использованием общей 8-битной экспоненты.

Анализ и метаданные

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

Выберите или перетащите файлы сюда

Конфиденциально - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполнялась локально в песочнице Вашего браузера.

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

История происхождения и ключевые этапы

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

Ключевые преимущества и плюсы

  • Компактный объем памяти 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 прямо в Вашем браузере.