МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЗІ
Практична робота № 1
Дослідження алгоритмів архівації
з навчальної дисципліни: “ Захист програмного забезпечення та програмні методи захисту інформації ”
Львів – 2013
Теоречні відомості:
Архівація даних
Архіватори — це програми, що призначені для стиснення даних. Під стисненням розуміють кодування даних, у результаті якого закодований варіант займає менше дискової пам’яті, ніж вихідний. Процес стиснення даних називають архівуванням, а результат архівними даними.
Основне призначення програм резервного копіювання (програм-архіваторів) – створення копій вихідних даних на резервних носіях (стримерах, жорсткихтагнучких дисках, CD/DVD) та економія місця на диску за рахунок стиснення даних до архівного файлу. Програми-архіватори використовуються у випадках: наявності на дисках великих обсягів даних, які потрібні для майбутнього використання; перенесення даних між комп’ютерами за допомогою дискет; створення резервних копій в стислому вигляді. В результаті роботи програм–архіваторів створюються архівні файли (архіви даних).
За основу роботи програм-архіваторів покладено процедуру пошуку та перекодування однакових фрагментів вмісту файлу. Наприклад, розглянемо файл, який містить багато однотипних слів: комп’ютер, комп’ютера, комп’ютерна, комп’ютеризація тощо. Якщо набір символів “комп’ютер” замінити на “чц”, тоді розглянута послідовність слів перетвориться в послідовність: “чц”, “чца”, “чцна”, “чцизація” тощо. При такій заміні вихідний текст дійсно зменшується. Однак в реальних програмах-архіваторах процедура пошуку та перекодування даних відбувається значно складніше.
Найбільш поширені програми-архіватори: ARJ, RAR, PKZIP (з розархіватором PKUNZIP), LHARC, ICE, WinRAR.
Алгоритми стиснення (архівації) даних
Всі алгоритми стиснення оперують вхідним потоком даних, мінімальною одиницею яких є біт, а максимальною – декілька біт, байт або декілька байтів.
Метою процесу стиснення є отримання більш компактного вихідного потоку інформаційних одиниць з некомпактного вхідного потоку за допомогою перетворення.
Основними технічними характеристиками процесів стиснення і результатів їх роботи є :
• степінь стиснення (compress rating) або відношення (retion) об’ємів вхідного і результуючого потоків;
• швидкість стиснення – час, який витрачається на стиснення деякого об’єму інформації вхідного потоку, до отримання з нього еквівалентного вихідного потоку;
• якість стиснення – величина, яка вказує, на скільки сильно упакований вихідний потік, за допомогою застосування до нього повторного стиснення за цим або іншим алгоритмом.
Всі способи стиснення можна поділити на дві категорії: зворотнє і незворотнє.
Під зворотнім стисненням розуміють таке перетворення вхідного потоку даних, при якому вихідний потік, в контексті певного формату даних, представляє достатньо схожий за зовнішніми характеристиками на вхідний потік об’єкт, але відрізняється від нього об’ємом. Рівень схожості вхідного і вихідного потоків визначається рівнем відповідності деяких властивостей об’єкта (тобто, стисненої і не стисненої інформації у відповідності до деякого визначеного формату даних).
Такі підходи і алгоритми використовуються для стиснення, наприклад, даних растрових графічних файлів з низькою повторюваністю байтів у потоці. При такому підході використовується властивість структури формату графічного файлу і можливість подати графічний рисунок приблизно схожу за якістю відображення (для сприйняття людським оком) декількома способами. Тому, крім рівня або величини стиснення, в таких алгоритмах виникає поняття якості, оскільки вихідне зображення в процесі стиснення змінюється, то під якістю можна розуміти рівень відповідності вхідного і результуючого зображення, що оцінюється суб’єктивно, враховуючи формат даних. Для графічних файлів така відповідність визначається візуально, хоча є і відповідні інтелектуальні алгоритми і програми.
Незворотнє стиснення неможливо застосовувати тоді, коли потрібно мати точну відповідність структури вхідного і вихідного потоків. Даний підхід реалізовано в популярних форматах подання відео і фото інформації, відомих як JPEG і JFIF алгоритми і JPG і JIF формати файлів.
Зворотнє стиснення завжди призводить до зменшення вихідного потоку даних без зміни його інформативності, тобто – без втрати інформаційної структури.
Більше того, з вихідного потоку, за допомогою поновлювального або декомпресійного алгоритму, можна отримати вхідний, а процес поновлення називається декомпресією або розпакуванням і тільки після процесу розпакування дані можна використовувати для опрацювання у відповідності до їх внутрішнього формату.
Перейдемо тепер безпосередньо до алгоритмічних особливостей зворотних алгоритмів і розглянемо найважливіші теоретичні викладки до стиснення даних, які пов’язані з реалізацією систем , що кодуються та способами стиснення даних.
Результати виконання лабораторної роботи
Стиснення даних файловим архіватором Winrar
Архівація файлу з розширенням .JPG розміром 709 кБ, використовуючи метод стиснення максимальний і формат архіву .rar.
Степінь стиснення = 709/706=1,0042, швидкість стиснення менше 1 секунди.
При архівації файлу з розширенням .avi розміром 280МБ використовуючи метод стиснення максимальний і формат архіву .rar, розмір архіву складає 278МБ. Степінь стиснення = 280/278=1,0072, швидкість стиснення 54 секунд.
Архівація файлу з розширенням .txt розміром 4.28МБ, використовуючи метод стиснення максимальний і формат архіву .rar, розмір архіву складає 2.46кБ=0,0024МБ. Степінь стиснення = 4,28/0,0024=1783,3, швидкість стиснення 1 секунда.
Архівація файлу з розширенням .dll розміром 883кБ використовуючи метод стиснення максимальний і формат архіву .rar, розмір архіву складає 312кБ. Степінь стиснення = 883/312=2,83, швидкість стиснення менше 1 секунди.
Стиснення даних файловим архіватором 7z
При архівації файлу з розширенням .JPG розміром 709 кБ використовуючи метод стиснення LZMA і формат архіву .7z, розмір архіву складає 710 кБ. Степінь стиснення = 709/710=0,998, швидкість стиснення менше 1 секунди, якість стиснення при повторній архівації не змінилась.
При використанні методу стиснення Deflate64 і формат архіву .zip cтепінь стиснення = 709/706=1,0042, швидкість стиснення 1c., якість стиснення при повторній архівації не змінилась.
При використанні методу стиснення Deflate і формат архіву .gz cтепінь стиснення = 709/707=1,0028, швидкість стиснення менше 1c., якість стиснення при повторній архівації не змінилась.
При архівації файлу з розширенням . avi розміром 280МБ використовуючи метод стиснення LZMA і формат архіву .7z, розмір архіву складає 279МБ. Степінь стиснення = 280/279=1,0036, швидкість стиснення 1хв 18с., якість стиснення при повторній архівації не змінилась.
При використанні методу стиснення PPMd і формат архіву .7z cтепінь стиснення = 280/278=1,0072, швидкість стиснення 6хв 10с., якість стиснення при повторній архівації не змінилась.
При використанні методу стиснення Bzip2 і формат архіву .bz2 cтепінь стиснення = 280/278=1,0072, швидкість стиснення 30c., якість стиснення при повторній архівації не змінилась.
При архівації файлу з розширенням .txt розміром 4.28МБ використовуючи метод стиснення LZMA і формат архіву .7z, розмір архіву складає 853байти=0,00081МБ. Степінь стиснення = 4.28/0,00081=5284, швидкість стиснення 1 секунда, якість стиснення при повторній архівації не змінилась.
При використанні методу стиснення Bzip2 і формат архіву .zip cтепінь стиснення = 4.28/0.00064=6687,5, швидкість стиснення 4c., якість стиснення при повторній архівації не змінилась.
При використанні методу стиснення Bzip2 і формат архіву .bz2 cтепінь стиснення = 4.28/0.00054=7925,93, швидкість стиснення менше 1c., якість стиснення при повторній архівації не змінилась.
При архівації файлу з розширенням .dll розміром 883кБ використовуючи метод стиснення LZMA і формат архіву .7z, розмір архіву складає 281кБ. Степінь стиснення = 883/281=3,14, швидкість стиснення менше 1 секунди, якість стиснення при повторній архівації не змінилась.
При використанні методу стиснення Deflate64 і формат архіву .zip cтепінь стиснення = 883/335=2,64, швидкість стиснення 1c., якість стиснення при повторній архівації не змінилась.
При використанні методу стиснення Bzip2 і формат архіву .bz2 cтепінь стиснення = 883/366=2.41, швидкість стиснення менше 1c., якість стиснення при повторній архівації не змінилась.
Висновок
Під час виконання даної лабораторної роботи були розглянуті два файлових архіватори Winrar і 7z. В результаті виконання роботи було виявлено, що архіватор 7z є кращим за Winrar, також дані архіватори є більш ефективними для стиснення файлів з розширенням .dll, .txt і т.д.