音频IPC通讯原理研究

1.背景

音频 IPC相对于普通IPC相比,支持语音的输入、输出的功能以及语音对讲功能。音频IPC的视频部分与普通IPC对比,几乎是完全一致,只是添加了音频的部分,因此本文从音频的角度出发,介绍音频的产生、音频数据的传输、以及音频的处理等方面内容。
在这里插入图片描述
1.2.术语定义
AI:Audio Input音频输入模块
AO:Audio Output音频输出模块
AENC:Audio Encode音频编码模块
ADEC:Audio Decode音频解码模块
BQ:IPC相关缓存模块;
PCM:Pulse Code Modulation脉冲编码调制
RIFF:Resources Interchange File Format 资源互换文件格式(windows环境下大部分多媒体文件遵循的一种文件结构)
Ffmpeg:一种多媒体视音频处理工具,可以用来记录、转换数字音频、视频,并能将其转化为流的程序。
PTS:Presentation Time Stamp 显示时间戳
TS:Transport Stream 传输流,用于HTTP方式传输音频数据的数据流
Live555:是一个为流媒体提供解决方案的跨平台的开源项目,实现了多种音视频编码格式的音视频数据的流化、接收和处理等功能

2.音频数据流图

2.1.IPC音频流图
在这里插入图片描述
音频数据部分主要可以分为音频产生、音频传输和音频解码播放三部分,该过程实现和视频数据流一致。上图为大致的流程框架,使用HTTP/RTSP进行不同的连接。

2.2.音频数据采样、编码流程
2.2.1.脉冲编码调制
音频从Line In/Mic In端采集后,经过PCM(脉冲编码调制)把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。模拟信号->采样->量化->编码->数字信号。
在这里插入图片描述
1、抽样:连续的时间信号进行周期性扫描,变成时间上离散的瞬时信号,抽样遵循抽样定理。
(Nyquist采样定律:采样率大于或等于连续信号最高频率分量的2倍时,采样信号可以用来完美重构原始连续信号)
2、量化:用一组规定的电平,把瞬时值用最接近的电平值表示,比如可以分为量化值A0~A15。
3、编码:用一组二进制码组来表示量化值,比如用0011来表示上面提到的量化值A3。通常,可以使用8bit或者16bit来表示量化值。编码的目的一方面是为了用计算机语言去描述声音数据,另外一方面是为了用各种算法(可还原)去压缩数据,减小传输带宽的压力。因此Encode阶段不同的音频格式对应着不同的编码、压缩方式,不同的音频格式使用的编码器也不一样,主要分为硬件编码器编码与软件编码两种;
硬件编码:以G.711a、G.711u(PCMA、PCMU)格式为例是将PCM数据送入AENC(音频编码模块),这个部分是专门的一个编码器(属于硬件);
软件编码:以AAC等音频格式为例,需要ffmpeg将PCM转化编码成AAC格式;
4、存入缓存:编码完成后,相关进程将码流存入缓存。当RTSP Client或者 HTTP Client需要预览发出请求的时候,再对数据帧然后进行一定的封装,RTSP方式将音频数据封装成RTP包、HTTP方式则加上Wave Head通过TS流封装,分发所有HTTP连接。

2.2.2.音频帧、PTS概念
视频数据存在“帧”的概念,也就是一个图像,常见IPC一般都是25帧,也就是40ms一帧。音频数据在产生的过程中,也有“帧”的概念,这个帧可以理解为音频的打包周期。音频帧差时长取决于音频采样率、量化精度(位宽)、AI中音频bu

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值