☰
有损音频格式转换,损耗能累加成什么样?级联转码的三个放大器
2026/10/20 19:52:28 网站建设 项目流程

一段素材的旅程往往是这样:手机里存成 M4A,剪辑软件要求 WAV,为了发微信群压成 MP3,上传平台前又被转了一次 AAC。每一步看起来都只是「换个格式」,代码跑完还显示成功。可等你在耳机里把最终文件和最初的录音对比一遍,会发现高频像被蒙了一层纱——不是哪一步明显出错,而是每转一次,声音就离原版远一点。

放大器一:量化噪声只加不减

第一个放大器最直接:每做一次解码再编码,就叠进一层新的量化噪声(quantization noise)。

第一次压缩时,编码器按掩蔽模型丢掉一部分细节,同时也把量化误差藏在被丢掉的频段附近;第二次编码面对的已经不是原始信号,而是「原始信号 + 第一代误差」。它会把这团误差当成有用信号的一部分重新建模,于是误差被二次分配、叠加。转三到四轮之后,安静段里的颗粒感会明显上来,底噪比原文件高出一截。

放大器二:砖墙截断的上限被逐代压下来

第二个放大器作用在频带顶端。低码率有损编码会在高频画一条「砖墙」:超过某个频率的细节直接归零。128kbps 的 MP3 大致把砖墙立在 16kHz 附近,之上基本不存东西。

问题在于,第二代编码器看到的频谱高段已经是「秃的」。它在做掩蔽判断时,不会去还原不存在的细节,只会在现有能量分布上继续做取舍——可丢的范围只会更大。也就是说,第一代丢掉的高频,不仅不会回来,还会让后续每代「更没什么可保」的。MP3→AAC→MP3 走三轮,高频发闷几乎是必然而非巧合。

放大器三:帧与窗的决策被反复放大

第三个放大器藏在编码器内部。有损编码是按帧、按窗逐段分析的:遇到瞬态(鼓点、辅音起音)时用短窗压低预回声(pre-echo),遇到平稳段用长窗保频率分辨率。

这套决策依赖对输入信号的判断。当输入本身就是上一代编码的产物时,前代留下的误差会干扰瞬态检测——该判为瞬态的段落可能被当成平稳段,短窗没开,预回声被放大;而已经存在于信号里的振铃,又会在这一代被当作真实瞬态再处理一次。误差不在同一步累加,却会互相喂大。

省事版方法

真正省事的做法,是把「压一次」当成硬约束写进流程。

第一步,确定母版:所有编辑都在无损文件上做,导出也先留一份无损。第二步,分清「工作格式」和「分发格式」:工作阶段用 WAV 转封装过渡,只有最终交付那一步才做有损编码。第三步,必须级联时,选链路里最高的那个码率,不让任何一代掉到低码率档,避免高频砖墙被逐代压低。第四步,批量转码时把参数固定下来,保证同一批文件走的是同一条链路。

收尾:把「第几代」当成一个指标

级联转码的损耗不是某一环的锅,而是「代」这个维度在悄悄累积。以后再看到格式转换,先问一句:这是第几次有损编码?把代际数压到 1,比事后用均衡器救高频省事得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询