Esiste un formato di file compresso con perdita di dati per le immagini con intervallo dinamico a 16 bit?


14

Mi piacerebbe comprimere in modo aggressivo alcuni file di immagini in scala di grigi scientifici a 16 bit, ma senza ridurre la gamma dinamica. E 'possibile una cosa del genere?

Comprendo che il formato JPEG utilizza una compressione con perdita, e quindi sintonicamente aggressivo, ma supporta solo 8 bit per canale di colore.

Il formato PNG supporta immagini in scala di grigi a 16 bit, ma supporta solo la compressione lossless, che limita il rapporto di compressione del file.

Il formato TIFF supporta anche immagini in scala di grigi a 16 bit, ma per quanto ne so, non supporta la compressione con perdita standard delle immagini a 16 bit.


2
JPEG in realtà supporta immagini a 12 bit! Non molte persone lo sanno e molti programmi non lo supportano. Ma il supporto è lì.
Dietrich Epp,

1
Penso che openEXR sia quello che vuoi. Puoi essere più flessibile con il sottocampionamento dei colori rispetto a jpeg e ottimizzarlo meglio per le tue esigenze di dati scientifici. Come ricordo, questo è sviluppato per / da Pixar.
JDługosz,

2
BPG supporta fino a 14 bit.
Vi0

Mi dispiace se sono completamente fuori linea qui, ma cosa c'è di sbagliato nel buon vecchio ZIP?
Ilia Frenkel,

1
@Ilia Frenkel ZIP non è in perdita. (Né specializzato in immagini)
Christopher Bruns,

Risposte:


18

Sembra che quello che stai cercando sia JPEG2000. Ha una gamma di opzioni tra cui una compressione con perdita di 16 bit e rapporti di compressione migliori rispetto a JPEG. Non è stato ampiamente adottato come sperato (per una serie di motivi) e potrebbe avere alcuni problemi di brevetto che potrebbero rendere difficile l'uso in determinate situazioni, ma per il resto si adatta alle tue esigenze.

Personalmente, se fossi nella tua posizione, direi che lo spazio di archiviazione è economico e uso PNG che è uno standard ben definito e gratuito.


2
JPEG2000 sembra proprio la cosa giusta. Gli strumenti ImageMagick funzionano con jpeg2000; che è un supporto sufficiente per me per procedere con la mia indagine.
Christopher Bruns,

8

JPEG2000 e potresti anche voler guardare OpenEXR perché è supportato dall'hardware video.


3

L'intervallo dinamico massimo di una codifica lineare a 8 bit è di soli 8 stop, tuttavia l'intervallo dinamico che è possibile memorizzare con una codifica non lineare è illimitato.

Pertanto, suggerirei di applicare una forte tonalità di tonalità alle immagini e di utilizzare JPEG standard senza perdere la gamma dinamica. Quando si desidera utilizzare le immagini originali, convertirle in 16 bit e applicare la curva tonale inversa.

Questo è ovviamente se la gamma dinamica è la tua unica preoccupazione. Se devi anche preservare la gamma tonale, potresti dover eseguire il rollup della tua compressione con perdita di dati ...


1
Allo stesso modo, è possibile pre-elaborare le immagini in modo da scartare le informazioni che non ti interessano, prima di salvare come PNG o TIFF a 16 bit compressi senza perdita di dati.
Junkyardsparkle,

Questo è ciò che la videocamera sta facendo con il profilo dell'immagine del registro, ma per esperienza posso dire che è una pessima idea perché la riduzione delle informazioni è fissa invece di usare la perdita variabile. L'uso della compressione con perdita di openEXR darebbe risultati molto migliori.
skyde,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.