Jump to content

Гамма-кодирование Элиаса

(Перенаправлено из гамма-кода Элиаса )

Элиас код или гамма-код Элиаса универсальный код , кодирующий положительные целые числа, разработанный Питером Элиасом . [1] : 197, 199  Чаще всего он используется при кодировании целых чисел, верхняя граница которых не может быть определена заранее.

Кодирование

[ редактировать ]

Чтобы закодировать число x ≥ 1:

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

Эквивалентный способ выразить тот же процесс:

  1. Кодировать в унарном ; то есть как нули, за которыми следует единица.
  2. Добавьте оставшиеся двоичные цифры этому представлению .

Чтобы представить число , Элиас гамма (γ) использует биты. [1] : 199 

Код начинается ( предполагаемое распределение вероятностей для ясности добавлено для кода):

Число Двоичный γ-кодирование Подразумеваемая вероятность
1 = 2 0  + 0 111/2
2 = 2 1 + 0 1 00 1 01/8
3 = 2 1 + 1 1 10 1 11/8
4 = 2 2 + 0 1 0000 1 001/32
5 = 2 2 + 1 1 0100 1 011/32
6 = 2 2 + 2 1 1000 1 101/32
7 = 2 2 + 3 1 1100 1 111/32
8 = 2 3 + 0 1 000000 1 0001/128
9 = 2 3 + 1 1 001000 1 0011/128
10 = 2 3 + 2 1 010000 1 0101/128
11 = 2 3 + 3 1 011000 1 0111/128
12 = 2 3 + 4 1 100000 1 1001/128
13 = 2 3 + 5 1 101000 1 1011/128
14 = 2 3 + 6 1 110000 1 1101/128
15 = 2 3 + 7 1 111000 1 1111/128
16 = 2 4 + 0 1 00000000 1 00001/512
17 = 2 4  +  1 1 00010000 1 00011/512

Декодирование

[ редактировать ]

Чтобы декодировать целое число, закодированное гамма-гаммой Элиаса:

  1. Считайте и посчитайте 0 из потока, пока не дойдете до первой 1. Назовите это количество нулей N .
  2. Учитывая тот, который был достигнут, является первой цифрой целого числа со значением 2 Н , прочитайте оставшиеся N цифр целого числа.

Использование

[ редактировать ]

Гамма-кодирование используется в приложениях, где наибольшее закодированное значение заранее неизвестно, или для сжатия данных. [ сомнительно обсудить ] в котором малые значения встречаются гораздо чаще, чем большие значения.

Гамма-кодирование является строительным блоком дельта-кода Элиаса .

Обобщения

[ редактировать ]

Гамма-кодирование не кодирует ноль или отрицательные целые числа.Один из способов обработки нуля — добавить 1 перед кодированием, а затем вычесть 1 после декодирования.Другой способ — поставить перед каждым ненулевым кодом цифру 1, а затем закодировать ноль как одиночный 0.

Один из способов кодирования всех целых чисел — установить биекцию , отображающую целые числа (0, −1, 1, −2, 2, −3, 3, ...) в (1, 2, 3, 4, 5, 6). , 7, ...) перед кодированием. В программном обеспечении это проще всего сделать путем сопоставления неотрицательных входов с нечетными выходами, а отрицательных входов с четными выходами, поэтому младший бит становится битом с инвертированным знаком :

Экспоненциальное кодирование Голомба обобщает гамма-код на целые числа с «более плоским» степенным распределением, точно так же, как кодирование Голомба обобщает унарный код.Он включает в себя деление числа на положительный делитель, обычно степень 2, запись гамма-кода для числа, превышающего частное, и запись остатка в обычном двоичном коде.

См. также

[ редактировать ]
  • Дельта-кодирование Элиаса (d) – универсальный код, кодирующий положительные целые числа.
  • Кодирование Элиаса омега (?) - Универсальный код, кодирующий положительные целые числа.
  • Posit (числовой формат) — вариант чисел с плавающей запятой в компьютерах.
  1. ^ Jump up to: а б Элиас, Питер (март 1975 г.). «Универсальные наборы кодовых слов и представления целых чисел». Транзакции IEEE по теории информации . 21 (2): 194–203. дои : 10.1109/тит.1975.1055349 .

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e86c346af0eb9e9388226d413fafc9ce__1711537680
URL1:https://arc.ask3.ru/arc/aa/e8/ce/e86c346af0eb9e9388226d413fafc9ce.html
Заголовок, (Title) документа по адресу, URL1:
Elias gamma coding - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)