我正在开发 mp3 解码器,确定 mp3 帧的长度(以字节为单位)的公式是
FrameSize = 144 * BitRate / (SampleRate + Padding)
我找不到任何地方可以解释“144”代表什么。
有人知道吗?
144
代表总计bytes-per-frame
。
MP3 文件通常编码为 MPEG-1 Layer 3。
第 3 层类型中每帧有 1152 个样本。
1152 个样本/每字节 8 位 = 总共 144 个字节。
采用帧大小(以字节为单位)的公式:
帧大小 = 144 * 比特率 /(采样率 + 填充)
我们可以看到(对于 192 比特率 @ 44.1 khz 的 MP3):
144 * 192 / (44.1 + 0) = 626 bytes per audio frame
(忽略小数部分)。
另一种方法是:
samples/frame = 1152 # samples_per_frame = 1152
time/frame = samples/frame * time/samples
= samples/frame * 1/sample_rate
bits/frame = time/frame * bits/time # bits/time is in kbps
bytes/frame = (bits/frame) / 8
bytes/frame += padding