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)