【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

JSON压缩算法:CJSON和HPack

转载 2016年08月30日 10:32:28

JSON已得到广泛应用,在很多应用场景下,你可能想进一步地压缩JSON字符串的长度,以提升传输效率,这里向你介绍两种常用的同构压缩算法:CJSON和HPack。

CJSON压缩示例

原始JSON:

[
  { // This is a point
    "x": 100, 
    "y": 100
  }, { // This is a rectangle
    "x": 100, 
    "y": 100,
    "width": 200,
    "height": 150
  },
  {}, // an empty object
]

CJSON压缩后:

{
  "templates": [ 
    [0, "x", "y"], [1, "width", "height"] 
  ],
  "values": [ 
    { "values": [ 1,  100, 100 ] }, 
    { "values": [2, 100, 100, 200, 150 ] }, 
    {} 
  ]
}

HPack压缩示例

原始JSON:

[{
  name : "Andrea",
  age : 31,
  gender : "Male",
  skilled : true
}, {
  name : "Eva",
  age : 27,
  gender : "Female",
  skilled : true
}, {
  name : "Daniele",
  age : 26,
  gender : "Male",
  skilled : false
}]

HPack压缩后:

[["name","age","gender","skilled"],["Andrea",31,"Male",true],["Eva",27,"Female",true],["Daniele",26,"Male",false]]

我目前正在使用的是基于HPACK算法的开源项目JSONP:https://github.com/WebReflection/JSONH,数据量越大,效果越明显,应用场景也更加有意义。

参考:http://web-resource-optimization.blogspot.com/2011/06/json-compression-algorithms.html


举报

相关文章推荐

Java不同压缩算法的性能比较

转: http://www.importnew.com/14410.html  

几种压缩算法原理介绍

1 RLE RLE 又叫 Run Length Encoding ,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有...

JSON Compression algorithms: HPack VS CJSON

总结:HPack 优于 CJSON json1 json2 json3 json4 json5 Original JSON size (bytes) 52966 104370 233012 493589 1014099 Minimized 33322 80657 180319 382396 776135 Compress CJSON 24899 48605 108983 231760 471230 Compress HPack 5727 10781 23162 49099 99575 Gzipped 2929 5374 11224 23167 43550 Gzipped and

常用的压缩算法以及区别

常用的压缩算法主要有:deflate、gzip、bzip2、lzo、snappy等。差别如下所示: deflate、gzip都是基于LZ77算法与哈夫曼编码的无损数据压缩算法,gzip只...

zlib库剖析(5):LZ77压缩算法

1、LZ77压缩算法 Zlib压缩使用LZ77压缩算法的一个变种,关于LZ77压缩算法,可参考两篇文章http://www.cnblogs.com/D-T121/archive/2012/05/02/2479838.html,和http://hi.baidu.com/cekytggeaqbgnoe/item/c4c66e0ae3033b25a1312d65,这两篇文章对LZ77已经介绍得很详细了。 本来想翻译一下zlib-1.2.7中的

转-哈夫曼压缩算法

通俗易懂的原文:http://blog.jobbole.com/20091/ 我们直接来看示例,如果我们需要来压缩下面的字符串:  “beep boop beer!”  首先,我们先计算出每个字...

GZIP、LZO、Zippy/Snappy压缩算法应用场景小结

GZIP、LZO、Zippy/Snappy是常用的几种压缩算法,各自有其特点,因此适用的应用场景也不尽相同。这里结合相关工程实践的情况,做一次小结。 压缩算法的比较 以下是Google几年前发布的一组测试数据(数据有些老了,有人近期做过测试的话希望能共享出来): Algorithm % remaining Encoding Decoding GZIP 13.4% 21 MB/s 118 MB/s LZO 20.5% 135 MB/s 410 MB/s Zippy/Snappy 22.2% 1

JPEG压缩算法

JPEG压缩算法可以用失真的压缩方式来处理图像,但失真的程度却是肉眼所 无法辩认的。这也就是为什么JPEG会有如此满意的压缩比例的原因。 下面主要讨论,JPEG基本压缩法。 一.JPEG压缩过程 JP...

RoaringBitmap更好的位图压缩算法分析

项目github源码:https://github.com/lemire/RoaringBitmap 论文Better bitmap performance with Roaring bitmaps http://arxiv.org/pdf/1402.6407.pdf 比较流行的位图压缩算法包括WAH, EWAH, Concise等,它们是基于RLE(Run-Length Encode,运行长度编码)来压缩的。RoaringBitmap可以比RLE的压缩算法更高。 Roaring Bitmap使用在 Apache Spark (https://spark.apache.org/)
  • sxpujs
  • sxpujs
  • 2015-09-05 18:04
  • 2519

文本压缩算法的对比和选择

本文主要粗略介绍数据压缩主要算法类别,以及最新针对Web文本资源的zStd和Brotli算法的设计要点。为Web业务应用如何使用它们替换传统gzip提供些参考。最后是一个文本有损压缩的尝试。
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)