42 42 42 42 42 4с 4с 4с 4с 4с 41 41 41 41 41
Архиватор может представить этот файл в следующем шестнадцатиричном виде:
01 05 42 06 05 4С OA 05 41
Эти последовательности можно интерпретировать следующим образом: с первой позиции 5 раз повторяется знак В, с шестой позиции 5 раз повторяется знак L и с позиции 11 5 раз повторяется знак А. Согласитесь, очень простая демонстрация алгоритма архивации. Очевидно, что для хранения файла в его последней форме требуется лишь 9 байт - меньше на 6 байт.
Описанный метод является простым и очень эффективным способом сжатия файлов. Однако он не обеспечивает большой экономии объема, если обрабатываемый текст содержит небольшое количество последовательностей повторяющихся символов.
Существуют два основных способа проведения сжатия:
1. статистический
2. словарный.
Лучшие статистические методы применяют арифметическое кодирование, лучшие словарные - метод Зива-Лемпела. В статистическом сжатии каждому символу присваивается код, основанный на вероятности его появления в тексте. Высоко вероятные символы получают короткие коды, и наоборот. Такой способ сжатия называют оптимальным префиксным кодом. Для его построения используют алгоритмы Хаффмана или Шеннона-Фано. Например, анализируя любой английский текст, можно установить, что буква Е встречается гораздо чаще, чем Z, а Х и Q относятся к наименее встречающимся. Таким образом, используя специальную таблицу соответствия, можно закодировать каждую букву Е меньшим числом бит, используя более длинный код для более редких букв, тогда как в обычных кодировках любому символу соответствует битовая последовательность фиксированной длины (как правило, кратной байту).
В словарном методе группы последовательных символов или "фраз" заменяются кодом. Замененная фраза может быть найдена в некотором "словаре".
Популярные архиваторы работают на основе алгоритма Лемпела-Зива. Сущность алгоритмов Зива и Лемпела состоит в том, что фразы заменяются указателем на то место, где они в тексте уже ранее появлялись. Это семейство алгоритмов обозначается как LZ-сжатие. Такой метод быстро приспосабливается к структуре текста и может кодировать короткие функциональные слова, т.к. они очень часто в нем появляются. Новые слова и фразы могут также формироваться из частей ранее встреченных слов.
Декодирование сжатого текста осуществляется напрямую - происходит простая замена указателя готовой фразой из словаря, на которую тот указывает. На практике LZ-метод добивается хорошего сжатия, его важным свойством является очень быстрая работа декодировщика.
К основным функциям архиваторов относятся:
1. архивация указанных файлов или всего текущего каталога;
2. извлечение отдельных или всех файлов из архива;
3. просмотр содержимого архивного файла;
4. проверка целостности архивов;
5. восстановление поврежденных архивов;
6. ведение многотомных архивов;
7. вывод файлов из архива на экран или на печать;
8. парольная защита архива.
ЗАДАНИЯ
1. В своей личной папке создать директорию под названием АРХИВ_фамилия, в эту директорию накидать много разных файлов: текстовых, исполняемых, командных, программных (возьмите тренажер БИОС) и т.д. Обязательно должны быть файлы с расширением doc (или docх), exe, bmp, jpeg, txt, pdf, ppt (или pptх), xls. Размер папки АРХИВ_фамилия должен быть достаточно большим, иначе папка будет плохо сжиматься при архивации. Файлов каждого типа может быть несколько, программный файл "exe" можно взять из лабораторной по диагностике.
2. Заархивировать целиком папку АРХИВ_фамилия программой-архиватором 7z (если на компьютере установлен другой архиватор, можно работать с ним) всеми возможными форматами, заполнить таблицу, сравнить архивы по размеру, степени сжатия и скорость сжатия.
Для этого, правой кнопкой мыши кликаем по папке, наводим на 7-zip и жмем "Добавить к архиву". Должно открыться окно:
Каждый раз архивируем одну и туже папку выбирая разные форматы сжатия: 7z, tar, wim, zip.
Некоторые форматы могут отсутствовать. Скорость сжатия можно оценить тестируя получившийся архив (правой кнопкой мыши кликаем по архиву, наводим на 7-zip и жмем "Тестировать").
Таблица 1.
Формат сжатия | Размер папки | Размер папки после сжатия | Степень сжатия(%) | Скорость сжатия |
7z tar wim zip | Формула в тексте методички |
2 Выборочно заархивировать файлы из папки "АРХИВ_фамилия" с различным расширением в формате 7z. Из нескольких файлов одного типа лучше выбирать для архивации наибольй. Сравнить объемы получившихся файлов, результаты занести в таблицу и сделать выводы:
Таблица 1.
Тип файла | Размер файла | Размер файла после сжатия | Степень сжатия(%) |
doc / docх exe bmp jpeg txt pdf ppt / pptх xls |
3 МОЖНО НЕ ДЕЛАТЬ установить разные уровни сжатия при одинаковом формате, сравнить
уровень сжатия | Размер файлов | Размер файлов после сжатия | Степень сжатия(%) | Скорость сжатия |
4 Добавить какой-нибудь файл в уже существующий архив формата 7z
5 Удалить какой-нибудь файл из уже существующий архива формата 7z
6 получить информацию об архиве 7z
7 Установить пароль на архив (архивируем какой-нибудь файл или папку с установлением пароля)
8 Распаковать архив какой-нибудь уже существующий архив формата 7z
9 Разбить при архивации на несколько архивов
10 Сделать самораспаковывающийся архив
11. Пишем вывод по работе.
Дополнительные ссылки на информацию по работе с архиватором под Линукс
http://rus-linux.net/MyLDP/consol/install-and-use-7zip-archiver-on-linux.html
http://rus-linux.net/MyLDP/consol/7z-command-switches.html