Архивация методом Лемпеля-Зива

Автор работы: Пользователь скрыл имя, 06 Января 2013 в 23:07, курсовая работа

Описание работы

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

Содержание работы

ВВЕДЕНИЕ 4
Глава 1. ОПРЕДЕЛЕНИЕ СОДЕРЖАНИЯ ОСНОВНЫХ ПОНЯТИЙ 6
1.1. Основные виды программ-архиваторов 6
1.2. Показатель - степени сжатия файлов 8
1.3. Сжатие файлов при архивации 10
Глава 2. АЛГОРИТМЫ АРХИВАЦИИ ДАННЫХ 13
2.1. Сжатие способом кодирования серий (RLE) 15
2.2. Алгоритм Хаффмана 15
2.3. Арифметическое кодирование 18
2.4. Алгоритм Лемпеля-Зива-Велча (LZW) 20
2.5. Двухступенчатое кодирование. Алгоритм Лемпеля-Зива 21

Файлы: 1 файл

Курсовая 1 и 2 гл.doc

— 116.50 Кб (Скачать файл)

Федеральное агентство по образованию

Тульский Государственный  педагогический университет

имени  Л.Н.Толстого

Кафедра информатики  и вычислительной техники

Курсовая работа

 

Архивация методом Лемпеля-Зива

студентки 2 курса группы В

специальности 351500 –  МОиАИС

Шутовой Анны Владимировны

Допускается к защите.     Научный руководитель:

Зав. кафедрой ____________    Гордеев Вячеслав Валерьевич

«___» ______________ 2010 г.  

Тула – 2010

 

 

ОГЛАВЛЕНИЕ

стр.

ВВЕДЕНИЕ

 

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

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

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

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

Работа архиваторов основана на том, что они находят в файлах повторяющиеся участки и пробелы, помечают их в архивном файле и затем при распаковке восстанавливают по этим отметкам исходные файлы.

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

Ряд архиваторов позволяют  создавать многотомные архивы, самоизвлекающиеся  архивы, архивы, содержащие каталоги. Наиболее популярны и широко используются следующие архиваторы: ARJ, PKZIP/PKUNZIP, RAR, ACE, LHA, ICE, PAK, PKARC/PKXARC, ZOO, HYPER, AIN.

Наиболее высокоэффективными являются архиваторы RAR, ACE, AIN, ARJ.

Они обеспечивают наибольшую степень сжатия информации и имеют  наиболее высокую скорость работы. Архиватор RAR имеет удобный графический интерфейс и позволяет читать текстовые файлы, находящиеся как в rar-архиве, так и в arj и zip-архивах. Архиватор AIN имеет русскоязычный интерфейс.

Глава 1. ОПРЕДЕЛЕНИЕ СОДЕРЖАНИЯ ОСНОВНЫХ ПОНЯТИЙ

    1. Основные виды программ-архиваторов

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

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

ARJ, PKPAK, LHA, ICE, HYPER, ZIP, РАК, ZOO, EXPAND, разработанные за рубежом, а также AIN и RAR, разработанные в России. Обычно упаковка и распаковка файлов выполняются одной и той же программой, но в некоторых случаях это осуществляется разными программами, например, программа РКZIР производит упаковку файлов, a PKUNZIP - распаковку файлов.

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

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

Самораспаковывающийся архив получил название SFX - архив (SelF - eXtracting). Архивы такого типа в MS DOS обычно создаются в форме .ЕХЕ - файла.

Многие программы - архиваторы производят распаковку файлов, выгружая их на диск, но имеются и такие, которые  предназначены для создания упакованного исполняемого модуля (программы). В результате такой упаковки создается программный файл с теми же именем и расширением, который при загрузке в оперативную память самораспаковывается и сразу запускается. Вместе с тем возможно и обратное преобразование программного файла в распакованный формат. К числу таких архиваторов относятся программы PKLITE, LZEXE, UNP.

Программа EXPAND, входящая в состав утилит операционной системы MS DOS и оболочки Windows, применяется для распаковки файлов программных продуктов, поставляемых фирмой Microsoft.

Программы - архиваторы RAR и AIN, кроме обычного режима сжатия, имеют режим solid, в котором создаются архивы с повышенной степенью сжатия и особой структурой организации. В таких архивах все файлы сжимаются как один поток данных, т.е. областью поиска повторяющихся последовательностей символов является вся совокупность файлов, загруженных в архив, и поэтому распаковка каждого файла, если он не первый, связана с обработкой других. Архивы такого типа предпочтительнее использовать для архивирования большого числа однотипных файлов. Управление программой - архиватором осуществляется одним из двух способов:

1) с помощью командной  строки MS DOS, в которой формируется  команда запуска, содержащая имя программы - архиватора, команду управления и ключи ее настройки, а также имена архивного и исходного файлов; подобное управление характерно для архиваторов ARJ, AIN, ZIP, РАК, LHA и др.;

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

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

 

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

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

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

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

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

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

Кс=(Vc/Vo)*100%

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

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

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

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

    1. Сжатие файлов при архивации

 

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

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

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

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

2)алгоритмы сжатия с потерями, которые удаляют из потока

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

Преимущество отдается естественно, первой группе алгоритмов.

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

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

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

Практически все популярные программы  архивации без потерь

(ARJ, RAR, ZIP и т.п.) используют объединение  этих двух методов - алгоритм LZH.

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

Алгоритм Лемпеля-Зива. Классический алгоритм Лемпеля-Зива -

LZ77, названный так по  году своего опубликования, предельно  прост. Он формулируется следующим образом : <если в прошедшем ранее выходном потоке уже встречалась подобная последовательность байт, причем запись о ее длине и смещении от текущей позиции короче чем сама эта последовательность, то в выходной файл записывается ссылка (смещение, длина), а не сама последовательность>.  Так фраза <КОЛОКОЛ_ОКОЛО_КОЛОКОЛЬНИ> закодируется как <КОЛО(-4,3)_(-5,4)О_(-14,7)ЬНИ>.

Глава 2. АЛГОРИТМЫ АРХИВАЦИИ ДАННЫХ

 

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

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

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

Информация о работе Архивация методом Лемпеля-Зива