哪些文件在压缩后不会减小文件大小

8

我编写了一个用Java语言的压缩程序。我已经压缩了一些文本文件,这些文件在压缩后的大小得到了缩减。但是当我尝试压缩PDF文件时,我没有看到任何压缩后文件大小的变化。

因此,我想知道还有哪些类型的文件在压缩后不会减小其大小。

谢谢, Sunil Kumar Sahoo

16个回答

12

文件压缩是通过移除冗余来实现的。因此,包含很少冗余的文件难以压缩或根本无法压缩。

你最有可能遇到的没有冗余的文件类型是已经被压缩过的文件。在PDF的情况下,这将特别是由主要由图像组成的PDF文件,其中这些图像本身就是使用一种像JPEG这样的压缩图像格式进行压缩的。


6

对于jpeg/gif/avi/mpeg/mp3等已经压缩过的文件进行再次压缩后,它们的大小不会有太大变化,可能只会略微减小。


5

压缩文件在压缩后不会减小其大小。


5
根据所使用的算法,这可能并不成立。 - Michael Foukarakis

4
五年后,我至少有一些真实的统计数据可以展示。 我用PrinceXML生成了17439个多页pdf文件,总共4858 Mb。使用“zip -r archive pdf_folder”命令将它们打包成一个大小为4542 Mb的archive.zip文件。这只有原始大小的93.5%,所以不值得节省空间。

3

唯一无法压缩的文件是随机文件 - 真正的随机位或由压缩器输出近似的随机位。

然而,对于任何算法来说,有许多文件不能被它压缩,但可以被另一个算法很好地压缩。


2

PDF文件已经被压缩过。它们使用以下压缩算法:

  • LZW (Lempel-Ziv-Welch)
  • FLATE (ZIP,在PDF 1.2中)
  • JPEG和JPEG2000 (PDF 1.5版) CCITT(传真标准,Group 3或4)
  • JBIG2压缩(PDF 1.4版)RLE(行程长度编码)

根据创建PDF的工具和版本,使用不同类型的加密。您可以使用更高效的算法进一步压缩它,或者通过将图像转换为低质量的jpeg来降低质量。

这里有一个很好的链接:

http://www.verypdf.com/pdfinfoeditor/compression.htm


不完全是。并非所有的PDF文件都会自动以压缩格式存储其内容。但你说得对,PDF支持压缩。除非你的PDF只包含图像,否则很有可能你可以使用ZIP或RAR来挤出一些额外的空间。 - Salamander2007
正如我在帖子中提到的那样,这完全取决于创建PDF的应用程序。 - badbod99

2

使用像IDEA或DES这样的好算法在CBC模式下加密的文件,无论原始内容如何,都不再能够被压缩。这就是为什么加密程序首先进行压缩,然后才运行加密的原因。


1
通常情况下,你无法压缩已经被压缩过的数据。甚至可能会得到一个比输入还要大的压缩大小。

1
你很可能也会在压缩加密文件时遇到困难,因为它们本质上是随机的,一般来说会有很少的重复块。

0

媒体文件往往无法压缩。JPEG和MPEG不可压缩,但您可能能够压缩.png文件。


实际上,通过一种好的压缩算法,JPEG和MPEG文件通常可以压缩几个百分点。 - Michael Borgwardt
你确定吗?请记住,特定用途的压缩算法通常会丢失一些不重要的数据(例如声音文件中的噪音或图像上的类似区域)。这意味着它们总是具有比任何通用压缩算法(主要是无损压缩)更好的压缩比。 - twk
但BMP文件非常容易被压缩。这不取决于媒体类型,而是取决于压缩类型。而且,文件格式是信息的某种压缩形式。 - smok1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接