Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Delphi. Трохи щодо методів упаковки даних

Реферат Delphi. Трохи щодо методів упаковки даних





| p> | | p> | + - + | p> + ---- | 25 + - + = 10 + 15

+ - +

Розглядаємо таблицю знову для наступних двох символів (B і E). Ми продовжуємо в цей режим поки все "дерево" не сформоване, тобто поки все не зведеться до одного вузлу.

Частота 30 10 5 10 20 25

Символу C A D F B E

| | | | | | p> | | | | | | p> | | + - + | | | | p> | + - | 15 + + | | |

| + + - + | | | p> | | | | | p> | | + - + | | + - + | p> | + ---- | 25 + - + + - | 45 + - +

| + + - + + + - + p> | + - + | | p> + ---- | 55 + ------ + | p> + - + + | p> | + ------------ + | p> + --- | Root (100) + ---- +

+ ------------ +

Тепер коли наше дерево створено, ми можемо кодувати файл. Ми повинні завжди починати з кореня (Root). Кодуючи перший символ (лист дерева С) Ми простежуємо вгору по дереву всі повороти гілок і якщо ми робимо лівий поворот, то запам'ятовуємо 0-й біт, і аналогічно 1-й біт для правого повороту. Так для C, ми будемо йти вліво до 55 (і запам'ятаємо 0), потім знову вліво (0) до самого символу. Код Хаффмана для нашого символу C - 00. Для наступного символу (А) у нас виходить - ліво, право, ліво, ліво, що виливається в послідовність 0100. Виконавши вище сказане для всіх символів отримаємо

C = 00 (2 біти)

A = 0100 (4 біти)

D = 0101 (4 біти)

F = 011 (3 біта)

B = 10 (2 біти)

E = 11 (2 біти)

Кожен символ спочатку представлявся 8-у бітами (один байт), і так як ми зменшили число бітів необхідних для подання кожного символу, ми отже зменшили розмір вихідного файлу. Стиснення складивется наступним чином:

+ ---------- + ---------------- + ------------------ - + -------------- +

| Частота | спочатку | ущільнені біти | зменшено на |

+ ---------- + ---------------- + ------------------ - + -------------- |

| C 30 | 30 x 8 = 240 | 30 x 2 = 60 | 180 |

| A 10 | 10 x 8 = 80 | 10 x 3 = 30 | 50 |

| D 5 | 5 x 8 = 40 | 5 x 4 = 20 | 20 |

| F 10 | 10 x 8 = 80 | 10 x 4 = 40 | 40 |

| B 20 | 20 x 8 = 160 | 20 x 2 = 40 | 120 |

| E 25 | 25 x 8 = 200 | 25 x 2 = 50 | 150 |

+ ---------- + ---------------- + ------------------ - + -------------- +

Початковий розмір файлу: 100 байт - 800 біт;

Розмір стисненого файлу: 30 байт - 240 біт;

240 - 30% з 800, так що ми стиснули цей файл на 70%. p> Всі це досить добре, але неприємність знаходиться в тому факті, що для відновлення первісного файлу, ми повинні мати декодирующее дерево, так як дерева будуть різні для різних файлів. Отже ми повинні зберігати дерево разом з файлом. Це перетворюється в підсумку у збільшення розмірів вихідного файлу.

У нашою методикою стиснення і кожному вузлі знаходяться 4 байти покажчика, з цього, повна таблиця для 256 байт буде приблизно 1 Кбайт довгою. Таблиця в нашому прикладі має 5 вузлів плюс 6 вершин (де і знаходяться наші символи), всього 11. 4 байти...


Назад | сторінка 3 з 10 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Ритми символу
  • Реферат на тему: Обробка набору даних, представленого у вигляді файлу
  • Реферат на тему: Поняття символу в роботах Е. Кассерера
  • Реферат на тему: Практична обробка набору даних, представленого у вигляді файлу
  • Реферат на тему: Роль символу в розкритті авторського задуму в художньому творі на прикладі ...