CABAC

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

Контекстно-адаптивное двоичное арифметическое кодирование (КАДАК; CABAC от англ. Context-adaptive binary arithmetic coding) — форма энтропийного (статистического) кодирования, которое используется в видеокодеках стандарта H.264/MPEG-4 AVC. Используется техника сжатия без потерь для получения более высокой степени сжатия, чем большинство алгоритмов, которые доступны в кодировании видео.

Является одним из основных преимуществ кодека H.264/AVC. CABAC поддерживается только в основном (Main) и более высоких профилях кодека, а также требует затрачивать достаточно большое количество рабочих циклов процессора в чисто программной реализации, как с точки зрения циклов, так и с точки зрения мощности системы для декодирования (просмотра) видео, закодированного с использованием этой технологии. Также, труден в векторизации и распараллеливании. Стоит отметить, что существует контекстно-адаптивное неравномерное кодирование (англ. Context-adaptive variable-length coding, CAVLC), более низкоэффективная схема статистического кодирования, которая используется для повышения производительности на более слабых системах декодирования.

Алгоритм[править | править код]

КАДАК имеет несколько режимов предсказания для разного контекста. Сначала конвертируются все небинарные символы в бинарные; далее, для каждого бита кодек выбирает, которую модель предсказания использовать; после этого он использует полученную от ближайших элементов информацию для оптимизации степени возможности предсказаний. Арифметическое кодирование является финальным шагом сжатия данных.

См. также[править | править код]

Литература[править | править код]

  • H.264/MPEG-4 Part 10 White Paper, руководство для MPEG CABAC, октябрь 2002 (англ.)

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