Термин

Квантизация

Короткое определение

Деление трансформированных коэффициентов на шаг и округление – единственный необратимый шаг в lossy-кодировании. Здесь и происходит вся потеря.

Quantization – единственный этап, где lossy-сжатие видео реально теряет информацию. Все остальные этапы – prediction, DCT-преобразование, entropy coding – математически обратимы. Quantization – это место, где энкодер решает «этот коэффициент достаточно близок к нулю, чтобы считать его нулём» или «эта яркость достаточно близка к 128, чтобы считать её 128», и исходная точность теряется навсегда. Все видимые артефакты сжатия (`banding`, blocking, размытые текстуры, постеризация цвета) в конечном счёте берут начало здесь.

Технически quantization делит каждый `dct`-коэффициент на шаг и округляет до целого. Маленький шаг сохраняет большинство коэффициентов (lossless или почти lossless); большой обнуляет многие коэффициенты, и они почти бесплатно сжимаются на следующем этапе entropy coding. Размер шага управляется параметром `qp`. Чем больше шаг, тем меньше файл – и тем заметнее потеря. Это базовая ручка «битрейт vs качество» в любом lossy-кодеке.

Современные кодеки кажутся «хорошими» несмотря на этот жестокий по описанию этап потому, что они квантуют избирательно – агрессивно там, где глаз не видит, и мягко там, где видит. Плоские области, на которых проявился бы banding, квантуются тонко. Занятые текстуры – грубо, потому что визуальный шум текстуры маскирует потерю. Лица – тонко, потому что зрители на них смотрят. Эта перцептивная тонкая настройка вместе с умным rate control (`crf`, `vbr`) – причина, по которой 4K HDR-стрим Netflix на 15 Mbps выглядит почти неотличимо от несжатого 6 Gbps-мастера для большинства зрителей.

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

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