Унарное кодирование - Unary coding
Унарное кодирование,[nb 1] или унарная система счисления а также иногда называют код термометра, является энтропийное кодирование что представляет собой натуральное число, п, с п единицы, за которыми следует ноль (если натуральное число понимается как неотрицательное целое число) или с п - 1 единица с последующим нулем (если натуральное число понимается как строго положительное целое число). Например, 5 представлен как 111110 или 11110. В некоторых представлениях используется п или же п - 1 ноль, за которым следует единица. Единицы и нули взаимозаменяемы не теряя общий смысл. Унарное кодирование - это одновременно код без префиксов и самосинхронизирующийся код.
n (неотрицательный) | п (строго положительный) | Унарный код | Альтернатива |
---|---|---|---|
0 | 1 | 0 | 1 |
1 | 2 | 10 | 01 |
2 | 3 | 110 | 001 |
3 | 4 | 1110 | 0001 |
4 | 5 | 11110 | 00001 |
5 | 6 | 111110 | 000001 |
6 | 7 | 1111110 | 0000001 |
7 | 8 | 11111110 | 00000001 |
8 | 9 | 111111110 | 000000001 |
9 | 10 | 1111111110 | 0000000001 |
Унарное кодирование - это оптимально эффективное кодирование для следующих дискретных распределение вероятностей
за .
При посимвольном кодировании он оптимален для любых геометрическое распределение
для которого k ≥ φ = 1,61803398879…, Золотое сечение, или, в более общем смысле, для любого дискретного распределения, для которого
за . Хотя это оптимальное посимвольное кодирование для таких распределений вероятностей, Кодирование Голомба обеспечивает лучшую способность сжатия для геометрического распределения, поскольку не учитывает входные символы независимо, а скорее неявно группирует входные данные. По той же причине, арифметическое кодирование работает лучше для общих распределений вероятностей, как в последнем случае выше.
Унарный код используется сегодня
Примеры использования унарного кода включают:
- В Код Голомба Риса, унарное кодирование используется для кодирования частной части кодового слова Голомба.
- В UTF-8, унарное кодирование используется в ведущем байте многобайтовой последовательности, чтобы указать количество байтов в последовательности, так что длина последовательности может быть определена без проверки байтов продолжения.
- Мгновенно обученные нейронные сети используйте унарное кодирование для эффективного представления данных.
Унарное кодирование в биологических сетях
Унарное кодирование используется в нейронные цепи ответственный за пение птиц производство.[1][2] Ядром мозга певчих птиц, которое играет роль как в обучении, так и в производстве пения птиц, является HVC (высокий вокальный центр ). Командные сигналы для разных нот в пении птиц исходят из разных точек HVC. Это кодирование работает как пространственное кодирование, которое является эффективной стратегией для биологических схем из-за присущей ему простоты и надежности.
Обобщенное унарное кодирование
Обобщенная версия унарного кодирования была представлена Субхаш Как для представления чисел гораздо более эффективно, чем стандартное унарное кодирование.[3] Вот пример обобщенного унарного кодирования для целых чисел от 1 до 15, для которого требуется всего 7 бит (где три бита произвольно выбираются вместо одного в стандартном унарном, чтобы показать число). Обратите внимание, что представление является циклическим, где для представления более высоких целых чисел в более высоких циклах используются маркеры.
п | Унарный код | Обобщенный унарный |
---|---|---|
0 | 0 | 0000000 |
1 | 10 | 0000111 |
2 | 110 | 0001110 |
3 | 1110 | 0011100 |
4 | 11110 | 0111000 |
5 | 111110 | 1110000 |
6 | 1111110 | 0010111 |
7 | 11111110 | 0101110 |
8 | 111111110 | 1011100 |
9 | 1111111110 | 0111001 |
10 | 11111111110 | 1110010 |
11 | 111111111110 | 0100111 |
12 | 1111111111110 | 1001110 |
13 | 11111111111110 | 0011101 |
14 | 111111111111110 | 0111010 |
15 | 1111111111111110 | 1110100 |
Обобщенное унарное кодирование требует, чтобы диапазон представляемых чисел был предварительно задан, поскольку этот диапазон определяет количество необходимых битов.
Смотрите также
Примечания
- ^ Эквивалент термину «унарное кодирование» в немецкой научной литературе:BCD-Zählcode", что переводится как"Десятичное число с двоичным кодом счетный код ". Его не следует путать с аналогичным немецким термином"BCD-код"перевод на BCD код по-английски.
Рекомендации
- ^ Fiete, I.R .; Сын, Х.С. (2007). «Нейросетевые модели производства, обучения и кодирования птичьего пения». In Squire, L .; Олбрайт, Т .; Блум, Ф .; Gage, F .; Спитцер, Н. (ред.). Новая энциклопедия неврологии. Эльзевир.
- ^ Мур, Дж. М .; и другие. (2011). «Конвергенция моторных путей предсказывает размер репертуара слогов у осетровых птиц». Proc. Natl. Акад. Sci. Соединенные Штаты Америки. 108 (39): 16440–16445. Дои:10.1073 / pnas.1102077108. ЧВК 3182746. PMID 21918109.
- ^ Как, С. (2015). «Обобщенное унарное кодирование». Схемы, системы и обработка сигналов. 35 (4): 1419–1426. Дои:10.1007 / s00034-015-0120-7.