Поделиться через


KSPROPERTY_CAMERACONTROL_EXTENDED_BACKGROUNDSEGMENTATION

KSPROPERTY_CAMERACONTROL_EXTENDED_BACKGROUNDSEGMENTATION — это идентификатор свойства, используемый для управления размытием фона в драйвере.

Это свойство управляет исправлением в потоке, которое драйвер может выполнить, чтобы обеспечить высокое качество исправления изображений для использования с предварительным просмотром и записанными изображениями. Исправление в потоке должно быть включено и отключено в драйвере единым способом, чтобы функции могли управляться либо Windows, либо приложением.

Примеры настройки элементов управления KSPROPERTY можно найти в примере драйвера камеры AVStream на сайте GitHub.

Обновление элемента управления KSPROPERTY_CAMERACONTROL_EXTENDED_BACKGROUNDSEGMENTATION

Начиная с Windows 11 версии 22H2 режим неглубокого фокуса появился в существующем элементе управления сегментацией фона в качестве дополнительной возможности.

KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_SHALLOWFOCUS — это новый флаг, добавленный в элемент управления KSPROPERTY_CAMERACONTROL_EXTENDED_BACKGROUNDSEGMENTATION, который используется для управления режимом "Боке" (неглубокий фокус) в драйвере. Это версия KSPROPERTY_CAMERACONTROL_EXTENDED_BACKGROUNDSEGMENTATION размытия фона, где акцент делается меньше на конфиденциальность и больше на том, чтобы фон пользователя выглядел как из камеры более высокого качества с глубиной эффекта поля. Это визуально сделает предмет переднего плана выделиться, аналогично тому, как портретный режим фотографии на многих мобильных телефонах стал популярным.

Сводная таблица использования

Область Control Тип
версия 1 Фильтр Синхронная

В KSCAMERA_EXTENDEDPROP_HEADER можно поместить следующие флаги . Поле флагов для управления режимом неглубокой фокусировки.

#define KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_OFF          0x0000000000000000
#define KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_BLUR         0x0000000000000001
#define KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_MASK         0x0000000000000002
#define KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_SHALLOWFOCUS 0x0000000000000004

Если драйвер поддерживает этот элемент управления, он должен поддерживать BACKGROUNDSEMENTATION_OFF и один или несколько других флагов.

Если драйвер не поддерживает фоновую сегментацию, драйвер не должен реализовывать этот элемент управления.

Вызов SET этого элемента управления вступает в силу, даже если закрепление видео или фотографии находится в KSSTATE_RUN состоянии. В вызове GET драйвер должен вернуть текущие параметры в поле Флаги.

В следующей таблице описаны возможности флагов.

Flag Описание
KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_OFF Это обязательная возможность. При указании фоновой сегментации в драйвере отключается. Это значение по умолчанию.
KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_BLUR Это необязательная возможность. Если этот параметр указан, размытие фона включено в драйвере и применяется к кадру, если это возможно.
KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_MASK Это необязательная возможность. Если этот параметр указан, в драйвере включено производство метаданных маски фона (если это возможно при использовании MediaType, выраженном с помощью набора KSPROPERTY_CAMERACONTROL_EXTENDED_ BACKGROUNDSEGMENTATION_CONFIGCAPS возвращается в поле Размер KSCAMERA_EXTENDEDPROP_HEADER). Обратите внимание, что это может поддерживаться не только для цветных камер, но и камер глубины и IR.
KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_SHALLOWFOCUS Это необязательная возможность. Если этот параметр указан вместе с KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_BLUR , в драйвере включена неглубокая фокусировка.

Примечание

С точки зрения SET необходимо добавить KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_SHALLOWFOCUS вместе с KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_BLUR , чтобы они вступают в силу; Их также можно задать вместе с KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_MASK.

В таблице ниже приведены описания и требования к полям структуры KSCAMERA_EXTENDEDPROP_HEADER при использовании элемента управления .

Член Описание
Версия Это значение должно быть 1.
PinId Это должно быть KSCAMERA_EXTENDEDPROP_FILTERSCOPE (0xFFFFFFFF).
Размер Это должны быть значения sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VALUE).
Результат Неиспользуемый, должен иметь значение 0.
Функция Должен быть битовой или поддерживаемых флагов KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION _*, определенных выше.
Флаги Это поле для чтения и записи. Это может быть любой из флагов KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION _*, определенных выше, кроме SHALLOWFOCUS (который необходимо задать вместе с BLUR, чтобы ввести в силу) или допустимые сочетания битов. С точки зрения SET режим неглубокой фокусировки будет включен только в том случае, если одновременно заданы значения SHALLOWFOCUS и BLUR. Их можно задать вместе с ПАРАМЕТРОМ MASK.

Требования

Минимальный поддерживаемый клиент: Windows 11 версии 22H2

Заголовок: ksmedia.h (включая Ksmedia.h)

См. также раздел

Пример драйвера для режима взгляда в режиме взгляда в фоновом режиме сегментации

KSPROPERTY_CAMERACONTROL_EXTENDED_EYEGAZECORRECTION

KSCAMERA_EXTENDEDPROP_BACKGROUNDSEGMENTATION_CONFIGCAPS

KSCAMERA_EXTENDEDPROP_HEADER