SlideShare a Scribd company logo
1 of 23
Download to read offline
1
Enhance Qualcomm®
Snapdragon™ audio using
Android Audio APIs
Harikishan Desineni,
Director of Engineering
Qualcomm Innovation Center, Inc.
Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.
3
Agenda
Session
overview
1
How Qualcomm
Technologies
incorporated the
digital signal
processor (DSP)
2
Snapdragon Audio
SDK
3
Open DSP program
4
Demo
5
4
Includes the following sound effects:
− Equalizer (EQ) – Adjusts the sound level of certain frequency ranges by use of audio
filters to improve the quality of overall perceived sounds
− Virtualizer – Virtualizes audio channels to compensate for the mismatch between the
loudspeaker setup used when producing the audio, and the audio output device used
when the audio is played back by the end user
− Reverb – Simulates the reverberation that results from reflections from surrounding
walls and objects in an environment to make the sound more live and real
− BassBoost – Dynamically boosts low-frequency content of an audio signal to achieve
better listening experience on bass for a headset device
How Qualcomm® Snapdragon™ Audio+ uses the DSP
Qualcomm Snapdragon Audio+ is a product of Qualcomm Technologies, Inc.
5
Media playback block diagram
Surface Flinger Audio Flinger
MDP/MDDI
Media Player
Media Player Service
StageFright
User space
Java
User space
Native
Kernel
space
DSP
Video OMX
Component
Audio OMX
Component
Video HW
PCM-audio
Audio HAL
Audio HW
Media Server
Audio DriversDisplay Drivers Video Drivers
6
Audio framework: effects offloaded to DSP
Media Player
Media Player
Service
Awesome
Player
Audio Track AudioFlinger
Qualcomm®
Hexagon™
AudioEffects
Software
AudioEffect
BassBosst
Virtualizer
ReverB
X
Qualcomm Hexagon is a product of Qualcomm Technologies, Inc.
7
Snapdragon Audio SDK
8
Snapdragon Audio SDK
Fluence™ Pro EC NS detection
Snapdragon SDK for Android: Device Info
The Device Info feature set is designed to allow an application to detect if the device it is running on has a
Snapdragon processor. This insight lets you make informed decisions about how to take full advantage of
features enabled by Snapdragon processors.
Using Device Info is designed to let you tap into the following hardware features to help improve the
performance of your applications:
− Is Snapdragon
This feature is designed to allow the application to detect at runtime if the device has a Snapdragon processor
− Echo Cancellation/Noise Suppression
Echo Cancellation/Noise Suppression is designed to foster better audio communication quality at lower power by
allowing full duplex mode during VOIP calls. These features are specifically tuned to each device, and use technology
available on normal mobile voice calls so you can offload CPU/software-based echo cancellation and noise suppression.
Fluence Pro is a product of Qualcomm Technologies, Inc.
9
Snapdragon Audio SDK
com.qualcomm.snapdragon.sdk.deviceinfo
Class Description
DeviceInfo The DeviceInfo API provides a mechanism to query a device about the presence of certain functionalities.
Class Description
DeviceInfo.Features The list of features that can be detected with the function isFeatureSupported(Feature, Context)
Sample code is subject to SDK license agreement. Source: http://developer.qualcomm.com
10
Snapdragon Audio SDK
public static final DeviceInfo.Features FEATURE_FLUENCE
Noise Cancellation Technology
− If isFeatureSupported returns true for this feature, then it can be assumed that echo
cancellation is supported on the voice path.
− If isFeatureSupported returns true for this feature, and the standard Android API
android.media.audiofx.AcousticEchoCanceler.isAvailable() also returns true, then it can
be assumed that echo cancellation is also available on the audio path.
11
Snapdragon Audio SDK
FEATURE_SURROUND_SOUND_RECORDING
public static final DeviceInfo.Features FEATURE_SURROUND_SOUND_RECORDINGSurround
Sound Recording is designed to allow for 5.1 surround sound input using existing
microphones on the device
12
OpenDSP program
13
Audio Modules – Common Interface
Common interface for audio
modules that are defined to ease
integration with the Elite
Framework
Audio Postprocessor Interface
(APPI) for audio processing
algorithms
Common Audio Processor Interface
(CAPI) for audio codec modules
Processing
Algorithm
Wrapper with
common interface (APPI)
Codec
Decoder / Encoder
Wrapper with
common interface (CAPI)
Note: The terms algorithm, module, and library are used interchangeably in this presentation.
14
Audio Modules – Static and Dynamic
Two types of modules, based on loading:
− Static modules (*.lib)
− Linked to the aDSP image at compile time
− Symbol are resolved at compile time
− aDSP image must be recompiled when a module changes
− Dynamic modules (*.so)
− Loaded at run-time into aDSP heap memory
− Symbols are resolved when the module is loaded into memory
− aDSP image does not need to be recompiled when a
module changes
Each module is identified by unique global module ID
Audio static modules are added to the AMDB at boot time
Audio dynamic modules are added to the AMDB at run time
APPI mod-n (*.so)
CAPI mod-3 (*.so)
CAPI mod-2 (*.lib)
APPI mod-1 (*.lib)
15
Per Object PostProcessing (POPP)
Per Object PreProcessing (POPreP )
Processing chain per audio stream
Default POPP topologies:
− Playback session
− Record session
DSP audio
mixer
Downmix
if needed
Resampler Audio EncoderVolume
DSP audio
mixer
Volume Audio DecoderResampler
POPP Topologies
16
Common Object PostProcessing (COPP)
Common Object PreProcessing (COPreP)
Processing chain per device
Default COPP topologies:
− Playback session
− Record session
AFE
Audio
pregain
AFE CodecRX
Gain
DSP Audio
Mixer
Audio
Volume
DSP Audio
Mixer
COPP Topologies
17
Custom Audio Topology – Static and Dynamic
Two types of audio topologies:
− Static topologies
− Created at compile time
− aDSP image must be recompiled if the topology changes
− Dynamic topology
− Created at run time
− aDSP image does not need to be recompiled if the topology changes
− APIs are defined for adding custom dynamic topologies from the applications processor:
Custom topology is designed to use any module defined in the AMDB by using Module IDs
Customized topology with an OEM algorithm
ASM_CMD_ADD_TOPOLOGIES // for POPP and POPREP
ADM_CMD_ADD_TOPOLOGIES_V5 // for COPP and COPREP
Audio Mixer Volume
OEM
Algorithm
Audio DecoderResampler
18
Audio Dynamic Topology
How are dynamic topologies added at run time?
APR
ADM
Topo DB
ASM_CMD_ADD_TOPOLOGIES T2 (-M1-M4-), T3 (-M1-M2)
topo_db_add_topologies()
T1
T2
T3
aDSP
AMDB
M1
M2
M3
M4
New audio sessions can be created using T2 and T3
topologies after adding them to the topology databaseClient Processor
ASM
19
ISV Module1 ISV Module2
Application
HAL
RTAC Kernel Driver
APR Handler
DSP
Payload
ASM_CMD_SET_PP_PARAMS/
AMD_CMD_SET_PP_PARAMS
RTAC Userspace module
Send_rtac()
ACDB Loader
Acdb_store()
Acdb_send()
Acdb_get()
acdb file
Get/setParameter(key”,value)
Software Architecture – Block Diagram
20
Software Architecture – Android APIs
Existing set parameter android API extended to have new key value pairs
Setparameter() with persistence
− set_parameter(key=”ISV_PERSIST_CFG”, value=” DataBinary, *”);
− Data Binary – Entire calibration data binary that is stored in calibration database. Even if user changes single
parameter through UI, the app is responsible for packaging the entire data binary for persistence
Setparameter() without persistence
− set_parameter(key=”ISV_NOPERSIST_CFG”, value, “List_MID_PID, *”);
− List_MID_PID – List of dynamically modified calibration to be applied on ISV modules in ADSP. This could be an
array of Module ID, Parameter ID and data, or could be only one set of ModuleId, Parameter ID and values. Here, the
data is not persisted in audio calibration database. The app is responsible for packaging the modified modules and
parameters.
21
Demo
22
developer.qualcomm.com
Augmented
reality
Context
awareness
Peer
to peer
Wireless
health
Graphics
& gaming
Computer
vision
Android
applications
App development SDKs & tools
Marketing opportunities
Case Studies & Tutorials
News & Information
Hardware development platforms
Forums & technical support
Tools & resources to help developers build, integrate, and optimize
Qualcomm Developer Network
23
For more information on Qualcomm, visit us at:
www.qualcomm.com & www.qualcomm.com/blog
Thank you
FOLLOW US ON:
© 2013-2014 Qualcomm Technologies, Inc. and/or its affiliated companies. All rights reserved.
Qualcomm, Snapdragon, Hexagon and Fluence are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Uplinq is a trademark of Qualcomm Incorporated. All trademarks of
Qualcomm Incorporated are used with permission. Other product and brand names may be trademarks or registered trademarks of their respective owners.
References in this presentation to “Qualcomm” may mean Qualcomm Incorporated, Qualcomm Technologies, Inc., and/or other subsidiaries or business units within the Qualcomm corporate structure, as applicable.
Qualcomm Incorporated includes Qualcomm’s licensing business, QTL, and the vast majority of its patent portfolio. Qualcomm Technologies, Inc., a wholly-owned subsidiary of Qualcomm Incorporated, operates, along with
its subsidiaries, substantially all of Qualcomm’s engineering, research and development functions, and substantially all of its product and services businesses, including its semiconductor business, QCT.

More Related Content

Viewers also liked

Android's Multimedia Framework
Android's Multimedia FrameworkAndroid's Multimedia Framework
Android's Multimedia FrameworkOpersys inc.
 
Android audio system(audio_hardwareinterace)
Android audio system(audio_hardwareinterace)Android audio system(audio_hardwareinterace)
Android audio system(audio_hardwareinterace)fefe7270
 
UplinQ - enhance qualcomm® snapdragon™ audio using android audio ap_is
UplinQ - enhance qualcomm® snapdragon™ audio using android audio ap_isUplinQ - enhance qualcomm® snapdragon™ audio using android audio ap_is
UplinQ - enhance qualcomm® snapdragon™ audio using android audio ap_isSatya Harish
 
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for AndroidApp Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for AndroidQualcomm Developer Network
 
LTE Broadcast/Multicast for Live Events & More
LTE Broadcast/Multicast for Live Events & More LTE Broadcast/Multicast for Live Events & More
LTE Broadcast/Multicast for Live Events & More Qualcomm Developer Network
 
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Qualcomm Developer Network
 
How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption Qualcomm Developer Network
 
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Developer Network
 
Qualcomm SnapDragon 800 Mobile Device
Qualcomm SnapDragon 800 Mobile DeviceQualcomm SnapDragon 800 Mobile Device
Qualcomm SnapDragon 800 Mobile DeviceJJ Wu
 
A slightly deeper dive into Stagefright
A slightly deeper dive into StagefrightA slightly deeper dive into Stagefright
A slightly deeper dive into StagefrightAlexy Joseph
 
A Case Study of Micro-Blogging for Learning at Qualcomm
A Case Study of Micro-Blogging for Learning at QualcommA Case Study of Micro-Blogging for Learning at Qualcomm
A Case Study of Micro-Blogging for Learning at QualcommB.J. Schone
 
Android audio system(audioplicy_service)
Android audio system(audioplicy_service)Android audio system(audioplicy_service)
Android audio system(audioplicy_service)fefe7270
 
Snapdragon processors
Snapdragon processorsSnapdragon processors
Snapdragon processorsDeepak Mathew
 

Viewers also liked (16)

Android's Multimedia Framework
Android's Multimedia FrameworkAndroid's Multimedia Framework
Android's Multimedia Framework
 
Android audio system(audio_hardwareinterace)
Android audio system(audio_hardwareinterace)Android audio system(audio_hardwareinterace)
Android audio system(audio_hardwareinterace)
 
UplinQ - enhance qualcomm® snapdragon™ audio using android audio ap_is
UplinQ - enhance qualcomm® snapdragon™ audio using android audio ap_isUplinQ - enhance qualcomm® snapdragon™ audio using android audio ap_is
UplinQ - enhance qualcomm® snapdragon™ audio using android audio ap_is
 
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for AndroidApp Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
App Optimizations Using Qualcomm Snapdragon LLVM Compiler for Android
 
LTE Broadcast/Multicast for Live Events & More
LTE Broadcast/Multicast for Live Events & More LTE Broadcast/Multicast for Live Events & More
LTE Broadcast/Multicast for Live Events & More
 
效率會議與腦力激盪
效率會議與腦力激盪效率會議與腦力激盪
效率會議與腦力激盪
 
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
 
How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption How to Minimize Your App’s Power Consumption
How to Minimize Your App’s Power Consumption
 
SOC Design Challenges and Practices
SOC Design Challenges and PracticesSOC Design Challenges and Practices
SOC Design Challenges and Practices
 
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
 
Qualcomm SnapDragon 800 Mobile Device
Qualcomm SnapDragon 800 Mobile DeviceQualcomm SnapDragon 800 Mobile Device
Qualcomm SnapDragon 800 Mobile Device
 
A slightly deeper dive into Stagefright
A slightly deeper dive into StagefrightA slightly deeper dive into Stagefright
A slightly deeper dive into Stagefright
 
Snapdragon Processor
Snapdragon ProcessorSnapdragon Processor
Snapdragon Processor
 
A Case Study of Micro-Blogging for Learning at Qualcomm
A Case Study of Micro-Blogging for Learning at QualcommA Case Study of Micro-Blogging for Learning at Qualcomm
A Case Study of Micro-Blogging for Learning at Qualcomm
 
Android audio system(audioplicy_service)
Android audio system(audioplicy_service)Android audio system(audioplicy_service)
Android audio system(audioplicy_service)
 
Snapdragon processors
Snapdragon processorsSnapdragon processors
Snapdragon processors
 

More from Qualcomm Developer Network

How to take advantage of XR over 5G: Understanding XR Viewers
How to take advantage of XR over 5G: Understanding XR ViewersHow to take advantage of XR over 5G: Understanding XR Viewers
How to take advantage of XR over 5G: Understanding XR ViewersQualcomm Developer Network
 
Making an on-device personal assistant a reality
Making an on-device personal assistant a realityMaking an on-device personal assistant a reality
Making an on-device personal assistant a realityQualcomm Developer Network
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 4
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 4Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 4
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 4Qualcomm Developer Network
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Qualcomm Developer Network
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2Qualcomm Developer Network
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1Qualcomm Developer Network
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Developer Network
 
The Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything ConnectivityThe Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything ConnectivityQualcomm Developer Network
 
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition Qualcomm Developer Network
 
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences Qualcomm Developer Network
 
Wireless Audio: A Killer App for the Internet of Everything
Wireless Audio: A Killer App for the Internet of Everything Wireless Audio: A Killer App for the Internet of Everything
Wireless Audio: A Killer App for the Internet of Everything Qualcomm Developer Network
 
Bridging the Physical & Digital Worlds with Gimbal
Bridging the Physical & Digital Worlds with GimbalBridging the Physical & Digital Worlds with Gimbal
Bridging the Physical & Digital Worlds with GimbalQualcomm Developer Network
 
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing CamerasQualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing CamerasQualcomm Developer Network
 

More from Qualcomm Developer Network (20)

How to take advantage of XR over 5G: Understanding XR Viewers
How to take advantage of XR over 5G: Understanding XR ViewersHow to take advantage of XR over 5G: Understanding XR Viewers
How to take advantage of XR over 5G: Understanding XR Viewers
 
Balancing Power & Performance Webinar
Balancing Power & Performance WebinarBalancing Power & Performance Webinar
Balancing Power & Performance Webinar
 
What consumers want in their next XR device
What consumers want in their next XR deviceWhat consumers want in their next XR device
What consumers want in their next XR device
 
More Immersive XR through Split-Rendering
More Immersive XR through Split-RenderingMore Immersive XR through Split-Rendering
More Immersive XR through Split-Rendering
 
Making an on-device personal assistant a reality
Making an on-device personal assistant a realityMaking an on-device personal assistant a reality
Making an on-device personal assistant a reality
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 4
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 4Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 4
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 4
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 2
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
 
Bring Out the Best in Embedded Computing
Bring Out the Best in Embedded ComputingBring Out the Best in Embedded Computing
Bring Out the Best in Embedded Computing
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Snapdragon Processors: A Super Gaming Platform
 
The Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything ConnectivityThe Fundamentals of Internet of Everything Connectivity
The Fundamentals of Internet of Everything Connectivity
 
The Future Mobile Security
The Future Mobile Security The Future Mobile Security
The Future Mobile Security
 
Get Educated on Education Apps
Get Educated on Education Apps Get Educated on Education Apps
Get Educated on Education Apps
 
Bringing Mobile Vision to Wearables
Bringing Mobile Vision to Wearables Bringing Mobile Vision to Wearables
Bringing Mobile Vision to Wearables
 
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
 
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
 
Wireless Audio: A Killer App for the Internet of Everything
Wireless Audio: A Killer App for the Internet of Everything Wireless Audio: A Killer App for the Internet of Everything
Wireless Audio: A Killer App for the Internet of Everything
 
Bridging the Physical & Digital Worlds with Gimbal
Bridging the Physical & Digital Worlds with GimbalBridging the Physical & Digital Worlds with Gimbal
Bridging the Physical & Digital Worlds with Gimbal
 
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing CamerasQualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
 

Recently uploaded

Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Recently uploaded (20)

Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Enhance Qualcomm Snapdragon Audio using Native Android Audio APIs

  • 1. 1
  • 2. Enhance Qualcomm® Snapdragon™ audio using Android Audio APIs Harikishan Desineni, Director of Engineering Qualcomm Innovation Center, Inc. Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.
  • 3. 3 Agenda Session overview 1 How Qualcomm Technologies incorporated the digital signal processor (DSP) 2 Snapdragon Audio SDK 3 Open DSP program 4 Demo 5
  • 4. 4 Includes the following sound effects: − Equalizer (EQ) – Adjusts the sound level of certain frequency ranges by use of audio filters to improve the quality of overall perceived sounds − Virtualizer – Virtualizes audio channels to compensate for the mismatch between the loudspeaker setup used when producing the audio, and the audio output device used when the audio is played back by the end user − Reverb – Simulates the reverberation that results from reflections from surrounding walls and objects in an environment to make the sound more live and real − BassBoost – Dynamically boosts low-frequency content of an audio signal to achieve better listening experience on bass for a headset device How Qualcomm® Snapdragon™ Audio+ uses the DSP Qualcomm Snapdragon Audio+ is a product of Qualcomm Technologies, Inc.
  • 5. 5 Media playback block diagram Surface Flinger Audio Flinger MDP/MDDI Media Player Media Player Service StageFright User space Java User space Native Kernel space DSP Video OMX Component Audio OMX Component Video HW PCM-audio Audio HAL Audio HW Media Server Audio DriversDisplay Drivers Video Drivers
  • 6. 6 Audio framework: effects offloaded to DSP Media Player Media Player Service Awesome Player Audio Track AudioFlinger Qualcomm® Hexagon™ AudioEffects Software AudioEffect BassBosst Virtualizer ReverB X Qualcomm Hexagon is a product of Qualcomm Technologies, Inc.
  • 8. 8 Snapdragon Audio SDK Fluence™ Pro EC NS detection Snapdragon SDK for Android: Device Info The Device Info feature set is designed to allow an application to detect if the device it is running on has a Snapdragon processor. This insight lets you make informed decisions about how to take full advantage of features enabled by Snapdragon processors. Using Device Info is designed to let you tap into the following hardware features to help improve the performance of your applications: − Is Snapdragon This feature is designed to allow the application to detect at runtime if the device has a Snapdragon processor − Echo Cancellation/Noise Suppression Echo Cancellation/Noise Suppression is designed to foster better audio communication quality at lower power by allowing full duplex mode during VOIP calls. These features are specifically tuned to each device, and use technology available on normal mobile voice calls so you can offload CPU/software-based echo cancellation and noise suppression. Fluence Pro is a product of Qualcomm Technologies, Inc.
  • 9. 9 Snapdragon Audio SDK com.qualcomm.snapdragon.sdk.deviceinfo Class Description DeviceInfo The DeviceInfo API provides a mechanism to query a device about the presence of certain functionalities. Class Description DeviceInfo.Features The list of features that can be detected with the function isFeatureSupported(Feature, Context) Sample code is subject to SDK license agreement. Source: http://developer.qualcomm.com
  • 10. 10 Snapdragon Audio SDK public static final DeviceInfo.Features FEATURE_FLUENCE Noise Cancellation Technology − If isFeatureSupported returns true for this feature, then it can be assumed that echo cancellation is supported on the voice path. − If isFeatureSupported returns true for this feature, and the standard Android API android.media.audiofx.AcousticEchoCanceler.isAvailable() also returns true, then it can be assumed that echo cancellation is also available on the audio path.
  • 11. 11 Snapdragon Audio SDK FEATURE_SURROUND_SOUND_RECORDING public static final DeviceInfo.Features FEATURE_SURROUND_SOUND_RECORDINGSurround Sound Recording is designed to allow for 5.1 surround sound input using existing microphones on the device
  • 13. 13 Audio Modules – Common Interface Common interface for audio modules that are defined to ease integration with the Elite Framework Audio Postprocessor Interface (APPI) for audio processing algorithms Common Audio Processor Interface (CAPI) for audio codec modules Processing Algorithm Wrapper with common interface (APPI) Codec Decoder / Encoder Wrapper with common interface (CAPI) Note: The terms algorithm, module, and library are used interchangeably in this presentation.
  • 14. 14 Audio Modules – Static and Dynamic Two types of modules, based on loading: − Static modules (*.lib) − Linked to the aDSP image at compile time − Symbol are resolved at compile time − aDSP image must be recompiled when a module changes − Dynamic modules (*.so) − Loaded at run-time into aDSP heap memory − Symbols are resolved when the module is loaded into memory − aDSP image does not need to be recompiled when a module changes Each module is identified by unique global module ID Audio static modules are added to the AMDB at boot time Audio dynamic modules are added to the AMDB at run time APPI mod-n (*.so) CAPI mod-3 (*.so) CAPI mod-2 (*.lib) APPI mod-1 (*.lib)
  • 15. 15 Per Object PostProcessing (POPP) Per Object PreProcessing (POPreP ) Processing chain per audio stream Default POPP topologies: − Playback session − Record session DSP audio mixer Downmix if needed Resampler Audio EncoderVolume DSP audio mixer Volume Audio DecoderResampler POPP Topologies
  • 16. 16 Common Object PostProcessing (COPP) Common Object PreProcessing (COPreP) Processing chain per device Default COPP topologies: − Playback session − Record session AFE Audio pregain AFE CodecRX Gain DSP Audio Mixer Audio Volume DSP Audio Mixer COPP Topologies
  • 17. 17 Custom Audio Topology – Static and Dynamic Two types of audio topologies: − Static topologies − Created at compile time − aDSP image must be recompiled if the topology changes − Dynamic topology − Created at run time − aDSP image does not need to be recompiled if the topology changes − APIs are defined for adding custom dynamic topologies from the applications processor: Custom topology is designed to use any module defined in the AMDB by using Module IDs Customized topology with an OEM algorithm ASM_CMD_ADD_TOPOLOGIES // for POPP and POPREP ADM_CMD_ADD_TOPOLOGIES_V5 // for COPP and COPREP Audio Mixer Volume OEM Algorithm Audio DecoderResampler
  • 18. 18 Audio Dynamic Topology How are dynamic topologies added at run time? APR ADM Topo DB ASM_CMD_ADD_TOPOLOGIES T2 (-M1-M4-), T3 (-M1-M2) topo_db_add_topologies() T1 T2 T3 aDSP AMDB M1 M2 M3 M4 New audio sessions can be created using T2 and T3 topologies after adding them to the topology databaseClient Processor ASM
  • 19. 19 ISV Module1 ISV Module2 Application HAL RTAC Kernel Driver APR Handler DSP Payload ASM_CMD_SET_PP_PARAMS/ AMD_CMD_SET_PP_PARAMS RTAC Userspace module Send_rtac() ACDB Loader Acdb_store() Acdb_send() Acdb_get() acdb file Get/setParameter(key”,value) Software Architecture – Block Diagram
  • 20. 20 Software Architecture – Android APIs Existing set parameter android API extended to have new key value pairs Setparameter() with persistence − set_parameter(key=”ISV_PERSIST_CFG”, value=” DataBinary, *”); − Data Binary – Entire calibration data binary that is stored in calibration database. Even if user changes single parameter through UI, the app is responsible for packaging the entire data binary for persistence Setparameter() without persistence − set_parameter(key=”ISV_NOPERSIST_CFG”, value, “List_MID_PID, *”); − List_MID_PID – List of dynamically modified calibration to be applied on ISV modules in ADSP. This could be an array of Module ID, Parameter ID and data, or could be only one set of ModuleId, Parameter ID and values. Here, the data is not persisted in audio calibration database. The app is responsible for packaging the modified modules and parameters.
  • 22. 22 developer.qualcomm.com Augmented reality Context awareness Peer to peer Wireless health Graphics & gaming Computer vision Android applications App development SDKs & tools Marketing opportunities Case Studies & Tutorials News & Information Hardware development platforms Forums & technical support Tools & resources to help developers build, integrate, and optimize Qualcomm Developer Network
  • 23. 23 For more information on Qualcomm, visit us at: www.qualcomm.com & www.qualcomm.com/blog Thank you FOLLOW US ON: © 2013-2014 Qualcomm Technologies, Inc. and/or its affiliated companies. All rights reserved. Qualcomm, Snapdragon, Hexagon and Fluence are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Uplinq is a trademark of Qualcomm Incorporated. All trademarks of Qualcomm Incorporated are used with permission. Other product and brand names may be trademarks or registered trademarks of their respective owners. References in this presentation to “Qualcomm” may mean Qualcomm Incorporated, Qualcomm Technologies, Inc., and/or other subsidiaries or business units within the Qualcomm corporate structure, as applicable. Qualcomm Incorporated includes Qualcomm’s licensing business, QTL, and the vast majority of its patent portfolio. Qualcomm Technologies, Inc., a wholly-owned subsidiary of Qualcomm Incorporated, operates, along with its subsidiaries, substantially all of Qualcomm’s engineering, research and development functions, and substantially all of its product and services businesses, including its semiconductor business, QCT.