Jump to content

сжатие (программное обеспечение)

сжимать/распаковывать
Оригинальный автор(ы) Спенсер Томас
Первоначальный выпуск февраль 1985 г .; 39 лет назад ( 1985-02 )
Операционная система Unix , Unix-подобные , IBM i
Тип Команда
сжать .Z
Расширение имени файла
Тип интернет-СМИ
приложение/x-сжатие
Разработано Спенсер Томас
Тип формата сжатие данных

compress — это оболочки Unix, программа сжатия основанная на алгоритме сжатия LZW . [1] По сравнению с самой быстрой настройкой gzip , компрессия немного медленнее при сжатии, немного быстрее при распаковке и имеет значительно меньшую степень сжатия . [2] используется 1,8 МБ памяти Для сжатия данных Hutter Prize , что немного больше, чем самая медленная настройка gzip. [3]

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

В предстоящей редакции спецификации POSIX и Single Unix планируется, что DEFLATE, в этих утилитах будет поддерживаться алгоритм используемый в формате gzip . [4]

Описание

[ редактировать ]

Файлам, сжатым с помощью сжатия, обычно присваивается расширение «.Z» (по образцу более ранней программы -упаковщика , которая использовала расширение «.z»). Большинство tar -программ будут передавать свои данные через сжатие , если им задана опция командной строки " -Z". ( Программа tar сама по себе не сжимает; она просто хранит несколько файлов в одном ленточном архиве.)

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

Для файлов, созданных методом сжатия в других системах, распаковка поддерживает сжатие от 9 до 16 бит.

Алгоритм LZW, используемый в Компресс был запатентован Исследовательским центром Сперри в 1983 году. Терри Уэлч опубликовал статью об этом алгоритме в IEEE в 1984 году: [5] но не заметил, что подал заявку на патент на алгоритм. Спенсер Томас из Университета Юты взял эту статью и реализовал compress в 1984 году, не осознавая, что на алгоритм LZW подана заявка на патент. Формат изображений GIF также включал в себя сжатие LZW, и позже Unisys потребовала гонорара за реализацию GIF. Джозеф М. Орост возглавил группу и работал с Томасом и др. для создания «окончательной» (4.0) версии сжать и опубликовать его как бесплатное программное обеспечение для группы USENET net.sources в 1985 году. Патент США 4 558 302 был выдан в 1985 году, и вот почему compress нельзя было использовать без выплаты роялти компании Sperry Research, которая в конечном итоге была объединена с Unisys.

Компресс потерял популярность у определенных групп пользователей, поскольку использует алгоритм LZW, на который распространяется патент Unisys – из-за этого gzip и bzip2 популярность в операционных системах на базе Linux возросла из-за их альтернативных алгоритмов. наряду с лучшим сжатием файлов. Compress , однако, сохранил свое присутствие в Unix и BSD , а также в системах сжать и Команды распаковки также были перенесены в операционную систему IBM i . [6]

Срок действия патента США на LZW истек в 2003 году, поэтому теперь он находится в свободном доступе в Соединенных Штатах. Срок действия всех патентов на LZW во всем мире также истек (см. «Формат графического обмена № Unisys и защита патентов LZW» ).

В предстоящей версии спецификации POSIX и Single Unix планируется, что в этих утилитах будет поддерживаться алгоритм DEFLATE, используемый в формате gzip .

Специальный формат вывода

[ редактировать ]

Выходной двоичный файл состоит из битовых групп. Каждая битовая группа состоит из кодов с фиксированным количеством бит (9-16). Каждая группа (кроме последней) должна быть выровнена по количеству бит, умноженному на 8, и дополнена нулями справа. Последняя группа должна быть выровнена по 8 и дополнена нулями. Более подробную информацию вы можете найти в выпуске ncompress .

Пример:

Вы хотите вывести десять 9-битных кодов, пять 10-битных кодов и тринадцать 11-битных кодов. Теперь у вас есть три группы битов, которые вы хотите вывести: 90 бит, 50 бит и 143 бита.
  • Тогда первая группа должна состоять из 90 бит данных + 54 нулевых бита заполнения, чтобы быть выровненной по 72 битам (9 бит × 8).
  • Вторая группа должна тогда состоять из 50 бит данных + 30 нулевых битов заполнения, чтобы быть выровненной по 80 битам (10 бит × 8).
  • Третья группа должна тогда состоять из 143 бит данных + 1 нулевой бит заполнения, чтобы быть выровнена по 8 битам (только 1 байт, поскольку это последняя группа в выходных данных).

На самом деле это ошибка. LZW не требует какого-либо выравнивания. Эта ошибка является частью оригинального UNIX-компрессора, ncompress, gzip и даже порта Windows. Он существует более 35 лет. Все файлы application/x-compress были созданы с использованием этой ошибки. Поэтому мы должны включить его в выходную спецификацию.

Некоторые реализации сжатия записывают случайные биты из неинициализированного буфера как биты выравнивания. Нет никакой гарантии, что биты выравнивания будут нулями. Таким образом, с точки зрения 100% совместимости декомпрессор должен просто игнорировать значения битов выравнивания.

Стандартизация и доступность

[ редактировать ]

compress был стандартизирован в спецификации X/Open CAE в 1994 году. [7] и далее в базовых спецификациях открытой группы, выпуск 6 и 7. [8] Стандартная база Linux не требует сжатия. [9]

compress часто не устанавливается по умолчанию в дистрибутивах Linux, но его можно установить из дополнительного пакета. [10] compress доступен для FreeBSD, OpenBSD, MINIX, Solaris и AIX.

сжатие разрешено для протокола «точка-точка» в RFC   1977 и для HTTP/1.1 в RFC   9110 , хотя он редко используется в современных развертываниях, поскольку доступен лучший вариант deflate/gzip.

Утилита Gunzip способна распаковывать файлы .Z. [11]

См. также

[ редактировать ]
  1. ^ Фрайзингер, Майк. «ncompress: проект, являющийся общественным достоянием» . Проверено 30 июля 2014 г. Compress — это быстрый и простой компрессор файлов LZW. Compress не имеет самой высокой степени сжатия, но это одна из самых быстрых программ для сжатия данных. Сжатие является фактическим стандартом сжатия файлов в сообществе UNIX.
  2. ^ Гомманс, Люк. «сжатие. В чем разница между gzip и compress?» . Обмен стеками Unix и Linux .
  3. ^ «Бенчмарк сжатия большого текста» . mattmahoney.net . сжать 4.3d....
  4. ^ «0001041: Поощряйте реализации включать улучшенные утилиты контрольной суммы целостности, сжатия и распаковки, если это возможно» . Система отслеживания ошибок Austin Group . Проверено 23 ноября 2017 г.
  5. ^ Уэлч, Терри А. (1984). «Техника высокопроизводительного сжатия данных» (PDF) . IEEE-компьютер . 17 (6): 8–19. дои : 10.1109/MC.1984.1659158 . S2CID   2055321 .
  6. ^ ИБМ . «Программирование Qshell в IBM System i версии 7.2» (PDF) . ИБМ . Проверено 05 сентября 2020 г.
  7. ^ Команды и утилиты спецификации X/Open CAE, выпуск 4, версия 2 (pdf), 1994, opengroup.org
  8. ^ compress – Справочник по оболочке и утилитам, Единая спецификация UNIX , версия 3 от Open Group.
  9. ^ Глава 17. Команды и утилиты в стандартной базовой базовой спецификации Linux 5.0.0, linuxfoundation.org
  10. ^ ncompress , pkgs.org
  11. ^ «GNU Gzip» . Операционная система GNU и движение за свободное программное обеспечение . 05 февраля 2023 г. Проверено 3 апреля 2024 г. Gunzip в настоящее время может распаковывать файлы, созданные с помощью gzip, zip, сжатия или упаковки. Определение входного формата происходит автоматически.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9de627b3e27eaf1293d9aa031c7ae816__1712154240
URL1:https://arc.ask3.ru/arc/aa/9d/16/9de627b3e27eaf1293d9aa031c7ae816.html
Заголовок, (Title) документа по адресу, URL1:
compress (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)