Экспоненциально-голомбское кодирование - Википедия - Exponential-Golomb coding

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

  1. Записывать Икс+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]

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

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

Кодирование Exp-Golomb используется в H.264 / MPEG-4 AVC и H.265 Высокоэффективное кодирование видео стандарты сжатия видео, в которых также есть вариант для кодирования чисел со знаком путем присвоения значения 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]

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

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

Обобщение на заказ k

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

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

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

  1. Кодировать Икс+2k−1 с использованием экспоненциального кода Голомба порядка 0 (т. Е. Кодировать Икс+2k используя гамма-код Элиаса), то
  2. Удалить k ведущие нулевые биты из результата кодирования
Опыт-Голомб-k примеры кодирования
 Икс k=0k=1k=2k=3 Икс k=0k=1k=2k=3 Икс k=0k=1k=2k=3
011010010001000010110011000111001001020000010101000101100011000011100
10101110110011100011000011010111101001121000010110000101110011001011101
201101001101010120001101001110001000001010022000010111000110000011010011110
30010001011111011130001110001111001000101010123000011000000110010011011011111
40010101100100011001400011110001000000100100101102400001100100011010001110000100000
5001100111010011101150000100000001000100100110101112500001101000011011001110100100001
600111001000010101110160000100010001001000101000110002600001101100011100001111000100010
70001000001001010111111170000100100001001100101010110012700001110000011101001111100100011
800010010010100110001000018000010011000101000010110011010280000111010001111000010000000100100
900010100010110110101000119000010100000101010010111011011290000111100001111100010000100100101

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

Рекомендации

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