Автор: Пользователь скрыл имя, 20 Октября 2011 в 16:52, курсовая работа
Архивация файлов - это упаковка файлов путем сжатия хранимой в них информации.
Архивация (упаковка) - помещение (загрузка) исходных файлов в архивный файл в сжатом или несжатом виде
Сжатие информации - это процесс преобразования информации, хранящейся в файле, к виду, при котором уменьшается избыточность в ее представлении и соответственно требуется меньший объем памяти для хранения.
Архивный файл - это специальным образом организованный файл, содержащий в себе один или несколько файлов в сжатом или несжатом виде и служебную информацию об именах файлов, дате, и времени их создания или модификации, размерах и т. п.
Введение 3
Описание назначения всех команд меню WinRAR 5
Примеры создания и распаковывания архивов для текстовых,
графических и системных файлов 6
2.1. Архивация файлов 6
2.2. Разархивация файлов 9
2.3. Примеры архивации и разархивации файлов 10
Примеры создания архивов с опциями: пароль, многотомный архив,
самораспаковывающийся архив 13
Создание архива с опцией пароль 13
3.2. Создание многотомного архива 14
3.3. Создание самораспаковывающегося архива 15
Теоретические основы сжатия файлов 15
Кодирование числовых последовательностей 15
Кодирование словарей, алгоритм Зива 18
Заключение 22
Список литературы 23
Формат архива - RAR, метод сжатия - обычный, размер словаря - 1024 Кбайт, метод обновления - добавить с заменой файлов, архив - D:\KADR\kadr.rar
Рисунок 7 - Установка параметров архивирования
5. Щелкнуть мышью на кнопке «OK».
Результаты архивации показаны на Рисунке 8, откуда вытекает, что файлы Zarpl.xls и Posobie.xls, занимаемые 27 Кб и помещенные в архивный файл занимают объем около 3 Kб.
Рисунок 8 - Архивный файл KADR.rar
Пример 2.
Извлечь на диск D: в папку OTDEL файл Posobie.xls из архива KADR.rаr, который находится в папке KADR на диске D: .
Для извлечения файла из архива в другую папку надо выполнить такие действия:
Рисунок
9 - Извлечение файла Posobie.xls из архивного
файла KADR.rar
Для создания архива с опцией пароль необходимо:
Рисунок 10 - Диалоговое окно «Ввод пароля по умолчанию»
Для создания многотомного архива необходимо в диалоговом окне «Имя и параметры архива» в пункте «Разделить на тома размером» (см. Рисунок 11) выбрать размер тома.
Рисунок 11 – Пункт «Разделить на тома размером»
окна «Имя и параметры архива»
Объём томов также можно указывать в килобайтах, в тысячах байт, в мегабайтах и в миллионах байт. Для этого нужно после числового значения требуется поставить один из следующих буквенных идентификаторов (все буквы латинские):
k | килобайты (множитель 1024) |
b | байты (множитель 1) |
m | мегабайты (1 Мбайт = 1048576 байт) |
M | миллионы байт (множитель 1 000 000) |
g | гигабайты (1 Гбайт = 1073741824 байт) |
G | миллиарды байт (множитель 1 000 000 000) |
Для создания самораспаковывающегося архива, необходимо включить параметр «Создать SFX-архив» в диалоговом окне «Имя и параметры архива» (см. Рисунок 12). Для распаковки такого архива WinRAR не требуется - архив имеет расширение .EXE, и чтобы извлечь его содержимое, достаточно лишь запустить этот файл (дважды щёлкнуть мышью на его значке).
Рисунок
12 - Параметр «Создать SFX-архив» окна «Имя
и параметры архива»
Различают два метода – разностное кодирование и кодирование повторений.
Суть
разностного кодирования
2 14 18 27 34
первый способ даст последовательность:
2 12 4 9 7.
Этот метод эффективен для медленно меняющихся последовательностей. Его недостаток состоит в том, что для получения значения n-го члена последовательности надо декодировать все предыдущие (n-1) членов.
Второй способ порождает последовательность:
-17 -5 -1 8 15,
поскольку среднее значение для исходной последовательности - 19.
Этот способ эффективен, когда максимальное отклонение от среднего значительно меньше абсолютного значения среднего. Достоинство данного подхода заключается в независимости декодирования любого n-го члена числовой последовательности от декодирования остальных ее составляющих: для этого нужно знать только значение среднего арифметического данной последовательности, что вынуждает хранить это число вместе с самой закодированной последовательностью.
Оба метода могут использоваться не только для эффективного кодирования прикладных массивов данных (тех, которые создает пользователь компьютера), но и для сжатия любой информации во внутреннем представлении.
В самом деле, внутреннее представление символьной информации выполнено с использованием одной из систем кодирования по образцу, например ASCII-кода, который представляет собой двузначные шестнадцатеричные числа для каждого кодируемого символа. Иными словами, внутреннее представление любой информации – массив двузначных шестнадцатеричных чисел, к которому может быть применен один из указанных выше методов.
Кодирование повторений заключается в замене цепочки одинаковых цифровых символов самим символом и числом повторений (возможно включение разделителей). Например, для последовательности:
55556666888888
применение этого способа даст последовательность:
5(4)6(4)8(6),
где круглые скобки играют роль разделителей.
Данный метод может быть использован для эффективного кодирования растровых форматов изображений. Растровыми называются форматы изображений, которые получаются во время ввода изображения путем кодирования каждой точки – пиксела (pixel – PIсture ELement) – двумерного пространства, на котором расположено исходное изображение, даже если эта точка не содержит самого изображения. Например, на рисунке
пространство изображения - воображаемый прямоугольник, включающий само изображение функции вместе с осями координат и введенными обозначениями. Очевидно, изображение занимает не все пространство. Тем не менее, кодированию подлежат и «пустоты», при этом те точки, которые содержат изображение, в простейшем случае кодируются двоичной 1, точки без изображения кодируются двоичным 0 (подробнее о восприятии изображений см. далее). В результате получаются числовые последовательности, подобные следующей:
000000000000000000010000
Переведем эту двоичную последовательность в набор шестнадцатеричных цифр, используя тетрады. Получим последовательность шестнадцатеричных цифр:
00000000000080000.
Очевидно,
к таким последовательностям
можно применить метод
0(С)8000,
что означает: 0 повторяется 12 раз (С16 = 12), для остальных символов число повторений не вводится.
Поскольку результирующая последовательность должна также быть шестнадцатеричной, полученное выражение преобразуем следующим образом: заменим круглые скобки соответствующими ASCII-кодами. Тогда открывающей скобке соответствует код 2816, закрывающей – 2916. Получим:
028С2980000.
Длина результата меньше исходной последовательности (11 символов против 17), поэтому получен эффект в 6 символов.
4.2. Кодирование словарей, алгоритм Зива
Алгоритм Лемпеля-Зива-Велча - это универсальный алгоритм сжатия данных без потерь, созданный Абрахамом Лемпелем, Якобом Зивом и Терри Велчем. Он был опубликован Велчем в 1984 году, в качестве улучшенной реализации алгоритма LZ78, опубликованного Лемпелем и Зивом в 1978 году. Алгоритм разработан так, чтобы его можно было быстро реализовать, но он не обязательно оптимален, поскольку он не проводит никакого анализа входных данных.
Акроним «LZW» указывает на фамилии изобретателей алгоритма: Лемпель, Зив и Велч, но многие утверждают, что, поскольку патент принадлежал Зиву, то метод должен называться алгоритмом Зива-Лемпеля-Велча.
Данный алгоритм при сжатии (кодировании) динамически создаёт таблицу преобразования строк: определённым последовательностям символов (словам) ставятся в соответствие группы бит фиксированной длины (обычно 12-битные). Таблица инициализируется всеми 1-символьными строками (в случае 8-битных символов - это 256 записей). По мере кодирования, алгоритм просматривает текст символ за символом, и сохраняет каждую новую, уникальную 2-символьную строку в таблицу в виде пары код/символ, где код ссылается на соответствующий первый символ. После того как новая 2-символьная строка сохранена в таблице, на выход передаётся код первого символа. Когда на входе читается очередной символ, для него по таблице находится уже встречавшаяся строка максимальной длины, после чего в таблице сохраняется код этой строки со следующим символом на входе; на выход выдаётся код этой строки, а следующий символ используется в качестве начала следующей строки.
Алгоритму декодирования на входе требуется только закодированный текст, поскольку он может воссоздать соответствующую таблицу преобразования непосредственно по закодированному тексту.
Алгоритм:
Конец
На момент своего появления алгоритм LZW давал лучший коэффициент сжатия, для большинства приложений, чем любой другой хорошо известный метод того времени. Он стал первым широко используемым на компьютерах методом сжатия данных.
Алгоритм был реализован в программе compress, которая стала более или менее стандартной утилитой Unix-систем приблизительно в 1986 году. Несколько других популярных утилит-архиваторов также используют этот метод или близкие к нему.
В 1987 году алгоритм стал частью стандарта на формат изображений GIF. Он также может (опционально) использоваться в формате TIFF.
В настоящее время, алгоритм содержится в стандарте PDF.