Эффективность данного метода существенно зависит от длины документа, поскольку из-за необходимости прикладывать к архиву словарь длина кратких документов не только не уменьшается, но даже возрастает.
Данный алгоритм наиболее эффективен для англоязычных текстовых документов и файлов баз данных. Для русскоязычных документов, отличающихся увеличенной длиной слов и большим количеством приставок, суффиксов и окончаний, не всегда удается ограничиться двухбайтными токенами, и эффективность метода заметно снижается.
В основе этого алгоритма лежит кодирование не байтами, а битовыми группами.
• Перед началом кодирования производится частотный анализ кода документаи выявляется частота повтора каждого из встречающихся символов.
• Чем чаще встречается тот или иной символ, тем меньшим количеством битовон кодируется (соответственно, чем реже встречается символ, тем длиннее его кодовая битовая последовательность).
• Образующаяся в результате кодирования иерархическая структура приклады-вается к сжатому документу в качестве таблицы соответствия.
Пример кодирования символов русского алфавита представлен на рис. 14.1.
Как видно из схемы, представленной на рис. 14.1, используя 16 бит, можно закодировать до 256 различных символов. Однако ничто не мешает использовать и после-Рассмотренные выше алгоритмы в «чистом виде» на практике не применяют из-за того, что эффективность каждого из них сильно зависит от начальных условий. В связи с этим современные средства архивации данных используют более сложные алгоритмы, основанные на комбинации нескольких теоретических методов. Общим принципом в работе таких «синтетических» алгоритмов является предварительный просмотр и анализ исходных данных для индивидуальной настройки алгоритма на особенности обрабатываемого материала.
Таблица 14.2. Средства архивации файлов
Операционная система | Формат сжатия | Средство архивации | Средство разархивирования |
MS-DOS | .ZIP | PKZIREXE | PKUNZIP.EXE |
.RAR | RAR. EXE | UNRAR.EXE | |
.ARJ | ARJ. EXE | ||
Windows | .ZIP | WinZip, сжатые | ZIP-папки, WinRAR |
.RAR | WinRAR | ||
.ARJ | WinArj | WinArj, WinRAR |
файлы не рассматриваются как упакованные. При их копировании на носитель с дру-
гой файловой системой они автоматически распаковываются.
Современные программные средства для создания и обслуживания архивов отличаются большим объемом функциональных возможностей, многие из которых выходят далеко за рамки простого сжатия данных и эффективно дополняют стандартные средства операционной системы. В этом смысле современные средства архивации данных называют диспетчерами архивов.
К базовым функциям, которые выполняют большинство современных диспетчеров архивов, относятся:
• извлечение файлов из архивов;
• создание новых архивов;
• добавление файлов в имеющийся архив;
• создание самораспаковывающихся архивов;
• создание распределенных архивов на носителях малой емкости;
• тестирование целостности структуры архивов;
• полное или частичное восстановление поврежденных архивов;
• защита архивов от просмотра и несанкционированной модификации.
Самораспаковывающиеся архивы. В тех случаях, когда архивация производится для передачи документа потребителю, следует предусмотреть наличие у него программного средства, необходимого для извлечения исходных данных из уплотненного архива. Если таких средств у потребителя нет или нет оснований предполагать их наличие, создают самораспаковывающиеся архивы. Самораспаковывающийся архив готовится на базе обычного архива путем присоединения к нему небольшого программного модуля. Сам архив получает расширение имени . ЕХЕ, характерное для исполнимых файлов. Потребитель сможет выполнить его запуск как программы, после чего распаковка архива произойдет на его компьютере автоматически.Распределенные архивы. В тех случаях, когда предполагается передача большого архива на носителях малой емкости, например на гибких дисках, возможно распределение одного архива в виде малых фрагментов на нескольких носителях.
Современные диспетчеры архивов способны выполнить предварительное разбиение архива на фрагменты заданного размера на жестком диске. Впоследствии их можно перенести на внешние носители путем копирования. Все файлы распределенного архива получают разные имена, и поэтому их последующее упорядочение не вызывает проблем.
Оптимальный режим работы с распределенными архивами следующий: