Windows 8 & Audio Offloading: Exposing Hardware-Offloaded Audio Processing in Windows

Discussion in 'Soundcards, Speakers HiFI & File formats' started by xtremegamer, Sep 19, 2011.

  1. xtremegamer

    xtremegamer Guest

    Hi Guys ...

    Does Windows 8 support Audio hardware Acceleration :D

    ::This provides information about audio offloading for Windows® operating systems. It provides guidelines for hardware manufacturers and driver developers to build hardware and drivers with hardware-offloaded audio processing capabilities. It assumes that the reader is familiar with kernel streaming (KS) for Windows audio and basic development of Port Class (PortCls) WaveRT-based audio drivers.

    This information applies to the following operating systems:
    Windows Developer Preview


    Introduction:

    Audio processing can be computationally intensive. In many scenarios, it may be beneficial to allow audio processing (including mixing, decoding, and applying effects) to be performed outside of the main CPU.

    The current Windows audio stack does not provide any support for hardware or drivers that implement such functionality. However, the method described in this paper is a proposal for one such way that the Windows audio stack might enable the scenarios provided by offloaded audio processing.

    This paper also describes the audio driver behavior and functionality that is necessary to plug into such a framework.

    Framework Overview
    Windows 7 does not support any form of hardware audio processing. Windows 7 instead provides a software audio engine with opportunities for third parties to plug in software decoders, encoders, and generic audio effects at specific points in the pipeline. The software architecture supported is as shown here.

    [​IMG]

    Figure 1: Windows 7 Software Audio Architecture

    As seen in Figure 1, audio streams are sent from WASAPI (possibly through a higher-level API such as DSound, WAVE, or Microsoft Media Foundation) and local effects, volume control, and decoding are performed on a per-stream basis before being mixed and sent to the speakers.

    In order to provide support for offloaded audio processing, we are proposing a modification to the audio architecture to support a combined hardware/software architecture, as shown in Figure 2.

    [​IMG]

    Figure 2: Proposed Software/Hardware Audio Offloading Architecture

    In Figure 2, the audio hardware supports offloading of up to n (three shown) audio streams in hardware plus an additional special-purpose ("host process") stream. The n streams bypass the software audio engine and proceed directly to the hardware. If, however, more audio streams are opened than the n supported by the hardware, the additional audio streams will go through the software audio engine, be mixed, and the resulting stream will proceed to the hardware via the host process stream.


    As seen in Figure 2, the proposed changes to the Windows audio stack would support hardware implementations that mimic the topology of the software audio engine. The audio driver is responsible for exposing the underlying capabilities of the hardware in the following topology.

    [​IMG]

    Figure 3: Hardware Topology Necessary for Offloading

    In the preceding diagram, the hardware topology must accept a single host process stream input and multiple offload streams. Each offloaded hardware solution must contain a hardware mixer and the ability to accept hardware-offloaded streams directly from the application (for example, not passed through the audio engine) to be processed in hardware. The hardware processor must also accept a host process stream, intended to be the final output from the software mixer of all the streams handled in software. The software audio engine will be instantiated on this host process stream in order to provide a software local effects (LFX)/decode/volume solution for all streams that cannot be offloaded in hardware.

    In order to maintain parity with the Windows software audio engine and existing WASAPI interface, it is necessary for the hardware audio engine to provide the final audio output stream back to the audio stack. This is especially critical for applications and scenarios that rely on Acoustic Echo Cancellation, which requires knowledge of the final output stream to cancel echoes and prevent feedback. In order to do this, the audio driver is responsible for exposing a loopback pin. This pin will return the audio data from the final audio engine output if it is PCM; otherwise, the post-mixing (but pre-encoding) result will be returned.

    User Interface Considerations
    Because control of the underlying hardware capabilities must be done by the hardware-knowledgeable driver, it is necessary for the independent hardware vendor (IHV) driver provider to also provide any user interface necessary for controlling these capabilities.

    However, the existing extensibility points around the audio processing object (APO) UI (turning on/off) can still be used; the settings configured here should control both the software and hardware capabilities.


    Application Impact
    The functionality described in this paper can be used by applications that use WASAPI, Media Foundation, or any APIs/frameworks that build on top of Media Foundation (for example, the Media Engine, which is used to render content from applications by using the HTML5 <audio> tag).

    A WASAPI application will have to explicitly opt in to use offloading functionality. Media Foundation applications (and applications that employ frameworks that use Media Foundation) will automatically take advantage of offloading functionality when it is available.

    Driver Implementation Details
    Overview
    The audio drivers for hardware solutions that support this offloading design will need to expose their capabilities in a specific manner such that the Windows user-mode audio stack can discover and take advantage of these capabilities. In order to support offloaded audio processing with Windows, a PortCls WaveRT driver is necessary. As described in detail later in this document, the audio endpoint builder will parse the topologies of audio KS filters in order to determine the characteristics of the endpoint that will be exposed.

    Driver KS Topology
    In order to express the hardware (HW) audio engine capability, an audio driver will need to expose its HW audio engine in a newly defined Audio Engine KS node (KSNODETYPE_AUDIO_ENGINE), which is located inside a KS filter.

    Figure 4 shows the topology of the PortCls miniport driver.

    [​IMG]

    Figure 4: Portcls Miniport Driver Topology


    The HW audio engine must be expressed as a new node included in the wave KS filter. There will also need to be a new wave data sink pin factory exposed on the wave filter for offloaded streams. This pin factory will be required to be connected directly to the audio engine node.

    In order to supply a reference stream of the processed audio data, a reference wave data source pin factory ("loopback pin") will also need to be connected to the audio engine node.

    At the filter level, aside from the new node and pin factory, there will be no other changes required. It will still be required to support the same categories (for example, KSCATEGORY_AUDIO). Further changes are required on the new node and pin factory.


    Source Microsoft Updated September 13 2011...
     
  2. xtremegamer

    xtremegamer Guest

    Hi....

    Does Windows 8 support Hardware Acceleration any idea , i have read the whole content couldn't understand fully lol......:D
     
  3. xtremegamer

    xtremegamer Guest

    bump........
     
  4. DekerBSB

    DekerBSB Guest

    Messages:
    4
    Likes Received:
    0
    GPU:
    AMD
    Thanks for the link...great news indeed...
    Maybe we can expect a "full glory return" of hardware acceleration in Windows...and new sound cards with EAX like features...
     

  5. Anarion

    Anarion Ancient Guru

    Messages:
    13,599
    Likes Received:
    386
    GPU:
    GeForce RTX 3060 Ti
    It would save power for tablets. I do hope that this is going to happen.
     
  6. AcceleratorX

    AcceleratorX Master Guru

    Messages:
    308
    Likes Received:
    0
    GPU:
    GTX 560 Ti OC
    Nope, the proposed hardware offload engine has exactly the same topology as the software engine, which means that the actual audio processing functions will likely be the same. It is likely this will allow for something like QSound or THX, CMSS or EAX to work (faster and much better) when applied through the driver control panel, but if there are going to be extensions for reverb into WASAPI (or Xaudio2, via audio processing objects), then it will have to work with both the software and hardware implementation. Thus, the only potential benefit of this is power saving for tablets as previously mentioned, and performance benefits which are questionable given today's very capable multi core CPUs.

    We may, however, benefit since it is possible any new reverb techniques will likely work on integrated audio as well as dedicated cards in accelerated mode.
     
    Last edited: Nov 21, 2011
  7. pato

    pato Member Guru

    Messages:
    185
    Likes Received:
    7
    GPU:
    MSI 3060TI
    Was there any news in this in the last months?
    I wonder if creative will launch new soundcards thanks to this.
     
  8. sykozis

    sykozis Ancient Guru

    Messages:
    22,492
    Likes Received:
    1,537
    GPU:
    Asus RX6700XT
    Creative launched the SoundCore3D cards end of last year and the Sound BlasterAxxe recently.....don't expect any new sound cards for at least another year or more.
     
  9. jmacguire

    jmacguire Guest

    Messages:
    6
    Likes Received:
    0
    GPU:
    ATI Radeon 5850 1 gig
    Creative is launching its Sound Blaster Z series of sound cards this month. Sorry to disappoint you.
     
  10. Anarion

    Anarion Ancient Guru

    Messages:
    13,599
    Likes Received:
    386
    GPU:
    GeForce RTX 3060 Ti
    Nice thread necro, especially when you don't have anything nice to add.
     

  11. sykozis

    sykozis Ancient Guru

    Messages:
    22,492
    Likes Received:
    1,537
    GPU:
    Asus RX6700XT
    Sound Blaster Z is using the same SoundCore3D audio processor as the Recon3D cards. So, nothing disappointing for me....just for those looking for something better.
     

Share This Page