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


KSPROPERTY_CAMERACONTROL_EXTENDED_OPTIMIZATIONHINT (расширенная оптимизация оборудования)

KSPROPERTY_CAMERACONTROL_EXTENDED_OPTIMIZATIONHINT используется для управления основным вариантом использования фото- и видеосъемки. В Windows 10 этот элемент управления расширен для поддержки расширенных указаний по оптимизации оборудования.

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

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

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

#define KSCAMERA_EXTENDEDPROP_OPTIMIZATION_DEFAULT      0x0000000000000000
#define KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO        0x0000000000000001
#define KSCAMERA_EXTENDEDPROP_OPTIMIZATION_VIDEO        0x0000000000000002
#define KSCAMERA_EXTENDEDPROP_OPTIMIZATION_QUALITY      0x0000000000000004
#define KSCAMERA_EXTENDEDPROP_OPTIMIZATION_LATENCY      0x0000000000000008
#define KSCAMERA_EXTENDEDPROP_OPTIMIZATION_POWER        0x0000000000000010

Указания PHOTO и VIDEO будут по-прежнему использоваться для указания основного варианта использования.

Для Windows 10 дополнительные битовые флаги помогают в компромиссе качества, скорости и энергопотребления в драйвере. По умолчанию драйвер должен иметь KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO.

Если драйвер поддерживает этот элемент управления, он должен поддерживать KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO и KSCAMERA_EXTENDEDPROP_OPTIMIZATION_VIDEO.

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

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

Flag Описание
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_DEFAULT Это обязательная возможность. Если этот параметр указан, драйвер должен очистить указания, заданные ранее для драйвера, и применить компромисс мощности, качества и задержки драйвера по умолчанию.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO Это обязательная возможность. Если этот параметр указан, основным вариантом использования является фотозахват, и драйвер должен приоритизировать фотозахват над записью видео. Этот флаг можно указать, когда контакт предварительного просмотра находится в остановленном состоянии, чтобы выбрать режим датчика в пользу качества фотографии или в запущенном состоянии для фотозахвата только во время записи видео. Если этот параметр указан для фотозахвата во время записи видео, сбой в видеопотоке является приемлемым в пользу лучшего качества фотографий. Этот флаг является взаимоисключающим с флагом VIDEO и может использоваться с любым одним или двумя флагами QUALITY, LATENCY и POWER.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_VIDEO Это обязательная возможность. Если этот параметр указан, основным вариантом использования является захват видео, и драйвер должен приоритизировать запись видео по сравнению с фотозахватом. Этот флаг можно указать, когда контакт предварительного просмотра находится в остановленном состоянии, чтобы выбрать режим датчика в пользу записи видео или в запущенном состоянии для фотозахвата только во время записи видео. Если этот параметр указан для фотозахвата во время записи видео, сбой в видеопотоке не допускается. Этот флаг является взаимоисключающим с флагом PHOTO и может использоваться с любым одним или двумя флагами QUALITY, LATENCY и POWER.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_QUALITY Эта возможность является необязательной. При указании драйвер должен оптимизировать качество изображения для фотозахвата и качество видео для записи видео. Этот флаг можно указать до начала фотозахвата (включая обычные фотографии, VPS и PS без кадров журнала) и (или) записи видео или когда закрепление находится в остановленном состоянии. Этот флаг можно использовать с флагом PHOTO, а также с флагами LATENCY или POWER вместе с флагом VIDEO.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_LATENCY Эта возможность является необязательной. При указании водитель должен оптимизировать скорость и задержку для фотозахвата и записи видео. Этот флаг можно указать до начала фотозахвата (включая обычные фото, VPS и PS без кадров журнала) и(или) записи видео или когда закрепление находится в остановленном состоянии. Этот флаг можно использовать с флагом PHOTO, а также с флагами QUALITY или POWER вместе с флагом VIDEO.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_POWER Эта возможность является необязательной. При указании драйвер должен оптимизировать энергопотребление для фотозахвата и записи видео. Этот флаг можно указать перед началом фотозахвата (включая обычные фотографии, VPS и PS без журнала) и (или) запись видео или когда закрепление находится в остановленном состоянии. Этот флаг можно использовать с флагом QUALITY или LATENCY, а также с флагом VIDEO.

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

Член Значение
Версия 1
PinId KSCAMERA_EXTENDEDPROP_FILTERSCOPE (0xFFFFFFFF)
Размер sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VALUE)
Результат Указывает результаты ошибки последней операции SET. Если операция SET не выполнена, это должно быть 0.
Функция Должен быть битовой или для поддерживаемых флагов KSCAMERA_EXTENDEDPROP_OPTIMIZATION_*, как определено выше.
Флаги Это поле для чтения и записи. Это могут быть любые допустимые сочетания поддерживаемых флагов KSCAMERA_EXTENDEDPROP_OPTIMIZATION_*, определенных выше.

Комментарии

При использовании указаний оптимизации учитывайте следующие моменты:

  • КАЧЕСТВО/ЗАДЕРЖКА/МОЩНОСТЬ и ФОТО/ВИДЕО — это два набора независимых подсказок. Их можно указать одновременно или независимо в разное время. Установка параметра QUALITY/LATENCY/POWER не перезаписывает ФОТО/ВИДЕО и наоборот. При указании в разное время драйвер должен возвращать текущие параметры обоих наборов указаний в вызове GET.

  • При установке указаний в случае с качеством, задержкой и мощностью драйвер должен оптимизироваться в пределах ограничений. Если оптимизация недоступна, драйвер должен игнорировать указания.

  • Если для варианта использования видео одновременно заданы два указания, оптимизация каждого указания может быть меньше, чем при указании только одного указания. В частности:

    • ЗАДЕРЖКА имеет приоритет над QUALITY или POWER, если также указано QUALITY или POWER. В таких случаях качество может быть меньше, чем при указании только параметра QUALITY, а энергопотребление может быть выше, чем при указании только параметра POWER.

    • Если указаны параметры QUALITY и POWER, качество может быть меньше, чем при указании только параметра QUALITY, а энергопотребление может быть выше, чем при указании только параметра POWER.

  • Указание оптимизации служит только подсказкой для драйвера, чтобы упростить компромиссы обработки в 3A, обработке поставщиком услуг Интернета, выборе датчика и т. д. в рамках ограничений сценариев захвата, заданных приложением. Разработчику приложений важно выбрать и настроить наиболее подходящие элементы управления и API для конкретного сценария отслеживания, чтобы добиться наилучших результатов. В противном случае только подсказки оптимизации могут иметь уменьшенный эффект. Например, для высококачественного фотосъемки следует использовать VPS или LowLagPhoto/TakePhoto вместо PS на определенных платформах IHV, чтобы использовать подсказку QUALITY. Аналогичным образом, стабилизация видео должна быть отключена, если необходимо уменьшить задержку или энергопотребление.

  • Указания оптимизации следует игнорировать, если они получены в момент или состояние, отличное от того, что указано под флагом каждой возможности.

Если элемент управления стабилизацией видео также включен в драйвере (ON или AUTO):

  • Драйвер может применять самую низкую агрессивную стабилизацию видео, которая включает в себя алгоритм низкой задержки и (или) низкой энергопотребления, чтобы уменьшить задержку обработки и (или) энергопотребление, если заданы указания LATENCY и (или) POWER. Если для стабилизации видео задано значение AUTO, драйвер может отключить стабилизацию видео, чтобы еще больше уменьшить задержку и (или) потребление энергии.

  • Драйвер может применить самую агрессивную стабилизацию видео, чтобы улучшить качество видео, если задано указание QUALITY.

Требования

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