- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
- http://www.zlib.net/
-- http://www.zlib.net/zlib_tech.html
TITLE:zlib (A Massively Spiffy Yet Delicately Unobtrusive Compression Library)
[[Compression]]
- http://oku.edu.mie-u.ac.jp/~okumura/compression/zlib.html
- http://www.zlib.net/
-- http://www.zlib.net/zlib_tech.html Technical Details
* compress / uncompress [#x10ab7d2]
- http://oku.edu.mie-u.ac.jp/~okumura/compression/zlib.html zlib 入門
- http://dencha.ojaru.jp/programs/pg_filer_04_extra_03.html zlib1.2.2 FAQ 訳
- http://www.futomi.com/lecture/japanese/rfc1950.html RFC 1950 ZLIB Compressed Data Format Specification version 3.3 日本語訳
- [[Deflate]] (圧縮アルゴリズム)
* 実装比較 [#compare]
- A comparison of Zlib implementations
-- http://www.htslib.org/benchmarks/zlib.html
- Improving zlib-cloudflare and comparing performance with other zlib forks
-- https://aws.amazon.com/jp/blogs/opensource/improving-zlib-cloudflare-and-comparing-performance-with-other-zlib-forks/
* compress / uncompress [#comp_uncomp]
** compress [#compress]
compsize = ~;
compsize = ~; // 圧縮後のサイズより大きな値
compbuff = malloc(compsize);
int result = compress(compbuff, &compsize, origbuff, origsize);
if (result != Z_OK) {
if (result == Z_MEM_ERROR) {
fprintf(stderr, "compress: Z_MEM_ERROR: can't malloc\n");
} else if (result == Z_BUF_ERROR) {
fprintf(stderr, "compress: Z_BUF_ERROR: not enough buff size\n");
}
return 1; // FAILURE
}
** uncompress [#uncompress]
origsize = ~;
origsize = ~; // 伸張後のサイズより大きな値
origbuff = malloc(origsize);
int result = uncompress(origbuff, &origsize, compbuff, compsize);
if (result != Z_OK) {
if (result == Z_MEM_ERROR) {
fprintf(stderr, "uncompress: Z_MEM_ERROR: can't malloc\n");
} else if (result == Z_BUF_ERROR) {
fprintf(stderr, "uncompress: Z_BUF_ERROR: not enough buff size\n");
}
return 1; // FAILURE
}
* inflate / defrate [#q681d972]
(予定)
* 発表スライド [#slide]
未圧縮形式と固定ハフマン
-- http://www.slideshare.net/7shi/deflate
* 参考 [#ref]
- http://tools.ietf.org/rfc/rfc1950.pdf
- http://tools.ietf.org/rfc/rfc1951.pdf
- http://tools.ietf.org/rfc/rfc1952.pdf
- PNG Deflate/Inflate 圧縮
-- http://www.sutv.zaq.ne.jp/linuz/tks/PngSpec1.2/PNG-Compression.html
- Zlib Flush Modes
- https://www.bolet.org/~pornin/deflate-flush.html
- カスタムハフマン (dynamic huffman)
-- http://d.hatena.ne.jp/n7shi/20110719/1311093479
- Zlib (Deflate のコンテナ)
-- http://www.futomi.com/lecture/japanese/rfc1950.html
- Deflate (圧縮の仕様
-- http://www.futomi.com/lecture/japanese/rfc1951.html)
- IO_Zlib 1.0.0 リリース (ハマりどころメモ)
-- http://d.hatena.ne.jp/yoya/20110726/io_zlib
- SWFバイナリ編集のススメ番外編 (zlib 伸張)
-- https://labs.gree.jp/blog/2012/01/4082/
-- https://labs.gree.jp/blog/2014/01/4530/
* 関連 [#rel]
- [[Deflate]]
- [[PNG]]
- [[IO_Zlib]]
- [[LZFSE]] (Apple の圧縮技術)