Изменения

нет описания правки
Строка 1: Строка 1: −
{{изолированная статья|сирота2}}
+
'''Гамма-код Элиаса''' — это [[Универсальный код (сжатие данных)|универсальный код]] для кодирования положительных целых чисел, разработанный [[Элиас, Питер|Питером Элиасом]]. Он обычно используется при кодировании целых чисел, максимальное значение которых не может быть определено заранее.
{{тупиковая статья}}
  −
'''Гамма-код Элиаса''' — это универсальный код для кодирования положительных целых чисел, разработанный Питером Элиасом. Он обычно используется при кодировании целых чисел, максимальное значение которых не может быть определено заранее.
      +
== Описание алгоритма ==
 
Чтобы закодировать число:
 
Чтобы закодировать число:
# Запиишите его в двоичной форме.
+
# Запишите его в двоичной форме.
# Отнимите(вычтите) единицу из числа битов, записанных в шаге 1 и припишите спереди недостающие нули.
+
# Отнимите(вычтите) единицу из числа битов, записанных в шаге 1 и припишите спереди недостающие нули.
    
Аналогичный способ описания этого процесса:
 
Аналогичный способ описания этого процесса:
# Разделите целое число на самую большую степень 2, которую оно включает (2N), и на оставшиеся N двоичных цифр от данного целого числа.
+
# Разделите целое число на самую большую степень 2, которую оно включает (2N), и на оставшиеся N двоичных цифр от данного целого числа.
# Запишите N в унарном коде; то есть N нолей следующих за единицей.
+
# Запишите N в унарном коде; то есть N нолей следующих за единицей.
# Присоедините оставшиеся N двоичных цифр к этому представлению N.
+
# Присоедините оставшиеся N двоичных цифр к этому представлению N.
    
Начало кодирования:
 
Начало кодирования:
Строка 39: Строка 38:  
Чтобы декодировать закодированное Гамма кодом Элиаса число следует:
 
Чтобы декодировать закодированное Гамма кодом Элиаса число следует:
   −
# Считать все встречающиеся до первой 1(единицы) нули. Назовем это количество нолей N.
+
# Считать все встречающиеся до первой 1(единицы) нули. Назовем это количество нолей N.
# Принимая во внимание единицу, которая была достигнута как первая цифра целого числа, с значением 2N, считайте оставшиеся N цифр целого числа.
+
# Принимая во внимание единицу, которая была достигнута как первая цифра целого числа, с значением 2N, считайте оставшиеся N цифр целого числа.
 
  −
 
  −
Гамма кодирование используется в приложениях, где самое большое значение не может быть известно заранее, или чтобы сжать данные, в которых маленькие значения встречаются наиболее часто чем большие.
      +
Гамма кодирование используется в приложениях, где самое большое значение не может быть известно заранее, или чтобы сжать данные, в которых маленькие значения встречаются более часто чем большие.
    
== Обобщения ==
 
== Обобщения ==
 
+
Гамма кодирование не подходит для кодирования нулевых значений или отрицательных чисел. Единственный способ закодировать ноль — прибавить к нему 1 до кодирования и отнять после декодирования. Другой способ — приписать в начале любой ненулевой код с 1 , а затем кодировать ноль как простой 0. Единственный способ закодировать все положительные числа — перед началом кодирования установить [[биекция|биекцию]] (соответствие), отображая целые числа из (0, 1, −1, 2, −2, 3, −3, …) в (1, 2, 3, 4, 5, 6, 7, …).
 
  −
Гамма кодирование не подходит для кодирования нулевых значений или отрицательных чисел. Единственный способ закодировать ноль — прибавить к нему 1 до кодирования и отнять после декодирования. Другой способ — приписать в начале любой ненулевой код с 1 , а затем кодировать ноль как простой 0. Единственный способ закодировать все положительный числа — перед началом кодирования установить биекцию (соответствие), отображая целые числа из (0, 1, −1, 2, −2, 3, −3, …) в (1, 2, 3, 4, 5, 6, 7, …).
        Строка 107: Строка 102:  
}
 
}
 
</source>
 
</source>
         
== Ссылки ==
 
== Ссылки ==
Оригинал статьи на английском
+
переведено из en-wiki
{{cite web
  −
| url = http://en.wikipedia.org/wiki/Elias_gamma_coding
  −
| title = Elias gamma coding
  −
}}
      
== См. также ==
 
== См. также ==
*[[Омега код Элиаса]]
+
* [[Омега код Элиаса]]
*[[Дельта код Элиаса]]
+
* [[Дельта код Элиаса]]
    
[[Категория:Алгоритмы сжатия без потерь]]
 
[[Категория:Алгоритмы сжатия без потерь]]
Анонимный участник