「Zlib」の版間の差分
Tanakatackle (会話 | 投稿記録) gzip形式とRAW形式サポートを追記。 |
|||
19行目: | 19行目: | ||
| 公式サイト = https://zlib.net/ |
| 公式サイト = https://zlib.net/ |
||
}} |
}} |
||
'''zlib'''は、データの[[データ圧縮|圧縮]]および伸張を行うためのフリーのライブラリである。[[可逆圧縮]]アルゴリズムの[[Deflate]] (RFC 1951)を実装している。ヘッダーやフッターなどのデータ形式はRFC 1950 (ZLIB Compressed Data Format Specification)として仕様化されている。 |
'''zlib'''は、データの[[データ圧縮|圧縮]]および伸張を行うためのフリーのライブラリである。[[可逆圧縮]]アルゴリズムの[[Deflate]] (RFC 1951)を実装している。ヘッダーやフッターなどのデータ形式はRFC 1950 (ZLIB Compressed Data Format Specification)として仕様化されている。また、これ以外のデータ形式としてRFC 1952 (GZIP File Format Specification)及び、RAW形式(ヘッダーやフッタなし)もサポートする<ref>https://zlib.net/manual.html のIntroduction参照</ref>。 |
||
== 概要 == |
== 概要 == |
2020年2月8日 (土) 08:25時点における版
初版 | 1995年 |
---|---|
最新版 |
1.2.11
/ 2017年1月15日 [1] |
リポジトリ | |
プログラミング 言語 | C言語 |
対応OS | クロスプラットフォーム |
サポート状況 | 開発中 |
種別 | 圧縮ライブラリ |
ライセンス | zlib License |
公式サイト | https://zlib.net/ |
zlibは、データの圧縮および伸張を行うためのフリーのライブラリである。可逆圧縮アルゴリズムのDeflate (RFC 1951)を実装している。ヘッダーやフッターなどのデータ形式はRFC 1950 (ZLIB Compressed Data Format Specification)として仕様化されている。また、これ以外のデータ形式としてRFC 1952 (GZIP File Format Specification)及び、RAW形式(ヘッダーやフッタなし)もサポートする[2]。
概要
zlibの作者は、ジャン=ルー・ガイイ(Jean-Loup Gailly)とマーク・アドラー(Mark Adler)である。彼らはgzipの主要開発者でもある。ジャンが圧縮、マークが伸張に関する部分を担当した。ライセンスはgzipとは違いGPLではなく、BSDライセンスに近いより制限の緩やかなものが採用されている(zlib License)。
zlibはC言語で記述されている。ほとんどのプログラミング言語ではzlibを使えるようにライブラリで提供していて、例えば、Java Runtime Environmentにも組み込まれており、Javaプラットフォームからも利用できる。
zlibは、商用ソフトを含む多くのソフトウェアで採用されている[3]。画像フォーマットのPNGがDeflateの実装を必要とするため、データ圧縮系だけでなく、画像を表示するほとんどのソフトウェアでも使われている。ほとんどのOSで共有ライブラリとして含まれている。パソコン・サーバー・携帯電話など、非常に多くのOSで使われているライブラリのため、2002年と2005年にセキュリティ問題が発見されたが、問題が発見されると、広範囲のシステムに影響が及ぶ。
ヘッダー・フッター
zlibのデータ形式 (RFC 1950) は、圧縮データの前に2バイト以上のヘッダーと末尾に4バイトのAdler-32のフッターがつく。
ヘッダーの最初の2バイトは以下の通り。
- 1バイト目
- 上位4ビットは圧縮情報であり LZ77 のウィンドウサイズ。7なら32KBのウィンドウサイズ。
- 下位4ビットが圧縮方式。通常は数値の8。
- 2バイト目は
- 上位2ビットは圧縮レベル。デフォルトは2。
- 6ビット目はプリセット辞書があるかどうか。
- 下位5ビットがヘッダー2バイト分のチェックビット。
プリセット辞書を使う場合は3バイト目から辞書情報が続く。使わなければ、圧縮データが続く。
なお、gzip 形式 (RFC 1952) の場合は、10バイト以上のヘッダーと8バイトのフッターが付く。
Media Type
2012年8月に発行された RFC 6713 で application/zlib
が定義され、application/gzip と共に IANA に正式に登録された。[4]
脚注
- ^ “zlib Home Site” (2017年1月15日). 2017年2月19日閲覧。
- ^ https://zlib.net/manual.html のIntroduction参照
- ^ https://zlib.net/apps.gz.html
- ^ Levine, John (2012年8月). “RFC 6713 - The 'application/zlib' and 'application/gzip' Media Types” (英語). Internet Engineering Task Force. 2015年3月11日閲覧。