Ссылка на RFC
0 1
+---+---+
|CMF|FLG|
+---+---+
CMF (метод сжатия и флаги)
Этот байт разделен на 4-битный метод сжатия и 4-
битовое информационное поле в зависимости от метода сжатия.
bits 0 to 3 CM Compression method
bits 4 to 7 CINFO Compression info
см (метод сжатия)
Это определяет метод сжатия, используемый в файле. CM = 8
обозначает метод сжатия "deflate" с размером окна вверх
до 32К. Этот метод используется gzip и PNG и почти всем остальным.
CM = 15 зарезервировано.
CINFO (информация о сжатии)
Для CM = 8, CINFO является логарифмом по основанию 2 окна LZ77
размер, минус восемь (CINFO = 7 означает размер окна 32 КБ). Ценности
CINFO выше 7 не допускаются в этой версии
Спецификация. CINFO не определен в этой спецификации для
CM не равен 8.
На практике это означает, что первый байт почти всегда 78
(hex)
ФЛГ (ФЛАГ)
Этот байт флага делится следующим образом:
bits 0 to 4 FCHECK (check bits for CMF and FLG)
bit 5 FDICT (preset dictionary)
bits 6 to 7 FLEVEL (compression level)
Значение FCHECK должно быть таким, чтобы CMF и FLG, если смотреть как
16-разрядное целое число без знака, сохраненное в порядке MSB (CMF * 256 + FLG),
кратно 31.
FLEVEL (Уровень сжатия)
Эти флаги доступны для использования определенным сжатием
методы. Метод "deflate" (CM = 8
) устанавливает эти флаги как
следующим образом:
0 - compressor used fastest algorithm
1 - compressor used fast algorithm
2 - compressor used default algorithm
3 - compressor used maximum compression, slowest algorithm