Открыть сервис

Sample Adaptive Offset

Sample Adaptive Offset (SAO) — это технология постобработки видеоданных, применяемая в стандарте сжатия видео HEVC (High Efficiency Video Coding, также известном как H.265). Она представляет собой адаптивный алгоритм коррекции искажений, возникающих в процессе кодирования и декодирования, и направлена на повышение субъективного качества изображения и снижение артефактов, таких как размытие границ и неравномерность яркости.

SAO является частью этапа фильтрации в контуре (in-loop filtering) в HEVC, наряду с деблокирующим фильтром (Deblocking Filter, DBF). В отличие от DBF, который сглаживает границы между блоками, SAO работает с пикселями внутри самих блоков, корректируя их значения на основе анализа локальных характеристик изображения. Основная задача SAO — восстановить исходные значения пикселей, которые были искажены из-за потерь при квантовании и дискретизации, характерных для сжатия с потерями.

История и контекст

Разработка стандарта HEVC началась в 2010 году как продолжение H.264/AVC, с целью удвоить эффективность сжатия при сохранении того же субъективного качества. В процессе стандартизации, проводимой Международным союзом электросвязи (ITU-T) и Международной организацией по стандартизации (ISO/IEC), было предложено множество технологий, включая различные варианты фильтрации в контуре.

SAO была предложена компанией Samsung Electronics и группой исследователей из Корейского института передовых технологий (KAIST) в 2011 году. Она была включена в финальную версию стандарта HEVC, опубликованную в 2013 году. Выбор SAO был обусловлен её способностью существенно улучшать качество изображения при относительно низких вычислительных затратах, что критично для аппаратных реализаций кодеков.

Принцип работы

SAO работает на уровне наибольшей единицы кодирования (Coding Tree Unit, CTU), которая в HEVC может иметь размер от 16×16 до 64×64 пикселей. Для каждой CTU декодер выбирает один из двух режимов работы SAO: смещение по полосам (Band Offset, BO) или смещение по краю (Edge Offset, EO). Выбор режима передаётся в битовом потоке как часть служебной информации (overhead).

Режим смещения по полосам (BO)

В этом режиме весь диапазон значений яркости (0–255 для 8-битного видео) или цветности разбивается на 32 равные полосы (band). Каждая полоса охватывает 8 уровней яркости. Для каждой CTU анализируется гистограмма распределения пикселей по полосам. Выбирается одна полоса, в которой содержится наибольшее количество пикселей, и для неё вычисляется смещение (offset) — средняя разница между исходным значением пикселя и его восстановленным значением после декодирования. Это смещение затем добавляется ко всем пикселям, попадающим в данную полосу.

BO эффективен для коррекции полосовых артефактов (banding artifacts), которые проявляются в виде плавных переходов между близкими оттенками, например, на небе или стенах. Смещение сглаживает эти переходы, делая их более естественными.

Режим смещения по краю (EO)

Этот режим предназначен для коррекции артефактов, связанных с резкими переходами яркости — границами объектов, текстурами и контурами. Для каждого пикселя анализируется его значение в сравнении с двумя соседними пикселями, расположенными в одном из четырёх направлений (классификаций):

  1. Горизонтальное (EO_0): сравнение с левым и правым соседями.
  2. Вертикальное (EO_1): сравнение с верхним и нижним соседями.
  3. Диагональное 135° (EO_2): сравнение с верхним-левым и нижним-правым соседями.
  4. Диагональное 45° (EO_3): сравнение с верхним-правым и нижним-левым соседями.

Для каждого пикселя определяется его категория (от 0 до 4) на основе сравнения с соседями:

  • Категория 1: пиксель меньше обоих соседей (локальный минимум).
  • Категория 2: пиксель меньше одного соседа и равен другому (вогнутый край).
  • Категория 3: пиксель больше одного соседа и равен другому (выпуклый край).
  • Категория 4: пиксель больше обоих соседей (локальный максимум).
  • Категория 0: все остальные случаи (не является краем).

Для каждой из четырёх категорий (1–4) вычисляется смещение, которое добавляется к пикселям, попавшим в эту категорию. Это позволяет корректировать как размытые, так и чрезмерно резкие края.

Преимущества и недостатки

Преимущества

  • Улучшение субъективного качества: SAO эффективно снижает артефакты квантования, делая изображение более чистым и детализированным, особенно на низких битрейтах.
  • Снижение битрейта: За счёт коррекции искажений SAO позволяет кодеру использовать более грубое квантование, что снижает объём данных, необходимых для достижения заданного качества.
  • Низкая вычислительная сложность: Алгоритм SAO прост и не требует большого объёма вычислений, что делает его пригодным для аппаратной реализации в мобильных устройствах и телевизорах.
  • Адаптивность: Выбор режима (BO или EO) и параметров смещения для каждой CTU позволяет адаптироваться к локальным особенностям изображения.

Недостатки

  • Дополнительная служебная информация: Для каждой CTU необходимо передавать флаг выбора режима и значения смещений, что увеличивает объём битового потока. При очень высоких битрейтах этот оверхед может перевешивать выгоду от сжатия.
  • Ограниченная эффективность на сложных текстурах: SAO менее эффективен на изображениях с высокой детализацией (например, трава, шум), где локальные вариации пикселей не поддаются простой коррекции.
  • Зависимость от качества кодирования: Эффективность SAO сильно зависит от того, насколько хорошо кодер выбрал режим и параметры. Неоптимальный выбор может ухудшить качество.

Применение

SAO является обязательной частью декодеров HEVC (H.265) и используется во всех устройствах, поддерживающих этот стандарт:

  • Видеокодеки: программные (x265, NVENC, QuickSync Video) и аппаратные (в процессорах, видеокартах, SoC).
  • Стриминговые сервисы: Netflix, YouTube, Amazon Prime Video, использующие HEVC для сжатия 4K и HDR-контента.
  • Телевидение: цифровое телевидение (DVB-T2, DVB-S2) и спутниковое вещание.
  • Видеонаблюдение: системы видеонаблюдения, использующие HEVC для сжатия записей с камер высокого разрешения.
  • Медиаплееры: программные (VLC, MPC-HC) и аппаратные (телевизоры, Blu-ray плееры).

Сравнение с другими технологиями

SAO часто сравнивают с Adaptive Loop Filter (ALF), который используется в более новых стандартах, таких как VVC (Versatile Video Coding, H.266). ALF является более сложным и мощным фильтром, который может адаптироваться к произвольным формам искажений, а не только к полосам и краям. Однако ALF требует значительно больших вычислительных ресурсов. В HEVC SAO был выбран как компромисс между эффективностью и сложностью.

Источники

  1. Sullivan, G. J., Ohm, J. R., Han, W. J., & Wiegand, T. (2012). Overview of the High Efficiency Video Coding (HEVC) standard. IEEE Transactions on Circuits and Systems for Video Technology, 22(12), 1649-1668.
  2. Fu, C. M., Alshina, E., Alshin, A., Huang, Y. W., Chen, C. Y., Tsai, C. Y., ... & Lei, S. (2012). Sample adaptive offset for HEVC. IEEE Transactions on Circuits and Systems for Video Technology, 22(12), 1755-1764.
  3. Bossen, F., Bross, B., Suhring, K., & Flynn, D. (2012). HEVC complexity and implementation analysis. IEEE Transactions on Circuits and Systems for Video Technology, 22(12), 1685-1696.
  4. ITU-T Recommendation H.265 (2013). High efficiency video coding.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →