Алгоритмы сжатия данных без потерь. Архивация файлов, назначение, виды и основные возможности архиваторов

В. КОРОТКОВ, программист

ШКОЛА НАЧИНАЮЩЕГО ПОЛЬЗОВАТЕЛЯ

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

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

Существуют разные форматы архивов: ZIP, ARJ, RAR, CAB, TAR, LZH и др. Когда создается архивный файл, ему присваивается расширение, совпадающее с форматом архива. Например, файл с именем MyDoc.zip - это архив формата ZIP. Формат влияет на эффективность сжатия файлов; к примеру, архив формата RAR занимает на диске меньше места, чем архив формата ZIP, содержащий те же самые исходные файлы. Кроме того, эффективность зависит от типа файлов, упаковываемых в архив. Файлы картинок, имеющие расширение BMP, документы Microsoft Word удается сжать в два-четыре раза, текстовые файлы - приблизительно в два раза. Несколько хуже подвержены сжатию исполняемые файлы (с расширением EXE), а графические файлы, имеющие расширение TIF, практически не сжимаются.

Почти все современные программы-архиваторы для Windows позволяют работать с архивами различных форматов. Принципы управления этими программами во многом схожи.

АРХИВАТОР WINRAR

Приемы работы с архиваторами удобно рассмотреть на примере программы WinRAR. Эта программа обладает большими возможностями. Постараемся перечислить те из них, которые могут пригодиться начинающему пользователю. WinRAR позволяет создавать архивы двух форматов - RAR и ZIP. Кроме того, он поддерживает основные операции (распаковка, просмотр содержимого) с архивами других форматов: CAB, ARJ, LZH, TAR, GZ, ACE, UUE.

ПРОСМОТР СОДЕРЖИМОГО АРХИВА

Запустите программу WinRAR, например, командой Пуск - Программы - WinRAR - WnRAR . При запуске отображается главное окно программы. Выделив в этом окне архивный файл и нажав кнопку Просмотр в панели инструментов, можно увидеть, что находится в архиве (1).

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

Чтобы добавить файлы, нажмите в панели инструментов кнопку Добавить, в появившемся диалоговом окневыберите нужные файлы и закройте диалоговое окно кнопкой OK .

Для удаления файлов, содержащихся в архиве, выделите их и нажмите в панели инструментов кнопку Удалить (или клавишу Delete на клавиатуре). Перед удалением файлов программа WinRAR запрашивает подтверждение.

СОЗДАНИЕ АРХИВА

Выделите нужные файлы. Группу файлов удобно выделять мышью, удерживая нажатой клавишу Ctrl. Нажатие Ctrl+A приводит к выделению всех файлов, отображаемых в окне. Можно также пользоваться соответствующими пунктами меню Файл . Нажмите кнопку Добавить в панели инструментов (или комбинацию клавиш Alt+A ). Появится окно Имя и параметры архива (2). В этом окне следует ввести полное имя создаваемого архивного файла. Для этого удобно воспользоваться диалоговым окном Поиск архива , которое вызывается нажатием кнопки Обзор. В окне Имя и параметры архива также можно выбрать формат создаваемого архива: RAR или ZIP. По умолчанию установлен формат RAR, и в большинстве случаев нет необходимости изменять его, так как он обеспечивает значительно лучшее сжатие, чем ZIP. Если вы собираетесь передать архив другому пользователю, поинтересуйтесь, есть ли у него архиватор, поддерживающий данный формат.

Когда нужно сохранить большой архив на дискетах, приходится создавать многотомный архив, т.е. состоящий из нескольких частей, называемых томами . Каждый том представляет собой отдельный файл. Если хотите создать такой архив, в поле Размер тома выберите опцию 1475500 (это размер трехдюймовой дискеты). Рекомендуется также установить флажок Информация для восстановления . Это нужно для того, чтобы архив можно было восстановить в случае повреждения данных, поскольку дискета - ненадежный носитель информации. Многотомный архив удобно создать на жестком диске, а впоследствии копировать тома на дискеты. Прежде чем создавать многотомный архив, учтите одно важное ограничение: он не допускает изменений, то есть файлы, содержащиеся в нем, нельзя изменять или удалять, нельзя также их добавлять. Если пользователь все-таки пытается внести изменения в многотомный архив, на экран выводится окно, сообщающее о невозможности данной операции.

Если вы собираетесь передать архив другому пользователю, но не уверены, что у него есть соответствующий архиватор, можно создать самораспаковывающийся архив. Для этого нужно установить флажок создать SFX archive (SFX - от англ. SelF eXtractor). Такой архив представляет собой исполняемый файл, он имеет расширение.EXE, и архиватор для его распаковки не нужен. Самораспаковывающийся архив занимает на диске больше места по сравнению с обычным. Многотомный архив также может быть самораспаковывающимся.

После того как вы установили необходимые параметры на вкладке Общие, желательно перейти на вкладку Файлы (3).

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

Нажмите кнопку ОК, ипрограмма приступит к созданию архива. На экране при этом появляется специальный индикатор, информирующий пользователя о процессе архивации.

РАСПАКОВКА АРХИВА

Архив можно распаковать весь целиком, а можно - только отдельные файлы, содержащиеся в нем. В первом случае надо выделить заархивированный файл, во втором - перейти в режим просмотра архива с помощью кнопки Просмотр и затем выделить нужные файлы. Нажмите в панели инструментов кнопку Извлечь в (или комбинацию клавиш Alt+E ), появится окно Путь и параметры извлечения (4), в нем при необходимости можно указать папку, в которой будут сохранены распакованные файлы. По умолчанию задана папка, в которой находится архив. Щелкните по кнопке OK , и программа начнет разархивировать файлы.

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

Но как быть, если вам нужно просмотреть содержимое SFX-архива или извлечь не все файлы, а только часть из них? WinRAR позволяет работать с самораспаковывающимся архивом так же, как и с любым другим.

Распаковывать многотомный архив будет удобнее, если предварительно скопировать все тома на жесткий диск в одну папку. Если этого не сделать, то, закончив распаковывать очередной том, архиватор будет выводить на экран диалоговое окно с требованием указать полное имя следующего тома. Начинать распаковку нужно с первого тома, его имя (если это архив формата RAR) - либо "имя_тома.part01.rar", либо "имя_тома.r00". Первый том многотомного SFX-архива имеет расширение.EXE.

МАСТЕР

Режим мастера (6) появился в WinRAR 3-й версии. Мастер вызывается одноименной кнопкой в панели инструментов. Он предназначен для начинающих пользователей и позволяет предельно упростить выполнение основных операций архивирования и распаковки с помощью простой пошаговой процедуры.

АРХИВАТОР WINZIP

Еще одна популярная программа-архиватор для Windows. Ориентирована в первую очередь на работу с архивами в формате ZIP. Главное окно программы напоминает окно WinRAR, но приемы работы с этими двумя архиваторами несколько отличаются.

ПРОСМОТР АРХИВА.
ИЗВЛЕЧЕНИЕ И УДАЛЕНИЕ ФАЙЛОВ

Вначале архив нужно открыть, для этого нажмите кнопку Open в панели инструментов. Можно также воспользоваться комбинацией клавиш Ctrl+O. В появившемся диалоге выберите архивный файл и нажмите кнопку OK . Список содержимого архива отобразится в главном окне (7).

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

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

Перед распаковкой архива решите, собираетесь ли вы извлекать все файлы или только некоторые из них. Во втором случае нужные файлы следует выделить. В панели инструментов нажмите кнопку Extract , появится диалоговое окно (8), в котором нужно указать папку для размещения извлеченных из архива объектов. Закройте это окно, нажав в нем кнопку Extract.

СОЗДАНИЕ АРХИВА В WINZIP

Скопируйте все файлы, подлежащие архивированию, в отдельную папку на жестком диске. Щелкните по кнопке New , откроется диалоговое окно New archive (9).

Выберите папку, в которую будет помещен архивный файл. Если вам нужен многотомный архив, учтите, что он может быть сформирован только на дискетах - в отличие от WinRAR WinZIP не позволяет сохранить такой архив на жестком диске. В поле Имя файла введите имя архива. Проследите, чтобы был установлен флажок Add dialog (это нужно для дальнейшего определения архивируемых файлов). Закройте окно кнопкой OK .

В следующем диалоговом окне пользователь должен выбрать папку, содержащую исходные файлы. В поле Имя файла по умолчанию присутствует маска "*.*". Это означает, что в архив будут включены все файлы, содержащиеся в выбранной папке. Если такой вариант вас не устраивает, выберите нужные файлы щелчками мыши при нажатой клавише Ctrl .

Если вы создаете многотомный архив, раскройте список Multiple disk spanning (Разбиение на несколько дисков) и отметьте позицию Automatic (Автоматическое). WinZIP присваивает всем томам одно и то же имя, поэтому на этикетках дискет желательно проставить номера.

Нажмите кнопку Add в диалоговом окне. В главном окне программы отобразится содержимое только что созданного архива (если это не многотомный архив). Когда создается многотомный архив, программа время от времени выводит на экран окно (10), требуя заменить дискету в дисководе. Если на дискете уже есть какие-то файлы, которые вы хотите удалить, прежде чем записывать очередной том, установите флажок Erase any existing files on the new disk before continuing . Замените дискету и нажмите OK .

Обычный архивный файл с расширением ZIP можно преобразовать в самораспаковывающийся архив. Чтобы сделать это, откройте архив в главном окне программы. Войдите в меню Actions и выполните команду Make .exe file , после чего появится диалоговое окно (11). Поле Default "UnZip To" folder (папка для распаковки, выбираемая по умолчанию) заполнять необязательно. Если оставить его пустым, будет выбрана папка C:\Windows\Temp . Щелкните по кнопке OK , программа создаст SFX-архив и предложит протестировать его. Под тестированием здесь подразумевается простая распаковка: вы можете проверить только что созданный архив "в действии". Если хотите выполнить такую проверку, выберите Да, появится еще одно окно, в котором следует нажать кнопку Unzip . В противном случае щелкните по кнопке Нет .

ИНТЕГРАЦИЯ С ПРОВОДНИКОМ WINDOWS

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

Extract files - распаковка архива в произвольную папку;

Extract to имя_папки\ - в текущей папке будет задана папка с данным именем, и в нее распакуется содержимое архива.

Чтобы создать архив, в контекстном меню файла (или папки, или группы файлов) выберите один из следующих пунктов:

Add to archive... - упаковка файлов в архив с произвольным именем;

Add to "имя_архива.rar" - создание в текущей папке архива формата RAR с данным именем.

ПОДДЕРЖКА DRAG-AND-DROP

Абсолютное большинство программ для Windows поддерживают технологию Drag-and-Drop (перенести и положить), и архиваторы - не исключение. Чтобы убедиться в этом, проделайте "эксперимент". Запустите архиватор в режиме просмотра архива. Откройте окно Мой компьютер , а в нем - какую-нибудь папку, например Мои документы . Разместите оба окна так, чтобы каждое из них занимало примерно половину экрана и не закрывало другое. Поместите курсор на значок одного из файлов, содержащихся в архиве, нажмите левую кнопку мыши и, не отпуская ее, переместите курсор в окно Мой компьютер . Теперь отпустите кнопку. Файл, извлеченный из архива, появится в папке, содержимое которой показано в окне Мой компьютер . Аналогичным образом "перетащите" какой-нибудь файл из окна Мой компьютер в окно архиватора. Архиватор отобразит диалоговое окно, спрашивая, действительно ли вы собираетесь изменить содержимое архива. Если ответите утвердительно, в архив будет добавлен новый файл.

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

Архивация файлов, назначение, виды и основные возможности архиваторов.

Алгоритмы и методы архивации

Существуют различные алгоритмы архивации данных без потери информации, при которых при разархивации данные будут восстановлены в исходном виде.

Самый простой алгоритм сжатия данных (running) основан на замене повторяющихся битов (в тексте может иметься последовательность одинаковых символов, в графическом файле − закрашенная одним цветом область и так далее). Например , в тексте подряд идут 10 пробелов, которые кодируются 10-ю байтами. При архивации они заменяются 3-мя байтами (первый байт − кодирует заменяемый символ; второй байт − специальный байт «флажка» архивации, который указывает на необходимость развернуть первый байт в последовательность байтов; третий байт указывает количество повторяющихся байтов).

Алгоритм кодирования одинаковых последовательностей символов (LZW) ищет в текстовых файлах одинаковые слова, а в графических − одинаковые «узоры». Каждый такой фрагмент файла представляется определенным кодом (последовательностью бит) и в процессе архивации при повторных появлениях заменяется ссылкой на первичный код.

Существуют различные методы архивации файлов (ZIP, RAR, ARJ и др.), которые используют вышеописанные и другие алгоритмы архивации.

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


Программы-архиваторы.

Зачем нужны архиваторы; \

Какой архиватор лучше;

Архиватор ZIP:

Архивирование в Total Commander;

Архиватор WinRar;

Архиватор 7-Zip.

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

Причем в архивный файл могут быть сгруппированы как один, так и несколько исходных файлов. При разархивации происходит востановление файла (файлов) в их исходном виде.
Архивные файлы удобнее хранить, передавать по сети, в почтовых рассылках.

Часто задают вопрос: Какой архиватор лучше? Существует достаточно большое количество программ-архиваторов, наиболее популярные из них ARJ, ZIP, RAR, 7-Zip (произносится севэн зип). Если говорить о двух архиваторах - лидерах сервиса - из их большого семейства, то это на мой взгляд

WinRar - платная рограмма, вернее 30 дней бесплатно на тестирование, а потом надо покупать ключ)


7-Zip
- бесплатное программное обеспечение.

У программы WinRar по моему мнению, большое преимущество в том, что она появилась раньше, народ ее освоил и переучиваться особого резона нет.
И это действительно так, если особых требований к сжатию файлов нет. Но если нужно максимально сжать файлы, то эксперимент показывает, что лучше это сделает 7-Zip , причем это касается и загрузочных файлов и музыки и видио,

Архиватор ZIP , пожалуй, самый распространенный, он поддерживается в Windows, без использования специального программного обеспечения, достаточно щелкнуть по выбранному файлу правой кнопкоймыши и в выбранном пункте «Отправить» выбрать следующий пункт «Сжатая ZIP-папка». Естественно, надо проследить, какой путь был указан, т.е. куда вы отправили архив. Ваш файл окажется в сжатом виде в папке с тем же названием, что и сам файл.

Для извлечения файла из архива необходимо щелкнуть правой клавишей по архиву и в контекстном меню выбрать последовательно «Извлечь все» и для конкретного файла «Извлечь». Вы получите папку с файлом в исходном виде.
Так работают архиваторы, которые называют файловыми. Есть еще и программные архиваторы. Они также создают сжатые архивы, с той разницей, что для извлечения исходных файлов не требуется предварительная распаковка, при запуске архивы распаковываются автоматически. Поскольку это уже исполняемые (программные) файлы, они имеют расширение *.exe.

Если на вашем компьютере установлен файл-менеджер Total Commander, то вы приобретаете достаточно широкие возможности по выбору архиваторов и их настроек, что показано на рисунках ниже:


Допустим, мы хотим сделать архив файла с названием «Заявление». Выбрав этот файл на правой панели (выделен синим цветом), в верхнем меню окна выбираем вкладку «Файл», затем опцию «Упаковать».

Появляется окно «Упаковка файлов» с предложением целого ряда архиваторов, их настроек, выбора опций при архивировании.
При распаковке (извлечении) файла в той же вкладке «Файл» выбираем опцию «Распаковать».

Появляется окно «Распаковка файлов» с предложением пути, куда будет помещен распакованный файл и настроек при осуществлении операции.


Если согласны с предлагаемым размещением программы, жмем "Install". Если нет - выбираем путь, по которому она будет размещена после установки. В конце установки появляется окно, в котором выберем опцию "Finish".


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

Впрочем, значок может иметь и другой вид, например:

Возможно это зависит от версии исходного файла.

После запуска открывается основное окно программы. Выберем папку \Temp\ на локальном диске D: и проделаем процедуры разархивации и архивации файла "Заявление". (Кстати, в предлагаемом программой интерфейсе выбор диска производится значком "стрелка вверх", на рисунке слева от поля, в котором указан путь D:\Temp\).

Для того, чтобы извлечь файл из архива, выберем файл (в нашем примере "Заявление.zip"), затем выберем опцию "Извлечь" (синий минус) из меню предложенных в верхней части инструментов. Появится окно с предлагаемыми опциями извлечения

Если мы согласны с предложенными опциями и путем размещения файла, жмем ОК, если нет - выбираем нужные опции и путь.

Чтобы положить какой-либо файл в архив, в предложенном выше рабочем окне архиватора необходимо выбрать опцию "Добавить" (зеленый плюс).
Тогда появится окно с выбором опций архивирования. Также выбираем файл, который хотим положить в архив и выбираем путь, где мы хотим его видеть. В нашем случае мы опять тренируемся с файлом "Заявление". Для начала оставим предлагаемые опции таковыми, какими их предлагает архиватор. Ну а потом, с опытом - выбираем свои, если что-то не устраивает.


Архивация файлов, назначение, виды и основные возможности архиваторов.

Характерной особенностью большинства «классических» типов данных, с которыми традиционно работают люди, является определенная избыточность. Степень избыточности зависит от типа данных. Кроме того, степень избыточности данных зависит от принятой системы кодирования. Так, например, можно сказать, что кодирование текстовой информации средствами русского языка (с использованием русской азбуки) дает в среднем избыточность на 20-30% больше, чем кодирование адекватной информации средствами английского языка.

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

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

В зависимости от того, в каком объекте размещены данные, подвергаемые сжатию, различают :

Уплотнение (архивацию) файлов;

Уплотнение (архивацию) папок;

Уплотнение дисков.

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

Характерными форматами сжатия с потерей информации являются:

JPG для графических данных;

MPG для видеоданных;

М РЗ для звуковых данных.

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

Характерными форматами сжатия без потери информации являютс я:

GIF, TIP,. PCX и многие другие для графических данных;

AVI для видеоданных;

ZIP, .ARJ, .BAR, .LZH, .LH, .CAB и многие другие для любых типов данных.

«Классическими» форматами сжатия данных, широко используемыми в повседневной работе с компьютером, являются форматы.ZIP и.ARJ. В последнее время к ним добавился популярный формат.RAR.

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

Извлечение файлов из архивов;

Создание новых архивов;

Добавление файлов в имеющийся архив;

Создание самораспаковывающихся архивов;

Создание распределенных архивов на носителях малой емкости;

Тестирование целостности структуры архивов;

Полное или частичное восстановление поврежденных архивов;

Защита архивов от просмотра и несанкционированной модификации.

Самораспаковывающиеся архивы

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

Распределенные архивы.

Некоторые диспетчеры (например WinZip) выполняют разбиение сразу на гибкие диски, а некоторые (например WinRAR и WinArj) позволяют выполнить предварительное разбиение архива на фрагменты заданного размера на жестком диске. Впоследствии их можно перенести на внешние носители путем копирования.

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

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

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

Просмотр файлов различных форматов без извлечения их из архива;

Поиск файлов и данных внутри архивов;

Установку программ из архивов без предварительной распаковки;

Проверку отсутствия компьютерных вирусов в архиве до его распаковки;

Криптографическую защиту архивной информации;

Декодирование сообщений электронной почты;

- «прозрачное» уплотнение исполнимых файлов.ЕХЕ и.DLL;

Создание самораспаковывающихся многотомных архивов;

Выбор или настройку коэффициента сжатия информации.

Тема 2.1 Работа с файлами

1. Архиваторы и архивация.

2. Просмотр архивного файла в формате ZIP .

Проблема сжатия данных существует давно, с момента появления компьютеров. Целью упаковки файлов обычно являются обеспечение более компактного размещения информации на диске, сокращение времени и соответственно стоимости передачи информации по каналам связи в компьютерных сетях. Кроме того, упаковка в один архивный файл группы файлов существенно упрощает их перенос с одного компьютера на другой, сокращает время копирования файлов на диски, позволяет защитить информацию от несанкционированного доступа. Эти и другие вопросы решаемы при помощи мощных и функциональных программ-архиваторов, разработчики которых предлагают пользователям различные методы для обработки данных. Причем, архиваторы могут быть как бесплатными, так и коммерческими, а их выбор зависит от требований, которые пользователь предъявляет к программе по работе с заданными файлами. Из числа наиболее популярных программ можно выделить: WinRAR (коммерческая версия) и 7-Zip (бесплатная программа).

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


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

Научимся создавать архивы с помощью программы WinRar.


После загрузки программы мы видим стандартное окно с понятным интерфейсом.

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

Просмотр – показывает содержимое файла.

Удалить – удаляет выбранный файл / группу файлов.

Исправить – восстанавливает испорченный архив.

Оценить – даёт приближенную оценку к архивации выбранного файла /группы файлов.

Извлечь в – позволяет указать путь разархивации.

Тест – тестирует выбранный архив на наличие ошибок.

Для архивации файла или группы файлов, выделяем их и щелкаем по кнопке добавить.


При создании архива необходимо задать имя архива, если архив создаётся в текущей папке


или место его сохранения.


При создании архива можно выбрать формат архивации RAR или ZIP

При создании архива можно выбрать метод сжатия

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

Многотомные архивы.

Е сли исходный файл, предназначенный для передачи через Интернет, имеет очень большой размер, то передать его через сеть по этой причине, бывает просто невозможно. Чтобы это стало возможным, такой файл во время сжатия «нарезается» на фрагменты, каждый из которых называется архивным томом. В итоге, получается, допустим,10 томов, которые закачиваются по очереди. Такой архив называется многотомным. При распаковке первого фрагмента все остальные распаковываются автоматически, и пользователь получает исходный файл в своём первоначальном виде.


Самораспаковывающийся архив.

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


Есть возможность установить пароль.

Для извлечения файлов из архива воспользуемся кнопкой «извлечь», укажем путь и параметры для извлечения.


Практическая работа:

1. Откройте папку Мой архив.

2. Заархивируйте каждый файл

3. Определите степень сжатия

4. Исследуйте изменение объема исходных файлов и полученных архивов.

5. Запишите результаты в таблицу.

№ п/п

Имя файла

Тип файла

Исходный размер

Размер архивного файла

Степень сжатия

Вывод о степени сжатия файлов разного типа --__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________


1. Что имеется в виду под архивацией файлов?

A) сжатое хранение информации на диске или на дискете*

B) хранение информации о файле в сжатом виде

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

D) хранение информации об операционной системе в сжатом виде

E) запись не используемых файлов на CD - диск

2. Архивация – это …

A) шифрование, добавление архивных комментариев и ведение протоколов

B) сжатие одного или более файлов с целью экономии памяти и размещения сжатых данных в одном архивном файле*

C) процесс, позволяющий создать резервные копии наиболее важных файлов на случай непредвиденных ситуации

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

E) запись не используемых файлов на CD- диск

3. Программой архиватором называют:

A) программу для уменьшения информационного объема (сжатия) файлов;*

B) программу резервного копирования файлов;

C) интерпретатор;

D) транслятор;

E) систему управления базами данных.

4. Операция архивация - это есть:

A ) Удаление файлов.

B) Создание базы данных.

C) Трансляция программы в машинный код.

D ) Проверка содержимого диска на вирус.

E) Сжатие папок и файлов.*

5. Какие программы используют для уменьшения объема файлов?

A) программы-архиваторы*

B) программы резервного копирования файлов

C) программы-интерпретаторы

D) программы-трансляторы

E) программы-компиляторы

6. Что такое архив?

A) набор данных определенной длины, имеющий имя, дату создания, дату изменения и последнего использования

B) инфицированный файл

C) системный файл

D) набор файлов, папок и других данных, сжатых и сохраненных в одном файле *

E) корневой каталог

7. Архивный файл представляет собой …

A) файл, которым долго не пользовались

B) файл, защищенный от копирования

C) файл, упакованный с помощью архиватора*

D) файл, защищенный от несанкционированного доступа

E) файл, который имеет большой размер

8. Сжатый (архивированный) файл отличается от исходного тем, что …

A) доступ к нему занимает меньше времени

B) он легче защищается от вирусов

C) он легче защищается от несанкционированного доступа

D) он занимает меньше места *

E) им нельзя пользоваться

9. Укажите программы-архиваторы.

A) WinZip, WinRar *

B) WordArt, Norton Commander

C) Word, PowerPoint

D) Excel, Internet Explorer

E) DrWeb, Aidstest, AVP

10. Программа WinRar предназначена…

A) для работы папками

B) для работы с файлами

D) для сжатия файлов*

E) для работы с базой данных

11. Программа WinZip предназначена…

A) для работы папками

B) для работы с файлами

C) для антивирусной обработки

D) для сжатия файлов*

E) для работы с базой данных

12. Чтобы архивировать файл или папку, надо …

A) щелкнуть на выбранном объекте правой кнопкой мыши, в контекстном меню выбрать команду Добавить в архив – выбрать нужные параметры - нажать ОК*

B) щелкнуть на выбранном объекте левой кнопкой мыши, в Главном меню выбрать команду Выполнить – заполнить нужные параметры - нажать ОК

C) выделить объект, в меню Файл выбрать команду Добавить в архив – выбрать нужные параметры - нажать ОК

D) выделить объект, в меню Сервис выбрать команду Добавить в архив – выбрать нужные параметры - нажать ОК

E) щелкнуть на выбранном объекте правой кнопкой мыши, в контекстном меню выбрать команду Создать ярлык

13. Какое из названных действий необходимо произвести со сжатым файлом перед началом работы?

A) переформатировать

B) сделать копию в текущем каталоге

C) распаковать*

D) запустить на выполнение

E) отправить в сжатую Zip -папку

14. Чтобы распаковать архив, надо выполнить команду...

A) извлечь*

B) достать

C) найти

D) выбрать

E) вставить

15. Расширение заархивированных файлов в операционной системе Windows :

A) TXT

B) DOC

С ) ARJ, ZIP, RAR *

D) EXE

Е ) ВМР

16. С использованием архиватора Arj лучше всего сжимаются:

A) тексты;*

B) рисунки;

C) фотографии;

D) видеофильмы;

E) игровые программы.

1 7. Что не является архиватором?

A) WinRar

B) Rat *

C) LZEXE

D) WinZip

E) DriveSpace

18. Самый эффективный способ сжатия графической информации (цветное фото) используется в файлах...

A) bmp

B) gif

C) tiff

D) png

E) jpeg *

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

A) Самораспаковывающиеся архивы

B) Структурный архив

C) Программный архив

D) Распределённый архив*

E) Файловый архив

20. Файловый архиватор позволяет

C) упаковывать один или несколько файлов в единый архивный файл*

21. Характерными форматами сжатия с потерей информации являются:

A) .JPЕG, .МPG, .МРЗ*

B) .ЕХЕ, . BMP , .DOC

C) .МPG , .МРЗ, .ЕХЕ, . BMP

D) .BMP , .DOC , .BAS , .МРЗ

E) .CUR , .JP ЕG , .GIF , .DOC

22. Характерными форматами сжатия без потери информации являются:

A) .GIF, .TIF, .PCX, .AVI*

B) .ЕХЕ, .DOC, . МРЗ

C) .МPG, .МР3, .ЕХЕ, .BMP

D) .BMP, .DOC, .BAS, .МРЗ

E) .CUR, .JPЕG, .GIF, .DOC

23. Весь спектр существующих сегодня архиваторов можно разделить на три группы, которые условно называются

A) файловыми, программными и дисковыми*

B) распределёнными, программными, самораспаковывающиеся

C) файловыми, дисковыми, распределёнными

D) самораспаковывающиеся, дисковыми, программными

E) структурными, программными, дисковыми

2 4. Программные архиваторы позволяют

A) упаковывать один или несколько файлов в единый архивный файл

B) чисто программным способом увеличить почти вдвое доступное дисковое пространство

C) распаковать файлы.GIF, .JPЕG – для графических данных

D) изменить содержания данных с потерей информации

E) упаковать за один прием один-единственный файл – исполняемую программу ЕХЕ-типа*

2 5. Дисковые архиваторы позволяют

A) упаковать за один прием один-единственный файл – исполняемую программу ЕХЕ-типа

B) упаковывать один или несколько файлов в единый архивный файл

C) чисто программным способом увеличить почти вдвое доступное дисковое пространство*

D) распаковать файлы.GIF, .JPЕG – для графических данных

E) изменить содержания данных с потерей информации

2 6 . Степень сжатия файла зависит:

A) только от типа файла;

B) только от программы-архиватора;

C) от типа файла и программы-архиватора*;

D) от производительности компьютера;

E) от объема оперативной памяти персонального компьютера, на котором производится архивация файла.

27. В процессе сжатия растровых графических файлов по алгоритму JPЕG его информационный объем обычно уменьшается в…

A) 2-3 раза

B) 10-15 раз*

C) в 100 раз

D) в 1000 раз

E) не изменяется

28. Процесс восстановления файлов из архивов точно в таком виде, какой они имели до помещения в архив:

A) восстановление

B) архивация

C) резервирование

D) самораспаковка

E) разархивация*

29. Архив, к которому присоединена программа архивации:

A) сумматор

B) архиватор

C) самораспаковывающий*

D) резерватор

E) упаковщик

30. Непрерывным архивом называют:

A) совокупность нескольких файлов в одном архиве;

B) архивный файл большого объема;

C) архивный файл, содержащий файлы с одинаковыми расширениями*;

D) файл, заархивированный в нескольких архивных файлах;

E) произвольный набор архивных файлов.

31. Метод Хафмана архивации текстовых файлов основан на том, что:

A) в сообщениях, кодирующих текст, часто встречаются несколько подряд идущих одинаковых байтов;

D) в обычном тексте частоты появления разных символов различны*;

32. Метод Лемпеля - Зива архивации текстовых файлов основан на том, что:

A) в сообщениях, кодирующих текст, часто встречаются несколько подряд идущих одинаковых байтов*;

B) текстовые сообщения обладают значительной избыточностью;

C) текстовые сообщения допускают упаковку с потерей информации;

D) в обычном тексте частоты появления разных символов различны;

E) текстовые сообщения не обладают особой избыточностью.

33. В основе методов архивации изображений без потери информации лежит:

A) идея учета того, что частоты появления разных байтов, кодирующих рисунок, различны;

B) идея учета числа повторений одинаковых байтов, кодирующих рисунок;*

C) идея учета особенностей человеческого восприятия изображений;

D) идея учета малой избыточности кодируемого рисунка;

E) идея учета значительной избыточности кодируемого рисунка.

Н. В. Литвинова, МОУ СОШ №3, Красный Кут, Саратовская область

  • Перевод

Часть первая – историческая .

Введение

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

История

Иерархия алгоритмов:

Хотя сжатие данных получило широкое распространение вместе с интернетом и после изобретения алгоритмов Лемпелем и Зивом (алгоритмы LZ), можно привести несколько более ранних примеров сжатия. Морзе, изобретая свой код в 1838 году, разумно назначил самым часто используемым буквам в английском языке, “e” и “t”, самые короткие последовательности (точка и тире соотв.). Вскоре после появления мейнфреймов в 1949 году был придуман алгоритм Шеннона - Фано, который назначал символам в блоке данных коды, основываясь на вероятности их появления в блоке. Вероятность появления символа в блоке была обратно пропорциональна длине кода, что позволяло сжать представление данных.
Дэвид Хаффман был студентом в классе у Роберта Фано и в качестве учебной работы выбрал поиск улучшенного метода бинарного кодирования данных. В результате ему удалось улучшить алгоритм Шеннона-Фано.
Ранние версии алгоритмов Шеннона-Фано и Хаффмана использовали заранее определённые коды. Позже для этого стали использовать коды, созданные динамически на основе данных, предназначаемых для сжатия. В 1977 году Лемпель и Зив опубликовали свой алгоритм LZ77, основанный на использования динамически создаваемого словаря (его ещё называют «скользящим окном»). В 78 году они опубликовали алгоритм LZ78, который сначала парсит данные и создаёт словарь, вместо того, чтобы создавать его динамически.

Проблемы с правами

Алгоритмы LZ77 и LZ78 получили большую популярность и вызвали волну улучшателей, из которых до наших дней дожили DEFLATE, LZMA и LZX. Большинство популярных алгоритмов основаны на LZ77, потому что производный от LZ78 алгоритм LZW был запатентован компанией Unisys в 1984 году, после чего они начали троллить всех и каждого, включая даже случаи использования изображений в формате GIF. В это время на UNIX использовали вариацию алгоритма LZW под названием LZC, и из-за проблем с правами их использование пришлось сворачивать. Предпочтение отдали алгоритму DEFLATE (gzip) и преобразованию Барроуза - Уилера, BWT (bzip2). Что было и к лучшему, так как эти алгоритмы почти всегда превосходят по сжатию LZW.
К 2003 году срок патента истёк, но поезд уже ушёл и алгоритм LZW сохранился, пожалуй, только в файлах GIF. Доминирующими являются алгоритмы на основе LZ77.
В 1993 году была ещё одна битва патентов – когда компания Stac Electronics обнаружила, что разработанный ею алгоритм LZS используется компанией Microsoft в программе для сжатия дисков, поставлявшейся с MS-DOS 6.0. Stac Electronics подала в суд и им удалось выиграть дело, в результате чего они получили более $100 миллионов.

Рост популярности Deflate

Большие корпорации использовали алгоритмы сжатия для хранения всё увеличивавшихся массивов данных, но истинное распространение алгоритмов произошло с рождением интернета в конце 80-х. Пропускная способность каналов была чрезвычайно узкой. Для сжатия данных, передаваемых по сети, были придуманы форматы ZIP, GIF и PNG.
Том Хендерсон придумал и выпустил первый коммерчески успешный архиватор ARC в 1985 году (компания System Enhancement Associates). ARC была популярной среди пользователей BBS, т.к. она одна из первых могла сжимать несколько файлов в архив, к тому же исходники её были открыты. ARC использовала модифицированный алгоритм LZW.
Фил Катц, вдохновлённый популярностью ARC, выпустил программу PKARC в формате shareware, в которой улучшил алгоритмы сжатия, переписав их на Ассемблере. Однако, был засужен Хендерсоном и был признан виновным. PKARC настолько открыто копировала ARC, что иногда даже повторялись опечатки в комментариях к исходному коду.
Но Фил Катц не растерялся, и в 1989 году сильно изменил архиватор и выпустил PKZIP. После того, как его атаковали уже в связи с патентом на алгоритм LZW, он изменил и базовый алгоритм на новый, под названием IMPLODE. Вновь формат был заменён в 1993 году с выходом PKZIP 2.0, и заменой стал DEFLATE. Среди новых возможностей была функция разбиения архива на тома. Эта версия до сих пор повсеместно используется, несмотря на почтенный возраст.
Формат изображений GIF (Graphics Interchange Format) был создан компанией CompuServe в 1987. Как известно, формат поддерживает сжатие изображения без потерь, и ограничен палитрой в 256 цветов. Несмотря на все потуги Unisys, ей не удалось остановить распространение этого формата. Он до сих пор популярен, особенно в связи с поддержкой анимации.
Слегка взволнованная патентными проблемами, компания CompuServe в 1994 году выпустила формат Portable Network Graphics (PNG). Как и ZIP, она использовала новый модный алгоритм DEFLATE. Хотя DEFLATE был запатентован Катцем, он не стал предъявлять никаких претензий.
Сейчас это самый популярный алгоритм сжатия. Кроме PNG и ZIP он используется в gzip, HTTP, SSL и других технологиях передачи данных.

К сожалению Фил Катц не дожил до триумфа DEFLATE, он умер от алкоголизма в 2000 году в возрасте 37 лет. Граждане – чрезмерное употребление алкоголя опасно для вашего здоровья! Вы можете не дожить до своего триумфа!

Современные архиваторы

ZIP царствовал безраздельно до середины 90-х, однако в 1993 году простой русский гений Евгений Рошал придумал свой формат и алгоритм RAR. Последние его версии основаны на алгоритмах PPM и LZSS. Сейчас ZIP, пожалуй, самый распространённый из форматов, RAR – до недавнего времени был стандартом для распространения различного малолегального контента через интернет (благодаря увеличению пропускной способности всё чаще файлы распространяются без архивации), а 7zip используется как формат с наилучшим сжатием при приемлемом времени работы. В мире UNIX используется связка tar + gzip (gzip - архиватор, а tar объединяет несколько файлов в один, т.к. gzip этого не умеет).

Прим. перев. Лично я, кроме перечисленных, сталкивался ещё с архиватором ARJ (Archived by Robert Jung), который был популярен в 90-х в эру BBS. Он поддерживал многотомные архивы, и так же, как после него RAR, использовался для распространения игр и прочего вареза. Ещё был архиватор HA от Harri Hirvola, который использовал сжатие HSC (не нашёл внятных объяснений - только «модель ограниченного контекста и арифметическое кодирование»), который хорошо справлялся со сжатием длинных текстовых файлов.

В 1996 году появился вариант алгоритма BWT с открытыми исходниками bzip2, и быстро приобрёл популярность. В 1999 году появилась программа 7-zip с форматом 7z. По сжатию она соперничает с RAR, её преимуществом является открытость, а также возможность выбора между алгоритмами bzip2, LZMA, LZMA2 и PPMd.
В 2002 году появился ещё один архиватор, PAQ. Автор Мэтт Махоуни использовал улучшенную версию алгоритма PPM с использованием техники под названием «контекстное смешивание». Она позволяет использовать больше одной статистической модели, чтобы улучшить предсказание по частоте появления символов.

Будущее алгоритмов сжатия

Конечно, бог его знает, но судя по всему, алгоритм PAQ набирает популярность благодаря очень хорошей степени сжатия (хотя и работает он очень медленно). Но благодаря увеличению быстродействия компьютеров скорость работы становится менее критичной.
С другой стороны, алгоритм Лемпеля-Зива –Маркова LZMA представляет собой компромисс между скоростью и степенью сжатия и может породить много интересных ответвлений.
Ещё одна интересная технология «substring enumeration» или CSE, которая пока мало используется в программах.

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