Brotli[読み疑問点]は、Jyrki AlakuijalaとZoltán Szabadka(英語版)により開発されたオープンソースのデータ圧縮ライブラリである[3][4]。
BrotliはLZ77やLZ78とハフマン符号化、および2次文脈モデリング(英語版)処理の近代的な亜種がベースである。
Chrome、Opera、Firefox、Microsoft Edgeなど、Internet Explorerを除いた主要なブラウザはこのライブラリによる圧縮の恩恵を受けたWebブラウジングが可能である[5][6]。同じくGoogleにより開発されたZopfliと同じく、スイスのパンであるbrötli(英語版)に由来している[7]。
Brotliの最初の発表は2015年、webフォントのオフライン圧縮を目的にしてのことであった[8]。同年9月、Googleのソフトウェア技術者により汎用データ圧縮、特にHTTP圧縮(英語版)を目的とする改良がなされた版が発表される。 これはエンコーダの一部書き直しにより、圧縮率の向上、エンコーダ/デコーダ両方の高速化、ストリーミングAPIの改善、圧縮品質レベルの調整項目などが追加されたものであった。 加えてこの新しい版ではクロスプラットフォーム性の向上や使用メモリの削減もなされていた。
多くの汎用圧縮アルゴリズムと異なり、Brotliは事前に定義された120KBの辞書を使用している。 辞書は13000以上の共通の単語や熟語、テキストやHTMLドキュメントから構成された巨大なコーパスから生成される部分文字列から成っており[9][10]、小さいデータファイルに対する圧縮率を高めることに寄与している。
テキストファイルを圧縮する局面において、Brotliは一般的にDeflateに対し20%程の圧縮率の優越を、圧縮/伸長速度におおかた変化なく行うことができる。ストリーミング圧縮におけるBrotliのコンテンツエンコーディングタイプ[注 1]は"br"である。
- ^ “Brotli v1.0.0”. GitHub (2017年9月21日). 2019年9月21日閲覧。
- ^ “Releases”. GitHub. 2023年12月27日閲覧。
- ^ “Brotli Compressed Data Format”. IETF Internet Drafts (2014年5月16日). 2016年11月1日閲覧。
- ^ “Brotli Source Code - GitHub”. github.com. 2017年1月17日閲覧。
- ^ Slater-Robbins, Max (20 Jan 2016). “Chrome and Firefox are about to get a lot faster thanks to Google's new data compression algorithm”. techspot.com. 20 Jan 2016閲覧。
- ^ “Can I use... Support tables for HTML5, CSS3, etc”. 9 Oct 2020閲覧。
- ^ Google Open Source Blog: Introducing Brotli: a new compression algorithm for the internet
- ^ “Smaller Fonts with WOFF 2.0 and unicode-range” (18 Feb 2015). 20 Jan 2016閲覧。
- ^ Richard Chirgwin (23 September 2015). “Google's new squeeze: Brotli compression open-sourced”. The Register. 2017年1月17日閲覧。
- ^ “Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms”. Google (2015年9月22日). 25 October 2015閲覧。
- ^ a b Baheux, Kenji (15 January 2016), “Accept-encoding: br on HTTPS connection”, Chrome Platform Status, chromestatus.com, https://www.chromestatus.com/feature/5420797577396224 .
- ^ Trace, Rob (December 20, 2016), “Introducing Brotli compression in Microsoft Edge”, Microft Edge Developer, blogs.windows.com, https://blogs.windows.com/msedgedev/2016/12/20/introducing-brotli-compression
- ^ “Can I use... Support tables for HTML5, CSS3, etc”. caniuse.com. 2016年1月7日閲覧。
- ^ “Firefox 44 release notes”. mozilla.org. 2016年1月26日閲覧。
- ^ “CHANGES_2.4”. 2018年5月20日閲覧。 “Changes with Apache 2.4.26 *) mod_brotli: Add a new module for dynamic Brotli (RFC 7932) compression. [Evgeny Kotkov]”
- ^ “IIS Brotli extension page”. Microsoft IIS Community. 2016年10月6日閲覧。
- ^ “ngx_brotli project page”. GitHub. 2016年10月6日閲覧。
- ^ “Amazon CloudFront announces support for Brotli compression”. aws.amazon.com. 2021年7月8日閲覧。