Введение

Формат хранения изображений для киноиндустрии

OpenEXR — это растровый файловый формат с высоким динамическим диапазоном и поддержкой нескольких каналов, выпущенный как открытый стандарт вместе с набором программных инструментов, разработанных Industrial Light & Magic (ILM) под свободной лицензией, аналогичной лицензии BSD. Он примечателен поддержкой множества каналов с потенциально разными размерами пикселей, включая 32-битные целые числа без знака, 32-битные и 16-битные числа с плавающей точкой, а также различные методы сжатия, включающие алгоритмы сжатия без потерь и с потерями. Он также поддерживает произвольные каналы и кодирует несколько точек обзора, например, изображения с левой и правой камер.

Обзор

Полное техническое описание формата доступно на веб-сайте OpenEXR. API OpenEXR значительно упрощает разработку инструментов для программистов. Поскольку производственные процессы практически никогда не бывают идентичными, всегда требуется разработка специализированных инструментов для решения возникающих задач (например, проблем с обработкой изображений). Библиотека OpenEXR обеспечивает быстрый и удобный доступ к атрибутам изображения, таким как тайлы и каналы.

История

OpenEXR был создан компанией ILM в 1999 году и выпущен в открытый доступ в 2003 году вместе с библиотекой программного обеспечения с открытым исходным кодом. Вскоре он получил широкое распространение в программном обеспечении, используемом в компьютерной графике, особенно в производстве фильмов и телесериалов. Формат несколько раз обновлялся, добавляя поддержку тайлов, mip-карт, новых методов сжатия и других возможностей. Версия 2.2, выпущенная в августе 2014 года, добавила формат сжатия DWA с потерями.

Методы сжатия

В OpenEXR встроено три основных типа сжатия без потерь, с двумя различными методами Zip-сжатия. Для большинства изображений без выраженной зернистости два метода Zip-сжатия, как правило, работают лучше, в то время как алгоритм PIZ лучше подходит для зернистых изображений. Доступны следующие опции:

None – Отключает все сжатие.
Run Length Encoding (RLE) – Базовая форма сжатия, сопоставимая с используемой в стандартных файлах Targa.
Zip (построчно) – Deflate-сжатие с оберткой zlib, применяемое к отдельным строкам изображения (не основано на формате ZIP-файла, несмотря на название).
Zip (блоки по 16 строк) – Deflate-сжатие, применяемое к блокам из 16 строк одновременно. Обычно это наиболее эффективный способ сжатия для рендеринговых изображений без зернистости.
PIZ (wavelet-сжатие) – Этот метод без потерь использует новое комбинированное wavelet / Huffman-сжатие. Эта форма сжатия особенно эффективна при работе с зернистыми изображениями и часто превосходит другие варианты в таких условиях.
PXR24 (преобразование 24-битных данных, затем deflate-сжатие) – Этот метод сжатия от Pixar Animation Studios преобразует 32-битные числа с плавающей точкой в 24-битные, а затем применяет deflate-сжатие. Он без потерь для 16-битных и 32-битных целочисленных данных и с небольшими потерями для 32-битных чисел с плавающей точкой.
B44 – Эта форма сжатия с потерями для 16-битных данных и хранит 32-битные данные без сжатия. Поддерживает фиксированный коэффициент сжатия 2,28:1 или 4,57:1 и предназначена для воспроизведения в реальном времени. B44 сжимает равномерно, независимо от содержимого изображения.
B44A – Расширение B44, при котором области сплошного цвета дополнительно сжимаются, например, альфа-каналы.
DWAA – Сжатие с потерями, подобное JPEG, разработанное DreamWorks Animation. Сжимает 32 строки сканирования вместе.
DWAB – То же, что и DWAA, но сжимает блоки из 256 строк сканирования.

Кредиты

От OpenEXR.org. Техническое введение: Формат файла ILM OpenEXR был разработан и реализован Флорианом Кайнцем, Войцехом Ярошем и Родом Богартом. Схема сжатия PIZ основана на алгоритме, разработанном Кристианом Руэ. Джош Пайнс помог расширить алгоритм PIZ для работы с 16-битными данными и обнаружил оптимизации для преобразования чисел с плавающей точкой в формат half-float. Дрю Хесс подготовил и адаптировал внутренний исходный код ILM для публичного распространения и поддерживает программное обеспечение OpenEXR. Метод сжатия PXR24 основан на алгоритме, написанном Лореном Карпентером в Pixar Animation Studios.