Программные средства сжатия данных
«Классическими» форматами сжатия данных, широко используемыми в повседневной работе с компьютером, являются форматы .ZIP, .ARJ. и RAR. Программные средства, предназначенные для создания и обслуживания архивов, выполненных в данных форматах, приведены в табл. 6.2.
Таблица 6.2. Средств архивации файлов
Операционная система | Формат сжатия | Средство архивации | Средство разархивирования |
MS-DOS | .ZIP | PKZIP.EXE | PKUNZIP.EXE |
.RAR | RAR.EXE | UNRAR.EXE | |
ARJ | ARJ.EXE | ||
Windows | .ZIP | WinZip | |
.RAR | WinRAR | ||
ARJ | WinArj |
2.4.1. Базовые требования к диспетчерам архивов
Современные программные средства для создания и обслуживания архивов отличаются большим объемом функциональных возможностей, многие из которых выходят далеко за рамки простого сжатия данных и эффективно дополняют стандартные средства операционной системы. В этом смысле современные средства архивации данных называют диспетчерами архивов.
К базовым функциям, которые выполняют большинство современных диспетчеров архивов, относятся:
• извлечение файлов из архивов;
• создание новых архивов;
• добавление файлов в имеющийся архив;
• создание самораспаковывающихся архивов;
• создание распределенных архивов на носителях малой емкости;
• тестирование целостности структуры архивов;
• полное или частичное восстановление поврежденных архивов;
• защита архивов от просмотра и несанкционированной модификации.
Самораспаковывающиеся архивы. В тех случаях, когда архивация производится для передачи документа потребителю, следует предусмотреть наличие у него программного средства, необходимого для извлечения исходных данных из уплотненного архива. Если таких средств у потребителя нет или нет оснований предполагать их наличие, создают самораспаковывающиеся архивы. Самораспаковывающийся архив готовится на базе обычного архива путем присоединения к нему небольшого программного модуля. Сам архив получает расширение имени .ЕХЕ, характерное для исполнимых файлов. Потребитель сможет выполнить его запуск как программы, после чего распаковка архива произойдет на его компьютере автоматически.
Распределенные архивы. В тех случаях, когда предполагается передача большого архива на носителях малой емкости, например на гибких дисках, возможно распределение одного архива в виде малых фрагментов на нескольких носителях.
Некоторые диспетчеры (например, WinZip) выполняют разбиение сразу на гибкие диски, а некоторые (например, WinRAR и WinArj) позволяют выполнить предварительное разбиение архива на фрагменты заданного размера на жестком диске. Впоследствии их можно перенести на внешние носители путем копирования.
При создании распределенных архивов диспетчер WinZip обладает неприятной особенностью: каждый том несет файлы с одинаковыми именами. В результате этого нет возможности установить номера томов, хранящихся на каждом из гибких дисков, по названию файла. Поэтому каждый диск следует маркировать пометками на наклейке, а при создании распределенного архива следует аккуратно перекладывать дискеты из начальной стопки в конечную, чтобы не перепутать последовательность немаркированных томов.
В случае необходимости узнать номер тома можно не по названию файла, а по метке на диске, хотя эта операция не слишком удобна. Для этого следует открыть окно Мой компьютер, выбрать значок дисковода 3,5 (А:), щелкнуть на нем правой кнопкой мыши и выбрать в контекстном меню пункт Свойства. В диалоговом окне Свойства: Диск 3,5 (А:) на вкладке Общие можно узнать номер тома распределенного архива в поле Метка тома.
Диспетчеры архивов WinArj и WinRAR маркируют все файлы распределенного архива разными именами и потому не создают подобных проблем.
Гибкие диски являются крайне ненадежными носителями, поэтому архивы, сформированные на жестком диске, должны храниться до получения подтверждения от потребителя о том, что распределенный архив поступил к нему в неповрежденном виде и прошел распаковку. Правилом «хорошего тона» считается создание двух копий при передаче материалов на гибких дисках.
Защита архивов. В большинстве случаев защиту архивов выполняют с помощью пароля, который запрашивается при попытке просмотреть, распаковать или изменить архив. Теоретически, защита с помощью пароля считается неудовлетворительной и не рекомендуется для особо важной информации. В то же время необходимо отметить, что основные программные средства, используемые для восстановления утраченного пароля (или взлома закрытой информации, что, по сути, то же самое), используют методы прямого перебора. Работу этих средств можно существенно затруднить и замедлить, если расширить область перебора. Пароли на базе символов английского алфавита и цифр действительно снимаются очень быстро. Однако даже незначительное увеличение числа используемых символов за счет знаков препинания многократно увеличивает криптостойкость защиты, а использование также и символов русского алфавита может полностью опровергнуть попытки снять пароль путем перебора, сделав сроки работы неприемлемыми.
2.4.2. Дополнительные требования к диспетчерам архивов
К дополнительным функциям диспетчеров архивов относятся сервисные функции, делающие работу более удобной. Они часто реализуются внешним подключением дополнительных служебных программ и обеспечивают:
• просмотр файлов различных форматов без извлечения их из архива;
• поиск файлов и данных внутри архивов;
• установку программ из архивов без предварительной распаковки;
• проверку отсутствия компьютерных вирусов в архиве до его распаковки;
• криптографическую защиту архивной информации;
• декодирование сообщений электронной почты;
• «прозрачное» уплотнение исполнимых файлов .ЕХЕ и .DLL;
• создание самораспаковывающихся многотомных архивов;
• выбор или настройку коэффициента сжатия информации.
Порядок выполнения работы
Задание 1. Просмотр архивного файла в формате .ZIP
1. Запустите диспетчер архивов WinZip 7.0 командой Пуск / Программы / WinZip /WinZip7.0.
2. Вставьте гибкий диск, содержащий архивный файл в формате ZIP, в дисковод А:.
3. Дайте команду File / Open Archive (Файл / Открыть архив).
4. В диалоговом окне Open Archive (Открытие архива) воспользуйтесь раскрывающей кнопкой в списке Папка, разыщите и откройте Диск 3,5 (А:), выделите значок файла в формате ZIP и щелкните на командной кнопке Открыть.
5. Выделите значок файла, который желаете просмотреть, например ReadMe.Txt.Дважды щелкните на этом значке, и файл откроется в окне ассоциированной программы. По умолчанию в операционной системе Windows с файлами типа .ТХТ ассоциирована программа Блокнот.
6. Если нужно просмотреть файл в другой программе, выделите его значок и воспользуйтесь командой Actions / View (Действия / Просмотр). По этой команде откроется диалоговое окно View (Просмотр), в котором можно самостоятельно указать, какую программу следует использовать в качестве средства просмотра для файлов данного типа.
7.Выделите для просмотра файл с иным расширением имени, например file_id.diz. Этот тип файлов не имеет ассоциированной программы просмотра. После предупреждающего сообщения он откроется в стандартном средстве просмотра Windows – в программе Быстрый просмотр.
Задание 2. Извлечение файлов из ZIP-архива
1. Предварительно определите папку, в которую будут помещены файлы, извлекаемые из архива. Если предпочтений нет, создайте временную папку, например папку С:\Мои документы\Zip_Test.
2. Запустите диспетчер архивов WinZip 7.0 и откройте ZIP-архив размещенный на гибком диске А:.
3. Выделите файлы, которые желаете извлечь. При групповом выделении пользуйтесь левой кнопкой мыши совместно с клавишами CTRL и SHIFT.
4. Дайте команду Actions / Extract (Действия / Извлечь) – откроется диалоговое окно Extract (Извлечение).
5. На левой панели диалогового окна установите необходимые переключатели.
6. На правой панели откройте папку-приемник, в которую произойдет извлечение выделенных файлов. Работа на правой панели аналогична работе с Проводником Windows.
7. Запустите процесс извлечения файлов щелчком на командной кнопке Extract(Извлечь).
8. По окончании процесса закройте диалоговое окно щелчком на кнопке Cancel (Отмена) или на закрывающей кнопке в правом верхнем углу окна и завершите работу с программой WinZip командой File / Exit (Файл / Выход).
9. С помощью Проводника (Пуск / Программы / Проводник) убедитесь в том, что файлы, извлеченные из архива, действительно поступили в заданную папку.
10. Удалите экспериментальную папку \Zip_Test.
Задание 3. Создание ZIP-архива
1. Создайте папку для экспериментов, например C:\Windows\Temp\Zip_Test.
2. Методом копирования наполните эту папку произвольными файлами, например, взяв их из стандартной папки C:\Windows\Media (файлы в этой папке имеют «длинные имена», а нам важно убедиться в том, что после архивации они остаются неповрежденными).
3. Запустите диспетчер архивов WinZip 7.0.
4.Дайте команду File / New Archive (Файл / Создать Архив) – откроется диалоговое окно New Archive (Создание архива). В этом окне, прежде всего, выберите папку, в которой будет создан архив, например C:\Windows\Temp\Zip_Test.
5. Введите имя архива в поле Имя файла (например, Media) и убедитесь, что в поле Files of type (Тип файла) установлен тип Zip files.
6. Обязательно установите флажок Add dialog (Открывать окно Включение в архив) и щелкните на кнопке ОК.
7. Если флажок Add dialog установлен, откроется диалоговое окно Add (Включение в архив).
8. В раскрывающемся списке Action (Действие) выберите пункт Add (and replace) files (Добавлять и заменять файлы).
9.В раскрывающемся списке Compression (Степень сжатия) выберите пункт Normal (Обычная).
10. В группе элементов управления Folders (Папки) установите флажок Include Subfolders (Включая вложенные папки). Несмотря на то, что в нашем примере в папке \Media нет вложенных папок, надо взять за правило включать данный флажок всегда.
11. В группе элементов управления Attributes (Атрибуты) убедитесь в том, что установлен флажок Include system and hidden files (Включать системные и скрытые файлы).
12. Выделите файлы, включаемые в архив. При групповом выделении файлов пользуйтесь левой кнопкой мыши совместно с клавишами SHIFT и CTRL. Если нужно выделить все файлы, можно воспользоваться комбинацией клавиш CTRL+A.
13. Щелкните на командной кнопке Add (Добавить в архив) – начнется процесс создания архива.
14. С помощью Проводника откройте папку C:\Windows\Temp\Zip_test. Разыщите созданный файл Media.zip. Установите его размер по строке состояния или переключившись в режим Таблица.
15. Переключитесь в программу WinZip 7.0. Откройте в ней созданный архив и убедитесь в том, что «длинные имена» файлов сохранились.
16. Закройте программу WinZip.
Задание 4. Защита ZIP-архива
1. Запустите программу WinZip 7.0.
2. Дайте команду File / Open Archive (Файл / Открыть архив). Откройте ранее созданный архив Media.zip.
3. Дайте команду Actions / Add (Действия / Добавить в архив) – откроется диалоговое окно Add (Добавление в архив).
4. В списке представленных файлов разыщите файл Media.zip, щелкните правой кнопкой мыши на его значке и в открывшемся контекстном меню выберите команду Удалить. Удаление ранее созданного архива необходимо для создания нового архива под тем же именем.
5. Выделите все файлы списка комбинацией клавиш CTRL+A.
6. Для защиты создаваемого архива паролем щелкните на кнопке Password (Пароль) – откроется одноименное диалоговое окно.
7. Обратите внимание на флажок Mask Password (He отображать пароль). Если он установлен, пароль при вводе не будет отображаться на экране, а его символы будут заменены подстановочным символом «*». Это мера защиты пароля от посторонних. Однако в данном случае пользователь не может быть уверен в том, что он набрал пароль правильно. Поэтому при установленном флажке Mask password система запрашивает повторный (контрольный) ввод пароля.
8. Введите пароль, например слово test, используя кроме алфавитных символов знаки препинания, например, так: t,e/s:t.
9. Щелкните на кнопке ОК. Обратите внимание на то, что диалоговое окно Add (Добавление в архив) изменило название – Add with password (Добавление в архив и защита паролем).
10. Щелкните на командной кнопке Add (Добавить в архив) – начнется процесс создания защищенного архива Media.zip.
11. Откройте созданный архив командой File / Open (Файл / Открыть).
12. Выделите любой файл, входящий в состав архива, и дайте команду Actions /Extract (Действия / Извлечь).
13. В открывшемся диалоговом окне Extract (Извлечение) проверьте правильность установки необходимых элементов управления и выберите папку-приемник.
14. Щелкните на командной кнопке Extract (Извлечь). Процесс извлечения данных из архива не запустится, а вместо него откроется диалоговое окно для ввода пароля.
15. Убедитесь в том, что ввод неправильного пароля не позволяет извлечь файлы из архива.
16. Убедитесь в том, что правильный ввод пароля действительно запускает процесс.
17. Закройте программу WinZip 7.0.
Задание 5. Создание самораспаковывающегося ZIP-архива
1. Запустите программу WinZip 7.0.
2. Дайте команду File / Open Archive (Файл / Открыть архив). Откройте ранее созданный архив Media.zip.
3. Дайте команду Actions / Make .Exe File (Действия / Создать исполнимый файл) – откроется диалоговое окно WinZip Self-Extractor (Генератор самораспаковывающегося архива).
4. Самораспаковывающийся архив создается на базе ранее созданного обычного архива. Убедитесь в том, что в поле Create Self-Extracting Zip files from (Создать самораспаковывающийся архив из ...) правильно записан адрес исходного ZIP-файла. Если это не так, воспользуйтесь кнопкой Browse (Обзор) для поиска нужного файла.
5.В группе Self Extractor Type (Тип самораспаковывающегося архива) включите переключатель, соответствующий операционной системе компьютера, для которого готовится архив.
6. В группе Spanning Support (Поддержка распределенного архива) включите переключатель No spanning (Без распределения).
7. Щелкните на кнопке ОК.
8.Поскольку исходный архив имеет парольную защиту, то перед началом преобразования появится предупреждающее сообщение. Закройте его щелчком на кнопке ОК.
9.По окончании преобразования появится диалоговое окно с предупреждением о том, что самораспаковывающийся архив следует испытать. Подтвердите начало испытания щелчком на кнопке Да.
10. В очередном окне выберите папку, в которую произойдет проверочная распаковка архива. По умолчанию предлагается папка C:\Windows\Temp. Если она не устраивает, воспользуйтесь командной кнопкой Browse (Обзор), выберите нужную папку и щелкните на кнопке Unzip (Распаковать). Поскольку архивный файл защищен, его распаковка не начнется, пока не будет введен правильный пароль.
11. По завершении работы закройте текущие диалоговые окна.
Задание 6. Создание самораспаковывающегося распределенного архива
1. Запустите программу WinZip 7.0.
2. Дайте команду File / Open Archive (Файл / Открыть архив). Разыщите и откройте ранее созданный архив Media.zip.
3.Дайте команду Actions / Make .Exe File (Действия / Создать исполнимый файл) – откроется диалоговое окно WinZip Self-Extractor (Генератор самораспаковывающегося архива).
4. В группе элементов управления Spanning Support (Поддержка распределенного архива) включите переключатель Safe Spanning Method (Защищенный метод распределения) или Old Spanning Method (Обычный метод распределения).
Защищенный метод создает на первом гибком диске два файла; исполнимый файл, выполняющий автоматическую распаковку, и первый том распределенного архива. На последующих дисках создается продолжение распределенного архива. Такой подход повышает уровень безопасности, поскольку даже в том случае, когда исполнимый файл поврежден, например компьютерным вирусом, информация не пропадает и остается в архивном файле. После применения антивирусных средств для «лечения» зараженного исполнимого файла также не происходит нарушений в структуре архива, поскольку исполнимый файл автономен. Этот метод применяют для передачи архивных материалов на гибких дисках.
Обычный метод считается «устаревшим», поскольку он обеспечивался прошлыми версиями программы WinZip. Этот метод не создает отдельного исполнимого файла, и весь архив хранится в одном исполнимом файле, распределенном по нескольким носителям. Данный метод используют для самораспаковывающихся архивов, передаваемых по каналам компьютерных сетей.
5. Щелкните на командной кнопке ОК – откроется диалоговое окно WinZip Self-Extractor (Генератор самораспаковывающегося архива).
6.Установите флажок Erase any existing files on the new disk before continuing (Предварительно стереть все существующие файлы на гибких дисках).
7. Щелкните на кнопке ОК – начнется процесс создания первого тома распределенного архива. По окончании процесса по указанию от программы извлеките записанный гибкий диск и вставьте новый.
8. Создав последний том, программа предложит извлечь последний диск и вставить первый для внесения правок в заголовок архива.
Задание 7. Исследование свойств форматов сжатия графических данных
1. Подготовьте для экспериментов папку C:\Temp\Pictures.
2. Откройте графический редактор Paint (Пуск / Программы / Стандартные / Paint) и загрузите в него заранее подготовленный многоцветный рисунок, например С:\Windows\ Облака.bmp.
3.Определите размер рисунка в пикселах (Рисунок / Атрибуты). Оцените теоретический размер рисунка в 24-разрядной палитре (3 байта на точку) по формуле: ,
где S – размер файла с рисунком (байт);
М – ширина рисунка (точек);
N – высота рисунка (точек).
Запишите результат: S =____________
4. Сохраните рисунок в папку C:\Temp\Pictures, выбрав имя файла Test и назначив тип файла: 24-разрядный рисунок (.BMP).
5. Повторно сохраните рисунок, выбрав то же имя Test но, назначив тип файла .GIF.При сохранении произойдет потеря определенной части графической информации.
6. Восстановите рисунок, загрузив его из ранее сохраненного файла Test.bmp, и вновь сохраните его под тем же именем, но выбрав в качестве типа файла формат .JPEG.
7. Запустите программу Проводник. Откройте папку C:\Temp\Pictures в режиме Таблица. Определите размеры файлов Test.bmp, Test.gif и Test.jpg. Определите коэффициент сжатия файлов (К), взяв отношения размеров файлов к теоретической величине, полученной расчетным путем в п. 3. Результаты занесите в таблицу:.
Формат файла | Размер файла (Кбайт) | Степень сжатия |
24-разрядный .BMP | ||
.GIF | ||
.JPG |
8. В графическом редакторе Paint дайте команду создания нового документа Файл /Создать. Убедитесь в том, что полотно имеет размер 640x480. Если это не так, измените его размер командой Рисунок / Атрибуты / Ширина (Высота).
9. В качестве инструмента выберите Кисть. Задайте максимальный размер кисти. Поочередно используя 8-10 разных красок, грубо закрасьте полотно.
10. Сохраните рисунок под именем Test_1 в формате 24-разрядный рисунок (bmp).
11. Сохраните рисунок под именем Test_1 в формате GIF.
12. Восстановите рисунок из файла Test_1 .bmp.
13. Сохраните рисунок под именем Test_1 в формате JPEG.
14. С помощью программы Проводник определите размеры сохраненных файлов и заполните таблицу.
Формат файла | Размер файла (Кбайт) | Степень сжатия |
24-разрядный .BMP | ||
.GIF | ||
.JPG |
15. Уточните ранее сделанный вывод о степени сжатия данных в формате JPEG,учитывая тот факт, что в первом случае изображение было многоцветным, а во втором случае оно имело небольшое количество цветовых оттенков.
16. В программе Проводник удалите экспериментальную папку C:\Temp\Pictures.
Задание 8. Исследование алгоритмов сжатия программы WinZip 7.0
1. Подготовьте для экспериментов две папки C:\Temp\Input и C:\Temp\Output.
2. Наполните экспериментальную папку C:\Temp\Input произвольным материалом в объеме 20-30 Мбайт, например, скопировав в нее следующие папки Windows:
• C:\Windows\Help;
• C:\Windows\Media;
• C:\Windows\Java.
3. Запустите диспетчер архивов WinZip 7.0.
4. Дайте команду File /New Archive (Файл / Создать архив) и создайте архив test_1 в папке C:\Temp\Output.
5. В диалоговом окне Add (Добавление в архив) выделите все папки, включаемые в архив (CTRL+A), убедитесь в том, что установлены флажки Include subfolders (Включая вложенные папки) и Save extra folder info (Сохранить структуру папок). В раскрывающемся списке Compression (Степень сжатия) выберите пункт None (Без сжатия).
6. Зафиксируйте время начала архивации по секундомеру и щелкните на командной кнопке Add (Добавить).
7. Зафиксируйте время конца архивации и определите продолжительность процесса.
8. Аналогичным образом создайте файл Test_2, выбрав режим сжатия Super fast(Сверхбыстрое сжатие) и замерив продолжительность процесса.
9. Создайте файл Test_3 в режиме сжатия Fast (Быстрое сжатие) и замерьте продолжительность.
10. Создайте файл Test_4 в режиме сжатия Normal (Обычное сжатие) и замерьте продолжительность.
11. Создайте файл Test_5 в режиме сжатия Maximum (Максимальное сжатие), замерьте продолжительность процесса и результаты сведите в таблицу.
Режим сжатия | Исходный размер, Мбайт | Результирующий размер, Мбайт | Время, с | Степень сжатия, % | Эффективность метода |
None | |||||
Super fast | |||||
Fast | |||||
Normal | |||||
Maximum |
Определите степень сжатия по формуле:
, где:
Sr – Размер результирующего файла, Мбайт; Si – размер исходного файла, Мбайт; R – степень сжатия.
Эффективность метода оцените по абсолютной величине приращения степени сжатия к приращению времени сжатия:
12.Сделайте вывод о наиболее эффективном методе сжатия по критерию соотношения степени сжатия и расхода времени на операцию.
13. В программе Проводник удалите экспериментальные папки C:\Temp\Input и C:\Temp\Output.
4. Контрольные вопросы
1. Какой формат графических данных из рассмотренных здесь наилучшим образом подходит для передачи цветного фотографического материала по каналам электронных сетей?
2. Какой формат графических данных целесообразно использовать для передачи черно-белого фотографического материала по каналам электронных сетей?
3. Какой формат наиболее благоприятен для передачи рисунков, имеющих малое количество цветовых оттенков (до 256)?
4. Какой формат графических данных не годится для передачи информации по каналам электронных сетей, но удобен для хранения изображений, предназначенных для дальнейшей обработки?
5. Что можно сказать о степени сжатия данных в формате ВМР?
6. Что можно сказать о степени сжатия данных в формате JPEG?
7. В чем разница между «защищенным методом распределения» и «обычным методом распределения»?
Список литературы
1. Романова Ю.Д. Информатика: информационные технологии. – М.: Эксмо-Пресс, 2006. – 544 с.
2. Трофимов В. В. Информационные системы и технологии в экономике и управлении. – М.: Высшее образование, 2005. – 384 с.
3. Лесничая И.Г., Романова Ю.Д. Информатика и информационные технологии. – М.: Эксмо-Пресс, 2005. – 544 с.
4. Гришин В. Н. Информационные технологии в профессиональной деятельности. Учебник. – М.: Инфра-М, 2005. – 416 с.