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

2. Обзор сжатого представления

Сжатые данные состоят из последовательности блоков, соответствующих блокам входных данных. Размер блока данных произвольный, за исключением того, что несжатые блоки ограничины размером в 65,535 байт.

Каждый блок сжимается используя комбинацию алгоритма LZ77 и Huffman кодирования. Деревья Huffman для каждого блока не зависят от деревьев предыдущих или последующих блоков; алгоритм LZ77 может использовать ссылку на повторяющиеся строки в предыдущих блоках, до 32K входных байт ранее.

Каждый блок состоит из двух частей: пара Huffman деревьев, которые описывают представление сжатых данных, и сжатые данные. (Сами деревья Huffman сжимаются используя Huffman кодирование.) Сжатые данные состоят из последовательности элементов двух типов: дословные байты (literal bytes) (или строки, которые не были обнаружены в предыдущих 32K входных байтах), и указатели на повторяющиеся строки, где указатель представляет собой пару <длина,обратная дистанция> (<length, backward distance>). Формат "deflate" ограничивает смещение 32K байтами а длину 258 байтами, но не ограничивает размер блока, за исключением не сжатых блоков, ограничение на длину которых приведено выше.

Каждый тип значений (литеральные символы, расстояния и длины) в сжатых данных представлен, используя код Huffman, используя одно общее дерево кодирования для литеральных символов и длин и отдельное дерево кодирования для расстояния. Деревья кода для каждого блока записываются в компактной форме перед сжатыми данными этого блока.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.