С учетом синхронизированного 3-уровневого (-1,0, + 1) канала между двумя устройствами, каков наиболее эффективный для потока способ преобразования потока битов в представление канала и из него?
Текущий метод состоит в том, чтобы взять 3 двоичных бита и преобразовать их в два трита.Я полагаю, что это теряет 11% возможностей канала (поскольку 1 из 9 возможных пар никогда не используется).Я подозреваю, что группировка может уменьшить эти потери, но этот проект использует 8-битные устройства, поэтому размеры моей группы ограничены.
Я хотел бы использовать divmod-3, но у меня нет всего двоичного файлапоток доступен в любой точке.Есть ли метод для «добавочного» divmod3, который может начинаться в LSB?
Как нетренированное предположение, я полагаю, что должен быть подход типа «проанализировать следующие 3 бита, удалить один бит, изменить один бит» - но я не смог найти что-то работающее.