Актуальность работы заключается в том, что в настоящее время, с развитием научно-технического прогресса, при многократно возросших объёмах информации возникает проблема сжатия данных. Для сжатия информации применяется кодирование. Так как при кодировании сокращается время передачи информации, а скорость передачи информации увеличивается. Применение кодирования позволяет решать целый спектр научно-технических проблем. Целью работы является упрощения алгоритма формирования префиксного кода, используемого для передачи информации.
Ключевые слова: кодирование, алгоритм, вероятность, префикация, ошибки.
Предполагаемый метод относится к области методов кодирования текстовой информации префиксными кодами, у которых длина кода и алгоритм кодирования зависит от частоты использования символов.
Прототипом предполагаемого алгоритма является алгоритм кодирования методом Хаффмана [1, с. 23]. Метод предлагаемого кодирования включает алгоритм получения кода — это, прежде всего, формирование двоичного кода остатка от приведенной частоты использования символа.
Рассмотрим кодирование на конкретном примере.
Рассмотрим задачу полностью. Пусть дан текст. Анализ текста определяет количество символов в тексте (см. второй столбец табл. 1).
Например, буква «А» встречается 36 раз в тексте, буква «Б» встречается 24 раза в тексте, буква «В» встречается 12 раз в тексте, и так далее.
Таблица 1
Пример получения предлагаемого кода
Наименование символов |
Кол-во символов втексте, шт. |
Поведенная частота символов |
Остаток от приведенной частоты |
Остаток от приведенной частоты вдвоичном коде |
Остаток от приведенной частоты вдвоичном коде без нулей вправой части |
Двоичный префиксный код |
А |
36 |
0,424 |
0,576471 |
0.10010011100 |
0.100100111 |
10010011 |
Б |
24 |
0,282 |
0,294118 |
0.01001011010 |
0.0100101101 |
01001011 |
В |
12 |
0,141 |
0,153 |
0.00100111001 |
0.00100111001 |
00100111 |
Г |
5 |
0,059 |
0,094 |
0.00011000000 |
0.00011 |
00011 |
Д |
5 |
0,059 |
0,035 |
0.00001001000 |
0.00001001 |
00001001 |
Е |
1 |
0,012 |
0,023 |
0.00000110000 |
0.0000011 |
0000011 |
Ж |
1 |
0,012 |
0,011 |
0.00000011000 |
0.00000011 |
00000011 |
З |
1 |
0,012 |
0 |
0 |
0.0 |
1111 |
85 |
1 |
Далее, производится определение вероятности появления этого символа, исходя из того, что сумма вероятностей всех символов равно единице. См. табл. 1 столбец 3.
Выполнение поиска остатка от вероятности по правилу
R (1 символа) =1 — P (1 символа)
R (i символа) = R ((i — 1) символа) — P (i символа)
где, i — номер символа.
Например, для буквы А и Б
R(А)=1–0,423529= 0,576471
R(Б)= 0,576471–0,282353= 0,294118 и т. д.
Смотри таблицу 1 столбец 4. Тем самым, получаем различное (неповторяемое) для каждого символа число.
Далее, приводится выполнение перевода полученных значений из десятичной системы счисления в двоичную систему. См табл. 1 столбец 4.
После этого, выполняется исключение нулей из полученной дробной части (не значащиеся нули справа). См. табл. 1 столбец 5. Это необходимо для сокращения длины общей записи.
Далее, рассмотрим выполнение операции префикации [2, с. 32]. Смысл этой операции заключается в исключении одинаковых начальных кодовых комбинаций (для исключения двоякого понимания символов), например, буква З при прямом переводе получает значение кодировки 0. Буква Б, В, Г, Д, Е, Ж начинается со значения 0. Следовательно может быть двоякое толкование. Заменим кодировку буквы З — 0 на 1111. Такая комбинация в кодовых комбинации других букв отсутствует, следовательно, данный код обладает уникальной комбинацией битов, и данная операция по добавлению нулей или единиц, относится к операции префикации. Смотри таблицу 1 столбец 7.
После получения кодовых выражений для символов выполняется кодировка текста.
Например, текст АБВ будет иметь код
100100111 0100101101 00100111001.
После получения полного текста приемный абонент проверяет правильность пришедшего кода текста путем проверки на количество указанных частот появления символов и определения остатков в двоичном коде. В случае совпадения кодировки символов с исходными кодами делается вывод об идентичности текстов (отсутствии ошибок).
Таким образом, предлагается использовать отличный метод кодирования. Данный метод кодирования позволяет выполнять проверку принятого текста на наличии ошибки в принятых символах.
Задачей данного метода является устранение недостатка кода Хаффмана. А именно невозможность анализа о наличии ошибки в переданном тексте.
Предлагаемый код обладает данным качеством.
Таким образом, предложенный код обладает информацией об ошибках в передаче символов за счет алгоритма формирования самого кода символа, в котором заложена информация частоты использования символа.
Литература:
1. В. Н. Потапов Теория информации. Кодирование дискретных вероятностных источников. Новосибирск, 1999. — с. 23–26.
- Д. Ватолин, А. Ратушняк, М. Смирнов, В. Юкин Методы сжатия данных. Москва.: Диалог-Мифи, 2003, с. 32–34