EAC3 channel & program extension

Posted fellow_jing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EAC3 channel & program extension相关的知识,希望对你有一定的参考价值。

EAC3 bit stream syntax允许在single bitstream中存在time-multiplexed substreams。

在EAC3的signle bitstream中,允许signle program大于5.1 channel,最大5.1ch的multi-program,或者5.1ch program和大于5.1ch program的混合。

一个EAC3的bitstream,必须包含至少一个independent substream. EAC3 bitstream可以optionally包含多个independent substream,或者多个independent substream和多个dependent substream的组合。

如果输入是EAC3的bitstream, AC3 decoder必须能够解码出independent substream 0,跳过bitstream中其他的independent substreams和dependent substreams.

1.Decoding a Single Program with Greater than 5.1 Channels

当bitstream中包含一个single program, channel数大于5.1.

为兼容5.1 speaker的playback system, independent substream 0包含该program 5.1 ch的downmix信号。independent substream 0也可以downmixed来兼容少于5.1 speaker的playback system.对于5.1 speaker的playback system, decoder只decode independent substream 0,跳过dependent substream.

为了适应大于5.1 speaker的playback system, EAC3 bitstream将包含一个或多个dependent substream,在dependent substreams中包含一些channels,这些channel可能会替换掉independent substream 0中对应的channel,可能会对independent substream做一些额外的补充。

如果dependent substream中的参数chanmape设置为0,那么dependent substream中的参数acmod和lfeon标识dependent substream中存在的channels,在independent substream 0中对应的channels被dependent substream中的channels替换。例如dependent substream的acmod为1(only center channel),lfeon为1,那么用dependent substream中的center channel和lfe channel替换掉independent substream中的center channel和lfe channel.

如果dependent substream中的参数chanmape设置为1,那么dependent substream中的参数chanmap用来决定dependent substream中所有channel的channel mapping.chanmap的每一个bit用来标识特定channel的location。如果chanmap中某个bit设置为1,则表明dependent substream中包含相应的channel.dependent substream中压缩的channel的顺序和chanmap中设为1的bit的顺序一致。例如chanmap的bit 0,3,4被设置为1,那么dependent substream的acmod =3, lfeon =0,dependent substream的第一个channel是L,第二个channel是Ls,第三个channel是Rs.如果dependent substream中的某些channel与independent substream的channel一样,那么就用dependent substream中的这些channel替换independent substream中相应的channel。如果dependent substream中的某些channel与independent substream的channel不一样,那么这些channel的数据导向相应的speaker.

chanmap总共16个bit,指定dependent substream的custom channel map:

 2.Decoding Multiple Programs with up to 5.1 Channels 

当EAC3 bitstream中包含多个independent substreams,每个independent substream对应于一个独立的audio program.

Aplication interface通过选择一个特定的independent substream ID并告知decoder,decoder决定decode哪个independent audio program。decoder只解码desired independent substream ID对应的program, 跳过其他program.默认选择decode program 1.

在某些情况下,可能需要decode多个independent audio programs.Aplication interface通过选择多个的independent substream IDs并告知decoder。decoder解码所有desired independent substream IDs对应的programs, 跳过其他program.

 3.Decoding a Mixture of Programs with up to 5.1 Channels and Programs with Greater than 5.1 Channels

 当EAC3 bitstream中包含多个independent substreams和dependent substreams,每个independent substream和相应的dependent substream对应于一个independent audio program.

 

 

以上是关于EAC3 channel & program extension的主要内容,如果未能解决你的问题,请参考以下文章

EAC3 Spectral Extension Process

EAC3 mantissa quantization(VQ & GAQ)

EAC3 Adaptive Hybrid Transform (AHT)

利用第三方解码器ffmpeg让群晖DSM6.2.4版本的Video Station支持DTS视频编码和EAC3音频编码

织梦dede:channel取子栏目时重复显示同级栏目的解决方法

NIO的Buffer&Channel&Selector