“字典大小”如何影响压缩?

“字典大小”如何影响压缩?

我知道尺寸越大压缩率越高,反之亦然。但是有没有办法让我做出更好的决定?因为选择太多了 7zip


到目前为止,我注意到字典大小≈文件大小可产生最佳压缩率。 这里,对于所有大于 8mb 的字典大小, 文件大小
∼8mb 文件的压缩率相同。然后它开始下降。test.avi

答案1

可重复的项目存储在字典中,并分配一个代码作为替代。

这是一个过于简单化的说法

aaaaaaaaaaaaaaaaaaaaaaaa  0001
bbbbbbbbbbbbbbbbbbbbbbbb  0002
alsdjl;asjdfkl;asdfjkljj  0003

它不是整行,而是将代码放到其位置。字典越大,它能处理的代码就越多。通常,当字典已满时,它会动态地启动一个新的字典。当它启动一个新字典时,它是空白的,并且新代码被分配给检测到的模式。

一般来说,在某种程度上,越大越好。整个字典都保存在内存中,因此你需要比字典大小更多的 RAM。

字典大小取决于数据的压缩性、文件数量、大小和总体大小。

一般来说,32mb 已经足够了,但是如果你要压缩大量的多 GB 文件,那么可以使用更高的数字。较大的词典通常会使过程变慢,但文件会变小。

答案2

压缩取决于您要压缩的内容以及您拥有的 RAM 大小。预压缩文件(如图片和视频)比文本或包含大量非常相似或相同文件的目录更难压缩。

我有六个个人 php 网站 (xampp) 的备份目录,其中大部分都略有不同。每个主目录大约 600M 到 1Gig。所有目录加起来共计 6Gig,同样,所有目录都包含类似的文件。

单个包中所有目录的字典大小与压缩大小。

4M dictionary = 1,687,995KB
24M dictionary = 1,685,337KB
128M dictionary = 1,685,336KB
512M dictionary = 1,685,336KB (no change from 128) 
1024M dictionary = 315,224KB 

由于每个目录大致相同,并且都大于 512M,因此在这种情况下 1024M 的字典似乎是最好的。

使用相同的 1024M 字典大小压缩 6GB 大小的不同音乐文件夹,压缩率仅为 96%。5.76GB 而不是 6GB。压缩视频的最佳方法是使用程序转换视频的有损压缩。尝试将比特率降低到您不会注意到的程度,或者可以接受的视频质量。Handbrake 是一款不错的视频工具,但还有很多。VLC 也可以使用转换选项进行视频压缩。这两个程序都可以免费使用。

相关内容