воскресенье, 27 июня 2021 г.

GF2p8 Код Грея через аффинные преобразования

Задумался, что еще не высказанного осталось по аффинным преобразованиям. Нашел хороший пример приложения аффинных преобразований. Надо сказать, никто и не пытался выражать код Грея аффинными пребразованиями. Зачем нужны векторные преобразования из кода Грея, не скажу. Наверное не нужны. Но, пример интересный с точки зрения расширения области применения инструкции.

Прямое преобразование выражается битовой операцией:
Gi = Bi⊕Bi+1.
Обратное преобразование можно выразить точно так же, рекуррентной формулой:
Bi = Gi⊕Bi+1.

Из за рекурсии расчет можно считать неэффективным, требуется цикл.

Оба преобразования можно представить аффинными преобразованиями и расчет обратного преобразования будет занимать одну инструкцию gf2p8affine.

Преобразование в код Грея
M = 03060C183060C08016
10000000 =0x80
11000000 =0xC0
01100000 =0x60
00110000 =0x30
00011000 =0x18
00001100 =0x0C
00000110 =0x06
00000011 =0x03
Обратное преобразование из кода Грея
M-1 = FFFEFCF8F0E0C08016
10000000 =0x80
11000000 =0xC0
11100000 =0xE0
11110000 =0xF0
11111000 =0xF8
11111100 =0xFC
11111110 =0xFE
11111111 =0xFF

Путем перемножения матриц можно убедиться, что это обратные преобразования, произведение дает единичную диагональную матрицу

Комментариев нет:

Отправить комментарий