Алгоритм построения кодового дерева кода Хаффмена
Input: Объем алфавита М, вероятности букв Output: Двоичное дерево кода Хаффмена Инициализация: Количество необработанных узлов while do в списке необработанных узлов найти два узла с наименьшими вероятностями. Исключить эти узлы из списка необработанных. Ввести новый узел, приписать ему суммарную вероятность двух исключенных узлов. Новый узел связать ребрами с исключенными узлами. End Алгоритм построения кода Шеннона–Фано Input:Объем алфавита , вероятности букв Output: Список кодовых слов Шеннона Сортировка: for to do индекс -й по убыванию вероятностей буквы алфавита End Кумулятивные вероятности:
for to do
End Кодовые слова: for to do первые разрядов после запятой в двоичной записи числа End
Алгоритм построения кода Гилберта–Мура Input: Объем алфавита , вероятности букв Output: Список кодовых слов кода Гилберта – Мура Вспомогательные вероятности: for to do End Кодовые слова: for to do первые разрядов после запятой в двоичной записи числа End Алгоритм арифметического кодирования Input: Объем алфавита вероятности букв длина последовательности последовательность на выходе источника , Output: Кодовое слова арифметического кода Кумулятивные вероятности: for to do End Кодирование: for to do End Формирование кодового слова: первые разрядов после запятой в двоичной записи числа Алгоритм декодирования кода Гилберта – Мура Input: Объем алфавита кумулятивные вероятности букв вход декодера Output: Декодированная буква Инициализация: Поиск буквы: while do End Результат:
|