AC3 channel coupling
1.overview
如果使用channel coupling, encoder端计算所有channel的transform coefficients的平均值,将平均值压缩到coupling channel.每一个coupled channel具有一组唯一的coupling coordinator用来还原出其原始的高频部分的envelop.
channel coupling只在某个频率以上进行,这个频率称为coupling frequecy,在bitstream中用cplbegf标识。
2.subband structure
transform coefficient #37 ~#252被group成18个subband,每个subband中有12个transform coefficients.
cplbegf是第一个进行coupling的subband的index,即从第几个subband开始进行coupling。小于cplbegf标识的频段,所有的channel是独立编码。
channel coupling的截止频率用cplendf(最后一个进行coupling的subband)标识。
coupling band structure使用数组cplbndstrc[sbnd]标识,cplbndstr[]数组中的每一个元素标识该subband是否组合到前面一个coupling band.
cplbndstr[sbnd]为1,表示当前subband和前一个subband组合到一个coupling band.
因此coupling band有多个coulping subband组成。
subband的个数为ncplsubbnd:
ncplsubnd = 3 + cplendf – cplbegf
coupling band的个数为:
ncplbnd = (ncplsubnd – (cplbndstrc[1] + ... + cplbndstrc[ncplsubnd – 1]))
3.coupling coordinate
每一个coupling coordinate由一个4 bit exponent和一个4bit mantissa组成。
cplcoexp[ch][bnd]表示coupled channel "ch"的第“bnd”个coupling band的coupling coordinate的exponent.bnd的范围是0~ncplbnds
cplcomant[ch][bnd]表示coupled channel "ch"的第“bnd”个coupling band的coupling coordinate的mantissa.
使用的2 bit的mstrcplco(master coupling coordinater)可以增加coupling coordinate 的dynamic range. mstrcplco作用于该ch的所有的coupling coordinates.
每个coupled channeld (ch)的coupling band(bnd)的 coupling coordinate(cplco)的计算如下:
通过使用cplbandstrc数组,作用于每个coupling band的coupling coordinate 转化成作用于subband.
coupling channel的mantissa(cplmant)乘以coupling coordinate还原出coupled channel的mantissa:
AC3 channel coupling的更多相关文章
- EAC3 enhanced channel coupling
Enhanced channel coupling是一种spatial coding 技术,在传统的channel coupling的基础上添加了phase compensation, de-corr ...
- AC3 overview
1.AC3 encode overview AC3 encoder的框图如下: AC3在频域采用粗量化(coarsely quantizing)来获取较高的压缩率. 1).输入PCM 经过MDCT变换 ...
- AC3 bit allocation
1.bit allocation overview bit allocation通过分析audio 信号的频谱envelop,使用masking effect来确定使用多少bit来表示频率系数的man ...
- ffmpeg最全的命令参数
Hyper fast Audio and Video encoderusage: ffmpeg [options] [[infile options] -i infile]... {[outfile ...
- ffmpeg full help
Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile ...
- EAC3 spectral extension原理
1.Spectral extension简介 Spectral extension是通过低频的transform coefficients合成高频transform coefficients的过程. ...
- 转载:AAC编解码概述
转自:http://www.cnblogs.com/gaozehua/archive/2012/05/03/2479960.html 编码概述 其整体AAC 编解码系统,如图所示,其编码流程概述如下: ...
- [原创]桓泽学音频编解码(13):AC3 位分配模块算法分析
[原创]桓泽学音频编解码(1):MPEG1 MP3 系统算法分析 [原创]桓泽学音频编解码(2):AC3/Dolby Digital 系统算法分析 [原创]桓泽学音频编解码(3):AAC 系统算法分析 ...
- AC3 encoder flow
AC3 encoder flow 如下: 1.input PCM PCM在进入encoder前会使用high pass filter来移除信号的DC部分来达到更有效的编码. 2.Transient d ...
随机推荐
- PAT (Advanced Level) Practice 1015 Reversible Primes (20 分)
A reversible prime in any number system is a prime whose "reverse" in that number system i ...
- Github+Hexo一站式部署个人博客(原创)
写在前面 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 本文源链接:https://www.cnblogs.com/chloneda/p/hexo.ht ...
- archlinux下安装nvidia驱动解决Nvidia显卡显示问题
root下使用以下命令: sudo pacman -S nvidia nvidia-libgl
- JavaDay2(上)
Java learning_Day2(上) 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...
- ArrayList、LinkedList区别(jdk8)
/** * jdk8 * ArrayList:底层动态数组实现(未初始化指定数组长度) * add():添加元素时,才初始化数组长度为10.容量不够时,动态扩容策略为: 原容量 + 原容量*0.5 * ...
- 将Python模块转变为命令行工具
问:如何输入命令行就能执行python代码呢? 答:要将python模块转变为命令行工具只用在 setup.py 文件中添加参数entry_points 例如: entry_points={ 'con ...
- [SDOI2013] 直径 - 树形dp
对于给定的一棵树,其直径的长度是多少,以及有多少条边满足所有的直径都经过该边. Solution 有点意思 先随便求一条直径(两次DFS即可),不妨设为 \(s,t\),我们知道要求的这些边一定都在这 ...
- (转)最小Hash和局部敏感Hash
转自:http://www.07net01.com/2015/08/907327.html 在数据挖掘中,有一个比较基本的问题,就是比较两个集合的相似度.关于这个问题,最笨的方法就是用一个两重循环来遍 ...
- turtleh海龟库
Turtle海龟库 导入 import turtle turtle.setup(width,height,startx,starty) -setup():设置窗体的位置和大小 相对于桌面的起点的坐标以 ...
- 题解【洛谷P5788】【模板】单调栈
题面 单调栈模板题. 单调栈与单调队列一样,都是维护了一段区间内的顺序. 然后--这个题用一个栈维护一下贪心就没了. 具体参考这一篇题解 #include <bits/stdc++.h> ...