1.3 心理声学模型:掩蔽、临界频带与比特分配


文档摘要

1.3 心理声学模型:掩蔽、临界频带与比特分配 本节摘要:心理声学模型把人耳的四个生理事实——绝对听阈、频域掩蔽、时域掩蔽、临界频带——翻译成一条随信号变化的掩蔽阈值曲线,再由比特分配器把曲线变成每个频带的量化精度。本节给出曲线的读法、计算流程的框架,以及从阈值到尺度因子的换算链路。 1.2 节说明了感知冗余"为什么敢丢",本节回答"由谁来画这条线"。这条线画完之后,1.4 节就能看清 AAC 与 Opus 拿着同一条生理学依据,走出了怎样的不同工程路线。 四个生理事实,一条裁决曲线 绝对听阈(ATH):无声环境下人耳可察觉的最小声压级,随频率剧烈起伏——3 kHz 附近最灵敏(约 0 dB SPL),20 Hz 处需约 70 dB,16 kHz 以上随年龄快速抬升。

1.3 心理声学模型:掩蔽、临界频带与比特分配

本节摘要:心理声学模型把人耳的四个生理事实——绝对听阈、频域掩蔽、时域掩蔽、临界频带——翻译成一条随信号变化的掩蔽阈值曲线,再由比特分配器把曲线变成每个频带的量化精度。本节给出曲线的读法、计算流程的框架,以及从阈值到尺度因子的换算链路。

1.2 节说明了感知冗余"为什么敢丢",本节回答"由谁来画这条线"。这条线画完之后,1.4 节就能看清 AAC 与 Opus 拿着同一条生理学依据,走出了怎样的不同工程路线。

四个生理事实,一条裁决曲线

绝对听阈(ATH):无声环境下人耳可察觉的最小声压级,随频率剧烈起伏——3 kHz 附近最灵敏(约 0 dB SPL),20 Hz 处需约 70 dB,16 kHz 以上随年龄快速抬升。它是"寂静的地板":低于地板的失真天然免费。

频域掩蔽:一个强纯音会压制邻近频率上弱音的可闻性,掩蔽区不对称——高频侧衰减慢、低频侧陡。掩蔽音越响,领地越宽。

时域掩蔽:掩蔽音消失后,其后 50 至 200 ms 内的弱音仍被压制(后掩蔽);甚至在其前 5 至 20 ms 也有抑制(前掩蔽)。后者是神经机制的"预判",对打击乐编码至关重要——鼓点前的嘶声可以粗编码,但鼓点本身到来前的能量铺陈如果被预回声污染,人耳对"时间倒流的噪声"极其敏感。

临界频带:耳蜗基底膜像一组中心频率递增、带宽递增的带通滤波器。约 1 kHz 以下带宽约 100 Hz 量级,10 kHz 附近放宽到 1 kHz 以上。两个频率落在同一临界频带内会互相争夺响度感知——掩蔽效应基本在带内发生。Bark 尺度把这条生理坐标数字化:1 Bark 恒等于一个临界频带宽度。

四者合成一条裁决曲线:对每个临界频带,取"绝对听阈"与"各掩蔽源贡献按能量叠加"的较大值,得到该带的允许噪声功率上限。量化噪声压在曲线下,就是心理声学意义上的透明。

图:掩蔽阈值曲线的读法

图:掩蔽阈值曲线的读法

读图要点有三:掩蔽阈值在掩蔽音附近形成"山谷",量化噪声只要不出谷即可;ATH 在低频与极高频两端抬高,给了编码器天然的省钱区;阈值与信号同步起伏,所以比特分配必须逐帧重算——这正是 AAC 每帧都要跑一遍心理声学分析的原因。

从耳蜗到代码:计算流程的骨架

ISO 的 MPEG 系列标准给出了心理声学模型参考实现(MPEG-1 的模型一/模型二、AAC 沿用的改进版),流程可以概括成六步:

  1. 对当前帧补零做 FFT(模型与主编码链路的 MDCT 并行,取更长窗以获得更细频率分辨率);
  2. 频谱按 Bark 尺度聚合成约 25 个临界频带的能量;
  3. 判别每个带内信号属"纯音样"还是"噪声样"(用频谱峰值与局部平均之比),二者掩蔽强度不同,纯音被更严地对待;
  4. 各带能量按传播函数向邻近带扩散,得到每个带对外的掩蔽贡献;
  5. 能量域求和、取对数,与 ATH 逐带取大,得到全局掩蔽阈值;
  6. 阈值反变换为信掩比(SMR),交给比特分配循环。

其中第 3 步的音调性判别最有意思:它承认掩蔽能力因信号形态而异,谐波密集的乐器声掩蔽力强,噪声样成分的掩蔽力弱。工程实现里它常用频谱平坦度近似——几何平均与算术平均之比越接近零,信号越"尖",掩蔽越可靠。

ATH 本身不必查表,多段解析式就够用。下面是 LAME 采用的 Terhardt 近似在 C 里的大致形态(返回 dB SPL):

float ath_db(float f_hz) { float fk = f_hz / 1000.0f; /* 分段近似 Terhardt 曲线,3.5 kHz 附近谷底约 -3.5 dB */ return 3.64f * powf(fk, -0.8f) - 6.5f * expf(-0.6f * (fk - 3.3f) * (fk - 3.3f)) + 1e-3f * powf(fk, 4.0f); } /* 用法:把每条谱线的幅度换算成 dBFS,再减去 ath_db(f) 得到"超出听阈多少 dB", 负值即免费区。编码器据此决定该谱线根本不必精确量化。 */

这段代码的价值不在精度(与 ISO 226 等响曲线有 1 dB 上下的偏差),而在揭示实现哲学:心理声学模型是"可计算的近似",所有编码器都在精度与算力之间选自己的折中——AAC 选了完整 FFT 掩蔽分析,Opus 则干脆换掉整个框架(1.4 节)。

从阈值到比特:信掩比与尺度因子

模型输出的阈值要变成比特,中间还差一步换算。每个临界频带的"信掩比"定义为带内信号能量与掩蔽阈值之差(dB)。SMR 高的带是"危险区",必须细量化;SMR 低的带是"安全区",可以粗放。AAC 的实现把这个判据固化成尺度因子机制:频谱按尺度因子频带分组(近似临界频带),每带一个量化增益,比特分配循环反复调整各带增益,直到总比特达标且各带噪声尽量贴住阈值。

换算上有一条工程经验值得记住:量化噪声功率每降低 6 dB,大约相当于每样本多花 1 比特。所以掩蔽阈值不是"一个开关",而是一张价目表——阈值低 6 dB 的频带,量化就要多付一位预算。低码率下预算不够,编码器被迫让部分频带"破线",主观质量开始滑坡,滑坡的顺序由 SMR 排序决定:最先牺牲的是高 SMR 阈值也救不了的高频细节,最后死守的是语音可懂度赖以生存的 2 至 5 kHz。

一个可复现的边界实验

掩蔽效应可以亲手测,不需要昂贵设备。实验设计:用音频编辑软件生成 1 kHz、60 dB 幅度的正弦主音,再生成 1.1 kHz、可调幅度的测试音,两者叠加播放;从测试音幅度低于主音 10 dB 开始逐步提升,记录刚能听出"有两个音"的位置——这个位置就是你在该频点上的掩蔽边界。换 2 kHz 主音、换 1.05 kHz(更近)与 1.5 kHz(更远)测试音重复,就能画出自己的"掩蔽不对称"曲线:低频侧边界比高频侧陡,与 1.3 节的图对得上。整个实验一副耳机加半小时。

这个实验的价值有三层:亲手确认掩蔽是真实且可测的生理现象(不是教科书插画);获得对"阈值附近"的体感——编码调优时那些 1 至 3 dB 的阈值余量调整,对应的正是这种"似有似无"的感知边界;以及最重要的,理解为什么心理声学模型需要安全余量——个体差异与环境变化能让边界移动好几个分贝,贴着平均阈值设计的编码器,在一部分听众耳中就是越线的。

⚠️ 常见坑:把心理声学模型当成万能保险。它对稳态信号建模良好,对突发瞬态反应滞后——长分析窗横跨静音与起振段时,能量被摊平,阈值被高估,静音段里的量化噪声提前于鼓点出现,就是预回声。AAC 的对策是 TNS 与窗切换(2.2 节),Opus 的对策是直接缩短帧并启用瞬态检测切换块长(3.2 节)。模型失准的另一次重灾区是级联编码,见 5.2 节。

到这里,"感知冗余的裁决机制"已经完整:生理事实 → 掩蔽阈值 → SMR → 比特分配。下一节让两位主角登场——同一套生理学,AAC 与 Opus 却交出了两份几乎相反的实现方案。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U