Изменения
викификация, оформление, орфография
'''Омега код Элиаса ''' — это универсальный код для кодирования положительных целых чисел, разработанный Питером Элиасом.
'''Омега-код Элиаса''' — это универсальный код для кодирования положительных целых чисел, разработанный Питером Элиасом.
Так же как [[Гамма код Элиаса|Гамма код Элиаса]] и [[Дельта код Элиаса |Дельта код Элиаса]], он работает на приписывании к началу целого числа представления его порядка величины в универсальном коде. Однако в отличие от тех двух кодов, Омега код Элиаса рекурсивно кодирует приписываемое в начало, именно поэтому он также известен, как Рекурсивный код Элиаса.
Так же как [[гамма-код Элиаса]] и [[дельта-код Элиаса]], он работает на приписывании к началу целого числа представления его порядка величины в универсальном коде. Однако в отличие от тех двух кодов, омега-код Элиаса рекурсивно кодирует приписываемое в начало, именно поэтому он также известен, как Рекурсивный код Элиаса.
Чтобы закодировать число:
Чтобы закодировать число:
# Перепишите группу нолей в конец представления.
# Перепишите группу нолей в конец представления.
# Если число, которое требуется закодировать, - единица, остановитесь; если нет, добавьте двоичное представление числа в качестве группы в начало представления.
# Если число, которое требуется закодировать, — единица, остановитесь; если нет, добавьте двоичное представление числа в качестве группы в начало представления.
# Повторите предыдущий шаг, с числом только что написанных цифр, минус одго, как с новым числом, которое следует закодировать.
# Повторите предыдущий шаг, с числом только что написанных цифр, минус одго, как с новым числом, которое следует закодировать.
Первые несколько кодов показаны ниже. Включая так называемое предполагаемое распределение, описывающее распределение значений, для которых это кодирование выдает в результате код минимального размера; чтобы узнать подробнее, смотри статью о Универсальном коде.
Первые несколько кодов показаны ниже. Включая так называемое предполагаемое распределение, описывающее распределение значений, для которых это кодирование выдает в результате код минимального размера (см.: [[универсальный код]]).
Начало кодирования:
Начало кодирования:
16 10 100 10000 0 1/2048
16 10 100 10000 0 1/2048
17 10 100 10001 0 1/2048
17 10 100 10001 0 1/2048
…
…
</source>
</source>
Чтобы декодировать число в Омега коде Элиаса:
Чтобы декодировать число в омега-коде Элиаса:
# Начните с переменной N, установленной в значение 1.
# Начать с переменной N, установленной в значение 1.
# Считайте первую «группу», следующую за остальными N разрядами, которая будет состоять либо из «0», либо из «1». Если она состоит из «0», это значит, что значение целого числа равно 1; если она начинается с «1», тогда N получает значение группы, которое интерпретируется как двоичное число.
# Считать первую «группу», следующую за остальными N разрядами, которая будет состоять либо из «0», либо из «1». Если она состоит из «0», это значит, что значение целого числа равно 1; если она начинается с «1», тогда N получает значение группы, которое интерпретируется как двоичное число.
# Считывайте каждую следующую группу; она будет состоять либо из «0», либо из «1», следующих за остальными N разрядами. Если группа равна «0», это значит, что значение целого числа равно N; если она начинается с «1», то N приобреатет значение группы, интерпретируемой как двоичное число.
# Считывать каждую следующую группу; она будет состоять либо из «0», либо из «1», следующих за остальными N разрядами. Если группа равна «0», это значит, что значение целого числа равно N; если она начинается с «1», то N приобреатет значение группы, интерпретируемой как двоичное число.
Омега-кодирование используется в приложениях, где самое большое кодируемое значение неизвестно заранее, или для сжатия данных, в которых маленькие значения встречаются намного чаще, чем большие.
== См. также ==
* [[Гамма-код Элиаса]]
* [[Дельта-код Элиаса]]
[[Категория:Алгоритмы сжатия без потерь]]
[[en:Elias_omega_coding]]
[[en:Elias_omega_coding]]
[[ko:엘리어스 오메가 부호]]
[[ko:엘리어스 오메가 부호]]
{{изолированная статья}}
{{изолированная статья}}