1.overview

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

transform coefficients合成包括:copy低频部分的transform coefficients insert到高频部分,作为高频部分的transform coefficients. inserted transform coefficients与pseudo-random noise做blending, scaling blended transform coefficients,使得blended transform coefficients match原始信号的spectral evelop, scale factor在encoder端基于spectral extension band计算,并传送到decoder.

spxbegf和spxendf标识spectral extension的起始和结束频率。

2.Sub-Band Structure

transform coefficients #25到#228 组合成17个subband,每个subband包含12个transform coefficients.

spx_begin_subbnd通过spxbegf得到,标识第一个spctral extension subband的index.

spx_end_subbnd通过spxendf得到,标识最后一个spctral extension subband的index.

几个连续的spectral extension subband可以组合成一个spectral extenssion bands,每个spectral extension band产生一个spectral extension coordinate.

spectral extension bands的个数和size由spectral extension band structure array(spxbndstrc[])决定。

如果spxbndstr[bnd]为0表示当前subband是一个新的spectral extension band的开始。

如果spxbndstr[bnd]为1表示当前subband是属于前一个spectral extension band。

3. Spectral extension coordinate

当使用spectral extension(chinspx[ch] == 1)时,spectral extension coordinate存在于每个channel的每个spectral extension band中。

spxcoe[ch] ==0,则当前channel 的spectral coordinates不包含在bitstream中,复用前面的spectral coordiantes.

spectral coordinate以浮点形式表示,包含4bit的spxcoexp[ch][bnd]和2bit的spxcomant[ch][bnd]。

spectral coordinate的mantissa是无符号的。当exponent 等于15时,mantissa的范围为0.5~1,当exponent小于15时,mantissa的MSB总是1所以不传送只传送接下来的2bit。

spectral coordinate的计算方法如下:

4.High Frequency Transform Coefficient Synthesis

1) Transform Coefficient Translation

Transform coefficient translation 主要是copy 低频的transform coefficients并insert作为高频的transform coefficients.

spxstrtf是一个table中的index,用来决定被copy的第一个transform coefficients.

spx_begin_subbnd通过spxbegf得到,是一个table的index,用来决定insert的第一个transform coefficients.

spx_end_subbnd通过spxendf得到,是一个table的index,用来决定insert的最后一个transform coefficients.

tranform coefficient translation基于band进行,copy动作从copyindex处的transform coefficients,到copyindex+ bandsize– 1处的transform coefficients结束.

insert动作从insertindex处的transform coefficients,到insertindex+ bandsize– 1处的transform coefficients结束.

在每个band做copy之前,copyindex+ bandsize– 1与copyendmant比较,如果大于等于copyendmant,那么将copyindex reset成copyendmant,并将wrapflag[bnd]设置为1.

2)Transform Coefficient Noise Blending

translated transform coefficients需要与pseudo-random noise做blending使得audio signal 听起来更自然。

2.1)Blending Factor Calculation

首先需要计算pseudo-random noise与translated transform coefficients的blending factor.每个band的blending factor是基于spxblend和该band的mid-point frequecy进行计算。

某一个block存在新的spectral extension coordinates,那么当前block也存在spxblend参数,其他block可能会复用spectral extension coordinates.

blending factor计算如下:

2.2)Banded RMS Energy Calculation

下一步计算translated coefficients的RMS energy. RMS energy用来在blending前scale pesudo-random noise sample。

RMS energy计算方法如下:

2.3)Transform Coefficient Band Border Filtering

当spectral extension attenuation 在某个channel  enabled时,notch filter作用于base band和extension region的边界周围。

notch filter在extension region的第一个bin处是对称的,总共cover 5个bin。filter的前3个attenuation values 通过spxattencod[ch]作为index查找table得到,后面2个attenuation values由于对称并不存在于table中。

notch filter也作用于在transorm coefficient translation时某个band处发生了wrap,即wrapflag[band]等于1时。

notch filter在transform coefficient translation和计算banded RMS energy之后,在noise scaling和transform coefficients blending之前。

2.4)Noise Scaling and Transform Coefficient Blending Calculation

为了更合适的进行pesudo-random noise和translated transform coefficients的blending.每个band的noise需要进行scale来match 每个band中translated transform coefficients的RMS energy.

noise scaling和translated transform coefficients blending过程如下:

2.5)Blended Transform Coefficient Scaling

最后一步是将blended transform coefficients用spectral extension coordinates进行scale来形成最终的高频transform coefficients.

EAC3 Spectral Extension Process的更多相关文章

  1. EAC3 spectral extension原理

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

  2. 用于PHP的Gearman Worker管理工具GearmanManager

    项目地址:https://github.com/brianlmoon/GearmanManager PHP环境要求 PHP 5.5.9 POSIX extension Process Control ...

  3. Python爬取CSDN博客文章

    0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...

  4. suffix tree

    文章出处:http://www.cnblogs.com/snowberg/archive/2011/10/21/2468588.html   3   What is a Suffix Tree Suf ...

  5. puppeteer(五)chrome启动参数列表API

    List of Chromium Command Line Switches https://peter.sh/experiments/chromium-command-line-switches/ ...

  6. CEF 支持的命令行参数

    参考:https://peter.sh/experiments/chromium-command-line-switches/ List of Chromium Command Line Switch ...

  7. Capabilities & ChromeOptions

    https://sites.google.com/a/chromium.org/chromedriver/capabilities http://stackoverflow.com/questions ...

  8. List of Chromium Command Line Switches(命令行开关集)——官方指定命令行更新网址

    转自:http://peter.sh/experiments/chromium-command-line-switches/ There are lots of command lines which ...

  9. 谷歌扩展程序--------------Message

    转载:https://developer.chrome.com/extensions/messaging#external-webpage Message Passing Since content ...

随机推荐

  1. 【巨杉数据库SequoiaDB】省级农信国产分布式数据库应用实践

    本文转载自<金融电子化> 原文链接:https://mp.weixin.qq.com/s/WGG91Rv9QTBHPsNVPG8Z5g 随着移动互联网的迅猛发展,分布式架构在互联网IT技术 ...

  2. PAT (Basic Level) Practice (中文)1029 旧键盘 (20 分)

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...

  3. 论文阅读笔记(十一)【ICCV2017】:Jointly Attentive Spatial-Temporal Pooling Networks for Video-based Person Re-Identification

    Introduction (1)Motivation: 当前采用CNN-RNN模型解决行人重识别问题仅仅提取单一视频序列的特征表示,而没有把视频序列匹配间的影响考虑在内,即在比较不同人的时候,根据不同 ...

  4. AI机器人最高等级

    AI机器人最高等级 题目描述 在小朱朱的游戏世界里,有n个AI机器人. 他们相互之间可以进行PK,胜方存活且升一级,负方直接淘汰. 高等级AI必定战胜低等级AI,同等级AI的PK结果必定一胜一负,且规 ...

  5. Docker最全教程——从理论到实战(二十二)

    前言 最近正在抽时间编写k8s的相关教程,很是费时,等相关内容初步完成后,再和大家分享.对于k8s,还是上云更为简单.稳定并且节省成本,因此我们需要对主流云服务的容器服务进行了解,以便更好地应用于生产 ...

  6. 模块简介与matplotlib基础

    模块简介与matplotlib基础 1.基本概念 1.1数据分析 对已知的数据进行分析,提取出一些有价值的信息. 1.2数据挖掘 对大量的数据进行分析与挖掘,得到一些未知的,有价值的信息. 1.3数据 ...

  7. SQLyog怎么导入mysql数据库

    参考链接:https://jingyan.baidu.com/article/647f0115c5ad9f7f2148a8c6.html

  8. 《深入理解java虚拟机》读书笔记一——第二章

    第二章 Java内存区域与内存溢出异常 1.运行时数据区域 程序计数器: 当前线程所执行的字节码的行号指示器,用于存放下一条需要运行的指令. 运行速度最快位于处理器内部. 线程私有. 虚拟机栈: 描述 ...

  9. Linux运维--14.Kolla部署OpenStack使用external MariaDB Galera Cluster

    使用haproxy+keepalived实现Mariadb负载均衡 controller2: 10.100.2.52 haproxy+keepalived controller3: 10.100.2. ...

  10. idea软件操作

    1.快捷键: 1.1.格式化代码:crtl+alt+L 1.2.一些构造啊,setter/getter等方法:alt+insert 1.3.crtl + f 搜素当前页面