RFC: 1951
Оригинал: DEFLATE Compressed Data Format Specification version 1.3
Категория: Информационный
Дата публикации:
Автор:
Перевод: Дмитрий Черкашин

RFC 1951, Страница 10 из 14

3.2.4. Несжатые блоки (BTYPE=00)

Любые биты ввода до следующей границы байта игнорируются. Остальная часть блока содержит следующую информацию:

  0   1   2   3   4...
+---+---+---+---+==================================+
|  LEN  | NLEN  |... LEN байт литеральных данных...|
+---+---+---+---+==================================+

LEN количество байт данных в блоке. NLEN дополнение LEN до единиц.

3.2.5. Сжатые блоки (коды для длины и расстояния)

Как отмечалось выше, кодируемые блоки данных формате "deflate" состоят из последовательностей символов, из трех концептуально различных алфавитов: либо литеральные байты из алфавита значений байта (0.. 255), либо пара <длина, обратное расстояние>, где длина находится в диапазоне до 258 а расстояние от 1 до 32,768. Фактически, литеральный алфавит и алфавиты длины слиты в единый алфавит (0.. 285), где значения 0.. 255 представляют литеральные байты, значение 256 указывает конец-блока, а значения 257.. 285 представляют коды длины (возможно вместе с дополнительными битами после кода символа) следующим образом:

Extra               Extra               Extra
Code Bits Length(s) Code Bits Lengths   Code Bits Length(s)
---- ---- ------     ---- ---- -------   ---- ---- -------
 257   0     3       267   1   15,16     277   4   67-82
 258   0     4       268   1   17,18     278   4   83-98
 259   0     5       269   2   19-22     279   4   99-114
 260   0     6       270   2   23-26     280   4  115-130
 261   0     7       271   2   27-30     281   5  131-162
 262   0     8       272   2   31-34     282   5  163-194
 263   0     9       273   3   35-42     283   5  195-226
 264   0    10       274   3   43-50     284   5  227-257
 265   1  11,12      275   3   51-58     285   0    258
 266   1  13,14      276   3   59-66

Дополнительные биты (extra bits) должны интерпретироваться как машинные целые, хранимые с наиболее значимым битом первым, т.е., биты 1110 представляют значение 14.

     Extra           Extra               Extra
Code Bits Dist  Code Bits   Dist     Code Bits Distance
---- ---- ----  ---- ----  ------    ---- ---- --------
  0   0    1     10   4     33-48    20    9   1025-1536
  1   0    2     11   4     49-64    21    9   1537-2048
  2   0    3     12   5     65-96    22   10   2049-3072
  3   0    4     13   5     97-128   23   10   3073-4096
  4   1   5,6    14   6    129-192   24   11   4097-6144
  5   1   7,8    15   6    193-256   25   11   6145-8192
  6   2   9-12   16   7    257-384   26   12  8193-12288
  7   2  13-16   17   7    385-512   27   12 12289-16384
  8   3  17-24   18   8    513-768   28   13 16385-24576
  9   3  25-32   19   8   769-1024   29   13 24577-32768
2007 - 2017 © Русские переводы RFC, IETF, ISOC.