кодировать | декодировать | сжимать

> exp | golomb | h264 <

// Exponential-Golomb — стандартный код переменной длины для видеосжатия

0 символов
0 символов

>> возможности

[H.264/H.265]

Видеостандарт

Используется в кодеках H.264/AVC и H.265/HEVC.

[ADAPTIVE]

Несколько порядков

Разные значения k для разных распределений данных.

[SIGNED]

Поддержка знака

Встроенное отображение для знаковых целых чисел.

>> техническая информация

Как работает кодирование Exp-Golomb

Коды Exp-Golomb порядка k кодируют неотрицательное целое n так: 1) Прибавьте 1 к n, чтобы получить codeNum, 2) Разделите на 2^k, чтобы получить частное q и остаток r, 3) Запишите q нулей, затем 1, затем r в k битах. При k=0 это соответствует коду Элиаса Гамма. Для знаковых чисел используется отображение: n>0 → 2n-1, n≤0 → -2n.

Примеры Exp-Golomb

Порядок k=0 (стандарт):
0 → 1
1 → 010
2 → 011
3 → 00100

Порядок k=1:
0 → 10
1 → 11
2 → 010
3 → 011

Знаковый режим (k=0):
0 → 1 (отображается в 0)
1 → 010 (отображается в 1)
-1 → 011 (отображается в 2)
2 → 00100 (отображается в 3)

Зачем использовать Exp-Golomb

  • Элементы синтаксиса H.264/H.265
  • Кодирование векторов движения
  • Уровни коэффициентов
  • Простая реализация в аппаратуре
  • Адаптация к распределению данных

>> часто задаваемые вопросы

Что такое кодирование Exp-Golomb?

Exponential-Golomb — универсальный код переменной длины, который широко используется в стандартах видеосжатия, таких как H.264 и H.265. Он обобщает код Элиаса Гамма с параметром k, позволяющим адаптироваться к различным распределениям данных.

Как выбрать порядок k?

k=0 (стандартный Exp-Golomb) хорошо подходит для небольших целых чисел с примерно экспоненциальным распределением. Более высокие значения k лучше для больших чисел или более равномерных распределений. Видеокодеки часто используют k=0 для синтаксических элементов и адаптивное k для остатков.

Почему он используется в видео?

Exp-Golomb идеально подходит для видео, потому что: 1) его легко реализовать в аппаратуре, 2) не требуются таблицы поиска, 3) он хорошо соответствует статистическому распределению видеоданных, 4) обеспечивает хорошее сжатие для векторов движения и трансформант коэффициентов.

Exp-Golomb по сравнению с другими кодами?

По сравнению с Хаффманом: проще, без таблиц, но менее оптимален. По сравнению с арифметическим кодированием: гораздо проще, но с меньшей степенью сжатия. Exp-Golomb — это компромисс между простотой и эффективностью, идеально подходящий для кодирования видео в реальном времени.