Benzer görüntüleri kayıpsız sıkıştırıyor musunuz?


10

Fotoğraf kitaplığımın boyutunu küçültmem gerekiyor, bu yüzden doğal olarak sıkıştırmak istiyorum. Birçoğu tamamen aynı değil, ama yine de çok benzer (aynı sahnenin sonraki çekimleri). Bu görüntüleri etkili bir şekilde sıkıştırmak için bu gerçeği kullanan herhangi bir sıkıştırma algoritması var mı? 7zip (LZMA) işe yaramaz.

Yanıtlar:


11

Paq 8'i (fp8_v2.zip) deneyebilirsiniz . Kendimi 1440 benzer PNG görüntüsünde ve sonra tekrar 111 benzer JPG görüntüsünde denedim. Sonuçlar burada.

  • 1440 PNG Dosyaları, 28.631.615 bayt => 2.058.653 bayt sıkıştırılmış
  • 111 JPG Dosyası, 15.003.820 bayt => 489.096 bayt sıkıştırılmış

PNG dosyalarının sıkıştırılması kullanılırken yaklaşık 8 dakika ve 550 MB bellek aldı:

fp8_v2.exe -7 images *.png

JPG dosyalarının sıkıştırılması kullanıldığında yaklaşık 5 dakika ve 125 MB bellek aldı:

fp8_v2.exe -5 images image12*.jpg

Ayrıca bakınız: jpg kayıpsız görüntü sıkıştırma testi


JPG'ler için% 97 sıkıştırma gerçekçi görünmüyor. Bağlantı testinde sıkıştırmanın yaklaşık% 20 olduğunu söylemek için
kullandığınız sayılar

@OneSolitaryNoob JPEG'lerin benzer olduğunu unuttunuz mu? 110/111 = % 99,1 beklenen sıkıştırma. Bağladığı karşılaştırma testi, tek bir JPEG'i sıkıştırmakla ilgilidir.
Navin

@Navin pek olası değil. Neredeyse aynı görünseler bile piksellerin çoğu biraz farklı olacaktır.
OneSolitaryNoob

@OneSolitaryNoob Ne olmuş yani? Videonun 1 saniyesi (30 kare), tek bir kareyle yaklaşık aynı boyuta sıkıştırılabilir. Küçük bir fark verilerin küçük bir kısmını oluşturduğu sürece, hepiniz iyisinizdir.
Navin

@Navin kayıplı sıkıştırma, birçok detay gitti ama çoğu insan fark etmeyecek. Paq * kayıpsız sıkıştırmadır
OneSolitaryNoob

1

Bir aritmetik kodlayıcı ile burrows-wheeler dönüşümünün yeterince büyük bir pencere göz önüne alındığında bunun için ideal olacağını hayal ediyorum. BZIP2'yi küçük bir fotoğraf grubuna eşit bir blok boyutu kullanacak şekilde yapılandırırsanız ne olur? Daha yavaş olur ve daha fazla bellek alır ancak sıkıştırma oranı hızla yükselir. Ve henüz daha büyük blok boyutlarına sahip LZMA'yı denediniz mi?


1

Fotoğraflar için çalışmayan, ancak geniş piksel-piksel özdeş alanlara sahip birkaç görüntü varsa işe yarayan basit bir çözüm: görüntüleri BMP (PNG veya GIF değil) gibi paketlenmemiş bir formatta kaydedin ve ardından TAR ve sıkıştırın XZ gibi iyi bir kompresör ile, örneğin Linux'ta

tar -c myDirectory | xz -9 >myDirectory.tar.xz

TAR ve XZ yerine, kabaca aynı performansı elde etmek için “katı arşiv” seçeneğiyle 7-Zip kullanılabilir. Bu şekilde, ayrı PNG dosyaları olarak kaydedildiğinde yaklaşık 900 KB alan 16 benzer ekran görüntüsünü 2 MB arşivine sıkıştırabilirim. Bu çözümün avantajı, yaygın dosya formatlarını kullanmasıdır, bu nedenle yeni yazılım yüklemeden çalışır. (Ne yazık ki daha eski ve daha yaygın GZIP ve BZIP2 programları benim için iyi bir iş yapmadı - belki de BZIP2'nin blok boyutu 900 KB'den daha büyük olacak şekilde yapılandırılamaz.)


0

Gördüğümden değil. Muhtemelen en yakın şey birkaç benzer JPEG çekmek ve bunları bir MJPEG filmine koymak olacaktır. APNG veya animasyonlu GIF'leri de benzer bir amaç için kullanabilirsiniz.

Bunun ne kadar iyi çalışacağından emin değilim ve zaten film ekran haritaları hakkında konuşuyorsunuz gibi geliyor, bu yüzden onları bir film dosyasına yeniden paketlemek kulağa ters geliyor.

Belki de daha iyi bir yol, hala ekranların geldiği kliplere sahipseniz, sizin için tam kareyi çıkarabilecek bir komut satırı aracı bulmak, bu benzersiz tanımlayıcıyı bir yere bir metin dosyasına kopyalamak ve her zaman İhtiyacınız olduğunda çerçeveyi kolayca yeniden çıkarın.


GIF, fotoğrafları sıkıştırmak için uygun değildir ve animasyonlu GIF daha da azdır. Fotoğrafları bir MJPEG videoya sıkıştırmak bile gözlerimde yararlı görünmüyor, çünkü tek görüntüleri geri yüklemek zor olurdu.
Martin

İyi bir fikir olduğunu söylemedim ... :-) Nihai fikir, fotoğrafları orijinal formatlarının animasyonlu bir varyantına koymaktı.
afrazier
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.