Condividi tramite


Considerazioni sulle MFP driver nelle fotocamere multi-pin (app per dispositivi UWP)

Windows 8.1 offre IHV e OEM di sistema la possibilità di creare plug-in di elaborazione video sotto forma di media Foundation Transform (MFT), noto come driver della fotocamera MFT. Dopo l'installazione, questi driver MFT possono essere usati dalle app per dispositivi UWP per abilitare effetti video speciali. Alcune fotocamere forniscono pin separati per l'anteprima, l'acquisizione e le ancora. Queste fotocamere a più pin rappresentano sfide uniche per gli sviluppatori. Questo argomento illustra alcuni aspetti da considerare quando si sviluppa un driver della fotocamera MFT su una fotocamera a più pin. Per altre info sulla creazione di un driver MFT, vedi Creazione di un driver della fotocamera MFT.

Introduzione

Il driver MFT viene anche definito MFT0 per indicare che è il primo MFT a operare nel lettore di origine. Un'istanza separata di MFT0 viene collegata a ogni pin nell'origine di acquisizione. Per alcuni OEM di sistema, il driver di acquisizione AVStream deve supportare un pin di anteprima, un pin di acquisizione e un pin ancora. Ciò significa che potrebbero essere presenti tre istanze di MFT0. Questo diagramma mostra questa architettura, con tre copie del plug-in IHV MFT, una per ogni flusso.

capture extension plug-in model in mf.

Gli scenari tipici per MFT0 possono presentare problemi. Due funzioni comuni per MFT0 sono:

  • Analisi del flusso video per fornire feedback alla fotocamera per migliorare l'acquisizione (ad esempio lo stato attivo automatico basato su host e l'esposizione automatica)

  • Aggiunta di effetti video

Webcam con un solo pin

Storicamente, le fotocamere sono state esposte a Windows come singolo pin di acquisizione. Questo diagramma rappresenta il funzionamento di una webcam a un pin:

one-pin webcam.

In questo caso, sia il controllo della fotocamera che gli effetti video funzionano come progettati perché l'anteprima e ancora sono tee'd dal pin di acquisizione dopo il controllo della fotocamera e gli effetti video vengono applicati. Il risultato è che il file salvato o il compagno di chat dell'utente visualizzerà gli stessi effetti video visualizzati dall'utente in anteprima e che è presente una sola istanza della funzionalità di controllo della fotocamera. Se è presente un'app per dispositivi UWP associata, l'app è connessa a MFT0 sul pin di acquisizione, quindi MFT0 ottiene i messaggi di controllo dall'app (ovvero l'utente).

Webcam a tre puntini

Una fotocamera a tre pin può avere fino a tre istanze di MFT0, a seconda delle esigenze dell'applicazione. Questo diagramma rappresenta il funzionamento di una fotocamera a tre pin:

three-pin webcam.

Questa situazione presenta diverse sfide. In primo luogo, nel caso di una soluzione di esposizione automatica basata su host, che richiede il controllo diretto delle impostazioni del sensore della fotocamera e dell'ISP, tre MFT0 possono tentare di controllare la fotocamera contemporaneamente. In questo modo il sistema di controllo viene interrotto.

In secondo luogo, ci sono potenzialmente tre istanze di effetti video. Oltre a sostenere il costo di tre volte i calcoli, le tre istanze di MFT0 devono ora comunicare in modo che ogni fotogramma video abbia sempre lo stesso effetto nello stesso stato. In caso contrario, ciò che l'utente vede non sarà quello salvato o condiviso.

Inoltre, esistono due fattori finali di compostazione:

  • Ogni istanza di MFT0 può essere creata o arrestata in qualsiasi momento

  • L'app per dispositivi UWP è connessa a un'istanza di MFT0

Video compresso

Una webcam o un OEM di sistema può scegliere di comprimere il video prima che venga presentato sul pin di acquisizione (ovvero sulla webcam stessa). L'offload della compressione in una webcam consente ai PC con potenza inferiore di salvare e condividere video HD. Questo flusso video compresso in genere non può essere analizzato per supportare il controllo della fotocamera, né può essere applicato effetti video. Ciò presenta la sfida di fare in modo che tutte le istanze di MFT0 (e l'app per dispositivi di Microsoft Store, se presente) sappiano che nessun effetto verrà applicato al flusso di acquisizione. Questo diagramma rappresenta il video compresso:

compressed video.

Se un utente applica un effetto video al flusso di anteprima, non può essere applicato al flusso di acquisizione o al pin. Pertanto, l'utente vede un effetto video che non viene applicato al video salvato o trasmesso in streaming. Se il flusso di anteprima viene interrotto, l'app per dispositivi di Microsoft Store proverà a connettersi al flusso di acquisizione. Quando un utente esegue lo streaming di video compressi, questo non consente molte funzionalità.

Comunicazione tra istanze MFT0

Se le tre istanze di MFT0 possono comunicare tra loro, è possibile risolvere la maggior parte dei problemi. Il modo in cui queste istanze individuano l'uno dall'altro spetta all'IHV. Una volta che tutti i MFT0 possono comunicare, l'istanza di MFT0 connessa all'app per dispositivi di Microsoft Store può indicare ad altre istanze l'effetto applicato e il relativo stato corrente. Inoltre, le tre istanze possono determinare quale istanza applica il controllo della fotocamera. Infine, il pin di anteprima può determinare se il pin di acquisizione è in streaming video codificato. Il pin di anteprima può quindi disabilitare gli effetti video.

Anche se la comunicazione tra istanze di MFT0 risolve i problemi principali dell'esperienza utente, è necessario che tre istanze di effetti video siano ancora in esecuzione contemporaneamente. Alcuni effetti video possono usare la maggior parte delle risorse della CPU disponibili, in particolare quando il video a schermo intero viene visualizzato in anteprima e acquisito contemporaneamente. Si tratta di problemi gravi. Per motivi di prestazioni, ogni ISV deve considerare l'elaborazione che può essere eseguita una sola volta, ad esempio il rilevamento dei volti e la condivisione con tutte le istanze di MFT0.