Термин
SAO
In-loop фильтр HEVC, добавляющий маленькие per-sample смещения для компенсации типичных ошибок квантизации возле границ и сдвигов полос.
SAO – Sample Adaptive Offset – второй in-loop-фильтр HEVC, работающий после deblocking-фильтра и убирающий два специфических типа артефактов сжатия, которые deblocking не ловит. Где deblocking сглаживает границы блоков, SAO подстраивает значения отдельных пикселей внутри блоков, приближая их к тому, как выглядел исходный кадр. Делает он это в двух комплементарных режимах, которые энкодер выбирает per region.
Edge Offset (EO) целится в ringing-артефакты около резких границ – те слабые повторяющиеся линии параллельно высококонтрастной границе, которые порождает агрессивная квантизация. Энкодер определяет направление границы (горизонталь, вертикаль или одна из двух диагоналей) и применяет небольшие коррекции вдоль этого направления. Band Offset (BO) целится в banding на плавных градиентах – видимые «ступеньки» цвета на закатном небе. Энкодер делит диапазон яркости на 32 полосы и применяет маленький offset к четырём подряд идущим полосам, сглаживая градиент без влияния на остальное изображение. Оба режима шлют свои коррекции как часть bitstream, чтобы каждый декодер применил один и тот же фикс.
Для продуктовой команды SAO – невидимая сантехника, вносящая вклад в качественное преимущество HEVC над H.264 при том же bitrate. Настраивать нечего; энкодер включает его по умолчанию. Кодеки-преемники развили идею дальше: AV1 заменил SAO на `cdef` (Constrained Directional Enhancement Filter), а VVC оставил SAO, добавив сверху `alf` (Adaptive Loop Filter). Общий урок: каждое поколение добавляет более сложные фильтры чистки, каждый фильтр целится в свой тип повреждений сжатия, и кумулятивный эффект – то, что позволяет новым кодекам выдавать визуально более чистое видео на любом bitrate.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.