NEWC 是一种文件存档格式,旨在高效存储和压缩文件和目录集合。它是由 Eugene Roshal 于 1993 年开发的,作为对 ZIP 和 ARJ 等现有存档格式的改进。该格式旨在提供更好的压缩率、更快的解压缩速度以及增强的功能,用于数据恢复和存档管理。
从本质上讲,NEWC 格式由一个主头后跟一系列文件头和压缩文件数据组成。主头包含有关存档的元数据,例如 NEWC 签名、版本号、总大小和文件数。每个文件头都包含文件名称、属性、时间戳、CRC32 校验和、压缩和未压缩大小等信息。
NEWC 采用固态存档结构,其中文件被连接在一起并作为单个连续数据流进行压缩。这种方法通过利用多个文件中的冗余来实现更好的压缩率。但是,这也意味着提取单个文件需要解压缩到该点的整个存档,这比从 ZIP 等非固态格式中提取要慢。
NEWC 中使用的压缩算法基于 Eugene Roshal 自己的实现,它将 Lempel-Ziv-Storer-Szymanski (LZSS) 压缩与使用部分匹配预测 (PPM) 的统计建模相结合。LZSS 是一种基于字典的算法,它用对早期出现的引用的方式替换重复序列。PPM 构建输入数据的模型,对即将出现的符号进行概率预测,从而实现更有效的熵编码。
NEWC 的一个关键特性是对恢复记录的支持。这些是与压缩数据交错的特殊条目,它们存储有关存档结构和内容的信息。在文件损坏的情况下,恢复记录可用于重建存档的损坏部分并抢救完好的文件。该格式还包括主头和文件头的冗余,以提高对数据丢失的恢复能力。
NEWC 提供了几种将存档拆分为多个卷的方法。这对于在多个磁盘上存储大型存档或在具有大小限制的网络上传输非常有用。该格式支持创建指定大小的卷,以及使用文件列表作为卷标记。它还包括用于完整性检查和恢复多卷存档的机制。
在存档管理方面,NEWC 提供了一系列功能。它支持在现有存档中添加、删除和更新文件。文件注释可以与各个条目关联以存储其他元数据。该格式还允许使用 CBC 模式中的 AES 算法对存档进行加密 和密码保护。
NEWC 因其高压缩率和快速的解压缩速度而广受欢迎。它被广泛用于分发软件、固件更新和数据备份。该格式已被各种应用程序和实用程序采用,包括 WinRAR、7-Zip 和 PowerArchiver。
虽然 NEWC 提供了许多好处,但它也有一些限制。与非固态格式相比,固态存档结构可能会使随机访问和部分提取变得更慢。依赖单一压缩算法可能无法始终为所有类型的数据提供最佳结果。此外,该格式的复杂性和专有性阻碍了它在某些情况下的采用。
尽管面临这些挑战,NEWC 仍然是一种重要且广泛使用的存档格式。它的效率、鲁棒性和功能集使其成为数据压缩和存档的宝贵工具。随着数据存储和传输需求的不断增长,NEWC 格式在管理和保存数字信息方面将发挥重要作用。
文件压缩通过减少冗余,让相同的信息占用更少的比特。可压缩的上限受信息论约束:对于无损压缩,上界是信源熵(参见香农的信源编码定理及其 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文件中的多个文件有效地被捆绑在一起成为一个单一的文件,这也使得分享变得更容易。
技术上,是的,尽管额外的减小大小可能是微不足道的甚至适得其反。压缩一个已经压缩的文件有时可能会增加它的大小,由于压缩算法添加的元数据。
要解压文件,你通常需要一个解压或解压缩工具,如WinZip或7-Zip。这些工具可以从压缩格式提取原始文件。