Понимание ZLIB DICTID - PullRequest
       8

Понимание ZLIB DICTID

0 голосов
/ 24 марта 2020

Я посмотрел стандарт для zlib и похожий вопрос, опубликованный здесь .

Однако я изо всех сил пытаюсь понять, что делает DICTID в zlib Заголовки представляют и содержат.

  0   1     0   1   2   3                             0   1   2   3
+---+---+ +---+---+---+---+ +=====================+ +---+---+---+---+
|CMF|FLG| |    [DICTID]   | |...compressed data...| |    ADLER32    |
+---+---+ +---+---+---+---+ +=====================+ +---+---+---+---+

Из этого я мог только обнаружить, что следующий бит в DICTID представляет, если файлы были разбиты на несколько разных файлов

      0        1        2        3
     +--------+--------+--------+--------+
     |00000010|00001000|00000010|00001000|
     +--------+--------+--------+--------+
             ^
             |
             + 1 if not split/ 0 if there is multiple files

Также является DICTID необязательным и является длина сжатых данных, указанная где-либо в заголовках?

Моя цель - собрать следующие сжатые данные:

# compressed data
b1 = b'\x78\x01\x7a\x3c\xd5\x28\xe3\xf1\x4e\xa7\x92\xff\x13\x01\x00\x00\x00\xff\xff'
b2 = b'\x03\x00\x20\x6f\x05\xf5'
stream = b1 + b2

в

\x78\x01\x7b\x3c\xd5\x28\xe3\xf1\x4e\xa7\x92\xff\x13\x01\x20\x6f\x05\xf5
...