История развития архиваторов кратко

Обновлено: 02.07.2024

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

Простейшие архиваторы просто последовательно объединяют содержимое файлов в архив. Архив должен также содержать информацию об именах и длине оригинальных файлов для их восстановления. Большинство архиваторов также сохраняют метаданные файлов, предоставляемые операционной системой, такие, как время создания и права доступа.

Программа, создавая архив, обрабатывает как текстовые файлы, так и бинарные файлы. Первые всегда сжимаются в несколько раз (в зависимости от архиватора), тогда как сжатие бинарных файлов зависит от их характера. Одни бинарные файлы могут быть сжаты в десятки раз, сжатие же других может и вовсе не уменьшить занимаемый ими объем.

Сжатие данных обычно происходит значительно медленнее, чем обратная операция.

Характеристики архиваторов:

  • По степени сжатия.
  • По скорости сжатия.

Характеристики архиваторов — обратно зависимые величины. То есть, чем больше скорость сжатия, тем меньше степень сжатия, и наоборот.

Литература

  • Ватолин Д., Ратушняк А., Смирнов М., Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. — М .: ДИАЛОГ-МИФИ, 2002. — 384 с. — ISBN 5-86404-170-X

Ссылки

ALZip • Archive Utility • MacBinary • PowerArchiver • Squeez • StuffIt • WinAce • WinRAR • WinZip

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое "Архиватор" в других словарях:

Архиватор — программа сжатия текстовых, графических и иных файлов. См. также: Сжатие данных Финансовый словарь Финам … Финансовый словарь

архиватор — сущ., кол во синонимов: 3 • зиповщик (2) • паковщик (4) • программа (114) Словар … Словарь синонимов

архиватор — Программа, осуществляющая сжатие данных для компактного их хранения. Программа обрабатывает как текстовые файлы, так и графические файлы. Первые сжимаются, примерно, в 4 раза. Что же касается изображений, то здесь все зависит от их характера.… … Справочник технического переводчика

АРХИВАТОР — (упаковщик) программа, представляющая уплотнённую запись информации (файлов) на диске и предназначенная для компактного хранения различных данных и программ, а также для их переноса на др. компьютеры. При необходимости такая программа может… … Большая политехническая энциклопедия

архиватор — м. Программа, позволяющая уменьшить занимаемое в файле место для хранения имеющейся информации (в информатике). Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой

архиватор — комп. программа для архивации файлов, то есть компресии (сжатия) для уменьшения места на диске Новый словарь иностранных слов. by EdwART, , 2009 … Словарь иностранных слов русского языка

архиватор — архив атор, а … Русский орфографический словарь

архиватор — сл. программа для упаковки файлов. На сегодняшний день известны 20 из них : AIN, ARC, ARJ, BSA, BSZ, CHZ, HA, HAP, HPK, HYP, ICE, LHA, LIM, PAK, RAR, SQZ, TAR, UC2, ZIP, ZOO … Hacker's dictionary

Ark (архиватор) — У этого термина существуют и другие значения, см. Ark. Ark … Википедия

Xar (архиватор) — xar (eXtensible ARchive format) это формат сжатия данных и архивации файлов с открытым исходным кодом. Файл в этом формате обычно имеет расширение .xar и хранит в сжатом или несжатом виде один или несколько файлов, которые можно из него извлечь… … Википедия


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

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

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

В документационном обеспечении управления существуют два понятия – это документальный фонд и архивный фонд.

Документальный фонд объединяет в своем составе всю документацию: документы текущего управления, документы, отобранные для постоянного или длительного хранения, в том числе и переданные на хранение в Государственный Архивный фонд, собранные коллекции документов. Архивный фонд – все это являются частью документального фонда, не включает в себя документы с временными сроками хранения и имеет стабильный состав, который может только пополняться. Архивный фонд состоит из документов, имеющих политическое, экономическое, научное, социальное, культурное, историческое или иное значение.

В истории не придерживаются определенной даты зарождения архивного дела, так как все зависит от конкретной задачи исследований.

Первые документы начали появляться в России в X веке. Должностным лицом, следившим за сохранность этих документов, являлся ларник, который назывался архивистом. Первая опись была дотирована 1288 годом и вошла в Ипатьевскую летопись. Появление системы государственных учреждений – приказов, дала толчок к усовершенствованию ведомственного хранения документов. При каждом приказе находился архив, в котором содержались в необходимом порядке все документы. Однако настоящие описи документов, которые хранились в архивах, не проводились, в связи с этим нельзя судить о наилучшем развитии архивного дела. К этому моменту времени не было еще сложено полное представления в потребности архивного хранения, архивы часто перевозились в разные места, документы терялись. В те времена существовала также практика снятия копий с архивных документов. После уничтожения документов вследствие войны, плохих условий хранения, пожара по имеющимся копиям документов, можно было частично восстановить ведомственный архив.

16 июля 1712 года – особо важная дата в истории архивного хранения информации. В это время было издано постановление о создании первого в государстве Московского сенатского архива со всеми указаниями о ведении реестров документов, а также составлениями описей. Таким образом, данный сенатский архив является первым полноценным архивом ведомства. В дальнейшем стали создавать и другие архивы: уездные, губернские, ведомственные, архивы городского самоуправления. В XVIII-XIX веков росло количество исторических архивов, начались поиски пути наилучшей систематизации и сохранения документации, назначались сроки хранения документов.

Коллежскому асессору А.Д. Почаинову в 1720 году была поручена разработка и описание дипломатических дел и документов, хранившихся в Москве и Петербурге, он же стал архивариусом обоих архивохранилищ. И только в 1724 году оформился фактически и юридически первый исторический архив России, получивший штаты (6 сотрудников), печать и собственного руководителя (асессора П. Курбатова), Московский архив Коллегии иностранных дел. Тем самым было заложено начало формирования сети исторических архивов, принимающих на государственное хранение архивные фонды юридических и физических лиц – фондообразователей .

В 1728 году Сенат послал наказы губернаторам о целесообразности образовании объединенных губернских архивов и архивов городского самоуправления.

Указом Сената 1736 года предписывалось строить для архивов каменные здания с железными затворами и решетками на окнах, вдали от деревянных строений. Архивы было положено опечатывать, а вынос документов, как и по Судебнику 1550 года, был категорически запрещен.

В период XVIII - XIX веков стало расти количество исторических архивов, велся поиск наилучшей плана их систематизации - архивы появлялись, соединялись, переподчинялись, иногда уничтожались.

Выделение документов к уничтожению официально впервые было предпринято в 1829 году Николаем I. Император издал резолюцию и, таким образом, постановил провести первый в истории России анализ ценности документов. В последующие года министерства стали издавать соответствующие инструкции, на основе которых документы хранились и уничтожались.

В советское время немало важное внимание уделялось архивному делу. Предложение по созданию единой государственной системы архивного дела было поддержано 1 июня 1918 года. В это время был создан Единый Государственный Архивный Фонд, а также орган государственного управления – Главное управление архивным делом. Со временем пошел долгий процесс создания новых ведомственных и государственных архивов и, а также реорганизации всех старых архивных предприятий. Таким образом, началась создаваться разветвленная сеть, которая хранила документальные памятники Архивного Фонда страны.

Со временем, произошло много изменений в архивном деле, основным из которых можно назвать электронный архив. Процесс создания данного архива можно назвать следующим образом: документы проходят сканирование, создается конкретная база данных с системой поиска документов, затем графические образы документов, прошедших сканирование, закрепляются к карточкам поиска базы данных и проводится проверка введенных данных.

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

Большая история маленького архиватора Много-много лет назад жили-были компьютеры. В то время о них простой люд мало что знал, некоторые даже и не подозревали, что оные существуют, и если и подозревали, то уж точно понятия не имели, как "оно" работает.

Повторюсь, было это много-много лет назад, на самой заре появления компьютеров. Эти самые ПВМ в то время занимали огромнейшие площади, порядка нескольких комнат, стоили бюджетов целых городов, а по сравнению с современными компьютерами были на удивление медленны.
Если у сегодняшнего "продвинутого" подростка-геймера спросить, то, будьте уверены, он скажет, что это были скорее микрокалькуляторы, чем компьютеры. Возможно, именно так было на самом деле. На тех компьютерах работал ограниченный круг людей, причем "работа" их заключалась в том, чего остальные миллиарды людей не понимали и не даже не слышали. Там была сплошная математика. Алгоритмизация. Для чего все это делалось? Для нас с Вами, для будущего. Во имя прогресса.

Среди всего этого бесчисленного количества алгоритмов, порой очень даже полезных, в отдельную группу выделялись алгоритмы сжатия информации. Перед теми, кто их создавал в то время, такой проблемы не существовало. Хоть компьютеры и были ограничены в памяти и других ресурсах, но выполнялся там только сугубо определенный набор программ, под нужды которых машина и была построена (да, не собрана, а построена). Так что на первое время эти алгоритмы изучались в книжках, обсуждались в узком кругу специалистов, дорабатывались, но широко не применялись, а главное, что больше всего интересовало американцев, европейцев и "оных", так это то, что сжатие информации не приносило дохода от продажи. Следовательно, зачем себя утруждать внедрением.
Но вот пришла новая эра. Новая веха в истории развития компьютеров. IBM-совместимые компьютеры — PC. По всему миру "властвовал" ДОС — Дисковая Операционная Система (DOS — Disk Operating System). Чуть позже наступил 1991 год. И что же мы видим на рынке (в том месте, где крутятся и обитают деньги, — главная деталь любого дела в современном мире:))? По сравнению со своими прошлыми собратьями компьютеры не сильно изменились. Они уменьшились в размерах и немного "подкачали мускулы" (видимо, отдыхали перед решающим рывком в середине 90-х:)). Но ведь за это время прошло несколько десятилетий!

Итак, 1991. Развитие компьютеров достигло того максимума, с которого можно начинать "бег по прямой". Бег без остановок. Развитие софтверного рынка превышало темпы развития "железа". Вскоре программы и разработки стали занимать все больше и больше места, и уже не вмещались на популярные в то время 5.25" дискеты. На них можно было записать до 720 Кб информации. Дискеты форм-фактора 3.5" лишь только начали появляться и стоили достаточно дорого. В любом случае, они несли с собой лишь 1.44 Mb, разница, как видно, не такая уж и большая.
Что же делать? Можно увеличить аппаратные возможности, но для этого необходимо финансирование и дальнейшее развитие технологий. Можно попытаться заставить разработчиков производить программы в рамках, допустим, 1 Mb. Но это более чем глупо. А можно попытаться сжать файлы для уменьшения занимаемого места и освобождения дискового пространства. Именно по этому пути и решили пойти многие компании.
Одной из первых ощутила эту необходимость молодая американская программистская компания Nico Mark Computing Inc. В далеком 1991 году они выпустили в свет свою утилиту под названием Zip. Достоинством программы было то, что она сама занимала довольно мало места, корректно работала и имела несколько дополнительных сервисных функций, очень облегчавших работу. Программа умела упаковывать файлы любых форматов в формат Zip, при этом можно было сжимать как отдельные файлы, так и целые каталоги или их части. Благодаря тому, что утилита появилась одной из первых и к тому же была достаточно удачной разработкой, она завоевала большую популярность. Чуть позже появился целый ряд других архиваторов. Среди них наиболее удачными и популярными были LHA, RAR и ARJ. Так и правили бы они миром, если бы не "второе пришествие дос" в виде Windows:)).

1995 год. Microsoft Windows 95 спутала все карты. Новая операционная система принесла с собой ряд новшеств как в программном, так и в аппаратном функционировании. Глупо было не использовать новейшие перспективы "будущего". Наиболее точно почувствовали надвигающуюся бурю в компании WinZip Computing Inc. (авторы позже вышедшей версии Zip'а для Windows — WinZip) и автор версии RAR'а для Windows — Евгений Рошал. Так появились на свет WinZip и WinRAR. Просуществовали они в гордом одиночестве недолго, но в силу ряда причин достойной конкуренции в мире Windows им так никто и не составил. Да, позже появились и WinARJ и ряд других разработок, но. Время ушло. Было уже поздно что-то менять. Действовал Всемирный Закон Совместимости:).
Итак, конкурентов осталось два. Позже к ним присоединился еще один, слившийся с WinZip, вернее, ставший его дополнять — ZipMagic. Это отдельная утилитка, которая без непосредственного вмешательства пользователя и без загрузки менеджера файлов занимается распаковкой zip-архивов, причем после этого с ними можно работать, как с простыми файлами (довольно полезная некоторым юзерам штучка). WinRAR же пошел еще дальше. Последние его версии полностью поддерживают архивы rar и zip, и без каких-либо проблем управляются с архивами других форматов. Кроме полной поддержки архивов RAR и ZIP, в WinRAR реализована поддержка основных операций для архивов форматов CAB, ARJ, LZH, TAR, GZ, ACE и UUE, созданных с помощью других программ архивирования. К ним относятся: извлечение файлов, а также просмотр содержимого архива, комментариев и информации об архиве. Для работы с этими архивами не нужны никакие дополнительные программы. И это является несомненным плюсом этой утилиты. Поэтому, я думаю, разумно будет использовать на своей машине лишь один из архиваторов, причем, в силу разнообразия форматов, предпочтение должно отдать WinRAR.

С него и начнем. WinRAR — это 32-разрядная версия архиватора RAR для Windows, мощного средства создания архивов и управления ими. Существует несколько версий RAR для различных операционных систем, в частности, RAR для DOS, OS/2, Windows (32-разрядная), UNIX (Linux, BSD, SCO, Sparc и HP-UX) и BeOS. WinRAR обеспечивает, как я уже говорил,
— полную поддержку архивов RAR и ZIP;
— оригинальный высокоэффективный алгоритм сжатия данных;
— мультимедийный интерфейс (drag & drop);
— управление архивами других форматов (CAB, ARJ, LZH, TAR, GZ, ACE, UUE);
— создание самораспаковывающихся (SFX) обычных и многотомных архивов с помощью стандартного или дополнительных модулей SFX;
— поддержку непрерывных (solid) архивов, многотомных архивов; шифрование, добавление архивных комментариев (с поддержкой ESC-последовательностей ANSI), ведение протокола ошибок и пр.

Кроме WinRAR, в комплект поставки входит файл Rar.exe. Это также 32-разрядная версия RAR для Windows, но она поддерживает только интерфейс командной строки и работает в текстовом режиме. Обычно консольная версия RAR используется для вызова из пакетных файлов (BAT и CMD), для запуска из приглашения DOS и др. Она поддерживает больше команд и ключей в командной строке, чем WinRAR.
WinRAR можно использовать двумя способами: в режиме графической оболочки со стандартным интерфейсом Windows и в командной строке. Как и WinZIP, WinRAR полностью интегрируется со средой Windows, позволяя оперировать файлами и архивами с помощью Проводника Windows и контекстных меню.

Среди прочих полезных функций можно выделить возможность ведения протокола, "избранного" и log-файла. Оба формата — RAR и ZIP — поддерживают шифрование. Чтобы зашифровать файлы, необходимо указать пароль — до архивации в командной строке, в меню или прямо на закладке Дополнительно диалога "Имя и параметры архива". В форматах RAR и ZIP применяются оригинальные алгоритмы шифрования, однако шифрование в RAR значительно надежней. Если вам необходимо зашифровать важную информацию, то лучше выбрать формат архива RAR. Для обеспечения достаточного уровня безопасности используйте пароли длиной не менее 8 символов. Обратите внимание, что в паролях учитывается регистр букв. Помните, что если вы потеряете свой пароль, вам не удастся восстановить из архива зашифрованные файлы. Правда, шифрование не дает 100%-ной гарантии, что Ваша информация будет защищена от посторонних глаз.

Непрерывный архив — это архив RAR, упакованный специальным способом, при котором все сжимаемые файлы рассматриваются как один последовательный поток данных. Непрерывная архивация значительно увеличивает степень сжатия, особенно при добавлении значительного количества небольших похожих файлов. Однако, как и в любой бочке меда, здесь тоже есть своя ложка дегтя. Проявляется она в отсутствии некоторых возможностей, свойственных обычным архивам, а также в несколько большем времени на архивацию.

В обоих форматах поддерживаются шесть методов архивации: "Без сжатия", "Скоростной", "Быстрый", "Нормальный", "Хороший" и "Максимальный". "Максимальный" метод обеспечивает наиболее высокую степень сжатия, но с наименьшей скоростью. Напротив, "Скоростной" сжимает плохо, но очень быстро. Метод "Без сжатия" просто помещает файлы в архив без их упаковки. Если вы создаете архив для распространения или для долгого хранения, возможно, имеет смысл пожертвовать временем и выбрать метод "Максимальный" для получения наилучшего сжатия. Если же вы создаете ежедневную резервную копию данных, то, как правило, лучше использовать "Нормальный" метод.
Итак, какие же выводы? С 1991 года произошел довольно сильный скачок в мире IT. Не осталось на прежнем месте ничего. Как пример — архивация файлов. В наше время, правда, она приобрела несколько иной оттенок. "Второе дыхание" в программы архивации вселило развитие Internet. Ведь именно там, в Сети, на сегодняшний день самая большая востребованность сжатия информации. Широко применяется архивирование и при распространении софта на CD. В любом случае, желаете Вы того или нет, но представить сегодняшний компьютер без хорошего архиватора сложно. А раз так, то позвольте порекомендовать как один из числа многих WinRAR. Да, есть архиваторы, которые местами не то что хуже, а даже лучше, но сугубо мое личное мнение: WinRAR. А о вкусах, как известно, не спорят.

Компьютерная газета. Статья была опубликована в номере 34 за 2001 год в рубрике soft :: файлы

Целью дипломной работы является рассмотреть назначение и виды программ–архиваторов и выяснить, какие архиваторы на данный момент самые лучшие.
Задачи
Изучение понятии архивации, архивный файл, история создания архиваторов и сравнительный анализ программ архиваторов. Так-же рассмотрение программ архивации данных и методов архивации
Архиваторы - это специальные программы, которые позволяют работать с архивными файлами, т.е. запаковывать и распаковывать архивные файлы.
В практической части дипломной работы я хотел бы выяснить использование, каких программ – архиваторов на сегодняшний день более актуально.

Содержание

Введение 2
История развития теории сжатия информации 4
Сжатие не совершенно 10
Программы архиваторы 13
Понятие архивации 16
Существует два основных метода архивации 17
Типы архивных файлов 17
Архивный файл 18
Архиваторы MS DOS 19
ARJ 20
RAR 22
Архиваторы WINDOWS 26
Сравнительный анализ программ-архиваторов Windows 32
WinZip 32
WinRar 34
ARJ 35
Достоинства и недостатки программы ARJ 37
Другие архиваторы 40
Сравнительный анализ программ - архиваторов 45
Тестирование программ - архиваторов 47
Охрана труда при работе на персональном компьютере ТОИ р-45-084-01 52
Время регламентированных перерывов в зависимости от продолжительности рабочей смены, вида и категории трудовой деятельностис персональным компьютером 56
Правила организации рабочего места 60
Заключение 65
Список использованной литературы 66

Вложенные файлы: 1 файл

1111.doc

Введение

Я выбрал эту тему в связи с тем, что часто пользуюсь Интернетом и сталкиваюсь с информацией заархивированной различными программами - архиваторами. Поэтому я решил разобраться в том, что из себя, представляет такие программы, и как ими пользоваться.

В наше время пользователи ПК оперируют большими объемами информации. Для экономии места информацию необходимо архивировать. Для этого и созданы программы–архиваторы.

Целью дипломной работы является рассмотреть назначение и виды программ–архиваторов и выяснить, какие архиваторы на данный момент самые лучшие.

Изучение понятии архивации, архивный файл, история создания архиваторов и сравнительный анализ программ архиваторов. Так-же рассмотрение программ архивации данных и методов архивации

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

В практической части дипломной работы я хотел бы выяснить использование, каких программ – архиваторов на сегодняшний день более актуально.

Данная работа имеет большую теоретическую и практическую значимость, так как программы – архиваторы применяются во всех отраслях.

Таким образом, можно выделить следующие этапы данной работы:

- Назначение и характеристики архиваторов

- Алгоритмы сжатия данных

- Обзор и сравнительный анализ некоторых программ – архиваторов (ARJ, WinRar, WinZip)

История развития теории сжатия информации

В сороковых годах ученые, работающие в области информационных технологий, ясно поняли, что можно разработать такой способ хранения данных, при котором пространство будет расходоваться более экономно. Клод Шеннон, изучая нюансы различий между семантикой (semantics) (что некая сущность значит) и синтаксисом (syntax) (как некая сущность выражается), разработал большинство базовых понятий этой теории. Понимание того, что одно и то же значение (семантика) может быть реализовано различными способами (синтаксис), приводит к закономерному вопросу: "Какой способ выражения чего-либо является наиболее экономичным?" Поиск ответа на этот вопрос привел Шеннона к мысли об энтропии, которая, проще говоря, соотносится с количеством, содержащейся в файле полезной информации. Методы сжатия пытаются увеличивать энтропию файла, то есть уменьшать длину файла, сохраняя при этом всю информацию.

Однако Шеннон не был первым, кто задумывался о сущности информации и определении ее количества. Первый шаг на этом пути сделал в 1928 г. Хартли. Основной полученный им результат можно сформулировать примерно так: если в заданном множестве, содержащем N элементов, выделен некоторый элемент x, о котором известно лишь, что он принадлежит этому множеству, то, чтобы найти x, необходимо получить количество информации, равное log2 N. Эту формулу обычно называют формулой Хартли.

H = P1*log2(1 / P1) + . + Pn*log2(1 / Pn),

Более тридцати лет алгоритм сжатия Хаффмана и его варианты оставались наиболее популярными методами. Однако в 1977 два исследователя из Израиля предложили совершенно другой подход к этой проблеме. Абрахам Лемпел и Якоб Зив выдвинули идею формирования "словаря" общих последовательностей данных. При этом сжатие данных осуществляется за счет замены записей соответствующими кодами из словаря. Существуют два алгоритма, в настоящее время известные как LZ77 и LZ78. Они уже не требуют включения словаря данных в архив, так как если вы формируете ваш словарь определенным способом, программа декодирования может его восстанавливать непосредственно из ваших данных. К сожалению, LZ77 и LZ78 тратят много времени на создание эффективного словаря. Лемпел был приглашен фирмой Sperry для оказания им помощи в разработке способа наиболее эффективной упаковки данных на компьютерных лентах. В этой же фирме Терри Велч (Terry Welch) расширил алгоритм LZ78, создав новый вариант, широко известный, как LZW.

На работу Велча обратила внимание группа программистов Unix и использовала его алгоритм в их приложении LZW, получившем вполне естественное название compress. Они добавили несколько усовершенствований и опубликовали общедоступную версию этой программы в телеконференции Internet, благодаря чему многие пользователи смогли начать с ней работать.

Популярность алгоритма LZW в значительной степени связана с успехом программы compress. Исходный текст последней версии программы, осуществляющей как сжатие, так и декомпрессию, занимает всего 1200 строк. Ядро кода сжатия занимает не более сотни строк, а код декомпрессии не намного больше. Программисты считают, что это облегчает чтение и понимание алгоритма, а также позволяет адаптировать его для самых разных целей.

Алгоритмы LZ-стиля (включая LZW, LZ77, LZ78 и многие другие варианты) очень популярны везде, где требуется универсальное сжатие. LZW используется в стандарте модема V.42bis, протоколе передачи данных ZModem, форматах GIF, TIFF, ARC и других прикладных программах. Другие алгоритмы LZ используются в дисковых утилитах сжатия типа DoubleSpace и Stacker, графических форматах типа PNG, а также в универсальных утилитах архивирования и сжатия, включая ZIP, GZIP и LHA.

Помимо пользующихся большим вниманием алгоритмов, базирующихся на словаре, существуют и другие подходы. Алгоритм сжатия Хаффмана (Huffman), основанный на статистических колебаниях распределения некоторых значений байтов, лег в основу нескольких очень эффективных методов сжатия, известных, как арифметическое кодирование (arithmetic encoding), энтропийное кодирование (entropy coding) или Q-кодирование (Q-coding). Арифметическое кодирование улучшает сжатие Хаффмана двумя путями. Первое усовершенствование заключается в том, что оно не требует, чтобы выбранные коды были целым числом бит. В то время как сжатие Хаффмана могло выбирать двух- и четырехбитовые коды, программа арифметического кодирования может использовать код длиной 6,23 бит. (Что такое 0,23 бит - чисто философский вопрос, если Вас это заинтересовало, то в отдельном разделе Вы найдете другое объяснение арифметического кодирования.) Второе усовершенствование (которое может также использоваться в сжатии Хаффмана) заключается в том, что арифметическое кодирование использует более сложную статистику. Она не просто следит за частотой появления байта в файле, а оценивает частоту его появления в определенном контексте. Например, при использовании исходного алгоритма сжатия Хаффмана символ "u", встречающийся не слишком часто, мог бы получать довольно длинный код. Но в сложной программе арифметического кодирования символ "u", следующий за "q", будет закодирован очень компактно, так как высока вероятность того, что "u" следует сразу за "q". Комбинация этих двух усовершенствований приводит очень к эффективному сжатию.

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

Возможно, одним из наиболее существенных событий за последние несколько десятилетий в области алгоритмов сжатия стало появление патентов на программное обеспечение. С 1981 United States Patent and Trademark Office (USPTO) начал принимать заявки на патентование алгоритмов программного обеспечения. Многие из представленных патентов были по методам сжатия. Наиболее известные из них - патенты фирмы Unisys на алгоритм сжатия LZW и патенты фирмы IBM на арифметическое кодирование. К сожалению, первоначально работа по обработке заявок в USPTO была поставлена неважно. В результате чего разным людям предоставлялись различные патенты на один и тот же алгоритм (причем, иногда с почти идентичной формулировкой). Некоторые из этих патентов оспаривались в судебном порядке, но высокая стоимость судебного разбирательства исков резко снижает количество таких претендентов.

Один положительный результат введения патентования вряд ли приходится оспаривать. Патентование программного обеспечения спровоцировало появление огромного количества работ по разработке новых алгоритмов сжатия (большая часть которых быстро патентуется их изобретателями). Однако другой эффект был абсолютно отрицательный. Многие из алгоритмов сжатия использовались специфическим образом, например, как часть международных стандартов (V.42bis и JPEG). Кроме того, отдельные компании и пользователи скопировали общедоступный код (так, реализация compress LZW широко копировалась для самых разных целей). Финансовые штрафы за использование этих алгоритмов (в форме авторских отчислений к владельцам патента) отвращали от поддержки этих стандартов авторов условно-бесплатного и бесплатного программного обеспечения или бесплатных библиотек. Некоторые компании публично объявили о том, что они не будут требовать авторских отчислений за использование их запатентованных алгоритмов в бесплатном программном обеспечении. Однако так поступили далеко не все. Пока неясно, как этот конфликт отразится на индустрии бесплатного программного обеспечения и на патентном законодательстве. По крайней мере, одна организация, League for Programming Freedom, борется с патентами программного обеспечения и предпринимает активные шаги по их отмене.

Сжатие не совершенно

Алгоритмы сжатия полезны, но и они имеют свои ограничения. Наиболее очевидное ограничение состоит в том, что никакой из методов сжатия (или комбинация методов сжатия) не совершенен. Некоторые данные могут даже, как это ни парадоксально, в результате применения одной из техник сжатия увеличиваться в размерах. Внимательно смотрите на то, как работает алгоритм сжатия. Заявление о том, что алгоритм может уменьшить в размере файлы с самыми разными типами данных, требует особого внимания. Хорошо написанные программы сжатия помещают в начало выходных данных маркер, указывающий на то, каким методом данные были сжаты. Если данные сжать не удалось, маркер указывает, что данные "не сжаты". При этом размер файла увеличивается на размер маркера.

Иногда программы сжатия утверждают, что они сжимают практически "любой файл на 16 килобайт" или "сжимают каждый файл, по крайней мере, на 30 процентов". Любое такое утверждение просто неверно, хотя некоторые весьма престижные издания стали публиковать объявления о таких программах. В 1992 году фирма WEB Technologies объявила о выходе новой программы сжатия DataFiles/16. При этом фирма сделала ряд интересных заявлений. Прежде всего, она утверждала, что с "помощью неоднократного использования DataFiles/16 фактически любое количество данных может быть уплотнено до 1024 байт".

Идея неоднократного использования программы сжатия для получения наиболее эффективного сжатия крайне привлекательна. Во многих отношениях эта идея - программистский аналог идеи вечного двигателя; люди никак не могут поверить в то, что это не возможно. Ниже Вы найдете доказательство того, что этого быть, увы, не может. Не один WEB делал подобные заявления, просто его голос оказался наиболее громким. Практически, при вторичном использовании любой хорошей программы сжатия размер будет уменьшаться на пару процентов. После чего повторные попытки будут приводить к обратному эффекту. Так что обещания WEB, к сожалению, остаются лишь обещаниями.

Как показала практика, некоторые из утверждений о суперсжатии любых данных были чистейшей воды обманом: часть якобы сжимаемых данных просто копировалась в некий невидимый файл, то же, что оставалось, конечно, было меньшего размера. В то время как такая схема выглядит внушительной в распечатке каталога, ее едва ли можно квалифицировать как "сжатие". Как правило, такие профанации без шума исчезали, и никто так и не исследовал этих "совершенных" методов сжатия.

Некоторые из утверждений о совершенном сжатии на поверку оказывались простым мошенничеством. Одна из таких программ, сделав запрос на архивирование, удаляла файл с жесткого диска, увеличивая при этом архив лишь на сто байт, а деархиватор восстанавливал его, если только вы не слишком много работали с жестким диском между этими двумя событиями. Программа фактически хранила только имя файла и его расположение на жестком диске, а по завершении своей "работы" она удаляла этот файл с жесткого диска. Это приводило к правильному восстановлению файла каталога только в том случае, когда эта часть жесткого диска не использовалась многократно при работе с другими файлами. В противном же случае ваши данные просто исчезали. Чтобы выявить обман такого рода, необходимо провести следующий эксперимент: скопируйте несколько файлов на только что отформатированную дискету, используйте программу архивации файлов, а затем скопируйте архив на другую только что отформатированную дискету и попробуйте разархивировать полученный таким образом файл.

Читайте также: