Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Он примечателен поддержкой нескольких каналов с потенциально разными размерами пикселей, включая 32-битные целые числа без знака, 32-битные и 16-битные значения с плавающей запятой, а также различные методы сжатия, которые включают алгоритмы сжатия без потерь и с потерями . Он также имеет произвольные каналы и кодирует несколько точек обзора, например изображения левой и правой камеры. [2]

Обзор [ править ]

Полное техническое описание формата доступно на веб-сайте OpenEXR. [2]

OpenEXR, или сокращенно EXR, - это глубокий растровый формат, разработанный ILM и широко используемый в индустрии компьютерной графики, как для визуальных эффектов, так и для анимации.

Множественное разрешение и произвольный формат каналов OpenEXR делают его привлекательным для композитинга , поскольку он облегчает несколько болезненных элементов процесса. Поскольку он может хранить произвольные каналы - зеркальные , диффузные, альфа , RGB, нормали и различные другие типы - в одном файле, это избавляет от необходимости хранить эту информацию в отдельных файлах. Концепция многоканальности также снижает необходимость «запекания» вышеупомянутых данных в окончательное изображение. Если композитор не доволен текущим уровнем зеркальности , он может настроить этот конкретный канал. [3]

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

История [ править ]

OpenEXR был создан ILM в 1999 году и выпущен для широкой публики в 2003 году вместе с библиотекой программного обеспечения с открытым исходным кодом . [4] [5] Вскоре он получил широкое распространение в программном обеспечении, используемом в компьютерной графике , особенно для производства фильмов и телевидения . Формат обновлялся несколько раз, добавлена ​​поддержка плиток, MIP-карт , новых методов сжатия и других функций. [5] В 2007 году OpenEXR был удостоен премии Американской киноакадемии за технические достижения . [5]

OpenEXR 2.0 был выпущен в апреле 2013 года, расширив формат за счет поддержки глубоких буферов изображений и нескольких изображений, встроенных в один файл. [5] [6] [7] Версия 2.2, выпущенная в августе 2014 г., добавила формат сжатия DWA с потерями. [8]

Распространение [ править ]

В дистрибутив OpenEXR входят:

  • библиотеки
  • Half, класс C ++ для управления половинными значениями, как если бы они были встроенным типом данных C ++.
  • exrdisplay, пример приложения для просмотра изображений OpenEXR на дисплее при различных настройках экспозиции

Библиотеки [ править ]

  • IlmImf [9] = библиотека, созданная Industrial Light & Magic (Ilm) для низкоуровневых операций с файлами с форматом изображений OpenEXR (Imf) [10]
    • libIlmImf в Linux
    • IlmImf.dll в windows
  • IlmImfUtil
  • Имат [11]

Глубина цвета [ править ]

OpenEXR поддерживает глубину цвета, используя

  • 16-битная с плавающей запятой (половина)
  • 32-битная с плавающей запятой
  • 32-битное целое число

Методы сжатия [ править ]

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

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

Кредиты [ править ]

Из технического введения OpenEXR.org:

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

Разработка с OpenEXR [ править ]

Библиотека OpenEXR разработана на C ++ и доступна как в исходном, так и в скомпилированном формате для Microsoft Windows , macOS и Linux . Привязки Python для библиотеки также доступны для версии 2.x. [14]

Начиная с версии 1.3.0, выпущенной 8 июня 2006 г., в OpenEXR была добавлена ​​поддержка многопоточного чтения и записи. Многопоточное чтение и запись обеспечивает более высокий прирост производительности для систем с несколькими ядрами или процессорами. OpenEXR обрабатывает чтение и запись посредством пула потоков . [ необходима цитата ]

См. Также [ править ]

  • Расширенный динамический диапазон

Ссылки [ править ]

  1. ^ Лицензия , openexr.com
  2. ^ a b c Флориан Кайнц; Род Богарт; Петр Станчик; Питер Хиллман (5 ноября 2013 г.). «Техническое введение в OpenEXR» (PDF) . Индустриальный свет и магия . Проверено 9 ноября 2015 .
  3. ^ a b Кайнц, Флориан. «Макет файла OpenEXR» (PDF) . Индустриальный свет и магия . Проверено 7 декабря 2013 года .
  4. ^ «Industrial Light & Magic выпускает проприетарный формат файла изображений с расширенным динамическим диапазоном OpenEXR для сообщества с открытым исходным кодом» (PDF) (пресс-релиз). 22 января 2003 г. Архивировано 21 июля 2017 г. из оригинального (PDF) . Проверено 11 апреля 2013 года .
  5. ^ a b c d "Главный веб-сайт OpenEXR" .
  6. ^ Stanczyk Петр (9 апреля 2013). "Объявление о выпуске v2.0.0.0 (GM)" . openexr-announce (Список рассылки).
  7. ^ "OpenEXR 2.0" . Файл CGSoceity . 10 апреля 2013 г.
  8. ^ a b «DreamWorks Animation способствует сжатию с потерями в OpenEXR 2.2» (пресс-релиз). Глендейл, Калифорния. 8 августа 2014 . Проверено 18 августа 2014 .
  9. ^ Чтение и запись файлов изображений OpenEXR с помощью библиотеки IlmImf
  10. ^ github AcademySoftwareFoundation openexr, выпуск 879
  11. ^ Библиотека AcademySoftwareFoundation Imath
  12. ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 17 июля 2011 года . Проверено 23 февраля 2006 . CS1 maint: заархивированная копия как заголовок ( ссылка )
  13. ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 17 июля 2011 года . Проверено 23 февраля 2006 . CS1 maint: заархивированная копия как заголовок ( ссылка )
  14. ^ «OpenEXR 1.3.0: индекс пакета Python» . pypi.python.org . Проверено 11 апреля 2018 года .

Внешние ссылки [ править ]

  • Официальный сайт
  • exrtools, вкл. exrtoppm exe