Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
all.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.07 Mб
Скачать

46. За якими ознаками класифікують системи й методи стиснення даних?

47. Чим визначається верхня границя стиснення інформації? Які існують границі стиснення при використанні оптимального кодування Шеннона-Фано і Хаффмена?

48. Які переваги та недоліки використання оптимального кодування Шеннона-Фано і Хаффмена?

До оптимальних методів статистичного кодування повідомлень належать алгоритми Шеннона-Фано і Хаффмана. Ці алгоритми є найпростішими методами стиснення інформації і належать до так званих кодів без пам'яті, що не враховують значення попередніх символів.

Розглянемо алгоритми побудови оптимальних кодів Шеннона-Фано і Хаффмена.

Метод Шеннона-Фано. Значення д. в. в. розміщуються у порядку спадання ймовірностей. Потім уся сукупність розділяється на дві приблизно рівні за сумою ймовірностей частини: до коду першої частини додається 0, а до коду другої - 1. Кожна з частин за тим самим принципом знову розділяється (якщо це можливо) на дві частини і т.д.

Приклад 3 Побудуємо таблицю кодів за методом Шеннона-Фано для повідомлень, заданих розподілом ймовірностей (табл. 2.2).

Середня довжина коду (біт/сим).

Надлишковість коду , тобто на порядок менше, ніж для рівномірного кодування (приклад 1).

Метод Хаффмана. Код будується за допомогою бінарного дерева. Ймовірності д. в. в. розміщуються у спадному порядку і приписуються листю кодового дерева. Величина, що приписується вузлу дерева, називається його вагою. Два листи або вузли з найменшими значеннями ваги утворюють батьківський вузол, вага якого дорівнює сумарній вазі вузлів, що його складають. Надалі цей вузол враховується нарівні з вершинами, що залишилися, а листя або вузли, що його утворили, більше не розглядаються. Після побудови кореня кожна визначена гілка, що виходить з батьківського вузла, позначається 0 (як правило, якщо це ліва гілка) або 1 (права гілка). Коди значень д. в. в. – це послідовності 0 і 1, що утворюються, на шляху від кореня кодового дерева до листа із заданою імовірністю д. в. в.

Звернемо увагу, що для кодів Хаффмена і Шеннона-Фано середня кількість бітів на одне елементарне повідомлення хi наближається до ентропії джерела Н(Х), але не може бути менше. Такий висновок є наслідком теореми кодування джерела у відсутності шуму3:

Будь-яке джерело дискретних повідомлень можна закодувати двійковою послідовністю з середньою кількістю двійкових символів (бітів) на одне елементарне повідомлення, скільки завгодно близькою до ентропії джерела Н(Х), і неможливо досягти середньої довжини коду, меншої за Н(Х).

Недоліки алгоритмів Шеннона-Фано і Хаффмена:

1 Необхідність побудови таблиці ймовірностей для кожного типу даних, що стискаються. Цей недолік неістотний, якщо стисненню підлягає російський або англійський текст. Проте в загальному випадку, коли імовірність символів невідома, ці алгоритми реалізуються в два проходи: у перший здійснюється збирання частот символів, оцінка їхніх ймовірностей і складання таблиці кодів, другий - використовується саме для стиснення.

2 Необхідність зберігання (передачі) таблиці кодів разом із стисненим повідомленням, що знижує ефект стиснення.

3 Мінімальна довжина кодових слів не може бути менше одиниці, тоді як ентропія повідомлень може бути близькою до нуля. У цьому випадку оптимальні методи кодування виявляються істотно надмірними. Цей недолік долається використанням алгоритму до блоків символів, але при цьому ускладнюється процедура кодування/ декодування і значно розширюється таблиця кодів.

4 Найкращий ефект стиснення досягається тільки у випадку, коли імовірності символів є цілими від'ємними степенями двійки, тобто 1/2, 1/4, 1/8, 1/16 і т.д. На практиці такі ситуації досить рідкі або можуть бути штучно створені розбиттям повідомлень на блоки різної довжини і кодуванням цих блоків, розглядаючи їх як одиниці повідомлення, що викликає відповідне ускладнення алгоритму.

Стиснення даних не може бути більше деякої теоретичної границі. теорема Шеннона про кодування каналу без шуму встановлює верхню границю стиснення інформації як ентропію джерела H(X).

Позначимо через L(X) функцію, що повертає довжину коду повідомлень

L(X)=len(code(X)),

де code(X) кожному значенню X ставить у відповідність деякий бітовий код; len( ) - повертає довжину цього коду.

Оскільки L(X) - функція від д. в. в. X, тобто також є д. в. в., то її середнє значення обчислюється як математичне сподівання:

. (2.3)

Наслідком теореми Шеннона про кодування джерела у відсутності шуму є те, що середня кількість бітів коду, що припадає на одне значення д. в. в., не може бути менше її ентропії, тобто

(2.4)

для будь-якої д. в. в. X і будь-якого її коду.

Нехай - вектор даних завдовжки n; - вектор частот символів у .

Тоді середня кількість бітів коду на одиницю повідомлення обчислюється так:

, (2.5)

де - довжина коду повідомлення : ; - вектор Крафта для .

Ентропія повідомлення обчислюється так:

. (2.6)

,

визначає верхню границю стиснення даних.

.

Таким чином, границі стиснення інформації при оптимальному статистичному кодуванні визначаються так:

.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]