Файл: Методы кодирования данных, основные понятия.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 16.05.2023

Просмотров: 898

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рассмотрев главу 1 можно сделать вывод, что приведенные классификационные методы кодирования данных (последовательный и параллельный) характеризуются тем, что при глубокой классификации объектов код несет информацию о классификационной группировке, но не всегда опознает конкретный объект, а коды, полученные на основе регистрационных методов кодирования данных (порядковый и серийно-порядковый) при том, что хорошо выполняют функцию идентификации объектов, на деле почти не несут информацию об их свойствах. Поэтому регистрационные и классификационные методы кодирования данных чаще всего применяются в классификаторах в сочетании друг с другом.

___________________

1 Герасеймчук К.А. Кодирование. Основа кодирования: Учебник для вузов / К.А. Герасеймчук – СПб.: Питер, 2011. – 136 с.

Глава 2. Методы кодирования - сжатие или упаковка данных

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

Сжатие данных (data compression) – технический прием сокращения объема (размеров) записи данных на их носителе (жестком магнитном диске, дискете, магнитной ленте), реализуется разными методами, предпочтительно использующими кодирование (повторяющихся слов, фраз, символов). Выделяют две группы режимов сжатия данных – статическую и динамическую. Различают также виды сжатий:

  • физическое и логическое;
  • симметричное и асимметричное;
  • адаптивное, полуадаптивное и неадаптивное кодирование;
  • сжатие без потерь, с потерями и минимизацией потерь.7

Алгоритм Шеннона-Фано – один из первых алгоритмов сжатия, который впервые сформулировали американские ученые Шеннон и Роберт Фано. Данный метод сжатия имеет большое сходство с алгоритмом Хаффмана, который появился на несколько лет позже и является логическим продолжением алгоритма Шеннона.14

Далее рассмотрим подробнее алгоритмы Шеннона-Фано и Хаффмана.


___________________

11 Шавенько Н.К. Основы теории информации и кодирования / Н.К. Шавенько. – М.: МИИГАиК, 2012. – 28 с.

7 Русанов К.Л. Приемы сокращения объемов информации / К.Л. Русанов. – М.: ЮНИТИ-ДАНА, 2013. – 58 с.

14 https://ru.wikipedia.org/wiki/

2.1. Алгоритм Шеннона-Фано

Суть алгоритма Шенона-Фано заключается в том, что все символы алфавита источника сообщений ранжируют, т.е. располагают в порядке убывания вероятностей их появления и при использовании двоичного кода объем алфавита элементов символов кода равен 2. Впоследствии символы алфавита делятся на две группы примерно равной суммарной вероятности их появления. Все символы первой группы в качестве первого элемента кодового символа получают «0», а все символы второй группы – «1». Дальше группы делятся на подгруппы, по тому же правилу примерно равных суммарных вероятностей, и в каждой подгруппе присваивается вторая позиция кодовых символов. Процесс повторяется до закодирования всех символов алфавита кодируемого источника сообщений. В кодовый символ, который соответствует последней группе, добавляется в качестве последнего элемента «0» для того, чтобы начальный элемент символов кода не совпадал с конечным, что позволяет исключить разделительные элементы между символами кода (см. Таблицу 2 – построения кода Шеннона-Фано на примере источника сообщений, алфавит которого состоит из восьми символов).

Таблица 2

Процесс построения кода Шеннона-Фано

Номер

Символы

Вероятности

Номера

разбиений

Кодовые

символы

символа (i)

алфавита (mi)

(Рi)

символы

1

m1

1/2

I

0

2

m2

1/4

II

10

3

m3

1/8

III

110

4

m4

1/16

IV

1110

5

m5

1/32

V

11110

6

m6

1/64

VI

111110


Продолжение Таблицы 2

7

m7

1/128

VII

1111110

8

m8

1/256

11111110

На рис. 2 представлен граф кодирования (кодовое дерево), показывающий, как «расщепляется» ранжированная последовательность символов кодируемого источника сообщений на группы и отдельные символы и какие кодовые символы присваиваются группам и отдельным символам алфавита источника сообщений на каждом шаге разбиения.

Рис. 2. Граф кодирования по алгоритму Шеннона-Фано

Алгоритм Шеннона-Фано применим и при иных числовых основаниях кода (k > 2). В этом случае алгоритм получения кода аналогичен рассмотренному примеру, только алфавит кодируемого источника сообщений разбивается на k групп и подгрупп примерно одинаковой суммарной вероятности.

Представляет интерес сравнение эффективного кодирования равномерным кодом и неравномерным кодом по алгоритму Шеннона-Фано.

В качестве примера рассмотрим предложенный выше (Табл. 2) источник сообщений с объемом алфавита равным 8 и соответствующими вероятностями появления отдельных символов (Pi). Для кодирования используем двоичный код ( k = 2).

Энтропия рассмотренного источника сообщений (Hи) определяется по формуле Шеннона-Фано:

Максимально же возможное значение энтропии источника сообщений

(Hu.max), при условии равновероятного и взаимно независимого появления символов, находится по формуле Хартли:

Следовательно, избыточность рассматриваемого источника сообщений (Rи) может быть найдена из соотношения:

Используя формулу для эффективного равномерного кода, при k = 2,

получим значность равномерного двоичного кода (пр):

и избыточность равномерного кода (Rрк):

Энтропия элементов символов равномерного кода , то есть количество информации, приходящееся на один элемент символа кода, будет равна:

При использовании эффективного кодирования по алгоритму Шеннона-Фано соответствующие информационные параметры кода будут следующие.


Средняя длина неравномерного кода (пН) определяется выражением:

(1)

где пi – значность i - го кодового символа, соответствующего символу алфавита mi.

Избыточность неравномерного кода (RНК) определим из соотношения:

(2)

Энтропия элементов символов эффективного неравномерного кода

может быть легко найдена:

(3)

Сравнивая выражения (1) и (3) видно, что, при использовании эффективного кодирования по алгоритму Шеннона-Фано, энтропия элементов символов такого неравномерного кода на 50% выше, чем энтропия элементов символов в случае использования равномерного кода. Предполагая, что скорость передачи по каналу элементов символов кода (W) одинакова для равномерного и неравномерного кода, то скорость передачи информации (V), определяемая выражением:

где Н – энтропия элементов символа кода, также будет на 50% выше при

использовании эффективного кодирования по алгоритму Шеннона-Фано по

сравнению с равномерным кодированием.

Алгоритм Шеннона-Фано часто применяют также и для блочного кодирования, где также существенно повышается эффективность кодирования. Для иллюстрации данного кодирования рассмотрим процедуру эффективного кодирования двоичным числовым кодом сообщений, генерируемых источником сообщений с объемом ал­фавита равным 2 (m = 2), то есть с алфавитом, который состоит только из двух символов m1 и m2 с вероятностями появления P(m1) = 0,9 и P(m2) = 0,1 и, следовательно, с энтропией Н = 0,47.

При посимвольном кодировании по алгоритму Шеннона-Фано эффект отсутствует, т.к. на каждый символ сообщения будет приходиться один символ кода, который состоит из одного элемента.

Осуществим кодирование блоков по алгоритму Шеннона-Фано, которые состоят из комбинаций двух символов источника сообщений, считая

симво­лы взаимнонезависимыми. Результат приведен в Таблице 3.

Таблица 3

Кодирование блоков по алгоритму Шеннона-Фано

Блоки

Вероятности

Номера

разбиений

Кодовые

комбинации

m1m1

0,81

I

1

m1m2

0,09

II

01

m2m1

0,09

III

001

m2m2

0,01

0001


Среднее число элементов символов кода на один символ исходного сообщения, вычисленное по формуле (2), равно 0,645, что значительно ниже, чем при посимвольном кодировании.

Кодирование блоков, соответствующих комбинациям из трех символов

источника сообщений, дает еще больший эффект. Результат приведен в Таблице 4.

Таблица 4

Кодирование блоков, соответствующих комбинациям

из трех символов источника сообщений

Блоки

Вероятности

Номера

разбиений

Кодовые

комбинации

m1 m1 m1

0,729

I

1

m2 m1 m1

0,081

III

011

m1 m2 m1

0,081

II

010

m1 m1 m2

0,081

IV

001

m2 m2 m1

0,009

VI

00011

m2 m1 m2

0,009

V

00010

Продолжение Таблицы 4

m1 m2 m2

0,009

VII

00001

m2 m2 m2

0,001

00000

В этом случае среднее число элементов символов кода на один символ исходного источника сообщений равно 0,53.

Теоретический минимум Н = 0,47 может быть достигнут при кодировании блоков неограниченной длины.

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

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

Алгоритм Хаффмана – скупой алгоритм оптимального префиксного кодирования алфавита с минимальной избыточностью. Он был разработан в 1952 году аспирантом Массачусетского технологического института Дэвидом Хаффманом при написании им курсовой работы. Данный алгоритм в настоящее время используется в многочисленных программах сжатия данных.