Effetti APO offloaded hardware
In Windows 10 è supportata l'offload degli oggetti di elaborazione audio (APO) versione 1511 e successive. Oltre ai possibili miglioramenti delle prestazioni, è possibile risparmiare energia significativa quando si usano LE API di offload hardware.
Durante la riproduzione dell'offload hardware è possibile caricare due tipi di API.
- Offload stream Effects (OSFX)
- Effetti modalità offload (OMFX)
Panoramica degli effetti APO caricati dall'hardware
Hardware Offloaded Audio Processing and Hardware Offloaded APOs
In Windows 8, il motore audio è stato riprogettato per lavorare con flussi audio che sono stati scaricati in un dispositivo hardware separato, ma connesso al sistema audio principale del computer. Questa operazione viene definita offload hardware. Per altre informazioni, vedere Hardware-Offloaded Audio Processing.For more information, see Hardware-Offloaded Audio Processing.
La funzionalità di offload hardware è destinata principalmente a scenari a basso consumo con dimensioni del buffer maggiori. Ad esempio, durante la riproduzione LPA (Low Power Audio) nei sistemi in grado di supportare, le dimensioni del buffer audio o la periodicità possono essere impostate su 1 secondo in modo che la CPU non venga riattivata frequentemente per elaborare buffer di piccole dimensioni (ad esempio, ogni 10 millisecondi).
L'implementazione di API offloaded hardware insieme all'elaborazione audio offloaded hardware offre la possibilità di ottimizzare l'efficienza energetica.
Il diagramma seguente illustra l'architettura degli oggetti di elaborazione audio. Il lato destro del diagramma mostra un'applicazione che comunica con gli effetti OSFX e OMFX scaricati dall'hardware.
Implementazione di effetti APO offloaded hardware
Un hardware offloaded APO deve seguire gli stessi requisiti di base e i principi di progettazione descritti in Architettura degli oggetti elaborazione audio e Implementazione di oggetti di elaborazione audio.
Linee guida per l'implementazione di formati audio supportati
Per le API offloaded hardware, è necessario considerare alcuni aspetti aggiuntivi per i formati audio supportati.
Ogni apo implementa il metodo IAudioProcessingObject::IsInputFormatSupported che viene usato durante la compilazione del grafico audio per determinare il formato audio di output e se è necessaria una conversione di formato.
HRESULT IsInputFormatSupported(
[in, optional] IAudioMediaType *pOppositeFormat,
[in, optional] IAudioMediaType *pRequestedInputFormat,
[out, optional] IAudioMediaType **ppSupportedInputFormat
);
L'endpoint di rendering di offload può supportare diversi formati, tra cui il formato predefinito supportato dal rendering dei pin host/di sistema. Un'apo di offload deve supportare tutti questi formati in modo che i flussi di rendering (con i formati supportati) non debbano eseguire alcuna conversione di formato aggiuntiva.
Un offload SFX può implementare conversioni di formato e accettare una gamma più ampia di formati. Ad esempio, se Offload SFX fornisce le virtualizzazione delle cuffie (ad esempio, convertire l'audio del canale 5.1 in stereo), deve restituire S_OK per la coppia di input/output appropriata in questo metodo.
Un offload SFX deve esaminare i formati supportati dal pin di offload e supportare/estendere le funzionalità insieme.
L'offload MFX non può modificare il formato del flusso di input, ma deve comunque supportare la varietà di formati offerti dall'endpoint di offload ed eliminare qualsiasi conversione di formato non necessaria.
Durante il rendering nel pin di offload, solo un flusso è attivo su tale pin e pertanto non esiste alcuna combinazione di flussi. L'elaborazione dell'audio a livello di flusso e modalità non è quindi necessaria. Pertanto, gli effetti audio potrebbero non essere necessari come effetto di flusso e modalità. Gli endpoint offloaded supporteranno più flussi e, a seconda dell'architettura di elaborazione per un sistema, l'elaborazione offload potrebbe dover essere fattorizzata in SFX/MFX.
Voci di file INF
Implementare le voci di file INF seguenti per definire gli effetti che verranno caricati durante la riproduzione dell'offload. La chiave della proprietà del file INF indica al generatore di endpoint audio di impostare i CLSID per le API offloaded nell'archivio delle proprietà degli effetti. Queste informazioni vengono usate per creare il grafico audio che verrà usato per informare le app di livello superiore quali effetti sono presenti.
Chiave proprietà | GUID |
---|---|
PKEY_FX_Offload_StreamEffectClsid | {D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},11 |
PKEY_FX_Offload_ModeEffectClsid | {D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},12 |
PKEY_SFX_Offload_ProcessingModes_Supported_For_Streaming | {D3993A3F-99C2-4402-B5EC-A92A0367664B},11 |
PKEY_MFX_Offload_ProcessingModes_Supported_For_Streaming | {D3993A3F-99C2-4402-B5EC-A92A0367664B},12 |
Argomenti correlati
Implementazione di oggetti di elaborazione audio
Oggetti di elaborazione audio Windows