Программные средства сжатия данных
Алгоритм Хаффмана
Алгоритм RLE
В основу алгоритмов RLE положен принцип выявления повторяющихся последовательностей данных и замены их простой структурой, в которой указывается код данных и коэффициент повтора.
Например, для последовательности: 0; 0; 0; 127; 127; 0; 255; 255; 255; 255 (всего 10 байтов) образуется следующий вектор:
Значение | Коэффициент повтора |
При записи в строку он имеет вид:
0; 3; 127; 2; 0; 1; 255; 4 (всего 8 байтов).
В данном примере коэффициент сжатия равен 8/10=0,8 (экономия объема составляет 20%).
Программные реализации алгоритмов RLE отличаются простотой, высокой скоростью работы, но в среднем обеспечивают недостаточное сжатие. Наилучшими объектами для данного алгоритма являются графические файлы, в которых большие одноцветные участки изображения кодируются длинными последовательностями одинаковых байтов, а также некоторые типы файлов баз данных, имеющие таблицы с фиксированной длиной полей. Для текстовых данных методы RLE, как правило, не эффективны.
При упаковке по методу Хаффмана часто встречающиеся символы кодируются короткими последовательностями битов, а более редкие символы – длинными последовательностями. К каждому сжатому архиву прикладывается таблица соответствия имеющихся символов и кодов, заменяющих эти символы.
Рассмотренные алгоритмы в «чистом виде» на практике не применяют из-за того, что эффективность каждого из них зависит от начальных условий. В связи с этим современные средства архивации данных используют более сложные алгоритмы, основанные на комбинации нескольких теоретических методов.
«Классическими» форматами сжатия данных являются форматы .ZIP, .RAR и .ARJ. Среди наиболее распространенных программ-архиваторов можно назвать ARJ, KZIP, LHA, PKPAK, PAK, ZIP, RAR, WinZIP и WinRAR.
Современные программные средства для создания и обслуживания архивов отличаются большим объемом функциональных возможностей, многие из которых выходят далеко за рамки простого сжатия данных и эффективно дополняют стандартные средства операционной системы. В этом смысле современные средства архивации данных называют диспетчерами архивов.
К базовым функциям диспетчеров архивов относятся:
· извлечение файлов из архивов;
· создание новых архивов;
· добавление файлов в имеющийся архив;
· создание самораспаковывающихся архивов;
· создание распределенных архивов на носителях малой емкости;
· тестирование целостности структуры архивов;
· полное или частичное восстановление поврежденных архивов;
· защита архивов от просмотра и несанкционированной модификации.
Самораспаковывающийся архив - это загрузочный, исполняемый модуль, который способен к самостоятельной разархивации находящихся в нем файлов без использования программы-архиватора. Архивы такого типа создаются в форме .EXE-файла. Потребитель сможет выполнить его запуск как программы, после чего распаковка архива произойдет на его компьютере автоматически.
Распределенные архивы. В тех случаях, когда предполагается передача большого архива на носителях малой емкости, например на гибких дисках, возможно распределение одного архива в виде малых фрагментов на нескольких носителях.
Современные диспетчеры архивов способны выполнить предварительное разбиение архива на фрагменты заданного размера на жестком диске. Впоследствии их можно перенести на внешние носители путем копирования. Все файлы распределенного архива получают разные имена, и поэтому их последующее упорядочение не вызывает проблем.
Защита архивов. В большинстве случаев защиту архивов выполняют с помощью пароля, который запрашивается при попытке просмотреть, распаковать или изменить архив.
Дополнительные требования к диспетчерам архивов
К дополнительным функциям диспетчеров архивов относятся сервисные функции, делающие работу более удобной. Они часто реализуются внешним подключением дополнительных служебных программ и обеспечивают:
- просмотр файлов различных форматов без извлечения их из архива;
- поиск файлов и данных внутри архивов;
- установку программ из архивов без предварительной распаковки;
- проверку отсутствия компьютерных вирусов в архиве до его распаковки;
- криптографическую защиту архивной информации;
- декодирование сообщений электронной почты;
- “прозрачное” уплотнение исполнимых файлов .ЕХЕ и .DLL;
- создание самораспаковывающихся многотомных архивов;
- выбор или настройку коэффициента сжатия информации.
Компьютерные сети
Компьютерная сеть (КС) – совокупность компьютеров, соединенных с помощью каналов связи в единую систему, удовлетворяющую требованиям распределенной обработки данных.