[3] [DFN[LZ77 sliding window]]
は、 [[DEFLATE]] が直近で処理した入力を蓄積しておく[[バッファー]]です。
[[DEFLATE]] の[[圧縮]]では、以後の入力についてこの[[バッファー]]から一致を探します。
[SRC[>>1]]

* 仕様書

[REFS[
- [20] [CITE@en[RFC 1950 - ZLIB Compressed Data Format Specification version 3.3]] ([TIME[2017-09-17 17:15:13 +09:00]]) <https://tools.ietf.org/html/rfc1950>
- [1] [CITE@en[RFC 7692 - Compression Extensions for WebSocket]] ([TIME[2017-09-19 00:18:15 +09:00]]) <https://tools.ietf.org/html/rfc7692#section-7>
]REFS]

* CINFO (zlib)

[31] [[zlib stream]] の [F[CMF]] の [DFN[[F[CINFO]]]] は、
[[圧縮]]方式に依存した[RUBYB[圧縮情報]@en[compression info]]を表します。 [SRC[>>20]]
[F[CMF]] [[バイト]]の第4ビットから第7ビットが [F[CINFO]] です。

[32] [[CM]] が [N[8]] の場合、
([[log]][SUB[2]] ([[LZ77]] 窓サイズ)) - [N[8]] を表します。
値は [N[7]] [[以下]]とします。 [SRC[>>20]]

[33] [[CM]] が [N[8]] 以外の場合は未定義です。 [SRC[>>20]]

[37] [[展開器]]は [[CMF]] を検査しなければならない [SRC[>>20]] とされていますが、
未知の [[CINFO]] をどう処理するべきかは不明です。

-*-*-

[64] [[CINFO]] に関する規定は修正が提案されています [SRC[>>62]]。
この修正は [CITE[RFC Errata]] には登録されていませんが、
[[zlib]] ([[ソフトウェア]]) の公式 [[Webサイト]]から[[リンク]]されています。


[67] [[CM]] が [N[8]] の場合、
([[log]][SUB[2]] (最大[[距離符号]])) - [N[8]] を表します。
値は [N[7]] [[以下]]とします。 [SRC[>>62]]

[65] [[圧縮器]]は、 2[SUP[[F[CINFO]] + 8]] 
より大きな[[距離符号]]を出力してはなりません。 [SRC[>>62]]

[66] [[展開器]]は、[[距離符号]]が 2[SUP[[F[CINFO]] + 8]] 
より大きい場合、エラーとしなければなりません。 [SRC[>>62]]

[REFS[
- [62] [CITE[zlib spec correction proposal]] ([[Cosmin Truta]]著, [TIME[2001-04-18 22:51:10 +09:00]]) <http://optipng.sourceforge.net/pngtech/zlib-spec-correction.html>
]REFS]
