Психо-визуальная избыточность: то, чего зритель всё равно не увидит

Автор: Николай СапуновОбновлено: август 202615 мин чтения
Содержание статьи +

TL;DR

Человеческий глаз хорошо различает одни детали и плохо – другие, и современные видеокодеки тратят почти весь свой битовый бюджет на то, чтобы скрывать искажения в тех местах, куда зритель смотрит в последнюю очередь. Психо-визуальная избыточность – это разница между тем, что фиксирует сенсор камеры, и тем, что реально использует мозг зрителя: цветовое разрешение, которое глаз не различает; высокие пространственные частоты, на которые он слабо реагирует; ошибки в движении, маскируемые самим движением; кадры, на которых детали невозможно успеть рассмотреть. От JPEG до AV1 кодеки используют эту особенность тремя способами: chroma subsampling, сразу отбрасывающий большую часть цветовой информации; перцептивные таблицы квантования, распределяющие больше битов на частоты, важные для восприятия; и адаптивное квантование, которое маскирует потерю качества в текстурных, тёмных или быстро движущихся участках. Грамотный психо-визуальный кодинг позволяет сэкономить 10–40 % битрейта при неизменном качестве изображения – именно поэтому 3-мегабитный стрим Netflix на обычном телевизоре выглядит так же, как 12-мегабитный mezzanine.

Зачем это нужно

Если вы производите, покупаете или используете любой продукт, передающий видео, психо-визуальная избыточность – это ключевой фактор, определяющий реальную стоимость вашего CDN, энкодинг-фермы и удержание зрителей. Команда, которая понимает, какие флаги энкодера влияют на воспринимаемое качество, может транслировать 1080p при битрейте, на котором другие ограничиваются 720p – и зрители не заметят разницы. То же понимание помогает определить, когда 4:4:4 chroma – действительно необходимое требование (например, в постпродакшене, screen sharing или телемедицине), а когда – избыточная трата ресурсов (в массовом стриминге). Ошибётесь – и потратите биты на детали, которые глаз не различает, или сэкономите там, где зрение особенно чувствительно, и зрители начнут жаловаться на «мыло» или «блочность», не в силах точно объяснить, что их беспокоит. Эта статья ведёт нетехнического читателя от простого принципа «глаз – это не камера» к практическому пониманию psy-rd, AQ-режимов и per-title encoding.

Что такое «психо-визуальная избыточность»

В этом термине три части, и порядок имеет значение. «Психо-» – про восприятие: что мозг делает с сигналом после того, как его поймал глаз. «Визуальная» – напоминание, что речь идёт о картинке, а не, например, об аудиомаскировке в MP3. «Избыточность» – инженерный термин для информации, которую можно убрать без последствий.

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

Полезная аналогия. Представьте курьера, доставляющего договор на 100 страниц. Пространственная и временная избыточности – это страницы, дублирующие уже переданное: курьер их сжимает, а получатель всё равно получает полный документ. Психо-визуальная избыточность – это юридический язык на 73-й странице, который никто читать не будет: курьер заменяет его одной строкой резюме, и поведение получателя остаётся прежним. У глаза, как и у читателя контракта, ограничен бюджет внимания. Кодек, который знает, на что он тратится, перестаёт тратить биты на те фрагменты, которые глаз пропускает.

Это третий столп каждого современного кодека наряду с пространственной и временной компрессией. Разделение на «нерелевантную» и «избыточную» информацию восходит ещё к теории информации Клода Шеннона, а первым широко распространённым стандартом, серьёзно использующим психо-визуальную модель, стал JPEG в 1992 году.1 Каждый последующий кодек развивал ту же идею, уточняя модель: MPEG-2 внедрил scene-adaptive quantization, H.264 – psychovisual-aware deblocking в петле, HEVC – более точные quantization matrices, AV1 – adaptive-quantization сегменты с saliency-весом.

Рисунок 1. Три вида избыточности, которые использует кодек. Первые два – статистические свойства сигнала, третий – особенность восприятия зрителем.

Как глаз на самом деле видит

Прежде чем переходить к трюкам, нужна грубая модель того, что глаз делает хорошо, а что – плохо. На сетчатке выделяют две основные группы фоторецепторов. Палочки преобладают на периферии и работают в условиях слабого освещения, не различают цвета и по числу значительно превосходят колбочки – примерно в 18 раз.2 Колбочки отвечают за зрение при дневном свете и бывают трёх типов – чувствительных к длинным, средним и коротким волнам, что мы условно называем «красные, зелёные, синие». Эти типы представлены неравномерно и сосредоточены в небольшом центральном участке сетчатки – фовее. За её пределами способность различать цвета быстро снижается.

Мозг объединяет сигналы палочек и колбочек в два почти независимых канала, названных по терминологии телевизионных инженеров, которые первыми их измерили. Один канал – luma – передаёт яркость – ту самую характеристику, в которой палочки особенно сильны: высокое пространственное разрешение и высокая контрастная чувствительность. Второй канал – chroma – отвечает за цвет, имеет примерно вдвое более низкое пространственное разрешение и заметно меньшую чувствительность к мелким деталям.3 Это не выдумка кодеков, а реальное свойство зрительного тракта, подтверждённое психофизическими экспериментами с 1950-х годов.

Из этого разделения вытекают три практических следствия. Первое: можно существенно снизить цветовое разрешение, и зритель этого не заметит. Именно на этом основана chroma subsampling – и именно поэтому формат 4:2:0 используется почти во всех потребительских видеоформатах. Второе: глаз гораздо чувствительнее к яркости (luma) на низких и средних пространственных частотах, чем на высоких. Количественно это описывается функцией, зависящей от числа циклов на градус зрительного угла – она называется contrast sensitivity function (CSF). Её пик приходится на диапазон 4–6 циклов на градус, после чего она быстро спадает как в сторону меньших, так и больших значений.4 Третье: чувствительность глаза к ошибкам в любой области резко снижается, если эта область сложная, тёмная или быстро движется – более приоритетный визуальный сигнал «затеняет» восприятие шума. Это явление называют маскировкой.

Практический мысленный эксперимент. Возьмите листок на расстоянии вытянутой руки и прочитайте текст – просто. Встаньте, пройдите мимо листка на полной скорости и попробуйте прочитать те же буквы – невозможно, хотя в глаз попали ровно те же фотоны. Мозг перестаёт различать мелкую детализацию в движущемся стимуле, освобождая перцептивную ёмкость для общей картины. Кодек, который это знает, может потратить меньше бит на кадр с быстрой панорамой – и зритель не заметит.

Рисунок 2. Контрастная чувствительность глаза не является плоской: пик в середине, спад с обеих сторон – отсюда и возникает необходимость в частотно-взвешенном квантовании.

Трюк 1 – Chroma subsampling: половина данных, потери незаметны

Первый и самый масштабный психо-визуальный трюк кодека – отбросить три четверти цветовой информации ещё до начала сжатия. Механика проста: сигнал поступает с сенсора в формате RGB; энкодер преобразует его в представление «яркость + два цветовых канала» (Y′CbCr, BT.709, BT.2020), после чего цветовые плоскости подвергаются понижению разрешения. Доминирующий формат – 4:2:0: полное разрешение сохраняется для компоненты яркости (luma), а цветовые компоненты (chroma) – в половине разрешения как по горизонтали, так и по вертикали. Плоскость luma размером 1920×1080 хранит каждый пиксель, а две chroma-плоскости содержат лишь по 960×540 значений.

Посчитайте один раз. Сырой кадр 4:4:4 в 1080p при 8 битах на сэмпл – это 1920 × 1080 × 3 × 8 = 49.8 Мбит на кадр. Тот же кадр в 4:2:0 – (1920 × 1080 + 2 × 960 × 540) × 8 = 24.9 Мбит, ровно вдвое меньше.5 Кодек ещё не сделал ни одного шага сжатия, а уже уменьшил объём данных на 50%. При этом на обычном экране с обычного расстояния непрофессионал не сможет отличить 4:4:4 от 4:2:0. Это и есть психо-визуальная избыточность в чистом виде: данные были реальными, но система восприятия всё равно их бы не использовала.

Короткая проверка реальностью. Chroma subsampling не бесплатен везде. При трансляции экрана с резким красным текстом на синем фоне разрешение цветовой границы становится критически важным – формат 4:2:0 даёт заметное цветовое окаймление вдоль букв. Тот же эффект проявляется на мелких насыщенных узорах – ткани, компьютерной графике, линиях анимации, телемедицинских снимках кожных образований, где диагностическая ценность сосредоточена на границе цвета. Такие пайплайны работают в режиме 4:2:2 (сэмплирование хроминанса по горизонтали вдвое реже, по вертикали – без потерь) или 4:4:4 (полное разрешение хроминанса без редукции). Сравнение:

SamplingLumaChroma на плоскостьСтоимость, бит/пиксельВидимая потеря на натуральном видеоГде живёт
4:4:4полнаяполная100%нетмедицинская визуализация, постпродакшен, screen capture
4:2:2полная1/2 по горизонтали67%незаметна на большинстве сюжетовbroadcast-ингест, профессиональные камеры
4:2:0полная1/4 (обе оси)50%трудно увидеть на натуральном видео с обычной дистанциикаждый стриминг-кодек; YouTube, Netflix, эфирная доставка
4:1:1полная1/4 по горизонтали50%видна на красных диагональных границахустаревший DV / NTSC

Вывод для продуктовых команд: 4:2:0 – правильный дефолт для любой доставки, а стремление к 4:4:4 в потребительском стриминге почти всегда является напрасной тратой бит. Исключение – вертикали, где ценность изображения сосредоточена в chroma-канале; в таких случаях обычно достаточно 4:2:2.

Рисунок 3. Три chroma-раскладки, имеющие практическое значение. Потеря цветового разрешения ниже порога восприятия при естественном контенте, а сэкономленные байты – это реальные деньги.

Трюк 2 – Матрицы квантования: тратить биты там, где глаз чувствителен

После прореживания chroma-плоскости кодек разбивает каждый кадр на небольшие блоки и применяет к ним частотное преобразование. В классических кодеках используется дискретное косинусное преобразование (Discrete Cosine Transform), в современных – его целочисленные приближения. Это преобразование преобразует блок пикселей в блок коэффициентов, по одному на каждую пространственно-частотную компоненту. Верхний левый коэффициент – DC: средняя яркость блока. Нижний правый – самая высокая частота: самая мелкая текстура.

Затем энкодер квантует каждый коэффициент – делит его на шаг и округляет. Квантизация – это этап, на котором происходит именно lossy-сжатие, и здесь психо-визуальная модель оказывает наибольшее влияние. Идея в следующем: вместо одинакового шага для всех коэффициентов использовать разные шаги в зависимости от частоты – малый шаг (сохраняется точность) для частот, на которые глаз чувствителен, и большой шаг (точность теряется) – для тех, на которые он не реагирует. Таблица таких шагов и называется quantization matrix.

Исходная матрица квантования JPEG 1992 года – первая широко применённая психо-визуальная таблица.6 Её создали на основе психофизических экспериментов: испытуемому показывали две картинки и спрашивали, при какой амплитуде он начинает различать различия – эта амплитуда и становилась шагом квантования. В нормализованном виде матрица выглядит так:

16  11  10  16  24  40  51  61
12  12  14  19  26  58  60  55
14  13  16  24  40  57  69  56
14  17  22  29  51  87  80  62
18  22  37  56  68 109 103  77
24  35  55  64  81 104 113  92
49  64  78  87 103 121 120 101
72  92  95  98 112 100 103  99

Читайте как тепловую карту. Низкие частоты (в верхнем левом углу) соответствуют шагам 11–16 – они передаются почти без потерь. Высокие частоты (в нижнем правом углу) – шагам 99–121, в 6–8 раз грубее, и большинство этих коэффициентов после квантования обнуляются. Матрица несимметрична: горизонтальные и вертикальные частоты имеют немного разный вес, а диагональные – самые жёсткие, поскольку сама контрастная чувствительность глаза анизотропна. Результат: около 90% видимой информации сосредоточено в верхней левой трети блока, и кодек выделяет на неё те же 90% бит.

Современные кодеки используют собственные таблицы масштабирования, а не матрицу JPEG, но суть остаётся той же. H.264 применяет стандартную таблицу 8×8, выведенную на основе измерений CSF; HEVC поддерживает отдельные матрицы для каждого размера преобразования и типа среза; VVC и AV1 хранят матрицы квантования, индексированные по размеру блока и режиму предсказания.7 Гранулярность стала мельче, но философия за 34 года не изменилась: в первую очередь квантовать те зоны, на которые глаз реагирует слабее.

Распространённая ошибка – называть матрицы квантования «алгоритмом сжатия». Это не алгоритм. Это политика распределения битов, применяемая поверх квантования; сама математическая операция «деление и округление» остаётся неизменной. Матрица определяет, какие коэффициенты сохранятся при заданном целевом битрейте. Отключите её (используйте плоский scaling list) – и вы получите одинаковое количество бит на каждую частоту, включая невидимые: тот же битрейт, но более низкое воспринимаемое качество. Большинство кодировщиков включают матрицы по умолчанию, поэтому об этом обычно не задумываются; но если вы столкнулись с профилем, в котором они отключены «для совместимости», включение матриц обратно – одна из самых простых и эффективных мер по улучшению качества.

Трюк 3 – Adaptive quantization: большие ошибки там, где глаз их не замечает

Матрицы квантования изменяют битовый бюджет внутри блока – по частотам. Адаптивное квантование (AQ) перераспределяет битовый бюджет между различными участками кадра – по координатам. Принцип такой: больше бит выделяется областям, на которые зритель смотрит, и меньше – тем, на которые он не обращает внимания.

Три свойства делают область удобной для «недокодирования»: высокая пространственная дисперсия (текстура), низкая яркость (тёмные зоны) и высокое локальное движение. Самое сильное из них – дисперсия, поскольку она задействует contrast masking. Способность глаза заметить дефект внутри сложной текстуры значительно ниже, чем на однородной поверхности. Покажите человеку гладкое синее небо с лёгким артефактом сжатия – он его сразу заметит. А вот тот же артефакт в ткани или среди колышущейся листвы останется незамеченным.

Опенсорс-энкодеры предоставляют такой инструмент напрямую. SVT-AV1 в режиме variance-based AQ использует дисперсии блоков 8×8, 16×16, 32×32 и 64×64 как прокси для контраста и корректирует QP по каждому блоку вверх или вниз.8 x264 реализует аналогичный подход в «AQ mode 1» (variance AQ) и «AQ mode 2» (auto-variance AQ); степень влияния задаётся параметром --aq-strength, при стандартных значениях достигается 60–80% от возможной перцептивной экономии без визуального «дыхания».9 x265 дополнительно использует вход saliency – оценку того, куда зритель скорее всего посмотрит, основанную на ML-моделях, обученных на данных eye-tracking. Эффект на реальном контенте не теоретический: измерения показывают 10–25% экономии битрейта при неизменном VMAF и ещё 6% сверх уже оптимизированного HEVC-пайплайна.10

Вторая ось – luma – использует пониженную чувствительность глаза к шуму в тёмных участках. Принцип тот же: в тенях локальная яркость низкая, а уровень шума в колбочках высок, поэтому ошибка квантования, например, в 4 уровня – незаметна. Повышаете QP в тенях – экономите биты без видимых потерь. В некоторых реализациях AV1 даже предусмотрен отдельный флаг --enable-dark-region-boost.

Третья ось – движение – самая контринтуитивная. Быстро движущаяся область обладает высокой временной энергией, и система слежения глаза переключается с пространственной чёткости на стабильную фиксацию. В результате возникает temporal masking: несколько кадров с ошибками квантования во время резкой склейки или быстрой панорамы остаются незамеченными. Современные энкодеры распознают склейки и повышают QP на первых одном-двух B-кадрах после перехода, учитывая, что система восприятия в этот момент адаптируется к новой сцене. Эффект настолько силён, что квантование при смене сцены стало стандартом в любом коммерческом кодеке.

Рисунок 4. Карта адаптивной квантизации на одном кадре. Энкодер одновременно делает четыре ставки: больше бит – небу, меньше – текстуре, меньше – тени, меньше – движению.

Четвёртый рычаг – `psy-rd` и «глаз предпочитает точность деталям»

Есть ещё один психо-визуальный инструмент, который стоит знать, потому что он влияет на то, как энкодер делает главный выбор – каким способом сжать данный блок. Этот выбор называется rate-distortion optimization (RDO) – выбрать режим кодирования, обеспечивающий наилучший баланс между количеством битов и искажением. По умолчанию «искажение» измеряется как sum-of-squared-error относительно исходного изображения: попиксельное сравнение.

Проблема плоского SSE в том, что он поощряет размытие. Гладкая, сглаженная реконструкция даёт низкий SSE по сравнению с оригиналом, даже если полностью потеряла текстуру; резкая, но слегка неточная – высокий SSE, хотя зрителю может казаться более близкой к исходнику. Без контроля энкодер, оптимизирующий по SSE, будет всегда размывать изображение – так диктует математика. Зрителям это не нравится. Они стабильно предпочитают слегка неточную, но детальную реконструкцию гладкой, но «правильной».11

Лекарство – добавить во функцию стоимости второе слагаемое: штраф за блоки, чья визуальная «энергия» (содержание высоких частот) отличается от исходного изображения. В x264 такая реализация называется psy-rd и по умолчанию установлена в 1.0; x265 адаптировал её под HEVC; энкодеры AV1 используют аналоги под названиями psy-rdoq и psy-tune. Эффект полностью соответствует математическим ожиданиям: кодировщик тратит немного больше бит на сохранение текстуры и немного меньше – на точное воспроизведение пиксельных значений. Объективные метрики (PSNR, простое попиксельное сравнение) снижаются на доли единицы; перцептивные (SSIM, VMAF) и субъективные оценки зрителей – растут. Это один из немногих случаев в видео, когда более низкий PSNR действительно означает лучшее качество.11

Урок шире одного параметра. PSNR – буквалист, человеческий глаз – нет. Психо-визуальный энкодер строится вокруг второго факта, а любой тулчейн, чья единственная цель по качеству – PSNR, оставляет на полу 5–15% воспринимаемого качества. Именно этот зазор и призваны закрыть VMAF и другие перцептивные метрики.

Где здесь Фора Софт

Мы разрабатываем стриминг, видеоконференции, телемедицину и OTT-платформы, где психо-визуальные решения – не академическая теория, а ключевой фактор, определяющий, будет ли bitrate-лестница приносить прибыль или наносить ущерб бизнесу. В наших проектах мы регулярно подбираем chroma-формат, силу AQ и параметры psy-rd в зависимости от типа контента: музыкальному сервису и видеоархиву с камер наблюдения нужны принципиально разные настройки по умолчанию – архиву важна высокая детализация на высоких частотах (например, номер машины), а музыкальному видео – плавность цветопередачи (сцена, свет). В телемедицине и AR/VR приоритеты снова меняются: диагностически значим цвет в дерматологическом стриме, а периферийная острота зрения – нет. Под всем этим лежит один и тот же принцип: понимай, на что действительно смотрит глаз, и оптимизируй кодирование вокруг этого знания.

Частая ошибка – отключить психо-визуальные фичи, чтобы посмотреть на «чистые цифры»

Инженеры под давлением «дайте цифры» иногда отключают AQ, psy-rd и матрицы квантования «для чистого baseline», а затем публикуют битрейты этого baseline как дефолт проекта. Цифры не врут, но это и не те цифры, которые увидит реальный пользователь, потому что любой реальный стриминг-пайплайн работает с этими фичами включёнными. Baseline, в котором их выключили, описывает вымышленный пессимистичный кодек, который на 10–25% хуже того, что зрители фактически получают, и любая фича, сравниваемая с ним, будет выглядеть лучше, чем есть.

Если нужен бенчмаркинг против «чистого» референса – окей, но обязательно фиксируйте, какие психо-визуальные фичи включены или отключены, и никогда не сравнивайте «чистый» прогон с «настроенным» без явной маркировки. Внутри это называют feature parity: каждый прогон в сравнении должен использовать одинаковый набор психо-визуальных тумблеров, иначе цифры будут несопоставимы.

Ключевые выводы

  • Психо-визуальная избыточность – это часть сигнала, которую зритель всё равно не воспримет.
  • Chroma subsampling 4:2:0 отбрасывает 50% данных без заметной потери качества на естественном контенте.
  • Матрицы квантования выделяют больше битов на те пространственные частоты, которые глаз действительно различает.
  • Адаптивное квантование маскирует ошибки в текстурных, тёмных и быстро движущихся областях.
  • psy-rd заставляет энкодер ориентироваться не на точное воспроизведение пикселей, а на сохранение детализации, снижая PSNR, но повышая VMAF.
  • Отключение психо-визуальных функций при тестировании приводит к оценке кодека на 10–25% хуже, чем реальный результат.

Что читать дальше

Источники

  1. Wallace, G. K. (1992). "The JPEG Still Picture Compression Standard." IEEE Transactions on Consumer Electronics, vol. 38, no. 1. https://ieeexplore.ieee.org/document/125072. Accessed 2026-05-16.
  2. Curcio, C. A. et al. (1990). "Human photoreceptor topography." Journal of Comparative Neurology. https://onlinelibrary.wiley.com/doi/10.1002/cne.902920402. Accessed 2026-05-16.
  3. Poynton, C. (2012). Digital Video and HD: Algorithms and Interfaces (2nd ed.). Morgan Kaufmann.
  4. Mannos, J. L., Sakrison, D. J. (1974). "The Effects of a Visual Fidelity Criterion on the Encoding of Images." IEEE Transactions on Information Theory.
  5. ITU-R BT.709 – Parameter values for the HDTV standards. https://www.itu.int/rec/R-REC-BT.709/. Accessed 2026-05-16.
  6. ITU-T T.81 / ISO 10918-1 – JPEG specification, Annex K Tables K.1 / K.2. https://www.w3.org/Graphics/JPEG/itu-t81.pdf. Accessed 2026-05-16.
  7. 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, vol. 22, no. 12. https://ieeexplore.ieee.org/document/6316136. Accessed 2026-05-16.
  8. SVT-AV1 – Appendix: Variance-Based Adaptive Quantization. https://gitlab.com/AOMediaCodec/SVT-AV1/-/blob/master/Docs/Appendix-Variance-Based-Adaptive-Quantization.md. Accessed 2026-05-16.
  9. x264 manual (Debian) – --aq-mode, --aq-strength. https://manpages.debian.org/experimental/x264/x264.1.en.html. Accessed 2026-05-16.
  10. Adzic, V., Kalva, H., Furht, B. (2013). "Exploring visual temporal masking for video compression." https://www.cse.fau.edu/~hari/files/2028/Adzic%20et%20al_2013_Exploring%20visual%20temporal%20masking%20for%20video%20compression.pdf. Accessed 2026-05-16.
  11. Wang, S., Zeng, K., Rehman, A., Wang, Z. (2017). "Perceptual Evaluation of Psychovisual Rate-Distortion Enhancement in Video Coding." University of Waterloo. https://ece.uwaterloo.ca/~z70wang/publications/HVEI17_PsyRD.pdf. Accessed 2026-05-16.

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.