Nasıl oluyor, diffrent metin dosyaları sıkıştırma sonra diffrent boyutları olmak?

5 Cevap php

I = 27 gb bazı rasgele metin boyutu dosyası vardır ve sıkıştırma sonra 40 mb ya da öylesine olur.

Ve 3.5 GB sql dosya sıkıştırma sonra 45 Mb olur.

Ama 109 mb metin dosyası ne yani yanlış olabilir sıkıştırmadan sonra 72 mb olur.

Böylece daha az sıkıştırılmış Neden, 10 mb ya da öylesine, ya da ben bir şey eksik olmalı.

(. - = + Etc /) i görebileceğiniz gibi tüm dosyalar sadece İngilizce metin ve bazı dilbilgisi semboller

Nedenini söyleyebilir misin?

Eğer değilse nasıl ben süper bir metin dosyasını sıkıştırabilir söyleyebilir?

Ben PHP, np kodu olabilir.

5 Cevap

Bir dosyanın sıkıştırma oranı içeriğine bağlıdır.

Çoğu sıkıştırma algoritmaları tekrarlanan kaç kez belirterek, tek bir tekrarı halinde tekrarlanan verileri dönüştürerek çalışır.

Örneğin, harfi içeren bir dosya a 1.000.000 kez tamamen rasgele bir içeriğe sahip bir dosyada çok daha fazla sıkıştırılmış olabilir.

Daha fazla bilgi için, daha fazla bilgi veriniz.

Sıkıştırma veri girişi çiftleri kaldırarak çalışır. Sizin 3.5GB dosya o kadar yinelenen veri içermiyor, çünkü daha küçük dosya kadar sıkıştırılmış değil iken, veri yinelenen bir yeri vardır, çünkü sıkıştırma sonra çok daha az olur.

Eğer sıkıştırma en vızıltının yarar olduğunu nasıl çalıştığını anlamak istiyorsanız, o zaman bu algoritmaların çoğu inşa edildiği algoritma Wikipedia'nın Lempel-Ziv-Welch makalesinde, bakmak.

Zaten PHP kendisinin bir parçası olan C gayet iyi mevcut kütüphaneleri ile karşılaştırıldığında o dilde son derece yavaş olacak çünkü PHP muhtemelen böyle bir proje için yanlış bir seçimdir.

Eğer içeren bir dosya varsa ... Şöyle düşünün:

abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc

Dosyası aslında sadece depolar abc times 18

Öte yandan, bu dosya:

abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

Sadece mağaza olabilir:

abcdefghijklmnopqrstuvwxyz times 2

Böylece, ikinci dosyası ile başlamak kısa olsa da, ilk olarak daha büyük bir dosyası olarak sıkıştırır.

Genellikle sıkıştırma seviyesi algoritması dosyasında bulabilirsiniz ne kadar benzerlik ve desenleri bağlıdır. Tüm dosyaları ingilizce metin içeriyorsa rakamlar garip. Ben kuvvetle aşırı bir sıkıştırma oranına sahip dosyaları metin segmentleri yinelenen büyük boyutta içerdiğini sanıyorum.

Sıkıştırma veri fazlalık kaldırarak çalışır. Başlamak için kesin bir yer Huffman Coding, hangi sorunun doğrudan ilk seminal eserlerinden biridir muhtemelen, ama geri Information Theory üzerine Shannon'un özgün eserler daha kazmak için bakım olabilir.

Bu yeni kavramlar değil - onlar ilk insanlar çok sınırlı kanal üzerinden etkin veri aktarımı ilgilenmişlerdir 1940 ve 50'li yaşlarda sırt önemli bir ilgi kazanmıştır. Konu sadece iki bilgisayar için ilgi değildir - entropi ve diğer temel fizik ile bazı çok derin bağlantıları var. Örneğin mükemmel sıkıştırılmış veri beyaz gürültü ayrılamayan çıkıyor.