Термин

Deblocking filter

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

In-loop фильтр, сглаживающий границы блоков, чтобы скрыть blocking-артефакты, порождённые квантизацией.

Deblocking filter – этап «уборки», который запускает каждый современный видеокодек, чтобы скрыть квадраты. Кодеки сжимают видео, разбивая каждый кадр на маленькие блоки (16×16, 32×32, 64×64 пикселей) и обрабатывая каждый блок относительно независимо. Когда сжатие становится агрессивным, границы этих блоков начинают проявляться – на картинке видна сетка, особенно на плавных поверхностях вроде кожи, неба или стен. Эта видимая сетка называется «blocking» и это самый частый артефакт сжатия в дешёвом или пере-сжатом видео.

Deblocking-фильтр проходит по каждой границе блока и аккуратно её сглаживает – смягчает разницу между соседними блоками ровно настолько, чтобы шов стал невидимым, но реальное содержимое картинки не размылось. Сила сглаживания адаптивна: сильнее на плоских областях, где шов был бы заметен, мягче на текстурированных и детализированных, где пересглаживание стёрло бы реальные детали.

Особенность deblocking в том, что он работает внутри цикла декодирования, до того как кадр используется как reference для предсказания следующих. Более чистые reference-кадры дают более чистые предсказания, а значит, файлы меньше. Фильтр обязателен в H.264, HEVC, VP9 и AV1; отключение в тестовых кодированиях роняет и визуальное качество, и эффективность на несколько процентов. Для продуктовой команды deblocking – невидимая фича, которую замечают только если её нет: когда на спокойных сценах видна «шахматка», это значит кодек или энкодер срезал или ослабил эту стадию.

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

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