Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Алгоритмы и методы сжатия данных.
Одним из наиболее широко распространенных видов сервисных программ являются программы, предназначенные для архивации, упаковки файлов путем сжатия хранимой в них информации. Сжатие информации — это пр-с преобразования инф-ции, хранящейся в файле, к виду, при котором уменьш-ся избыточность в ее представлении и требуется меньший объем памяти для хранения. Применяются различные алгоритмы сжатия информации. Сжиматься могут 1 или неск-ко файлов, кот. в сжатом виде помещаются в архивный файл или архив. Архивный файл — это спец. образом организованный файл, содержащий в себе 1 или несколько файлов в сжатом или несжатом виде и служебную информацию об именах файлов, дате создания и т.п. Архивация (упаковка) — помещение исходных файлов в арх. файл в сжатом или несжатом виде. Разархивация (распаковка) — пр-с восстановления файлов из архива в таком виде, какой они имели до загрузки в архив. При распаковке файлы извлек-ся из архива и помещаются на диск или в ОП. Целью упаковки файлов обычно являются обеспечение более компактного размещения инф-ции на диске, сокращение времени и соответственно стоимости передачи информации по каналам связи в комп. сетях. Кроме того, упаковка в 1 архивный файл группы файлов существенно упрощает их перенос с одного компьютера на др, сокращает время копир-я файлов на диски, позв-ет защитить инф-цию от несанкционированного доступа, способствует защите от заражения компьютерными вирусами. Степень сжатия файлов характеризуется коэффициентом Кс, определяемым как отношение объема сжатого файла Vc к объему исходного файла Vо, выраженное в процентах:
Степень сжатия зависит от используемой программы, метода сжатия и типа исходного файла. Достаточно хорошо архивируются графические файлы в формате *.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; Просмотров: 1247; Нарушение авторского права страницы