本發(fā)明涉及用于在對(duì)數(shù)字音頻信號(hào)進(jìn)行解碼時(shí)辨別和處理對(duì)前回聲的衰減的方法和設(shè)備。
背景技術(shù):
對(duì)于通過(guò)電信網(wǎng)絡(luò)(不論它們例如是固定網(wǎng)絡(luò)還是移動(dòng)網(wǎng)絡(luò))傳輸數(shù)字音頻信號(hào),或者對(duì)于信號(hào)的存儲(chǔ),使用實(shí)施編碼系統(tǒng)的壓縮(或源編碼)過(guò)程,所述編碼系統(tǒng)的類型通常為線性預(yù)測(cè)時(shí)間編碼或變換頻率編碼。
因此,作為本發(fā)明的主題的方法和設(shè)備的應(yīng)用領(lǐng)域是對(duì)聲音信號(hào)的壓縮,具體地,對(duì)通過(guò)頻率變換來(lái)編碼的數(shù)字音頻信號(hào)的壓縮。
圖1通過(guò)展示的方式表示了根據(jù)現(xiàn)有技術(shù)的通過(guò)包括重疊/相加分析-合成的變換來(lái)進(jìn)行的對(duì)數(shù)字音頻信號(hào)的編碼和解碼的理論框圖。
如打擊樂(lè)等一些音樂(lè)序列和如爆破音(/k/、/t/…)等某些語(yǔ)音片段由非常突然的起動(dòng)來(lái)表征,所述起動(dòng)(onset)由幾個(gè)樣本的空間中的信號(hào)的動(dòng)態(tài)范圍的非常迅速的轉(zhuǎn)變和非常強(qiáng)的變化反映。在圖1中基于樣本410給出了轉(zhuǎn)變的一個(gè)示例。
對(duì)于編碼/解碼處理,輸入信號(hào)被分解成長(zhǎng)度為L(zhǎng)的樣本塊,所述塊的邊界在圖1中由垂直的點(diǎn)線表示。輸入信號(hào)被表示為x(n),其中,n是樣本的索引。分解成連續(xù)塊(或幀)導(dǎo)致了塊XN(n)=[x(N.L)…x(N.L+L-1)]=[xN(0)…xN(L-1)]的定義,其中,N N是塊(或幀)的索引,L是幀的長(zhǎng)度。在圖1中,存在L=160個(gè)樣本。在修正離散余弦變換MDCT的情況下,對(duì)兩個(gè)塊XN(n)和XN+1(n)進(jìn)行聯(lián)合分析以便給出與索引為N的幀相關(guān)聯(lián)的變換系數(shù)塊,并且分析窗口是正弦的。
通過(guò)變換編碼來(lái)應(yīng)用的劃分成塊(也稱為幀)完全獨(dú)立于聲音信號(hào),并且因此,可能在分析窗口的任何點(diǎn)處出現(xiàn)轉(zhuǎn)變?,F(xiàn)在,在變換解碼之后,重構(gòu)信號(hào)受量化(Q)-逆量化(Q-1)操作所生成的“噪聲”(或失真)的影響。這種編碼噪聲以相對(duì)均勻的方式臨時(shí)分布在變換塊的所有時(shí)間支持上(也就是說(shuō),在長(zhǎng)度為2L個(gè)樣本(與L個(gè)樣本重疊)的窗口的整個(gè)長(zhǎng)度上)。編碼噪聲的能量總體上與塊的能量成比例并且是編碼/解碼比特率的函數(shù)。
對(duì)于包括起動(dòng)的塊(如圖1的塊320-480),信號(hào)的能量很高,因此噪聲也具有高電平。
在變換編碼中,對(duì)于緊跟著轉(zhuǎn)變的高能量片段,編碼噪聲的電平通常低于信號(hào)的電平,但是對(duì)于低能量片段,電平高于信號(hào)的電平,特別是在轉(zhuǎn)變之前的部分上(圖1的樣本160-410)。對(duì)于上述部分,信噪比為負(fù),并且所產(chǎn)生的退化在傾聽(tīng)時(shí)可能顯得非常令人感覺(jué)煩擾。在轉(zhuǎn)變之前的編碼噪聲被稱為前回聲,并且在轉(zhuǎn)變之后的噪聲被稱為后回聲。
在圖1中可以看到,前回聲影響轉(zhuǎn)變之前的幀以及發(fā)生轉(zhuǎn)變的幀。
心理聲學(xué)實(shí)驗(yàn)已經(jīng)表明人耳對(duì)聲音執(zhí)行約幾毫秒的相當(dāng)有限的時(shí)間前掩蔽。當(dāng)前回聲的持續(xù)時(shí)間大于前掩蔽持續(xù)時(shí)間時(shí),在起動(dòng)之前的噪聲或前回聲是可聽(tīng)見(jiàn)的。
在從高能量序列到低能量序列的轉(zhuǎn)變時(shí),人耳也執(zhí)行更長(zhǎng)持續(xù)時(shí)間(從5到60毫秒)的后掩蔽。因此,對(duì)于后回聲可接受的干擾比率或干擾水平比對(duì)于前回聲的干擾比率或干擾水平更大。
更關(guān)鍵地,當(dāng)塊的長(zhǎng)度就樣本的數(shù)量而言很大時(shí),前回聲現(xiàn)象越發(fā)令人感覺(jué)煩擾?,F(xiàn)在,在變換編碼中,眾所周知的是,對(duì)于靜態(tài)信號(hào),變換的長(zhǎng)度增大越多,編碼增益越大。在固定采樣頻率和固定比特率下,如果窗口的點(diǎn)數(shù)(因此變換的長(zhǎng)度)增大,則每幀將會(huì)有更多比特來(lái)對(duì)被心理聲學(xué)模型認(rèn)為有用的頻率射線進(jìn)行編碼,因此會(huì)有使用大長(zhǎng)度塊的優(yōu)點(diǎn)。例如,MPEG AAC(高級(jí)音頻編碼)編碼使用包含固定數(shù)量(2048)的樣本的大長(zhǎng)度窗口,即,如果采樣頻率是32kHz,則大于64ms的持續(xù)時(shí)間;在其中通過(guò)使得有可能通過(guò)中間窗口(被稱為轉(zhuǎn)變窗口)從這些長(zhǎng)窗口切換到8個(gè)短窗口而管理前回聲的問(wèn)題,這需要在進(jìn)行編碼時(shí)的某個(gè)延遲以便檢測(cè)轉(zhuǎn)變的存在并且適配窗口。因此,這些短窗口的長(zhǎng)度為256個(gè)樣本(在32kHz處的8ms)。在低比特率下,仍然有可可能具有幾毫秒的可聽(tīng)見(jiàn)的前回聲。窗口的切換使得有可能衰減前回聲而不是消除前回聲。用于如ITU-T G.722.1、G.722.1C或G.719等對(duì)話式應(yīng)用的變換編碼器通常在16、32或48kHz下(分別地)使用20ms的幀長(zhǎng)度和40ms持續(xù)時(shí)間的窗口。可以注意到,ITU-T G.719編碼器結(jié)合具有瞬態(tài)檢測(cè)的窗口切換機(jī)制,但是前回聲并不在低比特率下(通常在32kbit/s下)完全減少。
為了減小前回聲現(xiàn)象的上述令人感覺(jué)煩擾的影響,已經(jīng)在編碼器和/或解碼器方面提出了各種解決方案。
已經(jīng)引用了窗口切換;其需要傳輸輔助信息項(xiàng)以便標(biāo)識(shí)在當(dāng)前幀中使用的窗口的類型。另一個(gè)解決方案包括應(yīng)用自適應(yīng)濾波。在起動(dòng)之前的區(qū)域中,重構(gòu)信號(hào)被視作原始信號(hào)和量化噪聲之和。
在由Y.馬耶克斯(Y.Mahieux)和J.P.佩蒂特(J.P.Petit)發(fā)表的題為“High Quality Audio Transform Coding at 64Kbit/s(在64Kbit/s下的高質(zhì)量音頻變換編碼)”的文章(《電氣電子工程師協(xié)會(huì)通信會(huì)報(bào)》(1994年11月第11期42卷))中已經(jīng)描述了相應(yīng)濾波技術(shù)。
這種濾波的實(shí)施需要參數(shù)的知識(shí),根據(jù)噪聲樣本在編碼器中估計(jì)其中許多參數(shù)(如預(yù)測(cè)系數(shù)和由前回聲損壞的信號(hào)的方差)。然而,如原始信號(hào)的能量等信息僅可以對(duì)編碼器已知并且因此必須對(duì)其進(jìn)行傳輸。這需要傳輸附加信息,所述附加信息在受約束的比特率下減小了分配給變換編碼的相對(duì)預(yù)算。當(dāng)所接收的塊包含動(dòng)態(tài)范圍的突然變化時(shí),將濾波處理應(yīng)用到所述塊。
雖然上述濾波過(guò)程并未使得有可能恢復(fù)原始信號(hào),但是提供了對(duì)前回聲的強(qiáng)減少。然而,這確實(shí)需要向解碼器傳輸附加參數(shù)。
不像以上解決方案,已經(jīng)提出了無(wú)需對(duì)信息的特定發(fā)送的各種前回聲減小技術(shù)。例如,在2008年8月瑞士洛桑市EUSIPCO的B.科斯伍德(B.)、S.拉戈(S.Ragot)、M.高德納(M.Gartner)、H.塔代伊(H.Taddei)的題為“Pre-echo reduction in the ITU-T G.729.1embedded coder(在ITU-T G.729.1嵌入式編碼器中的前回聲減小)”的文章中呈現(xiàn)了對(duì)在分級(jí)編碼的上下文中的前回聲減小的概述。
在法國(guó)專利申請(qǐng)F(tuán)R 08 56248中描述了無(wú)需輔助信息的前回聲衰減處理方法的典型示例。在此示例中,確定了在子塊(已經(jīng)在所述子塊中檢測(cè)到轉(zhuǎn)變或起動(dòng))之前的低能量子塊中的每個(gè)子塊的衰減因子。
第k個(gè)子塊中的衰減因子g(k)例如根據(jù)最高能量子塊的能量與相關(guān)的第k個(gè)子塊的能量之間的比率R(k)來(lái)計(jì)算:
g(k)=f(R(k))
其中,f是值在0與1之間的遞減函數(shù),并且k是子塊的編號(hào)。因子g(k)的其他定義是有可能的,例如,作為當(dāng)前子塊中的能量En(k)的函數(shù)和前一子塊中的能量En(k-1)的函數(shù)。
如果子塊的能量相對(duì)于在當(dāng)前幀中考慮的子塊中的最大能量變化很小,則衰減是不必要的;因子g(k)被設(shè)置為抑制衰減的衰減因子,也就是說(shuō),1。否則,衰減因子位于0與1之間。
在大多數(shù)情況下,首先,當(dāng)前回聲令人感覺(jué)煩擾時(shí),在前回聲幀之前的幀具有與低能量片段(通常為背景噪聲)的能量相對(duì)應(yīng)的均勻能量。根據(jù)實(shí)驗(yàn),在前回聲衰減處理之后,信號(hào)的能量變?yōu)榈陀谔幚韰^(qū)域之前的信號(hào)的平均能量(每子塊)既不是有用的也甚至不是令人期望的,通常為低于前一幀的平均能量,表示為或低于前一幀的后半部分的平均能量,表示為
對(duì)于待處理的索引為k的子塊,可以計(jì)算衰減因子的極限值,表示為limg(k),以便準(zhǔn)確地獲得與在待處理的子塊之前的片段的每子塊的平均能量相同的能量。因?yàn)榇颂幨谷烁信d趣的是衰減值,所以這個(gè)值當(dāng)然被限制為最大為1。更具體地,在此定義如下:
其中,通過(guò)值來(lái)近似估計(jì)前一片段的平均能量。
由此獲得的值limg(k)充當(dāng)在對(duì)子塊的衰減因子的最終計(jì)算時(shí)的下限,并且因此被使用如下:
g(k)=max(g(k),limg(k))
然后,可以通過(guò)逐樣本地應(yīng)用的平滑函數(shù)來(lái)平滑所確定的子塊的衰減因子(或增益)g(k),以便避免衰減因子在塊的邊界處的突然變化。
例如,首先可以將每樣本的增益定義為分段常值函數(shù):
gpre(n)=g(k),n=kL',…,(k+1)L'-1
其中,L'表示子塊的長(zhǎng)度。
然后,可以根據(jù)以下方程來(lái)平滑所述函數(shù):
gpre(n):=αgpre(n-1)+(1-α)gpre(n),n=0,…,L-1
常規(guī)的是,gpre(-1)針對(duì)前一子塊的最后一個(gè)樣本而獲得的最后一個(gè)衰減因子α是平滑系數(shù),通常α=0.85。
其他平滑函數(shù)也是可能的,如例如在u個(gè)樣本上的線性交叉衰落:
其中,gpre′(n)是非平滑衰減,并且gpre(n)是平滑衰減,gpre′(n)和n=-(u-1),…,-1是針對(duì)前一子塊的最后一個(gè)樣本而獲得的最后u-1個(gè)衰減因子,例如,可以取u=5。
一旦由此計(jì)算了因子gpre(n),則通過(guò)將每個(gè)樣本乘以相應(yīng)因子,在當(dāng)前幀xrec(n)中在重構(gòu)信號(hào)上完成對(duì)前回聲的衰減:
xrec,g(n)=gpre(n)xrec(n),n=0,…,L-1
其中,xrec,g(n)是通過(guò)前回聲減小來(lái)解碼和后處理的信號(hào)。
圖2和圖3展示了如在現(xiàn)有技術(shù)專利申請(qǐng)中所描述的、以上所提及的并且之前概述的衰減方法的實(shí)施方式。
在這些示例中,在32kHz下對(duì)信號(hào)進(jìn)行采樣,幀的長(zhǎng)度是L=640個(gè)樣本,并且每個(gè)幀被劃分成k=80個(gè)樣本的8個(gè)子塊。
在圖2的部分a)中,表示了在32kHz下采樣的原始信號(hào)的幀。信號(hào)中的起動(dòng)(或轉(zhuǎn)變)位于起動(dòng)于索引320的子塊中。已經(jīng)以低比特率(24Kbit/s)通過(guò)MDCT類型的變換編碼器對(duì)此信號(hào)進(jìn)行了編碼。
在圖2的部分b)中,展示了在不進(jìn)行前回聲處理的情況下進(jìn)行的解碼的結(jié)果。在包含起動(dòng)的子塊之前的子塊中,可以觀察到來(lái)自樣本160的前回聲。
部分c)示出了通過(guò)在上述現(xiàn)有技術(shù)專利申請(qǐng)中描述的方法來(lái)獲得的前回聲衰減因子(實(shí)線)的趨勢(shì)。點(diǎn)線表示平滑之前的因子。注意,在樣本380周圍估計(jì)起動(dòng)的位置(在由樣本320和400界定的塊中)。
部分d)展示了應(yīng)用前回聲處理之后的解碼的結(jié)果((信號(hào)b)與信號(hào)c)相乘)??梢钥吹?,前回聲確實(shí)已經(jīng)被衰減。圖2還示出了平滑因子在起動(dòng)的時(shí)刻并未回到1,這暗示了起動(dòng)的振幅減小。雖然這種減小的可感知影響是非常小,但是雖然如此卻可以避免。圖3展示了與圖2相同的示例,其中,在平滑之前,對(duì)于起動(dòng)所位于的子塊之前的子塊的幾個(gè)樣本,衰減因子值被強(qiáng)制為1。圖3的部分c)給出了這種校正的示例。
在此示例中,從索引364起動(dòng),已經(jīng)向起動(dòng)之前的子塊的最后16個(gè)樣本分配了因子值1。由此,平滑函數(shù)逐漸增大所述因子從而在起動(dòng)的時(shí)刻具有接近1的值。然后,如在圖3的部分d)中所展示的,起動(dòng)的振幅被保留,但是有幾個(gè)前回聲樣本沒(méi)被衰減。
在圖3的示例中,由于對(duì)增益的平滑,通過(guò)衰減的前回聲減小并未使得有可能將前回聲減小至起動(dòng)的電平。
然而,對(duì)于一些類型的信號(hào)(如例如,現(xiàn)代音樂(lè)信號(hào)),可以完善這種前回聲減小技術(shù)。實(shí)際上,在一些情況下,可能發(fā)生錯(cuò)誤的前回聲檢測(cè)。圖4展示了這種未經(jīng)編碼的且因此不具有前回聲的原始信號(hào)的示例。所述信號(hào)是對(duì)電子/合成打擊樂(lè)器的敲打。此處可以看到,在朝向索引1600的清楚起動(dòng)之前,存在朝向索引1250起始的合成噪聲。假設(shè)對(duì)信號(hào)進(jìn)行完美編碼/解碼,因此形成信號(hào)的一部分的這種合成噪聲將被以上所描述的前回聲檢測(cè)算法檢測(cè)為前回聲。前回聲衰減處理將因此消除此信號(hào)分量。這將使解碼信號(hào)失真(當(dāng)編碼/解碼完美時(shí)),這是不期望的。
因此,需要一種用于在解碼時(shí)辨別和衰減前回聲的增強(qiáng)技術(shù),所述增強(qiáng)技術(shù)使得有可能在編碼器不傳輸任何輔助信息的情況下使對(duì)前回聲的檢測(cè)可靠并避免錯(cuò)誤檢測(cè)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明改善了現(xiàn)有技術(shù)的狀況。
為此,本發(fā)明涉及一種用于對(duì)從變換編碼中生成的數(shù)字音頻信號(hào)進(jìn)行辨別和衰減的方法,其中,對(duì)于分解成子塊的當(dāng)前幀,在子塊(在所述子塊中檢測(cè)到轉(zhuǎn)變或起動(dòng))之前的低能量子塊確定在其中實(shí)施前回聲衰減處理的前回聲區(qū)域。所述方法為使得,在從當(dāng)前幀的第三子塊中檢測(cè)到起動(dòng)的情況下,所述方法包括以下步驟:
-針對(duì)所述當(dāng)前幀的在其中檢測(cè)到起動(dòng)的所述子塊之前的至少兩個(gè)子塊計(jì)算所述能量的首項(xiàng)系數(shù);
-將所述首項(xiàng)系數(shù)與預(yù)定義閾值進(jìn)行比較;以及
-在所述所計(jì)算的首項(xiàng)系數(shù)低于所述預(yù)定義閾值的情況下,抑制所述前回聲區(qū)域中的所述前回聲衰減處理。
所計(jì)算的在所述起動(dòng)的位置之前的子塊的能量的首項(xiàng)系數(shù)使得有可能驗(yàn)證前回聲區(qū)域中的信號(hào)的能量的向上趨勢(shì)。這使得有可能通過(guò)避免錯(cuò)誤前回聲檢測(cè)來(lái)使對(duì)前回聲的檢測(cè)可靠。實(shí)際上,參照?qǐng)D1,可以看到,前回聲具有典型特性:其能量具有增大的趨勢(shì),接近引起前回聲的起點(diǎn)。重疊-相加權(quán)重窗的形式解釋了那一點(diǎn)。即使前回聲具有在相加-重疊之前幾乎恒定的能量,但是在重疊-相加模塊的輸入端處的信號(hào)乘以權(quán)重向過(guò)去減小的權(quán)重窗。在圖4的示例性信號(hào)的情況下,信號(hào)在起動(dòng)之前的能量近似恒定,這使得有可能區(qū)分前回聲。由此,驗(yàn)證前回聲區(qū)域中的信號(hào)的增大能量使得有可能增大前回聲檢測(cè)的可靠性。
在特定實(shí)施例中,所述方法進(jìn)一步包括根據(jù)頻率標(biāo)準(zhǔn)將所述數(shù)字音頻信號(hào)分解成至少兩個(gè)子信號(hào)的步驟,并且其特征在于,針對(duì)所述子信號(hào)中的至少一個(gè)子信號(hào)執(zhí)行比較計(jì)算步驟。
當(dāng)在當(dāng)前幀的第三子塊中檢測(cè)到起動(dòng)的位置時(shí),在前回聲區(qū)域中使用兩個(gè)子塊的能量來(lái)計(jì)算首項(xiàng)系數(shù)并將其與閾值進(jìn)行比較。僅使用兩個(gè)點(diǎn),僅在分解成兩個(gè)子信號(hào)的情況下對(duì)高頻率子信號(hào)的驗(yàn)證足以檢測(cè)錯(cuò)誤前回聲檢測(cè)。
在其中已經(jīng)檢測(cè)到起動(dòng)位置的子塊之前的子塊的數(shù)量足夠的情況下,所述方法進(jìn)一步包括根據(jù)頻率標(biāo)準(zhǔn)將所述數(shù)字音頻信號(hào)分解成至少兩個(gè)子信號(hào)的步驟,并且其特征在于,針對(duì)所述子信號(hào)中的每個(gè)子信號(hào)執(zhí)行所述計(jì)算和比較步驟,當(dāng)對(duì)于至少一個(gè)子信號(hào)而言所計(jì)算的首項(xiàng)系數(shù)低于所述預(yù)定義閾值時(shí),執(zhí)行對(duì)所有所述子信號(hào)的在所述前回聲區(qū)域中的所述前回聲衰減處理的所述抑制。
由此,劃分成子信號(hào)使得有可能獨(dú)立地且以適合于子信號(hào)的方式執(zhí)行前回聲衰減。通過(guò)驗(yàn)證對(duì)應(yīng)首項(xiàng)系數(shù)的值來(lái)增強(qiáng)子信號(hào)中的每個(gè)子信號(hào)的前回聲區(qū)域檢測(cè)可靠性。
根據(jù)特定實(shí)施例,針對(duì)每個(gè)子信號(hào)限定不同的閾值。
這使得有可能使驗(yàn)證適應(yīng)于子信號(hào)的頻譜特性。
在一個(gè)實(shí)施例中,根據(jù)最小二乘估計(jì)法計(jì)算首項(xiàng)系數(shù)。
這種計(jì)算方法的復(fù)雜性很低。
在一個(gè)可能的實(shí)施例中,對(duì)首項(xiàng)系數(shù)進(jìn)行歸一化。
由此,當(dāng)閾值不同于0時(shí),可以更容易地將首項(xiàng)系數(shù)與閾值進(jìn)行比較。
在一個(gè)可能的實(shí)施例中,在所述當(dāng)前幀的所述第一或第二子塊中檢測(cè)到起動(dòng)的情況下,針對(duì)前一幀而計(jì)算的首項(xiàng)系數(shù)用于所述比較步驟。
本發(fā)明還涉及一種用于對(duì)從變換編碼中生成的數(shù)字音頻信號(hào)中的前回聲進(jìn)行辨別和衰減的設(shè)備,所述設(shè)備包括轉(zhuǎn)變或起動(dòng)檢測(cè)模塊、前回聲區(qū)域辨別模塊和前回聲衰減處理模塊,針對(duì)分解成子塊的當(dāng)前幀執(zhí)行回聲衰減處理,在其中檢測(cè)到轉(zhuǎn)變或起動(dòng)的子塊之前的所述低能量子塊中確定前回聲區(qū)域。所述設(shè)備為使得,在從所述當(dāng)前幀的所述第三子塊中檢測(cè)到起動(dòng)的情況下,所述設(shè)備進(jìn)一步包括:
-計(jì)算模塊,所述計(jì)算模塊針對(duì)所述當(dāng)前幀的在其中檢測(cè)到起動(dòng)的所述子塊之前的至少兩個(gè)子塊計(jì)算所述能量的首項(xiàng)系數(shù);
-比較器,所述比較器能夠執(zhí)行對(duì)所述首項(xiàng)系數(shù)與預(yù)定義閾值的比較;以及
-辨別模塊,在所述所計(jì)算的首項(xiàng)系數(shù)低于所述預(yù)定義閾值的情況下,所述辨別模塊能夠抑制在所述前回聲區(qū)域中的所述前回聲衰減處理。
此設(shè)備的優(yōu)點(diǎn)與其實(shí)施的針對(duì)衰減辨別和處理方法而描述的優(yōu)點(diǎn)相同。
本發(fā)明的目標(biāo)在于包括如之前所描述的設(shè)備的數(shù)字音頻信號(hào)解碼器。
本發(fā)明的目標(biāo)還在于包括代碼指令的計(jì)算機(jī)程序,當(dāng)這些指令由處理器執(zhí)行時(shí),所述代碼指令用于實(shí)施如之前所描述的方法的步驟。
最終,本發(fā)明涉及存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)能可由處理器讀取、整合或不整合在處理設(shè)備中、可能地可移除的、存儲(chǔ)實(shí)施如之前所描述的處理方法的計(jì)算機(jī)程序。
附圖說(shuō)明
在閱讀僅作為非限制性示例給出的以下描述時(shí)并且參照所附附圖,本發(fā)明的其他特征和優(yōu)點(diǎn)將變得更更清晰明顯,在附圖中:
-之前所描述的圖1展示了根據(jù)現(xiàn)有技術(shù)的變換編碼-解碼系統(tǒng);
-之前所描述的圖2展示了數(shù)字音頻信號(hào)的示例,根據(jù)現(xiàn)有技術(shù)對(duì)所述數(shù)字音頻信號(hào)執(zhí)行衰減方法;
-圖3展示了數(shù)字音頻信號(hào)的另一個(gè)示例,根據(jù)現(xiàn)有技術(shù)對(duì)所述數(shù)字音頻信號(hào)執(zhí)行衰減方法;
-之前所描述的圖4展示了信號(hào)的示例,對(duì)于所述信號(hào),現(xiàn)有技術(shù)將錯(cuò)誤地檢測(cè)前回聲;
-圖5展示了根據(jù)本發(fā)明的包括在解碼器中的前回聲辨別和衰減處理設(shè)備的實(shí)施例;
-圖6展示了用于有可能創(chuàng)建前回聲現(xiàn)象的變換編碼和解碼的具有低延遲的分析窗口和合成窗口的示例;
-圖7展示了數(shù)字音頻信號(hào)的示例,對(duì)所述數(shù)字音頻信號(hào)實(shí)施根據(jù)本發(fā)明的實(shí)施例的前回聲衰減方法;
-圖8展示了根據(jù)本發(fā)明的辨別和衰減處理設(shè)備的硬件示例。
具體實(shí)施方式
參照?qǐng)D5,描述了前回聲辨別和衰減處理設(shè)備600。如在下文中所描述的衰減處理設(shè)備600包括在解碼器中,所述解碼器包括如參照?qǐng)D1而描述的接收信號(hào)S的逆量化模塊610(Q-1)、逆變換模塊620(MDCT-1)、相加-重疊信號(hào)重構(gòu)模塊630(add/rec)并且將重構(gòu)信號(hào)xrec(n)傳送至根據(jù)本發(fā)明的辨別和衰減處理設(shè)備??梢宰⒁獾剑m然此處采取了語(yǔ)音和音頻編碼中最常用的MDCT變換的示例,但是設(shè)備600同樣適用于任何其他類型的變換(FFT、DCT等)。
在設(shè)備600的輸出端處,提供了已經(jīng)在其中執(zhí)行了前回聲衰減的處理信號(hào)Sa。
設(shè)備600在解碼信號(hào)中實(shí)施前回聲辨別和衰減處理方法xrec(n)。
在本發(fā)明的一個(gè)實(shí)施例中,辨別和衰減處理方法包括在解碼信號(hào)xrec(n)中檢測(cè)(E601)可能生成前回聲的起動(dòng)。
由此,設(shè)備600包括檢測(cè)模塊601,所述檢測(cè)模塊能夠?qū)嵤┰诮獯a音頻信號(hào)中檢測(cè)(E601)起動(dòng)的位置的步驟。
起動(dòng)是信號(hào)的動(dòng)態(tài)范圍(或振幅)的迅速轉(zhuǎn)變和突然變化。可以通過(guò)更通用的術(shù)語(yǔ)“瞬態(tài)”來(lái)命名這種類型的信號(hào)。在下文中并且在不丟失普遍性的情況下,只有術(shù)語(yǔ)“起動(dòng)”或“轉(zhuǎn)變”將用于命名瞬態(tài)。
解碼信號(hào)xrec(n)的L個(gè)樣本的每個(gè)當(dāng)前幀被劃分為K個(gè)長(zhǎng)度為L(zhǎng)’的子塊,例如,在32kHz下,L=640個(gè)樣本(20ms),L’=80個(gè)樣本(2.5ms)并且K=8。優(yōu)選這些子塊的大小因此是完全相同的,但是當(dāng)子塊具有可變大小時(shí),本發(fā)明仍然有效并且可以被容易地普遍化。例如當(dāng)幀長(zhǎng)度L不可由子塊的數(shù)量K除盡時(shí)或者如果幀長(zhǎng)度可變,情況可能就是那樣。
與在ITU-T G.718標(biāo)準(zhǔn)中描述的窗口類似的特定低延遲分析-合成窗口用于MDCT變換的分析部分和合成部分。參照?qǐng)D6展示了這種窗口的示例。不同于在使用常規(guī)正弦窗口的情況下的640個(gè)樣本的延遲,由變換生成的延遲僅僅是280個(gè)樣本。由此,不同于在使用常規(guī)正弦窗口的情況下的320個(gè)樣本,具有特定低延遲分析-合成窗口的MDCT存儲(chǔ)器僅包含140個(gè)獨(dú)立樣本(不與當(dāng)前幀折疊)。
實(shí)際上,在圖6中可以注意到,針對(duì)分析窗口(分析),折疊區(qū)域受樣本820與1100之間的點(diǎn)線限制。折疊線由在樣本960處的點(diǎn)劃線表示。
對(duì)于合成(合成),為了通過(guò)利用對(duì)稱性來(lái)獲得與分析的折疊區(qū)域有關(guān)的信息,只有由間隔M表示的樣本(140個(gè)樣本)是必要的。包含在存儲(chǔ)器中的這些樣本則對(duì)于通過(guò)也使用下一幀的窗口的折疊樣本來(lái)解碼此折疊區(qū)域是有用的。在樣本820與1100之間的此區(qū)域中的起動(dòng)的情況下,由間隔M表示的樣本的平均能量明顯大于樣本820之前的子幀的能量。因此,包含在MDCT存儲(chǔ)器中的間隔M的能量的突然增大可以表示可以在當(dāng)前幀中生成前回聲的在下一幀中的起動(dòng)。
使用了MDCT存儲(chǔ)器xMDCT(n),這給出了具有未來(lái)信號(hào)的時(shí)間折疊的版本(“折疊”)。在具有如圖6中所展示的特定低延遲分析-合成窗口的情況下,僅保留了一個(gè)(K’=1)長(zhǎng)度為L(zhǎng)m(0)=140的塊,所述塊包含MDCT存儲(chǔ)器的所有獨(dú)立樣本。因?yàn)榇鎯?chǔ)器部分已經(jīng)被分析窗口開(kāi)窗(因此被衰減),所以不管此子塊中更大數(shù)量的樣本如何,其能量與當(dāng)前幀的子塊的能量仍然是可比的(如果信號(hào)仍然穩(wěn)定)。
實(shí)際上,圖1示出了前回聲影響起動(dòng)所位于的幀之前的幀,并且期望的是,檢測(cè)部分地包含在MDCT存儲(chǔ)器中的未來(lái)幀中的起動(dòng)。
當(dāng)前幀和MDCT存儲(chǔ)器可以被視為形成被劃分成(K+K')個(gè)連續(xù)子塊的級(jí)聯(lián)信號(hào)。在這些條件下,在第k個(gè)子塊中的能量被定義為:
當(dāng)?shù)趉個(gè)子塊位于當(dāng)前幀中時(shí),并且被定義為:
當(dāng)所述子塊在MDCT存儲(chǔ)器中(其表示對(duì)未來(lái)幀可用的信號(hào))并且L存儲(chǔ)器是存儲(chǔ)器部分的子塊的長(zhǎng)度:
因此,當(dāng)前幀中的子塊的平均能量被獲得為:
在當(dāng)前幀的第二部分中的子塊的平均能量也被定義為(假設(shè)K是偶數(shù)):
在所考慮的子塊之一中,如果比率超過(guò)預(yù)定義閾值,則檢測(cè)到與前回聲相關(guān)聯(lián)的起動(dòng)。在不改變本發(fā)明的性質(zhì)的情況下,其他前回聲檢測(cè)標(biāo)準(zhǔn)是有可能的。
此外,起動(dòng)的位置被考慮為被定義為
其中,對(duì)L的限制確保MDCT存儲(chǔ)器永遠(yuǎn)不被修改。用于估計(jì)起動(dòng)的位置的其他更精確的方法也是有可能的。
設(shè)備600還包括實(shí)施確定(E602)所檢測(cè)到的起動(dòng)位置之前的前回聲區(qū)域(ZPE)的步驟的前回聲區(qū)域確定模塊602。在此,術(shù)語(yǔ)前回聲區(qū)域用于表示覆蓋在所估計(jì)的起動(dòng)位置之前的樣本的區(qū)域,所述樣本被起動(dòng)所產(chǎn)生的前回聲干擾并且其中對(duì)此前回聲的衰減是令人期望的。在所呈現(xiàn)的實(shí)施例中,可以在解碼信號(hào)上確定前回聲區(qū)域。
在獲得前回聲區(qū)域的一個(gè)實(shí)施例中,能量En(k)按照時(shí)間順序級(jí)聯(lián),首先是解碼信號(hào)的時(shí)間包絡(luò),然后是從MDCT變換存儲(chǔ)器中估計(jì)的下一幀的信號(hào)的包絡(luò)?;诖思?jí)聯(lián)的時(shí)間包絡(luò)和前一幀的平均能量和例如如果比率R(k)超過(guò)閾值(通常,此閾值是16),則檢測(cè)到前回聲的存在。
在其中已經(jīng)檢測(cè)到前回聲的子塊由此構(gòu)成前回聲區(qū)域,所述前回聲區(qū)域通常覆蓋樣本n=0,…,pos-1,即,從當(dāng)前幀的起始處到起動(dòng)的位置(pos)。還可以注意到,如果已經(jīng)在未來(lái)幀中檢測(cè)到起動(dòng),則前回聲區(qū)域可以非常好地延伸跨過(guò)整個(gè)當(dāng)前幀。
設(shè)備600包括計(jì)算模塊603,所述計(jì)算模塊能夠?qū)嵤┯?jì)算在其中已經(jīng)檢測(cè)到起動(dòng)的子塊之前的子塊的能量的首項(xiàng)系數(shù)(或變化趨勢(shì)指示)的步驟。
定義了表示n個(gè)實(shí)現(xiàn)的集合(ti,ei),0<=i<n的線性模型處,ti是子塊的時(shí)間索引,并且ei是所述子塊的能量,其中,方程
e=b0+b1t (1)
其中,b0是在瞬間t=0處的值,并且b1是首項(xiàng)系數(shù)。首項(xiàng)系數(shù)給出了關(guān)于能量的變化趨勢(shì)(平均趨勢(shì))的信息。正首項(xiàng)系數(shù)表示能量的增大。接近0的值表示恒定能量。
b1的值可以通過(guò)以下線性最小二乘回歸來(lái)確定:
其中,對(duì)預(yù)定索引i執(zhí)行求和。
b1的值還取決于能量的量(作為絕對(duì)值);所述值實(shí)際上隨著時(shí)間與能量一致。為了能夠更好地將b1的值與閾值(例如,固定閾值)進(jìn)行比較,可以消除這種依賴性。例如,可以將b1的值除以能量的平均值以便獲得歸一化的首項(xiàng)系數(shù):
可替代地,可以得到相關(guān)系數(shù)。
因?yàn)榇颂娲越鉀Q方案涉及計(jì)算平方根,所以其具有更高的計(jì)算復(fù)雜性。
用于估計(jì)首項(xiàng)系數(shù)的其他方法也是有可能的,例如,圖基中位數(shù)-中位數(shù)方法。
還可以注意到,當(dāng)必須將首項(xiàng)系數(shù)與零值閾值進(jìn)行比較(這相當(dāng)于驗(yàn)證此系數(shù)的符號(hào))時(shí),沒(méi)必要將此系數(shù)歸一化。
此外,代替將首項(xiàng)系數(shù)歸一化,因?yàn)橐韵玛P(guān)系是同等的,所以將有可能使閾值可變:
如果在第一或第二子塊中檢測(cè)到起動(dòng),則根據(jù)本發(fā)明的驗(yàn)證不可能。如果在第三子塊中檢測(cè)到起動(dòng),則在前回聲區(qū)域中的兩個(gè)子塊的能量e0和e1可用于進(jìn)行這種驗(yàn)證(e1最接近起動(dòng))。使用2個(gè)點(diǎn),方程(3)由此被簡(jiǎn)化:
如果在第四子塊中檢測(cè)到起動(dòng),則在前回聲區(qū)域中存在3個(gè)子塊的能量e0、e1和e2可用于進(jìn)行這種驗(yàn)證(e2最接近起動(dòng))。使用3個(gè)點(diǎn),方程(3)由此被簡(jiǎn)化:
如果存在4個(gè)或更多個(gè)子塊,則可以對(duì)4個(gè)或更多個(gè)子塊計(jì)算首項(xiàng)系數(shù)。實(shí)驗(yàn)表明,對(duì)在其中已經(jīng)檢測(cè)到起動(dòng)的子塊之前的3個(gè)子塊計(jì)算的首項(xiàng)系數(shù)的驗(yàn)證足以避免錯(cuò)誤的前回聲檢測(cè)——此結(jié)論適用于每個(gè)20ms幀上的8個(gè)子塊的情況,并且可以根據(jù)子塊和幀的大小進(jìn)行適配。
由此,在優(yōu)選實(shí)施例中,使用至多3個(gè)子塊來(lái)計(jì)算首項(xiàng)系數(shù)。這使得有可能限制對(duì)首項(xiàng)系數(shù)的計(jì)算的最大復(fù)雜性。
根據(jù)本發(fā)明,然后,由比較器模塊604在步驟E604中將由此獲得的歸一化的首項(xiàng)系數(shù)b1n與預(yù)定義閾值進(jìn)行比較。閾值可以使用固定值來(lái)進(jìn)行預(yù)定義或者可以根據(jù)例如根據(jù)語(yǔ)音或音樂(lè)標(biāo)準(zhǔn)來(lái)對(duì)信號(hào)進(jìn)行的分類而變化。通常,如果僅驗(yàn)證能量并未減小,則此閾值等于0,或者如果在前回聲區(qū)域中強(qiáng)加少量的能量增大,則此閾值等于0.2。如果歸一化的首項(xiàng)系數(shù)b1n低于此閾值,則結(jié)論是前回聲區(qū)域中的信號(hào)與典型的前回聲不對(duì)應(yīng),并且在步驟E602中抑制對(duì)此區(qū)域中的前回聲的衰減。由此,避免了解碼信號(hào)(其原始輸入信號(hào)包含起動(dòng)之前的低能量分量,所述低能量分量由前回聲衰減模塊通過(guò)檢測(cè)此分量來(lái)錯(cuò)誤地修改/變更)的情況。
在步驟E607中,由衰減模塊607對(duì)所辨別的前回聲區(qū)域?qū)嵤┣盎芈曀p。例如以申請(qǐng)F(tuán)R 08 56248中的方式計(jì)算衰減因子。在模塊604已經(jīng)檢測(cè)到錯(cuò)誤的前回聲檢測(cè)的情況下,衰減因子可以被強(qiáng)制為1,由此抑制衰減,否則辨別模塊602不將此區(qū)域辨別為前回聲區(qū)域,然后,不調(diào)用衰減模塊。
在特定實(shí)施例中,設(shè)備600進(jìn)一步包括信號(hào)分解模塊605,所述信號(hào)分解模塊能夠執(zhí)行根據(jù)預(yù)定標(biāo)準(zhǔn)將解碼信號(hào)分解成兩個(gè)子信號(hào)的步驟E605。在申請(qǐng)F(tuán)R12 62598中顯著地描述了此方法,在此回顧了所述申請(qǐng)的一些元件。
在本發(fā)明的特定實(shí)施例中,解碼信號(hào)xrec(n)在步驟E605中被分解成如下兩個(gè)子信號(hào):
-第一子信號(hào)xrec,ss1(n)通過(guò)使用具有3個(gè)系數(shù)和零個(gè)傳遞函數(shù)c(n)z-1+(1-2c(n))+c(n)z相位的FIR濾波器(有限脈沖響應(yīng)濾波器)通過(guò)低通濾波來(lái)獲得,c(n)是介于0與0.25之間的值,其中,[c(n),1-2c(n),c(n)]是低通濾波器的系數(shù);此使用差分方程來(lái)實(shí)施此濾波器:
xrec,ss1(n)=c(n)xrec(n-1)+(1-2c(n))xrec(n)+c(n)x(n+1)
在特定實(shí)施例中,使用了常數(shù)值c(n)=0.25??梢宰⒁獾?,從這種濾波中產(chǎn)生的子信號(hào)xrec,ss1(n)因此主要包含解碼信號(hào)的低頻分量。
-第二子信號(hào)xrec,ss2(n)通過(guò)使用具有3個(gè)系數(shù)和零個(gè)傳遞函數(shù)-c(n)z-1+2c(n)-c(n)z相位的FIR濾波器通過(guò)互補(bǔ)高通濾波來(lái)獲得,其中,[-c(n),2c(n),-c(n)]是高通濾波器的系數(shù);用差分方程來(lái)實(shí)施此濾波器:xrec,ss2(n)=-c(n)xrec(n-1)+2c(n)xrec(n)-c(n)x(n+1)。從這種濾波中產(chǎn)生的子信號(hào)xrec,ss2(n)因此主要包含解碼信號(hào)的高頻分量。
注意,xrec,ss1(n)+xrec,ss2(n)=xrec(n)。
因此,還有可能通過(guò)以下方式來(lái)獲得xrec,ss2(n):將xrec,ss1(n)從xrec(n)中減去,這減小了計(jì)算的復(fù)雜性:xrec,ss2(n)=xrec(n)-xrec,ss1(n)。
在以下所描述的步驟E608中,通過(guò)簡(jiǎn)單地將衰減子信號(hào)相加來(lái)完成組合衰減子信號(hào)以便獲得衰減信號(hào)Sa。
為了不使用未來(lái)信號(hào)來(lái)進(jìn)行這些濾波,例如有可能使用在塊末端處的0個(gè)樣本來(lái)補(bǔ)足解碼信號(hào)。對(duì)于n=L-1,使用在塊末端處的0個(gè)樣本來(lái)補(bǔ)足的解碼信號(hào)的情況下,子信號(hào)xrec,ss1(n)通過(guò)以下獲得:
xrec,ss1(L-1)=c(L-1)xrec(L-2)+(1-2c(L-1))xrec(L-1),
xrec,ss2(n)通常被計(jì)算為xrec,ss2(n)=xrec(n)-xrec,ss1(n)。
可以注意到,此處的兩個(gè)子信號(hào)仍然具有與解碼信號(hào)相同的采樣頻率。
在計(jì)算模塊606中實(shí)施計(jì)算前回聲衰減因子的步驟E606。對(duì)這兩個(gè)子信號(hào)單獨(dú)地完成這種計(jì)算。
針對(duì)在E602中根據(jù)在其中已經(jīng)檢測(cè)到起動(dòng)的幀以及根據(jù)前一幀來(lái)確定的前回聲區(qū)域的每個(gè)樣本而獲得這些衰減因子。
然后,獲得因子gpre,ss1′(n)和gpre,ss2′(n),其中,n是相應(yīng)樣本的索引。如果必要,將對(duì)這些因子進(jìn)行平滑以便分別獲得因子gpre,ss1(n)和gpre,ss2(n)。這種平滑對(duì)于包含低頻分量的子信號(hào)(因此對(duì)于此示例中的gpre,ss1′(n))尤其重要。
在專利申請(qǐng)F(tuán)R 08 56248中描述了實(shí)現(xiàn)衰減計(jì)算的示例。針對(duì)每個(gè)子塊而計(jì)算衰減因子。此外,在此處所描述的方法中,針對(duì)每個(gè)子信號(hào)而單獨(dú)地計(jì)算所述衰減因子。對(duì)于檢測(cè)到的起動(dòng)之前的樣本,因此計(jì)算衰減因子gpre,ss1′(n)和gpre,ss2′(n)。接下來(lái),如果必要,平滑這些衰減值以便獲得每個(gè)樣本的衰減值。
對(duì)子信號(hào)的衰減因子的計(jì)算(例如,gpre,ss2′(n))可以類似于專利申請(qǐng)F(tuán)R 08 56248中根據(jù)解碼信號(hào)的最高能量子塊的能量與第k個(gè)子塊的能量之間的比率R(k)(也用于檢測(cè)起動(dòng))針對(duì)解碼信號(hào)而描述的計(jì)算。gpre,ss2′(n)被初始化為:
gpre,ss2′(n)=g(k)=f(R(k)),n=kL′,...,(k+1)L'-1;k=0,...,K-1
其中,f是值在0與1之間的遞減函數(shù),例如,如果R(k)<=16,則f=0;如果16>R(k),則f=0.1;并且如果r(k)>32,則f=0.01。
如果能量相對(duì)于最大能量的變化很低,則衰減是不必要的。然后,所述因子被設(shè)置抑制衰減的衰減值,也就是說(shuō),1。否則,衰減因子位于0與1之間。這種初始化對(duì)于所有子信號(hào)是常見(jiàn)的。
然后,針對(duì)每個(gè)子信號(hào)而細(xì)化衰減值以便能夠根據(jù)解碼信號(hào)的特性設(shè)置每子信號(hào)的最佳衰減水平。例如,因?yàn)樵谇盎芈曀p處理之后,信號(hào)的能量變得低于處理區(qū)域之前的信號(hào)的每子塊的平均能量(通常是前一幀的平均能量或前一幀的后半部分的平均能量)不是令人期望的,所以可以根據(jù)前一幀的子信號(hào)的平均能量來(lái)限制衰減。
這種限制可以采用與專利申請(qǐng)F(tuán)R 08 56248中描述的方式類似的方式來(lái)完成。例如,對(duì)于第二信號(hào)xrec,ss2(n),首先將當(dāng)前幀的K個(gè)子塊中的能量計(jì)算為:
從存儲(chǔ)器中還已知的是前一幀的平均能量和前一幀的后半部分的平均能量所述能量可以被計(jì)算(在前一幀中)為:
且
其中,從0到K的子塊索引與當(dāng)前幀相對(duì)應(yīng)。
對(duì)于待處理的子塊k,可以計(jì)算因子的極限值limg,ss2(k)以便準(zhǔn)確地獲得與待處理的子塊之前的片段的每子塊的平均能量相同的能量。當(dāng)然,因?yàn)榇颂幐信d趣的是衰減值,所以此值被限制為最大為1。更具體地:
,其中,通過(guò)來(lái)近似估計(jì)前一片段的平均能量。
由此獲得的值limg,ss2(k)充當(dāng)在最終計(jì)算子塊的衰減因子時(shí)的下限:
gpre,ss2′(n)=max(gpre,ss2′(n),limg,ss2(k)),n=kL′,...,(k+1)L'-1;k=0,...,K-1
在第一變體實(shí)施例中,前回聲區(qū)域,在所述前回聲區(qū)域中,衰減從當(dāng)前幀的起始處延伸到在其中已經(jīng)檢測(cè)到起動(dòng)的子塊的起始處-遠(yuǎn)至pos,其中,即使起動(dòng)位于朝向此子塊末端,也將與起動(dòng)的子塊的樣本相關(guān)聯(lián)的衰減全部設(shè)置為1。
在另一個(gè)變體實(shí)施例中,在起動(dòng)的子塊中對(duì)起動(dòng)pos的起始位置進(jìn)行細(xì)化,例如,通過(guò)將子塊細(xì)分成子子塊,通過(guò)觀察這些子子塊的能量的趨勢(shì)。假設(shè)在子塊k(k>0)中檢測(cè)到起動(dòng)起始位置并且細(xì)化的起動(dòng)pos的起始位于此子塊中,可以根據(jù)與前一子塊的最后一個(gè)樣本相對(duì)應(yīng)的衰減值來(lái)對(duì)針對(duì)此子塊的位于pos索引之前的樣本的衰減值進(jìn)行初始化:
gpre,ss2′(n)=gpre,ss2′(kL′-1),n=kL′,...,pos-1
來(lái)自pos索引的所有衰減被設(shè)置為1。
對(duì)于包含解碼信號(hào)的低頻分量的第一子信號(hào),基于子信號(hào)xrec,ss1(n)來(lái)進(jìn)行的對(duì)衰減值的計(jì)算可以類似于基于解碼信號(hào)xrec(n)來(lái)進(jìn)行的對(duì)衰減值的計(jì)算。由此,在變體實(shí)施例中,為了減小計(jì)算復(fù)雜性,可以基于解碼信號(hào)xrec(n)確定衰減值。在解碼信號(hào)上進(jìn)行對(duì)起動(dòng)的檢測(cè)的情況下,因?yàn)閷?duì)于此信號(hào),已經(jīng)計(jì)算了每子塊的能量值以便檢測(cè)起動(dòng),因此不再需要重新計(jì)算子塊的能量。由于對(duì)于大多數(shù)信號(hào),低頻率比高頻率更加能量密集,解碼信號(hào)xrec(n)和子信號(hào)xrec,ss1(n)的每子塊的能量非常接近,這種近似給出了非常令人滿意的結(jié)果。
然后,可以通過(guò)逐樣本地應(yīng)用的平滑函數(shù)來(lái)平滑針對(duì)每個(gè)子塊而確定的衰減因子gpre,ss1(n)和gpre,ss2(n),以便避免衰減因子在塊的邊界處的突然變化。這對(duì)于包含低頻分量的子信號(hào)(如子信號(hào)xrec,ss1(n))尤其重要,但是對(duì)于僅包含高頻分量的子信號(hào)(如子信號(hào)xrec,ss2(n))不是必要的。
圖7展示了由箭頭L表示的具有平滑函數(shù)的衰減增益的應(yīng)用的示例。
此圖在a)中展示了原始信號(hào)的示例;在b)中展示了在不進(jìn)行前回聲衰減的情況下解碼的信號(hào);在c)中展示了針對(duì)根據(jù)分解步驟E605而獲得的兩個(gè)子信號(hào)的衰減增益;以及在d)中展示了在進(jìn)行步驟E607和E608的前回聲衰減的情況下解碼的信號(hào)(也就是說(shuō),在組合兩個(gè)衰減子信號(hào)之后)。
從此圖中可以看出,由點(diǎn)線表示的且與針對(duì)包括低頻分量的第一子信號(hào)而計(jì)算的增益相對(duì)應(yīng)的衰減增益包括如以上所描述的平滑函數(shù)。由實(shí)線表示的且針對(duì)包括高頻分量的第二子信號(hào)而計(jì)算的衰減增益不包括任何平滑增益。
在d)中表示的信號(hào)清楚地示出了已經(jīng)通過(guò)所實(shí)施的衰減處理來(lái)有效衰減的前回聲。
平滑函數(shù)例如優(yōu)選地由以下方程式定義:
常規(guī)的是,gpre,ss1′(n)n=-(u-1),…,-1是針對(duì)子信號(hào)xrec,ss1(n)之前的子塊的最后樣本而獲得的最后u-1個(gè)衰減因子。通常,u=5但是可以使用另一個(gè)值。根據(jù)所使用的平滑,對(duì)于單獨(dú)處理的兩個(gè)子信號(hào),即使在解碼信號(hào)的基礎(chǔ)上共同進(jìn)行對(duì)起動(dòng)的檢測(cè),前回聲區(qū)域(經(jīng)衰減的樣本的數(shù)量)也因此可以是不同的。
經(jīng)平滑的衰減因子在起動(dòng)的時(shí)間并未回升到1,這暗示了起動(dòng)的振幅的減小。雖然這種減小的可感知影響非常小,但是雖然如此也應(yīng)當(dāng)避免。為了緩解這種問(wèn)題,對(duì)于起動(dòng)的起始所位于的pos索引之前的u-1個(gè)樣本,衰減因子值可以被強(qiáng)制為1。對(duì)于應(yīng)用平滑的子信號(hào),這相當(dāng)于將pos標(biāo)記前進(jìn)u-1個(gè)樣本。由此,平滑函數(shù)逐漸增大所述因子以便在起動(dòng)的時(shí)刻具有值1。然后,保存起動(dòng)的振幅。
在此實(shí)施例中,隨著對(duì)信號(hào)的分解,針對(duì)至少一個(gè)子信號(hào)或?qū)@些子信號(hào)中的每個(gè)子信號(hào)執(zhí)行驗(yàn)證根據(jù)本發(fā)明的前回聲區(qū)域的能量的增大。
根據(jù)子信號(hào)以及根據(jù)起動(dòng)之前可用的子塊的數(shù)量,所使用的比較閾值可以不同。
在至少一個(gè)子信號(hào)中,如果歸一化的首項(xiàng)系數(shù)b1n低于此子信號(hào)的閾值,則抑制針對(duì)所有子信號(hào)的前回聲衰減。
在信號(hào)中的前回聲源自逆MDCT變換的情況下,前回聲分量的能量增大或至少在所有子信號(hào)中是穩(wěn)定的??梢岳缤ㄟ^(guò)將衰減因子設(shè)置為1或通過(guò)不將所述區(qū)域辨別為前回聲區(qū)域來(lái)完成抑制前回聲處理,然后,如通過(guò)示例的方式在圖5的實(shí)施例中通過(guò)框604與框602之間的鏈接展示的,不調(diào)用前回聲衰減處理模塊。
在變體中,歸一化的首項(xiàng)系數(shù)b1n一低于此子信號(hào)的閾值就單獨(dú)地抑制針對(duì)每個(gè)子信號(hào)的衰減。將能夠例如通過(guò)將衰減因子設(shè)置為1或通過(guò)不為所考慮的子信號(hào)調(diào)用前回聲模塊來(lái)實(shí)施所述抑制。
由此,在以上所描述的特定實(shí)施例中,隨著分解成兩個(gè)子信號(hào),如果起動(dòng)之前的子塊的數(shù)量使得有可能進(jìn)行這種驗(yàn)證,則在兩個(gè)子信號(hào)中通過(guò)線性回歸來(lái)驗(yàn)證在其中已經(jīng)檢測(cè)到起動(dòng)的子塊之前的子塊的能量的趨勢(shì)。在將解碼信號(hào)劃分成子信號(hào)(E605)之后以及在應(yīng)用前回聲的衰減因子(E607)之前的任何時(shí)刻,可以根據(jù)步驟E603和E604來(lái)完成這種驗(yàn)證。如果至少兩個(gè)子塊處于在其中已經(jīng)檢測(cè)到起動(dòng)的子塊之前,則所述驗(yàn)證是有可能的。如果在第一或第二子塊中檢測(cè)到起動(dòng),則根據(jù)本發(fā)明的驗(yàn)證不可能。
在變體中,如果在當(dāng)前幀的第一或第二子塊中檢測(cè)到起動(dòng),則將有可能重新使用可能在前一幀中計(jì)算的(多個(gè))首項(xiàng)系數(shù)。
如果在第三子塊中檢測(cè)到起動(dòng),則在前回聲區(qū)域中的兩個(gè)子塊的能量可用于進(jìn)行這種驗(yàn)證。通過(guò)實(shí)驗(yàn),使用兩個(gè)點(diǎn),所述驗(yàn)證在低頻子信號(hào)xrec,ss1(n)中并不足夠可靠。然后,僅驗(yàn)證高頻子信號(hào)xrec,ss2(n),并且只有這樣能量才不會(huì)減小。將高頻子信號(hào)xrec,ss2(n)的首項(xiàng)系數(shù)與0值閾值進(jìn)行比較。此處,只有其符號(hào)是重要的,不需要?dú)w一化。因此,在步驟E603中,計(jì)算如下單個(gè)首項(xiàng)系數(shù)(在不進(jìn)行歸一化的情況下)就足夠了:
b1ss2=Enss2(1)-Enss2(0)
如果b1ss2小于0,則針對(duì)所有子信號(hào)而抑制對(duì)此前回聲區(qū)域的前回聲的衰減。
如果在第四子塊或索引的大于4的子塊中檢測(cè)到起動(dòng),則驗(yàn)證前回聲區(qū)域中在其中已經(jīng)檢測(cè)到起動(dòng)的子塊之前的最后3個(gè)子塊的能量的趨勢(shì)。將低頻子信號(hào)xrec,ss1(n)的首項(xiàng)系數(shù)與0進(jìn)行比較,只有其符號(hào)是重要的,并且不需要對(duì)此系數(shù)進(jìn)行歸一化。因此,計(jì)算單個(gè)首項(xiàng)系數(shù)就足夠了。如果在索引id的子塊中已經(jīng)檢測(cè)到起動(dòng),id>=3,則此系數(shù)被確定為:
b1ss1=En(id-1)-Enss2(id-3)
如果b1ss1小于0,則針對(duì)此前回聲區(qū)域以及針對(duì)所有子信號(hào)而抑制對(duì)前回聲的衰減。
將高頻子信號(hào)xrec,ss2(n)的首項(xiàng)系數(shù)與值0.2的閾值進(jìn)行比較。計(jì)算歸一化的首項(xiàng)系數(shù)。如果在索引id的子塊中已經(jīng)檢測(cè)到起動(dòng),id>=3,則此系數(shù)被確定為:
如果b1nss2小于0.2,則針對(duì)此前回聲區(qū)域以及針對(duì)所有子信號(hào)而抑制對(duì)前回聲的衰減。
注意,條件
等同于
由此避免劃分操作從而減小復(fù)雜性并且促進(jìn)在DSP處理器(數(shù)字信號(hào)處理器)上使用定點(diǎn)運(yùn)算來(lái)進(jìn)行的實(shí)施。
圖5的設(shè)備600的模塊607通過(guò)將由此計(jì)算的衰減因子應(yīng)用于子信號(hào)來(lái)在子信號(hào)中的每個(gè)子信號(hào)的前回聲區(qū)域中實(shí)施前回聲衰減的步驟E607。
因此,在子信號(hào)中獨(dú)立地完成前回聲衰減。由此,在表示不同頻帶的子信號(hào)中,可以根據(jù)前回聲的頻譜分布選擇衰減。
最終,獲得模塊608的步驟E608使得有可能通過(guò)根據(jù)以下方程式組合衰減子信號(hào)(在此示例中,通過(guò)簡(jiǎn)單相加)來(lái)獲得衰減輸出信號(hào)(在前回聲衰減之后的解碼信號(hào)):
xrec,f(n)=gpre,ss1(n)xrec,ss1(n)+gpre,ss2(n)xrec,ss2(n),n=0,…,L-1
不像常規(guī)地分解成子帶,此處可以注意到,所使用的濾波與子信號(hào)抽選操作不相關(guān)聯(lián),并且復(fù)雜行和延遲(“向前看”或未來(lái)幀)被減小至最小。
現(xiàn)在參照?qǐng)D8描述根據(jù)本發(fā)明的衰減辨別和處理設(shè)備的示例性實(shí)施例。
物理地,在本發(fā)明的意義之內(nèi)的此設(shè)備100通常包括與包括存儲(chǔ)存儲(chǔ)器和/或工作存儲(chǔ)器的存儲(chǔ)器塊BM協(xié)作的處理器μP,以及以上所提及的作為用于存儲(chǔ)對(duì)于實(shí)施如參照?qǐng)D5而描述的辨別和衰減處理方法所必需的所有數(shù)據(jù)的裝置的緩沖器存儲(chǔ)器MEM。此設(shè)備充當(dāng)數(shù)字信號(hào)Se的輸入連續(xù)幀并且傳遞在經(jīng)辨別的前回聲區(qū)域中使用前回聲衰減來(lái)重構(gòu)的信號(hào)Sa,如果適當(dāng)?shù)脑挘ㄟ^(guò)組合衰減子信號(hào)來(lái)重構(gòu)衰減信號(hào)。
存儲(chǔ)器塊BM可以包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于實(shí)施根據(jù)本發(fā)明的方法的步驟的代碼指令(當(dāng)這些指令由設(shè)備的處理器μP執(zhí)行時(shí)),并且具體地,用于實(shí)施以下步驟的代碼指令:針對(duì)在其中檢測(cè)到起動(dòng)的子塊之前的至少兩個(gè)子塊計(jì)算能量的首項(xiàng)系數(shù);將所述首項(xiàng)系數(shù)與預(yù)定義閾值進(jìn)行比較;在所述所計(jì)算的首相系數(shù)低于所述預(yù)定義閾值的情況下,抑制所述前回聲區(qū)域中的所述前回聲衰減處理。
圖5可以展示這種計(jì)算機(jī)程序的算法。
根據(jù)本發(fā)明的辨別和衰減處理設(shè)備可以是獨(dú)立的或可以結(jié)合到數(shù)字信號(hào)解碼器中。這種解碼器可以結(jié)合到數(shù)字音頻信號(hào)存儲(chǔ)設(shè)備或如通信網(wǎng)關(guān)、通信終端或通信網(wǎng)絡(luò)的服務(wù)器等傳輸設(shè)備項(xiàng)目中。