关于音频编解码器术语的定义

And*_*ang 3 audio codec pcm audio-recording audio-streaming

当我学习Cocoa Audio Queue文档时,我在音频编解码器中遇到了几个术语.在名为AudioStreamBasicDescription的结构中定义.

以下是术语:
1.采样率
2.数据包
3.帧
4.通道

我知道sample ratechannel.我是如何被其他两个混淆的.其他两个术语是什么意思?

您也可以通过示例回答这个问题.例如,我有一个双通道PCM-16信号源,采样率为44.1kHz,这意味着每秒有2*44100 = 88200字节的PCM数据.但如何packetframe

提前谢谢你!

Arn*_*der 10

您已经熟悉采样率定义.采样频率或采样率fs定义为在一秒内获得的样本数(每秒采样数),因此fs = 1/T. 因此,对于44100 Hz的采样率,您每秒可获得44100个采样(每个音频通道).

视频中每秒的帧数与音频中每秒的采样数相似.我们眼睛的框架,耳朵的样品.这里有额外的信息.

如果您有16位深度立体声PCM,则意味着您有16*44100*2 =每秒1411200位=> ~172 kB /秒=>大约每分钟10 MB.

从Apple的重写术语定义:

Sample: a single number representing the value of one audio channel at one point in time.
Frame: a group of one or more samples, with one sample for each channel, representing the audio on all channels at a single point on time.
Packet: a group of one or more frames, representing the audio format's smallest encoding unit, and the audio for all channels across a short amount of time.
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,音频和视频帧概念之间存在细微差别.在一秒钟内,您可以获得44.1 kHz的立体声音频:88200个样本,因此44100帧.

像MP3和AAC这样的压缩格式在数据包中打包多个帧(这些数据包然后可以用MP4文件写入,例如它们可以有效地与视频内容交错).您了解处理大数据包有助于识别位模式以提高编码效率.

例如,MP3使用1152帧的数据包,这是MP3流的基本原子单元.PCM音频只是一系列样本,因此它可以分为单独的帧,它实际上根本没有数据包大小.

对于AAC,每个数据包可以有1024(或960)个帧.您在以下指向的Apple文档中对此进行了描述:

音频数据包中的帧数.对于未压缩的音频,值为1.对于可变比特率格式,该值是较大的固定数,例如对于AAC为1024.对于每个数据包具有可变帧数的格式,例如Ogg Vorbis,请将此字段设置为0.

在基于MPEG的文件格式中,分组被称为数据帧(不与先前的音频帧概念混合).有关该主题的更多信息,请参阅Brad评论.

  • +1,但你的观点是耳朵需要比眼睛高得多的采样率并不完全正确.当我们使用PCM编码音频时,我们处于时域,采样压力水平通常足以重现频率.在查看图像时,我们处于频域,再现颜色.如果我们在时域中进行图像处理,我们将对光子进行采样.现在,一些音频编解码器可以处理频域中的音频(例如MP3),并且在帧中编码1152个采样(@ 44.1kHz)并不常见,因为音频的频域采样率约为40fps. (2认同)
  • 术语"框架"有点通用,具有一些含义.你是对的,PCM帧是每个通道的单个样本.在44.1kHz的立体声中,每秒有44,100帧,每秒总共88,200个样本(每个通道一个).对于MPEG,单个*data*帧包含解码到固定PCM帧集所需的数据,实际上是固定的时间量.该帧通常长达26ms.更多信息:http://www.mp3-converter.com/mp3codec/frames.htm (2认同)