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的更多相关文章

  1. EAC3 spectral extension原理

    1.Spectral extension简介 Spectral extension是通过低频的transform coefficients合成高频transform coefficients的过程. ...

  2. Linux命令:ssh

    ssh介绍 ssh用法 ssh帮助 SSH() BSD General Commands Manual SSH() NAME ssh — OpenSSH SSH client (remote logi ...

  3. Next Instruction Access Intent Instruction

    Executing a Next Instruction Access Intent instruction by a computer. The processor obtains an acces ...

  4. Asterisk manager API(AMI)文档(中文版)

    Asterisk控制接口(AMI)允许管理客户端程序连接到一个asterisk实例并且可以通过TCP/IP流发送命令或读取事件.这在试图跟踪asterisk的状态或其中的电话客户端状态时很有用,AMI ...

  5. asterisk manager api 配置 (manager.conf)

    http://blog.csdn.net/niino/article/details/5748805 要激活AMI,需要在/etc/asterisk/manager.conf中,[general]块下 ...

  6. JCL: What is EXCP

      JCL: What is EXCP ?   EXCP stands for EXecute Channel Program. These are the I/O subsystem hardwar ...

  7. CorelDRAW和Illustrator比较, 9 CorelDRAW Graphics Alternatives

    至于要不要学Illustrator,完全凭个人意愿.如果你精通Coreldraw,学不学都一样.因为二者几乎可以完全替代. CDR:是一个纯图形设计软件.排版比其他二个软件好用. 一般来讲CDR更适合 ...

  8. EAC3 Spectral Extension Process

    1.overview 当使用Spectral extension时,channel中的高频部分的transform coefficients由低频部分合成. transform coefficient ...

  9. EAC3 enhanced channel coupling

    Enhanced channel coupling是一种spatial coding 技术,在传统的channel coupling的基础上添加了phase compensation, de-corr ...

随机推荐

  1. python三器

    1.1 装饰器 1.装饰器的作用 1. 装饰器作用:本质是函数(装饰其他函数)就是为其他函数添加其他功能 2. 装饰器必须准寻得原则: 1)不能修改被装饰函数的源代码 2)不能修改被装饰函数的调用方式 ...

  2. LeetCode 112. 路径总和 (递归遍历二叉树)

    题目链接:https://leetcode-cn.com/problems/path-sum/ 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和 ...

  3. PTA 1002 A+B for Polynomials

    问题描述: This time, you are supposed to find A+B where A and B are two polynomials. Input Specification ...

  4. 第四十九篇 入门机器学习——数据归一化(Feature Scaling)

    No.1. 数据归一化的目的 数据归一化的目的,就是将数据的所有特征都映射到同一尺度上,这样可以避免由于量纲的不同使数据的某些特征形成主导作用.   No.2. 数据归一化的方法 数据归一化的方法主要 ...

  5. pandas时间序列学习笔记

    目录 创建一个时间序列 pd.date_range() info() asfred() shifted(),滞后函数 diff()求差分 加减乘除 DataFrame.reindex() 通过data ...

  6. Java判断一个字符串是否有中文

    Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...

  7. 番外:你真的了解 Oracle 的启动流程吗?

    番外系列说明:该系列所有文章都将作为独立篇章进行知识点讲解,是对其他系列博文进行的补充说明,来自于博客园AskScuti. 主题:关于数据库启动流程的三个阶段 内容预览:本篇涉及数据库启动的三个阶段分 ...

  8. 165.扩展User模型-继承AbstractBaseUser

    继承自AbstractBaseUser模型 如果你想要修改默认的验证方式,并且对于User模型上的一些字段不想要,那么可以自定义一个模型,然后继承自AbstractBaseUser,再添加你想要的字段 ...

  9. JUC-ThreadPool线程池

    一.为什么用线程池 例子:10年前单核CPU电脑,假的多线程,像马戏团小丑玩多个球,CPU需要来回切换. 现在是多核电脑,多个线程各自跑在独立的CPU上,不用切换效率高. 线程池的优势: 线程池做的工 ...

  10. linq和匿名方法、委托、匿名委托、lambda

    委托相当于JavaScript中的闭包,c++中的函数指针. c#为了引进这个函数指针,将其进行包装成“委托”,同时将非托管的变成托管的. 1.最初的委托该怎么用 弊端:写的代码量过多,还要写一个显示 ...