3.3.1. 常见MPEG帧的音频数据大小是418字节

最后 举个栗子 来说明,

以常见的采样率为44100 Hz,比特率为128kbps的CBR的MP3来计算:

帧数据大小

= (采样个数 * (1 / 采样率))* 帧的比特率 + 帧的填充大小

= (1152 * (1/44100 Hz))* 128kbps + 填充大小

= 3343.7 比特 + 填充大小

= 417.959字节 + 填充大小

= 418 字节

对应的MPEG帧大小为:

MPEG帧大小

= 帧头 + 帧数据

= 4 + 418

= 422字节

而对于VBR的帧的大小,就不是能这么简单计算出来的了。

因为VBR是每一帧的比特率都是变化的,所以对于每一帧的大小,都先要解析每一帧的帧头,得到每一帧的比特率,然后才可以计算出来每个帧的大小。

另外提及一点,由于舍入误差,官方的计算帧大小的方法和此稍有不同。根据ISO标准,应该以slot为单位进行计算,然后对结果取整,再乘于slot的大小。

不过,我们此处计算的是MPEG的Layer III,本身slot就是一个字节,所以计算方法是对的。

如果计算的是Layer I,一个slot是4字节,就要先以4字节为单位进行计算,然后对结果取整,再乘于slot大小,即再乘于4字节。