JPEG XL ve Pareto Cephesi
- libjxl sürüm 0.10 yayınlandı: JPEG XL'in referans uygulaması olan libjxl'in yeni sürümü yayınlandı. Bu sürümdeki başlıca iyileştirme, 'streaming encoding' API'sinin tam olarak uygulanması.
- Streaming encoding API: Büyük görüntülerin 'parçalar' halinde kodlanmasını sağlıyor. Tüm görüntüyü tek seferde işlemek yerine, bellek dostu bir yaklaşımla işlenebiliyor.
Kayıpsız: bellek kullanımı ve hızda büyük iyileştirmeler
- libjxl sürüm 0.9'a kıyasla iyileştirme: Önceki sürümde kayıpsız JPEG XL kodlama bellek yoğun ve zaman alıcıydı. Büyük görüntüleri kodlarken ciddi sorunlara yol açabiliyordu.
- NASA'nın Dünya gece görüntüsü örneği: 13500×6750 boyutundaki bir görüntüyü sıkıştırmak için libjxl 0.9 yaklaşık 8GB RAM ve 2 dakikadan fazla süre gerektiriyordu. libjxl 0.10'a yükseltildikten sonra ise 0.7GB RAM ve yalnızca 30 saniyede sıkıştırma mümkün oldu.
- Farklı effort ayarı sonuçları: Tabloda farklı effort ayarlarına (e1~e9) göre bellek kullanımı, süre ve sıkıştırma boyutu karşılaştırılıyor. Effort ayarı yükseldikçe sıkıştırma iyileşiyor, ancak bu iyileşme doğrusal değil.
Pareto cephesi
- Sıkıştırma tekniklerinin karşılaştırılması: Yalnızca sıkıştırılmış dosya boyutu değil, kodlama hızı da önemli. Sıkıştırma yoğunluğu ve kodlama hızı olmak üzere iki boyutun birlikte değerlendirilmesi gerekiyor.
- Pareto-optimal: Aynı sıkıştırma yoğunluğuna başka bir yöntemle daha kısa sürede ulaşılamıyorsa o yöntem Pareto-optimal kabul edilir. Pareto-optimal yöntem, verilen zaman bütçesi için en küçük dosyayı sunar.
- Pareto cephesinin görselleştirilmesi: Kodlama hızı ve sıkıştırma yoğunluğunu gösteren grafiklerle görselleştiriliyor. Farklı görüntü setleri kullanılarak ortalama hız ve sıkıştırma yoğunluğu karşılaştırılıyor.
Fotoğraf olmayan görüntüler
- Test görüntüsü seçiminin önemi: Görüntülerin çoğu fotoğraf olduğunda, doğal gürültü nedeniyle sıkıştırma zorlaşıyor.
- Çizgi roman görüntülerinde durum: Fotoğraf olmayan görüntüler fotoğraflardan çok daha iyi sıkıştırılıyor. Çizgi roman görüntüleri yaklaşık 4bpp düzeyinde sıkıştırılabiliyor.
- libjxl'deki iyileştirme: libjxl'in yeni sürümü önceki sürüme göre çok daha hızlı ve sıkıştırma oranı da daha iyi.
Kayıplı sıkıştırma hakkında
- Kayıplı sıkıştırma benchmark'ı: Yalnızca sıkıştırma boyutu ve hız önemli. Görüntü kalitesi ise üçüncü bir boyut olarak ele alınmalı.
- Kayıplı görüntü codec ve encoder performansı: Farklı kalite noktalarında farklı davranabiliyorlar. Yüksek kaliteli kodlamada iyi çalışan bir encoder, düşük kaliteli kodlamada da mutlaka iyi çalışacak diye bir kural yok.
Kayıplı Pareto cephesi
- Test edilen encoder'lar: libjpeg-turbo, sjpeg, mozjpeg, jpegli, libavif / libaom, libjxl, libwebp, libheif gibi çeşitli encoder'ların en güncel sürümleri test edildi.
- Orta kalite: SSIMULACRA2 skoru 60'a karşılık gelen ayarlardaki sonuçlar. Sayfa ağırlığını azaltmanın görüntü sadakatinden daha önemli olduğu durumlarda en ilgili seviye.
- Orta-yüksek kalite ve yüksek kalite: SSIMULACRA2 skoru 70 ve 85'e karşılık gelen ayarlardaki sonuçlar. Yüksek kalite noktalarında Pareto cephesini çoğunlukla JPEG XL oluşturuyor.
Sonuç
- libjxl sürüm 0.10'daki iyileştirmeler: Bellek tüketimi önemli ölçüde azaldı; özellikle çok iş parçacıklı kayıpsız kodlama hızı arttı.
- JPEG XL'in konumunun pekişmesi: Yüksek kaliteden görsel olarak kayıpsıza yakın kaliteye kadar, çeşitli hız ayarlarında Pareto-optimal olduğu doğrulandı.
- JPEG'in süregelen cazibesi: Yeni jpegli encoder'ı hız ve sıkıştırma açısından iyileştirmeler getiriyor. Çok hızlı kodlama gerektiğinde hâlâ en iyi seçenek olabilir.
- Cloudinary'nin katkısı: Görüntü sıkıştırma alanında en güncel teknoloji ve içgörüleri uygulayarak en iyi kullanıcı deneyimini sunmaya aktif olarak katkı sağlıyor.
GN⁺ görüşü
- libjxl 0.10'un yayınlanması, görüntü sıkıştırma teknolojisinde önemli bir ilerlemeye işaret ediyor. Özellikle büyük görüntülerin işlenmesinde bellek kullanımı ve kodlama hızındaki büyük iyileştirmeler kullanıcılara önemli faydalar sağlayacak.
- JPEG XL'in farklı kalite ve hız düzeylerinde Pareto-optimal olduğunun vurgulanması, kullanıcıların görüntü kalitesi ile dosya boyutu arasında en iyi dengeyi bulmasına yardımcı olması açısından değerli.
- Eleştirel açıdan bakıldığında, libjxl gibi yeni teknolojilerin benimsenmesi mevcut altyapıyla uyumluluk sorunları yaratabilir. Bu nedenle mevcut sistemlerle entegrasyonu gözeten kademeli bir geçiş gerekli.
- Bir görüntü sıkıştırma teknolojisi seçerken kodlama ve kod çözme hızı, dosya boyutu, desteklenen platform ve cihazlar gibi birçok unsur birlikte değerlendirilmelidir. JPEG XL, yüksek kaliteli görüntü sıkıştırma için cazip bir seçenek olsa da tüm kullanıcılar ve sistemler tarafından yaygın biçimde desteklenmiyor.
- Bu teknolojinin getireceği artılar arasında bellek kullanımının azalması, kodlama hızının artması ve dosya boyutunun küçülmesi yer alırken; eksileri arasında mevcut sistemlerle uyumluluk sorunları ve yeni teknolojiye ilişkin öğrenme eğrisi bulunuyor.
2 yorum
jpeglikodlayıcısı,mozjpeg'in ardından bir kez daha JPG'nin ömrünü uzatıyor gibi görünüyor...JXL tarafında yapılmış olsa da ironik biçimde JXL'in yayılmasını engelleyebilir gibi duruyor...
Hacker News yorumu
WebP formatının kayıpsız sıkıştırma performansı çok güçlü
Düşük kalite ayarlarında JPEG'in ayrıntı koruma yeteneğine dair değerlendirme
JPEG XL formatı hakkında ayrıntılı bilgi arayan kullanıcıların yaşadığı zorluk
Kodlama hızına odaklanan makale hakkındaki soru işaretleri
JPEG XL'in kalite ve sıkıştırma yeteneğine dair değerlendirme
JPEG XL projesi sayesinde geliştirilen yeni paralel işleme kütüphanesi
QOI formatının dahil edilmesine verilen tepki
libjxl'in yeni sürümü bellek tüketimini büyük ölçüde azaltıyor
Eski JPEG dosyalarını JPEG XL ile yeniden sıkıştırmanın avantajları
Kayıpsız AVIF'te ek tasarruf olasılığına değinme