Введение
Формат хранения изображений для киноиндустрии
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.
The ILM OpenEXR file format was designed and implemented by Florian Kainz, Wojciech Jarosz, and Rod Bogart. The PIZ compression scheme is based on an algorithm by Christian Rouet. Josh Pines helped extend the PIZ algorithm for 16 bit and found optimizations for the float to half conversions. Drew Hess packaged and adapted ILM's internal source code for public release and maintains the OpenEXR software distribution. The PXR24 compression method is based on an algorithm written by Loren Carpenter at Pixar Animation Studios.