EAC3 Spectral Extension Process

 

1.overviewdom

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

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.code

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

2.Sub-Band Structureblog

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

 

spx_begin_subbnd经过spxbegf获得,标识第一个spctral extension subband的index.it

spx_end_subbnd经过spxendf获得,标识最后一个spctral extension subband的index.io

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

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

若是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.

相关文章
相关标签/搜索