Dosyalar için en yüksek sıkıştırma (web aktarımı için)?


14

Yaklaşık 30-50MB'a sıkıştırılmış 700MB veri gibi bazı yüksek oranda sıkıştırılmış dosyalar gördüm.

Ancak bu kadar sıkıştırılmış dosyaları nasıl edinebilirsiniz? WinRAR ve 7Zip gibi yazılımları kullanmayı denedim ama bu kadar yüksek bir sıkıştırma elde etmedim.

Dosyaları bu kadar iyi sıkıştırmanızı sağlayan teknikler / yazılımlar nelerdir?

(PS, Windows XP kullanıyorum)


Güzel fikir ... ama böyle dosyaları nereden alıyorsun?
Robinicks

3
Orijinal boyutunun yaklaşık% 1'ine kadar 7zip sıkıştırılmış sunucu günlük dosyaları (çoğunlukla metin) gördüm.
Umber Yüksük

2
Not Defteri'ni açın. 1 Milyar kez "A" yazın. Kaydedin, sonra sıkıştırın. VAOV! Bir dosyaya 1 Milyar (doğru) rasgele sayı yazan bir uygulama oluşturun. Sıkıştır. BU NE?
igrimpe

igrimpe: Birçok sıkıştırma algoritması indeks örüntüleri. Bir milyar A, bir milyar kez bir A'dır. Bunu [A] {1, 1000000000} olarak sıkıştırabilirsiniz. Bir milyar rasgele sayınız varsa, belirli bir alt kümedeki her bir ardışık sayı, eşleşen bir alt kümenin olasılığını katlanarak azalttığından, kalıp eşlemesi yapmak zorlaşır.
AaronF

Yanıtlar:


11

Verileri sıkıştırmak için harcanan zaman bir sorun değilse, birkaç farklı aracı birlikte kullanarak sıkıştırılmış boyutu optimize edebilirsiniz.

7zip, winrar (zip için) ve bjwflate gibi farklı araçları kullanarak verileri birkaç kez sıkıştırın.

(Bunun zip dosyasını tekrar tekrar sıkıştırmak anlamına gelmediğini, farklı araçlar kullanarak bir dizi alternatif zip dosyası oluşturduğunu unutmayın)

Ardından, her arşivi biraz daha azaltmak için her arşivde deflopt çalıştırın .

Son olarak, arşiv koleksiyonunda zipmix'i çalıştırın . Farklı zip araçları farklı dosyalarda daha iyi olduğundan, zipmix her bir arşivden her dosyanın en iyi sıkıştırılmış sürümünü seçer ve zip araçlarından herhangi birinin ayrı ayrı üretebileceğinden daha küçük bir çıktı üretir.

Bununla birlikte, bunun dosyalarınızda herhangi bir büyü çalışması garanti edilmediğini unutmayın. JPEG ve MP3 gibi bazı veri türleri çok iyi sıkıştırılmaz. Bu dosyalar zaten dahili olarak sıkıştırılmıştır.


4
JPEG'ler ve MP3'ler sıkıştırılmaz. Sıkıştırılmış ancak sıkıştırılmamışlardır.
KovBal

Bu inanılmaz derecede kötü bir tavsiye, birden fazla sıkıştırma algoritmasını sırayla kullanmaya çalışmak çok kötü bir fikir. Her algoritma böylece aslında konum birden kullanarak, + havai sıkıştırılmış dosya oluşturur ekleyerek size kompres çalışıyoruz verilere verileri - kum bir delik kazmak için çalışmak gibi bir şey, daha derin, daha fazla kum dökülen üzerinde gitmek sen. Maksimum sıkıştırma ayarlarında tek bir iyi algoritma kullanmaktan daha iyidir.
Tacroy

Sanırım yanlış anlıyorsun .. Aynı veriler tekrar tekrar sıkıştırılmıyor. Aksine, arşiv başına değil, dosya başına en iyi tek algoritmayı seçersiniz.
izb

6
Verileri birkaç kez sıkıştırmak oldukça yanıltıcıdır.
ta.speot.

12

Bu tamamen sıkıştırılmakta olan verilere bağlıdır.

Metin çok iyi sıkıştırır, ikili biçimler çok iyi değil ve sıkıştırılmış veri (mp3, jpg, mpeg) hiç değil.

İşte wikipedia'dan iyi bir Sıkıştırma Karşılaştırma Tablosu .


Sıkıştırmanın veri türüne bağlı olduğunu biliyorum, ancak dosyaları daha fazla sıkıştırmanıza yardımcı olan belirli teknikler var mı?
rzlines

3
Bir şeyi sıkıştırdıktan sonra ölçülebilir derecede küçültmek genellikle imkansızdır. Verileriniz için uygun sıkıştırma yöntemini seçmeniz yeterlidir.
Nifle

Metin kolayca% 90'a kadar sıkıştırılabilir.
Georg Schölly

@ GeorgSchölly: Bu mükemmel. Herhangi bir veriyi metne dönüştürebildiğim için, örneğin her bir ikili baytı görüntülenen iki onaltılık basamağa dönüştürür. Bu benim boyutumu iki katına çıkarır, ancak daha sonra iki katına çıkan boyutun% 90'ından tasarruf etmek, toplamda% 80 tasarruf sağlar. (Ya da ikili-metin dönüştürme biraz daha fazla verimlilik için base64 kullanabilirsiniz.) Bu şaşırtıcı derecede harika bir haber! :)
TOOGAM

8

Önceki cevaplar büyüklük sırasına göre yanlış!

Kişisel deneyime sahip olduğum en iyi sıkıştırma algoritması paq8o10t (bkz. Zpaq sayfası ve PDF ).

İpucu: files_or_folders sıkıştırma komutu şöyle olacaktır:

paq8o10t -5 archive files_or_folders

Dell Latitude E6510 dizüstü bilgisayardaki (Core i7 M620, 2 + 2 hiper iş parçacığı, 2.66 GHz, 4 GB, Ubuntu Linux) varsayılan ve maksimum ayarlarda 10 GB (79.431 dosya) harici USB sabit sürücüye sıkıştırma ve ayıklama süresi , Şarap 1.6).  10 GB Benchmark'tan (sistem 4) veriler.

Kaynak: Artımlı Günlük Kaydı Yedekleme Yardımcı Programı ve Arşivleyici

GitHub'da kaynak kodun bir aynasını bulabilirsiniz .


Biraz daha iyi bir sıkıştırma algoritması ve Hutter Ödülü'nün sahibi decomp8'dir (ödül sayfasındaki bağlantıya bakın). Ancak, gerçekten kullanabileceğiniz bir kompresör programı yoktur.


İçin gerçekten büyük dosyalar lrzip sade sıkıştırma oranları elde edebilirsiniz komik .

README.benchmarks'dan bir örnek:


Altı çekirdek ağacını tarball, linux-2.6.31 - linux-2.6.36 olarak bir versiyon halinde ayıralım. Bunlar çok fazla bilgi gösterecektir, ancak lrzip'in sıkıştırılmasında çok iyi olacağı yüzlerce megabayt arayla. Basitlik için, şu anda en iyi genel amaçlı kompresör olduğu için sadece 7z karşılaştırılacaktır:

Bunlar, lrzip v0.5.1 kullanılarak 4GB ram ile 2.53Ghz çift çekirdekli Intel Core2'de gerçekleştirilen karşılaştırmalardır. 32 bit kullanıcı alanı ile çalıştığını ve sadece 2GB adreslemenin mümkün olduğunu unutmayın. Ancak, karşılaştırma ölçütü -U seçeneğiyle çalıştırılarak tüm dosyanın büyük bir sıkıştırma penceresi olarak değerlendirilmesini sağladı.

6 ardışık çekirdek ağacının tarball'ı.

Compression    Size                 Percentage      Compress    Decompress
None           2373713920           100             [n/a]       [n/a]
7z             344088002            14.5            17m26s      1m22s
lrzip          104874109            4.4             11m37s      56s
lrzip -l       223130711            9.4             05m21s      1m01s
lrzip -U       73356070             3.1             08m53s      43s
lrzip -Ul      158851141            6.7             04m31s      35s
lrzip -Uz      62614573             2.6             24m42s      25m30s

Maksimum sıkıştırma oranı sağlamak için optimize edilmiştir, ancak rakiplere göre çok daha yavaştır.
Eric

2
@Eric J. evet, ancak soru sıkıştırma / dekompresyon hızını belirtmedi;)
Alexander Riccio

3

Squeezechart.com çeşitli sıkıştırma oranlarının karşılaştırmasını içerir. Her ne kadar, Nifle'nin cevabında belirtildiği gibi - ikili formatlar için bu kadar yüksek sıkıştırma oranları elde edemezsiniz.


2

Çoğu sıkıştırma aracının, daha yavaş sıkıştırma / açma zamanlarından ve daha fazla RAM kullanımından ödün vermeden daha yüksek bir sıkıştırma oranı elde etmenizi sağlayan ayarları vardır.

7-Zip için daha fazla ayrıntı için yerleşik yardımda "Arşive Ekle İletişim Kutusu" nu arayın.


2

7zip'i aşağıdaki ultra ayarlarla deneyebilirsiniz:

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql

2

Tam sıkıştırma karşılaştırmasını içeren en iyi sıkıştırma listesine sahip olan çoklu dosya sıkıştırma kıyaslama testlerinin Özetini kontrol etmeniz yeterlidir.

İlk 30

resim açıklamasını buraya girin

Bu testteki en iyi performans gösterenler (sıkıştırmaya dayalı olarak) PAQ8 ve WinRK (PWCM). 300+ Mb test setini 62 Mb'ın altına (boyutta% 80 azalma) sıkıştırabilirler, ancak testi tamamlamak için minimum 8,5 saat sürebilirler. Bir numaralı program (PAQ8P) testi tamamlamak için yaklaşık 12 saat ve dört numaralı (PAQAR) 17 saat sürer. En iyi 2. sıkıştırmaya (% 79.7) sahip olan program WinRK yaklaşık 8,5 saat sürüyor. Şaşırtıcı olmayan bir şekilde, bahsedilen tüm programlar sıkıştırma için bir PAQ (benzeri) motor kullanmaktadır. Gömülü görüntülere sahip dosyalarınız varsa (örn. Word DOC dosyaları) PAQ8 kullanın, bunları tanır ve ayrı olarak sıkıştırır, sıkıştırmayı önemli ölçüde artırır. Bahsedilen tüm programlar (WinRK hariç) ücretsizdir.


1

Buradaki en iyi bahsin deneme yanılma gibi görünüyor. Her dosyada mevcut tüm sıkıştırma tekniklerinizi deneyin ve web sitenize koymak için en iyisini seçin. Neyse ki bilgisayarlar bu tür şeyleri oldukça hızlı yapıyor ve sıkılmıyor. İşlemi otomatikleştirmek için basit bir komut dosyası yazabilirsiniz, böylece "nispeten ağrısız" olur.

Sadece mucizeler beklemeyin - 700 mb'den 30 mb'ye kadar bu kadar sık ​​olmaz. Günlük dosyaları yukarıda belirtildiği gibi - evet. "Ortalama dosyanız" - hiçbir şekilde.


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.