ZIPX 是一種檔案格式,建立在廣泛使用的 ZIP 格式之上並加以延伸。它是由 PKWARE 開發的,也就是原始 ZIP 格式背後的公司,作為一種在維持與現有 ZIP 工具相容性的同時,加入進階壓縮和加 密功能的方法。與傳統的 ZIP 檔案相比,ZIPX 旨在提供更好的壓縮比、更強大的安全性,並支援更大的檔案大小。
ZIPX 的主要功能之一是支援多種壓縮方法。除了 ZIP 檔案中使用的標準 DEFLATE 壓縮外,ZIPX 還引入了幾種新的壓縮演算法。這些演算法包括 BZIP2,一種以其出色的壓縮比而聞名的效能壓縮方法,以及 PPMd,一種基於內容的統計壓縮演算法,可以達到更好的壓縮結果。ZIPX 也支援 LZMA 壓縮方法,它基於 Lempel-Ziv-Markov 鏈演算法,在壓縮比和速度之間取得良好的平衡。
ZIPX 的另一項重大進展是引入了進階加密功能。雖然 ZIP 檔案長期以來一直支援使用相對較弱的 ZipCrypto 演算法進行基本密碼保護,但 ZIPX 透過整合強大的加密方法來提升安全性。它支援使用 AES(進階加密標準),金鑰長度為 128、192 或 256 位元。AES 是一種廣泛接受且安全的加密演算法,可針對未經授權存取檔案內容提供強大的保護。
ZIPX 也解決了原始 ZIP 格式在檔案大小方面的限制。傳統的 ZIP 檔案使用 32 位元欄位來儲存檔案大小和偏移量,這將個別檔案和整體檔案的最大大小限制在 4 GB。當處理超過此限制的大型檔案或檔案集合時,這就會成為一個問題。ZIPX 透過引入 64 位元延伸來克服此限制,允許檔案大小和檔案大小達到 18 艾位元組(約 1800 萬兆位元組)。這使得 ZIPX 適合處理極大的資料集,並容納數位檔案不斷增長的大小。
在檔案格式結構方面,ZIPX 在引入新功能和延伸的同時,維持與基本 ZIP 格式的相容性。ZIPX 檔案包含一系列檔案記錄,每個記錄代表一個壓縮檔案或目錄。檔案記錄後面接著一個中央目錄,其中包含已封存檔案的元資料,例如其名稱、大小和壓縮方法。ZIPX 引入了新的記錄類型和額外欄位,以容納其進階功能。
ZIPX 中的新記錄類型之一是「額外欄位」記錄。此記錄允許包含特定於 ZIPX 的額外元資料,例如所選的壓縮方法、加密演算法和任何其他相關資訊。額外欄位由唯一的標頭 ID 識別,並且可以由支援 ZIPX 的軟體輕鬆解析。
ZIPX 也引入了新的「分割檔案」功能,可以將大型檔案分割成較小、更易於管理的部分。當透過網路或儲存媒體傳輸具有大小限制的大型 ZIPX 檔案時,這特別有用。分割檔案功能允許建立多個 ZIPX 檔案,這些檔案可以串接回原先的檔案以重建原始檔案。每個分割檔案都包含一個特殊標頭,指出其在序列中的位置和總部分數。
相容性是檔案格式的重要考量因素。雖然 ZIPX 提供了進階功能,並改進了傳統的 ZIP 格式,但在某種程度上它維持了向後相容性。ZIPX 檔案仍然可以由許多現有的 ZIP 工具開啟和解壓縮,儘管它們可能不支援所有進階功能。然而,要充分利用 ZIPX 的功能,例如改進的壓縮和強大的加密,則需要專門支援 ZIPX 的軟體。
PKWARE 提供了一組工具和函式庫,稱為「PKZIP SDK」,以利於建立和處理 ZIPX 檔案。SDK 包含用於壓縮和解壓縮 ZIPX 檔案的命令列公用程式,以及用於將 ZIPX 支援整合到自訂應用程式的 API 和函式庫。這些工具支援各種程式語言和平台,讓開發人員更容易在他們的軟體專案中使用 ZIPX。
ZIPX 的推出為處理大量資料的使用者和組織帶來許多好處。ZIPX 中改良的壓縮方法可縮小檔案大小,減少儲存需求,並促進透過網路更快速的資料傳輸。強大的加密功能確保儲存在 ZIPX 檔案中的敏感資訊的機密性和完整性。此外,處理大型檔案大小的能力消除了繁瑣的解決方法,並允許有效率地封存和分發大量資料集。
儘管有這些優點,與無所不在的 ZIP 格式相比,ZIPX 的採用速度相對較慢 。這可以歸因於 ZIP 的廣泛支援和熟悉度,以及許多使用者可能不需要 ZIPX 提供的進階功能。然而,隨著資料量持續增加,安全性變得越來越重要,對像 ZIPX 這樣功能更強大的檔案格式的需求可能會增加。
總之,ZIPX 是一種功能強大的檔案格式,建立在 ZIP 格式的基礎之上。透過支援進階壓縮方法、強大的加密和大型檔案大小,ZIPX 提供了比傳統 ZIP 檔案顯著的改進。雖然在某種程度上維持了與現有 ZIP 工具的相容性,但 ZIPX 的全部潛力是透過使用專門的軟體和函式庫來解鎖的。隨著資料儲存和傳輸需求持續演進,ZIPX 成為在各種領域(從個人運算到企業資料管理)中進行有效率且安全的封存的寶貴工具。
檔案壓縮透過減少冗餘,讓相同的資訊佔用更少的位元。可壓縮的上限受資訊理論約束:對於無失真壓縮,上界是信源熵(參見香農的信源編碼定理以及他於 1948 年發表的《通信的數學理論》)。對於有失真壓縮,碼率與感知品質之間的權衡由率失真理論描述。
多數壓縮器分兩個階段。首先,模型會預測或揭露資料中的結構。接著,編碼器把這些預測轉成近乎最優的位元型態。經典的建模家族是 Lempel–Ziv:LZ77 (1977)及 LZ78 (1978) 會偵測重複子字串並輸出參照而非原 始位元組。編碼面則由霍夫曼編碼(見原始論文1952)為較常出現的符號分配更短的碼字。算術編碼與範圍編碼再進一步逼近熵極限,而現代的非對稱數值系統(ANS)則用查表方式取得相似壓縮率。
DEFLATE(被 gzip、zlib 與 ZIP 採用)把 LZ77 和霍夫曼編碼結合。其規格完全公開:DEFLATERFC 1951、zlib 封裝RFC 1950以及 gzip 檔案格式RFC 1952。Gzip 針對串流設計並明確不提供隨機存取。PNG 影像則把 DEFLATE 規範為唯一的壓縮方式(視窗最多 32 KiB),詳見 PNG 規格「Compression method 0… deflate/inflate… at most 32768 bytes」與W3C/ISO PNG 第二版。
Zstandard (zstd): 針對高壓縮率與 極快解壓而設計的通用壓縮器。格式記載於RFC 8878(以及HTML 鏡像)和 GitHub 上的參考規格文件。與 gzip 類似,基本框架並不追求隨機存取。zstd 的絕招是字典:從語料擷取的小樣本能大幅改善許多小型或相似檔案的壓縮(參閱python-zstandard 字典文件與Nigel Tao 的示例)。各實作同時支援「非結構化」與「結構化」字典(討論)。
Brotli: 為網頁內容(如 WOFF2 字體、HTTP)優化,結合靜態字典與類 DEFLATE 的 LZ+熵編碼核心。規格載於RFC 7932,文件同時指出滑動視窗為 2WBITS-16,WBITS 介於 [10, 24](1 KiB-16 B 至 16 MiB-16 B),並且不嘗試隨機存取。Brotli 常在網頁文字上優於 gzip,解碼也相當快速。
ZIP 容器: ZIP 是一種檔案封存格式,可存放使用多種壓縮法(deflate、store、zstd 等)的項目。權威規格是 PKWARE 的 APPNOTE(參見APPNOTE 入口、托管副本以及美國國會圖書館的概覽ZIP File Format (PKWARE)/ZIP 6.3.3)。
檔案壓縮是一個減少檔案或檔案群大小的過程,通常用於節省儲存空間或加速網路傳輸。
檔案壓縮運作原理,透過識別並移除數據中的冗餘資訊。它使用演算法將原始數據編碼在較小的空間裡。
兩種主要的檔案壓縮類型是無失真及有失真壓縮。無失真壓縮可以完美地恢復原始檔案,然而有失真壓縮在一些資料品質的損失下能得到更大的壓縮程度。
一個常見的檔案壓縮工具範例是WinZip,它支援多種壓縮格式包括ZIP與RAR。
在無失真壓縮中,質量保持不變。然而,在有失真壓縮中,可能會有顯著的質量下降,因為它刪除了一些較不重要的數據以便更大程度地減少檔案大小。
是的,相對於資料的完整性來說,檔案壓縮是安全的,尤其是無失真壓縮。然而,如同所有檔案,被壓縮的檔案也可能受到惡意軟體或病毒的攻擊,所以總是需要有專業的安全軟體以保護。
幾乎所有種類的檔案都可以被壓縮,包括文字檔案、圖像、音訊、視頻和軟體檔案。然而,壓縮程度可以因檔案類型而有顯著的不同。
ZIP檔是一種使用無失真壓縮以減少一個或多個檔案大小的檔案格式。在ZIP檔中的多個檔案被有效地打包為單一的檔案,這也讓分享變得更加容易。
技術上可行,儘管額外的大小減少可能非常小或甚至適得其反。壓縮一個已經壓縮過的檔案有時可能會增加其大小,原因在於壓縮演算法所增加的metadata。
解壓壓縮的檔案,通常需要一個解壓縮或解zip的工具,像是WinZip或7-Zip。這些工具可以从壓縮格式中提取原始檔案。