русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Общая характеристика архиваторов


Дата добавления: 2015-06-12; просмотров: 5877; Нарушение авторских прав


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

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

В настоящее время применяется несколько десятков программ – архиваторов, которые отличаются перечнем функций и параметрами работы, однако лучшие из них имеют примерно одинаковые характеристики. Из числа наиболее популярных программ можно выделить ARJ, PKPAK, LHA, ICE, HYPER, ZIP, РАК, ZOO, EXPAND – разработанные за рубежом, а также AIN и RAR – разработанные в России. Обычно упаковка и распаковка файлов выполняются одной и той же программой, но в некоторых случаях это осуществляется разными программами, например, программа РКZIР производит упаковку файлов, a PKUNZIP – распаковку файлов.

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

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



Самораспаковывающийся архив получил название SFX – архив (SelF – eXtracting). Архивы такого типа в MS DOS обычно создаются в форме *.ЕХЕ – файла.

Многие программы – архиваторы производят распаковку файлов, выгружая их на диск, но имеются и такие, которые предназначены для создания упакованного исполняемого модуля (программы). В результате такой упаковки создается программный файл с теми же именем и расширением, который при загрузке в оперативную память самораспаковывается и сразу запускается. Вместе с тем возможно и обратное преобразование программного файла в распакованный формат. К числу таких архиваторов относятся программы PKLITE, LZEXE, UNP.

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

Управление программой – архиватором осуществляется одним из двух способов:

ü с помощью командной строки MS DOS, в которой формируется команда запуска, содержащая имя программы – архиватора, команду управления и ключи ее настройки, а также имена архивного и исходного файлов; подобное управление характерно для архиваторов ARJ, AIN, ZIP, РАК, LHA и др.;

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

Рассмотрим наиболее известные реализации программ-архиваторов.

1. WinRAR. Разработанная российским программистом Евгением Рошалем утилита WinRAR позволяет работать с ZIP-архивами, но основным форматом для нее является RAR (также разработка Рошаля). Кроме того, есть возможность создавать самораспаковывающиеся EXE-архивы, а также использовать внешние программы для распаковки и просмотра архивов типа ARJ, LZH и CAB.

Программа создает многотомные архивы лишь в формате RAR. Формат RAR превосходит ZIP, ARJ и LZH по эффективности сжатия, однако в наибольшей степени преимущество этой технологии проявляется в случае «непрерывных» архивов, которые не допускают внесение изменений и обрабатываются довольно медленно. Окно архиватора напоминает системную утилиту «Мой компьютер», архивы выглядят и ведут себя подобно обычным папкам (рис.2).

 
 

 

 


Рис.2. Интерфейс WinRar

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

2. WinZip. Условно-бесплатная утилита, разработанная компанией Nico Mak Computing, наверное, самая знаменитая программа архивации для Windows. EXE-файл с дистрибутивом WinZip в минимальной конфигурации занимает около 940 Кбайт, после установки объем файлов программы составляет 2 Мбайт. Программа имеет встроенные средства для манипулирования архивами и упакованными файлами в форматах ZIP, TAR, GZIP и CAB, а также позволяет подключать внешние модули для работы с ARJ-, ARC- и LZH-файлами (рис.3). Все операции с архивами можно выполнять с помощью перетаскивания, длинные имена объектов (в том числе кириллические) обрабатываются нормально. Имеется функция парольной защиты, создания самораспаковывающихся EXE-файлов, многотомных архивов на съемных носителях.

 
 

 


Рис.3. Интерфейс WinZip

3. 7-Zip – свободный файловый архиватор с высокой степенью сжатия данных (рис.4). Поддерживает несколько алгоритмов сжатия и множество форматов данных, включая собственный формат 7z c высокоэффективным алгоритмом сжатия LZMA.

 

Рис.4. Интерфейс 7Zip

Программа разрабатывается с 1999 года и является бесплатной, а также имеет открытый исходный код, большая часть которого свободно распространяется на условиях лицензии GNU LGPL, за исключением кода декомпрессора unRAR, который имеет ограничения. Основной платформой является Windows (в том числе Windows CE), где доступны две версии программы: с графическим интерфейсом и версия для командной строки.

7-Zip использует многопоточность и позволяет задействовать для сжатия, в зависимости от алгоритма или формата, различное количество потоков. При создании архивов, в которых файлы могут сжиматься независимо друг от друга (например, ZIP), программа может использовать до 8 потоков одновременно. Для алгоритма сжатия LZMA архиватор одновременно может использовать до 2 потоков. Невозможность использования большего их количества объясняется последовательным характером непрерывного сжатия. Алгоритм сжатия LZMA2 не имеет этого недостатка.

При сжатии в формате 7z используются также специальные фильтры-нормализаторы. Так, для более оптимального сжатия 32-битного x86 кода используются нормализующие конверторы BCJ и BCJ2. Программа также имеет оптимизирующий дельта-конвертер для некоторых типов мультимедиаданных, например несжатых 24-битных изображений.

Результаты по степени сжатия сильно зависят от сжимаемых данных. Обычно 7-Zip сжимает в формат 7z на 4—25 % лучше, чем в формат zip.

Стоит отметить, что любым архиватором (и не только из перечисленных), наиболее хорошо сжимаются файлы графических образов, текстовые файлы и файлы данных, для которых коэффициент сжатия может достигать 5 – 40%, меньше сжимаются файлы исполняемых программ и загрузочных модулей Кс = 60 – 90%. Почти не сжимаются архивные файлы. Это нетрудно объяснить, если знать, что большинство программ-архиваторов используют для сжатия варианты алгоритма LZ77 (Лемпеля-Зива)

Все алгоритмы сжатия данных делятся на:

1. алгоритмы сжатия без потерь, при использовании которых данные на приемной восстанавливаются без малейших изменений;

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

Преимущество отдается естественно, первой группе алгоритмов.

На практике (насколько известно автору), существует два основных метода архивации без потерь:

1. Алгоритм Хаффмана. Алгоритм основан на том факте, что некоторые символы из стандартного 256-символьного набора в произвольном тексте могут встречаться чаще среднего периода повтора, а другие, соответственно, – реже. Следовательно, если для записи распространенных символов использовать короткие последовательности бит, длиной меньше 8, а для записи редких символов – длинные, то суммарный объем файла уменьшится.

2. Алгоритм Лемпеля-Зива. Классический алгоритм Лемпеля-Зива – LZ77, названный так по году своего опубликования, предельно прост. Он формулируется следующим образом: «если в прошедшем ранее выходном потоке уже встречалась подобная последовательность байт, причем запись о ее длине и смещении от текущей позиции короче чем сама эта последовательность, то в выходной файл записывается ссылка (смещение, длина), а не сама последовательность».

Так фраза «КОЛОКОЛ_ОКОЛО_КОЛОКОЛЬНИ» закодируется как «КОЛО(-4,3)_(-5,4)О_(-14,7)ЬНИ».

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

В некоторые программы-архиваторы дополнительно включаются средства, направленные на уменьшение коэффициента сжатия Кс. Так в программе WinRAR реализован механизм непрерывного (solid) архивирования, при использовании которого может быть достигнута на 10 – 50% более высокая степень сжатия, чем дают обычные методы, особенно если упаковывается значительное количество небольших файлов однотипного содержания.



<== предыдущая лекция | следующая лекция ==>
Операционная система DOS | Архиватор RAR. Механизм использования


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.103 сек.