OpenEXR

Формат хранения изображений для киноиндустрии
OpenEXR
Расширение имени файла
.exr
Тип интернет-СМИизображение/x-exr
Единый идентификатор типа (UTI)com.ilm.openexr-изображение [1]
РазработаноПромышленный свет и магия
Первоначальный выпуск1999 ; 26 лет назад ( 1999 )
Последний релиз
3.3.2 [2]
11 ноября 2024 г. ; 2 месяца назад ( 11 ноября 2024 )
Тип форматаВизуализация с высоким динамическим диапазоном
Открытый формат ?Да, измененная лицензия BSD
Веб-сайтwww.openexr.com

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

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

Обзор

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

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

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

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

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

История

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

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

Распределение

Дистрибутив программного обеспечения OpenEXR включает в себя:

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

Библиотеки

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

Глубина цвета

OpenEXR поддерживает глубину цвета с помощью:

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

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

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

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

Кредиты

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

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

Смотрите также

Ссылки

  1. ^ "CGImageSource.SupportedTypes". Плагин Claris FileMaker MBS . Программное обеспечение MonkeyBread.
  2. ^ "Release 3.3.2". 11 ноября 2024 г. Получено 2 декабря 2024 г.
  3. ^ "Лицензия". openexr.com .
  4. ^ ab Kainz, Florian; Bogart, Rod; Stanczyk, Piotr; Hillman, Peter (5 ноября 2013 г.). "Техническое введение в OpenEXR" (PDF) . Industrial Light & Magic . Получено 05.01.2025 .
  5. ^ "OpenEXR". LF Projects, LLC . Получено 2025-01-05 .
  6. ^ ab "OpenEXR File Layout" . Получено 25 мая 2023 г. .
  7. ^ "OpenEXR 1.3.0: Python Package Index". pypi.python.org . Получено 11 апреля 2018 г.
  8. ^ "Industrial Light & Magic выпускает фирменный формат файла изображения с расширенным динамическим диапазоном OpenEXR для сообщества с открытым исходным кодом" (PDF) (пресс-релиз). 22 января 2003 г. Архивировано из оригинала (PDF) 21 июля 2017 г. Получено 11 апреля 2013 г.
  9. ^ abcd "OpenEXR". 16 января 2023 г. – через GitHub.
  10. ^ Станчик, Пётр (9 апреля 2013 г.). "Объявление о выпуске v2.0.0.0 (GM)". openexr-announce (Список рассылки).
  11. ^ "OpenEXR 2.0". CGSocity . 10 апреля 2013 г.
  12. ^ ab "DreamWorks Animation вносит вклад в сжатие с потерями в OpenEXR 2.2" (пресс-релиз). Глендейл, Калифорния . 8 августа 2014 г. Получено 18 августа 2014 г.
  13. ^ «Чтение и запись файлов изображений OpenEXR с помощью библиотеки IlmImf» (PDF) .
  14. ^ "имя · Проблема № 879 · AcademySoftwareFoundation/openexr". GitHub .
  15. ^ "Imath". 21 января 2023 г. – через GitHub.
  16. ^ "Техническое введение в OpenEXR" (PDF) . Архивировано из оригинала (PDF) 2011-07-17 . Получено 2006-02-23 .
  17. ^ "Техническое введение в OpenEXR" (PDF) . Архивировано из оригинала (PDF) 2011-07-17 . Получено 2006-02-23 .
  • Официальный сайт
  • exrtools вкл. exrtoppm exe
Получено с "https://en.wikipedia.org/w/index.php?title=OpenEXR&oldid=1267620651"