Condividi tramite


KSPROPERTY_CAMERACONTROL_EXTENDED_OPTIMIZATIONHINT (ottimizzazione hardware espansa)

KSPROPERTY_CAMERACONTROL_EXTENDED_OPTIMIZATIONHINT viene usato per controllare il caso d'uso principale dell'acquisizione di foto e dell'acquisizione video. In Windows 10 questo controllo viene esteso per supportare hint di ottimizzazione hardware espansi.

Tabella di riepilogo dell'utilizzo

Ambito Control Tipo
Versione 1 Filtra Sincrono

I flag seguenti possono essere inseriti nella KSCAMERA_EXTENDEDPROP_HEADER. Contrassegna il campo per gli hint di ottimizzazione hardware nel driver.

#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

Gli hint PHOTO e VIDEO continueranno a essere usati per specificare il caso d'uso principale.

Per Windows 10, i flag di bit aggiuntivi aiutano il compromesso di qualità, velocità e consumo di energia nel driver. Per impostazione predefinita, il driver deve avere KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO.

Se il driver supporta questo controllo, deve supportare KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO e KSCAMERA_EXTENDEDPROP_OPTIMIZATION_VIDEO.

Se il driver non supporta gli hint di ottimizzazione, il driver non deve implementare questo controllo.

Nella tabella seguente vengono descritte le funzionalità del flag.

Flag Descrizione
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_DEFAULT Si tratta di una funzionalità obbligatoria. Se specificato, il driver deve cancellare gli hint impostati in precedenza sul driver e applicare il compromesso di potenza, qualità, latenza predefinita del driver.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_PHOTO Si tratta di una funzionalità obbligatoria. Se specificato, il caso d'uso principale è l'acquisizione di foto e il driver assegna la priorità all'acquisizione di foto sulla registrazione video. Questo flag può essere specificato quando il pin di anteprima è nello stato arrestato per selezionare una modalità sensore a favore della qualità della foto o nello stato in esecuzione per l'acquisizione di foto solo durante la registrazione video. Se specificato per l'acquisizione di foto durante la registrazione video, l'errore nel flusso video è accettabile a favore di una migliore qualità delle foto. Questo flag si escludono a vicenda con il flag VIDEO e possono essere usati con uno o due dei flag QUALITY, LATENCY e POWER.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_VIDEO Si tratta di una funzionalità obbligatoria. Se specificato, il caso d'uso principale è l'acquisizione video e il driver assegna la priorità alla registrazione video sull'acquisizione di foto. Questo flag può essere specificato quando il pin di anteprima è nello stato arrestato per selezionare una modalità sensore a favore della registrazione video o nello stato in esecuzione per l'acquisizione di foto solo durante la registrazione video. Se specificato per l'acquisizione di foto durante la registrazione video, l'errore nel flusso video non è consentito. Questo flag si escludono a vicenda con il flag PHOTO e possono essere usati con uno o due dei flag QUALITY, LATENCY e POWER.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_QUALITY Questa funzionalità è facoltativa. Se specificato, il driver ottimizza la qualità dell'immagine per l'acquisizione di foto e la qualità video per la registrazione video. Questo flag può essere specificato prima dell'avvio dell'acquisizione di foto (incluse foto normali, VPS e PS senza fotogrammi di cronologia) e/o registrazione video oppure quando il pin si trova nello stato arrestato. Questo flag può essere usato con il flag PHOTO o con flag LATENCY o POWER insieme al flag VIDEO.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_LATENCY Questa funzionalità è facoltativa. Se specificato, il driver ottimizza la velocità e la latenza per l'acquisizione di foto e la registrazione video. Questo flag può essere specificato prima dell'avvio dell'acquisizione di foto (incluse foto normali, VPS e PS senza fotogrammi di cronologia) e\o registrazione video oppure quando il pin è in stato arrestato. Questo flag può essere usato con il flag PHOTO o con flag QUALITY o POWER insieme al flag VIDEO.
KSCAMERA_EXTENDEDPROP_OPTIMIZATION_POWER Questa funzionalità è facoltativa. Se specificato, il driver ottimizza il consumo di energia per l'acquisizione di foto e la registrazione video. Questo flag può essere specificato prima dell'acquisizione di foto (inclusa la foto normale, VPS e PS senza cronologia) e/o la registrazione video viene avviata o quando il pin si trova nello stato arrestato. Questo flag può essere usato con il flag QUALITY o LATENCY, insieme al flag VIDEO.

La tabella seguente contiene le descrizioni e i requisiti per i campi struttura KSCAMERA_EXTENDEDPROP_HEADER quando si usa il controllo .

Membro Valore
Versione 1
PinId KSCAMERA_EXTENDEDPROP_FILTERSCOPE (0xFFFFFFFF)
Dimensione sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VALUE)
Risultato Indica i risultati dell'errore dell'ultima operazione SET. Se non è stata eseguita alcuna operazione SET, deve essere 0.
Funzionalità Deve essere un OR bit per bit dei flag supportati KSCAMERA_EXTENDEDPROP_OPTIMIZATION_* come definito in precedenza.
Flags Si tratta di un campo di lettura/scrittura. Può trattarsi di qualsiasi combinazione valida dei flag supportati KSCAMERA_EXTENDEDPROP_OPTIMIZATION_* definiti in precedenza.

Commenti

Quando si usano hint di ottimizzazione, tenere presenti gli elementi seguenti:

  • QUALITY/LATENCY/POWER e PHOTO/VIDEO sono due set di hint indipendenti. Possono essere specificati insieme contemporaneamente o in modo indipendente in un momento diverso. L'impostazione di QUALITY/LATENCY/POWER non sovrascrive PHOTO/VIDEO e viceversa. Se specificato in momenti diversi, il driver deve restituire le impostazioni correnti di entrambi i set di hint in una chiamata GET.

  • Per QUALITY/LATENCY/POWER, quando vengono impostati hint, il driver deve ottimizzare entro i relativi vincoli. Se non è disponibile alcuna ottimizzazione, il driver deve ignorare gli hint.

  • Quando vengono specificati due hint contemporaneamente per il caso d'uso del video, l'ottimizzazione di ogni hint può essere minore di quando viene specificato un solo hint. Più in particolare:

    • La latenza ha la precedenza su QUALITY o POWER quando viene specificato anche QUALITY o POWER. In questi casi, la qualità può essere minore di quando viene specificata solo QUALITY e il consumo di energia può essere superiore a quando viene specificato solo POWER.

    • Quando vengono specificati sia QUALITY che POWER, la qualità può essere minore di quando viene specificato solo QUALITY e il consumo di energia può essere maggiore rispetto a quando viene specificato solo POWER.

  • Un hint di ottimizzazione viene usato solo come hint per il driver per facilitare i compromessi di elaborazione in 3A, elaborazione ISP, selezione del sensore e così via, entro i vincoli degli scenari di acquisizione specificati dall'applicazione. È importante che lo sviluppatore di app selezioni e configuri i controlli e le API più adatti per uno scenario di acquisizione specifico per ottenere risultati ottimali. In caso contrario, i soli hint di ottimizzazione possono avere un effetto diminuito. Ad esempio, per l'acquisizione di foto di alta qualità, è consigliabile usare VPS o LowLagPhoto/TakePhoto invece di PS in determinate piattaforme IHV per usare l'hint QUALITY. Analogamente, la stabilizzazione video deve essere disabilitata se si desidera una latenza o un consumo energetico ancora più basso.

  • Gli hint di ottimizzazione devono essere ignorati se ricevuti al momento/stato diversi da quelli specificati in ogni flag di funzionalità.

Quando il controllo di stabilizzazione video è abilitato anche sul driver (ON o AUTO):

  • Il driver può applicare la stabilizzazione video aggressiva più bassa che include un algoritmo di stabilizzazione video a bassa latenza e/o bassa potenza per ridurre la latenza di elaborazione e/o il consumo di energia se è impostato l'hint LATENCY e/o POWER. Quando la stabilizzazione video è impostata su AUTO, il driver può disattivare la stabilizzazione video per ridurre ulteriormente la latenza e/o il consumo di energia.

  • Il driver può applicare la stabilizzazione video più aggressiva per migliorare la qualità del video se è impostato l'hint QUALITY.

Requisiti

Intestazione: Ksmedia.h (include Ksmedia.h)