Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии 


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




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

Сжатие информации — это пр-с преобразования инф-ции, храня­щейся в файле, к виду, при котором уменьш-ся избыточность в ее пред­ставлении и требуется меньший объем памяти для хранения.

Применяются раз­личные алгоритмы сжатия информации.

Сжиматься могут 1 или неск-ко файлов, кот. в сжатом виде помеща­ются в архивный файл или архив.

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

Архивация (упаковка) — помещение исходных файлов в арх. файл в сжатом или несжатом виде.

Разархивация (распаковка) — пр-с восстановления файлов из архива в таком виде, какой они имели до загрузки в архив. При распаковке файлы извлек-ся из архива и помещаются на диск или в ОП.

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

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

Степень сжатия зависит от используемой программы, метода сжатия и типа исходного файла. Достаточно хорошо архивируются графические файлы в формате *.bmp (на 80 - 85%) и документы MS Office (в среднем на 60%), немного хуже - Web-страницы (40 - 50%). Для исполняемых файлов этот показатель варьируется (~50% в зависимости от архиватора) и в большинстве случаев довольно низкий, так как они обычно уже сжаты программистами с помощью специальных. Архивирование практически не влияет на размер сжатых файлов (графические файлы в формате *.gif и*.jpg, DivX-фильмы, образы CD и т. д.). Что же касается игровых демо-версий программ, то лучший способ их хранения - в виде созданных разработчиками инсталляционных файлов, которые намного удобнее и практичнее, нежели самодельный архив, пусть даже и на 20% меньший по размеру

Программы для упаковки и распаковки файлов, называются про­граммами-архиваторами.

Большие по объему арх. файлы м. б. размещены на нескольких дисках (томах). Такие архивы называются многотомными. Создавая архив из неск-х частей, можно записать его части на несколько носителей. Некоторые диспетчеры (например WinZip) выполняют разбиение сразу на гибкие диски, а некоторые (например WinRAR и WinArj) позволяют выполнить предваритель­ное разбиение архива на фрагменты заданного размера на жестком диске. При создании распределенных архивов диспетчер WinZip обладает неприятной осо­бенностью: каждый том несет файлы с одинаковыми именами. В результате этого нет возм-сти установить номера томов, хранящихся на каждом из гибких дис­ков, по названию файла. Поэтому кажд. диск следует маркировать пометками на наклейке, а при создании распределенного архива следует аккуратно переклады­вать дискеты из начальной стопки в конечную, чтобы не перепутать последова­тельность немаркированных томов. В сл.необх-сти узнать номер тома можно не по названию файла, а по метке на диске, хотя эта операция не слишком удобна. Диспетчеры архивов WinArj и WinRAR маркируют все файлы распределенного архива разными именами и потому не создают подобных проблем.

Из числа наиболее популярных программ-архиваторов можно выделить: ARJ, РКРАК, LHA, ICE, HYPER, ZIP, РАК, ZOO, EXPAND, разработанные за рубежом, а также AIN и RAR, разработанные в России. Обычно упаковка и распаковка файлов выпол­няются одной и той же программой, но в некоторых случаях это осуществляется разными программами. Программы-архиваторы позволяют создавать и такие архивы, для извлечения из кот. содержащихся в них файлов не требуются какие-либо программы, так как сами архив­ные файлы могут содержать программу распаковки. Такие архивные файлы называются самораспаковывающимися— это загрузочный, испол­няемый модуль, кот. способен к самост. разархивации находящихся в нем файлов без использования программы-архиватора. Самораспаковывающийся архив получил название SFX-архив (SelF-eXtracting). Архи­вы такого типа в MS DOS обычно создаются в форме .ЕХЕ-файла.



Многие программы-архиваторы производят распаковку файлов, выгружая их на диск, но имеются и такие, которые предназначены для создания упакованного исполняемого мо­дуля (программы). В результате такой упаковки создается программный файл с теми же именем и расширением, который при загрузке в оперативную память самораспаковывается и сразу запускается. Вместе с тем возможно и обратное преобразование программного файла в распакованный формат. К числу таких архиваторов относятся программы PKLITE, LZEXE,UNP. Программа EXPAND, входящая в состав утилит ОС MS-DOS и оболочки Windows, применяется для распаковки файлов программных продуктов, постав­ляемых фирмой Microsoft. Программы-архиваторы RAR и AIN, кроме станд. режима сжатия, имеют режим solid, в кот. создаются архивы с повышенной степенью сжатия и особой стр-рой организации. В таких архивах все файлы сжимаются как 1 поток данных.

Ср-ва архивации данных называют диспетчерами архивов.

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

1)извлечение файлов из архивов; 2)создание новых архивов; 3)добавление файлов в имеющийся архив; 4)создание самораспаковывающихся архивов; 5)создание распределенных архивов на носителях малой емкости; 6)тестирование целостности структуры архивов; 7)полное или частичное восстановление поврежденных архивов; 8)защита архивов от просмотра и несанкционированной модификации.

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

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

1)просмотр файлов различных форматов без извлечения их из архива; 2)поиск файлов и данных внутри архивов; 3)установку программ из архивов без предварительной распаковки; 4)проверку отсутствия компьютерных вирусов в архиве до его распаковки; 5)криптографическую защиту архивной информации; 6)декодирование сообщений электронной почты; 7)«прозрачное» уплотнение исполнимых файлов .ЕХЕ и .DLL; 8)создание самораспаковывающихся многотомных архивов; 9)выбор или настройку коэффициента сжатия информации.

Рассмотрим некоторые из популярных программ-архиваторов.

WinZip 9.0 Beta 3- из немногочисленных плюсов этого архиватора следует отметить лишь довольно высокую скорость работы и невероятную популярность формата *.zip среди пользователей. Девятая по счету версия WinZip, находящаяся в состоянии бета-версии, наконец-то обзавелась улучшенным алгоритмом сжатия enhanced deflate и новой, 128- и 256-битной технологией шифрования архивов. Второе нововведение является огромным шагом вперед - предыдущая защита архивов Zip 2.0 "взламывалась" слишком просто. WinZip весьма ограничен в поддержке других форматов: кроме самого Zip, программа может распаковывать CAB, Microsoft Compress, GZip, TAR, UUencode, XXencode, BinHexиMIME, а после подключения внешних программ -- еще и ARCARJ и LZH. Полностью (чтение и компрессия) поддерживается лишь Zip. Однако, наряду с достоинствами имеются и недостатки: неэффективный алгоритм работы. Многие архиваторы от сторонних разработчиков, для которых Zip является отнюдь не основным форматом, зачастую архивируют в него лучше, чем сам WinZip.

WinRAR 3.30 является лучшим архиватором для Windows. Он позволяет распаковывать архивы CAB, ARJ, LZH, TAR, GZip, ACE, UUE, BZ2, JAR и ISO-образы, а компрессия данных возможна в форматы ZIP и RAR. Размер архивов практически не ограничен и составляет на сегодня 9000 петабайт. Кроме того, поддерживаются права доступа и потоки данных в файловой системе NTFS, что дополнительно улучшает процессы создания и распаковки архивов. Очень высокий выигрыш в размере (10-50%), особенно при архивировании большого количества малых файлов, получается при использовании опции создания непрерывных (solid) архивов; не последнюю роль в компрессии данных играет и большой размер словаря. В новой версии программы появилась опция "проверить архив на вирусы". Следует отметить поддержку конвертации не-RAR архивов в RAR, проверку их на вероятные ошибки, широчайшие возможности консольной версии, местные аналоги папки Избранное, удобный интерфейс.

WinAce 2.5 - до выхода третьей версии WinRAR удерживал пальму первенства среди архиваторов по качеству сжатия данных. Набор ф-ций в программе достаточно велик: полная поддержка ACE, ZIP, LHA, MS CAB, Java JAR, GZip, TAR, GZipped TAR и частичная (только распаковка) RAR, ARC, ARJ, BZip2иISO-образов. WinAce позволяет создавать многотомные архивы в форматах ACE, ZIP и CAB. Для улучшения сжатия графических и звуковых, равно как и исполняемых (*.ехе) файлов, в архиваторе реализованы дополнительные алгоритмы мультимедиакомпрессии, а для всех остальных типов данных - дельта-сжатие. Изюминкой этого архиватора является встроенный просмотровщик множества популярных форматов графических файлов, HTML-страниц и ASCII-файлов (в кодировке DOS). Естественно, поддерживаются и создание непрерывных архивов, что проявляется в дополнительной (до 50%) экономии места, большой размер словаря (до 4 MB), проверка на целостность всех знакомых программе форматов, восстановление ACE и ZIP-архивов и многое другое. Кроме того, можно конвертировать архивы различных форматов в АСЕ для уменьшения их размера, а с помощью внешнего модуля SFX-Factory даже создавать инсталляции на их основе. К этому следует добавить отличную интеграцию WinAce с оболочкой Windows, автоматическую инсталляцию программ из архивов. К сожалению, формат ACE мало распространен среди пользователей.

PowerArchiver 2003 v.8.70 поддерживает 17 различных форматов архивов, причем полностью (упаковка/распаковка) поддерживаются ZIP, BH (BlackHole), TAR, LHAиCAB, распространенные в Internet форматы файлов UUencode, XXencode, Base64(MIME)иyENC, а остальные могут только читаться/распаковываться. Встроенный вьювер позволяет просматривать TXT, RTF и все популярные форматы графических файлов прямо в архиве, а менеджер FTP-соединений - тут же загружать компрессированные данные на FTP-серверы. Кроме того, PowerArchiver предлагает пользователю 5 различных методов шифрования особо секретных данных и новый алгоритм сжатия Deflate64, которым недавно обзавелся и WinZip 9.0. Остальной набор функций стандартен: конвертирование различных архивов в ZIP, CAB, LHA, BH (BlackHole)и TAR, отличная интеграция с Windows, возможность создания многотомных Zip-архивов и множество других. Особой гордостью авторов программы является то, что она получила сертификат от Microsoft как ПО, оптимизированное под Windows XP.

7Zip 3.13 - этот малоизвестный архиватор от российских разработчиков. Качество архивирования данных в собственном формате *.7z весьма высоко: 7-Zip опережает даже WinRAR. Причиной тому - более совершенный алгоритм сжатия и практически неограниченный объем словаря (до 192 MB), которые благотворно влияют на эффективность компрессии данных. То же касается и архивирования в Zip, где 7-Zip снова проявил себя с лучшей стороны, иногда даже опережая на несколько процентов эталон (WinZip 9.0). Однако, следует отметить невероятно медленную работу 7-Zip, которая наверняка отпугнет от него многих пользователей. Не в последнюю очередь это обусловлено величиной словаря - чем он больше, тем выше требования программы к оперативной памяти ПК и процессору. ZIP и 7z, полностью поддерживаются TAR, GZip, BZip2, а частично (только распаковка) - RAR, CAB, ARJ и др. Данный архиватор пока не научился работать с многотомными архивами. С др. стороны, все это никак не мешает использовать программу по ее прямому назначению - сжатию больших объемов малоиспользуемых данных. 7-Zip поддерживает непрерывный (solid) архив. В этом сл. все данные будут архивироваться в виде одного большого файла. Это значительно (теоретически до 50%) увеличивает эффективность сжатия инф-ции, но данный метод имеет и свои недостатки. Распаковка одного или нескольких файлов из такого архива займет значительно больше времени, чем из обычного. Влияние на эффективность компрессии большого размера словаря значительно меньше, чем в случае с непрерывным архивом - в лучшем случае 5-10%, и во многом зависит от типа сжимаемых данных. Из недостатков большого словаря следует отметить увеличение системных требований к ОП и процессору. В случае же мультимедиасжатия наблюдается прямо противоположная ситуация. Отключение данной опции, наоборот, приводит к замедлению работы программы - естественно, вместе с ухудшением коэффициента компрессии. Таким образом, наиболее оптимальная конфигурация архиватора следующая: опция "непрерывный архив" включена, размер словаря 4096 KB, мультимедиасжатие включено (автоматически). Кроме того, можно включить опцию "протестировать архив сразу же после его создания", это застрахует вас от возможных ошибок при архивировании.

Результаты тестирования различных архиваторов доказывают неоспоримое преимущество WinRAR и 7Zip абсолютно во всех категориях. Причем 7Zip опережает WinRARбуквально на доли процента, однако разница в затраченном времени у них просто огромная - в 2-3 раза. По степени сжатия WinAce соблюдает почти полный паритет с WinRAR, но затраты времени на архивирование у него, как и у 7Zip, больше в 2-3 раза. Аутсайдерами тестирование являются WinZip и PowerArchiver, и это неудивительно, т.к. они оба используют один и тот же алгоритм компрессии данных. Разницы между обычным алгоритмом сжатия Zip-файлов и enhanced deflate практически нет, зато в последнем случае время создания архива увеличивается в среднем на 20-30%.

\

«Информационные системы»





Рекомендуемые страницы:


Читайте также:



Последнее изменение этой страницы: 2016-04-10; Просмотров: 805; Нарушение авторского права страницы


lektsia.com 2007 - 2021 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.019 с.) Главная | Обратная связь