- •Кодирование информации
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Основные понятия
- •Разделимые коды
- •Префиксные коды
- •Кодовое дерево
- •Кодовое дерево
- •Неравенство Крафта
- •Неравенство Мак-Миллана
- •Средняя длина кода
- •Теорема кодирования источников I
- •Теорема кодирования источников I
- •Теорема кодирования источников I
- •Теорема кодирования источников II
- •Теорема кодирования источников II
- •Теорема кодирования источников II
- •Теорема кодирования источников II
- •Избыточность кода
- •Задача оптимального кодирования
- •Метод Фано
- •Метод Фано
- •Метод Шеннона
- •Метод Хаффмена
- •Избыточность кода
- •Метод Хаффмена
- •Блочное кодирование
Кодирование информации
1.Основные понятия
2.Теоремы кодирования
3.Оптимальное кодирование
4.Кодирование Хаффмена
5.Кодирование Шеннона-Фано
6.Блочное кодирование
Основные понятия
1.Алфавит: А = {a1, …, an}
2.Слово: c1…ck,ci А
3.Пустое слово: s =
4.Множество слов: A*
5.Кодирование: A C B*
6.Кодовое слово: b1…bm, bi B
7.Префиксный код: s = s1s2; s, s1, s2 B*, s C, s1 C
Основные понятия
Пусть A – произвольный алфавит. Элементы алфавита A называют буквами (или символами), а конечные последовательности, составленные из букв,
– словами в A. При этом считается, что в любом алфавите существует пустое слово, не содержащее букв. Множество всех слов, составленных из букв алфавита A, обозначается A*.
Основные понятия
Слово α1 называют началом (префиксом) слова α, если существует слово α2, такое, что α = α1α2; при этом слово α1 называют собственным началом слова α, если α2 – не пустое слово. Длина слова – это число букв в слове (пустое слово имеет длину 0). Запись α1α2 обозначает соединение (конкатенацию) слов α1 и α2. Слово α2 называют окончанием (суффиксом) слова α, если существует слово α1, такое, что α = α1α2; при этом слово α2 называют собственным окончанием слова α, если α1 – не пустое слово. Пустое слово по определению считается началом и окончанием любого слова α.
Основные понятия
Рассмотрим алфавит B = {0, 1, …, D – 1}, где D ≥ 2, и произвольное множество A. Произвольное отображение множества A в множество слов в алфавите B называют D-ичным кодированием множества A (при
D = 2 кодирование будет двоичным). Обратное отображение называют декодированием.
Основные понятия
n |
e(n) |
n |
e(n) |
n |
e(n) |
n |
e(n) |
0 |
0 |
4 |
100 |
8 |
1000 |
12 |
1100 |
1 |
1 |
5 |
101 |
9 |
1001 |
13 |
1101 |
2 |
10 |
6 |
110 |
10 |
1010 |
14 |
1110 |
3 |
11 |
7 |
111 |
11 |
1011 |
15 |
1111 |
n |
ek(n) |
n |
ek(n) |
n |
ek(n) |
n |
ek(n) |
0 |
0000 |
4 |
0100 |
8 |
1000 |
12 |
1100 |
1 |
0001 |
5 |
0101 |
9 |
1001 |
13 |
1101 |
2 |
0010 |
6 |
0110 |
10 |
1010 |
14 |
1110 |
3 |
0011 |
7 |
0111 |
11 |
1011 |
15 |
1111 |
Основные понятия
Пусть A = {ai, i = 1, 2, …} – конечный или счетный алфавит, буквы которого занумерованы натуральными числами. В этом случае кодирование букв алфавита A можно задать последовательностью D-ичных слов
V = {vi, i = 1, 2, …}, где vi есть образ буквы ai. Такие последовательности слов (из множества V) называют кодами (алфавита А). Если задан код V алфавита А, то кодирование слов, при котором каждому слову ai1ai2…aik ставится в соответствие слово vi1vi2…vik, называют побуквенным кодированием.
Разделимые коды
При переходе от взаимно однозначного кодирования букв алфавита к побуквенному кодированию слов в алфавите свойство взаимной однозначности может не сохраниться. Например, кодирование e(n) не сохраняет данное свойство, а кодирование ek(n) его сохраняет. Свойство взаимной однозначности сохраняют разделимые коды. Код V = {vi, i = 1, 2, …} называют разделимым, если из каждого равенства вида
vi1vi2…vik = vj1vj2…vjl
следует, что l = k и vi1 = vj1, vi2 = vj2, … , vik = vjl. Разделимые коды называют также однозначно
декодируемыми кодами.
Префиксные коды
Кклассу разделимых кодов принадлежат префиксные коды. Код V = {vi, i = 1, 2, …} называют префиксным, если никакое слово
vk не является началом (префиксом) никакого слова vl, l ≠ k. Если каждое слово префиксного кода заменить наименьшим его началом, которое не является началом других кодовых слов, то полученный код также будет префиксным. Такую операцию называют усечением префиксного кода.
Кодовое дерево
Для произвольного кода V, состоящего из различных слов, можно построить кодовое дерево. Это ориентированный граф, не содержащий циклов, в
котором вершина β1 соединена с вершиной β2 ребром, направленным от β1 к β2, тогда и только тогда, когда β2 = β1b, где b B = {0, 1, …, D – 1}, D ≥ 2. Для префиксных кодов (и только для них) множество кодовых слов совпадает с множеством концевых вершин (вершин, из которых не исходят ребра) кодового дерева.