Адаптивное разностное кодирование сигналов и битовых полей
Рисунок 1 демонстрирует пример кодирования исходных данных (график с тонкой линией) в разностную форму (нижний график с толстой линией). В верхней части рисунка показаны изменения уровня разности в процессе адаптации. Степень положительного эффекта от разностного кодирования во многом будет зависеть от характера данных, но даже если данные не отфильтрованы от шума погрешностей, благодаря адаптивности алгоритма, вероятность возникновения отрицательного эффекта будет минимальной.
Рис. 1. Пример разностного кодирования сигналов
Для регулирования скорости адаптации разностного преобразователя критерий выбора уровня разности меняется таким образом, чтобы уровень разности менялся не согласно соседним разностям, а согласно некоторому диапазону или сразу всем возможным уровням. При этом размер ключа возрастет, поскольку он должен будет содержать все дополнительные уровни способные влиять на процесс адаптации. На рисунке 2 видно, что при максимальной скорости адаптации возрос положительный результат кодирования, количество резких пиков в последовательности разностей уменьшилось по сравнению с рисунком 1, а график смены уровней приобрел более резкий вид.
Рис. 2. Пример разностного кодирования сигналов с максимальной скоростью адаптации
Битовые поля предлагается преобразовывать в разностную форму посредством операции сложения по модулю два. Адаптивность достигается перестановкой бит в поле на основе таблицы частот, в которой ведется учет изменений на противоположное значение по каждому биту поля, она же является ключом к восстановлению кодированной последовательности данных с позиции отличной от начала. В таблице 1 приведен пример кодирования текста предложенным методом, условный выигрыш в данном примере составил 26 бит при 90 битах оригинальных данных, расчеты выполнялись путем исключения последовательности нулей в начале битовых полей и результатов перестановки.
Битовое поле на основе символа | Символ | Разность с предыдущим полем | Содержимое таблицы частот | Текущий порядок бит | Результат перестановки |
---|---|---|---|---|---|
П | 11001111 | 11001111 | 1|1|0|0|1|1|1|1 | 7|6|5|4|3|2|1|0 | 11001111 |
р | 11110000 | 00111111 | 1|1|1|1|2|2|2|2 | 5|4|7|6|3|2|1|0 | 11001111 |
и | 11101000 | 00011000 | 1|1|1|2|3|2|2|2 | 7|6|5|4|3|2|1|0 | 00011000 |
в | 11100010 | 00001010 | 1|1|1|2|4|2|3|2 | 7|6|5|4|2|1|0|3 | 00000101 |
е | 11100101 | 00000111 | 1|1|1|2|4|3|4|3 | 7|6|5|4|2|0|1|3 | 00001110 |
т | 11110010 | 00010111 | 1|1|1|3|4|4|5|4 | 7|6|5|4|2|0|3|1 | 00011101 |
¸ | 00101100 | 11011110 | 2|2|1|4|5|5|6|4 | 7|6|5|4|3|2|0|1 | 11011101 |
00100000 | 00001100 | 2|2|1|4|6|6|6|4 | 5|7|6|4|0|3|2|1 | 00000110 | |
м | 11101100 | 11001100 | 3|3|1|4|7|7|6|4 | 5|7|6|4|0|3|2|1 | 01100110 |
и | 11101000 | 00000100 | 3|3|1|4|7|8|6|4 | 5|7|6|4|0|1|3|2 | 00000001 |
р | 11110000 | 00011000 | 3|3|1|5|8|8|6|4 | 5|7|6|4|0|1|3|2 | 00010010 |
! | 00100001 | 11010001 | 4|4|1|6|8|8|6|5 | 5|7|6|0|4|1|3|2 | 01111000 |
Если значение какого-либо из счетчиков таблицы частот выходит за допустимые пределы, она подвергается коррекции путем сдвига всех ее элементов на один разряд вправо. При этом скорость адаптации можно регулировать максимально допустимым значением счетчика, чем меньше данный параметр, тем быстрее происходит адаптация к потоку данных.