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

时间:2009-07-16 08:51:42

标签: compression

我编写了一个用于压缩的java程序。我压缩了一些文本文件。压缩后的文件大小减少了。但是当我试图压缩PDF文件时。我压缩后看到文件大小的任何变化。

所以我想知道压缩后其他文件不会减小其大小。

由于 Sunil Kumar Sahoo

16 个答案:

答案 0 :(得分:12)

文件压缩通过删除冗余来工作。因此,包含很少冗余的文件会严重压缩或根本不压缩。

您最有可能遇到的没有冗余的文件类型是已经压缩的文件。在PDF的情况下,特别是主要由图像组成的PDF,这些图像本身就是JPEG等压缩图像格式。

答案 1 :(得分:6)

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

答案 2 :(得分:6)

jpeg / gif / avi / mpeg / mp3和已压缩的文件在压缩后不会有太大变化。您可能会看到文件大小略有减少。

答案 3 :(得分:3)

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

但是,对于任何算法,一般来说,有许多文件无法通过它进行压缩,但可以通过其他算法很好地压缩。

答案 4 :(得分:2)

五年后,我至少有一些真实的统计数据可以证明这一点。

我使用PrinceXML生成 17439 多页pdf文件,总计 4858 Mb。 zip -r archive pdf_folder给了我一个 4542 Mb的archive.zip。那个原始尺寸 93.5%,所以不值得节省空间。

答案 5 :(得分:1)

通常,您无法压缩已经压缩的数据。您甚至可能最终得到的压缩大小大于输入。

答案 6 :(得分:1)

您可能也难以压缩加密文件,因为它们基本上是随机的,并且(通常)只有很少的重复块。

答案 7 :(得分:1)

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

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

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

这里有一个很棒的链接

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

答案 8 :(得分:1)

在CBC模式下使用IDEA或DES等良好算法加密的文件不再压缩,无论其原始内容如何。这就是加密程序首先压缩然后再运行加密的原因。

答案 9 :(得分:0)

媒体文件不易压缩。当您可以压缩.png文件时,JPEG和MPEG不会压缩

答案 10 :(得分:0)

已压缩的文件通常无法进一步压缩。例如mp3,jpg,flac等。 由于重新压缩的文件头,您甚至可以获得更大的文件。

答案 11 :(得分:0)

实际上,这完全取决于所使用的算法。当输入文件与该假设不匹配时,专门为使用普通英语单词中的字母频率而定制的算法将会相当差。

通常,PDF包含已经压缩的图像等,因此不会进一步压缩。如果根据PDF中包含的文本字符串进行任何节省,您的算法可能只能微不足道?

答案 12 :(得分:0)

简单回答:压缩文件(或者我们可以通过多次压缩将文件大小减小到0)。许多文件格式已经应用压缩,您可能会发现压缩电影,mp3,jpeg等时文件大小缩小了不到1%。

答案 13 :(得分:0)

您可以将所有Office 2007文件格式添加到(@waqasahmed)列表中:

由于Office 2007 .docx和.xlsx(等)实际上是压缩的.xml文件,因此您也可能看不到它们的大小减少。

答案 14 :(得分:0)

  1. 真正随机

  2. 通过加密强哈希函数或密码进行的近似,例如:

    AES-CBC(任何输入)

    “”。join(map(b2a_hex,[md5(str(i))for i in range(...)]))

答案 15 :(得分:0)

任何无损压缩算法,只要它使一些输入更小(如压缩建议的名称),也会使一些其他输入更大。

否则,直到给定长度L的所有输入序列的集合可以映射到长度小于L的所有序列的(更多)较小集合,并且没有冲突(因为压缩必须是无损且可逆的) ),pigeonhole principle排除的可能性。

因此,有无限文件在压缩后不会减小其大小,而且,文件不需要高熵文件:)