对于一个个人项目,我的,我写了一个小类,以压缩,和解从一个相当模糊的格式。我已经得到了充分的规范,但这并不是问题。

第一,这"格式"使用一套不同的6类型的压缩,以及压缩块字节的数据。该格式是游程的一个分支的游程数量的增量每个字节(例如3,4,5,...),16位的游程,LZ-复制、反LZ-复制、和LZ-复制异或就有255个。它不干净的规格,但是我没设计这一点。

我压缩程序是应该采取的一系列任何地方从1到65535字节,和(希望)压缩它尽可能的。我以前试图在这一简单的计算,从开始任何指在压缩的流,其压缩技术上将提供最好的压缩,然后压缩然而,许多字节的方法将压缩阵列的压缩字重复前从新的'压缩指数,例如:

{0,0,0,1,2,3,4}

算法将第一读,有三个零开始,然后再输出的游程编码为他们规范的使用,然后开始从第四个因素,就读,增加的游程将涵盖的'1、2、3、4的'足够好的并且压缩,之前返回。

问题概述是在尝试找出最佳规范的使用,该程序 非常 慢甚至在小(20-30)字节的数组。任何人都可以帮助的提示我怎么可能看起来在优化此,或者如果有任何更多信息,我可以提供帮助?

有帮助吗?

解决方案

这听起来像什么你想要做的就是工作了大量压缩的可能性,为每个可能的分段(让我们叫你变长1-64K块段)的文件。正确的我,如果我错了,但是你工作的最佳压缩第一段从以下选择(方法,0无压缩):

  • 压缩的方法0,长1字节。
  • 压缩的方法1、长1字节。
  • : : : : :
  • 压缩的方法6,长1字节。
  • 压缩的方法0,长2节。
  • 压缩的方法1、2的长度字节。
  • : : : : :
  • 压缩的方法6,长65534字节。
  • 压缩的方法0,长65535字节。
  • 压缩的方法1、长65535字节。
  • 压缩的方法2,长65535字节。
  • 压缩的方法3,长65535字节。
  • 压缩的方法的4,长65535字节。
  • 压缩的方法5,长65535字节。
  • 压缩的方法6,长65535字节。

这需要大量的时间(大约420 000名试图压缩每段)。如果这是你在做什么,你会更好选择一个单一区段的大小(例如,64K)和施加的每个七个压缩的方法,以选择最好的。然后,每个分段,输出的"方法"字节随后通过压缩的数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top