从引用MP3存储库的帧来看,MP3存储库最远的位置是什么?

时间:2019-05-14 20:24:45

标签: audio mp3 audio-streaming mpeg lamemp3

MP3帧的压缩数据可以小于一帧中可用的空间。发生这种情况时,我们将可用空间称为存储库。

如果将来的框架太大而无法容纳在一个框架中的可用空间中,则可以使用储水箱来补充其剩余空间。这样可以提供恒定的比特率,但压缩长度却可变,包括对于正常帧而言太大的长度。

我想知道的是储层距当前框架有多远?

例如,下面显示8个帧。当前帧(CF)及其之前的7帧。

+----+----+----+----+----+----+----+----+
| -7 | -6 | -5 | -4 | -3 | -2 | -1 | CF |
+----+----+----+----+----+----+----+----+

假设CF为第100,000帧,是否可以使用第0帧仍然可用的储液罐?

还是有诸如255帧的限制?

1 个答案:

答案 0 :(得分:1)

据我所知,没有具体的帧数限制,但是有4,088位(511字节)的参考限制。因此,确切的位存储库帧限制取决于比特率。

我在LAME Technical FAQ上找到了以下信息:

  

第N帧的MP3数据未存储在第N帧中,但可以分布在多个帧上。在典型情况下,帧N的数据将有20%的数据存储在帧N-1中,而80%的数据将存储在帧N中。如果编码器建立了一个大的位存储库,则帧N的数据实际上可以存储4088位回到位流中。然后,如果出现非常难编码的段落,则编码器可以自由使用此帧的正常位,再加上多达4088个。然后,所得数据将占用几帧。与给定帧(以字节为单位)关联的数据在比特流中的起始负偏移量由main_data_begin给出。