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)