Yanıtlar:
Sıkıştırılan verilere çok bağlıdır. Sıfırlarla dolu bir 1Gb dosya içeren hızlı bir test ~ 120Kb sıkıştırılmış bir boyut verir, böylece 10Kb dosyanız potansiyel olarak ~ 85Mbayt'a genişleyebilir.
Örneğin, başlangıçta verilerin başlaması artık düşükse, arşiv, yerel olarak sıkıştırılmış bir biçimde (gif, jpg, png, ...) görüntü dosyalarını içeriyorsa, gzip daha fazla sıkıştırma ekleyemez. Program çalıştırılabilir dosyaları gibi ikili dosyalar için, 2: 1 sıkıştırmaya kadar görebilirsiniz, düz metin, HTML veya diğer işaretlemeler için 3: 1 veya 4: 1 veya daha fazlası olası değildir. Bazı durumlarda 10: 1 görebilirsiniz, ancak tek bir sembolle dolu bir dosyayla görülen ~ 8700: 1, benzer şekilde yapay koşulların dışında göremeyeceğiniz bir şeydir.
Sıkıştırılmamış içeriğini diske yazmadan ne kadar verinin bir gzip dosyasını açmaktan kaynaklanabileceğini kontrol edebilirsiniz, gunzip -c file.gz | wc --bytes
bu - ile bu dosyayı açacaktır, ancak sonuçları depolamaya başlamaz, bunun yerine geçen wc
bayt sayısını sayar. sonra onları atın. Sıkıştırılmış içerik, çok sayıda küçük dosya içeren bir tar dosyasıysa, tüm arşivi açmak için farkedilir derecede daha fazla disk alanı gerektiğini fark edebilirsiniz, ancak çoğu durumda, boru gunzip
çıkışından geri gönderilen sayım, istediğiniz wc
kadar doğru olacaktır.
phpinfo()
çok iyi sıkıştırır. Bu çıktıdaki teknik bilgi, ortalama doğal dil öbekinden daha doğrudan tekrarlama içeriyor ve alfabe dağılımı muhtemelen Huffman sahnesinin daha iyi sonuçlar almasına yardımcı olacak şekilde daha az düzgün.
Genellikle,% 95'ten fazla sıkıştırma elde edemezsiniz (böylece 10kB gzipli veriler ~ 200kB'ye açılır), ancak katlanarak genişleyen özel hazırlanmış dosyalar vardır. Bakın 42.zip
, birkaç petabayt (anlamsız) verinin kodunu açar.
Https://stackoverflow.com/a/16794960/293815 adresinden verbatim alındı.
Söndürme formatının maksimum sıkıştırma oranı 1032: 1'dir. Bunun nedeni, kodlanabilecek en uzun çalışmanın 258 bayttır. Her bir çalışma için en az iki bit gereklidir (uzunluk kodu için bir bit ve mesafe kodu için bir bit), bu nedenle sıkıştırılmış bayt başına 4 * 258 = 1032 sıkıştırılmamış bayt kodlanabilir.
Gzip sonucunu gzipleyerek daha fazla sıkıştırma elde edebilirsiniz. Normalde bu sıkıştırmayı iyileştirmez, ancak çok uzun süreler için yapabilir.
Bu arada, deflate tarafından kullanılan LZ77 yaklaşımı, çalışma uzunluğu kodlamasından daha geneldir. Sadece bir uzunluk yerine, bir uzunluk / mesafe çifti kullanılır. Bu, bir dizginin belirli bir mesafeden kopyalanmasına veya bir uzunluğun bir mesafe boyunca çalışma uzunluğunda olduğu gibi bir baytın kopyalanmasına veya üçlü, vs.
Herhangi bir sıkıştırma algoritmasının sıkıştırma oranı, sıkıştırılmakta olan verilerin bir fonksiyonu olacaktır (bu verilerin uzunluğu dışında).
İşte bir analizidir MaximumCompression ,
gibi örneklerin birinde Look,
Çoklu dosya sıkıştırma testi testlerinin özeti
Dosya tipi: Birden fazla dosya tipi (toplamda 46) Bu testte sıkıştırılacak dosya sayısı: 510 Toplam Dosya Boyutu (bayt): 316.355.757 Ortalama Dosya Boyutu (bayt): 620.305 En Büyük Dosya (bayt): 18.403.071 En Küçük Dosya (bayt): 3,554
Sorunuzun cevabı, girdilere bağlıdır. Sıkıştırmanın nasıl yapıldığına dair bir fikir vermek için bu altı dakikalık videoları izleyin.
https://www.youtube.com/watch?v=ZdooBTdW5bM
Bundan almanız gereken şey, sıkıştırma oranının her karakterin sıklığına bağlı olmasıdır, bu nedenle genel maksimum oran yoktur, girişe bağlıdır, ingilizce metin için yaklaşık yüzde 65'tir.