Адаптивное разностное кодирование сигналов и битовых полей

Авторы: 

Для преобразования цифровых измерительных сигналов к виду удобному для дальнейшего кодирования в более компактное представление была разработана разновидность дельта-кода, которая обладает адаптивностью. Параметром адаптации является уровень разности: нулевой уровень говорит о том, что данные передаются как есть; первый уровень соответствует классическому дельта-коду, когда данные представляются в форме разности между последовательными данными вместо самих данных; на втором уровне последовательность данных представляется в форме разности разностей и так далее до максимально допустимого уровня. Критерием изменения уровня для следующего шага служит факт того, что абсолютное значение разности текущего уровня больше абсолютного значения наименьшей из разностей соседних уровней. Обычно достаточно ограничиться вторым уровнем разности, который соответствует скорости изменения кодируемого значения. При необходимости восстановления кодированной последовательности с произвольной позиции потребуются ключ, в который входят все разности ниже текущего уровня, в том числе значение нулевого уровня.

Рисунок 1 демонстрирует пример кодирования исходных данных (график с тонкой линией) в разностную форму (нижний график с толстой линией). В верхней части рисунка показаны изменения уровня разности в процессе адаптации. Степень положительного эффекта от разностного кодирования во многом будет зависеть от характера данных, но даже если данные не отфильтрованы от шума погрешностей, благодаря адаптивности алгоритма, вероятность возникновения отрицательного эффекта будет минимальной.

Рис. 1. Пример разностного кодирования сигналов

Для регулирования скорости адаптации разностного преобразователя критерий выбора уровня разности меняется таким образом, чтобы уровень разности менялся не согласно соседним разностям, а согласно некоторому диапазону или сразу всем возможным уровням. При этом размер ключа возрастет, поскольку он должен будет содержать все дополнительные уровни способные влиять на процесс адаптации. На рисунке 2 видно, что при максимальной скорости адаптации возрос положительный результат кодирования, количество резких пиков в последовательности разностей уменьшилось по сравнению с рисунком 1, а график смены уровней приобрел более резкий вид.

Рис. 2. Пример разностного кодирования сигналов с максимальной скоростью адаптации

Битовые поля предлагается преобразовывать в разностную форму посредством операции сложения по модулю два. Адаптивность достигается перестановкой бит в поле на основе таблицы частот, в которой ведется учет изменений на противоположное значение по каждому биту поля, она же является ключом к восстановлению кодированной последовательности данных с позиции отличной от начала. В таблице 1 приведен пример кодирования текста предложенным методом, условный выигрыш в данном примере составил 26 бит при 90 битах оригинальных данных, расчеты выполнялись путем исключения последовательности нулей в начале битовых полей и результатов перестановки.

Таблица 1. Адаптивное разностное кодирование полей на примере текста
Битовое поле на основе символа Символ Разность с предыдущим полем Содержимое таблицы частот Текущий порядок бит Результат перестановки
П 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

Если значение какого-либо из счетчиков таблицы частот выходит за допустимые пределы, она подвергается коррекции путем сдвига всех ее элементов на один разряд вправо. При этом скорость адаптации можно регулировать максимально допустимым значением счетчика, чем меньше данный параметр, тем быстрее происходит адаптация к потоку данных.