stringtranslate.com

Контекстно-адаптивное кодирование переменной длины

Контекстно-адаптивное кодирование переменной длины ( CAVLC ) — это форма энтропийного кодирования, используемая при кодировании видео H.264/MPEG-4 AVC . Это по своей сути метод сжатия без потерь , как и почти все энтропийные кодеры. В H.264/MPEG-4 AVC он используется для кодирования остаточных блоков коэффициентов преобразования зигзагообразного порядка. Это альтернатива контекстно-ориентированному адаптивному двоичному арифметическому кодированию (CABAC). CAVLC требует значительно меньше обработки для декодирования, чем CABAC, хотя он не так эффективно сжимает данные. CAVLC поддерживается во всех профилях H.264, в отличие от CABAC, который не поддерживается в базовом и расширенном профилях.

CAVLC используется для кодирования остаточных зигзагообразных блоков коэффициентов преобразования 4×4 (и 2×2). CAVLC разработан с учетом нескольких характеристик квантованных блоков 4×4:

Кодированные элементы

Параметры, которые необходимо кодировать и передавать, включают следующую таблицу:

Примеры CAVLC

Во всех следующих примерах мы предполагаем, что таблица Num-VLC0 используется для кодирования coeff_token.

0, 3, 0, 1, -1, -1, 0, 1, 0… TotalCoeffs = 5 (индексируется от самой высокой частоты [4] к самой низкой частоте [0])

ВсегоНулей = 3

T1s = 3 (на самом деле их 4 в конце, но только 3 можно закодировать как «особый случай»)

Кодировка:

Передаваемый битовый поток для этого блока — 000010001110010111101101.

Декодирование: Выходной массив «составляется» из декодированных значений, как показано ниже. Значения, добавляемые в выходной массив на каждом этапе, подчеркнуты.

Декодер вставил два нуля; однако TotalZeros равен 3, поэтому перед наименьшим коэффициентом вставляется еще один ноль, образуя окончательный выходной массив: 0, 3, 0, 1, -1, -1, 0, 1.

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

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

Внешние ссылки