GZIP и BZIP2

Anonim

GZIP против BZIP2

GNU zip (также известный как GZIP) - это программное приложение с целью сжатия файлов. Первоначально он был предназначен для замены программы сжатия, используемой в ранних Unix-системах, для использования в проекте GNU (проект свободного программного обеспечения).

BZIP2 - это алгоритм сжатия данных без потерь с открытым исходным кодом - в основном, класс алгоритмов сжатия данных, который позволяет полностью восстановить исходные данные сжатого файла из сжатых данных.

GZIP основан на алгоритме, известном как DEFLATE. Это также алгоритм сжатия данных без потерь. Он использует как алгоритм LZ77, так и кодировку Хаффмана. По сути, GZIP относится к файлу с тем же именем. Этот формат представляет собой 10-байтовый заголовок, который содержит магическое число (что означает числовое или текстовое значение, которое никогда не изменяется и используется для обозначения формата файла или протокола, неназванного численного значения, которое никогда не изменяется, или отдельных значений, которые не могут быть ошибочными для чего-либо еще), дополнительные заголовки, которые могут или не могут быть действительно необходимы (например, исходное имя файла), тело, содержащее полезную нагрузку DEFLATE (которая является данными, которую несут заголовки) и 8-байтовый нижний колонтитул который содержит контрольную сумму CRC-32, а также фактическую длину исходных несжатых данных.

Существуют различные методы сжатия, используемые в формате BZIP2, которые сложены друг на друга в нескольких слоях. Они встречаются в очень своеобразном порядке: кодирование длительности (которое представляет собой любую последовательность из четырех - 255 дубликатов символов, которая заменяется первыми четырьмя символами и длиной кодирования, которая повторяется между 0 и 251), преобразование Берроуза-Уилера (которая является обратимой блочной сортировкой, которая составляет самое ядро ​​BZIP2), Move to front (оставляет размер обработанного блока неизменным), кодирование длинных строк (состоящее из длинных нитей символов - обычно нулей), которые постоянно повторяются на выходе и заменяются как символом, так и последовательностью из двух кодов), кодирование Хаффмана (которое представляет собой процесс, который заменяет символы фиксированной длины 8-битных байтов на меняющиеся коды длины), множественное кодирование Хоффмана (состоящее из несколько таблиц Хоффмана одинакового размера), кодирование Unary base 1, кодирование Delta и разреженный бит.

Резюме:

1. GZIP - это бесплатное приложение, используемое для сжатия файлов; BZIP2 - алгоритм сжатия данных без потерь с открытым исходным кодом, который позволяет извлекать исходные данные сжатого файла.

2. GZIP состоит из 10-байтового заголовка, дополнительных заголовков, тела и 8-байтового нижнего колонтитула; BZIP2 состоит из не менее девяти слоев методов сжатия.