Учёные Intel разработали формат для записи изображения Spectral JPEG XL — он позволяет записывать данные в широком диапазоне спектра за пределами стандартного набора красного, зелёного и синего. Поддерживаются даже невидимые человеческому глазу участки.
В науке и промышленности иногда возникает потребность фиксировать цвета, которые неспособен воспринимать человеческий глаз, например, ультрафиолетовый и инфракрасный участки спектра или определённые длины волн, которые необходимы растениям для фотосинтеза. Некоторые камеры предназначаются, чтобы фиксировать тонкие различия, из-за которых цвета краски выглядят так, как нужно при заданном освещении. Существующие форматы записи такой информации предусматривают запись 30, 100 и более точек данных на пиксель, из-за чего файлы раздуваются до размеров в несколько гигабайтов — они получаются слишком громоздкими для хранения и анализа.
Решение предложили учёные из компании Intel Альбан Фише (Alban Fichet) и Кристоф Питерс (Christoph Peters) — они разработали формат Spectral JPEG XL, способный записывать спектральные данные, но при этом поддерживающий сжатие. Традиционные файлы цифровых изображений записывают информацию всего о трёх цветах: красном, зелёном и синем (RGB). Этого достаточно для повседневных фотографий, но для истинного захвата цвета требуется больший набор деталей. Спектральные изображения отличаются более высокой точностью, потому что регистрируют насыщенность не только в RGB, но и в десятках или даже сотнях узких длин волн. Эта подробная информация охватывает видимый спектр, а также ближние инфракрасный и ультрафиолетовый участки — это позволяет более точно моделировать взаимодействие материалов со светом.
Такие файлы хранят данные не только в трёх каналах RGB — этих каналов оказывается значительно больше, и каждый представляет интенсивность света на определённом, очень узком диапазоне длин волн. В опубликованной авторами проекта научной работе обсуждаются изображения, содержащие 31 канал, приводятся даже примеры с 81 спектральной полосой. Эти каналы должны захватывать более широкий диапазон значений яркости — стандартных 8-битных изображений уже недостаточно, поэтому для каждого канала приходится использовать 16- и 32-битные числа с плавающей запятой.
Существует множество вариантов практического применения этой технологии. Автопроизводителю необходимо точно предсказать, как будет выглядеть краска при разном освещении. Учёные применяют спектральную визуализацию для идентификации материалов по их уникальным световым сигнатурам. Специалистам по рендерингу она требуется для точного моделирования реальных оптических эффектов, например, дисперсии и флуоресценции. Астрономы анализируют спектральные линии излучения от гамма-всплеска, чтобы идентифицировать присутствующие при взрыве вещества. Используемый сегодня для хранения таких данных формат OpenEXR разрабатывался без учёта таких широких требований, а существующие методы сжатия без потерь, такие как ZIP, не позволяют добиться значительного сокращения объёмов данных.
В Spectral JPEG XL применяется метод дискретного косинусного преобразования (ДКП). В упрощённом виде принцип его работы можно объяснить так: при взгляде на цветовые переходы у радуги не нужно записывать каждую длину волны, чтобы понять, что видит человек. ДКП преобразует плавные волновые узоры в волноподобные составляющие (частотные коэффициенты), из которых при сложении воссоздаётся исходная спектральная информация. Схожим образом обрабатывается звук в MP3 — вместо того, чтобы записывать каждую крошечную вибрацию в отдельную звуковую волну, формат фиксирует важные частотные составляющие, которые воспринимаются ухом, а всё остальное отбрасывается. Так и Spectral JPEG XL записывает данные, которые определяют взаимодействие света с материалами, а менее важные детали подвергаются сжатию. Далее осуществляется оценка данных — спектральные коэффициенты делятся на общую яркость, благодаря чему менее важная информация при сжатии повреждается не так сильно. Получившийся поток данных подаётся в кодек, и вместо того, чтобы изобретать новый тип файла, используется стандартный формат изображения JPEG XL, в который записываются специально подготовленные спектральные данные.
На выходе авторам проекта удалось уменьшить размеры спектральных изображений в 10–60 раз по сравнению со стандартным сжатием формата без потерь OpenEXR — по размерам файлы стали сравнимы с обычными высококачественными фотографиями. При этом сохраняются важные функции OpenEXR, в том числе метаданные и поддержка широкого динамического диапазона. Часть информации в процессе сжатия теряется, но формат разработан с расчётом на то, чтобы сначала отбрасывать менее заметные детали — артефакты сжатия возникают на менее важных участках, а важная визуальная информация сохраняется.
Остаются и некоторые ограничения. Spectral JPEG XL сможет широко использоваться при условии постоянной разработки и совершенствования программных инструментов; первоначальные программные реализации могут потребовать дальнейшей разработчики, чтобы полностью раскрыть все возможности формата. Принять формат с потерями при сжатии смогут не все — в некоторых областях, где проводятся особо тонкие измерения, может потребоваться дальнейший поиск альтернативных методов хранения данных. На начальном этапе Spectral JPEG XL может оказаться полезным в научной визуализации и высококачественном рендеринге; но многие отрасли от проектирования транспорта до медицинской визуализации продолжают вырабатывать большие объёмы данных, и со временем технологии сжатия могут найти применение и здесь.