Термин

CAVLC

Англ.: Context-Adaptive Variable-Length Coding
Короткое определение

Context-adaptive variable-length entropy-кодер в H.264 baseline profile. Дешевле в декодировании, чем CABAC, но на ~10–20 % менее эффективен.

CAVLC – Context-Adaptive Variable-Length Coding – более простой entropy-кодер в H.264, используемый в Baseline profile (изначально нацеленный на видеозвонки, скринкасты и устройства малой мощности) и как единственный вариант в ранних реализациях H.264. Это предшественник `cabac`, и вы встретите его в основном в legacy WebRTC-видео и старых мобильных стримах.

Технически CAVLC использует таблицы заранее построенных variable-length-кодов – короткие коды для частых символов, длиннее для редких – и переключается между несколькими таблицами в зависимости от того, что уже встретилось в текущем кадре. Это и есть «context-adaptive»: одно и то же значение коэффициента может использовать короткий код в одной части кадра и более длинный в другой, в зависимости от локальной статистики. Быстрее декодируется, чем CABAC, и проще реализуется в железе, но обычно даёт файлы на 10–15 % больше.

Для продуктовой команды CAVLC – legacy, которое всё ещё может встретиться на входе. Если вы получаете H.264-видео из старых WebRTC-стеков, систем видеоконференц-связи или дешёвых IP-камер – это может быть Baseline-profile CAVLC. Ничего страшного – видео играет везде, – но вы обычно можете перекодировать в High profile с CABAC для своей delivery-лестницы и сэкономить эти 10–15 % без видимой цены. Практическое правило: снимайте, принимайте и храните H.264 в том профиле, в котором приходит, а доставляйте в High profile с CABAC для всех современных устройств.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.