ZIPX, yaygın olarak kullanılan ZIP formatı üzerine inşa edilen ve onu genişleten bir arşiv dosya biçimidir. Orijinal ZIP formatının arkasındaki şirket olan PKWARE tarafından, mevcut ZIP araçlarıyla uyumluluğu korurken gelişmiş sıkıştırma ve şifreleme özellikleri eklemenin bir yolu olarak geliştirilmiştir. ZIPX, geleneksel ZIP arşivlerine kıyasla daha iyi sıkıştırma oranları, daha güçlü güvenlik ve daha büyük dosya boyutları için destek sağlamayı amaçlamaktadır.
ZIPX'in temel özelliklerinden biri, birden fazla sıkıştırma yöntemini desteklemesidir. ZIP dosyalarında kullanılan standart DEFLATE sıkıştırmasına ek olarak, ZIPX birkaç yeni sıkıştırma algoritması sunar. Bunlar arasında mükemmel sıkıştırma oranlarıyla tanınan yüksek performanslı bir sıkıştırma yöntemi olan BZIP2 ve daha da iyi sıkıştırma sonuçları elde edebilen bağlamsal tabanlı bir istatistiksel sıkıştırma algoritması olan PPMd bulunur. ZIPX ayrıca Lempel-Ziv-Markov zincir algoritmasına dayanan ve sıkıştırma oranı ile hız arasında iyi bir denge sunan LZMA sıkıştırma yöntemini de destekler.
ZIPX'teki bir diğer önemli geliştirme, gelişmiş şifreleme yeteneklerinin getirilmesidir. ZIP dosyaları uzun süredir nispeten zayıf ZipCrypto algoritmasını kullanarak temel parola korumasını desteklerken, ZIPX güçlü şifreleme yöntemlerini dahil ederek güvenlik oyununu bir adım öteye taşıyor. 128, 192 veya 256 bit anahtar uzunluklarına sahip AES'in (Gelişmiş Şifreleme Standardı) kullanımını destekler. AES, arşivin içeriğine yetkisiz erişime karşı sağlam koruma sağlayan, yaygın olarak kabul görmüş ve güvenli bir şifreleme algoritmasıdır.
ZIPX ayrıca dosya boyutu açısından orijinal ZIP formatının sınırlamalarını da giderir. Geleneksel ZIP dosyaları, dosya boyutlarını ve ofsetlerini depolamak için 32 bitlik alanlar kullanır ve bu da tek tek dosyaların ve genel arşivin maksimum boyutunu 4 GB ile sınırlar. Bu, bu sınırı aşan büyük dosyalarla veya dosya koleksiyonlarıyla uğraşırken bir sorun haline gelir. ZIPX, 64 bitlik uzantılar getirerek bu sınırlamanın üstesinden gelir ve 18 ekabayta (yaklaşık 18 milyon terabayt) kadar dosya boyutlarına ve arşiv boyutlarına izin verir. Bu, ZIPX'i son derece büyük veri kümelerini işlemek ve dijital dosyaların sürekli artan boyutuna uyum sağlamak için uygun hale getirir.
Dosya formatı yapısı açısından ZIPX, yeni özellikler ve uzantılar getirirken temel ZIP formatıyla uyumluluğunu korur. Bir ZIPX dosyası, her biri sıkıştırılmış bir dosyayı veya dizini temsil eden bir dizi dosya kaydından oluşur. Dosya kayıtlarının ardından, arşivlenmiş dosyalar hakkında adları, boyutları ve sıkıştırma yöntemleri gibi meta veriler içeren merkezi bir dizin gelir. ZIPX, gelişmiş özelliklerini barındırmak için yeni kayıt türleri ve ek alanlar getirir.
ZIPX'teki yeni kayıt türlerinden biri 'Ek Alan' kaydıdır. Bu kayıt, seçilen sıkıştırma yöntemi, şifreleme algoritması ve diğer ilgili bilgiler gibi ZIPX'e özgü ek meta verilerin eklenmesine olanak tanır. Ek alanlar, benzersiz başlık kimlikleriyle tanımlanır ve ZIPX uyumlu yazılımlar tarafından kolayca ayrıştırılabilir.
ZIPX ayrıca, büyük arşivleri daha küçük, daha yönetilebilir parçalara bölmeyi sağlayan yeni bir 'Bölünmüş Arşiv' özelliği getirir. Bu, özellikle boyut sınırlamaları olan ağlar veya depolama ortamları üzerinden büyük ZIPX dosyalarını aktarırken faydalıdır. Bölünmüş arşiv özelliği, orijinal arşivi yeniden oluşturmak için bir araya getirilebilen birden fazla ZIPX dosyasının oluşturulmasına olanak tanır. Her bölünmüş dosya, dizideki konumunu ve toplam parça sayısını gösteren özel bir başlık içerir.
Arşiv formatları söz konusu olduğunda uyumluluk önemli bir husustur. ZIPX, geleneksel ZIP formatına göre gelişmiş özellikler ve iyileştirmeler sunarken, bir dereceye kadar geriye dönük uyumluluğu korur. ZIPX dosyaları, tüm gelişmiş özellikleri desteklemeseler de birçok mevcut ZIP aracı tarafından açılıp çıkarılabilir. Ancak, ZIPX'in gelişmiş sıkıştırma ve güçlü şifreleme gibi yeteneklerinden tam olarak yararlanmak için özel ZIPX uyumlu yazılım gerekir.
PKWARE, ZIPX dosyalarının oluşturulmasını ve işlenmesini kolaylaştırmak için 'PKZIP SDK' olarak bilinen bir dizi araç ve kitaplık sağlar. SDK, ZIPX arşivlerini sıkıştırmak ve çıkarmak için komut satırı yardımcı programlarının yanı sıra ZIPX desteğini özel uygulamalara entegre etmek için API'ler ve kitaplıklar içerir. Bu araçlar, çeşitli programlama dillerini ve platformlarını destekleyerek geliştiricilerin yazılım projelerinde ZIPX ile çalışmasını kolaylaştırır.
ZIPX'in getirilmesi, büyük miktarlarda veriyle uğraşan kullanıcılar ve kuruluşlar için çeşitli avantajlar sunar. ZIPX'teki gelişmiş sıkıştırma yöntemleri daha küçük dosya boyutlarıyla sonuçlanır, depolama gereksinimlerini azaltır ve ağlar üzerinden daha hızlı veri aktarımı sağlar. Güçlü şifreleme yetenekleri, ZIPX arşivlerinde saklanan hassas bilgilerin gizliliğini ve bütünlüğünü sağlar. Ek olarak, büyük dosya boyutlarını işleme yeteneği, zahmetli geçici çözümlere olan ihtiyacı ortadan kaldırır ve büyük veri kümelerinin verimli bir şekilde arşivlenmesine ve dağıtılmasına olanak tanır.
Avantajlarına rağmen, ZIPX'in benimsenmesi, her yerde bulunan ZIP formatına kıyasla nispeten yavaş olmuştur. Bu, ZIP'e yönelik yaygın desteğe ve aşinalığa ve birçok kullanıcının ZIPX tarafından sunulan gelişmiş özelliklere ihtiyaç duymayabileceği gerçeğine bağlanabilir. Ancak, veri hacimleri büyümeye ve güvenlik giderek daha kritik hale geldikçe, ZIPX gibi daha yetenekli arşiv formatlarına olan talep muhtemelen artacaktır.
Sonuç olarak ZIPX, ZIP formatının mirasına dayanan güçlü ve özellik bakımından zengin bir arşiv dosya biçimidir. Gelişmiş sıkıştırma yöntemleri, güçlü şifreleme ve büyük dosya boyutları desteğiyle ZIPX, geleneksel ZIP arşivlerine göre önemli iyileştirmeler sunar. Mevcut ZIP araçlarıyla uyumluluk bir dereceye kadar korunurken, ZIPX'in tam potansiyeli özel yazılım ve kitaplıkların kullanımıyla ortaya çıkar. Veri depolama ve aktarım gereksinimleri gelişmeye devam ettikçe, ZIPX kişisel bilgisayardan kurumsal veri yönetimine kadar çeşitli alanlarda verimli ve güvenli arşivleme için değerli bir araçtır.
Dosya sıkıştırma, aynı bilgiyi daha az bit ile temsil etmek için fazlalıkları azaltır. Ne kadar küçülebileceğinizi belirleyen üst sınır bilgi teorisidir: kayıpsız sıkıştırmada limit kaynağın entropisidir (bkz. Shannon'ın kaynak kodlama teoremi source coding theorem ve 1948 tarihli “A Mathematical Theory of Communication”). Kayıplı sıkıştırmada bit hızı ile kalite arasındaki dengeyi rate–distortion teorisiaçıklar.
Çoğu sıkıştırıcı iki aşamalıdır. Önce bir model verideki yapıyı tahmin eder veya ortaya çıkarır. Ardından bir coder bu tahminleri neredeyse optimal bit kalıplarına çevirir. Klasik aile Lempel–Ziv'dir LZ77 (1977) ve LZ78 (1978) tekrarlanan alt dizileri bulup ham bayt yerine referans yazar. Kodlama tarafında Huffman kodlama (bkz.1952 makalesi) olasılığı yüksek sembollere daha kısa kodlar verir. Aritmetik kodlama ve range coding entropi sınırına daha da yaklaşır; modern Asymmetric Numeral Systems (ANS) ise tablo tabanlı uygulamalarla benzer oranlar elde eder.
DEFLATE (gzip, zlib, ZIP) LZ77 ile Huffman'ı birleştirir. Spesifikasyonlar açık: DEFLATE RFC 1951, zlib sarmalayıcısı RFC 1950ve gzip formatı RFC 1952. Gzip akış için tasarlandı ve rastgele erişim vaat etmez. PNG, tek sıkıştırma yöntemi olarak DEFLATE'i (32 KiB pencere) standartlaştırır; bkz.“Compression method 0…” ve W3C/ISO PNG 2nd Edition.
Zstandard (zstd): yüksek oranlar ve çok hızlı açma için tasarlanan yeni nesil genel kompresör. Format RFC 8878 (ayrıca HTML yansısı) ve referans dokümanı GitHub'daaçıklanmıştır. Gzip gibi temel çerçeve rastgele erişim hedeflemez. Zstd'nin süper gücü sözlüklerdir: korpusunuzdan küçük örnekler birçok küçük/benzer dosyayı ciddi biçimde küçültür (bkz.python-zstandard sözlük dokümanları ve Nigel Tao örneği). Uygulamalar “unstructured” ve “structured” sözlükleri destekler (tartışma).
Brotli: web içeriği (örn. WOFF2 fontlar, HTTP) için optimize edildi. Statik sözlük ile DEFLATE benzeri LZ+entropi çekirdeğini birleştirir. Spesifikasyon RFC 7932, ayrıca WBITS [10, 24] (1 KiB−16 B ile 16 MiB−16 B) aralığında 2WBITS−16 kayar pencere ve rastgele erişim sağlamadığınıbelirtir. Brotli çoğu web metninde gzip'i geçer ve hızlı çözülür.
ZIP konteyneri: ZIP, farklı sıkıştırma yöntemleri (deflate, store, zstd vb.) taşıyabilen bir arşivdir. De facto standart PKWARE APPNOTE'tur (bkz.APPNOTE portalı, barındırılan kopyave LC özetleri ZIP File Format (PKWARE) / ZIP 6.3.3).
LZ4 mütevazı oranlarla ham hız hedefler. Proje sayfasına (“extremely fast compression”) ve frame formatınabakın. RAM hızına yakın dekompresyon gerektiren bellek içi cache'ler, telemetri veya sıcak yollar için ideal.
XZ / LZMA yüksek yoğunluk (yüksek oran) için daha yavaş sıkıştırmayı göze alır. XZ bir konteynerdir; asıl işi genelde LZMA/LZMA2 (LZ77 benzeri modelleme + range coding) yapar. .xz formatı, LZMA spesifikasyonu (Pavlov)ve Linux kernel notları XZ Embeddedile XZ genelde gzip'ten daha iyi sıkıştırır ve modern yüksek oranlı codec'lerle rekabet eder, fakat kodlama süresi uzundur.
bzip2, Burrows–Wheeler dönüşümünü (BWT), move-to-front'u, RLE'yi ve Huffman'ı kullanır. Genellikle gzip'ten küçük ama daha yavaştır; resmi kılavuza ve man sayfasınabakın.
“Pencere boyutu” önemlidir. DEFLATE referansları yalnızca 32 KiB geriye bakabilir (RFC 1951) ve PNG'nin 32 KiB sınırı burada belirtilir. Brotli yaklaşık 1 KiB ile 16 MiB arası pencereleri destekler (RFC 7932). Zstd pencereyi ve arama derinliğini seviyeler ile ayarlar (RFC 8878). gzip/zstd/brotli'nin temel akışları ardışık çözümeye göre tasarlanır; formatların kendileri rastgele erişim garantilemez, ancak konteynerler (tar indeksleri, parça bazlı çerçeveler, format spesifik indeksler) ekleyebilir.
Yukarıdaki formatlar kayıpsızdır: aynı baytları geri alırsınız. Medya codec'leri genellikle kayıplıdır: daha düşük bit hızları için algılanmayan detayları atarlar. Görsellerde klasik JPEG (DCT, kantizasyon, entropi kodlama) ITU-T T.81 / ISO/IEC 10918-1içinde standarttır. Seste MP3 (MPEG-1 Layer III) ve AAC (MPEG-2/4) algısal modeller ve MDCT dönüşümleri kullanır (bkz.ISO/IEC 11172-3, ISO/IEC 13818-7ve MDCT özeti burada). Kayıplı ve kayıpsız yöntemler birlikte kullanılabilir (ör. UI için PNG; web codec'leri görsel/video/ses için).
Teori Shannon 1948 · Rate–distortion · Kodlama Huffman 1952 · Aritmetik kodlama · Range coding · ANS. Formatlar DEFLATE · zlib · gzip · Zstandard · Brotli · LZ4 frame · XZ format. BWT zinciri Burrows–Wheeler (1994) · bzip2 kılavuzu. Medya JPEG T.81 · MP3 ISO/IEC 11172-3 · AAC ISO/IEC 13818-7 · MDCT.
Özetle: verilerinize ve kısıtlarınıza uyan bir sıkıştırıcı seçin, gerçek girdiler üzerinde ölçün ve sözlükler ile akıllı çerçevelemenin kazançlarını unutmayın. Doğru eşleşme ile daha küçük dosyalar, daha hızlı transferler ve daha çevik uygulamalar elde eder, doğruluk veya taşınabilirlikten ödün vermezsiniz.
Dosya sıkıştırması, dosyanın boyutunu azaltma işlemidir, genellikle depolama alanını tasarruf etmek veya bir ağ üzerindeki iletimi hızlandırmak için kullanılır.
Dosya sıkıştırması, verilerdeki gereksiz bilgileri belirleyip çıkararak çalışır. İlk verileri daha küçük bir alanda kodlamak için algoritmalar kullanır.
Dosya sıkıştırmanın iki ana türü lossless (kayıpsız) ve lossy (kayıplı) sıkıştırmadır. Kayıpsız sıkıştırma, orijinal dosyanın mükemmel bir şekilde geri yüklenmesini sağlarken, kayıplı sıkıştırma, veri kalitesindeki bazı kayıpların maliyetine daha büyük ölçüde boyut küçültmeyi sağlar.
Popüler bir dosya sıkıştırma aracı örneği, ZIP ve RAR dahil olmak üzere birden fazla sıkıştırma formatını destekleyen WinZip'tir.
Kayıpsız sıkıştırma ile kalite değişmez. Ancak, kayıplı sıkıştırmada, dosya boyutunu daha da küçültmek için az önemli veriler çıkarıldığından kalitede belirgin bir azalma olabilir.
Evet, veri bütünlüğü açısından dosya sıkıştırması güvenlidir, özellikle kayıpsız sıkıştırmayla. Ancak, başka herhangi bir dosyada olduğu gibi, sıkıştırılmış dosyalar da zararlı yazılım veya virüsler tarafından hedef alınabilir, bu yüzden her zaman güvenilir bir güvenlik yazılımı bulundurmak önemlidir.
Neredeyse tüm dosya türleri sıkıştırılabilir, bu türler arasında metin dosyaları, resimler, ses, video ve yazılım dosyaları bulunur. Ancak, elde edilebilecek sıkıştırma seviyesi, dosya türlerine göre önemli ölçüde değişebilir.
ZIP dosyası, bir veya daha fazla dosyanın boyutunu azaltmak için kayıpsız sıkıştırmayı kullanan bir dosya formatı türüdür. ZIP dosyasındaki birden fazla dosya, tek bir dosyada etkili bir şekilde bir araya getirilir, bu da paylaşmayı kolaylaştırır.
Teknik olarak, evet, ancak ek boyut azaltma minimum veya hatta zararlı olabilir. Zaten sıkıştırılmış bir dosyayı sıkıştırmak, bazen sıkıştırma algoritması tarafından eklenen metadatanın neden olduğu boyut artışına neden olabilir.
Bir dosyayı açmak için genellikle bir açma veya açma aracına ihtiyacınız vardır, örneğin WinZip veya 7-Zip. Bu araçlar, sıkıştırılmış formatından orijinal dosyaları çıkarabilir.