Apakah ada format file terkompresi yang hilang untuk gambar rentang dinamis 16-bit?

14

Saya ingin mengompres secara agresif beberapa file gambar grayscale 16-bit ilmiah, tetapi tanpa mengurangi rentang dinamis. Apakah hal seperti itu mungkin?

Saya mengerti bahwa format JPEG menggunakan kompresi lossy, dan karenanya sangat agresif, tetapi hanya mendukung 8-bit per saluran warna.

Format PNG mendukung gambar grayscale 16-bit, tetapi hanya mendukung kompresi lossless, yang membatasi rasio kompresi file.

Format TIFF juga mendukung gambar grayscale 16-bit, tetapi sejauh yang saya ketahui, tidak mendukung kompresi lossy standar dari gambar 16-bit.

Christopher Bruns
sumber
2
JPEG sebenarnya mendukung gambar 12-bit! Tidak banyak orang yang mengetahui hal ini, dan banyak program tidak mendukungnya. Tapi, dukungan ada di sana.
Dietrich Epp
1
Saya pikir openEXR adalah apa yang Anda inginkan. Anda bisa lebih fleksibel dengan subsampling warna daripada jpeg, dan menyesuaikannya lebih baik untuk kebutuhan data ilmiah Anda. Seingat saya, ini dikembangkan untuk / oleh Pixar.
JDługosz
2
BPG mendukung hingga 14 bit.
Vi0
Maaf jika saya benar-benar keluar jalur di sini, tetapi apa yang salah dengan ZIP tua yang baik
Ilia Frenkel
1
@Ilia Frenkel ZIP tidak rugi. (Tidak khusus untuk gambar)
Christopher Bruns

Jawaban:

18

Kedengarannya seperti yang Anda cari adalah JPEG2000. Ini memiliki berbagai pilihan termasuk kompresi lossy 16-bit dan rasio kompresi yang lebih baik daripada JPEG. Ini belum diadopsi secara luas seperti yang diharapkan (untuk sejumlah alasan) dan mungkin memiliki beberapa masalah paten yang mungkin membuatnya sulit untuk digunakan dalam situasi tertentu tetapi jika tidak sesuai dengan kebutuhan Anda.

Secara pribadi jika saya berada di posisi Anda, saya akan mengatakan penyimpanan murah dan menggunakan PNG yang merupakan standar yang benar dan gratis.

James Snell
sumber
2
JPEG2000 sepertinya hanya hal. Alat ImageMagick bekerja dengan jpeg2000; yang cukup mendukung bagi saya untuk melanjutkan penyelidikan saya.
Christopher Bruns
8

JPEG2000, dan Anda mungkin juga ingin melihat OpenEXR karena didukung oleh perangkat keras video.

Iliah Borg
sumber
3

Rentang dinamis maksimum dari enkode 8-bit linier hanya 8 stop, namun rentang dinamis yang dapat Anda simpan dengan enkode nonlinear tidak terbatas.

Jadi saya sarankan Anda menerapkan tonecurve yang kuat untuk gambar dan kemudian Anda dapat menggunakan JPEG standar tanpa kehilangan rentang dinamis. Saat Anda ingin menggunakan gambar asli, konversikan ke 16-bit dan terapkan invers tonecurve.

Itu tentu saja jika rentang dinamis adalah satu-satunya perhatian Anda. Jika Anda juga perlu mempertahankan kisaran tonal maka Anda mungkin harus menggulung kompresi lossy Anda sendiri ...

Matt Grum
sumber
1
Demikian pula, Anda dapat melakukan pra-proses gambar dengan cara membuang informasi yang Anda tahu tidak Anda pedulikan, sebelum disimpan sebagai PNG atau TIFF 16-bit yang dikompres tanpa kehilangan.
junkyardsparkle
Inilah yang dilakukan kamera video dengan profil gambar log tetapi dari pengalaman saya dapat mengatakan itu adalah ide yang sangat buruk karena pengurangan informasi diperbaiki daripada menggunakan variabel lossiness. Menggunakan kompresi lossy openEXR akan memberikan hasil yang jauh lebih baik.
skyde