在 David 的一些评论之后,我决定修改我的问题。原始问题可以在下面找到,也可以在新修订的问题中找到。我将离开原始问题只是为了了解为什么这个问题已经开始。
原始问题(为jslzma设置LZMA属性)
我有一些需要用ajax传输的大型json文件。我目前正在使用jQuery和$ .getJSON()。我想在收到文件后使用jslzma library解压缩文件。目前,我正在使用django和pylzma库来压缩文件。
唯一的问题是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。
那么有人可以建议这种数据的压缩方案吗?目标是通过减小数据大小来最小化传输时间。
感谢。
答案 0 :(得分:2)
使用Javacscript在客户端进行解压缩可能需要相当长的时间,并且在很大程度上取决于客户端盒子的可用带宽。为什么不只是实现更小但更快,更容易编写解压缩,如rle,delta或golomb代码?或者你想看看压缩的Jsons?
答案 1 :(得分:2)
对于它的价值而言,LZMA压缩和解压缩的速度通常很慢;因此,更常见的是使用更快的压缩方案。标准GZIP(放气)具有相当好的平衡:其压缩比是可接受的,其压缩速度比LZMA或bzip2好很多。 此外:大多数Web服务器和客户端都支持自动处理gzip压缩,这使得使用起来更加方便。