Архівація даних та програми архівації
курсова робота з інформатики
ЗМІСТ
Вступ
Як зберігання, так і передача інформації обходяться учасникам інформаційного процесу недешево. Знаючи вартість носія і його місткість (Мбайт, Гбайт), неважко підрахувати, у що обходиться зберігання одиниці інформації, а знаючи пропускну спроможність каналу зв'язку (Мбіт/с) і вартість його оренди, можна визначити витрати на передачу одиниці інформації. Отримані результати звичайно складають цілком значущі величини як для корпоративних користувачів, так і для індивідуальних. У зв'язку з цим регулярно виникає необхідність стискати дані перед тим, як розміщувати їх в архівах або передавати по каналах зв'язку. Відповідно, існує і зворотна необхідність відновлення даних із заздалегідь ущільнених архівів.
Характерною особливістю більшості "класичних" типів даних, з якими традиційно працюють люди, є певна надмірність. Ступінь надмірності залежить від типу даних. Наприклад, у відеоданих ступінь надмірності звичайно в декілька разів більше, ніж у графічних даних, а ступінь надмірності графічних даних в декілька разів більше, ніж текстових. Крім того, ступінь надмірності даних залежить від прийнятої системи кодування. Так, наприклад, можна сказати, що кодування текстової інформації засобами російської мови (з використанням російської азбуки) дає в середньому надмірність на 20-30 % більше, ніж кодування адекватної інформації засобами англійської мови.
Для людини надмірність інформації нерідко пов'язана з уявленням про її якість, оскільки надмірність, як правило, поліпшує сприйняття, особливо в несприятливих умовах (перегляд телепередач при наявності перешкод, відновлення пошкодженого графічного матеріалу, читання текстів в умовах недостатньої освітленості і т. д.
При обробці інформації надмірність також грає важливу роль. Так, наприклад, при перетворенні або селекції інформації надмірність використовують для підвищення її якості (репрезентативності, актуальності, адекватності і т. д. Однак, коли мова заходить не про обробку, а про зберігання готових документів або їх передачу, то надмірність можна зменшити, що дає ефект стиснення даних.
Розділ 1. Поняття стискування даних та програмні засоби стискування даних
Якщо методи стиснення інформації застосовують до готових документів, то нерідко термін стиснення даних підміняють терміном архівація даних, а програмні засоби, що виконують ці операції, називають архіватор.
В залежності від того, в якому об'єкті розміщені дані, що піддаються стисненню, розрізнюють:
ущільнення (архівацію) файлів;
ущільнення (архівацію) папок;
ущільнення дисків.
Ущільнення файлів застосовують для зменшення їх розмірів при підготовці до передачі по каналах електронних мереж або до транспортування на зовнішньому носії малої місткості, наприклад на гнучкому диску.
Ущільнення папок використовують як засіб архівації даних перед тривалим зберіганням, зокрема, при резервному копіюванні.
Ущільнення дисків служить цілям підвищення ефективності використання їх робочого простору і, як правило, застосовується до дисків, що мають недостатню місткість.
Незважаючи на достаток алгоритмів стиснення даних, теоретично є тільки три способи зменшення їх надмірності. Це або зміна змісту даних, або зміна їх структури, або і те й інше разом.
Якщо при стисненні даних відбувається зміна їх змісту, метод стиснення безповоротний і при відновленні даних з стиснутого файлу не відбувається повного відновлення початкової послідовності. Такі методи називають також методами стиснення з регульованою втратою інформації. Вони застосовні тільки для тих типів даних, для яких формальна втрата частини змісту не приводить до значного зниження споживчих властивостей. Насамперед, це відноситься до мультимедійних даних: відео-рядів, музичних записів, звукозаписів і малюнків. Методи стиснення з втратою інформації звичайно забезпечують набагато більш високу ступінь стиснення, ніж оборотні методи, але їх не можна застосовувати до текстових документів, баз даних і, тим більше, до програмного коду. Характерними форматами стиснення з втратою інформації є:
.JPG для графічних даних;
.MPG для відео-даних;
.МР3 для звукових даних.
Якщо при стисненні даних відбувається тільки зміна їх структури, то метод стиснення оборотний. З результуючого коду можна відновити початковий масив шляхом застосування зворотного методу. Оборотні методи застосовують для стиснення будь-яких типів даних. Характерними форматами стиснення без втрати інформації є:
.GIF, .TIF, .PCX і багато інших для графічних даних;
.AVI для відеоданих;
.ZIP, RJ, .RAR, .LZH, .LH, .CAB і багато інших для будь-яких типів даних.
При дослідженні методів стиснення даних потрібно мати на увазі існування наступних доведених теорем.
Для будь-якої послідовності даних існує теоретична межа стиснення, яка не може бути перевищена без втрати частини інформації.
Для будь-якого алгоритму стиснення можна вказати таку послідовність даних, для якої він забезпечить кращу ступінь стиснення, ніж інші методи.
Для будь-якого алгоритму стиснення можна вказати таку послідовність даних, для якої даний алгоритм взагалі не дозволить отримати стиснення.
Таким чином, обговорюючи різні методи стиснення, потрібно мати на увазі, що найвищу ефективність вони демонструють для даних різних типів і різних об'ємів.
Існує досить багато оборотних методів стиснення даних, однак в їх основі лежить порівняно невелика кількість теоретичних алгоритмів, поданих в таблиці .1.
Таблиця 1.
Властивості алгоритмів стиснення
Алгоритм | Вихідна структура | Сфера застосування | Примітка
RLE (Run-Length Encoding | Список (вектор даних) | Графічні дані | Ефективність алгоритму не залежить від об'єму даних
KWE (Keyword Encoding) | Таблиця даних (словник) | Текстові дані | Ефективний для масивів великого об'єму
Алгоритм Хафмана | Ієрархічна структура (дерево кодування) | Будь-які дані | Ефективний для масивів великого об'єму
В основу алгоритмів RLE встановлений принцип виявлення послідовностей даних, що повторюються і заміни їх простою структурою, в якій вказується код даних і коефіцієнт повтору.
Наприклад, для послідовності: 0; 0; 0; 127; 127; 0; 255; 255; 255; 255 (усього, 10 байтів) утвориться наступний вектор:
Значення | Коефіцієнт повтору
0 | 3
127 | 2
0 | 1
255 | 4
При записі в рядок він має вигляд: