Существует ли формат сжатого файла с потерями для изображений с 16-битным динамическим диапазоном?

Я хотел бы агрессивно сжать некоторые научные 16-битные файлы изображений в градациях серого, но без уменьшения динамического диапазона. Возможно ли такое?

Я понимаю, что формат JPEG использует сжатие с потерями и, следовательно, настраиваемое агрессивное сжатие, но поддерживает только 8 бит на цветовой канал.

Формат PNG поддерживает 16-битные изображения в градациях серого, но поддерживает только сжатие без потерь, что ограничивает степень сжатия файла.

Формат TIFF также поддерживает 16-битные изображения в градациях серого, но, насколько мне известно, не поддерживает стандартное сжатие 16-битных изображений с потерями.

JPEG фактически поддерживает 12-битные изображения! Об этом знают немногие, и многие программы этого не поддерживают. Но, поддержка есть.
Я думаю, что openEXR — это то, что вам нужно. Вы можете быть более гибкими с цветовой субдискретизацией, чем JPEG, и лучше настроить ее для ваших научных потребностей в данных. Насколько я помню, это разработано для Pixar.
BPG поддерживает до 14 бит.
Извините, если я совсем не в тему, но что не так со старым добрым ZIP?
@Ilia Frenkel ZIP не с потерями. (Не специализированный для изображений)
Копирование ответа на мой связанный вопрос ( photo.stackexchange.com/questions/113747/… ): HEIC/HEIF кажется более стандартной альтернативой BPG. К сожалению, я не уверен, какие инструменты существуют для кодирования 16-битных изображений; ImageMagick, кажется, выводит только 8-битную версию.

Ответы (3)

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

Лично, если бы я был на вашем месте, я бы сказал, что хранилище дешево и использует PNG, который является правильно определенным и бесплатным стандартом.

JPEG2000 кажется как раз тем. Инструменты ImageMagick работают с jpeg2000; что является достаточной поддержкой для меня, чтобы продолжить мое расследование.

JPEG2000, и вы также можете взглянуть на OpenEXR, потому что он поддерживается видеооборудованием.

Максимальный динамический диапазон линейного 8-битного кодирования составляет всего 8 ступеней, однако динамический диапазон, который вы можете сохранить с помощью нелинейного кодирования, безграничен.

Таким образом, я бы посоветовал вам применить к изображениям сильную тоновую кривую, а затем вы можете использовать стандартный JPEG без потери динамического диапазона. Если вы хотите использовать исходные изображения, преобразуйте их в 16-битные и примените обратную тоновую кривую.

Это, конечно, если вас интересует только динамический диапазон. Если вам также нужно сохранить тональный диапазон , вам, возможно, придется использовать собственное сжатие с потерями...

Точно так же вы можете предварительно обработать изображения таким образом, чтобы отбросить информацию, которая, как вы знаете, вам не нужна, перед сохранением в виде 16-битного файла PNG или TIFF со сжатием без потерь.
Это то, что видеокамера делает с профилем изображения журнала, но по опыту я могу сказать, что это очень плохая идея, потому что сокращение информации фиксируется вместо использования переменных потерь. Использование сжатия с потерями openEXR дало бы гораздо лучший результат.