本申請是申請日為2012年10月22日,申請?zhí)枮椤?01280063727.3”,標題為“幀錯誤隱藏方法和設備以及音頻解碼方法和設備”的發(fā)明專利申請的分案申請。
本公開涉及幀錯誤隱藏,更具體地講,涉及一種用于在頻域中在沒有額外延遲的情況下以低復雜度將錯誤幀準確地恢復為適應于信號特性的幀錯誤隱藏方法和設備,音頻解碼方法和設備、以及采用幀錯誤隱藏方法和設備的多媒體裝置。
背景技術:
當編碼的音頻信號通過有線網絡或無線網絡被發(fā)送時,如果某個包由于發(fā)送時的錯誤而被損壞或失真,則在解碼的音頻信號的某個幀中會發(fā)生錯誤。在此情況下,如果未適當處理發(fā)生在幀中的錯誤,則在發(fā)生錯誤的幀(在下文中,被稱為錯誤幀)的持續(xù)時間中,解碼的音頻信號的聲音質量會降低。
隱藏幀錯誤的方法的示例是通過減小錯誤幀中的信號的幅值來削弱錯誤對輸出信號的影響的靜噪(muting)方法、通過重復地再現先前好幀(pgf)來重建錯誤幀的信號的重復方法、通過對pgf和后續(xù)好幀(ngf)的參數進行內插來估計錯誤幀的參數的內插方法、通過對pgf的參數進行外插來獲得錯誤幀的參數的外插方法、以及通過執(zhí)行pgf的參數的回歸分析來獲得錯誤幀的參數的回歸分析方法。
然而,通常,由于通過統一地應用相同的方法而不管輸入信號的特性來恢復錯誤幀,因此不能有效地隱藏幀錯誤,從而導致聲音質量降低。另外,在內插方法中,雖然幀錯誤可被有效地隱藏,但是需要一個幀的額外延遲,因此不適合在用于通信的延遲敏感的編解碼器中使用內插方法。另外,在回歸分析方法中,雖然可通過稍微考慮存在的能量來隱藏幀錯誤,但是當信號的幅值逐漸增加或信號變化劇烈時可能發(fā)生效率降低。另外,在回歸分析方法中,當在頻域中基于頻帶執(zhí)行回歸分析時,由于每個頻帶的能量的瞬時變化,可能估計出非預期的信號。
技術實現要素:
技術問題
一方面提供一種用于在頻域中在沒有額外延遲的情況下以低復雜度將錯誤幀準確地恢復為適應于信號特性的幀錯誤隱藏方法和設備。
另一方面提供一種用于通過在頻域中在沒有額外延遲的情況下以低復雜度將錯誤幀準確地恢復為適應于信號特性來最小化由于幀錯誤而導致的聲音質量的降低的音頻解碼方法和設備、存儲該音頻解碼方法和設備的記錄介質以及采用該音頻解碼方法和設備的多媒體裝置。
另一方面提供一種存儲用于執(zhí)行幀錯誤隱藏方法或音頻解碼方法的計算機可讀程序的計算機可讀記錄介質。
另一方面提供一種采用幀錯誤隱藏設備或音頻解碼設備的多媒體裝置。
解決方案
根據一個或更多個示例性實施例的一方面,提供一種幀錯誤隱藏方法,包括:通過對從形成錯誤幀的第一多個頻帶形成的多個組執(zhí)行基于組的回歸分析來預測參數;通過使用基于組預測的參數來隱藏錯誤幀中的錯誤。
根據一個或更多個示例性實施例的另一方面,提供一種音頻解碼方法,包括:通過對好幀進行解碼來獲取頻譜系數;通過對從形成錯誤幀的第一多個頻帶形成的多個組執(zhí)行基于組的回歸分析來預測參數,并通過使用基于組預測的參數獲取錯誤幀的頻譜系數;將好幀或錯誤幀的解碼的頻譜系數變換到時域,并通過執(zhí)行疊加(overlap-and-add)處理來重建時域中的信號。
有益效果
可平滑信號的形狀變化,并可在頻域中在沒有額外延遲的情況下以低復雜度將錯誤幀準確地恢復為適應于信號特性(具體地講,瞬態(tài)特性)和突發(fā)錯誤持續(xù)時間。
附圖說明
圖1a和圖1b分別是根據示例性實施例的音頻編碼設備和音頻解碼設備的框圖;
圖2a和圖2b分別是根據另一示例性實施例的音頻編碼設備和音頻解碼設備的框圖;
圖3a和圖3b分別是根據另一示例性實施例的音頻編碼設備和音頻解碼設備的框圖;
圖4a和圖4b分別是根據另一示例性實施例的音頻編碼設備和音頻解碼設備的框圖;
圖5是根據示例性實施例的頻域解碼設備的框圖;
圖6是根據示例性實施例的頻譜解碼器的框圖;
圖7是根據示例性實施例的幀錯誤隱藏單元的框圖;
圖8是根據示例性實施例的存儲器更新單元的框圖;
圖9示出應用于示例性實施例的頻帶劃分;
圖10示出應用于示例性實施例的線性回歸分析和非線性回歸分析的概念;
圖11示出根據示例性實施例的被分組以應用回歸分析的子頻帶的結構;
圖12示出被分組以將回歸分析應用于最高支持7.6khz的寬帶的子頻帶的結構;
圖13示出被分組以將回歸分析應用于最高支持13.6khz的超寬帶的子頻帶的結構;
圖14示出被分組以將回歸分析應用于最高支持20khz的全頻帶的子頻帶的結構;
圖15a至圖15c示出被分組以在使用了帶寬擴展(bwe)時將回歸分析應用于最高支持16khz的超寬帶的子頻帶的結構;
圖16a至圖16c示出使用后續(xù)好幀(ngf)的時域信號的疊加方法。
圖17是根據示例性實施例的多媒體裝置的框圖;
圖18是根據另一示例性實施例的多媒體裝置的框圖。
具體實施方式
本發(fā)明構思可允許各種類型的改變或修改以及形式上的各種改變,并且特定示例性實施例將在附圖中被示出并在說明書中被詳細描述。然而,應理解的是,所述特定示例性實施例不將本發(fā)明構思限定為特定形式,而是包括本發(fā)明構思的精神和技術范圍內的每種修改、等同物或替代形式。由于公知功能或結構會以不必要的細節(jié)模糊本發(fā)明構思,因此在以下描述中,不詳細描述公知功能或結構。
盡管諸如“第一”和“第二”的術語可用于描述各種元素,但是這些元素可不受這些術語限制。所述術語可用于將特定元素與另一元素區(qū)分開。
在本申請中使用的術語僅用于描述特定示例性實施例,而不具有限制本發(fā)明構思的任何意圖。雖然在考慮本發(fā)明構思中的功能時將當前被盡可能廣泛使用的一般術語選為本發(fā)明構思中使用的術語,但是本發(fā)明構思中使用的術語可根據本領域的普通技術人員的意圖、司法判例或新技術的出現而變化。另外,在特定情況下,可使用由申請人有意選擇的術語,并且在此情況下,將在本發(fā)明構思的相應描述中公開所述術語的含義。因此,在本公開中使用的術語不應由術語的簡單名稱來定義,而由術語的含義和本發(fā)明構思的內容來定義。
單數形式的表達包括復數形式的表達,除非它們在上下文中明顯彼此不同。在本申請中,應理解,諸如“包括”和“具有”的術語用于指示被實現的特征、數量、步驟、操作、元素、部件或它們的組合的存在,而不預先排除存在或添加一個或更多個其它特征、數量、步驟、操作、元素、部件或它們的組合的可能性。
現在將參照示出了示例性實施例的附圖更加全面地描述本發(fā)明構思。在附圖中相同的附圖標號表示相同的元件,并因此將省略它們的重復描述。
圖1a和圖1b分別是根據示例性實施例的音頻編碼設備110和音頻解碼設備130的框圖。
圖1a中示出的音頻編碼設備110可包括預處理器112、頻域編碼器114和參數編碼器116。組件可被集成在至少一個模塊中,并被實現為至少一個處理器(未示出)。
參照圖1a,預處理器112可對輸入信號執(zhí)行濾波或下采樣,但不限于此。輸入信號可包括語音信號、音樂信號、或混合了語音和音樂的信號。在下文中,為便于描述,將輸入信號稱為音頻信號。
頻域編碼器114可對從預處理器112提供的音頻信號執(zhí)行時間-頻率變換(time-frequencytransform),選擇與聲道的數量、編碼頻帶和音頻信號的比特率相應的編碼工具,并通過使用選擇的編碼工具對音頻信號進行編碼??墒褂酶倪M離散余弦變換(mdct)或快速傅里葉變換(fft)來執(zhí)行時間-頻率變換,但不限于此。如果給定的比特數充足,則可將一般的變換編碼方法用于所有頻帶。否則,如果給定的比特數不足,則可將帶寬擴展(bwe)方法應用于一些頻帶。當音頻信號是立體聲音頻信號或多聲道音頻信號時,如果給定的比特數充足,則可對每個聲道執(zhí)行編碼。否則,如果給定的比特數不足,則可應用縮混(down-mixing)方法。頻域編碼器114可產生編碼后的頻譜系數。
參數編碼器116可從提供自頻域編碼器114的編碼后的頻譜系數提取參數,并對提取的參數進行編碼。可基于子頻帶來提取參數,并且每個子頻帶可以是對頻譜系數進行分組的單位,并可通過反映閾值頻帶而具有統一或非統一的長度。當每個子頻帶具有非統一的長度時,存在于低頻頻帶中的子頻帶與高頻頻帶中的子頻帶相比可具有相對短的長度。包括在一個幀中的子頻帶的數量和長度可根據編解碼器算法而變化,并可影響編碼性能。參數中的每一個可以是例如子頻帶的范數、縮放因子、功率、或平均能量,但不限于此。作為編碼的結果而獲得的頻譜系數和參數可形成比特流,并可通過信道以包的形式被發(fā)送,或存儲在存儲介質中。
圖1b中示出的音頻解碼設備130可包括參數解碼器132、頻域解碼器134和后處理器136。頻域解碼器134可包括幀錯誤隱藏算法。組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。
參照圖1b,參數解碼器132可從以包的形式發(fā)送的比特流解碼出參數,并基于幀檢查解碼的參數以確定是否發(fā)生了錯誤??墒褂酶鞣N公知的方法來執(zhí)行錯誤檢查,并且可將關于當前幀是好幀還是錯誤幀的信息提供給頻域解碼器134。
在當前幀是好幀時,頻域解碼器134可通過經由一般的變換解碼處理對當前幀進行解碼來產生合成的頻譜系數,在當前幀是錯誤幀時,頻域解碼器134可通過經由頻域中的幀錯誤隱藏算法對先前好幀(pgf)的頻譜系數進行縮放來產生合成的頻譜系數。頻域解碼器134可通過對合成的頻譜系數執(zhí)行頻率-時間變換來產生時域信號。
后處理器136可對從頻域解碼器134提供的時域信號執(zhí)行濾波或上采樣,但是不限于此。后處理器136提供重建的音頻信號作為輸出信號。
圖2a和圖2b分別是根據另一示例性實施例的音頻編碼設備210和音頻解碼設備230的框圖,其中,音頻編碼設備210和音頻解碼設備230可具有切換結構。
圖2a中示出的音頻編碼設備210可包括預處理器212、模式確定器213、頻域編碼器214、時域編碼器215和參數編碼器216。組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。
參照圖2a,由于預處理器212基本上與圖1a的預處理器112相同,因此省略其描述。
模式確定器213可通過參考輸入信號的特性來確定編碼模式。根據輸入信號的特性,可確定當前幀是處于語音模式還是音樂模式,并且還可確定對于當前幀有效的編碼模式是時域模式還是頻域模式??墒褂脦亩唐谔匦曰蚨鄠€幀的長期特性來獲得輸入信號的特性,但是獲得輸入信號的特性的方法不限于此。當輸入信號的特性與音樂模式或頻域模式相應時,模式確定器213將預處理器212的輸出信號提供給頻域編碼器214,當輸入信號的特性與語音模式或時域模式相應時,模式確定器213將預處理器212的輸出信號提供給時域編碼器215。
由于頻域編碼器214基本上與圖1a的頻域編碼器114相同,因此省略其描述。
時域編碼器215可對從預處理器212提供的音頻信號執(zhí)行碼激勵線性預測(celp)編碼。詳細地講,可使用代數celp(acelp),但是celp編碼不限于此。時域編碼器215產生編碼后的頻譜系數。
參數編碼器216可從提供自頻域編碼器214或時域編碼器215的編碼后的頻譜系數提取參數,并對提取的參數進行編碼。由于參數編碼器216基本上與圖1a的參數編碼器116相同,因此省略其描述。作為編碼的結果而獲得的頻譜系數和參數可與編碼模式信息一起形成比特流,并通過信道以包的形式被發(fā)送,或存儲在存儲介質中。
圖2b中示出的音頻解碼設備230可包括參數解碼器232、模式確定器233、頻域解碼器234、時域解碼器235和后處理器236。頻域解碼器234和時域解碼器235中的每個可包括相應域中的幀錯誤隱藏算法。組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。
參照圖2b,參數解碼器232可從以包的形式發(fā)送的比特流解碼出參數,并基于幀檢查解碼后的參數以確定是否發(fā)生了錯誤??墒褂酶鞣N公知的方法來執(zhí)行錯誤檢查,并且可將關于當前幀是好幀還是錯誤幀的信息提供給頻域解碼器234或時域解碼器235。
模式確定器233可檢查包括在比特流中的編碼模式信息,并將當前幀提供給頻域解碼器234或時域解碼器235。
當編碼模式是音樂模式或頻域模式時,頻域解碼器234可進行操作,并且如果當前幀是好幀,則頻域解碼器234可通過經由一般的變換解碼處理對當前幀進行解碼來產生合成的頻譜系數。否則,如果當前幀是錯誤幀,并且先前幀的編碼模式是音樂模式或頻域模式,則頻域解碼器234可通過經由頻域中的幀錯誤隱藏算法對pgf的頻譜系數進行縮放來產生合成的頻譜系數。頻域解碼器234可通過對合成的頻譜系數執(zhí)行頻率-時間變換來產生時域信號。
當編碼模式是語音模式或時域模式時,時域解碼器235可進行操作,并且如果當前幀是好幀,則時域解碼器235可通過經由一般的celp解碼處理對當前幀進行解碼來產生時域信號。否則,如果當前幀是錯誤幀,并且先前幀的編碼模式是語音模式或時域模式,則時域解碼器235可執(zhí)行時域中的幀錯誤隱藏算法。
后處理器236可對從頻域解碼器234或時域解碼器235提供的時域信號執(zhí)行濾波或上采樣,但不限于此。后處理器236提供重建的音頻信號作為輸出信號。
圖3a和圖3b分別是根據另一示例性實施例的音頻編碼設備310和音頻解碼設備330的框圖,其中,音頻編碼設備310和音頻解碼設備330可具有切換結構。
圖3a中示出的音頻編碼設備310可包括預處理器312、線性預測(lp)分析器313、模式確定器314、頻域激勵編碼器315、時域激勵編碼器316和參數編碼器317。組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。
參照圖3a,由于預處理器312基本上與圖1a的預處理器112相同,因此省略其描述。
lp分析器313可通過對輸入信號執(zhí)行l(wèi)p分析來提取lp系數,并從提取的lp系數產生激勵信號??筛鶕幋a模式將激勵信號提供給頻域激勵編碼器315和時域激勵編碼器316中的一個。
由于模式確定器314基本上與圖2a的模式確定器213相同,因此省略其描述。
當編碼模式是音樂模式或頻域模式時,頻域激勵編碼器315可進行操作,由于除了輸入信號是激勵信號之外,頻域激勵編碼器315基本上與圖1a的頻域編碼器114相同,因此省略其描述。
當編碼模式是語音模式或時域模式時,時域激勵編碼器316可進行操作,由于除了輸入信號是激勵信號之外,時域激勵編碼器316基本上與圖2a的時域編碼器215相同,因此省略其描述。
參數編碼器317可從提供自頻域激勵編碼器315或時域激勵編碼器316的編碼后的頻譜系數提取參數,并對提取的參數進行編碼。由于參數編碼器317基本上與圖1a的參數編碼器116相同,因此省略其描述。作為編碼的結果而獲得的頻譜系數和參數可與編碼模式信息一起形成比特流,并通過信道以包的形式被發(fā)送,或被存儲在存儲介質中。
圖3b中示出的音頻解碼設備330可包括參數解碼器332、模式確定器333、頻域激勵解碼器334、時域激勵解碼器335、lp合成器336和后處理器337。頻域激勵解碼器334和時域激勵解碼器335中的每一個可包括相應域中的幀錯誤隱藏算法。組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。
參照圖3b,參數解碼器332可從以包的形式發(fā)送的比特流解碼出參數,并基于幀檢查解碼的參數以確定是否發(fā)生錯誤??墒褂酶鞣N公知的方法來執(zhí)行錯誤檢查,并且可將關于當前幀是好幀還是錯誤幀的信息提供給頻域激勵解碼器334或時域激勵解碼器335。
模式確定器333可檢查包括在比特流中的編碼模式信息,并將當前幀提供給頻域激勵解碼器334或時域激勵解碼器335。
當編碼模式是音樂模式或頻域模式時,頻域激勵解碼器334可進行操作,并且如果當前幀是好幀,則頻域激勵解碼器334可通過經由一般的變換解碼處理對當前幀進行解碼來產生合成的頻譜系數。否則,如果當前幀是錯誤幀,并且先前幀的編碼模式是音樂模式或頻域模式,則頻域激勵解碼器334可通過經由頻域中的幀錯誤隱藏算法對pgf的頻譜系數進行縮放來產生合成的頻譜系數。頻域激勵解碼器334可通過對合成的頻譜系數執(zhí)行頻率-時間變換來產生激勵信號,其中,所述激勵信號是時域信號。
當編碼模式是語音模式或時域模式時,時域激勵解碼器335可進行操作,并且如果當前幀是好幀,則時域激勵解碼器335可通過經由一般的celp解碼處理對當前幀進行解碼來產生激勵信號,其中,所述激勵信號為時域信號。否則,如果當前幀是錯誤幀,并且先前幀的編碼模式是語音模式或時域模式,則時域激勵解碼器335可執(zhí)行時域中的幀錯誤隱藏算法。
lp合成器336可通過對從頻域激勵解碼器334或時域激勵解碼器335提供的激勵信號執(zhí)行l(wèi)p合成來產生時域信號。
后處理器337可對從lp合成器336提供的時域信號執(zhí)行濾波或上采樣,但是不限于此。后處理器337提供重建的音頻信號作為輸出信號。
圖4a和圖4b分別是根據另一示例性實施例的音頻編碼設備410和音頻解碼設備430,其中,音頻編碼設備410和音頻解碼設備430可具有切換結構。
圖4a中示出的音頻編碼設備410可包括預處理器412、模式確定器413、頻域編碼器414、lp分析器415、頻域激勵編碼器416、時域激勵編碼器417和參數編碼器418。組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。由于可通過組合圖2a中示出的音頻編碼設備210和圖3a中示出的音頻編碼設備310來得到圖4a中示出的音頻編碼設備410,因此省略共同部件的操作描述,現在將描述模式確定器413的操作。
模式確定器413可通過參考輸入信號的特性和比特率來確定輸入信號的編碼模式。模式確定器413可基于根據輸入信號的特性當前幀是處于語音模式還是音樂模式以及對于當前幀有效的編碼模式是時域模式還是頻域模式,來確定celp模式或另一模式。如果輸入信號的特性與語音模式相應,則可確定celp模式,如果輸入信號的特性與語音模式和高比特率相應,則可確定頻域模式,如果輸入信號的特性與音樂模式和低比特率相應,則可確定音頻模式。模式確定器413可在頻域模式下將輸入信號提供給頻域編碼器414,在音頻模式下經由lp分析器415將輸入信號提供給頻域激勵編碼器416,并在celp模式下經由lp分析器415將輸入信號提供給時域激勵編碼器417。
頻域編碼器414可與圖1a的音頻編碼設備110的頻域編碼器114或圖2a的音頻編碼設備210的頻域編碼器214相應,并且頻域激勵編碼器416或時域激勵編碼器417可與圖3a的音頻編碼設備310的頻域激勵編碼器315或時域激勵編碼器316相應。
圖4b中示出的音頻解碼設備430可包括參數解碼器432、模式確定器433、頻域解碼器434、頻域激勵解碼器435、時域激勵解碼器436、lp合成器437和后處理器438。頻域解碼器434、頻域激勵解碼器435和時域激勵解碼器436中的每一個可包括相應域中的幀錯誤隱藏算法。組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。由于可通過組合圖2b中示出的音頻解碼設備230和圖3b中示出的音頻解碼設備330來得到圖4b中示出的音頻解碼設備430,因此省略共同部分的操作描述,現在將描述模式確定器433的操作。
模式確定器433可檢查包括在比特流中的編碼模式信息,并將當前幀提供給頻域解碼器434、頻域激勵解碼器435或時域激勵解碼器436。
頻域解碼器434可與圖1b的音頻解碼設備130的頻域解碼器134或圖2b的音頻解碼設備230的頻域解碼器234相應,頻域激勵解碼器435或時域激勵解碼器436可與圖3b的音頻解碼設備330的頻域激勵解碼器334或時域激勵解碼器335相應。
圖5是根據示例性實施例的頻域解碼設備的框圖,其中,所述頻域解碼設備可與圖2b的音頻解碼設備230的頻域解碼器234或圖3b的音頻解碼設備330的頻域激勵解碼器334相應。
圖5中示出的頻域解碼設備500可包括錯誤隱藏單元510、頻譜解碼器530、存儲器更新單元550、逆變換器570以及疊加單元590。除了嵌入在存儲器更新單元550中的存儲器(未示出)之外的組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。
參照圖5,首先,如果從解碼的參數確定在當前幀中未發(fā)生錯誤,則可通過經由頻譜解碼器530、存儲器更新單元550、逆變換器570以及疊加單元590對當前幀進行解碼來最終產生時域信號。詳細地講,頻譜解碼器530可通過使用解碼的參數對當前幀執(zhí)行頻譜解碼來合成頻譜系數。對于后續(xù)幀,存儲器更新單元550可針對作為好幀的當前幀更新合成的頻譜系數、解碼的參數、使用所述參數獲得的信息、直到當前為止的連續(xù)的錯誤幀的數量、在解碼器中通過分析合成的信號而獲得的先前幀的特性(信號特性,例如瞬態(tài)(transient)特性、正常(normal)特性、穩(wěn)態(tài)(stationary)特性)、先前幀的類型信息(從編碼器發(fā)送的信息,例如瞬態(tài)幀和正常幀)等等。逆變換器570可通過對合成的頻譜系數執(zhí)行頻率-時間變換來產生時域信號。疊加單元590可使用先前幀的時域信號執(zhí)行疊加處理,并且作為疊加處理的結果最終產生當前幀的時域信號。
否則,如果從解碼的參數確定在當前幀中發(fā)生了錯誤,則可將解碼的參數的壞幀指示符(bfi)設置成例如1,其中,1指示在作為壞幀的當前幀中不存在信息。在此情況下,檢查先前幀的解碼模式,如果先前幀的解碼模式是頻域模式,則可對當前幀執(zhí)行頻域中的幀錯誤隱藏算法。
也就是說,在當前幀是錯誤幀并且先前幀的解碼模式是頻域模式時,錯誤隱藏單元510可進行操作。錯誤隱藏單元510可通過使用存儲在存儲器更新單元550中的信息來恢復當前幀的頻譜系數??赏ㄟ^頻譜解碼器530、存儲器更新單元550、逆變換器570以及疊加單元590對恢復的當前幀的頻譜系數進行解碼,以最終產生當前幀的時域信號。
如果當前幀是錯誤幀,先前幀是好幀,并且先前幀的解碼模式是頻域模式,或者如果當前幀和先前幀是好幀,并且它們的解碼模式是頻域模式,則疊加單元590可通過使用作為好幀的先前幀的時域信號來執(zhí)行疊加處理。否則,如果當前幀是好幀,作為連續(xù)的錯誤幀的先前幀的數量為2或大于2,先前幀為錯誤幀,并且作為最新的好幀的先前幀的解碼模式是頻域模式,則疊加單元590可通過使用作為好幀的當前幀的時域信號來執(zhí)行疊加處理,而不是通過使用作為好幀的先前幀的時域信號來執(zhí)行疊加處理。這些條件可由下文來表示:
if((bfi==0)&&(st→old_bfi_int>1)&&(st→prev_bfi==1)&&
(st→last_core==freq_core)),
其中,bfi表示當前幀的錯誤幀指示符,st→old_bfi_int表示作為連續(xù)的錯誤幀的先前幀的數量,st→prev_bfi表示先前幀的bfi信息,st→last_core表示最新pgf的核心的解碼模式,例如頻域模式freq_core或時域模式time_core。
圖6是根據示例性實施例的頻譜解碼器600的框圖。
圖6中示出的頻譜解碼器600可包括無損解碼器610、參數反量化器620、比特分配器630、頻譜反量化器640、噪聲填充單元650和頻譜整形單元660。可將噪聲填充單元650布置在頻譜整形單元660之后。組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。
參照圖6,無損解碼器610可對已經在編碼處理中被執(zhí)行了無損編碼的參數(例如,范數值)進行無損解碼。
參數反量化器620可對無損解碼的范數值進行反量化。在編碼處理中,可使用各種方法(例如,矢量量化(vq)、標量量化(sq)、網格編碼量化(trq)和格型矢量量化(lvq))中的任何方法對范數值進行量化,并且,可使用相應方法來對被量化的范數值進行反量化。
比特分配器630可基于被量化的范數值來分配每個頻帶所需的比特。在此情況下,針對每個頻帶分配的比特可以與編碼處理中所分配的比特相同。
頻譜反量化器640可通過使用針對每個頻帶分配的比特執(zhí)行反量化處理來產生歸一化的頻譜系數。
噪聲填充單元650可針對每個頻帶在需要噪聲填充的部分中填滿噪聲。
頻譜整形單元660可通過使用反量化的范數值對歸一化的頻譜系數進行整形。最終,可通過頻譜整形處理來獲得解碼的頻譜系數。
圖7是根據示例性實施例的幀錯誤隱藏單元700的框圖。
圖7中示出的幀錯誤隱藏單元700可包括信號特性確定器710、參數控制器730、回歸分析器750、增益計算器770和縮放器790。組件可被集成在至少一個模塊中,并可被實現為至少一個處理器(未示出)。
參照圖7,信號特性確定器710可通過使用解碼的信號來確定信號的特性,并將解碼的信號的特性分類為瞬態(tài)、正常、平穩(wěn)等。現在在下面將描述確定瞬態(tài)幀的方法。根據示例性實施例,可使用先前幀的幀能量和移動平均能量來確定當前幀是否為瞬態(tài)。為此,可使用針對好幀獲得的移動平均能量energy_ma和差能量energy_diff?,F在將描述獲得energy_ma和energy_diff的方法。
如果假設幀的能量或范數值的總和為energy_curr,則可通過energy_ma=energy_ma×0.8+energy_curr×0.2來獲得energy_ma。在此情況下,可將energy_ma的初始值設置成例如100。
然后,可通過對energy_ma和energy_curr之差進行歸一化來獲得energy_diff,并且可通過energy_diff=(energy_curr-energy_ma)/energy_ma來表示energy_diff。
當energy_diff等于或大于預定閾值ed_thres(例如,1.0)時,信號特性確定器710可確定當前幀為瞬態(tài)。1.0的energy_diff指示energy_curr是energy_ma的兩倍,并可指示與先前幀相比當前幀的能量的變化是非常大的。
參數控制器730可使用由信號特性確定器710確定的信號特性以及包括在從編碼器發(fā)送的信息中的幀類型和編碼模式來控制用于幀錯誤隱藏的參數。可使用從編碼器發(fā)送的信息或由信號特性確定器710獲得的瞬態(tài)信息來執(zhí)行瞬態(tài)確定。當同時使用所述兩種類型的信息時,可使用以下條件:即,如果作為從編碼器發(fā)送的瞬態(tài)信息is_transient是1,或如果作為由解碼器獲得的信息energy_diff等于或大于預定閾值ed_thres(例如,1.0),則這指示當前幀是能量變化劇烈的瞬態(tài)幀,并且因此可減小將用于回歸分析的pgf的數量num_pgf。否則,確定當前幀不是瞬態(tài)幀,并且可增加num_pfg。
在上文中,ed_thres表示閾值,并可被設置成例如1.0。
根據瞬態(tài)確定的結果,可控制用于幀錯誤隱藏的參數。用于幀錯誤隱藏的參數的示例可以是用于回歸分析的pgf的數量。用于幀錯誤隱藏的參數的另一示例可以是突發(fā)錯誤持續(xù)時間的縮放方法??蓪⑾嗤膃nergy_diff值用在一個突發(fā)錯誤持續(xù)時間中。如果確定作為錯誤幀的當前幀不為瞬態(tài),則當突發(fā)錯誤發(fā)生時,不論解碼的先前幀的頻譜系數的回歸分析如何,可將從例如第五幀開始的幀強制地縮放為3db的固定值。否則,如果確定作為錯誤幀的當前幀為瞬態(tài),則當突發(fā)錯誤發(fā)生時,不論解碼的先前幀的頻譜系數的回歸分析如何,可將從例如第二幀開始的幀強制地縮放為3db的固定值。用于幀錯誤隱藏的參數的另一示例可以是隨機符號和自適應靜噪的應用方法,以下將參照縮放器790來描述所述應用方法。
回歸分析器750可通過使用存儲的先前幀的參數來執(zhí)行回歸分析??蓪γ總€單個錯誤幀執(zhí)行回歸分析,或者可僅當突發(fā)錯誤已發(fā)生時執(zhí)行回歸分析。當設計解碼器時,可預先定義被執(zhí)行了回歸分析的錯誤幀的條件。如果對每個單個錯誤幀執(zhí)行回歸分析,則可立即對已發(fā)生錯誤的幀執(zhí)行回歸分析??墒褂酶鶕貧w分析的結果而獲得的函數來預測錯誤幀需要的參數。
否則,如果僅當突發(fā)錯誤已發(fā)生時執(zhí)行回歸分析,則當指示連續(xù)錯誤幀的數量的bfi_cnt是2時(即,從第二個連續(xù)錯誤幀開始),執(zhí)行回歸分析。在此情況下,對于第一個錯誤幀,可簡單地重復從先前幀獲得的頻譜系數,或者頻譜系數可被縮放確定值。
if(bfi_cnt==2){
regression_anaysis();
}if
即使作為對時域中的重疊的信號進行變換的結果未發(fā)生連續(xù)錯誤,在頻域中,仍會發(fā)生與連續(xù)錯誤類似的問題。例如,如果按跳過一個幀的方式發(fā)生錯誤,換句話說,如果按錯誤幀、好幀和錯誤幀的順序發(fā)生錯誤,則當通過50%的重疊來形成變換窗口時,不論在中間是否存在好幀,聲音質量都與按錯誤幀、錯誤幀和錯誤幀的順序發(fā)生錯誤的情況有很大不同。如以下將描述的圖16c中所示,即使第n幀是好幀,但如果第(n-1)幀和第(n+1)幀是錯誤幀,則在重疊處理中也產生完全不同的信號。因此,當按錯誤幀、好幀和錯誤幀的順序發(fā)生錯誤時,盡管發(fā)生第二個錯誤的第三幀的bfi_cnt為1,bfi_cnt仍被強制增加1。結果,bfi_cnt為2,并確定突發(fā)錯誤已發(fā)生,因此可使用回歸分析。
在上文中,prev_old_bfi表示第二個先前幀的幀錯誤信息。在當前幀是錯誤幀時,此處理可以是可適用的。
為了低復雜度,回歸分析器750可通過對兩個或更多個頻帶進行分組來形成每個組,得到每個組的代表值,并將回歸分析應用到代表值。代表值的示例可以是平均值、中間值和最大值,但是代表值不限于此。根據示例性實施例,可將分組范數的平均矢量用作代表值,其中,所述平均矢量是包括在每個組中的頻帶的平均范數值。
當使用由信號特性確定器710確定的信號特性和包括在從編碼器發(fā)送的信息中的幀類型來確定當前幀的屬性時,如果確定當前幀是瞬態(tài)幀,則用于回歸分析的pgf的數量可減少,如果確定當前幀為穩(wěn)態(tài)幀,則用于回歸分析的pgf的數量可增加。根據示例性實施例,當指示先前幀是否為瞬態(tài)的is_transient是1時(即,當先前幀為瞬態(tài)時),pgf的數量num_pgf可被設置成2,當先前幀不為瞬態(tài)時,pgf的數量num_pgf可被設置成4。
另外,用于回歸分析的矩陣的行數可被設置成例如2。
作為由回歸分析器750進行的回歸分析的結果,可針對錯誤幀預測每個組的平均范數值。也就是說,在錯誤幀中,可針對屬于一個組的每個頻帶預測相同范數值。詳細地講,回歸分析器750可通過回歸分析從將在以下描述的線性回歸分析等式或非線性回歸分析等式計算值a和b,并通過使用計算出的值a和b針對每個組來預測錯誤幀的分組平均范數值。
增益計算器770可獲得針對錯誤幀預測的每個組的平均范數值和pgf中的每個組的平均范數值之間的增益。
縮放器790可通過將由增益計算器770獲得的增益乘以pgf的頻譜系數來產生錯誤幀的頻譜系數。
根據示例性實施例,縮放器790可根據輸入信號的特性將隨機符號應用到預測的頻譜系數或將自適應靜噪應用到錯誤幀。
首先,可將輸入信號識別為瞬態(tài)信號和非瞬態(tài)信號??蓮姆撬矐B(tài)信號單獨識別出平穩(wěn)信號,并以另一方法來處理平穩(wěn)信號。例如,如果確定輸入信號具有很多諧波分量,則可將輸入信號確定為信號變化不大的平穩(wěn)信號,并可執(zhí)行與平穩(wěn)信號相應的錯誤隱藏算法。通常,可從發(fā)送自編碼器的信息獲得輸入信號的諧波信息。當不需要低復雜度時,可使用由解碼器合成的信號來獲得輸入信號的諧波信息。
當輸入信號大致被分類為瞬態(tài)信號、平穩(wěn)信號和殘差信號時,可如以下所述應用自適應靜噪和隨機符號。在下文中,由mute_start表示的數量指示:當發(fā)生連續(xù)錯誤時,如果bfi_cnt等于或大于mute_start,則強制開始靜噪。另外,可按相同方式來分析與隨機符號相關的random_start。
根據應用自適應靜噪的方法,可將頻譜系數強制縮小固定值。例如,如果當前幀的bfi_cnt是4,并且當前幀是穩(wěn)態(tài)幀,則可將當前幀的頻譜系數縮小3db。
另外,可隨機地修改頻譜系數的符號來減小每個幀中由于頻譜系數的重復而產生的調制噪聲??蓪⒏鞣N公知的方法用作應用隨機符號的方法。
根據示例性實施例,可將隨機符號應用于幀的所有頻譜系數。根據另一示例性實施例,可預先限定開始應用隨機符號的頻帶,并且可將隨機符號應用于等于或高于所限定的頻帶的頻帶,這是因為由于波形或能量會由于在非常低的頻帶(例如,200hz或低于200hz)中的符號的變化而被很大地改變,因此在非常低的頻帶或第一頻帶中使用與先前幀的頻譜系數的符號相同的頻譜系數的符號可能更好。
圖8是根據示例性實施例的存儲器更新單元800的框圖。
圖8中示出的存儲器更新單元800可包括第一參數獲取單元820、范數分組單元840、第二參數獲取單元860和存儲單元880。
參照圖8,第一參數獲取單元820可獲得用于確定當前幀是否為瞬態(tài)的energy_curr和energy_ma,并將獲得的值energy_curr和energy_ma提供給存儲單元880。
范數分組單元840可將范數值分組在預定義的組中。
第二參數獲取單元860可獲得每個組的平均范數值,并且獲得的每個組的平均范數值可被提供給存儲單元880。
存儲單元880可將從第一參數獲取單元820提供的值energy_curr和energy_ma、從第二參數獲取單元860提供的每個組的平均范數值、從編碼器發(fā)送的指示當前幀是否為瞬態(tài)的瞬態(tài)標志、指示當前幀是在時域中被編碼還是在頻域中被編碼的編碼模式、以及好幀的頻譜系數更新并存儲為當前幀的值。
圖9示出應用于本發(fā)明的頻帶劃分。對于48khz的全頻帶,對具有20ms長度的幀可支持50%的重疊,并且當應用mdct時,將被編碼的頻譜系數的數量為960。如果編碼被執(zhí)行直到20khz,則將被編碼的頻譜系數的數量為800。
在圖9中,區(qū)塊a與窄帶相應,支持0到3.2khz,并被劃分為每個子頻帶具有8個采樣的16個子頻帶。區(qū)塊b與被添加到窄帶以支持寬帶的頻帶相應,另外地支持3.2至6.4khz,并被劃分為每個子頻帶具有16個采樣的8個子頻帶。區(qū)塊c與被添加到寬帶以支持超寬帶的頻帶相應,另外地支持6.4至13.6khz,并被劃分為每個子頻帶具有24個采樣的12個子頻帶。區(qū)塊d與被添加到超寬帶以支持全頻帶的頻帶相應,另外地支持13.6至20khz,并被劃分為每個子頻帶具有32個采樣的8個子頻帶。
可使用各種方法來對被劃分為子頻帶的信號進行編碼??墒褂妹總€頻帶的范數、能量或縮放因子對頻譜的包絡進行編碼。在對頻譜的包絡進行編碼之后,可對每個頻帶的精細結構(即,頻譜系數)進行編碼。根據示例性實施例,可使用每個頻帶的范數對整個頻帶的包絡進行編碼??赏ㄟ^等式1來獲得范數。
在等式1中,與范數相應的值是gb,對數(log)尺度的nb被實際上量化。使用nb的被量化的值來獲得gb的被量化的值,當原始輸入信號xi除以gb的被量化的值時獲得yi,因此,量化處理被執(zhí)行。
圖10示出應用于本發(fā)明的線性回歸分析和非線性回歸分析的概念,其中,“范數的平均”指示通過對若干頻帶進行分組而獲得的平均范數值,并且是回歸分析被應用的目標。因為對數尺度的線性值實際上是非線性值,所以當gb的被量化的值被用于先前幀的平均范數值時,執(zhí)行線性回歸分析,當對數尺度的nb的被量化的值被用于先前幀的平均范數值時,執(zhí)行非線性回歸分析。可以可變地設置指示用于回歸分析的pgf的數量的“pgf的數量”。
可由等式2來表示線性回歸分析的示例。
y=ax+b
如在等式2中,當使用線性等式時,可通過獲得a和b來預測即將進行的轉換(transition)。在等式2中,可通過逆矩陣獲得a和b。獲得逆矩陣的簡單方法可使用高斯約當消元法。
可由等式3來表示非線性回歸分析的示例。
y=bxa
lny=lnb+alnx
y=exp(lnb+alnx)(3)
在等式3中,可通過獲得a和b來預測即將進行的轉換。另外,ln的值可由nb的值來替換。
圖11示出根據示例性實施例的被分組以應用回歸分析的子頻帶的結構。
參照圖11,對于第一區(qū)域,通過將8個子頻帶分組為一個組來獲得平均范數值,可使用先前幀的分組平均范數值來預測錯誤幀的分組平均范數值。在圖12至圖14中詳細示出了使用每個頻帶的子頻帶的示例。
圖12示出當應用回歸分析以對最高支持7.6khz的寬帶進行編碼時的被分組的子頻帶的結構。圖13示出當回歸分析被應用于對最高支持13.6khz的超寬帶進行編碼時的被分組的子頻帶的結構。圖14示出當回歸分析被應用于對最高支持20khz的全頻帶進行編碼時的被分組的子頻帶的結構。
從被分組的子頻帶獲得的分組平均范數值形成矢量,其中,所述矢量被稱為分組范數的平均矢量。當分組范數的平均矢量被代入參照圖10描述的矩陣時,可獲得分別與斜率和y截距相應的值a和b。
圖15a至圖15c示出被分組以在使用了bwe時將回歸分析應用于最高支持16khz的超寬帶的子頻帶的結構。
當在超寬帶中以50%的重疊對長度為20ms的幀執(zhí)行mdct時,總共獲得640個頻譜系數。根據示例性實施例,可通過將核心部分與bwe部分分離來確定被分組的子頻帶。核心起始區(qū)段到bwe起始區(qū)段的編碼被稱為核心編碼。表示用于核心部分的頻譜包絡的方法和表示用于bwe部分的頻譜包絡的方法可彼此不同。例如,可將范數值、縮放因子等用于核心部分,同樣地,可將范數值、縮放因子等用于bwe部分,其中,可將不同的范數值、縮放因子等用于核心部分和bwe部分。
圖15a示出將大量比特用于核心編碼的示例,并且被分配給核心編碼的比特數在圖15b和圖15c中逐漸減少。bwe部分是被分組的子頻帶的示例,其中,子頻帶的數量指示頻譜系數的數量。當范數被用于頻譜包絡時,使用回歸分析的幀錯誤隱藏算法如下:首先,在回歸分析中,使用與bwe部分相應的分組平均范數值來更新存儲器。使用獨立于核心部分的先前幀的bwe部分的分組平均范數值來執(zhí)行回歸分析,并預測當前幀的分組平均范數值。
圖16a至圖16c示出使用后續(xù)好幀(ngf)的時域信號的疊加方法。
圖16a描述當先前幀不是錯誤幀時通過使用先前幀來執(zhí)行重復或增益縮放的方法。參照圖16b,不使用額外延遲,僅針對尚未通過重疊而被解碼的區(qū)段,在作為好幀的當前幀中解碼的時域信號被重復地重疊到過去,并另外地執(zhí)行增益縮放。將被重復的信號的長度被選為小于或等于將被重疊的區(qū)段的長度的值。根據示例性實施例,將被重疊的區(qū)段的長度可以是13×l/20,其中,例如,對于窄帶,l表示160;對于寬帶,l表示320;對于超寬帶,l表示640;對于全頻帶,l表示960。
通過重復來獲得ngf的時域信號以得到將被用于時間重疊處理的信號的方法如下:
在圖16b中,在第(n+2)幀的未來區(qū)段中的長度為13×l/20的塊被復制到與第(n+1)幀的相同位置相應的未來區(qū)段以用所述塊來替換現有值,從而調整比例。被縮放的值是例如-3db。在復制處理中,為了去除與作為先前幀的第(n+1)幀的不連續(xù)性,對于第一長度13×l/20,將從圖16b的第(n+1)幀獲得的時域信號與從未來區(qū)段復制的信號線性重疊。通過此處理,可最終獲得用于重疊的信號,并且當更新后的第(n+1)信號與更新后的第(n+2)信號重疊時,最終輸出第(n+2)幀的時域信號。
如另一示例,參照圖16c,發(fā)送的比特流被解碼成“mdct域解碼頻譜”。例如,使用50%的重疊,參數的實際數量是幀大小的兩倍。當解碼的頻譜系數被逆變換時,產生具有相同大小的時域信號,當對時域信號執(zhí)行“時間加窗”處理時,產生加窗的信號auout。當對加窗的信號執(zhí)行“時間疊加”處理時,產生最終的信號“時間輸出(timeoutput)”?;诘趎幀,在先前幀中尚未被重疊的區(qū)段oldauout可被存儲并用于后續(xù)幀。
圖17是根據示例行實施例的多媒體裝置1700的框圖。
圖17中示出的多媒體裝置1700可包括通信單元1710和解碼模塊1730。另外,多媒體裝置1700還可包括存儲單元1750,其中,存儲單元1750根據作為解碼結果而獲得的重建的音頻信號的用途來存儲重建的音頻信號。另外,多媒體裝置1700還可包括揚聲器1770。也就是說,存儲單元1750和揚聲器1770是可選的。另外,多媒體裝置1700還可包括任意編碼模塊(未示出),例如,用于執(zhí)行一般編碼功能的編碼模塊。解碼模塊1730可與包括在多媒體裝置1700中的其他組件(未示出)組合在一個主體中,并可被實現為至少一個處理器(未示出)。
參照圖17,通信單元1710可接收從外部提供的編碼的比特流和音頻信號中的至少一個,或發(fā)送作為解碼模塊1730的解碼結果而獲得的重建的音頻信號和作為編碼結果而獲得的音頻比特流中的至少一個。
通信單元1710被配置為經由無線網絡(諸如無線互聯網、無線內聯網、無線電話網、無線局域網(wlan)、wi-fi、wi-fi直連(wfd)、第三代(3g)、第四代(4g)、藍牙、紅外數據協會(irda)、射頻識別(rfid)、超寬帶(uwb)、zigbee或近場通信(nfc))或有線網絡(諸如有線電話網或有線互聯網)將數據發(fā)送到外部多媒體裝置和從外部多媒體裝置接收數據。
可使用根據本發(fā)明的各種上述實施例的音頻解碼設備來實現解碼模塊1730。
存儲單元1750可存儲由解碼模塊1730產生的重建的音頻信號。另外,存儲單元1750可存儲操作多媒體裝置1700所需的各種程序。
揚聲器1770可將由解碼模塊1730產生的重建的音頻信號輸出到外部。
圖18是根據另一示例性實施例的多媒體裝置1800的框圖。
圖18中示出的多媒體裝置1800可包括通信單元1810、編碼模塊1820和解碼模塊1830。另外,多媒體裝置1800還可包括存儲單元1840,其中,存儲單元1840用于根據作為編碼結果或解碼結果而獲得的音頻比特流或重建的音頻信號的用途來存儲音頻比特流或重建的音頻信號。另外,多媒體裝置1800還可包括麥克風或揚聲器1860。編碼模塊1820和解碼模塊1830可與包括在多媒體裝置1800中的其他組件(未示出)組合在一個主體中,并可被實現為至少一個處理器(未示出)。省略在圖17中示出的多媒體裝置1700和圖18中示出的多媒體裝置1800之間的相同組件的詳細描述。
在圖18中,編碼模塊1820可采用各種公知的編碼算法以通過對音頻信號進行編碼來產生比特流。所述編碼算法可包括例如自適應多速率寬帶(amr-wb)、mpeg-2&4音頻編碼(aac)等,但是不限于此。
存儲單元1840可存儲由編碼模塊1820產生的編碼的比特流。另外,存儲單元1840可存儲操作多媒體裝置1800所需的各種程序。
麥克風1850可將用戶或外部的音頻信號提供給編碼模塊1820。
多媒體裝置1700和1800中的每一個還可包括語音通信專用終端(包括電話、移動電話等)、廣播或音樂專用裝置(包括tv、mp3播放器等)、或語音通信專用終端和廣播或音樂專用裝置的復合終端裝置,但不限于此。另外,多媒體裝置1700和1800中的每一個可用作客戶端、服務器或布置在客戶端和服務器之間的轉換裝置。
當多媒體裝置1700或1800是例如移動電話時,雖然未示出,但是移動電話還可包括用戶輸入單元(諸如鍵盤)、用于顯示由移動電話處理的信息的用戶界面或顯示單元、和用于控制移動電話的一般功能的處理器。另外,移動電話還可包括具有圖像捕捉功能的相機單元和用于執(zhí)行移動電話所需功能的至少一個組件。
當多媒體裝置1700或1800是例如tv時,雖然未示出,但是tv還可包括用戶輸入單元(諸如鍵盤)、用于顯示接收的廣播信息的顯示單元、和用于控制tv的一般功能的處理器。另外,tv還可包括用于執(zhí)行由tv所需的功能的至少一個組件。
根據實施例的方法可被編寫為計算機程序,并可被實現在使用計算機可讀記錄介質執(zhí)行程序的通用數字計算機中。另外,可在本發(fā)明的實施例中使用的數據結構、程序指令或數據文件可以以各種方式被記錄在計算機可讀記錄介質中。計算機可讀記錄介質是可存儲隨后可由計算機系統讀取的數據的任何數據存儲裝置。計算機可讀記錄介質的示例包括磁記錄介質(諸如硬盤、軟盤和磁帶)、光記錄介質(諸如cd-rom和dvd)、磁光介質(諸如光磁盤)以及專門被配置為存儲和執(zhí)行程序指令的硬件裝置(諸如只讀存儲器(rom)、隨機存取存儲器(ram)和閃存)。另外,計算機可讀記錄介質可以是用于發(fā)送指示程序指令、數據結構等的信號的傳輸介質。程序指令的示例可包括由編譯器產生的機器語言代碼和可由計算機使用解釋器執(zhí)行的高級語言代碼。
雖然已參照本發(fā)明構思的示例性實施例具體示出并描述了本發(fā)明構思,但是本領域的普通技術人員將理解,在不脫離由權利要求限定的本發(fā)明構思的精神和范圍的情況下,可做出形式和細節(jié)上的各種改變。