ALSA 音频术语
2012-02-24 12:12
155 查看
个人愚见,抛砖引玉。
样本和帧
在单一声道,一个时间点上采集的语音信号叫做样本(sample),它是用来描述语音信号的幅值。我们在谈论数字音频的时候往往关心的是同一时间点上所有声道上的音频数据,然后我们就有了帧(frame)的概念。它是用来收集所有声道上的样本。ALSA的音频API也是用帧来作为音频数据的单位。
样本和帧的大小
样本的大小跟存储的格式有关,比如常用的S16_LE,即有符号的16位小端存储,那么一个样本的大小就是16/2=8个字节。
帧的大小就是声道的数量乘以样本的大小,比如,一个立体声48khz,16bit,PCM音频流,即双声道,那么一帧的大小就是2x2bytes
再比如一个5.1声道(6个声道,16bit,PCM音频流,一帧的大小就是6x2bytes
周期(period)
周期是用来存放帧的单元,ALSA函数是以一个周期为单位来读取音频数据的。
缓冲区(buffer)
一个缓冲区一般有两个周期,有些硬件也可以做到8个缓冲区,也有可能缓冲区的大小并不是周期的整数倍。缓冲区是循环读取的,比如一个缓冲区有两个周期,那么硬件在读取一个缓冲区时便会产生两次中断,ALSA也尽可能地填满一个周期的音频数据。当第一个周期的音频数据被取走就准备取第二个周期的音频数据,同时第三个周期的音频数据会填充到第一个音频数据的位置,以此循环。当填充与取出缓冲区的速度不协调的时候就会出现错误。xrun()
交错模式与非交错模式
交错模式与非交错模式只是音频数据存放在缓冲区时的一种方式,在交错模式下,一帧包含所有声道的样本,而在非交错模式下一帧仅包含一个声道的样本,下一帧会包含另外一个声道的样本。
样本和帧
在单一声道,一个时间点上采集的语音信号叫做样本(sample),它是用来描述语音信号的幅值。我们在谈论数字音频的时候往往关心的是同一时间点上所有声道上的音频数据,然后我们就有了帧(frame)的概念。它是用来收集所有声道上的样本。ALSA的音频API也是用帧来作为音频数据的单位。
样本和帧的大小
样本的大小跟存储的格式有关,比如常用的S16_LE,即有符号的16位小端存储,那么一个样本的大小就是16/2=8个字节。
帧的大小就是声道的数量乘以样本的大小,比如,一个立体声48khz,16bit,PCM音频流,即双声道,那么一帧的大小就是2x2bytes
再比如一个5.1声道(6个声道,16bit,PCM音频流,一帧的大小就是6x2bytes
周期(period)
周期是用来存放帧的单元,ALSA函数是以一个周期为单位来读取音频数据的。
缓冲区(buffer)
一个缓冲区一般有两个周期,有些硬件也可以做到8个缓冲区,也有可能缓冲区的大小并不是周期的整数倍。缓冲区是循环读取的,比如一个缓冲区有两个周期,那么硬件在读取一个缓冲区时便会产生两次中断,ALSA也尽可能地填满一个周期的音频数据。当第一个周期的音频数据被取走就准备取第二个周期的音频数据,同时第三个周期的音频数据会填充到第一个音频数据的位置,以此循环。当填充与取出缓冲区的速度不协调的时候就会出现错误。xrun()
交错模式与非交错模式
交错模式与非交错模式只是音频数据存放在缓冲区时的一种方式,在交错模式下,一帧包含所有声道的样本,而在非交错模式下一帧仅包含一个声道的样本,下一帧会包含另外一个声道的样本。
相关文章推荐
- ALSA 音频术语
- ALSA音频驱动研究(一)
- 音频格式相关术语
- 嵌入式开发之davinci--- 8148/8168/8127 中的alsa音频pcm g711 和aac 音频格式
- 声卡设备alsa音频架构1
- alsa 音频编程简单的例子 (总结)
- Linux音频设备两种框架OSS和ALSA驱动
- Linux ALSA 音频系统:物理链路篇
- ALSA音频编程自我分析
- ALSA音频驱动研究(二)
- Linux音频编程-OSS编程-alsa编程
- Linux音频驱动-OSS和ALSA声音系统简介及其比较
- 使用ALSA编写自己的音频程序
- ALSA音频架构
- 利用ALSA插件将5.1通道音频通过2通道立体声卡播放的配置(.asoundrc配置文件)
- ALSA编写的音频程序
- Android ALSA音频系统架构分析(1)----从Loopback了解Audio
- Alsa音频编程【精华】
- 在mt7628实现alsa架构解码并播放音频文件
- 树莓派使用ALSA内录音频, 录取声卡输出的音频