專利名稱:使用復數值數據的音頻信號解碼的制作方法
技術領域:
本發明涉及音頻信號編碼。本發明具體來說,但非專門地,涉及對MPEG-1層III數據信號進行解碼。
背景技術:
MPEG-1層III(通常稱為mp3)是廣泛采用的音頻編解碼器。在ISO/IEC JTC1/SC29/WG11 MPEG,IS11172-3,Information Technology-Coding of Moving Pictures and Associated Audio for DigitalStorage Media at up to about 1.5Mbit/s,Part3Audio,MPEG-1,1992中介紹了mp3的行業標準。這一標準可以從國際標準化組織(ISO)(www.iso.ch)得到并且以引用的方式并入本文。
已經設計出了高級音頻編碼標準(AAC)來解決mp3的部分不足。在ISO/IEC JTC1/SC29/WG11 MPEG,IS13818-3,Information Technology-Generic Coding of Moving Pictures and Associated Audio,Part3Audio,MPEG-2,1994中介紹了AAC標準,這個標準也可以從ISO得到。
作為解碼處理的一部分,各個標準介紹的相應音頻解碼器創建改進離散余弦變換(MDCT)系數的形式的頻率或者譜系數,即,代表編碼數據信號的譜分量的系數。
各個譜系數代表編碼音頻信號的相應頻率分量。在某些應用中,例如在均衡器中,有可能希望能夠對譜系數進行后處理,以使得信號的一個或多個相應頻率分量能夠得到直接運用。不過,在常規的mp3和AAC解碼中,只有有限的MDCT系數的后處理是可能實行的。之所以如此,有兩個原因。首先,MDCT是臨界采樣的和重疊的變換(典型地采用50%重疊),這一變換借助時域混疊消除(TDAC)來實現完全重構。這意味著,由于時域混疊的影響,借助(正向)MDCT將信號x(n)變換成X(k)和借助反向MDCT將X(k)反向變換成時域信號x′(n)一般來說不會給出恒等式x(n)=x′(n)。不過,完全重構是通過對信號x′(n)進行交疊相加運算實現的。因此,調節單獨一個給定幀的MDCT系數能夠影響(例如,減少)解碼信號中時域混疊消除導致的聽得見的偽音。第二個原因是,MDCT是實數值變換,并且這使得相位調節或旋轉實際上不可能做到。
已經知道,可以對信號的譜分量的復數值表達(即,具有實數和虛數分量的表達)比較容易進行后處理。由Coding Technologies(www.codingtechnologies.com)提供的譜帶復制(SBR)帶擴展工具(例如,在mp3PRO和Advanced Audio Coding Plus(aacPlus)中得到了應用)對復數值子帶域表達進行運算。
附圖1表示針對AAC提出的SBR解碼器。AAC MDCT系數由全基本層解碼器30(典型地運行在采樣頻率的一半上)處理,以產生多個時域采樣。將時域采樣提供給32(或者在基本層解碼器運行在整個采樣頻率上的情況下是64)頻帶復指數調制分析QMF(正交鏡像對稱濾波器)組32,以產生復數值子帶域信號,該信號可由處理單元34進行后處理。在后處理之后,將復數值子帶域信號提供給64頻帶復指數調制合成QMF組36,該QMF組產生包括PCM采樣的輸出信號。附圖1中圖解說明的算法的缺點是,除了基本層解碼器外,還要使用復指數調制濾波器組,這在計算上和在存儲方面成本都是很高的。為mp3提出的SBR算法受到同樣缺點的困擾。
發明內容
因此應該希望給出一種支持復數值譜系數的后處理而又不會明顯增加解碼器的復雜性的音頻解碼器。
據此,本發明的第一個方面給出了一種解碼器,包括用于從接收到的信號中還原出多個第一譜系數的裝置,第一譜系數包括第一變換裝置的產物;反向變換裝置,用于將所述第一譜系數變換成一個或多個時域信號分量;第二變換裝置,用于將所述一個或多個時域信號分量變換成多個第二譜系數,其中在相應的調制頻率上,所述第二變換裝置的調制正交于所述第一變換裝置的調制,該解碼器此外還包括用于對一個或多個所述第一譜系數與相應的第二譜系數結合起來進行處理的裝置。
與公共調制頻率相應的第一和第二譜系數可以一起作為復數值譜系數加以處理。并且,這樣,適合于由處理裝置進行后處理。
按照優選實施方式,所述第一正向頻率變換和所述第二正向頻率變換之一包括改進離散余弦變換(MDCT),另一個包括改進離散正弦變換(MIDST)。按照這樣的實施方式,該解碼器尤其適用于對mp3信號進行解碼。按照一種實施方式,解碼器還包括用于對所述第二譜系數和它們的相應混疊的第一譜系數進行復數值混疊減少的裝置,其中所述復數值混疊減少裝置包括一個或多個設置成用于將復數值加權值應用于所述混疊的第一和相應的第二頻率分量的抗混疊蝶形運算單元(butterflies)。
按照一種優選實施方式,該解碼器此外該包括用于對所述復數值譜系數進行一次或多次復數值反向頻率變換來產生多個數據采樣的裝置;用于將一種或多種類型的窗口函數應用于所述數據采樣來產生多個加窗的數據采樣的裝置;和用于從所述加窗的數據采樣構建輸出信號的裝置。最好,所述復數值反向頻率變換包括奇數頻率調制的反向離散傅立葉變換(IDFT),更好地,所述復數值反向頻率變換包括奇次奇數頻率調制的反向離散傅立葉變換(O2DFT)。
最好,該解碼器此外還包括用于按照說明書中的等式[5]和[6]調節復數值譜系數的相位的裝置。
按照另外一種實施方式,所述反向變換裝置包括合成子帶濾波器組并且第二正向變換裝置包括分析子帶濾波器組。最好,所述第一變換裝置包括分析濾波器組,所述第一和第二正向變換裝置之一是余弦調制的,另一個是正弦調制的。
本發明的第二個方面給出了一種對數據信號進行解碼的方法,該方法包括從接收到的信號中還原出多個第一頻率系數,第一譜系數包括第一變換裝置的產物;由反向變換裝置將所述第一譜系數變換成一個或多個時域信號分量;由第二變換裝置將所述一個或多個時域信號分量變換成多個第二譜系數,其中在相應的調制頻率上,所述第二變換裝置的調制正交于所述第一變換裝置的調制,該方法此外還包括對一個或多個所述第一譜系數與相應的第二譜系數結合起來進行處理。
在從屬權利要求中列出了其它優選特征。
在閱讀了下述本發明優選實施方式的介紹的情況下,本發明的更多有益方面對于本領域技術人員來說將會變得顯而易見。
現在將以舉例的方式并且參照附圖介紹本發明的實施方式,其中附圖1給出了圖解說明常規譜帶復制(SBR)增強解碼器的框圖;附圖2給出了常規MPEG-1層III解碼器的框圖;附圖3給出了具體實施本發明的一個方面的解碼器;附圖4給出了在上采樣之后下采樣濾波器組的兩個相鄰子帶濾波器的響應的固定格式的圖解說明;附圖5給出了抗混疊蝶形運算單元的示意圖;附圖6給出了具體實施本發明的一個方面的解碼器的另一種實施方式;附圖7表示常規MPEG-1層I/II解碼器的簡化框圖;和附圖8給出具體實施本發明的一個方面的再另一種實施方式。
具體實施例方式
典型的常規MPEG-1層III編碼器(未示出)設置成用來接收包括一連串或一幀1152個音頻輸入采樣的PCM輸入信號。將該輸入信號供應給多相分析濾波器組,該濾波器組將該輸入信號濾波成32個間距均勻的重疊頻帶,以產生32個下采樣子帶信號分量,各個分量包括36個子帶采樣。
針對各個子帶信號分量,進行加窗的(正向)MDCT(改進離散余弦變換)。使用四種窗口類型來迎合可變時間分段。對于信號的(準)穩定部分,可以使用所謂的正常窗口,而,對于信號的非穩定部分,可以使用一系列所謂短窗。定義了兩種短時類型的窗口(所謂的開始和停止窗口)來防止從正常窗口切換到短窗以及反過來進行的時候出現不連續。對于正常、開始和停止窗口,MDCT是對36個輸入(即,36個子帶采樣)進行的并且產生18個輸出MDCT系數,這些MDCT系數通常稱為頻率線。對于短窗,MDCT是對三個12個輸入的組(即,三個12個子帶采樣的組)進行的,并且產生三個6個輸出MDCT系數(或頻率線)的組。576個MDCT系數的集合稱為一團(granule)。對于包括1152個輸入采樣的典型mp3幀來說,由于編碼處理的重疊性質,會產生兩個團。總的來說,會為各個576個輸入采樣產生18×32=576個MDCT系數或頻率線。
在正常、開始或停止窗口的情況下,將MDCT頻率線提供給抗混疊蝶形運算單元,以減小由對多相濾波器組的譜重疊濾波器進行下采樣所造成的混疊效果。最后,對MDCT系數進行編碼(使用霍夫曼(Huffman)編碼)和量化,以產生具有規定位流格式的輸出信號。量化和編碼是在位分配單元的控制下進行的,該單元執行位分配算法,該算法典型地是由心理聲學模型指導的。
附圖2給出了常規MPEG-1層III解碼器10的簡化框圖,僅僅示出了對評價本發明有幫助的那些組成部分。解碼器10設置成用于接收具有規定mp3位流格式的輸入信號。解碼和去量化單元12進行位流的解碼(典型地是霍夫曼解碼)和去量化,以產生頻率線,或者MDCT系數。對于各個由編碼器產生的576個MDCT頻率線的集合,再生出相應的576個頻率線。
將這些頻率線提供給重新排序單元14,該單元在短型窗口的情況下對各個系數團內的頻率線進行重新排序。在正常、開始或停止窗口的情況下,將這些頻率線提供給混疊蝶形運算單元16,混疊蝶形運算單元執行由編碼器的抗混疊蝶形運算單元執行的抗混疊操作的反向操作。
MDCT單元18對這些頻率線執行IMDCT(反向改進離散余弦變換),以產生32個多相濾波器子帶信號分量,各個分量包括36個子帶采樣。對于與正常、開始或停止窗口MDCT相應的那些頻率線,IMDCT單元18將18個頻率線作為輸入并且產生36個子帶域采樣。對于與短窗MDCT相應的那些頻率線,IMDCT單元18將3個6個頻率線的組作為輸入并且產生3個12個子帶域采樣的組。
由加窗和重疊-相加單元20對子帶采樣進行加窗操作和標準重疊和相加操作。在位流的相關輔助信息(side information)內攜帶著與要使用哪種類型的窗口有關的信息。
最后,將這些子帶采樣提供給多相合成濾波器組22,該濾波器組22按系數32進行上采樣,并且產生包括PCM采樣的輸出信號。
該濾波器組22包括原型低通濾波器,對原始低通濾波器進行余弦調制,以形成較高頻帶。子帶濾波器組與MDCT/IMDCT單元的串聯組合稱為混合濾波器組,因為它一部分由濾波器組構成,一部分由變換構成。IMDCT單元18和合成濾波器組22一起構成混合合成濾波器組。從計算的角度看,并且因此從實現的角度看,認為使用混合濾波器組是mp3的弱點,它引入了復雜性。
如上面所指出的,MDCT系數是實數值的(即,它們不包括虛部)并且是臨界采樣的,這樣來說,它們不太適于后處理。在下面的本發明的優選實施方式的介紹中,給出了一種復雜性與解碼器10相當的解碼器,這種解碼器在解碼處理的中間階段創建類似奇調制離散傅立葉變換(DFT)表達的復數值系數,這些復數值系數很適于后處理。而且,實數值MDCT系數擴展到復數值系數帶來了系數為2的有效過采樣。結果,這些復數值系數不會象MDCT那樣受到時域混疊的影響。換句話說,借助這種復數值變換及其反變換對信號x(n)進行變換和反變換將會得到同樣的信號x(n)。
可以將MDCT定義為C(k)=Σn=0N-1x(n)cos(2π(n+12+N4)(k+12)N)---[1]]]>其中n是時間指數,對于常規mp3解碼器來說,該時間指數代表子帶采樣指數;N是變換長度或大小;k是頻率指數;x(n)是時域信號,在常規mp3解碼器中,該信號包括由子帶采樣構成的子帶時域信號;而C(k)是頻域MDCT頻譜。
等式[1]代表復數值變換的實部,如等式[2]中所示 等式[2]中給出的復數值變換是奇次奇頻離散傅立葉變換(O2DFT)并且可以通過快速傅立葉變換(FFT)的預旋轉和后旋轉(或調制)來有效地加以計算。由等式[2]的復數值變換的虛部給出了稱為改進離散正弦變換(MDST)的變換。因此,可以將MDST描述為
其中S(k)是頻域MDST頻譜。
因此,MDCT系數與它們相應的MDST系數一起給出了數據信號在頻域中的復數值表達,各個MDCT系數給出對應的復數值系數的實部,而相應MDST給出虛部。這樣的復數值系數很適于后處理。可以將MDCT和MDST說成是相互正交的變換,即,相對于彼此正交的變換,因為一個變換的頻率指數k的變換內核正交于另一個變換對應于同一頻率指數k的變換內核。換句話說,具有相同調制頻率的第一變換(例如,MDCT)和第二變換(例如,MDST)各自的變換調制內核是正交的。
正是這種正交屬性使得變換各自的輸出能夠用作復數值表達的相應實部和虛部。一般來說,用在具體實施本發明的解碼器中來創建復數值頻率或譜系數的虛部的正向頻率變換的調制在相應的頻率上正交于用在編碼器中來創建復數值頻率或譜系數的實部的正向頻率變換的調制(或者反過來,即,解碼器中的正向頻率變換創建實部和編碼器中的正向頻率變換創建復數值頻率系數的虛部的情況)。在下面的本發明的具體實施方式
的介紹中,假設解碼器設置成用于對mp3數據信號進行解碼,所以在編碼器(未示出)中采用MDCT,并且在實施本發明的解碼器中采用MDST。不過,將會理解,按照其它可供選用的實施方式,可以采用其它類似的正交變換。而且,可以使用將數據信號從時域變換到頻率(以及反過來)的其它裝置,例如,子帶分析和合成濾波器組,這兩個濾波器組是以相互正交的方式調制的。
附圖3給出具體實現本發明的一個方面的解碼器40的框圖。為了清晰,僅僅示出了解碼器40有助于理解本發明的那些組成部分。解碼器40設置成用于對多個MDCT系數或頻率線進行運算,如附圖3的左手邊所指出的。在正常情況下,MDCT系數是通過對解碼器40接收到的輸入信號進行解碼和去量化而還原出來的。例如,在解碼器40包括mp3解碼器的情況下,輸入信號包括mp3編碼位流,并且解碼器40此外還包括解碼和去量化單元以及重新排序單元(在附圖2中給出,而在附圖3中沒有示出),它們對所接收到的mp3位流進行還原和重新排序,以產生MDCT系數。在下面的介紹中,例如,假設解碼器40設置成用來對mp3信號進行解碼。
為了獲得子帶域采樣,借助IMDCT對MDCT系數進行變換。對于mp3解碼,這可以采用與常規mp3解碼器10所采用的方式相同的方式來實現。因此,按照優選實施方式,解碼器40包括混疊單元或者混疊蝶形運算單元42和IMDCT單元44,它們分別類似于常規解碼器10的混疊蝶形運算單元16和IMDCT單元18。
IMDCT單元44產生多個包括子帶采樣的子帶域信號分量。由加窗和重疊-相加單元46對子帶采樣進行常規加窗和重疊-相加運算,按照優選實施方式,該加窗和重疊-相加單元46類似于常規解碼器10的加窗和重疊-相加單元20。
為了產生復數值系數,解碼器40必須創建這些系數的虛部。如前面參照等式[3]介紹的那樣,這可以通過對子帶域信號分量進行MDST來實現。在重疊-相加運算之后,子帶信號分量就做好了變換回頻域的準備,并且將它們提供給MDST單元48。
針對各個子帶域信號分量,MDST單元48進行加窗(正向)MDST。對于正常、開始或停止窗口,對36個輸入(即,36個子帶采樣)進行MDST,并且產生18個輸出MDST系數或頻率線。對于短窗,對三個12個輸入的組(即,三個12個子帶采樣的組)進行MDST,并且產生三個6個輸出MDST系數的組。
最好對MDST系數進行抗混疊。因此,解碼器40最好包括抗混疊單元50或者抗混疊蝶形運算單元。在正常情況下,抗混疊僅僅針對與正常、開始或停止窗口相關的數據進行。抗混疊蝶形運算單元50總地來講類似于mp3標準中介紹的抗混疊蝶形運算單元,只是要對計算的某些方面求反(negated)。具體來說,參照mp3標準并且使用同樣的符號,為了用在針對MDCT系數的抗混疊蝶形運算單元中,將向量c定義為c=[-0.6,-0.535,-0.33,-0.185,-0.095,-0.041,-0.0142,-0.0037]由此可以計算出下列兩個另外的向量cu和cs
cu(k)=c(k)1+c(k)2,k=0,...,7]]>cs(k)=11+c(k)2,k=0,...,7]]>[4]在對MDST系數進行抗混疊的時候,要對向量cu求反,即,乘以系數-1。在其它情況下,抗混疊蝶形運算單元50可以按照mp3標準操作。
因此,在由附圖3中的虛線AA’代表的解碼階段,可以為解碼器40給出復數值系數,各個系數的虛部由相應的MDST系數給出,該系數的實部由相應的MDCT系數給出。為了使各個MDST系數的產生與其相應的MDCT系數同步,最好由延遲元件52對MDCT系數進行延遲。延遲量取決于產生MDST系數所需的處理延遲,該處理延遲主要由進行重疊-相加運算所需的延遲決定。解碼器40為各個系數團的各個MDCT系數產生相應的復數值系數。
這些復數值系數適合于后處理,并且為此,在解碼器40中設置了處理單元56,用來如期望的調節一個或多個復數值系數。由于復數值系數是頻域分量,因此可以有利地直接對編碼信號的一個或多個頻率分量進行后處理。
還要求解碼器40產生時域輸出信號,在本例中,該時域輸出信號包括來自經過后處理(視情況而定)的復數值系數的PCM信號。為此,觀察到復數值系數的形式類似于由O2DFT產生的系數的形式。而且,由整個頻率分析(編碼器和解碼器二者中的)結合抗混疊(編碼器和解碼器二者中的)得到的系數與由單獨一次復數值變換獲得的系數對應得非常好,要好于對各個子帶信號進行得一組復數值變換。因此認為,通過對復數值系數進行反O2DFT有可能產生時域輸出信號。這有利地避免了在解碼器40中使用子帶濾波器組的需求。
不過,為了減少輸出信號中能夠感覺到的偽音,最好進行復數值系數的某種預處理,從而使它們更加接近地類似于O2DFT系數,就好像是由單獨一次O2DFT獲得的,而不是對各個子帶信號進行O2DFT獲得的。就此而論,由解碼器40產生的復數值系數與真正的O2DFT系數之間的主要差別是1)雖然已經通過由抗混疊蝶形運算單元50執行的抗混疊并且在編碼器中得到了減少,但是在復數值系數中仍然存在一些混疊;和2)由常規mp3編碼器的(多相)濾波器組造成的相位旋轉。
殘余混疊并不明顯并且可以容忍。不過,由多相濾波器造成的相位旋轉可以通過對各個復數值系數施加相位旋轉或移動來加以補償。混合mp3濾波器組和O2DFT二者各自的相位特性都基本上是線性的并且因此可以由線性函數表達。mp3濾波器組結合對奇數子帶使用頻率倒置還對交替的子帶進行了求反(即,引入180°或π相移)。因此,復數值系數補償mp3或類似的濾波器組的性能所要求的相移(comp可以由下式近似 其中a和b是常數,而k是與系數團的576個系數相應的指數。項ak+b給出與原型濾波器和所應用的余弦調制二者的線性相位特性相關的線性相移,而項 用于對與交替子帶相應的系數求反(假設是普通的mp3結構)。a和b的值可以通過在O2DFT輸出端處和在混合復數擴展MPEG-1分析濾波器組的輸出端處測量任意輸入信號的相位特性來確定。通過分析多個輸入信號或幀的這些相應相位特性,可以優化a和b的值。
可以以直接旋轉的方式對復數值系數應用多相濾波器修正Pcorr(k)=exp(j·comp(k))P(k)[6]其中P(k)是未補償的復數值系數,而Pcorr(k)是經過補償的或經過修正的復數值系數(可在附圖3中的級AA′處得到)。
在附圖3中,解碼器40包括相位補償單元54或多相濾波器修正單元,用于執行等式[6]的相位補償。該相位補償單元54將經過相位補償的復數值系數Pcorr(k)提供給處理單元56。
在后處理(視情況而定)之后,復數值系數做好了變換到時域的準備。如上面所指出的那樣,這在傳統上是通過對與各個系數團相關的復數值系數進行一次或多次反向O2DFT來實現的。為此,解碼器40此外還包括反向O2DFT單元58,該單元是為了對復數值系數進行一次或多次反向O2DFT而設置的。將會看到,按照優選實施方式,反向O2DFT單元58設置成用于一次對整個系數團的各個復數值系數進行運算,而不是按照它們相關的子帶對復數值系數應用一系列較小的反向O2DFT。因此,反向O2DFT單元58對與系數團相關的的所有復數值系數執行單獨一次反向O2DFT(在需要正常、開始或停止類型的窗口時)或者對與系數團相關的所有復數值系數的相應數量的子集執行多次反向O2DFT(在需要短型窗口時)。對于系數團包括576個頻率線的mp3位流,反向O2DFT單元58對于正常、開始或停止窗口在整個系數團執行單獨一次反向O2DFT,得到1152個時域采樣,并且對3個192個復數值系數的子集執行三次反向O2DFT,得到三個相應的384個時域采樣的序列或集合。反向O2DFT單元58的輸出包括多個(在本例中是1152個)還原出來的信號分量或采樣,這些信號分量或采樣可以用于構建PCM輸出信號。
為了構建PCM輸出信號,對由反向O2DFT單元58產生的信號采樣執行加窗和重疊-相加運算。因此,解碼器40此外還包括加窗單元60和重疊-相加單元62,下面將更加詳細地介紹它們的操作。
為了使使用加窗和重疊-相加單元60、62進行的PCM輸出信號構建可以得到更好的理解,現在將詳細介紹常規mp3加窗。在mp3中,規定了四種不同的窗口類型(和伴隨的長度),即,‘正常’、‘開始、‘短’和‘停止’。選擇某種類型的窗口或者一系列不同窗口類型來迎合要應用(多個)窗口的數據部分的特性。例如,短型窗口通常應用于與音頻信號中的瞬變對應的數據部分。與給定數據幀相關的輔助信息指出與系數團一起使用的是哪種窗口類型。所需要的窗口類型影響MDCT的長度或大小(因此還有反向MDCT)和加窗/重疊-相加運算二者。
對于mp3,可以將窗口函數z(n)描述為下列形式對于正常類型的窗口(類型0)z(n)=sin(π36(n+12)),n=0...35---[7]]]>對于開始類型的窗口(類型1)
z(n)=sin(π36(n+12))n=0...171n=18...23sin(π12(n+12-18))n=24...290n=30...35---[8]]]>對于短型窗口(類型2),同時編碼三個短窗zp(n)=sin(π12(n+12)),n=0...11,p=0,1,2---[9]]]>對于停止類型的窗口(類型3)z(n)=0n=0...5sin(π12(n+12-6))n=6...111n=12...17sin(π36(n+12))n=18...35---[10]]]>等式[7]、[8]、[9]和[10]中的各個窗口函數一般情況下看作單一窗口函數,不過它們可能牽涉到不止一個窗口的應用。從函數[7]、[8]和[10]中可以看出,窗口長度是36(即,36點窗口),因此指數n從0變到35。對于函數[9],三個短的12點窗口的組合長度是36,因此對于p=0到2,n從0變到11。因此,各個窗口類型的總長度對應于子帶信號分量的大小(36個子帶采樣)。
現在介紹由加窗和重疊-相加單元60、62結合反向O2DFT單元58進行的PCM輸出信號的構建。在下面的例子中,假設原始PCM信號包括1152個音頻采樣的幀,各個幀有效地變換成兩個576個頻率線的系數團(或者MDCT系數)。因此,反向O2DFT單元58對576個復數值系數的系數團進行操作,以產生包括1152個采樣的信號,然后將這些采樣提供給加窗和重疊-相加單元60、62。將會看出,僅僅將反向O2DFT單元58產生的信號采樣的各個實部提供給加窗單元60。
將復數值系數的第1個集合或系數團表示為Xl(k),其中k=0...575。參照附圖3,Xl(k)是由經過修正的復數值系數Pcorr(k)(在由處理單元56進行了后處理之后)的各個集合或系數團構成。在對復數值系數的第1集合(1從0開始)進行了解碼之后,由加窗和重疊-相加單元60、62產生的輸出信號用下式描述(使用重疊-相加)yl+1(n+576·l)=yl(n+576·l)+xl+1(n) [11]其中指數n=0…1151,yl(n)是對第1個集合進行解碼之后的輸出信號,而xl(n)是對復數值系數Xl(k)進行變換(反向O2DFT)得到的信號的實部。對于所有的n,將輸出信號yo(n)初始化為零。
信號xl(n)的產生取決于相應的指定窗口類型,如下所述。在第1個集合的窗口類型是0、1或3的情況下,反向O2DFT單元58產生臨時信號xtmp(n),該信號包括輸入長度為576并且輸出長度為1152的反向O2DFT的實部(即,對與相應系數團相關的所有復數值系數進行的單獨一次“長”反向O2DFT)。在等式[12]中給出了合乎需要的變換 其中n=0...N-1并且變換長度N=1152。
當用于第1個集合的窗口類型是2(即,“短窗”)時,反向O2DFT單元58對三個192個復數值系數的集合執行各自的反向O2DFT,以產生三個相應的臨時信號,將這三個臨時信號表示為xtmp,0(n)、xtmp,1(n)和xtmp,2(n),這三個信號各自具有384個點,如等式[13]中所示 其中指數p=0...2,n=0...N-1,N=384,并且在按頻率排序之前按照p對Xl(k)進行排序。
有效提供給加窗和重疊-相加單元60、62的是臨時信號xtmp(n)、xtmp,p(n)。
當第1個集合的窗口類型是0時,由加窗單元60按照下式計算信號xl(n)
xl(n)=sin(π1152(n+12))xtmp(n),n=0...1151---[14]]]>其中等式[14]中的除數1152與反向O2DFT變換長度N一致。
當第1個集合的窗口類型是1時,由加窗單元60按照下式計算信號xl(n)xl(n)=sin(π1152(n+12))xtmp(n),n=0...575]]>xl(n)=xtmp(n) n=576...767xl(n)=sin(π384(n+12-576))xtmp(n),n=768...959]]>xl(n)=0 n=960...1151 [15]當第1個集合的窗口類型是2時,加窗單元60通過首先計算三個臨時信號來計算信號xl(n)xl,tmp,p(n)=sin(π384(n+12))xtmp,p(n),n=0...383,p=0...2---[16]]]>其中等式[16]中的除數384與反向O2DFT變換長度N一致。
然后按照下式構建信號xl(n)xl(n)=0 n=0...191xl(n)=xl,tmp,0(n-192) n=192...383xl(n)=xl,tmp,0(n-192)+xl,tmp,1(n-384) n=384...575xl(n)=xl,tmp,1(n-384)+xl,tmp,2(n-576) n=576...767xl(n)=xl,tmp,2(n-576) n=768...959xl(n)=0 n=960...1151[17]當第1個集合的窗口類型是3時,由加窗單元60按照下式計算信號xl(n)xl(n)=0 n=0...191xl(n)=sin(π384(n+12-192))xtmp(n),n=192...383]]>xl(n)=xtmp(n) n=384...575xl(n)=sin(π1152(n+12))xtmp(n),n=576...1151---[18]]]>其中除數1152與反向O2DFT變換長度N一致并且除數384與N/3一致。
將會看出,等式[14]、[15]、[16]和[18]具有下列一般形式xl(n)=z(n)xtmp(n) [19]其中xl(n)是加窗函數,xtmp(n)是未加窗函數,而z(n)是窗口函數。注意,等式[14]、[15]、[16]和[18]的窗口函數z(n)總地來說分別類似于等式[7]、[8]、[9]和[10]中描述的窗口函數z(n)。不過,等式[14]、[15]、[16]和[18]中的窗口函數z(n)各自的窗口長度按照各自的變換長度越長,各自的除數就相應地越大。等式[14]、[15]、[16]和[18]的窗口函數z(n)可以說成分別包括等式[7]、[8]、[9]和[10]中描述的窗口函數z(n)的上采樣形式,上采樣的范圍取決于各自的變換長度/窗口長度N。還要注意,等式[14]、[15]、[16]和[18]的窗口函數z(n)各自包括單獨一個窗口函數,即使它的應用可能涉及不止一個窗口的應用。
從前述介紹中將會意識到,解碼器40能夠通過創建復數值系數在解碼處理的中間階段實現編碼信號的后處理。有利地,由于復數值系數代表編碼信號的頻率或譜分量,因此基于頻率的后處理可以直接進行。而且,解碼器40與常規的mp3解碼器10相比,解碼器40并非明顯更復數值,并且有益地,不需要合成濾波器組。還要注意,解碼器40并不會受到時域混疊的困擾,因為O2DFT表達得到了有效的系數為2的過采樣。
按照前述實施方式,對復數值系數應用一次或多次反向O2DFT。按照另一種可選實施方式,可以使用可選的變換。例如,在編碼器使用奇數頻率調制變換(例如,奇數頻率調制離散余弦變換(DCT),即,DCT類型IV)的情況下,在解碼器中使用相應的反向奇數頻率調制變換,例如奇數頻率調制DFT。因此,在解碼器40中,可以使用奇數頻率調制反向離散傅立葉變換代替反向O2DFT。具體參照等式[12]和[13],由項(k+1/2)代表奇數頻率調制或者旋轉,其中1/2將頻域中的變換采樣移動了半個采樣。可以將奇數頻率調制離散傅立葉變換定義為如下形式
C(k)=Σnx(n)e-j(2πN(n+φ)(k+12))]]>其中,φ可以取任意值。
并非必須使用奇數頻率調制變換。例如,在編碼器中可以使用偶數頻率調制的變換(例如,DCT類型I變換),只要在解碼器中使用類似調制的反向變換。也可以使用其它頻率的調制(內核),只要編碼器和解碼器中使用兼容的調制內核。
按照另外一種可選實施方式(未示出),反向O2DFT單元設置成用于按照復數值系數與哪個子帶相關對復數值系數應用一系列較小的反向O2DFT,而不是一次對整個系數團的各個復數值系數進行運算。因此,在mp3系數的情況下,反向O2DFT單元產生32個復數值子帶域信號分量,各個分量包括36個子帶采樣。對于與正常、開始或停止窗口相應的那些復數值系數,反向O2DFT單元將18個復數值系數作為輸入,并且產生36個復數值子帶域采樣。對于與短窗相應的那些復數值系數,反向O2DFT單元將3個6個復數值系數的組作為輸入并且產生3個12個復數值子帶域采樣的組。按照這樣的實施方式,最好包括處于后處理單元與反向O2DFT單元之間的混疊單元,用于對復數值系數進行混疊,以抵消或基本上抵消由抗混疊單元50和編碼器中的抗混疊給出的抗混疊。在反向O2DFT單元之后,將復數值子帶采樣提供給復指數調制合成濾波器組,僅僅使用該濾波器組的實數值輸出分量來提供解碼器的輸出信號。舉例來說,復指數調制合成濾波器組可以使用與常規余弦調制濾波器組類似的等式來實現,只是將余弦函數替換為等價的復指數函數。而且,因為僅使用實數值輸出,所以一種可選方案是對復數值子帶采樣的實數值部分采用常規的余弦調制的濾波器組并且對復數值子帶采樣的虛部采用相應的正弦調制的濾波器組(使用與余弦調制的濾波器組相同的等式,只是將余弦調制替換為正弦調制)。
在附圖3的解碼器40中,抗混疊單元50可以包括常規的抗混疊裝置,典型地具有常規抗混疊蝶形運算單元的形式。這樣的蝶形運算單元使用實數值對系數進行加權來實施加權求和。在美國專利US5559834(Edler)和B.Edler所著的“Aliasing reduction insub-bands of cascaded filter banks with decimation”,ElectronicsLetters,Vol.28,No.12,第1104-1106頁,1992年6月)中介紹了這樣的抗混疊蝶形運算單元的實例。這樣的蝶形運算單元減少了由多相濾波器組的臨界下采樣造成的混疊。
為了解釋說明,附圖4示出了在上采樣之后下采樣多相濾波器組的第一個和第二個相鄰子帶濾波器(未示出)的固定格式響應R1、R2。而且還示出了通過例如對與這些子帶濾波器相關的相應子帶信號應用MDCT而獲得的兩個具有值A和B的譜分量。將會看出,作為混疊的結果,在與具有值A的譜分量相應的頻率上,有額外的具有值qB的頻譜分量,并且在與具有值B的譜分量相應的頻率上,有額外的具有值rA的譜分量。因此,由于下采樣,在與具有值A的譜分量相應的頻率上的譜分量的值可以以A+qB的形式給出,而在與具有值B的譜分量相應的頻率上的譜分量的值可以以B+rA的形式給出。q和r各自的值是由相應子帶濾波器在具有值B和A的譜分量各自的頻率上的相應傳遞函數決定的。具有值A和B的譜分量的實際值可以按照下述方式計算A′=A+qB B′=B+rAA=A′-q(B′-rA)B=B′-r(A′-qB)A=A′-qB′1-rq]]>B=B′-rA′1-rq---[20]]]>其中A、A′、B和B′代表各個譜分量值或幅度。等式[20]可以以附圖5中所示的抗混疊蝶形運算單元的形式用圖解的方式表示。傳統上,r和q的值是實數值(即,它們不包括復數值分量)。
使用實數值使得抗混疊蝶形運算單元在譜分量(例如,附圖4中的A+qB)與相應的鏡像頻譜分量(例如附圖4中的B+rA)之間的相位差接近180°(或π)或者180°的倍數的情況下補償混疊對譜系數的幅度的影響。結果,實數值抗混疊蝶形運算單元尤其適合于處理指定使用正常、開始或停止類型的窗口的MDCT或MDST系數(由分析濾波器組的子帶域采樣獲得)。不過,在指定使用短型窗口的情況下,子帶邊緣附近的鏡像譜分量之間的相位差不能由π的倍數恰當地近似表示。因此,常規地抗混疊單元50僅僅在應用正常、開始和停止窗口的情況下有用。這樣,在mp3標準中,僅僅對這三種類型的窗口應用抗混疊。
現在參照附圖6介紹本發明的另一種可選實施方式,這種實施方式通過使用復數值抗混疊蝶形運算單元緩解了上面略述的問題。附圖6給出了采用復數值抗混疊蝶形運算單元的解碼器140的框圖。現在參照附圖6,解碼器140總體上類似于解碼器40,并且使用類似的附圖標記表示類似的組成部分。不過,解碼器140包括復數值抗混疊單元170,該單元設置成用于通過對復數值系數應用復數值加權值或乘數來對復數值系數執行抗混疊。抗混疊單元170可以包括附圖4中所示的一般類型的抗混疊蝶形運算單元,其中加權值或乘數r和q的值是復數值。提供給復數值抗混疊單元170的各個復數值系數的實部包括由延遲單元152適當延遲的相應MDCT系數,而復數值系數的虛部包括由MDST單元148提供的相應MDST系數或正交分量。與解碼器40不同,對隨后用于提供復數值系數的實部的MDCT系數進行常規混疊(由混疊單元142方便地進行)。
在對復數值系數進行了復數值抗混疊之后,將它們提供給多相濾波器修正單元154。對這些系數進行的進一步處理是參照附圖3介紹的那些處理。
可以采用試驗手段來確定加權值r和q的適當復數值。例如,為了給出r和q的第一估計值,針對各個MDCT頻率接收器(frequencybin),將相應的已知幅度的正弦信號供應給mp3編碼器中常見類型的常規mp3混合濾波器組(未示出)(即,包括多相分析濾波器組和用于對由分析濾波器組產生的子帶信號進行MDCT的裝置)。將各個正弦信號的相應頻率選擇為相應MDCT頻率接收器的中心頻率。對于正常、開始和停止窗口,可以按照下式計算中心頻率f=(k+12)fs1152Hz---[21]]]>其中k=0...575,fs是采樣頻率,除數1152與變換長度N一致。因此要通過等式[21]計算576個頻率,每個頻率對應于一個MDCT集(bin)。
對于短型窗口,中心頻率是按照下式計算的f=(k+12)fs384Hz---[22]]]>
其中k=0...191,fs是采樣頻率,除數384與變換長度N一致。因此要通過等式[22]計算192個頻率,每個頻率對應于一個MDCT集。
然后對由混合濾波器組產生的各個MDCT系數或頻率線進行處理,例如使用附圖3中所示的IMDCT單元144、重疊-相加單元146和MDST單元148來產生相應的MDST系數。因此,可以針對各個正弦信號得到相應的復數值系數。因為各個正弦曲線僅僅包括一個相應的頻率分量,所以對于各個正弦曲線,僅僅產生了兩個復數值系數一個代表各個正弦曲線本身(即,在頻率和幅度上與相應的正弦曲線相當),另一個代表作為由濾波器組造成的混疊的結果而出現的鏡像分量。如果假設正弦分量的幅度為A,則鏡像分量的幅度為rA。因為A是已知的,所以可以容易地計算出r。加權值q可以按照類似的方式計算出來。對各個正弦曲線重復進行這一處理,以針對各個鏡像頻帶集合產生相應的r和q值。從等式[21]和[22]中注意到,各個r和q的值也隨窗口類型變化。最好通過使用常規非線性優化算法對按照上述方式計算出來的r和q值進行優化。
本發明并不局限于MPEG-1層III數據信號或者MDCT。就此而言,注意,術語“系數團”本來是mp3術語,但是本領域技術人員很容易理解,在非mp3實施方式的環境下,可以將本文中使用的術語“系數團”解釋為任何等價的頻率線或系數的分組方式(通常,術語“幀”等價于“系數團”)。
作為另一個例子,附圖8中示出了具體實施本發明的另一個方面的用于MPEG-1層I或層II信號的解碼器240的框圖。作為背景,附圖7示出了常規MPEG-1層I/II解碼器的簡化框圖,該解碼器包括用于對包含在接收到的MPEG-1層I/II位流中的頻譜值進行解碼以產生32個子帶信號的組件130。然后將子帶信號提供給合成子帶濾波器組136,該濾波器組產生相應的時域音頻輸出信號x(n)。
在附圖8中,解碼器240包括用于對包含在所接收到的數據信號(例如,MPEG-1層I/II位流)中的頻譜值進行解碼的組件或模塊212,以產生多個子帶信號或子帶信號分量。在所接收到的數據信號包括MPEG-1層I/II位流的情況下,對各個幀產生32個子帶信號。將子帶信號提供給合成子帶濾波器組236,該濾波器組產生包括多個數據采樣的相應的時域信號x(n)。在所接收到的數據信號包括MPEG-1層I/II位流的情況下,濾波器組236包括32個帶余弦調制的合成濾波器組。然后將時域信號x(n)提供給分析子帶濾波器組237,該濾波器組產生多個子帶信號或信號分量。在所接收到的數據信號包括MPEG-1層I/II位流的情況下,濾波器組237包括32個帶濾波器組并且為各個幀產生32個子帶信號。此外,分析濾波器237的調制正交于合成濾波器組236的調制。因此,在所接收到的數據信號包括MPEG-1層I/II位流的情況下,分析濾波器組237包括正弦調制的濾波器組。結果,由分析濾波器組237產生的各個子帶信號可以用作復數值子帶信號的虛數值部分,相應的實數值部分是由解碼器212產生的相應子帶信號給出的。
復數值子帶信號在轉換到時域之前得到處理或者調節。因此,解碼器240此外還包括用于按照需要調節一個或多個復數值子帶信號的處理單元256。由于復數值子帶信號是頻域分量,因此可以有利地直接對編碼信號的一個或多個頻率分量進行后處理。
復數值子帶信號包括復指數調制的子帶系數,并且可以使用復指數調制的合成濾波器組239將其轉換到時域,僅僅需要濾波器組239的實數值輸出分量(表示為附圖8中的數據信號x(n))。
而且,總地來說,本發明并不局限于本文介紹的實施方式,可以對這些實施方式進行改造或改變,而不會超出本發明的范圍。
權利要求
1.一種解碼器,包括用于從接收到的信號中還原出多個第一譜系數的裝置,第一譜系數包括第一變換裝置的產物;反向變換裝置,用于將所述第一譜系數變換成一個或多個時域信號分量;第二變換裝置,用于將所述一個或多個時域信號分量變換成多個第二譜系數,其中在相應的調制頻率上,所述第二變換裝置的調制正交于所述第一變換裝置的調制,該解碼器此外還包括用于對一個或多個所述第一譜系數與相應的第二譜系數結合起來進行處理的裝置。
2.按照權利要求1所述的解碼器,其中所述還原裝置包括用于對所接收到的數據信號進行解碼和去量化來還原出第一譜系數的裝置,所述第一譜系數包括第一頻率變換的產物;其中所述反向變換裝置包括用于對所述第一譜系數進行一次或多次反向頻率變換來產生所述時域信號分量的裝置,其中第二變換裝置包括用于對所述時域信號分量進行一次或多次第二正向頻率變換來產生所述第二譜系數的裝置,并且其中在相應的調制頻率上,所述第一正向頻率變換正交于所述第二正向頻率變換。
3.按照權利要求2所述的解碼器,其中所述第一譜系數包括臨界采樣的正向頻率變換的輸出,所述臨界采樣的正向頻率變換在要進行變換的數據采樣中采用50%的重疊。
4.按照權利要求2或3所述的解碼器,其中所述第一正向頻率變換和所述第二正向頻率變換之一包括改進離散余弦變換(MDCT),另一個包括改進離散正弦變換(MDST)。
5.按照權利要求4所述的解碼器,其中所述第一正向頻率變換包括改進離散余弦變換(MDCT),所述反向頻率變換包括反向改進離散余弦變換(IMDCT),并且所述第二正向頻率變換包括改進離散正弦變換(MDST)。
6.按照權利要求2到5中任何一項所述的解碼器,其中在所述一個或多個第二正向頻率變換之前,對所述時域信號分量進行一次或多次加窗和重疊-相加運算。
7.按照權利要求6所述的解碼器,此外還包括用于對所述第一譜系數進行延遲從而使各個第一譜系數與各自的相應第二譜系數同步的裝置。
8.按照權利要求2到7中任何一項所述的解碼器,此外還包括用于將混疊引入到所述第一譜系數中來產生混疊的第一譜系數的裝置,所述一次或多次反向頻率變換是對所述混疊的第一譜系數進行的。
9.按照權利要求8所述的解碼器,此外還包括用于對所述第二譜系數進行混疊減少的裝置。
10.按照權利要求8所述的解碼器,此外還包括用于對所述第二譜系數和它們的相應的混疊的第一譜系數進行復數值混疊減少的裝置,其中所述復數值混疊減少裝置包括一個或多個設置成用于將復數值加權值應用于所述混疊的第一和相應的第二頻率分量的抗混疊蝶形運算單元。
11.按照權利要求2到10中任何一項所述的解碼器,其中各個第一譜系數和相應的第二譜系數一起構成復數值譜系數,該解碼器此外該包括用于對所述復數值譜系數進行一次或多次復數值反向頻率變換來產生多個數據采樣的裝置;用于將一種或多種類型的窗口函數應用于所述數據采樣來產生多個加窗的數據采樣的裝置;和用于從所述加窗的數據采樣構建輸出信號的裝置。
12.按照權利要求11所述的解碼器,其中各個復數值譜系數集合是針對各個從所述接收到的數據信號中還原出來的第一譜系數的各個系數團產生的,并且其中,針對至少第一種類型的窗口函數,所述復數值反向頻率變換裝置設置成用于對各個集合的所有復數值譜系數進行單獨一次反向頻率變換。
13.按照權利要求11所述的編碼器,其中所述輸出信號構建裝置對所述加窗的數據采樣應用一次或多次重疊-相加運算,以產生所述輸出信號。
14.按照權利要求11到13中任何一項所述的編碼器,其中,針對至少所述第一種類型的窗口函數,所述窗口函數應用裝置設置成用于針對各個復數值譜系數集合產生的所有數據采樣應用單獨一個窗口函數。
15.按照權利要求11到14中任何一項所述的編碼器,其中,所述至少第一種類型的窗口函數包括長度經過調節的形式的MPEG-1層III類型0、類型1和類型3窗口函數。
16.按照權利要求11到15中任何一項所述的解碼器,其中針對至少第二種類型的窗口函數,所述復數值反向頻率變換裝置設置成用于對各個復數值譜系數的子集進行相應的反向頻率變換,集合的所有復數值頻率分量都屬于所述子集中的一個或另一個。
17.按照權利要求16中所述的解碼器,針對至少所述第二種類型的窗口函數,所述窗口函數應用裝置設置成用于對針對復數值譜系數的各個子集產生的所有數據采樣應用單獨一個窗口函數。
18.按照權利要求16或17所述的解碼器,其中所述至少第二種類型的窗口函數包括長度經過調節的形式的MPEG-1層III類型2窗口函數,并且各個子集的復數值譜系數屬于三個相應子集中一個或另一個。
19.按照權利要求11所述的解碼器,其中使復數值譜系數的各個集合與各個頻率子帶相關聯,并且其中,針對至少第一種類型的窗口函數,所述復數值反向頻率變換裝置設置成用于對復數值譜系數的各個集合進行相應的反向頻率變換,并且,針對至少第二種類型的窗口函數,所述復數值反向頻率變換裝置設置成用于對復數值譜系數的各個子集進行相應的反向頻率變換,集合的所有復數值頻率分量屬于所述子集中的一個或另一個子集。
20.按照權利要求19中所述的解碼器,其中所述輸出信號構建裝置包括復指數調制的合成濾波器組,該合成濾波器組的實數值輸出分量包括所述輸出信號。
21.按照權利要求11到20中任何一項所述的解碼器,其中所述復數值反向頻率變換包括奇數頻率調制的反向離散傅立葉變換(DFT)。
22.按照權利要求21中所述的解碼器,其中所述復數值反向頻率變換包括奇次奇頻調制的反向離散傅立葉變換(O2DFT)。
23.按照權利要求11到22中任何一項所述的解碼器,此外還包括用于按照說明書中的等式[5]和[6]調節復數值譜系數的相位的裝置。
24.按照權利要求1中所述的解碼器,其中所述反向變換裝置包括合成子帶濾波器組并且第二正向變換裝置包括分析子帶濾波器組。
25.按照權利要求24所述的解碼器,其中所述第一變換裝置包括分析濾波器組,所述第一和第二正向變換裝置之一是余弦調制的,另一個是正弦調制的。
26.按照權利要求24或25所述的解碼器,此外還包括復指數調制的合成濾波器組,該合成濾波器組設置成用于從所述第一和第二譜系數產生時域輸出信號。
27.一種對數據信號進行解碼的方法,該方法包括從接收到的信號中還原出多個第一譜系數,第一譜系數包括第一變換裝置的產物;由反向變換裝置將所述第一譜系數變換成一個或多個時域信號分量;由第二變換裝置將所述一個或多個時域信號分量變換成多個第二譜系數,其中在相應的調制頻率上,所述第二變換裝置的調制正交于所述第一變換裝置的調制,該方法此外還包括對一個或多個所述第一譜系數與相應的第二譜系數結合起來進行處理。
全文摘要
一種解碼器,尤其但非專門,用于MPEG-1層III數據信號,其中將還原出來的譜系數變換成時域信號分量,然后使用相對于編碼器中使用的正向變換正交調制的正向變換對時域信號分量進行變換,以產生一組第二譜系數。這樣,可以將第一和第二譜系數用作便于后處理的復數值譜系數。按照優選實施方式,在經過后處理之后,使用奇數頻率調制的離散傅立葉變換(DFT)將復數值頻率分量變換到時域。
文檔編號G10L19/26GK1914669SQ200580003343
公開日2007年2月14日 申請日期2005年1月13日 優先權日2004年1月28日
發明者E·G·P·舒杰斯 申請人:皇家飛利浦電子股份有限公司