MP3格式-媒体理论

MP3(以前称为MPEG-1 Audio Layer III MPEG-2 Audio Layer III )是一种数字音频编码格式,主要由 Karlheinz Brandenburg 领导的德国弗劳恩霍夫协会在美国和其他数字科学家的支持下开发。 别处。 最初定义为 MPEG-1 标准的第三种音频格式,它被保留并进一步扩展(定义额外的比特率并支持更多音频通道),成为后续 MPEG-2 标准的第三种音频格式。 第三个版本称为 MPEG-2.5,经过扩展以更好地支持较低比特率,已得到普遍实施,但不是公认的标准。

MP3(或 mp3)作为一种文件格式通常指包含 MPEG-1 音频或 MPEG-2 音频编码数据的基本流的文件,而没有 MP3 标准的其他复杂性。

关于音频压缩(对最终用户来说最明显且最为人所知的标准方面),MP3 使用有损数据压缩来通过不精确的近似和部分数据丢弃来对数据进行编码。 与未压缩的音频相比,这可以大大减小文件大小。 小尺寸和可接受的保真度相结合,导致 20 世纪 90 年代中后期通过互联网传播音乐的热潮,在带宽和存储仍然非常宝贵的时代,MP3 成为一种支持技术。 MP3 格式很快就引发了围绕版权侵权、音乐盗版以及文件翻录/共享服务 MP3.com 和 Napster 等的争议。 随着便携式媒体播放器(还包括智能手机)的出现,MP3 支持几乎已普及。

MP3 压缩的工作原理是降低(或近似)某些声音成分的准确性,这些成分(通过心理声学分析)被认为超出了大多数人的听觉能力。 这种方法通常称为感知编码或心理声学建模。 然后使用 MDCT 和 FFT 算法以节省空间的方式记录剩余的音频信息。 与 CD 质量的数字音频相比,MP3 压缩通常可以减少 75% 到 95% 的大小。 例如,以 128 kbit/s 的恒定比特率编码的 MP3 将产生大约原始 CD 音频大小 9% 的文件。 2000 年代初,光盘播放器越来越多地支持播放数据 CD 上的 MP3 文件。

运动图像专家组 (MPEG) 将 MP3 设计为其 MPEG-1 和后来的 MPEG-2 标准的一部分。 MPEG-1 音频(MPEG-1 第 3 部分),包括 MPEG-1 音频层 I、II 和 III,于 1991 年被批准为 ISO/IEC 标准委员会草案,于 1992 年定稿,并于 1993 年作为 ISO 发布 /IEC 11172-3:1993。 具有较低采样率和比特率的 MPEG-2 音频(MPEG-2 第 3 部分)扩展于 1995 年作为 ISO/IEC 13818-3:1995 发布。 它只需要对现有 MPEG-1 解码器进行最少的修改(识别标头中的 MPEG-2 位并添加新的较低采样率和比特率)。

设计Design

文件结构File structure

MP3 文件的结构图(MPEG 版本 2.5)。

MP3 文件由 MP3 帧组成,MP3 帧由标头和数据块组成。 该帧序列称为基本流。 由于“位存储库”,帧不是独立的项目,并且通常不能在任意帧边界上提取。 MP3 数据块包含频率和幅度方面的(压缩的)音频信息。 该图显示 MP3 标头由一个同步字组成,用于标识有效帧的开始。 其后的一位表示这是 MPEG 标准,两位表示使用的是第 3 层; 因此,MPEG-1 音频第 3 层或 MP3。 此后,这些值将根据 MP3 文件而有所不同。 ISO/IEC 11172-3 定义了标头每个部分的值范围以及标头规范。 如今,大多数 MP3 文件都包含 ID3 元数据,它位于 MP3 帧之前或之后,如图所示。 数据流可以包含可选的校验和。

联合立体声仅在帧到帧的基础上完成。

编码和解码Encoding and decoding

MP3编码算法一般分为四个部分。 第 1 部分将音频信号划分为更小的部分(称为帧),然后对输出执行改进的离散余弦变换 (MDCT) 滤波器。 第 2 部分将样本传递到 1024 点快速傅里叶变换 (FFT),然后应用心理声学模型并对输出执行另一个 MDCT 滤波器。 第 3 部分对每个样本进行量化和编码,称为噪声分配,它会自行调整以满足比特率和声音掩蔽要求。 第 4 部分格式化比特流,称为音频帧,由 4 部分组成:标头、错误检查、音频数据和辅助数据。

MPEG-1 标准不包括 MP3 编码器的精确规范,但在原始标准的非规范部分中提供了示例心理声学模型、速率环等。 MPEG-2 将支持的采样率数量增加了一倍,MPEG-2.5 又增加了 3 个。 当写这篇文章时,建议的实现已经相当过时了。 该标准的实施者应该设计自己的算法,适合从音频输入中删除部分信息。 因此,出现了许多不同的 MP3 编码器,每种编码器生成的文件质量不同。 比较是广泛可用的,因此编码器的潜在用户很容易找到最佳选择。 一些擅长以较高比特率进行编码的编码器(例如 LAME)在较低比特率下不一定同样出色。 随着时间的推移,LAME 在 SourceForge 网站上不断发展,直到成为事实上的 CBR MP3 编码器。 后来又增加了ABR模式。 使用 0 到 10 之间的质量目标,在真正的可变比特率方面的工作取得了进展。最终,数字(例如 -V 9.600)可以使用 MPEG-2.5 扩展以仅 41 kbit/s 的速度生成出色质量的低比特率语音编码。

MP3 使用重叠的 MDCT 结构。 每个 MPEG-1 MP3 帧有 1152 个样本,分为两个 576 个样本的颗粒。 这些样本最初位于时域,通过 MDCT 在一个块中变换为 576 个频域样本。 MP3 还允许在颗粒中使用较短的块,大小可降至 192 个样本; 当检测到瞬态时使用此功能。 这样做可以限制伴随瞬态的量化噪声的时间扩散(参见心理声学)。 频率分辨率受到小长块窗口尺寸的限制,这降低了编码效率。 对于高度瞬态信号来说,时间分辨率可能太低,并且可能导致敲击声的拖尾现象。

由于滤波器组的树结构,预回声问题变得更糟,因为两个滤波器组的组合脉冲响应没有也不能提供时间/频率分辨率的最佳解决方案。 此外,两个滤波器组输出的组合会产生混叠问题,必须通过“混叠补偿”阶段部分处理; 然而,这会产生需要在频域中编码的多余能量,从而降低编码效率。

另一方面,解码在标准中被仔细定义。 大多数解码器都是“比特流兼容”的,这意味着它们从给定 MP3 文件生成的解压缩输出在指定的舍入容差范围内与 ISO/IEC 高标准文档 (ISO /IEC 11172-3)。 因此,解码器的比较通常基于它们的计算效率(即它们在解码过程中使用了多少内存或 CPU 时间)。 随着时间的推移,随着 CPU 时钟频率从 MHz 过渡到 GHz,这种担忧已不再是一个问题。 编码器/解码器总体延迟没有定义,这意味着没有官方规定无缝播放。 然而,一些编码器(例如 LAME)可以附加额外的元数据,这将允许能够处理它的播放器提供无缝播放。

质量Quality

在执行有损音频编码(例如创建 MP3 数据流)时,需要在生成的数据量和结果的音质之间进行权衡。 生成 MP3 的人选择比特率,该比特率指定每秒需要多少千比特的音频。 比特率越高,MP3 数据流就越大,而且一般来说,听起来就越接近原始录音。 如果比特率太低,则在再现中可能会听到压缩伪影(即原始录音中不存在的声音)。 有些音频由于其随机性和尖锐的攻击而难以压缩。 当这种类型的音频被压缩时,通常会听到振铃或前回声等伪影。 掌声样本或比特率相对较低的三角乐器样本提供了压缩伪影的良好示例。 大多数感知编解码器的主观测试倾向于避免使用这些类型的声音材料,但是,由于该格式所基于的第 II 层 32 个子带滤波器组的特定时间掩蔽功能,敲击声生成的伪影几乎无法察觉 。

除了编码音频片段的比特率之外,MP3 编码声音的质量还取决于编码器算法的质量以及编码信号的复杂性。 由于 MP3 标准允许编码算法有相当大的自由度,因此即使比特率相同,不同的编码器也具有截然不同的质量。 例如,在一项公开听力测试中,两个早期 MP3 编码器设置为约 128 kbit/s,其中一个在 1-5 等级上得分为 3.66,而另一个仅得分 2.22。 质量取决于编码器和编码参数的选择。

这一观察引发了音频编码领域的一场革命。 早期,比特率是首要且唯一的考虑因素。 当时 MP3 文件是最简单的类型:它们对整个文件使用相同的比特率:这个过程称为恒定比特率 (CBR) 编码。 使用恒定的比特率可以使编码更简单并且占用更少的 CPU 资源。 然而,也可以通过创建比特率在整个文件中变化的文件来优化文件的大小。 这些被称为可变比特率。 位存储和 VBR 编码实际上是原始 MPEG-1 标准的一部分。 它们背后的概念是,在任何音频片段中,某些部分更容易压缩,例如静音或仅包含几个音调的音乐,而其他部分则更难压缩。 因此,可以通过对不太复杂的段落使用较低的比特率以及对较复杂的部分使用较高的比特率来提高文件的整体质量。 使用一些先进的 MP3 编码器,可以指定给定的质量,并且编码器将相应地调整比特率。 想要对耳朵透明的特定“质量设置”的用户可以在编码所有音乐时使用该值,并且一般来说无需担心对每首音乐进行个人听力测试以确定正确的比特率。

感知质量可能受到收听环境(环境噪声)、收听者注意力和收听者培训的影响,并且在大多数情况下还受到收听者音频设备(例如声卡、扬声器和耳机)的影响。 此外,可以通过针对讲座和人类语音应用的较低质量设置来实现足够的质量,并且减少编码时间和复杂性。 斯坦福大学音乐教授 Jonathan Berger 对新生进行的一项测试显示,学生对 MP3 品质音乐的偏好逐年上升。 Berger 说,学生们似乎更喜欢 MP3 给音乐带来的“嘶嘶”声。

声音艺术家兼作曲家 Ryan Maguire 的项目“MP3 中的幽灵”对 MP3 音频质量进行了深入研究,隔离了 MP3 压缩过程中丢失的声音。 2015年,他发行了歌曲“moDernisT”(“Tom’s Diner”的字谜),该歌曲完全由歌曲“Tom’s Diner”的MP3压缩过程中删除的声音组成,该歌曲最初用于制定MP3标准。 有关用于隔离 MP3 压缩过程中删除的声音的技术的详细说明,以及该项目的概念动机,已发表在 2014 年国际计算机音乐会议论文集上。

比特率Bit rate

比特率是采样率和用于对音乐进行编码的每个样本的位数的乘积。 CD 音频为每秒 44100 个样本。 每个样本的位数还取决于音频通道的数量。 CD 是立体声的,每通道 16 位。 因此,将 44100 乘以 32 得到 1411200——未压缩 CD 数字音频的比特率。 MP3 旨在以 320 kbit/s 或更低的速度对 1411 kbit/s 数据进行编码。 由于 MP3 算法检测到不太复杂的段落,因此可以采用较低的比特率。 当使用 MPEG-2 而不是 MPEG-1 时,MP3 仅支持较低的采样率(每秒 16000、22050 或 24000 个样本),并提供低至 8 kbit/s 但不高于 160 kbit/s 的比特率选择。 通过降低采样率,MPEG-2 第三层删除了源音频中可能存在的高于新采样率一半的所有频率。

如这两个表所示,MPEG-1 Audio Layer III 标准允许 14 个选定的比特率:32、40、48、56、64、80、96、112、128、160、192、224、256 和 320 kbit /s,以及 3 个最高可用采样频率 32、44.1 和 48 kHz。 MPEG-2 音频层 III 还允许 14 个略有不同(且大多较低)的比特率,即 8、16、24、32、40、48、56、64、80、96、112、128、144、160 kbit/s 采样频率为 16、22.05 和 24 kHz,恰好是 MPEG-1 的一半。 MPEG-2.5 音频第 III 层帧仅限于 8、16、24、32、40、48、56 和 64 kbit/s 8 个比特率,以及 8、11.025 和 12 kHz 3 个甚至更低的采样频率。 在仅支持 MPEG-1 Audio Layer III 标准的早期系统上,比特率低于 32 kbit/s 的 MP3 文件可能会加速和调高播放。

早期的系统还缺乏 MP3 的快进和快退播放控制。

MPEG-1 帧在 320 kbit/s 模式下包含最多的细节,这是允许的最高比特率设置,静音和简单的音调仍然需要 32 kbit/s。 MPEG-2 帧可以捕获高达 12 kHz 的声音再现,速度高达 160 kbit/s。 由于奈奎斯特-香农采样定理,使用 MPEG-2 制作的 MP3 文件不具有 20 kHz 带宽。 频率再现始终严格小于采样频率的一半,并且不完美的滤波器需要更大的误差范围(噪声水平与滤波器的锐度),因此 8 kHz 采样率将最大频率限制为 4 kHz,而 48 kHz 采样 速率将 MP3 的声音再现限制为最大 24 kHz。 MPEG-2 使用 MPEG-1 采样率的一半,而 MPEG-2.5 仅使用 MPEG-1 采样率的四分之一。

对于人类语音再现的一般领域,使用 11025 的采样率和 44100(标准)WAV 文件的 VBR 编码,5512 Hz 的带宽足以产生出色的结果(对于语音)。 使用 -V 9.6 设置时英语使用者的平均速度为 41–42 kbit/s,但这可能会因记录的静音量或传输速率 (wpm) 而异。 通过 LAME 参数 -V 9.4 选择重采样至 12000(6K 带宽)。 同样,-V 9.2 选择 16000 采样率和最终的 8K 低通滤波。 欲了解更多信息,请参阅奈奎斯特 – 香农。 旧版本的 LAME 和 FFmpeg 仅支持可变比特率质量选择参数的整数参数。 n.nnn 质量参数 (-V) 记录在 lame.sourceforge.net 中,但仅在具有新型 VBR 可变比特率质量选择器的 LAME 中受支持,而不是平均比特率 (ABR)。

44.1 kHz 的采样率通常用于音乐再现,因为这也用于 CD 音频,这是创建 MP3 文件的主要来源。 互联网上使用多种比特率。 通常使用 128 kbit/s 的比特率,压缩比为 11:1,可以在相对较小的空间内提供足够的音频质量。 随着互联网带宽可用性和硬盘大小的增加,高达 320 kbit/s 的更高比特率已普遍存在。 存储在音频 CD 上的未压缩音频的比特率为 1,411.2 kbit/s(16 位/样本 × 44100 个样本/秒 × 2 通道/1000 位/千位),因此比特率为 128、160 和 192 kbit/s 分别表示大约 11:1、9:1 和 7:1 的压缩比。

使用 LAME 编码器和自由格式选项可以实现高达 640 kbit/s 的非标准比特率,尽管很少有 MP3 播放器可以播放这些文件。 根据 ISO 标准,解码器仅需要能够解码高达 320 kbit/s 的流。 早期的 MPEG 第三层编码器使用现在称为恒定比特率 (CBR) 的编码器。 该软件只能对 MP3 文件中的所有帧使用统一的比特率。 后来更复杂的 MP3 编码器能够使用比特存储库来确定平均比特率,根据录音部分声音的复杂性来选择每帧的编码率。

更复杂的 MP3 编码器可以产生可变比特率音频。 MPEG 音频可以在每帧的基础上使用比特率切换,但只有第三层解码器必须支持它。 当目标是达到固定的质量水平时,使用 VBR。 VBR 编码的最终文件大小比恒定比特率更难预测。 平均比特率是一种 VBR,作为两者之间的折衷实现:比特率允许变化以获得更一致的质量,但控制为保持在用户选择的平均值附近,以实现可预测的文件大小。 尽管 MP3 解码器必须支持 VBR 才能符合标准,但历史上某些解码器在 VBR 解码方面存在缺陷,特别是在 VBR 编码器广泛普及之前。 最先进的 LAME MP3 编码器支持生成 VBR、ABR,甚至更旧的 CBR MP3 格式。

第三层音频还可以使用“位存储库”,部分满帧能够保存下一帧的部分音频数据,从而允许有效比特率的临时变化,即使在恒定比特率流中也是如此。 位储存器的内部处理增加了编码延迟。 对于高于约 16 kHz 的频率,没有比例因子频段 21 (sfb21),迫使编码器在频段 21 中不太准确的表示或频段 21 以下所有频段中的低效存储之间进行选择,后者会导致 VBR 编码中的比特率浪费。

辅助数据Ancillary data

辅助数据字段可用于存储用户定义的数据。 辅助数据是可选的,并且未明确给出可用位数。 辅助数据位于霍夫曼代码位之后,范围为下一帧的 main_data_begin 指向的位置。 编码器 mp3PRO 使用辅助数据来编码额外信息,这些信息在使用自己的算法解码时可以提高音频质量。

元数据Metadata

音频文件中的“标签”是文件的一部分,其中包含元数据,例如标题、艺术家、专辑、曲目编号或有关文件内容的其他信息。 MP3 标准没有定义 MP3 文件的标签格式,也没有支持元数据并消除标签需求的标准容器格式。 然而,存在一些标签格式的事实上的标准。 截至 2010 年,最广泛使用的是 ID3v1 和 ID3v2,以及最近推出的 APEv2。 这些标签通常嵌入在 MP3 文件的开头或结尾,与实际的 MP3 帧数据分开。 MP3 解码器要么从标签中提取信息,要么只是将它们视为可忽略的非 MP3 垃圾数据。

播放和编辑软件通常包含标签编辑功能,但也有专用于此目的的标签编辑器应用程序。 除了与音频内容相关的元数据之外,标签也可用于 DRM。 ReplayGain 是一种用于测量 MP3 文件响度(音频标准化)并将其存储在其元数据标签中的标准,使符合 ReplayGain 的播放器能够自动调整每个文件的整体播放音量。 MP3Gain 可用于基于 ReplayGain 测量结果可逆地修改文件,以便在没有 ReplayGain 功能的播放器上实现调整后的播放。


延伸阅读Further Reading(更新中)

操作系统

电影理论

多媒体理论

媒体格式理论

NLE非线性编辑软件

Final Cut Pro 生态系统工具

音频音效相关-制作音乐 Production Music

音频音效相关-预告片音乐 Trailer Music


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注