encode | decode | delimit

> comma | self | delimit <

// Код Comma – саморазделяющиеся двоичные коды с автоматическим определением границ

0 символов
0 символов

>> возможности

[SELF-DELIMIT]

Саморазделяющийся

Не требуются разделители между последовательными кодами.

[SIMPLE]

Простая структура

Унарный префикс длины, за которым следуют биты данных.

[TABOO]

Избежание шаблонов

Табу-вариант позволяет избегать определённых шаблонов битов при необходимости.

>> техническая информация

Как работает код Comma

Код Comma кодирует целое число n так: 1) записывает длину в битах L-1 в унарном виде (L-1 единиц, за которыми следует ноль); 2) добавляет двоичное представление без ведущей единицы. Табу-вариант изменяет кодирование так, чтобы избегать шаблонов вроде 11, что полезно в некоторых каналах связи.

Примеры кода Comma

Basic Comma Code:
0 → 0 (special case)
1 → 01 (0 ones + 0 + empty)
2 → 100 (1 one + 0 + '0')
3 → 101 (1 one + 0 + '1')
4 → 11000 (2 ones + 0 + '00')
5 → 11001 (2 ones + 0 + '01')

Concatenated: 1,2,3 → 01 100 101 → 01100101
Self-delimiting - can decode without separators

Taboo variant avoids '11' pattern:
Uses different encoding to prevent consecutive 1s

Зачем использовать код Comma

  • Саморазделяющиеся свойства
  • Нет необходимости в дополнительных разделителях
  • Простая реализация
  • Возможность избегать определённых паттернов битов
  • Префиксные (prefix-free) коды

>> часто задаваемые вопросы

Что такое код Comma?

Код Comma — это саморазделяющийся двоичный код, который кодирует целые числа с помощью унарного префикса длины и последующих битов данных. Он называется «Comma», потому что коды можно конкатенировать без явных разделителей, как элементы списка.

Почему он саморазделяющийся?

Унарный префикс длины говорит декодеру, сколько битов данных следует дальше. Если вы видите k единиц, за которыми следует ноль, вы знаете, что нужно прочитать ровно k последующих битов. Это позволяет объединять несколько кодов без дополнительных разделителей.

Что такое табу-вариант?

Табу-вариант кода Comma изменяет схему кодирования, чтобы избегать определённых шаблонов битов (например, 11). Это полезно в каналах связи, где такие шаблоны вызывают проблемы или имеют специальное значение, например, для маркеров синхронизации.

Где используется код Comma?

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