【发布时间】:2016-03-22 13:20:13
【问题描述】:
我正在尝试压缩我的一些大型文档文件。但是大多数文件最多只能压缩 10%。我正在使用 7zip 终端命令。
7z a filename.7z -m0=LZMA -mx=9 -mmt=on -aoa -mfb=64 filename.pptx
关于更改参数的任何建议。我需要至少 30% 的压缩比。
【问题讨论】:
标签: command-line compression 7zip lzma
我正在尝试压缩我的一些大型文档文件。但是大多数文件最多只能压缩 10%。我正在使用 7zip 终端命令。
7z a filename.7z -m0=LZMA -mx=9 -mmt=on -aoa -mfb=64 filename.pptx
关于更改参数的任何建议。我需要至少 30% 的压缩比。
【问题讨论】:
标签: command-line compression 7zip lzma
.pptx 文件或.docx 文件在内部是.zip 档案。您不能期望对已压缩的文件进行大量压缩。
文档状态lzma2处理更好的无法压缩的数据,所以你可以试试
7z a -m0=lzma2 -mx filename.7z filename.pptx
但所需的 30% 几乎无法达到。
【讨论】:
.chm 文件。在 LZMA2 配置中的命令行 -m (Set Compression Method) 下的此文件中,在列举 LZMA2 优于 LZMA 的优势时,声明:“比无法压缩的数据具有更好的压缩率”
如果您真的需要这种压缩,您可以使用 pptx 只是一个精美的 zip 文件这一事实:
解压pptx,然后用7zip压缩。恢复等效(但不相同)的 pptx 使用 7zip 解压缩并使用 zip 重新压缩。
可能有一些复杂性,例如对于 epub,有一个特定的文件必须作为存档中的第一个文件未压缩地存储在从开始的特定偏移量处。我对 pptx 不熟悉,但可能有类似的要求。
我认为文件大小的小幅减小不太可能值得麻烦,但这是我能想到的唯一方法。
根据 pptx 大小的原因,您还可以尝试压缩包含的文件。例如,通过使用更好的压缩器重新压缩 png 文件、剥离不必要的数据(例如元数据或更改历史记录)或对 jpeg 文件应用较低质量设置的有损压缩。
【讨论】:
最大压缩的一个想法是
lzma2 非常好 - 但是如果文件包含许多 jpg 文件,请考虑使用开源打包程序 peazip 或更多指定 paq8o 尝试。 Paq8 内置 Jpeg 压缩器并支持范围压缩。所以它也会与 jpg 一起出现在其他文件中。 Winzip 的 zipx 与此相反,需要纯 jpg 文件,在这种情况下无用。
但为了让 PAQ 有效地工作/压缩您的目标文件,您需要将 zip/deflate 压缩“归零”,将其转换为未压缩的 zip。
嗯,PAQ 可能有点异国情调,但在我看来,它比 zipx 更诚实和清晰。 PAQ 不受支持,因此最好只用谷歌搜索没有/不知道的东西,你会发现一些东西。 相比之下,Zipx 可能看起来有点奇怪,因为它看起来像一个普通的 zip,并且文件在 Winrar 或 7zip 中正确列出,但是当你想提取 jpg 时它会失败,所以如果用户没有经验,它可能看起来像 zip 损坏。很难找到到目前为止只有 winzip 或 The Unarchiver(unar.exe) 可以正确处理的 zipx。
【讨论】:
PPTX、XLSX 和 DOCX 文件如果数量多,确实可以有效压缩。通过将它们中的每一个解压缩到它们的目录中,归档器可以找到它们之间的共同点,对样板 XML 以及它们之间的任何通用文本进行重复数据删除。
如果您必须使用 ZIP 格式,请先创建一个包含所有这些文件的零压缩“存储”存档,然后再将其压缩。这是必要的,因为 ZIP 存档中的每个文件都是从头开始压缩的,没有利用不同文件之间的冗余。
利用样板重复数据删除,30% 应该是小菜一碟。
【讨论】: