嵌入式audio软件工程师的自我修养

前言

本人自2012年开始从事音频软件相关的开发工作,如今也有十多年的时间,假如你现在准备投身音频软件这个领域,或者是想面试音频软件相关的岗位,或许这篇文章有你想要的东西。

基础概念

 

Itemdescription
数字/模拟 信号

数字信号:是对连续的模拟信号进行抽样,量化和编码得到的离散数字信号

note:我们软件工程师代码处理的都是数字信号

采样率1秒钟采样的信号点数,一般用HZ表示,常见的有48K,16K,8K等
位深表示每个采样点使用多少位来表示;如果用16bit位深,那每个采样点就是两个字节
采样定理信号的采样率必须不小于信号最高频率的两倍
通道一般表示音频在传输过程的通道数量,如耳机就是:左声道和右声道
peroid_size这个表示音频处理块的大小,一般和中断对应
peroids音频处理的ring buffer有多少个peroid_size的buffer
interleave音频交织排布方式,以双声道3个采样点为例:(L1 R1 L2 R2 L3 R3)
noninterleave音频非交织排布方式,以双声道3个采样点为例:(L1 L2 L3 R1 R2 R3)
其他硬件接口:I2C,IIS

软件架构

学习开源的音频框架,是成长的一部分。下面列出四个经典的开源项目供参考学习

  • Android灵魂拷问

1. AudioTrack 和AudioRecord是如何和AudioFlinger做交互的?

2. AudioFlinger的各个音频线程如何被创建的?他们的创建属性有什么区别?

3. Audiopolicymanager如何做音频设备切换,关键函数是哪个?

4. AudioHal做为一个中间件是如何把android和linux的音频连接起来的?

  • Linux ALSA

嵌入式linux内核主流的音频框架,可以考古:

Audio之ALSA框架基础_alsa audio-CSDN博客

  • WebRTC

音频通信领域最著名的音频处理框架

  • FFmpeg

音频编解码大集合,基本上常见的音频编码格式都可以在这里找到。

DSP系统

DSP属于音频专用的芯片系统,主流的IP厂商有很多,例如CEVA,Cadence等。一般而言这些芯片由于资源有限,一般是跑轻量级的操作系统如FreeRTOS,XOS,RTThread等。

目前有INTEL公司开源的整套解决方案可以参考,这个项目的主要开发人员也是Linux ALSA的作者:

GitHub - thesofproject/sof: Sound Open Firmware

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值