1

大卫发表一些评论后,我决定修改我的问题。可以在下面找到原始问题以及新修订的问题。我留下最初的问题只是为了了解为什么开始这个问题。

原始问题(为 jslzma 设置 LZMA 属性)

我有一些需要用 ajax 传输的大型 json 文件。我目前正在使用 jQuery 和 $.getJSON()。我想在收到文件时使用jslzma 库来解压缩文件。目前,我正在使用 django 和 pylzma 库来压缩文件。

唯一的问题是缺少 jslzma 库的文档。有一些,但还不够。所以我有两个关于如何使用图书馆的问题。

它举了一个例子:

LZMA.decompress(properties, inStream, outStream, outSize);

我知道如何设置 inStream 和 outStream 变量,但不知道propertiesoutSize. 那么任何人都可以举例说明如何设置properties变量(即预期的内容)以及如何计算outSize...

谢谢。

编辑#1(修改后的问题)


我正在寻找一种压缩方案,它适用于使用 python (django) 和 javascript 的高度可重复的数据。

正在传输的数据包含高程测量值。每个文件有 1200x1200 个数据点,这相当于未压缩的原始二进制形式大约 2.75MB。JSON 将其膨胀到 5-6MB 之间。我还研究了 base64(只是为了涵盖所有的基础),这会减小大小,但我在 js 中读取它没有任何成功。我认为数据本身很容易压缩,因为它具有高度可重复的数据值。例如,一个文件只有 83 个唯一的高程值来描述 1440000 个数据点。

我只是运气不佳,主要是因为我刚刚开始学习 JavaScript。

那么任何人都可以为这种类型的数据建议一种压缩方案吗?目标是通过减小数据大小来最小化传输时间。

谢谢。

4

2 回答 2

2

使用 Javascript 在客户端解压缩可能需要更长的时间,并且很大程度上取决于客户端盒子的可用带宽。为什么不直接实现一个更小但更快、更容易编写解压缩的 rle、delta 或 golomb 代码?或者,也许您想研究压缩的 Json?

于 2011-11-13T08:01:19.040 回答
2

对于它的价值,LZMA 通常压缩和解压缩都非常慢;因此更常见的是使用更快的压缩方案。标准 GZIP (deflate) 具有相当好的平衡:它的压缩比可以接受,而且它的压缩速度比 LZMA 或 bzip2 好得多。另外:大多数 Web 服务器和客户端都支持自动处理 gzip 压缩,这使得它使用起来更加方便。

于 2011-11-14T22:00:37.873 回答