This workgroup discussed and documented some of the key elements of an Open DSP (Digital Signal Processor) solution for audio. This document outlines some of the primary elements that the workgroup felt was key to having a successful Open Audio DSP architecture. This could be viewed as the preliminary Marketing Requirements Document for an Open DSP product. The problem that we are solving is that it’s difficult or impossible for parties external to specific products, to develop and release IP that can take advantage of integrated or external audio DSPs.
- Audio IP developers can’t currently access digital signal processing capabilities on the various platforms. Open DSP enables this access.
- Enables audio IP developers to improve latency and power by taking advantage of the audio DSP when available.
- Abstracts DSP vendors from developers; DSP suppliers/products don’t need to know what IP developers are doing and vice-versa.
- Spurs innovation and differentiation within the audio eco-system.
- Encourages investment in the development community.
- Improves time to market and improves the ability to scale.
- Larger OEMs
- Research departments in established companies
- Pro-audio community
- Analog codec mfg
- University Researchers
- ISVs (Independent Software Vendors)
- Transducer vendors
- System integrators
Refer to last year’s BBQ report: When is Hardware Offloading preferable now and in the future.
When developers code their algorithms, how do they comprehend differences between DSP power, latency, precision, data types, memory, MIPs, etc.
Difficulties & Opportunities: Need some common development language that abstracts the platform level implementation details; Abstractions would be used when DSP IPs are integrated addressing elements like memory/MIPS exhaustion, latencies, data types, and coexistence with other DSP modules. Team recommendation is to consider these elements when the debug, simulation, and profiling tools are engineered. Along with integration tools for final run-time environment.
The goal for a cross platform meta-language is to write DSP based SW & IP once and deploy across many different DSP products/types. This would require a skilled team of computer scientists who know DSPs to either adapt an existing meta-language, or create a new language suited to this task.
The team researched a couple of Meta-language options.
- OSP (Open Sensor Platform) is to have a generic reusable framework to marshal all of the sensor data between the sensor drivers, sensor processing on a sensor hub, sensor processing on the AP and the interface to the Android framework. It could extrapolate that it could be extended to also shovel audio data along these paths as well, but audio has much different data flow characteristics. Also, since audio transport is one of the key facilities that a cell phone is built around, it’s been well understood and well abstracted for quite a while.
- Google does something similar in their Portable Native Client (PNaCl) for Chrome:
- An additional “meta language” approach regarding SIMD:
This team recommends that a future work group or team solve this problem / define this language.
This team also thinks there are a few companies that would be motivated to help develop and deploy this new language like: Google, Intel, Microsoft, DARPA, and defense contractors.
Needs more definition:
- How do we handle non-direct audio related functions that could be available in the audio DSP? Like sensors? Could we also abstract elements like presence detect, HRTF, movement, etc…
- Hardware platforms for development
- Tech support system
- Implementation examples
- Developer friendly environment
- Legal framework
- Robust execution framework (e.g. plug-ins)
- Protection and authentication
- Resource management
- Integration methodology
- Library code
- Parameter management infrastructure – optional
A set of HW development boards needs to be made available for each of the major development targets. Needs to also have appropriate support material for the HW. Other requirements include:
- Cost effective: needs to be cheap enough for the developer community to easily afford, but expensive enough to weed out non-serious participants.
- HW Interfaces:
- Interface should be supported to handle debugging with sufficient bandwidth for streaming audio
- Digital and analog audio interfaces
- Should have expansion slots for addition of other devices using either universal standard connector or connectors/interface standardized by designated development team.
- BT capability is preferred, although might be difficult for some devices.
- Sales Channel: Know your sales channel where the HW platform is sold or distributed. This will be defined by audio DSP implementation owners (e.g. Intel releases development boards, you need to go to Intel for access).
How do you get two pieces of IP to play nice with each other?
- Framework’s purpose is to isolate signal processing elements from the underlying HW and to connect signal processing elements to each other in a standard way.
- In addition to supporting the standard signal processing modules or sockets, the environment also needs to supply:
- Memory management
- Process management
- Inter process communication
- I/O of audio streams
- Parameter interface
Should include robust methods to load/insert processing modules (under development) into the audio chain. Compile, link, load, and debug is an intuitive process.
- Target is an open source processing execution framework – Possibly adapt OSP.
- Recommend a plug-in type environment to make the integration transparent to the application/IP developers.
How do we create a friendly and easy way for developers to be productive with this SDK and development environment? We should have as many of the following list as possible to facilitate “developer friendly” environment.
- A GUI to utilize common signal processing elements
- A GUI for configuring the tools
- Modern code writing and support editor
- Clean SDK installer
- Reduced legal burdens in overall SDK product.
- Audio specific debugging tools
- Real-time tuning and debugging
- Robust, real-time graphical profiling
- Interface to automated testing and code management tools
- HW platform Aware – knows specific relevant and required information about the target implementation platform.
- Version independence between HW and SW. The SW development tools are backward compatible.
- Interface to MATLAB / Simulink
Other items that are important to mention (but team ran out of time to discuss). Can be follow-on discussion or part of a larger effort that continues after this event.
- What differentiates Open DSP environments from each other?
- Can there be multiple Open DSP environments coexisting?