stringtranslate.com

Экспоненциально-голомбовское кодирование

Экспоненциальный код Голомба (или просто код Exp-Голомба ) — это тип универсального кода . Чтобы закодировать любое неотрицательное целое число x с помощью кода exp-Голомба:

  1. Запишите x +1 в двоичной системе счисления.
  2. Подсчитайте записанные биты, вычтите один и запишите полученное количество начальных нулевых битов, предшествующих предыдущей строке битов.

Первые несколько значений кода:

0 ⇒ 1 ⇒ 1 1 ⇒ 10 ⇒ 010 2 ⇒ 11 ⇒ 011 3 ⇒ 100 ⇒ 00100 4 ⇒ 101 ⇒ 00101 5 ⇒ 110 ⇒ 00110 6 ⇒ 111 ⇒ 00111 7 ⇒ 1000 ⇒ 0001000 8 ⇒ 1001 ⇒ 0001001... [1]

В приведенных выше примерах рассмотрим случай 3. Для 3 x+1 = 3 + 1 = 4. 4 в двоичной системе счисления равно «100». «100» имеет 3 бита, а 3-1 = 2. Следовательно, добавьте 2 нуля перед «100», что равно «00100».

Аналогично рассмотрим 8. «8 + 1» в двоичной системе равно «1001». «1001» имеет 4 бита, а 4-1 равно 3. Следовательно, добавьте 3 нуля перед 1001, что равно «0001001».

Это идентично гамма- коду Элиаса x +1, что позволяет кодировать 0. [2]

Расширение на отрицательные числа

Кодирование Exp-Golomb используется в стандартах сжатия видео H.264/MPEG-4 AVC и H.265 High Efficiency Video Coding , в которых также существует вариант кодирования знаковых чисел путем присвоения двоичному кодовому слову «0» значения 0 и назначения последующих кодовых слов входным значениям возрастающей величины (и переменного знака, если поле может содержать отрицательное число):

0 ⇒ 0 ⇒ 1 ⇒ 1 1 ⇒ 1 ⇒ 10 ⇒ 010−1 ⇒ 2 ⇒ 11 ⇒ 011 2 ⇒ 3 ⇒ 100 ⇒ 00100−2 ⇒ 4 ⇒ 101 ⇒ 00101 3 ⇒ 5 ⇒ 110 ⇒ 00110−3 ⇒ 6 ⇒ 111 ⇒ 00111 4 ⇒ 7 ⇒ 1000 ⇒ 0001000−4 ⇒ 8 ⇒ 1001 ⇒ 0001001.... [1]

Другими словами, неположительное целое число x ≤0 отображается в четное целое число −2 x , тогда как положительное целое число x >0 отображается в нечетное целое число 2 x −1.

Кодирование Экспоненциального Голомба также используется в видеокодеке Дирака . [3]

Обобщение по порядкук

Чтобы закодировать большие числа меньшим количеством бит (за счет использования большего количества бит для кодирования меньших чисел), это можно обобщить, используя неотрицательный целочисленный параметр   k . Чтобы закодировать неотрицательное целое число x в коде порядка k  exp-Голомба:

  1. Закодируйте ⌊ x /2 k ⌋, используя код Голомба порядка 0, описанный выше, затем
  2. Закодировать x mod 2 k в двоичном виде

Эквивалентный способ выражения этого:

  1. Закодируйте x +2 k −1, используя код exp-Голомба порядка 0 (т.е. закодируйте x +2 k, используя гамма-код Элиаса), затем
  2. Удалить k начальных нулевых бит из результата кодирования

Смотрите также

Ссылки

  1. ^ ab Richardson, Iain (2010). Расширенный стандарт сжатия видео H.264. Wiley. стр. 208, 221. ISBN 978-0-470-51692-8.
  2. ^ Рапп, Маркус (2009). Передача видео и мультимедиа по сотовым сетям: анализ, моделирование и оптимизация в реальных мобильных сетях 3G. Wiley. стр. 149. ISBN 9780470747766.
  3. ^ "Спецификация Дирака" (PDF) . BBC. Архивировано из оригинала (PDF) 2015-05-03 . Получено 9 марта 2011 .