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.

相關文章
相關標籤/搜索