TITLE:zlib (A Massively Spiffy Yet Delicately Unobtrusive Compression Library) - http://www.zlib.net/ -- http://www.zlib.net/zlib_tech.html Technical Details - 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 日本語訳 * compress / uncompress [#x10ab7d2] ** compress [#compress] 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 = ~; // 伸張後のサイズより大きな値 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 - カスタムハフマン (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 * 関連 [#rel] - [[Deflate]] - [[PNG]] - [[IO_Zlib]] |