Existe-t-il un format de fichier compressé avec perte pour les images à plage dynamique 16 bits?


14

Je voudrais compresser agressivement certains fichiers d'images scientifiques en niveaux de gris 16 bits, mais sans réduire la plage dynamique. Une telle chose est possible?

Je comprends que le format JPEG utilise une compression avec perte, et donc agressivement ajustable, mais ne prend en charge que 8 bits par canal de couleur.

Le format PNG prend en charge les images en niveaux de gris 16 bits, mais ne prend en charge que la compression sans perte, ce qui limite le taux de compression des fichiers.

Le format TIFF prend également en charge les images en niveaux de gris 16 bits, mais à ma connaissance, ne prend pas en charge la compression avec perte standard des images 16 bits.


2
JPEG prend en charge les images 12 bits! Peu de gens le savent et de nombreux programmes ne le soutiennent pas. Mais, le soutien est là.
Dietrich Epp

1
Je pense que openEXR est ce que vous voulez. Vous pouvez être plus flexible avec le sous-échantillonnage des couleurs que le jpeg, et le régler mieux pour vos besoins de données scientifiques. Si je me souviens bien, ceci est développé pour / par Pixar.
JDługosz

2
BPG prend en charge jusqu'à 14 bits.
Vi0

Je suis désolé si je suis complètement hors ligne ici, mais qu'est-ce qui ne va pas avec le bon vieux ZIP?
Ilia Frenkel le

1
@Ilia Frenkel ZIP n'est pas avec perte. (Ni spécialisé pour les images)
Christopher Bruns

Réponses:


18

Il semble que ce que vous recherchez soit JPEG2000. Il dispose d'une gamme d'options, notamment une compression avec perte de 16 bits et de meilleurs taux de compression que JPEG. Il n'a pas été adopté aussi largement que souhaité (pour une multitude de raisons) et peut avoir des problèmes de brevet qui pourraient le rendre difficile à utiliser dans certaines situations, mais sinon il correspond à vos besoins.

Personnellement, si j'étais à votre place, je dirais que le stockage est bon marché et j'utilise le PNG, qui est une norme correctement définie et gratuite.


2
JPEG2000 semble être exactement la chose. Les outils ImageMagick fonctionnent avec jpeg2000; ce qui est un soutien suffisant pour que je puisse poursuivre mon enquête.
Christopher Bruns

8

JPEG2000, et vous voudrez peut-être également regarder OpenEXR car il est pris en charge par le matériel vidéo.


3

La plage dynamique maximale d'un codage linéaire 8 bits n'est que de 8 arrêts, mais la plage dynamique que vous pouvez stocker avec un codage non linéaire est illimitée.

Ainsi, je suggère que vous appliquiez une courbe de tonalité forte aux images et que vous puissiez ensuite utiliser le JPEG standard sans perdre la plage dynamique. Lorsque vous souhaitez utiliser les images originales, convertissez-les en 16 bits et appliquez la courbe de tonalité inverse.

C'est bien sûr si la plage dynamique est votre seule préoccupation. Si vous devez également préserver la plage tonale, vous devrez peut-être rouler votre propre compression avec perte ...


1
De même, vous pouvez prétraiter les images de manière à éliminer les informations dont vous ne vous souciez pas, avant de les enregistrer au format PNG ou TIFF 16 bits compressé sans perte.
junkyardsparkle

C'est ce que font les caméras vidéo avec le profil d'image de journal, mais par expérience, je peux dire que c'est une très mauvaise mauvaise idée car la réduction des informations est fixe au lieu d'utiliser la perte variable. L'utilisation de la compression avec perte openEXR donnerait un bien meilleur résultat.
skyde
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.