我编写了一个用于压缩的java程序。我压缩了一些文本文件。压缩后的文件大小减少了。但是当我试图压缩PDF文件时。我压缩后看到文件大小的任何变化。
所以我想知道压缩后其他文件不会减小其大小。
由于 Sunil Kumar Sahoo
答案 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文件已经过压缩。他们使用以下压缩算法:
根据创建PDF和版本的工具,使用不同类型的加密。您可以使用更高效的算法进一步压缩它,通过将图像转换为低质量的jpeg来降低质量。
这里有一个很棒的链接
答案 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)
真正随机
通过加密强哈希函数或密码进行的近似,例如:
AES-CBC(任何输入)
“”。join(map(b2a_hex,[md5(str(i))for i in range(...)]))
答案 15 :(得分:0)
任何无损压缩算法,只要它使一些输入更小(如压缩建议的名称),也会使一些其他输入更大。
否则,直到给定长度L的所有输入序列的集合可以映射到长度小于L的所有序列的(更多)较小集合,并且没有冲突(因为压缩必须是无损且可逆的) ),pigeonhole principle排除的可能性。
因此,有无限文件在压缩后不会减小其大小,而且,文件不需要高熵文件:)