MP3帧的压缩数据可以小于帧中可用的空间。当这种情况发生时,我们将可用的空间称为水库。
当一个未来的框架太大,不能容纳在一个框架的可用空间,它可以使用一个水库,它的剩余。这允许一个恒定的比特率和可变的压缩长度,包括长度太大,对于一个正常的帧。
我想知道的是,水库能离目前的框架有多远?
例如,在下面我展示了8帧。当前帧(CF)及其前面的7个帧。
+----+----+----+----+----+----+----+----+
| -7 | -6 | -5 | -4 | -3 | -2 | -1 | CF |
+----+----+----+----+----+----+----+----+假设CF是100,000帧,它能使用框架0中仍然可用的储集层吗?
还是有一个限制,如255帧回来?
发布于 2019-05-14 23:38:09
据我所知,没有具体的帧数限制,但参考限制为4,088位(511字节)返回。因此,准确的位储集层帧限制取决于比特率。
我在LAME技术常见问题上找到了这个信息
帧N的MP3数据不是存储在帧N中,而是可以分布在多个帧上。在典型情况下,帧N的数据将有20%存储在帧N1中,80%存储在帧N中。如果编码器建立了一个大比特库,则帧N的数据实际上可以存储在比特流中。然后,如果出现一个非常难以编码的通道,那么编码器就可以自由地使用这个帧的正常位,再加上4088个。由此产生的数据将占用几个框架。main_data_begin给出与给定帧相关联的数据在比特流中的起始负偏移量(以字节为单位)。
https://stackoverflow.com/questions/56138088
复制相似问题