本發(fā)明涉及一種多路空間音頻信號壓縮和恢復(fù)方法,屬于音頻信號處理技術(shù)領(lǐng)域,尤其是空間音頻編解碼技術(shù)領(lǐng)域。
背景技術(shù):
隨著數(shù)字多媒體技術(shù)的研究和發(fā)展,面向更多聲道的空間音頻逐漸被應(yīng)用在人們的生活中,更多聲道的加入會使得環(huán)繞感增加,提高人們的視聽享受,然而多聲道音頻隨著聲道數(shù)目驟增,其數(shù)據(jù)量也會倍增,因此一些空間音頻編解碼技術(shù)應(yīng)運而生,如mpegsurround,mpegaac,dolbyac-3等編碼,它們大多都是在編碼端通過將多聲道下混為更少的聲道,然后提取空間參數(shù)信息一起傳輸,在解碼端再上混為多聲道信號。
傳統(tǒng)的空間參數(shù)的提取方式一般是進行矢量化,破壞了原有數(shù)據(jù)的空間結(jié)構(gòu)和內(nèi)在聯(lián)系,而多路空間音頻信號(例如多聲道或者基于場景采集的多路音頻信號)對于更低速率的傳輸要求則需要更大程度的壓縮,因此如何對多路空間音頻信號進行合理建模、高效壓縮、有效重建是空間音頻編解碼的關(guān)鍵性問題。多路空間音頻信號可以拆解為受多種因素影響的信號,適合用高階張量表示其信號空間,再利用張量分析進行低秩張量分解,進行壓縮和重構(gòu)。
張量分析源于多邊分析,是矢量和矩陣的高階推廣,對于某個對象的高階張量結(jié)構(gòu)可以利用張量代數(shù)進行分析和處理,并且已經(jīng)在多個領(lǐng)域被廣泛應(yīng)用。近些年來,在多媒體信號處理領(lǐng)域,張量有許多成功的應(yīng)用實例,如基于人物、表情、視角和光線4個因素構(gòu)建了張量臉;在說話人自適應(yīng)和說話人轉(zhuǎn)換中將傳統(tǒng)的特征音技術(shù)拓展為用張量表示說話人空間;在多聲道音頻信號處理領(lǐng)域,我國公開號為“cn102982805a”(公開日為2013年3月20日)的專利“一種基于張量分解的多聲道音頻信號壓縮方法”首次將張量引入到多聲道音頻信號的壓縮中,本發(fā)明雖然在多路空間音頻信號的壓縮與恢復(fù)中也利用張量分析理論,但是在空間音頻張量的建模方式和因子矩陣的訓(xùn)練模式上有較大不同,這種新的建模方式適用性更強,壓縮效果要更好。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的是通過對多路空間音頻信號構(gòu)建高階模型,進行高效壓縮,提出了一種基于張量建模的多路空間音頻信號的壓縮和恢復(fù)方法,不僅可以同時考慮聲道和時頻的多因素問題,而且優(yōu)化了因子矩陣的訓(xùn)練。
為了實現(xiàn)上述目的,本發(fā)明方法的基本思路是:對于多路空間音頻信號(例如多聲道音頻),首先進行時域聲道能量歸一化,得到聲道能量調(diào)整參數(shù),每個聲道的音頻信號通過能量調(diào)整、加窗、分幀和時頻變換,然后將多聲道音頻信號分為訓(xùn)練樣本集和測試樣本集,對于訓(xùn)練樣本集的多聲道音頻信號,在樣本、聲道、時域和頻域上建立四階音頻張量空間,利用張量分解進行低秩近似,得到三個低秩因子矩陣(樣本空間上的投影矩陣設(shè)置為單位矩陣)用于測試樣本集的壓縮和恢復(fù),對于測試樣本集的多聲道信號,建立包含聲道、時域和頻域的三階張量信號,與訓(xùn)練好的三個低秩因子矩陣通過張量運算得到低秩的核張量,在解碼端,將傳輸而來的核張量與訓(xùn)練好的三個低秩因子矩陣通過張量重構(gòu)得到頻域上歸一化的多路空間音頻信號,最后通過對每個聲道的信號進行逆變換,并通過重疊相加和聲道能量調(diào)整恢復(fù)到原來的多路空間音頻信號。
本發(fā)明提出一種基于張量建模的多路空間音頻信號壓縮方法,包括以下步驟:
步驟一:獲得聲道能量調(diào)整參數(shù),用于時域聲道能量歸一化,對于聲道數(shù)目為n樣本數(shù)為m的多路空間音頻信號,求得每個聲道音頻信號的平均能量值ech,然后對這p=m×n個能量值求平均值,作為標準歸一化的參數(shù)e0,反過來除以每個聲道的平均能量值,得到每個聲道對應(yīng)的聲道能量調(diào)整參數(shù)ech;
其中,xi為單個聲道的采樣點,c為每個聲道的采樣點的個數(shù)。
步驟二:利用步驟一得到的ech乘以對應(yīng)聲道的音頻數(shù)據(jù)得到歸一化的多路空間音頻信號,接著將每個聲道的音頻信號采用漢明窗進行分幀,幀長為l,幀移為k,每個聲道的音頻信號被分成t個幀序列;
步驟三:對每個聲道中的每一幀音頻信號進行時頻變換,得到頻域上長度為f的特征參數(shù);
時頻變換為正交變換,優(yōu)選為離散余弦變換(dct);
步驟四:將每個聲道的每一幀音頻信號所對應(yīng)的f個特征參數(shù)作為矩陣的每一行,即每個聲道的t幀音頻信號的特征參數(shù)可以構(gòu)成一個大小為t×f的系數(shù)矩陣;
將每個樣本的n個聲道的系數(shù)矩陣依次進行排列,構(gòu)成大小為n×t×f的三階音頻張量空間z,其三個維度為:聲道、幀序列、頻域系數(shù);
步驟五:從m個多聲道樣本中隨機選取m1個作為訓(xùn)練樣本集,其余的作為測試樣本集,為m2個;
對于m1個訓(xùn)練樣本,將步驟四構(gòu)造的三階音頻張量信號依次進行排列,構(gòu)成大小為m1×n×t×f的四階音頻張量空間x,其四個維度分別為:樣本、聲道、幀序列、頻域系數(shù);
上述的參數(shù)m滿足m=m1+m2,且作為優(yōu)選m1≥10;
步驟六:對步驟五構(gòu)造的四階音頻張量空間x進行張量分解,如下式:
x=s×1us×2uc×3ut×4uf(4)
上式中的s為四階低秩核張量,其在樣本子空間、聲道子空間、幀序列子空間、頻域子空間上的維數(shù)分別為m1、r、q、o;其中us、uc、ut和uf分別為音頻張量x投影在樣本、聲道、幀序列和頻域四個子空間下的低秩因子矩陣,即:
us為音頻張量x經(jīng)過張量分解投影在樣本空間上的低秩矩陣,其大小為m1×m1,由于其在本算法中沒有具體物理含義,故一開始將其設(shè)置為單位矩陣i;
uc為音頻張量x經(jīng)過張量分解投影在聲道空間上的低秩矩陣,其大小為n×r,且滿足1≤r≤n;
ut為音頻張量x經(jīng)過張量分解投影在幀序列空間上的低秩矩陣,其大小為t×q,且滿足1≤q≤t;
uf為音頻張量x經(jīng)過張量分解投影在頻域空間上的低秩矩陣,其大小為f×o,且滿足1≤o≤f;
其中,×1、×2、×3、×4分別表示張量在第一階、第二階、第三階、第四階的張量矩陣乘,張量矩陣乘定義為:若一個n階的張量
上述的低秩因子矩陣ut的參數(shù)q優(yōu)選為q=t;
上述的張量分解采用交替最小二乘法(alternatingleastsquares,als)計算;
步驟七:對m2個測試樣本采用步驟四的張量建模方式得到m2個不同的三階張量信號y,與步驟六的三個低秩因子矩陣進行下式的張量運算得到壓縮的核張量g,其大小為r×q×o;
上式中
步驟八:將步驟七得到的核張量g與步驟一得到的聲道能量調(diào)整參數(shù)轉(zhuǎn)化為一維信號,然后經(jīng)過量化、編碼傳輸?shù)浇獯a端,而三個低秩因子矩陣不需要編碼傳輸;
與多路空間音頻信號壓縮方法相對應(yīng),本發(fā)明還提出了一種基于張量建模的多路空間音頻信號恢復(fù)方法,包括以下步驟:
步驟九:在解碼端,經(jīng)過解碼與升維,得到壓縮的核張量g和聲道能量調(diào)整參數(shù),核張量g與訓(xùn)練好的三個低秩因子矩陣按照下式進行張量重構(gòu),恢復(fù)出原始的三階張量空間y′;
y'=g×1uc×2ut×3uf(6)
其中,uc、ut和uf分別為接收到的未經(jīng)過編碼的低秩因子矩陣,上式重構(gòu)的三階音頻張量空間y′與原始的三階音頻張量空間y有相同維數(shù)組合n×t×f;
步驟十:由步驟九得到的三階音頻張量空間y′有n個聲道,每個聲道有t個幀序列,每一幀在頻域上有f個特征參數(shù),故按照與步驟三相對應(yīng)的時頻逆變換,得到每幀音頻信號的時域表示;
上述的時頻逆變換與步驟二的時頻變換互為逆變換,本文時頻變換采用dct,則時頻逆變換為逆離散余弦變換(idct);
步驟十一:將步驟十得到的各個聲道上的每幀時域上的音頻信號進行重疊相加恢復(fù)出歸一化的多聲道信號,幀長為l,幀移為k,最后利用傳輸而來的聲道能量調(diào)整參數(shù)對每個聲道的音頻數(shù)據(jù)進行調(diào)整,即歸一化的多路空間音頻數(shù)據(jù)除以應(yīng)的聲道能量調(diào)整參數(shù),恢復(fù)出原始的多路空間音頻信號;
對比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:本發(fā)明在多路空間音頻信號建模方面充分考慮了樣本、聲道、時域及頻域四方面影響因素的特點,對于訓(xùn)練樣本建立四階張量模型,利用張量分解一次性得到因子矩陣,而對于測試樣本建立三階張量模型,與訓(xùn)練好的因子矩陣進行張量運算得到低秩核張量,達到高效壓縮的目的。本發(fā)明獨特的因子矩陣的訓(xùn)練模式,不僅較傳統(tǒng)的多聲道音頻編解碼方法而且較其它的因子矩陣的訓(xùn)練模式增強了聲道間和聲道內(nèi)冗余信息的壓縮能力。
附圖說明
圖1是利用張量分解對多路空間音頻信號進行編解碼的流程圖;
具體實施方式
下面將結(jié)合附圖和實施例對本發(fā)明加以詳細說明,同時也敘述了本發(fā)明技術(shù)方案解決的技術(shù)問題及有益效果,需要指出的是,所描述的實施例僅旨在便于對本發(fā)明的理解,而對其不起任何限定作用。
本發(fā)明以基于聲道或場景下采集的多路空間音頻信號為原始數(shù)據(jù)庫,利用圖1所示的壓縮算法對其進行壓縮重構(gòu):
步驟一:獲得聲道能量調(diào)整參數(shù),用于時域聲道能量歸一化,對于聲道數(shù)n=16,樣本數(shù)m=28的多路空間音頻信號,求得每個聲道音頻信號的平均能量值ech,然后對這p=16×28個能量值求平均值,作為標準歸一化的參數(shù)e0,反過來除以每個聲道的平均能量值,得到每個聲道對應(yīng)的聲道能量調(diào)整參數(shù)ech;
其中的xi為單個聲道的采樣點,c為每個聲道的采樣點的個數(shù)。
步驟二:利用步驟一得到的16×28個聲道能量調(diào)整參數(shù)去乘以對應(yīng)聲道的音頻數(shù)據(jù)得到歸一化的多路空間音頻信號,接著將每個聲道的音頻信號采用漢明窗進行分幀,幀長l=960,幀移k=480,每個聲道的音頻信號的幀序列t=899;
步驟三:對每個聲道中的每一幀音頻信號進行離散余弦變換(dct),得到頻域上的特征參數(shù),長度f=960;
步驟四:將每個聲道的每一幀音頻信號所對應(yīng)的f個特征參數(shù)作為矩陣的每一行,即每個聲道的t幀音頻信號的特征參數(shù)可以構(gòu)成一個大小為t×f的系數(shù)矩陣,即大小為899×960;
將每個樣本的n個聲道的系數(shù)矩陣依次進行排列,構(gòu)成大小為n×t×f的三階音頻張量空間z,其三個維度分別為:聲道、幀序列、頻域系數(shù);
步驟五:從m個多聲道樣本中隨機選取m1個作為訓(xùn)練樣本集,其余的作為測試樣本集,為m2個;
對于m1個訓(xùn)練樣本,將步驟四構(gòu)造的三階音頻張量信號依次進行排列,構(gòu)成大小為m1×n×t×f的四階音頻張量空間x,其四個維度分別為:樣本、聲道、幀序列、頻域系數(shù);
上述的訓(xùn)練樣本集m1=20,測試樣本集m2=8;所構(gòu)成的四階音頻張量空間x大小為20×16×899×960,三階音頻張量空間y的大小為16×899×960;
步驟六:對步驟五構(gòu)造的四階音頻張量空間x進行張量分解,如下式:
x≈s×1us×2uc×3ut×4uf(10)
上式中的s為四階低秩核張量,其在樣本子空間、聲道子空間、幀序列子空間、頻率子空間上的維數(shù)分別為m1、r、q、o;其中us、uc、ut和uf分別為音頻張量x投影在樣本、聲道、幀序列和頻率四個子空間下的低秩因子矩陣,即:
us為音頻張量x經(jīng)過張量分解投影在樣本空間上的低秩矩陣,其大小為m1×m1,由于其在本算法中沒有具體物理含義,故一開始將其設(shè)置為單位矩陣i;
uc為音頻張量x經(jīng)過張量分解投影在聲道空間上的低秩矩陣,其大小為n×r,且滿足1≤r≤n;
ut為音頻張量x經(jīng)過張量分解投影在幀序列空間上的低秩矩陣,其大小為t×q,且滿足1≤q≤t;
uf為音頻張量x經(jīng)過張量分解投影在頻域空間上的低秩矩陣,其大小為f×o,且滿足1≤o≤f;
其中的×1、×2、×3、×4分別表示張量在第一階、第二階、第三階、第四階的張量矩陣乘,張量矩陣乘定義為:若一個n階的張量
上述的低秩因子矩陣us對本次算法沒有任何物理意義,故本次將其設(shè)置為單位矩陣i,大小為20×20;對于投影在時域上的因子矩陣ut來說,如果對其進行低秩投影將會嚴重影響重建后的音頻質(zhì)量,故不對其做低秩投影,使q=t=899;通過設(shè)置較低的r、o,在聲道和頻域上進行低秩投影得到低秩因子矩陣uc和uf,分別滿足1≤r≤n、1≤o≤f。
上述的張量分解采用交替最小二乘法(alternatingleastsquares,als)計算;
步驟七:對m2個測試樣本采用步驟四的張量建模方式得到m2個不同的三階張量信號y,與步驟六的三個低秩因子矩陣進行下式的張量運算得到壓縮的核張量g,其大小為r×q×o;
上式中
步驟八:將步驟七得到的核張量g與步驟一得到的聲道能量調(diào)整參數(shù)轉(zhuǎn)化為一維信號,然后經(jīng)過量化、編碼傳輸?shù)浇獯a端,而三個低秩因子矩陣不需要編碼傳輸;
步驟九:在解碼端,經(jīng)過解碼與升維,得到壓縮的核張量g和聲道能量調(diào)整參數(shù),核張量g與訓(xùn)練好的三個低秩因子矩陣按照下式進行張量重構(gòu),恢復(fù)出原始的三階張量空間y′;
y'=g×1uc×2ut×3uf(12)
上式重構(gòu)的三階音頻張量空間y′與原始的三階音頻張量空間y有相同維數(shù)組合n×t×f,即16×899×960;
步驟十:由步驟九得到的三階音頻張量空間y′有16個聲道,每個聲道有899個幀序列,每一幀在頻域上有960個特征參數(shù),故按照與步驟三相對應(yīng)的逆離散余弦變換(idct),得到每幀音頻信號的時域表示;
步驟十一:將步驟十得到的各個聲道上的每幀時域上的音頻信號進行重疊相加恢復(fù)出歸一化的多路空間音頻信號,幀長l=960,幀移為k=480,最后利用傳輸而來的聲道能量調(diào)整參數(shù)對每個聲道的音頻數(shù)據(jù)進行調(diào)整,即歸一化的多路空間音頻數(shù)據(jù)除以對應(yīng)聲道的聲道能量調(diào)整參數(shù),恢復(fù)出原始的多路空間音頻信號;
為了更一步的說明壓縮的具體過程,選取其中一種壓縮情況給出具體的說明:在編碼端,對于四階音頻張量x(大小為20×16×899×960),對其分別在聲道、時域、頻域上進行低秩近似的張量分解,其中參數(shù)r=2、q=899、o=400,則可以得到大小為16×2的低秩因子矩陣uc、899×899的低秩因子矩陣ut、960×400的低秩因子矩陣uf,與三階音頻張量y(大小16×899×960)進行張量運算得到大小為2×899×400的核張量g;在解碼端,核張量g再與訓(xùn)練好的低秩因子矩陣進行張量重構(gòu)恢復(fù)出原始的三階音頻張量y′。因子矩陣的訓(xùn)練是采用與測試樣本不同的建模方式,將所考慮的樣本數(shù)作為一個子空間構(gòu)建四階音頻張量,而在低秩近似的張量分解將其設(shè)置為單位矩陣,在其他三個子空間中進行低秩投影得到三個低秩因子矩陣,用于后續(xù)多路空間音頻的壓縮和重構(gòu)。
通過設(shè)置不同的r和o,也會得到不同尺寸大小的核張量g,從而得到不同的壓縮效率,由于只有聲道能量調(diào)整參數(shù)和低秩的核張量用于傳輸,而聲道能量調(diào)整參數(shù)相比于核張量來說只占用很少的比特數(shù),所以壓縮效果可以近似用壓縮百分比
表1多路空間音頻信號壓縮百分比的結(jié)果