1.Spectral extension简介

Spectral extension是通过低频的transform coefficients合成高频transform coefficients的过程。

spectral extension的实现与channel coupling类似,但是由于只需要transmit一些用于合成高频transform coefficients的metadat,因此比coupling更能减少datarate。

而且spectral extension能用于mono signal,而coupling至少需要2个channel.

spectral extension的核心部分是band structure, spectral extension band接近于critical band. spectral extension基于band来计算energy ratio和band border.

原始信号的频谱如下图:

信号的频谱分为两个部分:baseband region和extension region. extension region基于band structure分为多个band,对于每一个band计算一个energy ratio.对于整个extension region,通过measure extension region的noise-like character得到一个noise blending parameter.计算出这些parameter后,原始信号的extension region的transform coefficient被discard.

接下来进行translation,其过程如下图:

translation将baseband region的transform coefficient copy到extension region.

baseband region中被copy的部分称为copy region.通常copy region会比extension region小,因此会将copy region进行多次copy来fill extension region,这种过程称为wrapping,在Figure 8中copy region被wrap了两次。wrap会导致translation过程中边界处频谱的不连续。由于每个band对应一个scale factor,如果wrapping发生在一个band内,scale factor并不能减少这种不连续。如果wrapping只发生在band  border,紧邻的两个bandd的scale factor可以减少不连续。因此translation确保wrapping发生在band之间。

简单的从baseband region copy到extension region不能产生natural sound signal.因为大部分signal在随着频率增大会更像noise.因此translated transform coefficients需要和noise spectrum根据noise-blending function 进行blend.

由于大部分signal在高频部分更像noise ,因此noise-blending function在高频权重更大。noise-blending function是线性的,其slope依赖于原始信号的bandwidth,其intercept依赖于noise blending parameter.

产生的noise spectrum的band energy和translated band相同,noise spectrum乘以noise-blending function得到的信号如下:

translated spectrum和inverse noise-blending function相乘的结果如下:

乘以了 noise-blending function后的translatged spectrum和noise spectrum进行blending如下图,注意每个blended band的energy和figure 8中的translated band的energy相等。

blending后的translated spectrum使用energy ratio进行scale后的spectrum与原始信号的banded envelop match:

2. Encoder Operation

Encoder分析extension region计算出noise-blending parameter,决定band structure,并simulates decoder translation来计算出energy ratio.

在encoder分析extension region的spectral envelop的两个条件:时间上angle precession的变化和magnitute 的变化。如果angle or magnitute变化不连续,原始信号的spectrum更像noise,所以在translation后会blending更多noise,否则则blending较少noise.在bitstream中, noise-blending parameter quantize为5 bit。

banding structure的一个band包含多个subband,每个subband包含12个transform coefficient. default banding structure接近于auditory critical band.

接下来计算energy ratio:

首先计算extension region的banded energy:

在encoder端,simulate translation过程,计算synthesized extension region的banded energy.

计算energy ratio:

3.Decoder Operation

Decoder基于baseband transform coefficients和encoder 传送的metadata合成高频部分的transform coefficients.

Spectral extension decoding 过程如下:

在decoder首先进行translation,将baseband copy region的transform coefficients copy到extension region。

接下来generate noise spectrum来与translated transform coefficients进行blending. noise spectrum 使用zero-mean, unity-variance pseudo-random noise generator来产生。

每个band的noise-blending factors由noise-blending parameter 得到:

通过noise-blending factors计算mixing coefficients.

接下来将translated transform coefficients 和noise spectrum 进行blending:

与noise spectrum blending后的transform coefficients乘以energy ratio得到高频部分的transform coefficients:

EAC3 spectral extension原理的更多相关文章

  1. EAC3 Spectral Extension Process

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

  2. Category VS Extension 原理详解

    (一)Category 1.什么是Category? category是Objective-C 2.0之后添加的语言特性,别人口中的分类.类别其实都是指的category.category的主要作用是 ...

  3. iOS中Category和Extension 原理详解

    (一)Category .什么是Category? category是Objective-C .0之后添加的语言特性,别人口中的分类.类别其实都是指的category.category的主要作用是为已 ...

  4. Jerry的Fiori原创文章合集

    我曾经于2014年10月到2016年5月工作于SAP CRM Fiori应用的开发团队, 我所在的团队负责下列这8个Fiori应用的维护和持续开发: My Opportunities My Tasks ...

  5. 谱聚类(spectral clustering)原理总结

    谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...

  6. 谱聚类(Spectral Clustring)原理

    谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也 ...

  7. EAC3 channel & program extension

    EAC3 bit stream syntax允许在single bitstream中存在time-multiplexed substreams. 在EAC3的signle bitstream中,允许s ...

  8. 线性判别分析LDA原理总结

    在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结.这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结. ...

  9. Java ClassLoader 原理详细分析(转)

    转载自:http://www.codeceo.com/article/java-classloader.html 一.什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管 ...

随机推荐

  1. 《操作系统真象还原》BIOS

    以下是读本书第二章的收获. 记得我大学学习操作系统的时候会遇到一些奇奇怪怪的问题,因为觉得问题太奇怪了,所以羞于问老师.诸如ROM到底是个什么东西:如果用内存映射的方式访问外部设备,是不是内存条里专门 ...

  2. Pikachu-php反序列化

    在理解这个漏洞前,你需要先搞清楚php中serialize(),unserialize()这两个函数. 序列化serialize()序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象 ...

  3. redis看这一篇就够了

    redis的下载安装 准备相关依赖 yum install gcc 下载安装包 # 切换到存放安装包到目录 cd /usr/local # 下载安装包 wget http://download.red ...

  4. python基础(1):第一个python程序的编写

    1.第一个python编程 1.1 python的安装 1> https://www.python.org/  进入python官网,选择目标版本进行download 2> 点击setup ...

  5. php 爬虫采集

    概述 现在爬虫技术算是一个普遍的技术了,各个语言的爬虫百家争鸣,但是根据笔者自己的感觉还是python是主流.爬虫涉及到太多的东西,笔者并不是专业的爬虫工程师,只不过个人兴趣分享一下.由于笔者是php ...

  6. laravel中redis数据库的简单使用

    1.简介 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s . 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Set ...

  7. laravel本地化扩展包的下载使用

    1.下载扩展包 composer require caouecs/laravel-lang:~3.0 2.下载完成之后在根目录下的vendor中caouces\src下就是语言的扩展包 2.1我们复制 ...

  8. unity ui中使用onmouseover

    unity ui中鼠标移进或者移出的触发方式与2d.3d的不同,2d.3d物体使用的是onmouseover,ui使用的是OnPointerEnter.需要实现以下两个接口. public class ...

  9. Codeforces Round #616 (Div. 2) B. Array Sharpening

    t题目链接:http://codeforces.com/contest/1291/problem/B 思路: 用极端的情况去考虑问题,会变得很简单. 无论是单调递增,单调递减,或者中间高两边低的情况都 ...

  10. python笔记06

    python笔记06 数据类型 上个笔记内容补充 补充 列表 reverse,反转. v1 = [1,2,3111,32,13] print(v1) v1.reverse() print(v1) v1 ...