Saya berurusan dengan arsip besar gambar satelit Bumi, masing-masing diambil 15 menit terpisah dari area yang sama, oleh karena itu mereka sangat mirip satu sama lain. Dua yang berdekatan terlihat seperti ini:
Algoritme video bekerja dengan sangat baik mengompresi banyak gambar serupa. Namun, gambar ini terlalu besar untuk video (10848x10848) dan menggunakan encoders video akan menghapus metadata gambar, jadi mengekstraknya dan mengembalikan metadata akan menjadi rumit bahkan jika saya mendapatkan encoder video untuk bekerja dengan gambar besar seperti itu.
Untuk melakukan beberapa tes, saya telah mengurangi 96 gambar sehari menjadi 1080x1080 piksel, total 40,1MB dan mencoba kompresi berbeda dengan hasil berikut:
- zip: 39,8 MB
- rar: 39,8 MB
- 7z: 39.6 MB
- tar.bz2: 39,7 MB
- zpaq v7.14: 38.3 MB
- fp8 v2: 32.5 MB
- paq8pxd v45: 30.9 MB
Tiga yang terakhir, seharusnya mengambil keuntungan yang jauh lebih baik dari konteks dan memang bekerja lebih baik daripada kompresi tradisional, tetapi rasio kompresi masih sangat buruk dibandingkan dengan video mp4 yang dapat membawanya hingga 15 MB atau bahkan kurang menjaga kualitas gambar.
Namun, tidak ada algoritma yang digunakan oleh utilitas kompresi yang tampaknya mengambil keuntungan dari kesamaan gambar seperti kompresi video. Bahkan, menggunakan packJPG , yang mengkompres setiap gambar secara terpisah, seluruh rangkaian turun ke 32,9 MB, cukup dekat dengan fp8 dan paq8pxd tetapi tanpa mengambil keuntungan sama sekali dari kesamaan antara gambar (karena setiap gambar dikompresi secara individual).
Dalam percobaan lain, saya menghitung di Matlab perbedaan dua gambar di atas, dan terlihat seperti ini:
Mengompresi kedua gambar asli (219.5 + 217.0 = 436.5 kB total) dengan fp8 membuatnya turun menjadi 350.0 kB (80%), tetapi mengompresi salah satu dari mereka dan gambar perbedaan (sebagai jpg dengan kualitas yang sama dan menggunakan 122.5 kB), hasilnya dalam file 270,8 kB (62%), jadi sekali lagi (seperti yang diungkapkan oleh perbandingan mp4 dan packJPG), fp8 tampaknya tidak mengambil banyak keuntungan dari kesamaan. Bahkan dikompres dengan rar, satu gambar plus perbedaannya lebih baik daripada fp8 pada gambar asli. Jika demikian, rar turun ke 333.6 kB (76%).
Saya kira harus ada solusi kompresi yang baik untuk masalah ini, karena saya dapat membayangkan banyak aplikasi. Selain kasus khusus saya, saya kira banyak fotografer profesional memiliki banyak foto yang sama karena pemotretan berurutan, atau gambar selang waktu, dll. Semua kasus yang akan mendapat manfaat dari kompresi seperti itu.
Juga, saya tidak memerlukan kompresi tanpa kehilangan, paling tidak untuk data gambar (metadata harus dipertahankan).
Jadi ... Apakah ada metode kompresi yang mengeksploitasi kesamaan antara gambar yang telah dikompres?
Dua gambar dari tes di atas dapat diunduh di sini , dan 96 gambar dari tes pertama di sini .
Is there a compression utility that take advantage of the similarities between images better than zpaq and fp8?
danIs there a updated/maintained version of the fp8 utility?
kemungkinan garis menyinggung. Bandingkan dengan misalnyaIs there a compression *method, algorithm or technique* that take advantage of the similarities between images better than zpaq and fp8?
Fokusnya bisa dibilang jauh berbeda. Meminta perangkat lunak mungkin berlebihan, karena perangkat lunak tertentu (jika berlaku) hampir pasti akan disebutkan dalam setiap jawaban yang diberikan.Jawaban:
Saya tidak tahu perangkat lunak tertentu yang melakukan ini, tetapi ada beberapa penelitian tentang masalah ini. Misalnya, lihat artikel Mengompresi Set Gambar Mirip oleh Samy Ait-Aoudia, Abdelhalim Gabis, Amina Naimi, dan Mengompresi set gambar yang serupa menggunakan model kompresi hybrid oleh Jiann-Der Lee, Shu-Yen Lee, Chem-Min Ma, Rui -Feng Wu.
Pada tingkat yang lebih praktis, Anda dapat memperluas teknik pengurangan Anda, misalnya dengan menulis skrip yang menggunakan ImageMagick untuk menghitung perbedaan antara gambar berurutan, menyimpan hasilnya sebagai jpeg (atau png terkompresi jika Anda menginginkannya lossless). Anda akan mendapatkan satu gambar dasar dan satu set gambar "delta" terkompresi yang seharusnya jauh lebih kecil. Untuk menghitung perbedaan menggunakan ImageMagick:
Untuk menghitung ulang dengan menambahkan kembali:
(Anda dapat melakukan hal yang sama menggunakan jpg dan menghemat banyak ruang).
sumber