平时我们了解的是 aac的话,1024个采样点编码一帧(按照单声道分析),那么ac3呢?
Ac3比特流由一系列的synchronization frame组成,每个synchronization frame包含6个audio block。
而一个audio block是256个采样点,也就是说ac3:
256*6=1536
1536个sample编码一帧。
举个例子和aac进行对比一下:
以采样率44100为例,
如果是aac, 那么一帧的时间长度为: 1000*1024/44100=23.219ms
如果是ac3,那么一帧的时间长度为: 1000*1536/44100=34.829ms
EAC3的话,情况要更复杂一些。
EAC3,全称Enhanced AC-3 bit streams,与AC3类似,但不能后向兼容。AC3的decoder不能解EAC3的bitstream,EAC3的decoder即能解AC3,也能解EAC3。
bsi()域中的numblkscod标明每个syncframe包含多少个block,
与AC3不同(AC3每个syncframe一定包含6个audio block,解码出来共1536个sample),
EAC3每个syncframe不一定包含6个block,即如果每个syncframe只有一个有效block,那么该frame只包含256个sample。
可以更方便的指定,多个sample来编码一帧。比如256个sample也可以编码一帧。