Добавлен: 29.04.2023
Просмотров: 250
Скачиваний: 1
Для иного класса источников (марковских) имеется статистическая связь среди порождаемых символов. В последующем мы будем анализировать кодирование стационарных (с неизменным распределением вероятностей) бернуллиевских дискретных источников без памяти [17, с. 117].
Пусть наличествует дискретный вероятностный источник без памяти, порождающий знаки алфавита А={a1,…,an} с вероятностями , . Ведущей чертой источника считается энтропия, которая представляет из себя среднее значение числа информации в сообщении источника и находится выражением (для двоичного случая):
. (2.2)
Энтропия охарактеризовывает меру неопределенности выбора для предоставленного источника.
Приведем пример. В случае если А={a1,a2}, p1=0, p2 =1, т.е. источник имеет возможность породить лишь только знак a2, то неопределенности нету, энтропия H(p1,p2)=0 [16, с. 82].
Источник с равновероятными символами А={a1,a2}, p1 =1/2, p2 =1/2, станет иметь наибольшую энтропию H(p1,p2)=1.
Величина называется энтропией на символ последовательности длины L, где AL множество всех последовательностей длины L в алфавите A, x=(x1,x2,...,xL) последовательность L букв дискретного cтационарного источника. Обозначим через предел энтропии HL при L . Данное значение именуют предельной энтропией источника. Показано, собственно, что для стационарного бернуллиевского источника:
. (2.3)
Для практических применений принципиально, дабы коды сообщений имели по возможности кратчайшую длину [14, с. 77].
Ведущей чертой неравномерного кода считается численность знаков, затрачиваемых на кодирование одного сообщения. Пускай есть разделимый побуквенный код для источника, порождающего знаки алфавита А={a1,…,an} с вероятностями pi =P(ai), состоящий из n кодовых слов с длинами L1,…,Ln в алфавите {0,1}.
Средней длиной кодового слова именуется величина , которая демонстрирует среднее количество кодовых букв на 1-ну букву источника.
Приведем пример. Пускай есть 2-ва источника с одинаковым алфавитом А={a1,a2,a3} и различными вероятностными распределениями P1={1/3, 1/3, 1/3}, P2={1/4, 1/4, 1/2}, которые кодируются одинаковым кодом:
. (2.4)
Средняя длина кодового слова для различных источников станет разной:
Lср(P1)=1/3.2 + 1/3.3 + 1/3.2= 7/3 ≈2.33;
Lср(P2)=1/4.2 + 1/4.3 + 1/2.2= 9/4 =2.25.
Побуквенный разделимый код именуется оптимальным, в случае если средняя длина кодового слова мала между всех побуквенных разделимых кодов для предоставленного рассредотачивания возможностей символов [12, с. 32].
Избыточностью кода именует разницу меж средней длиной кодового слова и предельной энтропией источника сообщений:
. (2.5)
Избыточность кода – есть показатель качества кода, подходящий код имеет минимальную избыточность. Задача действенного неискажающего сжатия заключается в построении кодов с минимальной избыточностью, у коих средняя длина кодового слова близка к энтропии источника. К этим кодам относятся традиционные коды Хаффмана, Шеннона, Фано, Гилберта-Мура и арифметический код [10, с. 17].
Связь меж средней длиной кодового слова и энтропией дискретного вероятностного источника при побуквенной кодировке выражает указанная ниже теорема.
Теорема 1 (Шеннон). Для источника с алфавитом А={a1,…,an} и вероятностями pi =P(ai), и любого разделимого побуквенного кода средняя длина кодового слова всякий раз не меньше энтропии:
Lcp ≥ H(p1,…,pn) (2.6)
И возможно выстроить разделимый побуквенный код, у которого средняя длина кодового слова превосходит энтропию не более, чем на единицу:
Lcp < H(p1,…,pn)+1 (2.7)
Возможно получить больше крепкие итоги, в случае если кодовые слова приписывать не отдельными буквами, а блоками из L букв источника. Так, для неравномерных блоковых кодов справедлива приведенная ниже теорема.
Теорема 2. Пусть HL энтропия на букву в блоке длины L дискретного источник. Тогда есть префиксный код для кодировки блоков длины L, такой, что средняя длина кодового слова Lcp станет удовлетворять неравенствам:
. (2.8)
Отметим, что в случае бернуллиевского стационарного источника для всякого >0 возможно избрать довольно большущее L, дабы размер Lcp удовлетворял неравенствам:
, (2.9)
и левое неравенство для Lcp ни разу не нарушается для разделимого кода.
Приведем кое-какие качества, которыми владеет всякий подходящий побуквенный код [8, с. 186].
Лемма 1. Для рационального кода с длинами кодовых слов L1,…,Ln: правильно соответствие L1≤L2≤…≤Ln , если p1≥p2≥…≥pn.
Подтверждение (от противного): Пусть имеется i и j, что Li>Lj при pi>pj. Отсюда будем иметь:
Lipi+Ljpj=
=Lipi+Ljpj+Lipj+Ljpi-Lipj-Ljpi=
=pi(Li-Lj)-pj(Li-Lj)+Ljpi+Lipj=
=(pi-pj)(Li-Lj) +Lipj+Ljpi>Lipj+Ljpi,
т.е. в случае если заменим между собой Li и Lj, то получим код, имеющий наименьшую среднюю длину кодового слова, собственно, что противоречит с оптимальности кода. Лемма 1 подтверждена.
Лемма 2 Пусть – схема рационального префиксной кодировки для рассредотачивания вероятностей Р, . Тогда между элементарными кодами, имеющих наибольшую длину, существуют 2-ва, которые отличаются лишь только в последнем разряде.
Доказательство. Продемонстрируем, собственно, что в хорошей схеме кодировки всякий раз отыщется 2 кодовых слова наибольшей длины. Допустим оборотное. Пускай кодовое слово наибольшей длины одно и содержит вид , . Тогда длина всякого простого кода не больше длины b, т.е. , . Потому, что схема кодирования префиксная, то кодовые слова не являются префиксом b. С иной стороны, b не считается префиксом кодовых слов .
Этим образом, новая схема кодирования также считается префиксной, при этом с наименьшей средней длиной кодового слова , что собственно противоречит оптимальности начальной схемы кодировки [5, с. 141].
Пусть теперь 2 кодовых слова и наибольшей длины различаются не в конечном разряде, т.е. , , , . Причем , не считаются префиксами для иных кодовых слов и напротив. Тогда новая схема также считается префиксной, при этом , что противоречит оптимальности начальной схемы кодировки. Лемма 2 подтверждена [10, с. 19].
В заключение можно сделать вывод, что при кодировании сообщений является то, что символы сообщения порождаются определенным источником информации. Источник является установленным целиком, в случае если предоставлено вероятностное представление процесса появления сообщений на выходе источника. Данное значит, то что в любой момент времени установлена возможность порождения источником любой очередности символов Р(x1x2x3...xL), L≥1. Такой источник именуется дискретным вероятностным источником.
2.2. Метод оптимального побуквенного кодирования Д. Хаффмана
Метод оптимального побуквенного кодирования был создан в 1952 г. Д. Хаффманом. Оптимальный код Хаффмана имеет минимальную среднюю длину кодового слова между всех побуквенных кодов для предоставленного источника с алфавитом А={a1,…,an} и вероятностями pi =P(ai).
Рассмотрим алгоритм построения рационального кода Хаффмана, который базируется на утверждениях лемм предшествующего параграфа.
- Упорядочим знаки начального алфавита А={a1,…,an} по убыванию их вероятностей p1≥p2≥…≥pn.
- Если А={a1,a2}, то a10, a21.
- Если А={a1,…,aj,…,an} и известны коды <aj bj >, j = 1,…,n, то для алфавита {a1,…aj/, aj//…,an} с новыми символами aj/ и aj// вместо aj, и вероятностями p(aj)=p(aj/)+ p(aj//), код символа aj заменяется на коды aj/ bj0, aj// bj1 [10, с. 19].
Пример. Пусть дан алфавит A={a1, a2, a3, a4, a5, a6} с вероятностями
p1=0,36, p2=0,18, p3=0,18, p4=0,12, p5=0,09, p6=0,07.
Тут знаки источника уже упорядочены в согласовании с их вероятностями. Станем складывать 2 меньшие вероятности и включать суммарную вероятность на соответствующее место в упорядоченном списке вероятностей до тех пор, пока в списке не останется 2 символа. Тогда закодируем эти 2 символа 0 и 1. Дальше кодовые слова достраиваются, как указано на рисунке 2.1.
Рис. 2.1 Процесс построения кода Хаффмана [10, с. 20]
Таблица 2.1 Код Хаффмана [10, с. 20]
|
ai |
pi |
Li |
кодовое слово |
|
a1 a2 a3 a4 a5 a6 |
0,36 0,18 0,18 0,12 0,09 0,07 |
2 3 3 4 4 4 |
1 000 001 011 0100 0101 |
Рассчитаем среднюю длину, построенного кода Хаффмана:
Lср(P)=1.0,36 + 3.0,18 + 3.0,18 + 3.0,12 + 4.0,09 + 4.0.07 =2,44,
при этом энтропия этого источника:
H(p1,…,p6) = − 0,36.log0,36 − 2.0,18.log0,18 −
− 0,12.log0,12 − 0,09.log0,09 − 0,07log0,07=2,37
Код Хаффмана как правило основывается и хранится в облике двоичного дерева, в листьях которого присутствуют знаки алфавита, а на «ветвях» – 0 или же 1. Тогда уникальным кодом символа является путь от корня дерева к к данному символу, по которому все 0 и 1 объединяются в одну уникальную последовательность (рис. 2.2).
Рис. 2.2 Кодовое дерево для кода Хаффмана [10, с. 20]
Алгоритм на псевдокоде
Построение оптимального кода Хаффмана (n, P).
Обозначим:
- n – количество символов исходного алфавита;
- P – массив вероятностей, упорядоченных по убыванию;
- С – матрица элементарных кодов;
- L – массив длин кодовых слов.
Huffmаn (n,P)
IF (n=2) С [1,1]:= 0, L [1]:= 1
С [2,1]:=1, L [2]:=1
ELSE q:= Р [n-1]+P [n]
j:= Up (n,q) (поиск и вставка суммы)
Huffmаn (n-1,Р)
Dоwn (n,j) (достраивание кодов)
FI
Функция Uр (n,q) находит в массиве Р место, куда поставить число q, и вставляет его, сдвигая вниз другие элементы.
DО (i=n-1, n-2,…,2)