Степень сжатия файла программой архивации зависит от

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

·степень сжатия – отношение объемов исходного и результирующего потоков;

·скорость сжатия – время, затрачиваемое на сжатие некоторого объема информации входного потока, до получения из него эквивалентного выходного потока;

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

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

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

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

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

Существует два основных метода архивации без потерь:

алгоритм Хаффмана (англ. Huffman), ориентированный на сжатие последовательностей байт, не связанных между собой,

алгоритм Лемпеля-Зива (англ. Lempel, Ziv), ориентированный на сжатие любых видов текстов, то есть использующий факт неоднократного повторения "слов" – последовательностей байт.

Практически все популярные программы архивации без потерь (ARJ, RAR, ZIP и т.п.) используют объединение этих двух методов – алгоритм LZH.

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

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

4.Показатель степени сжатия файлов

Сжатие информации в архивных файлах производится за счет устранения избыточности различными способами, например за счет упрощения кодов, исключения из них постоянных битов или представления повторяющихся символов или повторяющейся последовательности символов в виде коэффициента повторения и соответствующих символов. Алгоритмы подобного сжатия информации реализованы в специальных программах-архиваторах (наиболее известные из которых arj/arjfolder, pkzip/pkunzip/winzip, rar/winrar) применяются определенные Сжиматься могут как один, так и несколько файлов, которые в сжатом виде помещаются в так называемый архивный файл или архив.

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

Степень сжатия файлов характеризуется коэффициентом Кс, определяемым как отношение объема сжатого файла Vc к объему исходного файла Vо, выраженное в процентах (в некоторых источниках используется обратное соотношение):

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

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

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

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

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

На компьютерном рынке предлагается множество архиваторов – у каждого свой набор поддерживаемых форматов, свои плюсы и минусы, свой круг почитателей, свято верящих в то, что используемый ими архиватор самый лучший. Не будем никого и ни в чем разубеждать – просто попытаемся беспристрастно оценить самые популярные архиваторы в плане функциональности и эффективности. К таковым отнесем WinZip, WinRAR, WinAce, 7-Zip – они лидируют по количеству скачиваний на софтовых серверах. Рассматривать остальные архиваторы вряд ли целесообразно, поскольку процент применяющих их пользователей (судя по числу скачиваний) невелик.

Эта работа была прислана на наш "бессрочный" конкурс статей и является значительно переработанным вариантом статьи "Краткое сравнение архиваторов" того же автора. Работа получила приз – видеокарту Chaintech GeForce FX 5600XT 128 МБ>, предоставленную для нашего призового фонда компанией Chaintech.

реклама

Главной целью этой статьи является выбор наиболее оптимального архиватора с высокой степенью сжатия различных реальных данных большого объёма. В тестировании принимали участие: самый распространенный и один из старейших ZIP, популярные архиваторы ACE, RAR, 7-zip. Кроме того, были протестированы некоторые перспективные архиваторы. Большинство из них являются экспериментальными, обладают низкой скоростью архивирования и разархивирования, требуют много оперативной памяти, имеют ошибки. Например, не удалось сжать все тестовые данные при помощи Slim 0.021 (ошибка приложения), показавшего очень хорошие результаты, скорость PAQ6 v2 достигала 15 КБ/с. В итоге были выбраны Compressia 1.0b, EPM r9, PAQ6 v2, RKC 1.02, которые на данный момент являются одними из лучших.

реклама

Каждый из протестированных архиваторов обладает рядом настроек, изменяя которые, можно управлять степенью сжатия и скоростью в широких пределах. Тестирование производилось в режимах norm и max. RAR дополнительно тестировался в режиме fastest (максимальной скорости). Compressia, EPM, RKС, PAQ6 – только в режиме max. Для режима norm выбирались предлагаемые средние установки, для режима max – дающие максимальную степень сжатия. Все дополнительные настройки устанавливались в значения, дающие в среднем лучшее сжатие на тестовой системе, или, если возможно, в авто. В частности, 7-zip, EPM r9, RKC 1.02, PAQ6 v2 настраивались на использование около 400 МБ оперативной памяти в max режимах. Для режима fastest все настройки устанавливались на максимальную скорость, фильтры отключались, параметр Sol >

реклама

В качестве тестовых данных использовались большие объемы реальных неоднородных данных. Исключение составляет "Документы Word, Excel". Больше 9 МБ реальных "средних" документов найти не удалось, а тестировать документы по 13 МБ, в основном состоящие из отсканированных и несжимаемых изображений, неправильно. Дополнительно была добавлена книга TICSharp.DOC (11 МБ) с небольшими иллюстрациями.

реклама

Тестировались следующие архиваторы:

реклама

Использовался встроенный в Total Commander 6.0 архиватор. Несмотря на то, что Total Commander является shareware, сам формат ZIP бесплатный. Существует много бесплатных программ, которые архивируют в формат ZIP, например 7-zip. Стоит отметить, что каждая реализация ZIP может иметь скорость и степень сжатия, отличающуюся от реализации ZIP в Total Commander 6.0. Например, 7-zip архивирует в ZIP с более высокой степенью сжатия, но значительно медленнее.

Читайте также:  Утилиты для материнских плат asus

В Total Commander 6.0 также есть поддержка формата TGZ (настройка Packer TGZ) который является своеобразным Solid (непрерывным архивом) вариантом ZIP (GZIP). Использование TGZ может дать значительное улучшение сжатия на большом количестве небольших файлов (на тестовых данных "Текст в формате HTML" – 60% от ZIP norm), но обладает таким недостатком – Total Commander 6.0 видит архив TGZ как заархивированный TAR, в результате для распаковки необходимо сначала распаковать TAR, а затем уже содержимое архива. По скорости и степени сжатия одного файла TGZ равен ZIP norm.

Настройки для тестирования:

  • ZIP norm – настройка normal compression (6).
  • ZIP max – настройка maximum compression (9).

ACE 2 www.winace.com . До выхода RAR 2.9 был существенно лучше RAR 2.0. Преимущества – высокая функциональность, степень сжатия и скорость. Недостатки – платный.

Использовался WinACE 2.5. Настройки для тестирования:

    ACE norm – настройка Level=normal, Sol >RAR 2.9www.rarlab.com. Преимущества – высокая функциональность, степень сжатия и скорость, распространённость. Недостатки – платный.

Использовался WinRAR 3.30 beta 5. По сравнению с предыдущей версией 3.11 степень сжатия незначительно увеличилась на всех видах данных, для текста прирост немного больше (вероятно, из-за улучшения в автоматическом определении параметров сжатия).

Настройки для тестирования:

    RAR fastest – настройка Compression method=fastest, Sol >7-zip 3.12 www.7-zip.org . Преимущества – высокая степень сжатия, бесплатность. Недостатки – низкая функциональность по сравнению с RAR. Для 7zip PPMd скорость и требования к оперативной памяти одинаковы во время архивирования и разархивирования.

Использовался 7-zip 3.12. Настройки для тестирования:

    7zip norm – настройка Compression level=normal, Compression method=LZMA, Dictionary=2 МБ, Word size=32, Sol >Compressiawww.compressia.com. Преимущества – один из самых лучших по степени сжатия архиваторов. Недостатки – сильно ограниченная функциональность, только GUI версия, низкая скорость, скорость и требования к оперативной памяти одинаковы во время архивирования и разархивирования, платный.

Использовался Compressia v1.0 beta. Настройки для тестирования:

    Compressia – настройки Use sol >EPM www.thepipe.kiev.ua . Преимущества – один из самых лучших по степени сжатия архиваторов. Недостатки – низкая скорость, скорость и требования к оперативной памяти одинаковы во время архивирования и разархивирования, для высокой степени сжатия необходимо относительно много оперативной памяти.

Использовался EMP r9. EMP r9 – это не полноценный архиватор, а экспериментальная версия для отработки алгоритмов, сжимает только один файл. Для тестирования использовались тестовые данные, скомпонованные в один файл при помощи 7-zip store. Из-за этого степень сжатия могла немного ухудшиться по сравнению с полноценной реализацией Solid режима (в пределах пары процентов).

Настройки для тестирования:

  • EMP max – параметры командной строки -m420.

RKC www.msoftware.co.nz. Преимущества – один из самых лучших по степени сжатия архиваторов. Недостатки – низкая скорость, скорость и требования к оперативной памяти одинаковы во время архивирования и разархивирования, для высокой степени сжатия необходимо относительно много оперативной памяти. В конце февраля 2004 ожидается выход полноценного архиватора WinRK.

Использовался RKC 1.02. RKC 1.02 – это не полноценный архиватор, а экспериментальная версия для отработки алгоритмов, сжимает только один файл. Для тестирования использовались тестовые данные, скомпонованные в один файл при помощи 7-zip store. Из-за этого степень сжатия могла немного ухудшиться по сравнению с полноценной реализацией Solid режима (в пределах пары процентов). Опция analysis выключена, т.к. при её включении на некоторых данных программа не работает.

Настройки для тестирования:

  • RKC max – параметры командной строки -M420m -mxx -o16 -n+ -r+ -a-.

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

Использовался PAQ6 v2. PAQ6 v2 – это не полноценный архиватор, а экспериментальная версия для отработки алгоритмов, может сжимать несколько файлов. Для тестирования использовались тестовые данные, скомпонованные в один файл при помощи 7-zip store. Из-за этого степень сжатия могла немного ухудшиться по сравнению с полноценной реализацией Solid режима (в пределах пары процентов).

Настройки для тестирования:

  • PAQ6 max – параметры командной строки -7.

Для тестирования использовались следующие хорошо сжимающиеся данные:

  • Документы Word, Excel – набор небольших документов (договоры, акты – 9 МБ) и книга TICSharp (11 МБ). Книга TICSharp является "неудобной" для архиваторов. Это обусловлено характерной структурой DOC файла – текстовые блоки чередуются с несжимаемыми картинками. Всего 20 МБ, 138 файлов.
  • Текст в формате HTML – содержимое JAVA SDK 1.3.1. Представляет собой большое количество небольших файлов HTML, поэтому ZIP, не поддерживающий Solid режим, показал почти в 2 раза худший результат. Этот набор данных не является полноценным текстом, т. к. содержит много тэгов HTML и пару мегабайт несжимаемых файлов. Всего 109 МБ, 6226 файлов.
  • Инсталляция Office XP – содержимое инсталляционного файла CAB. Около 120 МБ занимают файлы EXE, DLL, OCX. Всего 391 МБ, 1865 файлов
  • Игра Counter-Strike – содержимое папки Half-Life с установленным Counter-Strike. Всего 770 МБ, 3113 файлов.
  • База данных 1С: Предприятие – содержимое резервной копии базы данных (DBF-формат без индексов, с конфигурацией). Всего 189 МБ, 340 файлов.

Тестирование производилось на системе: CPU Athlon 2000 МГц, MB nForce2, RAM 512 МБ, HDD WD400JB, OS Windows 2000. Следует учитывать, что на аналогичных Pentium системах скорость сжатия может сильно отличаться.

Что можно архивировать?

Хорошо сжимаются почти все предварительно не сжатые данные, например, программные файлы, тексты, базы данных, простые несжатые изображения. Ограниченно сжимаются несжатый звук (WAV), сложные несжатые изображения (BMP). Не сжимаются (сжатие в пределах пары процентов за счет служебных тэгов и, возможно, небольшой избыточности) почти все уже сжатые данные, например, архивы (ZIP, CAB), сжатая графика и видео (JPG, GIF, AVI, MPG), сжатый звук (MP3).

Для примера можно рассмотреть папку с игрой Prince Of Persia. Из общего объема 1400 МБ, 550 МБ – это несжимаемое видео, 330 МБ – ограниченно сжимаемый звук. Игра сжимается до 1008 МБ. При сжатии разными архиваторами, разница будет только за счет сжимаемых 520 МБ, в меньшей степени за счет 330 МБ звука. Таким образом, относительные результаты будут "смазаны" несжимаемым видео.

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

Несмотря на низкую степень сжатия, ZIP norm обладает самой высокой скоростью (быстрее RAR fastest в 2 раза). Его можно использовать на медленных машинах или для оперативного архивирования.

RAR и ACE приблизительно равны, с небольшим преимуществом у RAR. Их можно рекомендовать только из-за дополнительной функциональности (например, разбивка архива на части, запись дополнительной информации для восстановления при повреждении архива). По степени сжатия они уступают 7-zip. На некоторых наборах данных разница значительна. В max режиме размер архива RAR больше 7-zip от 5% до 34%, в среднем на 18%.

Читайте также:  Paint инструкция по применению

7-zip не является лидером в степени сжатия и имеет низкую скорость в max режиме. По сравнению с PAQ6, размер архива 7-zip больше от 2% до 23%, в среднем на 13%. Разница с результатами Compressia, EPM, RKC незначительна или даже отличается в лучшую сторону. В отличие от этих архиваторов, скорость разархивирования 7-zip (за исключением режима PPMd) значительно выше скорости архивирования. Требования к оперативной памяти во время разархивирования небольшие. Низкая скорость в max режиме все же значительно выше, чем скорость PAQ6 (в 10 раз). 7-zip может работать, используя 2 потока, что даёт значительное повышение скорости на мультипроцессорных системах или на системах с Hyper-Threading. С учетом регулярного обновления и бесплатности, 7-zip является наиболее оптимальным выбором для современных систем. В списке ближайших его изменений – разбивка архива на части, запись дополнительной информации для восстановления при повреждении архива.

Из перспективных архиваторов стоит отметить RKC, точнее WinRK www.msoftware.co.nz, который выйдет в конце февраля 2004 года. Он должен обладать не только лучшей степенью сжатия по сравнению с 7-zip, но и удобной графической оболочкой. Главный недостаток – для хорошего сжатия необходимо много оперативной памяти, скорость и требования к оперативной памяти одинаковы во время архивирования и разархивирования.

PAQ6 показал самую лучшую степень сжатия со значительным отрывом от конкурентов. Но практически использовать его могут только экстремалы из-за очень низкой скорости (17 КБ/с). Несмотря на хорошие результаты на больших объёмах неоднородных данных, проведенное мини-тестирование по сжатию одного файла (1Cv7.MD.rpk, 7 МБ) показало, что RKC справился со сжатием на 1%, EPM на 4%, а Slim 0.021 slim-fb.by.ru на 8% лучше PAQ6 (7-zip на 20% хуже).

Дальнейшее увеличение степени сжатия архиваторов сильно ограничено возможностью современных компьютеров. Даже успехи 7-zip на фоне RAR достигнуты за счет уменьшения скорости. Более того, практическая реализация эффективных PPM алгоритмов, используемых RKC, PAQ, EPM, была обусловлена существенным повышением производительности компьютеров в последние годы. Поэтому не следует в ближайшее время ждать появления архиваторов, которые при высокой скорости показывали бы степень сжатия значительно выше рассмотренных.

Общее понятие архивации

Архиваторы- это программы для создания архивов. Архивы предназначены для хранения данных в удобном компактном виде. В качестве данных обычно выступают файлы и папки. Как правило, данные предварительно подвергаются процедуре сжатия и упаковки. Поэтому почти каждый архиватор одновременно является программой для сжатия данных. С другой стороны, любая программа для сжатия данных может рассматриваться как архиватор. От нее зависит размер создаваемых архивов. Чем меньше архив, тем меньше места требуется для его хранения. Для передачи нужна меньшая пропускная способность канала передачи или затрачивается меньшее время. Преимущества архивов очевидны, если учесть, что данные уменьшаются в размере и в 2 раза, и в 5 раз. Основным недостатком архивов является невозможность прямого доступа к данным. Их сначала необходимо извлечь из архива или распаковать. Операция распаковки, впрочем, как и упаковки, требует некоторых системных ресурсов. Это не мгновенная операция. Поэтому архивы в основном применяют со сравнительно редко используемыми данными. Необходимость в длительном хранении данных – создании архивов- со временем встает перед большинством пользователей (для профессионалов в обязательном порядке). Всякий разумный пользователь должен быть озабочен созданием резервных копий наиболее ценных для него программ и данных. Проблема архивации возникает и тогда, когда жесткий диск компьютера наполнен информацией и требуется освободить на нем место, ничего не удаляя безвозвратно. Удивительно, учитывая емкость современных жестких дисков, сколь часто это происходит. Большие по объему архивные файлы могут быть размещены на нескольких дисках (томах).

Такие архивы называются многотомными. Том — это составная часть многотомного архива. Создавая архив из нескольких частей, можно записать его части на несколько носителей. Возникший в ходе архивации файл имеет, как правило, значительно меньший объем, чем исходный. Степень сжатия, определяется двумя обстоятельствами: природой информации и алгоритмом (методом) архивации[2].

Так файл, созданный текстовым процессором Word и не содержащий рисунков, может быть сжат при архивации в несколько раз; степень сжатия графических файлов, как правило, существенно меньше. Под степенью сжатия понимают отношение размеров сжатого файла и исходного, выраженное в процентах. Степень сжатия зависит от используемой программы сжатия, метода сжатия и типа исходного файла. Лучше всего сжимаются графические и текстовые файлы, файлы данных, степень сжатия которых может достигать 5 — 40%, меньше сжимаются файлы исполняемых программ и загрузочных модулей — 60 — 90%. Почти не сжимаются архивные файлы[13]. Пример сжатия графической информации (рисунок 1).

Рисунок 1. Сжатие графической информации

Фото сжимаются очень не значительно, т.к. областей состоящих из точек одного цвета очень мало. Пример сжатия текстовой информации (таблица 1).

Таблица 1 Сжатие текстовой информации методом LZ

Алгоритм разработан израильскими математиками Якобом Зивом и Абрахамом Лемпелем

Алгоритм раз1ботан из1ильскими мате4ика5Яко7ом3ив821х68Л10пе11

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

· сжатие некоторых файлов и целых директорий;

· создание самораспаковывающихся (SFX) архивов. То есть для распаковки архива программа-архиватор не требуется;

· изменение содержимого архива;

· шифрование содержимого архива;

· информация для восстановления архива при частичном повреждении и возможность восстановления поврежденных архивов;

· разбивка архива на несколько частей или томов;

· консольная версия программы для работы из командной строки;

· графическая (GUI) версия программы.

Рассмотрим создание SFX архивов, более подробно на примере нескольких архиваторов. Архиватор WinRAR обладает широкими возможностями для создания бесключевых SFX. С его помощью можно создать незаметный (silent) инсталлятор, который распакует содержимое SFX в заданную папку, выполнит заранее указанную команду, а по окончании установки может удалить распакованные файлы. Помимо всего WinRAR умеет добавлять элементы в меню Пуск, помещать ярлыки на Рабочий стол, а также задавать архиву иконку по вашему выбору. Мы рассмотрим только базовые возможности программы. Итак, запустив архиватор, мы переходим в папку, в которой находится административная установка Adobe. Выделяем все файлы (рисунок 2).

Рисунок 2. Папка в которой находится административная установка Adobe

И нажимаем «Добавить» (рисунок 3). Именуем архив по желанию, отмечаем создание SFX и выбираем максимальный уровень сжатия.

Рисунок 3. В этом окне отмечаем создание SFX, в нем же дается имя архива

Теперь надо сконфигурировать параметры SFX. Для этого на вкладке «Дополнительно» нажимаем «Параметры SFX». На вкладке «Общие» указываем команду для распаковки (рисунок 3).

Рисунок 3. Вкладка «Общие»

И переходим на вкладку «Режимы» (рисунок 4). Здесь мы указываем распаковку во временную папку (что повлечет за собой автоматическое удаление распакованных файлов по окончании установки), скрытый режим и перезапись всех файлов.

Перейдя на вкладку «Комментарий», мы видим все параметры, которые только что установили через графический интерфейс. Можно было сразу перейти на эту вкладку и напечатать комментарий вручную или загрузить из заранее подготовленного текстового файла.

Читайте также:  Прошивка lenovo a526 4pda

Рисунок 4. Вкладка «Режимы»

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

Недостатки: Высокая стоимость.

Архиватор 7-Zip, с его помощью можно создавать бесключевые SFX, хотя процесс их создания несколько длиннее, чем у WinRAR.

Для начала нужно запаковать содержимое нашей папки в 7-Zip архив. Сделать это можно через 7-Zip файл-менеджер. Запустив его, мы переходим в папку, в которой находится административная установка Adobe. В эту же папку нужно положить файл StartX.exe, его назначение мы объясним ниже. Выделяем все файлы (рисунок 5).

Рисунок 5. Папка в которой находится административная установка Adobe и файл StartX.exe

И нажимаем вкладку «Добавить» (рисунок 6).

Рисунок 6. Вкладка «Добавить»

Именуем архив по желанию, выбираем формат 7-Zip, максимальный уровень сжатия и нажимаем «ОК». На выходе получаем файл, из которого нам предстоит сделать SFX.

Теперь нужно создать конфигурационный файл для SFX. Его можно сделать в Блокноте. Единственное, но обязательное условие – он должен быть в кодировке UTF-8. Первая и последние строки обозначают начало и конец конфигурационного файла. Средняя строка – команда, которая будет выполнена после распаковки архива. Утилита StartX.exe является эквивалентом консольной команды START и поддерживает такие же ключи. Ее наличие необходимо для установки MSI пакета, извлеченного из 7-Zip SFX. Сохраняем конфигурационный файл в ту же папку, куда и сохраняли файл из которого предстояло сделать SFX архив и переходим к завершающей стадии создания SFX. Из инсталляционной папки 7-Zip нужно взять SFX модуль и скопировать его к остальным файлам. Теперь, когда в одной папке собраны все три файла, нужно из командной строки выполнить следующую команду: «COPY /b 7zs.sfx + config.txt + adobe7.7z adobe7.exe».

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

Модифицированный SFX модуль для 7-Zip. Оригинальный 7-Zip SFX модуль не дает возможности сделать распаковку абсолютно незаметной. В процессе распаковки пользователь видит диалоговое окно (рисунок 7).

Рисунок 7. Диалоговое окно

Пользователь даже может прервать установку нажатием на кнопку «Cancel». Этой проблемы можно избежать, воспользовавшись SFX модулем. Мы можем загрузить модифицированный модуль, где мы также найдем справку и исходный код. В справке описаны все новые функции и примеры использования. Для модифицированного модуля StartX не нужна.

Любопытно, что в данном случае 7-Zip продемонстрировал лучшее сжатие, чем WinRAR. Размер 7-Zip SFX (даже с утилитой StartX.exe) оказался 20893 КБ против 23825 КБ у WinRAR SFX. Oднако, недостатком родного SFX модуля 7-Zip является невозможность сконфигурировать бесключевую распаковку SFX в заданную папку.

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

Недостатки: нет возможности выбора иконки для архива.

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

Возможности программы SFX Creator:

· поддержка практически всех переменных системных/пользовательских директорий;

· выбор типа сжатия (LZMA – данный тип компрессии применяется в архиваторе 7-Zip), BZIP2, ZLIB;

· создание ярлыков для файлов;

· импорт REG-файлов после распаковки файлов;

· выполнение приложений до и после распаковки ваших файлов;

· выполнение операций в реестре (запись/удаление параметров, удаление разделов);

· выполнение файловых операций (копирование/удаление файлов, создание/удаление директорий);

· возможность создать программу удаления (с удобным добавлением информации в апплет "Установка и удаление программ");

· возможность установить свою иконку на SFX архив;

· возможность добавить информацию о версии файла;

· возможность выполнить собственные функции, написанные на языке NSIS перед и после распаковки файлов;

· возможность перед распаковкой ваших файлов проверить наличие установленного ПО и выполнить определённые действия, если вас не устраивает результат проверки (например если версия ПО ниже необходимой, можно прекратить установку и/или показать сообщение пользователю);

· возможность распаковать ваши файлы в каталог, который указан в каком-либо ключе реестра;

· регистрация библиотек при распаковке файлов (и возможность отменить регистрацию при удалении приложения);

· возможность при запуске/завершении показать пользователю информационное сообщение;

· вы можете создавать распаковщик (практически уже пакет инсталлятора) с графическим интерфейсом. Вам предлагается использовать 2 типа интерфейса на выбор;

· возможность показа вашего изображения перед запуском процесса распаковки файлов;

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

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

Рисунок 8. SFX Creator

В данный момент существует много архиваторов. Они имеют разную распространенность и эффективность[11]. Познакомимся с основными идеями, лежащими в основе сжатия файлов. Сама возможность архивации связана с избыточностью современных форматов записи данных по отношению к объему информации, что обеспечивает их быструю обработку соответствующими программами[14]. Существует две группы алгоритмов сжатия данных: сжатие без потерь, при котором путем обратного действия (разархивации) данные восстанавливаются полностью без каких- либо изменений, и сжатие с потерями, когда удаляется информация, не влияющая на суть данных или не воспринимаемая человеком (в основном это возможно при архивации звука и изображений). Для сжатия без потерь в основном используют два классических метода: метод Хаффмана и метод Лемпеля- Зива. Метод Хаффмана основан на том, что практически в любом тексте, составленном из стандартного 256- символьного набора, некоторые символы встречаются чаще, а некоторые реже[1]. Архивируемый текст предварительно просматривается программой- архиватором, и составляется таблица частотности использования символов (рисунок 9).

Рисунок 9. Частота употребления букв русского языка

Затем при записи самых распространенных в данном тексте символов используются максимально короткие двоичные последовательности, для менее распространенных- более длинные и т.д. К примеру, пусть в некотором тексте (на русском языке) буква «И» по использованию оказалась на первом месте, буква «А» на втором и буква «П» на третьем. Тогда можно, в процессе архивации, заменить обычный 8-ми битный код «И» на 0, буквы «А» на 1 и буквы «П» на 10- экономия очевидна и велика. К перекодированному таким образом тексту при его хранении присоединяется таблица кодировки, которая позволяет при разархивировании восстановить исходный текст. Еще проще идея алгоритма Лемпеля- Зива (называемого также алгоритмом LZ77). В потоке данных анализируются последовательности байт, и если некоторая последовательность уже встречалась, и если запись о ее длине и смещении от текущей позиции короче, чем сама эта последовательность, то в создаваемый архивный файл записывается не сама последовательность, а ссылка на нее (ссылка включает смещение и длину). Например, фраза: «Лето просто пролетает», при архивации таким образом предстанет в следующем виде: «Лето_прос(-7,2)_(-7,3)_(-15,3)а(-18,2)[10]. Более подробно остановимся на терминах которые наиболее часто используются в архивации (таблица 2 приложение1).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector