在 David 发表一些评论后,我决定修改我的问题。可以在下面找到原始问题以及新修改的问题。我离开原来的问题只是为了了解为什么开始这个问题的历史。
原始问题(为 jslzma 设置 LZMA 属性)
我有一些需要使用 ajax 传输的大型 json 文件。我目前正在使用 jQuery 和 $.getJSON()。我想使用 jslzma library在收到文件后解压缩文件。目前,我正在使用带有 pylzma 库的 django 来压缩文件。
唯一的问题是缺少 jslzma 库的文档。有一些,但还不够。所以我有两个关于如何使用该库的问题。
举个例子:
LZMA.decompress(properties, inStream, outStream, outSize);
我知道如何设置 inStream 和 outStream 变量,但不知道 properties
或 outSize
。那么谁能举例说明如何设置 properties
变量(即预期的内容)以及如何计算 outSize
...
谢谢。
编辑 #1(修改后的问题)
我正在寻找一种适合使用 python (django) 和 javascript 处理高度可重复数据的压缩方案。
正在传输的数据包含高程测量值。每个文件都有 1200x1200 个数据点,这相当于未压缩的原始二进制形式的大约 2.75MB。 JSON 将其膨胀到 5-6MB 之间。我还研究了 base64(只是为了涵盖所有基础),这会减小大小,但我在 js 中没有成功读取它。我认为数据本身很容易压缩,因为数据值具有高度可重复性。例如,一个文件只有 83 个唯一高程值来描述 1440000 个数据点。
我只是运气不太好,主要是因为我才刚刚开始学习 JavaScript。
那么有人可以为这种类型的数据建议一种压缩方案吗?目标是通过减小数据大小来最小化传输时间。
谢谢。
最佳答案
就其值(value)而言,LZMA 通常在压缩和解压缩时都非常缓慢;因此,使用更快的压缩方案更为常见。标准 GZIP(deflate)具有相当好的平衡:它的压缩率是可以接受的,而且它的压缩速度比 LZMA 或 bzip2 好得多。 此外:大多数网络服务器和客户端都支持自动处理 gzip 压缩,这使得使用起来更加方便。
关于javascript - 为 JSON 数据传输选择合适的压缩方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8109875/