Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

  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]

Это совпадает с гамма - кодом Elias из х + 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.

Кодирование Exp-Golomb также используется в видеокодеке Дирака . [3]

Обобщение на порядок k [ править ]

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

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

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

  1. Кодировать х +2 к -1 , используя порядка 0 код ехр-Голомба (т.е. кодируют х +2 к с использованием гамма - код Elias), а затем
  2. Удалить k ведущих нулевых битов из результата кодирования

См. Также [ править ]

Ссылки [ править ]

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