中EN
概念页

数字音频技术

Digital Audio Technology

游戏音频程序员需要了解从麦克风到扬声器的整条硬件链路:模拟端的换能器、扬声器布局、电平、放大器和音量控制;数字端的脉冲编码调制 (PCM) 采样、香农-奈奎斯特采样定理、位深与量化误差、各种音频格式与编解码器、多声道数据的并行与交错布局,以及数字接口。GEA 用它们说明音频引擎的输入输出到底是什么(GEA4 卷 II 15.3)。

模拟音频

(卷 II 15.3.1)

  • 麦克风是把声压波转为电压信号的换能器:动圈式用电磁感应,电容式用电容变化,另有压电式和光调制式等。极坐标指向 (polar pattern) 描述各方向的灵敏度:全向、双向(8 字形)、心形(近似单向)。
  • 扬声器是反向工作的麦克风:电压驱动振膜产生声压波。
  • 立体声布局:至少左右两个声道;可加高音单元和低音炮 (LFE),称 2.1 系统。音箱与耳机不同:房间里左音箱的声音也会到达右耳,带来延迟和衰减并相互干涉;耳机两声道完全隔离,而且绕过了耳廓的 HRTF 效应,空间信息更少。
  • 环绕声:5.1 是中置、前左、前右、后左、后右加低音炮;7.1 再加左右两侧的环绕声道。Dolby Digital (AC-3) 和 DTS 是常见技术;Dolby Pro Logic 等可从立体声推测出 5.1。
  • 信号电平:麦克风电平很低;设备间用线路电平。专业设备标称 2.191 V 峰峰值、最大 3.472 V;消费设备大多输出不超过 1.0 V、输入可承受 2.0 V。电压过高会削波 (clipping),过低则声音偏小。

    注:常用标准是专业 +4 dBu(1.228 V RMS,正弦波峰峰值 3.472 V)、消费 −10 dBV(0.316 V RMS,峰峰值约 0.894 V)(Wikipedia "Line level")。也就是说 3.472 V 峰峰值是专业设备的标称电平,GEA 却把它当作最大值;GEA 说的 2.191 V 峰峰值约等于 0 dBu(0.775 V RMS)。两种说法并列,以标准为准。

  • 放大器用晶体管把低压信号"复制"到高功率电路上,增益 A=10log⁡10(Pout/Pin)A=10\log_{10}(P_{out}/P_{in}) dB。音量控制是衰减器(如电位器),音量显示为负 dB 是因为 A=10log⁡10(Pvolume/Pmax)A=10\log_{10}(P_{volume}/P_{max}),Pvolume<PmaxP_{volume}<P_{max}。
  • 连线:单声道两根线,立体声三根(两声道加公共地);设备内部的连线叫总线 (bus)。常见接头有 RCA、TRS 大小插孔等;线材越粗电阻越小,屏蔽可减少噪声。

PCM 采样

把模拟电压按固定间隔测量并存储,就是脉冲编码调制 (PCM);单次测量与量化叫 A/D 转换,按固定间隔重复叫采样,即 p[n]=p(nTs)p[n]=p(nT_s),TsT_s 为采样周期(卷 II 15.3.2.1)。两个关键属性:

  • 采样率:只要以信号最高频率两倍以上的频率采样,就可以无损还原。人耳频带上限 20 kHz,所以略高于 40 kHz 就够;语音只占 300 Hz–3.4 kHz,电话系统用 8 kHz。
  • 位深:每个样本的位数(常见 8/16/24/32,也可存浮点)。舍入引入量化误差,位深越大误差越小;未压缩格式典型为 16 位。

香农-奈奎斯特采样定理

带限信号(傅里叶变换在有限频带外为零)采样后,只要 ωs>2ωmax\omega_s>2\omega_{max}(ωs=2π/Ts\omega_s=2\pi/T_s)就能精确恢复原信号。直观解释:采样会让频谱沿频率轴周期性复制,采样率越高副本间距越大;副本互不重叠时,用低通滤波器只保留原始那份就能还原;采样率太低副本重叠,就是走样 (aliasing),无法还原(卷 II 15.3.2.1,图 15.26)。图形学里同一原理见 抗锯齿,数学背景见 信号与线性时不变系统。

原书问题(术语):GEA 把满足定理的"最低采样频率"称为奈奎斯特频率 (Nyquist frequency)(图 15.26 图注也这么用)。标准术语里这叫奈奎斯特率 (Nyquist rate),即 2fmax2f_{max};"奈奎斯特频率"指采样率的一半 fs/2f_s/2,也就是给定采样率下能无走样表示的最高频率。两者指代对象不同(见 Wikipedia "Nyquist frequency" 与 "Nyquist rate" 词条,两词条明确要求区分)。

D/A 转换

D/A 转换(也叫解调)按原采样率逐个输出电压,理论上能精确还原。实际上电压阶跃会引入高频振荡,所以 DAC 通常带低通或带通滤波器(卷 II 15.3.2.2)。

音频格式与编解码器

格式分未压缩、有损和无损压缩;有些(如 AVI)是能封装多种数据格式的容器(卷 II 15.3.2.3)。

格式要点(GEA)
裸 PCM无文件头,采样率、位深事先约定
LPCM未压缩,最多 8 声道、48/96 kHz、16/20/24 位;"线性"指幅值按线性刻度
WAV微软与 IBM 的 RIFF 家族格式,按带 FOURCC 和大小字段的块组织,通常存 LPCM
WMA微软的专有有损压缩,对标 MP3
AIFF / AIFF-C苹果的块结构格式,通常未压缩;AIFF-C 为压缩变体
MP3MPEG-1/2 Audio Layer III,有损,感知编码去掉多数人听不到的部分,约十分之一体积
ATRAC索尼的专有压缩,最初为 MiniDisc 设计
Ogg Vorbis开源有损;Ogg 是容器,Vorbis 是数据格式
Dolby Digital (AC-3)有损,单声道到 5.1
DTSDTS 公司的一组影院音频技术,DTS Coherent Acoustics 可经 S/PDIF 传输
VAGPS3 专有格式,基于 ADPCM
MPEG-4 SLS / ALS / DST无损压缩

差分 PCM (DPCM) 存相邻样本的差值以便压缩;自适应 DPCM (ADPCM) 进一步自适应调整。

原书问题:GEA 写 ADPCM "动态改变采样率 (varies the sample rate dynamically)",还把 ADPCM 称为一种 A/D 转换方案。ADPCM 实际是自适应地改变量化步长 (quantization step size),采样率不变(Wikipedia "Adaptive differential pulse-code modulation":"varies the size of the quantization step");它是对 PCM 数据的编码方式,不是 A/D 转换本身。

并行与交错布局

多声道数据可以每个声道一个缓冲(5.1 需要 6 个并行缓冲),也可以把同一时刻各声道的样本按固定顺序交错存进一个缓冲:C[n] FL[n] FR[n] RL[n] RR[n] LFE[n] C[n+1] …(卷 II 15.3.2.4)。这与动画、顶点数据里"按通道分开"还是"按元素打包"的取舍相同。

数字接口

(卷 II 15.3.2.5)

  • S/PDIF:同轴(也叫 S/PDIF)或光纤 (TOSLINK)。PCM 只能传 2 声道 24 位、32–192 kHz;也可以传码流(Dolby Digital 32–640 kbps,DTS 768–1536 kbps)。
  • HDMI:消费设备上传未压缩多声道 LPCM 的唯一方式,音频最高 36.86 Mbps;可用的音频带宽取决于视频模式(720p/50 Hz 及以上才能用满)。DisplayPort、Thunderbolt 类似。

    原书问题:GEA 称"苹果的 DisplayPort 和 Thunderbolt 接口"。DisplayPort 是 VESA 制定的标准(Wikipedia "DisplayPort"),Thunderbolt 由 Intel 与苹果合作开发,二者都不是苹果独有的接口。

  • USB:主机上一般只用来驱动耳机。蓝牙是最常见的无线方式。
  1. Game_Engine_Architecture_4th_Edtion_Volume_2_-_Jason_Gregory.pdf
  2. Jason Gregory《Game Engine Architecture》第 4 版(2026)卷 II 第 15 章 15.3 节

相关页面

游戏数学信号与线性时不变系统Signals & LTI Systems信号与系统理论是几乎所有数字音频技术的数学基础,也用于图像处理、电子、流体等领域。核心结论是:线性时不变 (LTI) 系统完全由它的冲激响应 h 描述,任意输入的输出等于输入与 h 的卷积;借助傅里叶变换,时域卷积等于频域乘法,滤波器就是在频域里按频率响应 H(\omega) 衰减部分频率(GEA4 卷 II 15.2)。游戏开发声音的物理与感知Physics & Perception of Sound声音是在空气等可压缩介质中传播的压缩波,用声压随时间变化的信号 p(t) 描述。游戏音频要模拟的物理与感知现象包括:用分贝度量的响度、人耳对频率不均匀的灵敏度、随距离和大气吸收的衰减、干涉、早期反射与晚期混响、多普勒频移,以及人耳判断声源方位的线索(ITD、IID、HRTF)。GEA 把它们作为 3D 音频渲染的理论基础(GEA4 卷 II 15.1)。游戏开发音频引擎架构Audio Engine Architecture音频渲染软件和多数系统一样是分层的"栈":硬件 → 驱动 → 底层 API → 3D 音频引擎,功能集通常模仿录音棚的多通道调音台。每个 2D/3D 声音是一条语音 (voice),沿语音总线经过编解码、增益、预发送滤波、辅助发送分出干湿两路、混响、后发送滤波和声像,然后由主混音器合成多声道信号,再经主输出总线(预放、LFE 生成、EQ、压缩、主音量)送到扬声器。资产上分片段、音效提示 (cue)、声音库和流式声音;混音靠分组、闪避、总线预设与混音快照、实例限制和语音抢占(GEA4 卷 II 15.5)。游戏开发三维音频渲染3D Audio Rendering3D 音频渲染引擎要尽可能可信地重现"玩家若真在游戏世界里会听到什么"。它的输入是世界里大量的 3D 声音,输出是少数几路扬声器声道;主要任务是合成、空间化(距离衰减 + 声像定位)、声学建模(混响、遮挡、衍射)、多普勒和混音。GEA 给出了恒功率声像律、聚焦角、混响区域交叉混合、遮挡/阻挡/排除的分析方法,以及顽皮狗《最后生还者》的随机传播建模和声音门户(GEA4 卷 II 15.4)。图形学抗锯齿Antialiasing渲染本质上是采样,采样频率不足就会混叠(锯齿、闪烁的"萤火虫"、车轮倒转)。屏幕空间抗锯齿在每个像素取多个样本并加权求和:超采样最直接但最贵,MSAA 每像素只着色一次,时间抗锯齿 (TAA) 把样本分散到多帧,形态学方法 (FXAA/SMAA) 作为后处理重建边缘。没有一种方法在所有方面最好。游戏开发动画压缩Animation Compression未压缩的动画每关节每样本最多 10 个 32 位浮点通道,数据量巨大。GEA 列出的压缩手段按力度递增:省略无用通道、量化(如 16 位 RL 编码)、降低采样率或省略近似线性的关键帧、用 B 样条拟合曲线、小波压缩,以及最根本的:只把需要的片段放进内存(选择性加载与流式加载)(GEA4 卷 II 13.8)。

被这些页面引用1 篇

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原