zoukankan      html  css  js  c++  java
  • EAC3 Spectral Extension Process

    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.

  • 相关阅读:
    数据结构 零散4(数组)
    数据结构 零散3(链表)
    数据结构 零散2(哈希表)
    数据结构 零散1(栈)
    javaweb2 URL(查找的过程)
    javaWeb1 tomcat
    vim正则表达式的替换变量
    vi搜索统计个数
    Openwrt修改默认IP,主机名,密码
    vi里面对列排序
  • 原文地址:https://www.cnblogs.com/fellow1988/p/8922701.html
Copyright © 2011-2022 走看看