1. Введение
1.1. Цель
Цель данной спецификации состоит в том, чтобы определить формат сжатых без потерь данных, который:
- Является независимым от типа центрального процессора, операционной системы, файловой системы и кодировки символов, и следовательно может использоваться для обмена данными;
- может быть применен даже для произвольно длинных последовательностей, представляющий входной поток данных, используя только априорное ограниченное количество промежуточной памяти, и следовательно может использоваться при передаче данных или в других подобных структурах, например фильтрах Unix;
- Сжимает данные с эффективностью, сопоставимой c лучшими в настоящее время методами сжатия общего назначения, и в особенности значительно лучше чем программа "compress";
- Может быть может быть реализован способом, не подпадающим под действие cуществующих патентов, и следовательно свободно;
- Является совместимым с форматом файла, использованным утилитой gzip, в том смысле, что декомпрессор способен читать данные, сгенерированные существующим компрессором gzip.
Формат данных, определенный этой спецификацией не делает попытку:
- Обеспечить произвольный доступ ко сжатым данным;
- Сжимать специализированные данные (например, растровую графику) также хорошо, как лучшие в настоящее время специализированные алгоритмы.
Можно привести простые аргументы, которые показывают что отсутствует сжимающий без потери алгоритм, который способен сжать любые входные данные. Для формата определенного здесь, увеличение размера данных в наихудшем случае составляет 5 байт на 32K-байтный блок, то есть, размер возрастает на 0.015%.
Английский текст обычно сжимается с коэффициентом от 2.5 до 3; исполняемые файлы обычно сжимаются несколько меньше; графические данные типа растровых изображений могут сжиматься гораздо сильнее.