Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методические указания к выполнению лабораторных ра (1)

.pdf
Скачиваний:
26
Добавлен:
10.02.2016
Размер:
806.6 Кб
Скачать

51

Лабораторная работа 2.2 ИССЛЕДОВАНИЕ АЛГОРИТМОВ ЭФФЕКТИВНОГО

КОДИРОВАНИЯ С УКРУПНЕНИЕМ АЛФАВИТА 1 Цель работы

1.1Изучение принципа укрупнения алфавита с целью эффективного (экономного) кодирования.

1.2Исследование эффективности кодирования с укрупнением алфавита для источников дискретных сообщений без памяти и с памятью.

2 Ключевые положения

2.1 Источник дискретных сообщений – это источник, который выдает последовательность знаков конечного алфавита объемом MA. Дискретные источники классифицируются на:

– источники без памяти – появление любого знака последовательности не зависит от предыдущих знаков. Такой источник задается безусловными вероятностями знаков алфавита P(ak), для k = 1, 2,…, MA...

– источники с памятью – появление любого знака последовательности зависит от предыдущих знаков. Такой источник задается условными вероятностями знаков алфавита. Для математического описания источников дискретных сообщений с памятью используют цепи Маркова, а такие источники называются марковскими K-го порядка. В этом случае появление любого знака последовательности зависит только от K предыдущих знаков. Тогда марковский источник 1-го порядка (когда вероятность появления знака в последовательности зависит только от предыдущего знака) будет задаваться условными вероятностя-

ми P(ak /aj), для k, j = 1, 2,…, MA...

2.2 Двоичный источник сообщений (MA = 2) без памяти задается безусловными вероятностями P(a1) = p и P(a2) = (1 – p). Зависимость энтропии такого

источника от p показана на рис. 1 и записывается как:

 

H(A) = – plog2p – (1 – p)log2(1 – p).

(1)

Энтропия максимальная, когда знаки равновероятные (P(a1) = P(a2) = 0,5) и равна 1 дв. ед. Таким образом, каждый символ в среднем содержит не больше 1 дв. ед. информации. В случае, когда p ¹ 0,5 – энтропия H(A) < Hmax(A) и такой источник имеет избыточность. При p = 0 или p = 1 энтропия равна 0, поскольку неопределенность отсутствует.

2.3 Для марковского двоичного источника сообщений с памятью 1-го порядка необходимо задать условные вероятности

P(a1/a1), P(a1/a2), P(a2/a1) и P(a2/a2). Энтропия

H(A),

дв.ед.

Рисунок 1 – Зависимость энтропии H(A) от вероятности p

такого источника определяется:

52

2

2

 

H(A) = – P(ai

) P(a j / ai ) log2 P(a j / ai ) .

(2)

i =1

j =1

 

Пример 1. Задан марковский двоичный источник сообщений с памятью

1-го порядка с вероятностями P(a1) = P(a2) = 0,5; P(a1/a1) =

P(a2/a2) = 0,3;

P(a1/a2) = P(a2/a1) = 0,7. Найти энтропию источника.

 

По формуле (2) находим

 

 

H(A) = – 0,5(0,3log 20,3 + 0,7log20,7) – 0,5(0,3log 20,3 + 0,7log20,7) = 0,881 дв.ед.

Энтропия источника с памятью меньше, чем энтропия источника без памяти с равными вероятностями (Hmax(A) = 1 дв.ед.). В этом случае избыточность обусловлена статистической связью между знаками.

2.4 В случае двоичного источника без памяти, когда знаки разновероятные, энтропия меньше 1 дв.ед. (рис. 1). Например, P(a1) = 0,8 , P(a2) = 0,2. Тогда энтропия равна H(A) = 0,722 дв.ед. Применение эффективного кодирования (например, кода Хаффмана) к такому двоичному источнику не даст никакого эффекта (каждый из знаков будет кодироваться одним двоичным символом, независимо от вероятности его появления). Для эффективного кодирования нужное предварительное укрупнение алфавита.

Под укрупнением алфавита будем понимать формирование нового алфавита укрупненных знаков (укрупненный знак является соединением из m знаков первичного алфавита). Объем нового (вторичного) алфавита MB определяется как

MB = M Am .

(3)

Кодирование укрупненного (вторичного) алфавита будет более эффективным.

Пример 2. Рассмотрим укрупнение по 3 знака (m = 3) для двоичного приведенного выше источника без памяти с энтропией H(A) = 0,722 дв.ед.

Поскольку двоичный источник без памяти (т.е. такой, что выдает знаки независимо друг от друга), то вероятность появления укрупненного знака будет равна произведению вероятностей входящих у него знаков первичного алфавита (P(a1a1) = P(a1)P(a1)). Объем укрупненного алфавита по формуле (3) равен MB = M Am = 23 = 8. Рассчитаем вероятности укрупненных знаков и применим к

ним эффективное кодирование (например, кодом Шеннона-Фано) (табл. 1).

Таблица 1

Кодирование укрупненного алфавита

 

 

 

 

 

 

 

 

 

 

 

 

 

Укрупнен-

Вероятности

 

 

Подгруппы

 

 

Кодовые

ные знаки bi

P(bi)

I

II

 

III

 

IV

V

комбинации

a1a1a1

0,512

0

 

 

 

 

 

 

0

a1a1a2

0,128

 

0

 

0

 

 

 

100

a1a2a1

0,128

 

 

1

 

 

 

101

 

 

 

 

 

 

a2a1a1

0,128

1

 

 

0

 

 

 

110

a1a2a2

0,032

1

 

 

 

0

0

11100

a2a1a2

0,032

 

 

1

 

1

11101

 

 

 

 

a2a2a1

0,032

 

 

 

 

1

0

11110

 

 

 

 

 

a2a2a2

0,008

 

 

 

 

 

1

11111

 

 

 

 

 

 

53

Средняя длина кодовых комбинаций для укрупненных знаков:

M B

nm = P(bi )nmi = 2,184 символов,

i−1

асреднее число кодовых символов на знак определяется как

 

 

=

 

n

m

.

(4)

n

 

 

 

 

 

 

 

 

m

 

Для рассмотренного случая получим n = 0,728 символов. Из сравнения с энтропией H(A) = 0,722 дв.ед. видно, что предварительное укрупнение алфавита значительно повысило эффективность сжатия (кодирование первичного алфавита без укрупнения давало n = 1).

С увеличением количества знаков при укрупнении m можно получать более эффективный код, т.е. среднее число кодовых символов на знак будет больше приближаться к энтропии.

2.5 Укрупнение алфавита также целесообразно в случае источника дискретных сообщений с памятью. Известно, что статистическая зависимость между знаками первичного алфавита, расположенных рядом, больше, чем расположенных на расстоянии нескольких знаков. Соответственно, укрупненные знаки будут иметь значительно меньшую зависимость (очевидно, что чем больше m, тем меньше зависимость между укрупненными знаками). В этом случае (для источника с памятью) для определения вероятностей укрупненных знаков необходимо учитывать условные вероятности (P(akaj) = P(ak)P(a /ak)).

Таким образом, избыточность, обусловленная статистическими связями между знаками первичного алфавита, превратится в избыточность, обусловленную разными вероятностями укрупненных знаков. А такую избыточность можно уменьшить, используя эффективное кодирование (например, код Хаффмана).

3 Ключевые вопросы

3.1Дать определение дискретного источника без памяти.

3.2Дать определение дискретного источника с памятью.

3.3Объяснить принцип укрупнения алфавита.

3.4С какой целью применяют укрупнение алфавита?

3.5Как определяются вероятности укрупненных знаков для источников без памяти и с памятью?

3.6Как определяется объем укрупненного алфавита?

3.7Как влияет на эффективность кодирования количество знаков при укрупнении m? Чем обусловливается выбор m?

3.8Каким образом эффективное кодирование укрупненного алфавита позволяет уменьшить избыточность сообщений при кодировании источников дискретных сообщений с памятью?

4 Домашнее задание

4.1. Изучить раздел “ Эффективное кодирование источников дискретных сообщений” по конспекту лекций и ключевым положениям. Также можно вос-

54

пользоваться литературой [2, с. 16...27; 5, с. 876...887]. Изучить описание лабораторного макета в разд. 6.

4.2Задан двоичный источник сообщений без памяти с алфавитом {a1; a2}

свероятностями P(a1) = (0,8 – 0,02 N), где N – номер Вашей бригады. Рассчитать энтропию источника. Провести укрупнение алфавита по двум знакам. Составить кодовые комбинации для укрупненного алфавита методом Шеннона-Фано

(для нечетных N) и методом Хаффмана (для четных N). Рассчитать nm , n , η и μ. 4.3 Подготовиться к обсуждению по ключевым вопросам.

5 Лабораторное задание

5.1Ознакомиться с виртуальным макетом на рабочем месте. Для этого запустить программу 2.2 Исследование алгоритмов эффективного кодирования с укрупнением алфавита, используя иконку Лабораторные работы

на рабочем столе, а затем папки ТЭС и Модуль 2. Изучить схему макета на дисплее компьютера, пользуясь разд. 6. Уточнить с преподавателем план выполнения лабораторного задания.

5.2Исследовать эффективность укрупнения алфавита при кодировании двоичного источника без памяти с равными вероятностями знаков.

Выбрать в меню двоичного источника сообщений – “ без памяти (равновероятные)”. Записать характеристики первичного сообщения.

Установить укрупнение алфавита по двум знакам. Зафиксировать в протоколе знаки укрупненного алфавита, соответствующие им вероятности и кодовые комбинации. Записать значения энтропии укрупненного сообщения H(A), nm и n . Сравнить энтропию первичного сообщения и после укрупнения.

Рассчитать эффективность кодирования и коэффициент сжатия. Коэффициент сжатия можно рассчитать

η =

N вх

,

(5)

 

 

N вих

 

где Nвх – количество двоичных символов (знаков), использованных для передачи сообщения до кодирования;

Nвих – количество двоичных символов (знаков), использованных для передачи сообщения после кодирования.

Повторить п. 5.2 при укрупнении алфавита по трем и четырем знакам. 5.3 Исследовать эффективность укрупнения алфавита при кодирова-

нии двоичного источника без памяти с разными вероятностями знаков.

Выбрать в меню двоичного источника сообщений – “ без памяти (разновероятные)”.

Повторить исследование, проведенные в п. 5.2, для двоичного источника без памяти с разными вероятностями знаков.

5.4 Исследовать эффективность укрупнения алфавита при кодировании марковского двоичного источника с памятью 1-го порядка. Выбрать в меню двоичного источника сообщений - “ С памятью 1-го порядка”.

55

Повторить исследования, проведенные в п. 5.2 и 5.3, для марковского двоичного источника с памятью 1-го порядка.

6 Описание лабораторного макета

Лабораторная работа выполняется на компьютере с использованием виртуального макета. Структурная схема макета приведена на рис. 2.

Двоичный источник сообщений генерирует последовательность знаков алфавита {A; B} длина сообщения N (N изменяется вручную). Источник может быть трех типов:

-без памяти с равными вероятностями знаков;

-без памяти с разными вероятностями знаков;

-марковский источник с памятью 1-го порядка.

Укрупнение алфавита можно осуществлять по 2, по 3 и по 4 знакам. Для укрупненного алфавита используется алгоритм Хаффмана.

 

 

 

 

 

 

 

 

 

 

 

 

Отображение кодо-

 

 

 

 

 

 

 

 

 

 

 

 

вых комбинаций,

УстановкаNN

 

 

 

 

 

 

 

 

 

 

 

m ,

 

 

 

 

 

 

 

 

 

 

n

n

Двоичный

 

 

 

Укрупнение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кодер

 

 

 

 

 

 

источник

 

 

 

 

алфавита

 

 

 

 

 

 

 

 

сообщений

 

 

 

 

 

 

 

Хаффмана

 

 

 

 

 

 

 

 

 

 

Установка m

 

 

 

 

 

 

 

 

 

 

 

Выбор типа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

источника

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Характеристики

 

 

Отображение

 

 

Отображение коди-

 

 

первичного

 

 

вероятностей,

 

 

рованного сообще-

 

 

сообщения

 

 

 

энтропии

 

 

ния, количества бит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2 – Структурная схема лабораторного макета

7 Требования к отчету

7.1Название лабораторной работы.

7.2Цель работы.

7.3Результаты выполнения домашнего задания.

7.4 Структурные схемы

исследований и результаты выполнения

п. 5.2...5.4 лабораторного задания

(таблицы, расчеты).

7.5Выводы по каждому из пунктов задания, в которых представить анализ полученных результатов.

7.6Дата, подпись студента, виза преподавателя с оценкой по 100балльной системе.

56

Лабораторная работа 2.3 ИССЛЕДОВАНИЕ АЛГОРИТМА СЖАТИЯ ДИСКРЕТНЫХ СООБЩЕНИЙ LZW

1 Цель работы

1.1Изучение алгоритма сжатия дискретных сообщений LZW.

1.2Исследование зависимости коэффициента сжатия от свойств сообщения и параметров кодера LZW.

2 Ключевые положения

2.1 Дискретным сообщением является такое, которое состоит из символов конечного алфавита A = {a1 ,..., aM А }, например, текстовое сообщение. Для

передачи дискретных сообщений каналами связи каждому символу сообщения ai ставится в соответствие двоичная комбинация bi, состоящая из n разрядов:

n = log 2 M А ,

(1)

гдеMА – объем алфавита или количество знаков алфавита A;

здесь и дальше

считаем, число MА есть целая степень числа 2.

 

Преобразования ai bi называется примитивным или равномерным ко-

дированиям. Примерами примитивных кодов являются международный телеграфный код МТК-2, американский стандартный код ASCII и прочие. Наиболее часто такое кодирование является избыточным, т.е. знаки сообщения можно передавать экономнее, комбинациями меньшей длины, чем n.

По теореме Шеннона для канала без помех можно закодировать сообщение так, что средняя длина кодовой комбинации n будет сколь угодно близкой к энтропии источника сообщений:

log 2 M А ³

 

= H (A) + e,

(2)

n

где H(A) – энтропия источника сообщений, дв.ед.; ε – сколь угодно малая величина.

Такое кодирование называют эффективным кодированием или сжатием сообщения без потерь информации.

Из выражения (2) вытекает, что сжатие сообщения без потерь информации будет иметь место, лишь когда log2 M А ³ H (A). Таким образом, значение

log 2 M А является максимальным значением энтропии источника сообщений и

достигается оно, когда символы сообщения статистически независимые и равновероятные. Однако в большинстве случаев сообщения имеют избыточность, т.е. символы сообщения статистически зависимы и имеют разные вероятности, например, как в текстовых сообщениях.

2.2 Для того, чтобы сжать сообщение, кодер (алгоритм сжатия) должен устранить причины избыточности сообщения. Алгоритмы сжатия делятся на три класса:

-алгоритмы, которые устраняют разновероятность символов;

-алгоритмы, которые устраняют статистическую зависимость символов;

57

- универсальные алгоритмы, которые устраняют как разновероятность, так и статистическую зависимость символов.

К алгоритмам первого класса относятся классические коды Хаффмана и Шеннона-Фано. Алгоритмами второго класса являются словарными, наиболее распространенными из них алгоритмы Лемпеля-Зива: LZ77, LZ78, LZW и их модификации. Универсальными алгоритмами, позволяющие как угодно приблизить среднюю длину комбинации к энтропии источника, т.е. n H (A), яв-

ляются арифметические коды.

Наибольшее распространение алгоритмы сжатия без потерь информации получили в компьютерных программах-архиваторах: RAR, ZIP и других. Все современные архиваторы являются комбинированными, т.е. строятся на основе двух алгоритмов. Первым алгоритмом всех архиваторов является LZ77 или его модификации. Вторым алгоритмом является адаптивный код Хаффмана. В итоге устраняются обе причины избыточности.

Наиболее известным примером использования алгоритмов сжатия без потерь информации в системах связи является протокол V.42bis, который используется в модемах V.42 для передачи по телефонным каналам. Ядром этого протокола является алгоритм сжатия LZW – модификация классического алгоритма LZ78, предложенная Т. Уелчем. Итак, в модемах V.42 устраняется лишь статистическая зависимость между символами, поскольку адаптивный код Хаффмана, устраняющий разновероятность символов, является неэффективным с точки зрения быстродействия, поскольку данные должны передаваться модемом без значительной задержки.

2.3Особого внимания заслуживают словарные алгоритмы сжатия LZ77, LZ78 и LZW. Безоговорочным преимуществом этих алгоритмов является их адаптивность, т.е., эти алгоритмы одинаково сжимают сообщения разных алфавитов, например, текстовые сообщения разных языков. Арифметический код и код Хаффмана (которые довольно простые) предназначены для сжатия, например, английских текстов не смогут эффективно сжать, например, украинский текст. Для того чтобы арифметический код или код Хаффмана одинаково эффективно сжимали сообщения разных алфавитов, они должны быть адаптивными, что значительно усложняет эти алгоритмы и уменьшает их быстродействие.

2.4Наиболее совершенным словарным алгоритмом сжатия считается LZW. Принцип работы алгоритма LZW можно изложить тремя пунктами:

- в процессе кодирования сообщение разбивается на последовательности знаков, которые не повторяются – на строки;

-строки нумеруются – формируется словарь;

-по каналу передается номер строки, по которому можно восстановить соответствующую строку.

Для того чтобы алгоритм был однозначным, словарь необходимо инициализировать, т.е. сформировать его начальные значения. Для инициализации словаря выбирают любой примитивный код, например, ASCII. Этот код восьмиразрядный, n = 8 , и позволяет закодировать 256 знаков, которые являются элементарными строками. Процедура инициализации словаря состоит в том,

58

что этим знакам приписываются номера от 0 до 255. В результате к началу сжатия словарь имеет вид табл. 1.

Таблица 1 – Инициализированный словарь

 

Номер строки

Номер строки

Строка

в десятичной системе

в двоичной системе

 

исчисления

исчисления

"NULL"

0

00 0000 0000

 

 

 

...

...

...

 

 

 

"А"

65

00 0100 0001

 

 

 

"В"

66

00 0100 0010

 

 

 

"С"

67

00 0100 0011

 

 

 

"D"

68

00 0100 0100

 

 

 

...

...

...

 

 

 

"ٱ"

255

00 1111 1111

 

 

 

...

...

...

 

 

 

Из табл. 1 видно, что номера строк десятиразрядные, а не восьмиразрядные. Это необходимо для того, чтобы в процессе сжатия можно было расширять словарь, т.е. дополнять его новыми строками. Всего в приведенный в табл. 1 словарь может быть записано 1024 строк. Итак, объем словаря определяется:

M

А

= 2m ,

(3)

 

 

 

где m > n – количество разрядов для представления номера строки. После инициализации словаря начинается процесс сжатия:

1)во входной буфер заносятся символы до тех пор, пока не окажется, что строка, образуемая этими символами, уже есть в словаре;

2)если при занесении во входной буфер следующего символа образуется отсутствующая в словаре строка, то такая строка заносятся в словарю, как новая;

3)на выход кодера (в канал связи) подается номер последней найденной в словаре строки, а в буфере остается последний из занесенных символов.

Работа алгоритма представлена в табл. 2 на примере сообщения:

"ABABCABCABCA".

Кодер выполняет шагами 1…12 следующие действия:

1.Входной символ A, во входной буфер заносим символ "A", который есть в словаре. В словарь ничего не записывается, ничего не передается. Во входной буфер заносим "A".

2.Входной символ B, во входной буфер заносим символ "AB", которого нет в словаре. В словарь записывается строка "AB" под номером 256, передается содержимое предыдущего состояния входного буфера, т.е. код буквы "A" –

65.Во входной буфер заносим "B".

3.Входной символ А, во входной буфер заносим символ "ВА", которого нет в словаре. В словарь записывается строка "ВА" под номером 257, передает-

59

ся содержимое предыдущего состояния входного буфера, т.е. код буквы "B" –

66.Во входной буфер заносим "A".

4.Входной символ В, во входной буфер заносим символ "AB", который есть в словаре. В словарь ничего не записывается, ничего не передается. Во входной буфер заносим "AB".

5.Входной символ C, во входной буфер заносим символ "ABC", которого нет в словаре. В словарь записывается строка "ABC" под номером 258, передается содержимое предыдущего состояния входного буфера, т.е. код буквы "AB" – 256. Во входной буфер заносим "С".

Таблица 2 – Пример сжатия сообщения за алгоритмом LZW

 

 

Входной

Есть в сло-

Занести в словарь

Передает-

Входной

Символ

 

под

буфер

варе?

строка

ся

буфер

 

 

 

 

 

номером

 

 

1

A

"A"

да

-

-

-

"A"

 

 

 

 

 

 

 

 

2

B

"AB"

нет

"AB"

256

65

"B"

 

 

 

 

 

 

 

 

3

А

"ВА"

нет

"ВА"

257

66

"A"

 

 

 

 

 

 

 

 

4

B

"AB"

да

-

-

-

"AB"

 

 

 

 

 

 

 

 

5

C

"ABC"

нет

"ABC"

258

256

"C"

 

 

 

 

 

 

 

 

6

A

"CA"

нет

"CA"

259

67

"A"

 

 

 

 

 

 

 

 

7

B

"AB"

да

-

-

-

"AB"

 

 

 

 

 

 

 

 

8

C

"ABC"

да

-

-

-

"ABC"

 

 

 

 

 

 

 

 

9

A

"ABCA"

нет

"ABCA"

260

258

"A"

 

 

 

 

 

 

 

 

10

B

"AB"

да

-

-

-

"AB"

 

 

 

 

 

 

 

 

11

C

"ABC"

да

-

-

-

"ABC"

 

 

 

 

 

 

 

 

12

A

"ABCA"

да

-

-

260

""

 

 

 

 

 

 

 

 

6.Входной символ А, во входной буфер заносим символ "CA", которого нет в словаре. В словарь записывается строка "CA" под номером 259, передается содержимое предыдущего состояния входного буфера, т.е. код буквы "С" –

67.Во входной буфер заносим "А".

7.Входной символ В, во входной буфер заносим символ "AВ", который есть в словаре. В словарь ничего не записывается, ничего не передается. Во входной буфер заносим "AВ".

8.Входной символ С, во входной буфер заносим символ "AВС", который есть в словаре. В словарь ничего не записывается, ничего не передается. Во входной буфер заносим "AВС".

9.Входной символ А, во входной буфер заносим символ "АВCA", которого нет в словаре. В словарь записывается строка "АВCA" под номером 260, передается содержимое предыдущего состояния входного буфера, т.е. код буквы "АВС" – 258. Во входной буфер заносим "А".

60

10.Входной символ В, во входной буфер заносим символ "AВ", который есть в словаре. В словарь ничего не записывается, ничего не передается. Во входной буфер заносим "AВ".

11.Входной символ С, во входной буфер заносим символ "AВС", который есть в словаре. В словарь ничего не записывается, ничего не передается. Во входной буфер заносим "AВС".

12.Входной символ А, во входной буфер заносим символ "AВСА", который есть в словаре. В словарь ничего не записывается. Так как на входе кодера символов больше нет, передается содержимое входного буфера, т.е. "AВСА" –

260.

Итак, в результате сжатия сообщения "ABABCABCABCA" каналом связи передается последовательность из шести чисел: 65 66 256 67 258 260.

2.5 Все алгоритмы сжатия, в том числе и алгоритм LZW, характеризуются тремя параметрами:

-коэффициентом сжатия η;

-скоростью сжатия и декодирования сообщения;

-объемом памяти, необходимой для работы кодера и декодера. Скорость сжатия, декодирование и объем памяти на сегодня уже не явля-

ются определяющими при выборе того или другого алгоритма сжатия – определяющим параметром является коэффициент сжатия, который обеспечивается заданным алгоритмом сжатия.

Коэффициентом сжатия называется отношение:

η =

n

=

N вх

,

(4)

 

 

 

 

 

 

 

Nвых

 

n

 

где Nвх – количество двоичных символов, используемых для представления сообщения на входе кодера;

Nвых – количество двоичных символов, используемых для представления сообщения на выходе кодера.

2.6 Количество двоичных символов на входе кодера, необходимых для представления сообщения "ABABCABCABCA", равняется произведению количества символов сообщения и количества разрядов: N вх = 12 × 8 = 96 . Соответ-

ственно, количество двоичных символов на выходе кодера: N вых = 6 ×10 = 60 . Та-

ким образом, сообщение "ABABCABCABCA" сжато в 1,6 раза.

Пусть теперь сообщение состоит лишь из трех символов "ABA". В этом случае на выходе кодера будет наблюдаться следующая последовательность чисел: 65 66 65. В результате, коэффициент сжатия меньше единицы: (3 × 8)(3 ×10) = 0,8 . Таким образом, кодер не сжимает сообщения, а наоборот,

увеличивает избыточность.

Последний пример показывает основной недостаток всех словарных алгоритмов – плохое сжатие коротких сообщений. Этот факт объясняется тем, что в процессе сжатия таких сообщений словарь практически не заполняется, и, в основном, кодируются одиночные символы, а не последовательности символов.