Compression 一个文件可以压缩多少次?
我在考虑压缩,它似乎必须要有某种程度的限制才能应用于它,否则它将是一个单字节 所以我的问题是,我可以压缩一个文件多少次:Compression 一个文件可以压缩多少次?,compression,limits,Compression,Limits,我在考虑压缩,它似乎必须要有某种程度的限制才能应用于它,否则它将是一个单字节 所以我的问题是,我可以压缩一个文件多少次: 它没有变小吗 文件是否已损坏 这两点是相同的还是不同的 收益递减点出现在哪里 如何找到这些要点 我不是说任何特定的算法或特定的文件,只是笼统地说。如果算法好,通常压缩一次就足够了。 事实上,多次压缩可能会导致大小增加 你的两点不同 重复压缩,并且在尺寸缩小方面没有改善 这是一个预期的理论条件 重复压缩导致损坏 可能是实现中的错误(或者可能是算法本身) 现在让我们看看一
- 它没有变小吗
- 文件是否已损坏
我不是说任何特定的算法或特定的文件,只是笼统地说。如果算法好,通常压缩一次就足够了。
事实上,多次压缩可能会导致大小增加 你的两点不同
- 重复压缩,并且在尺寸缩小方面没有改善 这是一个预期的理论条件
- 重复压缩导致损坏
可能是实现中的错误(或者可能是算法本身)
- 加密可以重复应用而不减少大小
(事实上,有时尺寸会增加)为了增加安全性 - 图像、视频或音频文件越来越压缩
将丢失数据(从某种意义上说实际上是“损坏的”)
RLE是一个起点。如果您想了解更多信息,请查看(查看文件以查找模式)和(创建字典)。像zip这样的压缩器经常尝试多种算法并使用最好的算法 这里有一些我能想到的多重压缩的例子
你可以压缩无限次。但是,第二次压缩和进一步压缩通常只会生成比前一次更大的文件。因此,压缩一次以上是没有意义的。您可以随心所欲地多次压缩文件。但对于大多数压缩算法,从第二次开始产生的压缩可以忽略不计。通常限制为一次压缩。有些算法会导致更高的压缩比,使用一个差的算法,然后再使用一个好的算法,通常会带来改进。但首先使用好的算法是正确的做法 一组给定数据的压缩量在理论上是有限的。要了解更多这方面的知识,你必须学习 在文件变小之前,我可以压缩多少次 一般来说,甚至没有一个。无论您使用什么压缩算法,都必须始终存在一个根本不被压缩的文件,否则您可以一直重复压缩,直到达到1
111111111111111
15 X '1'
15 X '1'
def compress(digitString):
if digitString=="":
raise "already as small as possible"
currentLen=len(digitString)
if digitString=="0"*currentLen:
return "9"*(currentLen-1)
n=str(long(digitString)-1); #convert to number and decrement
newLen=len(n);
return ("0"*(currentLen-newLen))+n; # add zeros to keep same length
#test it
x="12";
while not x=="":
print x;
x=compress(x)