Архивация

Автор работы: Пользователь скрыл имя, 05 Июня 2012 в 11:17, курсовая работа

Краткое описание

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

Содержимое работы - 1 файл

1.doc

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

     1. ЦЕЛЬ РАБОТЫ 

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

     2. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ  ПОЛОЖЕНИЯ

         2.1 Применение архиваторов

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

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

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

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

      2.2 Понятие процесса  архивации файлов

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

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

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

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

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

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

      Степень сжатия зависит от используемой программы, метода сжатия и типа исходного файла. Наиболее хорошо сжимаются файлы  графических образов, текстовые  файлы и файлы данных, для которых  степень сжатия может достигать 5 - 40%, меньше сжимаются файлы исполняемых программ и загрузочных модулей — 60 - 90%. Почти не сжимаются архивные файлы. Программы для архивации отличаются используемыми методами сжатия, что соответственно влияет на степень сжатия.

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

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

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

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

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

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

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

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

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

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

      * степень сжатия (compress rating) или отношение  (ratio) объемов исходного и результирующего  потоков; 

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

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

      2.3. Алгоритмы архивации  данных

       Все способы сжатия можно разделить на две категории: обратимое (сжатие без потерь) и необратимое сжатие.

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

      Такие подходы и алгоритмы используются для сжатия, например данных растровых графических файлов с низкой степенью повторяемости байтов в потоке. При таком подходе используется свойство структуры формата графического файла и возможность представить графическую картинку приблизительно схожую по качеству отображения (для восприятия человеческим глазом) несколькими (а точнее n) способами. Поэтому, кроме степени или величины сжатия, в таких алгоритмах возникает понятие качества, т.к. исходное изображение в процессе сжатия изменяется, то под качеством можно понимать степень соответствия исходного и результирующего изображения, оцениваемая субъективно, исходя из формата информации. Для графических файлов такое соответствие определяется визуально, хотя имеются и соответствующие интеллектуальные алгоритмы и программы. Необратимое сжатие невозможно применять в областях, в которых необходимо иметь точное соответствие информационной структуры входного и выходного потоков. Данный подход реализован в популярных форматах представления видео и фото информации, известных как JPEG и JFIF алгоритмы и JPG и JIF форматы файлов.

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

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

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

      2.3. 1 Алгоритмы сжатия без потерь

                 2.3.1.1. Сжатие способом кодирования серий (RLE)

            Наиболее известный простой подход и алгоритм сжатия информации обратимым путем - это кодирование серий последовательностей (Run Length Encoding - RLE).

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

      Например:

      44 44 44 11 11 11 11 11 01 33 FF 22 22 - исходная последовательность

      03 44 05 11 01 01 01 33 01 FF 02 22 - сжатая последовательность

      Первый  байт указывает сколько раз нужно  повторить следующий байт

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

      Данные  методы, как правило, достаточно эффективны для сжатия растровых графических изображений (BMP, PCX, TIF, GIF), т.к. последние содержат достаточно много длинных серий повторяющихся последовательностей байтов.

      Недостатком метода RLE является достаточно низкая степень сжатия. 

            2.3.1.2 Алгоритм Хаффмана 

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

      Если  мы будем учитывать все 256 символов, то для нас не будет разницы  в сжатии текстового и EXE файла.

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

      Пример:

      Мы  имеем файл длинной в 100 байт и  имеющий 6 различных символов в себе . Мы подсчитали вхождение каждого из символов в файл и получили следующее :

      

      Теперь  мы берем эти числа и будем  называть их частотой вхождения для  каждого символа.

      

      Мы  возьмем из последней таблицы 2 символа  с наименьшей частотой. В нашем  случае это D (5) и какой либо символ из F или A (10), можно взять любой  из них например A.

      Сформируем  из "узлов" D и A новый "узел", частота вхождения для которого будет равна сумме частот D и A :

      

      Номер в рамке - сумма частот символов D и A. Теперь мы снова ищем два символа  с самыми низкими частотами вхождения. Исключая из просмотра D и A и рассматривая вместо них новый "узел" с суммарной частотой вхождения. Самая низкая частота теперь у F и нового "узла". Снова сделаем операцию слияния узлов :

      

      Рассматриваем таблицу снова для следующих  двух символов ( B и E ).

      Мы  продолжаем в этот режим пока все "дерево" не сформировано, т.е. пока все не сведется к одному узлу.

Информация о работе Архивация