Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7-Архівація даних-1.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
203 Кб
Скачать
☆

Алгоритм rle

У основу алгоритмів RLE встановлений принцип виявлення послідовностей даних і заміни їх простою структурою, в якій указується код даних і коефіцієнт повтору, що повторюються.

Наприклад, для послідовності: 0; 0; 0; 127; 127; 0; 255; 255; 255; 255 (всього 10 байтів) утворюється наступний вектор:

Значення

Коефіцієнт повтору

0

3

127

2

0

1

255

4

При записі в рядок він має вигляд:

0; 3; 127; 2; 0; 1; 255; 4 (всього 8 байтів). В даному прикладі коефіцієнт стиснення рівний 8/10 (80 %). Програмні реалізації алгоритмів RLE відрізняються простотою, високою швидкістю роботи, але в середньому забезпечують недостатнє стиснення. Наилучшим* об'єктами для даного алгоритму є графічні файли, в яких більше одноколірних ділянок зображення кодуються довгими послідовностями однакових байтів. Цей метод також може давати помітний виграш деяких типах файлів баз даних, що мають таблиці з фіксованою довжиною полів. Для текстових даних методи RLE, як правило, неефективні.

Алгоритм kwe

У основу алгоритмів кодування за ключовими словами (Keyword Encoding' встановлено кодування лексичних одиниць початкового документа групами байтів фіксованої довжини. Прикладом лексичної одиниці може служити слові (послідовність символів, справа і зліва обмежена пропусками або цим волами кінця абзацу). Результат кодування зводиться в таблицю, яка прикладається до результуючого коду і є словником. Звичайно дл5 англомовних текстів прийнято використовувати двобайтове кодування слів. Утворені при цьому пари байтів називають токенами.

Ефективність даного методу істотно залежить від довжини документа, оскільки через необхідність прикладати до архіву словник довжина коротких документі] не тільки не зменшується, але навіть зростає.

Даний алгоритм найбільш ефективний для англомовних текстових документі] і файлів баз даних. Для російськомовних документів, відмінних збільшений ний завдовжки слів і великою кількістю приставок, суфіксів і закінчень, н< завжди вдається обмежитися двобайтовими токенами, і ефективність метод; помітно знижується.

Алгоритм Хафмана

У основі цього алгоритму лежить кодування не байтами, а бітовими групами.

  • Перед початком кодування проводиться частотний аналіз коду документ; і виявляється частота повтору кожного з символів, що зустрічаються.

  • Чим частіше зустрічається той або інший символ, тим меншою кількістю бітів він кодується (відповідно, чим рідше зустрічається символ, тим довше його кодова бітова послідовність).

  • Ієрархічна структура, що утворюється в результаті кодування

  • прикладається до стислого документа як таблиця відповідності.

Як видно з схеми, представленої на рис. 14.1, використовуючи 16 біт, можна закодувати до 256 різних символів. Проте ніщо не заважає використовувати і послідовності завдовжки до 20 біт — тоді можна закодувати до 1024 лексичних одиниць (це можуть бути не символи, а групи символів, склади і навіть слова).

У зв'язку з тим, що до стислого архіву необхідно прикладати таблицю відповідності, на файлах малих розмірів алгоритм Хафмана малоефективний. Практика також показує, що його ефективність залежить і від заданої граничної довжини коду (розміру словника). В середньому, найефективнішими виявляються архіви з розміром словника від 512 до 1024 одиниць (довжина коду до 18-20 біт).