KSPROPERTY_CAMERACONTROL_EXTENDED_OPTIMIZATIONHINT (扩展的硬件优化)
KSPROPERTY_CAMERACONTROL_EXTENDED_OPTIMIZATIONHINT用于控制照片捕获与视频捕获的主要用例。 在 Windows 10 中,扩展了此控件以支持扩展的硬件优化提示。
使用情况摘要表
范围 | 控制 | 类型 |
---|---|---|
版本 1 | 筛选器 | 同步 |
可以在KSCAMERA_EXTENDEDPROP_HEADER中放置以下标志。驱动程序中硬件优化提示的标志字段。
#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。
如果驱动程序不支持优化提示,则驱动程序不应实现此控件。
下表描述了标志功能。
标志 | 描述 |
---|---|
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 标志一起使用,也可以与 VIDEO 标志一起使用,也可以与 LATENCY 或 POWER 标志一起使用。 |
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_LATENCY | 此功能是可选的。 指定后,驱动程序应优化照片捕获和视频录制的速度和延迟。 此标志可以在照片捕获 (包括常规照片、VPS 和 PS(无历史记录帧)) 和/或视频录制开始之前指定,或者引脚处于停止状态时指定。 此标志可以与 PHOTO 标志一起使用,也可以与 VIDEO 标志一起使用,也可以与 QUALITY 或 POWER 标志一起使用。 |
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_POWER | 此功能是可选的。 指定时,驱动程序应优化照片捕获和视频录制的功耗。 可以在照片捕获 (包括常规照片、VPS 和 PS)之前指定此标志,而无需历史记录) 和/或视频录制开始,或者引脚处于停止状态时。 此标志可以与“质量”或“延迟”标志以及 VIDEO 标志一起使用。 |
下表包含使用 控件时 KSCAMERA_EXTENDEDPROP_HEADER 结构字段的说明和要求。
成员 | Value |
---|---|
版本 | 1 |
PinId | KSCAMERA_EXTENDEDPROP_FILTERSCOPE (0xFFFFFFFF) |
大小 | sizeof (KSCAMERA_EXTENDEDPROP_HEADER) + sizeof (KSCAMERA_EXTENDEDPROP_VALUE) |
结果 | 指示上次 SET 操作的错误结果。 如果未发生 SET 操作,则必须为 0。 |
功能 | 必须是上面定义的受支持KSCAMERA_EXTENDEDPROP_OPTIMIZATION_* 标志的按位 OR。 |
Flags | 这是一个读/写字段。 这可以是上面定义的受支持KSCAMERA_EXTENDEDPROP_OPTIMIZATION_* 标志的任何有效组合。 |
注解
使用优化提示时,请记住以下事项:
质量/延迟/电源和照片/视频是两组独立的提示。 它们可以同时指定,也可以在不同的时间单独指定。 设置 QUALITY/LATENCY/POWER 不会覆盖 PHOTO/VIDEO,反之亦然。 在不同时间指定时,驱动程序应在 GET 调用中返回两组提示的当前设置。
对于 QUALITY/LATENCY/POWER,当设置提示时,驱动程序应在其约束范围内进行优化。 如果没有可用的优化,驱动程序应忽略提示。
如果同时为视频用例指定了两个提示,则每个提示的优化可能小于仅指定一个提示时。 更具体说来:
如果还指定了“质量”或“电源”,则延迟优先于质量或电源。 在这种情况下,当仅指定 QUALITY 时,质量可能小于 ,而功耗可能高于仅指定 POWER 时。
如果同时指定 QUALITY 和 POWER,则质量可能小于仅指定 QUALITY 时的质量,并且功耗可能高于仅指定 POWER 时。
优化提示仅作为驱动程序的提示,以便在应用程序指定的捕获方案的约束范围内促进 3A、ISP 处理、传感器选择等中的处理权衡。 应用开发人员必须为特定的捕获方案选择和配置最合适的控件和 API,以便获得最佳结果。 否则,仅优化提示可能会减少影响。 例如,对于高质量照片捕获,应在某些 IHV 平台上使用 VPS 或 LowLagPhoto/TakePhoto 而不是 PS,以便使用质量提示。 同样,如果需要降低延迟或功耗,则应禁用视频防抖动。
如果在每个功能标志下指定的时间/状态以外的时间/状态收到优化提示,则应忽略这些提示。
在驱动程序上也启用了视频防抖动控件时, (ON 或 AUTO) :
如果设置了延迟和/或电源提示,驱动程序可以应用最低主动视频防抖动(包括低延迟和/或低功耗视频稳定算法),以减少处理延迟和/或功耗。 当视频防抖动设置为 AUTO 时,驱动程序可能会关闭视频防抖动,以进一步降低延迟和/或功耗。
如果设置了质量提示,驱动程序可能会应用最高主动视频防抖动以提高视频质量。
要求
头: Ksmedia.h (包括 Ksmedia.h)