專利名稱:無損多通道音頻編解碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無損音頻編解碼器,尤其涉及具有改進(jìn)的壓縮性能的無損多通道音頻編解碼器。
背景技術(shù):
當(dāng)前許多低比特率有損音頻編碼系統(tǒng)用于消費者以及專業(yè)音頻重放產(chǎn)品和業(yè)務(wù)的寬范圍。例如,杜比AC3(杜比數(shù)字)音頻編碼系統(tǒng)是一種利用高達(dá)640kbit/s的比特率,為激光盤、NTSC編碼的DVD視頻和ATV編碼立體聲和5.1通道音頻聲道的世界范圍的標(biāo)準(zhǔn)。MPEG I和MPEG II音頻編碼標(biāo)準(zhǔn)被廣泛用于比特率高達(dá)768kbit/s的PAL編碼的DVD視頻,歐洲陸地數(shù)字無線電廣播和美國衛(wèi)星廣播的立體聲和多通道聲道編碼。DTS(數(shù)字影院系統(tǒng))相關(guān)聲學(xué)音頻編碼系統(tǒng)以高達(dá)1536kbit/s的比特率經(jīng)常用于光盤、DVD視頻、歐洲衛(wèi)星廣播和激光盤的演播室質(zhì)量5.1通道音頻聲道。
最近,許多消費者已經(jīng)對這些所謂的“無損”編解碼器表示興趣?!盁o損”編解碼器依靠壓縮數(shù)據(jù)而不會丟棄任何信息的算法并產(chǎn)生與(數(shù)字化)的源信號相同的解碼信號。這種性能的獲得是以如下為代價的這種編解碼器典型地需要比有損編解碼器更多的帶寬,并將該數(shù)據(jù)壓縮到更少的程度。
圖1是無損地壓縮單個音頻通道所涉及的操作的框圖表示。盡管多通道音頻中的通道通常不是獨立的,這種依賴性通常很弱,并且很難估計。因此,各個通道典型地被分別壓縮。然而,某些編碼器將試圖通過形成簡單的殘留信號并編碼(Ch1,Ch1-CH2)來消除相關(guān)性。更為復(fù)雜的方法采用,例如,通道尺寸上的幾個連續(xù)的正交投影步驟。所有的技術(shù)都是基于首先從信號中去除冗余,然后以有效的數(shù)字編碼方案編碼所產(chǎn)生的信號的原理。無損編碼器包括MPL(DVD Audio),Monkey’s audio(計算機(jī)應(yīng)用)、Apple lossless、Windows MediaProlossless、Audiopak、DVD、LTAC、MUSICcompress、OggSquish、Philips、Shorten、Sonarc和WA。對于多種這些編解碼器的評論由Mat Hans、Ronald Schafer的“Lossless Compression of DigitalAudio”Hewlett Packard,1999年提供。
引入成幀10以便為可編輯性作準(zhǔn)備,數(shù)據(jù)的絕對量禁止重復(fù)解壓要被編輯的區(qū)域之前的全部信號。音頻信號被劃分成相等持續(xù)時間的獨立的幀。該持續(xù)時間不應(yīng)太短,因為可能從每個幀前綴的頭部產(chǎn)生大量的開銷。相反地,幀持續(xù)時間不應(yīng)該太長,因為這將限制時間自適應(yīng)性并使編輯更難。在許多應(yīng)用中,幀尺寸受到其上傳送音頻的媒介的峰值比特率、解碼器的緩沖能力,以及使每幀獨立可解碼的愿望的限制。
通道內(nèi)解相關(guān)(即去相關(guān))12通過對幀內(nèi)每個通道中的音頻采樣解相關(guān)來去除冗余。大多數(shù)算法通過某種類型的信號線性預(yù)測建模來去除冗余。在這種方法中,將線性預(yù)測器應(yīng)用于每幀中的音頻采樣,導(dǎo)致一系列預(yù)測誤差采樣。第二種不常用的方法是獲得信號的低比特率量化或有損表示,并接著無損地壓縮有損版本和原始版本之間的差異。熵編碼14從來自殘留信號的誤差中去除冗余而不會丟失任何信息。典型的方法包括霍夫曼編碼,行程長度編碼和賴斯(Rice)編碼。該輸出是可能被無損地重建的壓縮信號。
現(xiàn)有的DVD規(guī)格和初級HD DVD規(guī)格對一個數(shù)據(jù)存取單元的尺寸設(shè)置了硬性限制,其代表一旦提取就能被完全解碼的音頻流的一部分,以及發(fā)送到輸出緩沖器的重建的音頻采樣。對于無損流其含意是,每個存取單元可以代表的時間量必須足夠小,以至于峰值比特率的最壞情況,編碼凈荷不超過該硬性限制。由于采樣率增大和通道數(shù)量增加,這樣就增大了峰比特率,持續(xù)時間必須縮短。
為了保證兼容性,這些現(xiàn)有的編碼器需要將整個幀的持續(xù)時間設(shè)置得足夠短,以不超出最壞情況的通道/采樣頻率/比特寬度配置中的硬性限制。在大多數(shù)配置中,這將是不必要的過度行動并可能嚴(yán)重地劣化壓縮性能。此外,這種最壞情況的方法不會隨通道的增加而很好地變化(scale)。
發(fā)明內(nèi)容
本發(fā)明提供了一種無損音頻編解碼器,其中在對每個獨立可解碼的數(shù)據(jù)單位的最大尺寸限制下優(yōu)化壓縮性能。
無損音頻編解碼器將每幀內(nèi)的音頻數(shù)據(jù)分段,以改善在每個片段必須完全可解碼并小于最大尺寸的約束條件下的壓縮性能。對于每幀而言,編解碼器選擇片段持續(xù)時間和編碼參數(shù),例如,用于每個片段的特定熵編碼器和其參數(shù),其將受到該約束的整個幀的編碼凈荷降至最小??梢詾槊總€通道選擇不同的編碼參數(shù)集,或者為所有通道選擇全局性編碼參數(shù)集??梢酝ㄟ^為M-通道音頻形成M/2解相關(guān)通道來進(jìn)一步增強(qiáng)壓縮性能。通道的三重組(基準(zhǔn)、相關(guān)、解相關(guān))提供了可以在分段和熵編碼優(yōu)化期間考慮的兩種可能的成對組合(基準(zhǔn)、相關(guān))和(基準(zhǔn)、解相關(guān))以進(jìn)一步提高壓縮性能。通道對可以是每段指定或每幀指定。
在一個示例性的實施例中,編碼器將音頻數(shù)據(jù)成幀并隨后提取包含基準(zhǔn)通道和相關(guān)通道的有序通道對,并生成解相關(guān)通道以形成至少一個三重組(基準(zhǔn)、相關(guān)、解相關(guān))。如果通道的數(shù)量是奇數(shù),則處理一個額外的基準(zhǔn)通道。對每個通道應(yīng)用自適應(yīng)或固定多項式預(yù)測以形成殘留信號。
編碼器通過首先將幀分割成具有最小持續(xù)時間的最大數(shù)量的片段,確定片段持續(xù)時間、該幀的通道對((基準(zhǔn)、相關(guān))或(基準(zhǔn)、解相關(guān))),以及每個片段的編碼參數(shù)集(熵代碼選擇和參數(shù))。通過計算用于一個或多個熵編碼器(二進(jìn)制、賴斯、霍夫曼,等等)的參數(shù),并為每個片段選擇每個通道(基準(zhǔn)、相關(guān)、解相關(guān))具有最小編碼凈荷的編碼器和參數(shù)來確定用于當(dāng)前分割的最佳編碼參數(shù)。對于每個三重組,選擇具有最小編碼凈荷的通道對(基準(zhǔn)、相關(guān))或(基準(zhǔn)、解相關(guān))。利用所選擇的通道對,可以為全部通道上的每個片段確定全局性編碼參數(shù)集。編碼器基于哪個具有最小總編碼凈荷(頭部和音頻數(shù)據(jù))來選擇全局性編碼參數(shù)集或不同的編碼參數(shù)集。
一旦已經(jīng)確定了用于當(dāng)前分割的編碼參數(shù)集和通道對的最佳集,編碼器計算所有通道上的每個片段中的編碼凈荷。假定滿足對最大片段尺寸的約束條件,則編碼器確定用于當(dāng)前分割的整個幀的總編碼凈荷是否小于用于較早分割的當(dāng)前最佳。如果是,則存儲編碼參數(shù)和編碼凈荷的當(dāng)前集并且增大片段持續(xù)時間。該過程重復(fù)直到片段尺寸打破了最大尺寸約束條件或者片段持續(xù)時間增長至幀持續(xù)時間。編碼器(利用所選擇的熵編碼器和參數(shù))對所選擇的通道對和所有不成對的通道的每個音頻通道中的殘留信號熵編碼。
通過參照附圖對以下優(yōu)選實施例的詳細(xì)描述,本發(fā)明的這些和其它特性和優(yōu)點對于本領(lǐng)域的技術(shù)人員將是顯而易見的。
圖1,如上所述,是用于標(biāo)準(zhǔn)無損音頻編碼器的框圖;圖2a和2b是根據(jù)本發(fā)明的無損音頻編碼器和解碼器各自的框圖;圖3是有關(guān)分段和熵代碼選擇的頭部信息的示意圖;圖4a和4b是分析窗口處理和逆向分析窗口處理的框圖;圖5是交叉通道解相關(guān)的流程圖;圖6a和6b是自適應(yīng)預(yù)測分析和處理以及逆向自適應(yīng)預(yù)測處理的框圖;圖7a和7b是最佳分段和熵代碼選擇的流程圖;
圖8a和8b是用于通道集的熵代碼選擇的流程圖;以及圖9a和9b是核心加無損擴(kuò)展編解碼器的框圖。
具體實施例方式
本發(fā)明提供了一種無損音頻編解碼器,其中在對每個獨立可解碼的數(shù)據(jù)單位的最大尺寸約束條件下優(yōu)化壓縮性能。音頻編碼器隨多通道音頻中的通道數(shù)量的增加而進(jìn)行調(diào)節(jié)。
無損音頻編解碼器如圖2a和2b所示,除了分段和熵代碼選擇之外,基本的操作功能塊類似于現(xiàn)有無損編碼器和解碼器。多通道PCM音頻20經(jīng)受分析窗口處理22,其將數(shù)據(jù)分塊為固定持續(xù)時間的幀并通過解相關(guān)幀內(nèi)每個通道中的音頻采樣來去除冗余。代替直接對殘留信號熵編碼,本發(fā)明執(zhí)行最佳分段和熵代碼選擇處理24,其將數(shù)據(jù)分段成多個片段并為每個片段確定段持續(xù)時間和編碼參數(shù),例如,選擇特定熵編碼器和其參數(shù),使受到每個片段必須完全可解碼并小于最大尺寸的約束的整個幀的編碼凈荷最小化。編碼參數(shù)集被優(yōu)化用于每個不同通道,也可以被優(yōu)化用于全局性編碼參數(shù)集。每個片段隨后根據(jù)其不同的編碼參數(shù)集被熵編碼26。編碼數(shù)據(jù)和頭部信息被打包28到比特流30中。
如圖3所示,頭部32包括除了正常為無損編解碼器提供的以外的附加信息,以實現(xiàn)分段和熵代碼選擇。具體而言,該頭部包括諸如片段數(shù)量(NumSegments)和每個片段中的采樣數(shù)量(NumSamplesInSegm)的通用頭部信息34,諸如量化解相關(guān)系數(shù)(QuantChDecorrCoeff[][])的通道集頭部信息36和諸如用于通道集的當(dāng)前片段中的字節(jié)數(shù)量(ChSetByteCOns),指示是否使用了賴斯或二進(jìn)制編碼的全局優(yōu)化標(biāo)記(AllChSameParamFlag)和熵編碼器標(biāo)記(RiceCodeFlag[],CodeParam[])以及編碼參數(shù)的片段頭部信息38。
如圖2b所示,為了執(zhí)行解碼操作,比特流30被拆包40以提取頭部信息和編碼的數(shù)據(jù)。根據(jù)分配的編碼參數(shù)對每個通道的每個片段執(zhí)行熵解碼42以無損地重建殘留信號。這些信號隨后經(jīng)受逆向分析窗口處理44,其執(zhí)行逆向預(yù)測以無損地重建原始PCM音頻20。
分析窗口處理如圖4a和4b所示,分析窗口處理22的示例性實施例或從自適應(yīng)預(yù)測46選擇或從固定多項式預(yù)測48選擇以便解相關(guān)每個通道,這是一個相當(dāng)普通的方法。如同將參照圖6所詳細(xì)描述的,為每個通道估計最佳預(yù)測器級數(shù)。如果該級數(shù)大于0,則應(yīng)用自適應(yīng)預(yù)測。否則使用更簡單的固定多項式預(yù)測。類似地,在解碼器中,逆向分析窗口處理44要么從逆向自適應(yīng)預(yù)測50選擇,要么從逆向固定多項式預(yù)測52選擇,以從殘留信號重建PCM音頻。該自適應(yīng)預(yù)測器級數(shù)和自適應(yīng)預(yù)測系數(shù)索引以及固定預(yù)測器級數(shù)被打包53到通道集頭部信息中。
交叉-通道解相關(guān)根據(jù)本發(fā)明,通過實現(xiàn)根據(jù)通道之間的相關(guān)測量將M個輸入通道排序成通道對的交叉通道解相關(guān)54,可以進(jìn)一步增強(qiáng)壓縮性能。其中一個通道被指定為“基準(zhǔn)”通道,而另一個被指定為“相關(guān)”通道。為每個通道對生成解相關(guān)通道以形成“三重組”(基準(zhǔn)、相關(guān)、解相關(guān))。三重組的形成提供了兩種可能的成對組合(基準(zhǔn)、相關(guān))和(基準(zhǔn)、解相關(guān)),其可以在分段和熵編碼優(yōu)化期間被考慮以進(jìn)一步提高壓縮性能(參見圖8a)。一種更簡單但是較低效率的方法將以解相關(guān)通道代替相關(guān)通道,例如,如果其方差較小的話。
原始M-ch PCM 20和M/2-ch解相關(guān)PCM 56都被向前轉(zhuǎn)發(fā)到為每個通道生成殘留信號的自適應(yīng)預(yù)測和固定多項式預(yù)測運算。如圖3所示,在圖3的通道集頭部36中存儲指示在成對解相關(guān)過程期間執(zhí)行的排序之前的通道原始順序的索引(OrigChOrder[])以及指示用于量化解相關(guān)系數(shù)的代碼的存在的、每個通道對的標(biāo)記PWChDecorrFlag[]。
如圖4b所示,為了執(zhí)行逆向分析窗口處理44的解碼操作,頭部信息被拆包58,并且根據(jù)頭部信息,即每個通道的自適應(yīng)和固定預(yù)測器級數(shù),殘留要么通過逆向固定多項式預(yù)測52,要么通過逆向自適應(yīng)預(yù)測50。M-通道解相關(guān)PCM音頻(M/2通道在分段期間被丟棄)通過逆向交叉通道解相關(guān)60,其從通道集頭部讀取OrigChOrder[]索引和PWChDecorrFlag[]標(biāo)記,并且無損地重建M-通道PCM音頻20。
圖5示意了用于執(zhí)行交叉通道解相關(guān)54的一個實例性過程。舉例來說,PCM音頻被提供為M=6個不同通道L、R、C、Ls、Rs和LFE,其也直接對應(yīng)于存儲在幀中的一個通道集配置。其它通道集例如可以是左中后環(huán)繞和右中后環(huán)繞,以產(chǎn)生7.1環(huán)繞音頻。該過程是通過啟動一個幀環(huán)路和啟動一個通道集環(huán)路開始的(步驟70)。計算對于每個通道的零滯后自相關(guān)估計(步驟72)和對于通道集中通道對的所有可能組合的零滯后交叉相關(guān)估計(步驟74)。其次,將通道成對相關(guān)系數(shù)CORCOEF估計為,零滯后交叉相關(guān)估計除以該通道對中包括的通道的零滯后自相關(guān)估計的乘積(步驟76)。CORCOEF按照從最大絕對值到最小絕對值排序并存儲在表格中(步驟78)。從表格的頂部開始,提取對應(yīng)的通道對索引直到所有通道對都被配置(步驟80)。例如,這6個通道可以基于它們的CORCOEF被配對為(L,R),(Ls,Rs)和(C,LFE)。
該過程啟動一個通道對環(huán)路(步驟82),并選擇一個“基準(zhǔn)”通道作為具有較小零滯后自相關(guān)估計的通道,較小零滯后自相關(guān)估計是較低能量的指示(步驟84)。在這個實例中,L,Ls和C通道形成基準(zhǔn)通道。通道對解相關(guān)系數(shù)(ChPairDecorrCoeff)被計算為零滯后交叉相關(guān)估計除以基準(zhǔn)通道的零滯后自相關(guān)估計(步驟86)。通過將基準(zhǔn)通道采樣與CHPairDecorrCoeff相乘并從相關(guān)通道的對應(yīng)采樣減去該結(jié)果來生成解相關(guān)通道(步驟88)。通道對和其相聯(lián)系的解相關(guān)通道定義了“三重組”(L,R,R-ChPairDecorrCoeff[1]*L),(Ls,Rs,Rs-ChPairDecorrCoeff[2]*Ls),(C,LFE,LFE-ChPairDecorrCoeff[3]*C)(步驟89)。用于每個通道對(以及每個通道集)的ChPairDecorrCoeff[]和定義該對配置的通道索引被存儲在通道集頭部信息中(步驟90)。該過程對于幀內(nèi)的每個通道集重復(fù),然后對窗口化PCM音頻中的每幀重復(fù)(步驟92)。
自適應(yīng)預(yù)測自適應(yīng)預(yù)測分析和殘留生成線性預(yù)測試圖去除音頻信號的采樣之間的相關(guān)性。線性預(yù)測的基本原理是利用先前的采樣s(n-1),s(n-2),...來預(yù)測采樣值s(n)的值以及從原始采樣s(n)中減去預(yù)測值 。合成的殘留信號e(n)=s(n)+s^(n)]]>在理想情況下將是非相關(guān)的并因此具有平坦的頻譜。另外,殘留信號將具有更小的方差,于是該原始信號則暗示其數(shù)字表達(dá)式需要更少的比特。
在音頻編解碼器的一個示例性實施例中,由以下公式描述FIR預(yù)測器模型e(n)=s(n)+Q{Σk=1Mak*s(n-k)}]]>其中,Q{}表示量化操作,M表示預(yù)測器級數(shù),而ak是量化的預(yù)測系數(shù)。由于原始信號是利用各種有限精度處理器體系結(jié)構(gòu)在解碼側(cè)重建的,因此特殊量化Q{}是無損壓縮所必需的。Q{}的定義對于編碼器和解碼器都是可用的,并且通過下式可以簡單地獲得原始信號的重建s(n)=e(n)-Q{Σk=1Mak*s(n-k)}]]>在此假定相同的ak量化預(yù)測系數(shù)對于編碼器和解碼器都是可用的。每個分析窗口(幀)發(fā)送一組新的預(yù)測器參數(shù),從而允許預(yù)測器適應(yīng)于時間變化的音頻信號結(jié)構(gòu)。
設(shè)計上述的預(yù)測系數(shù)以將均方預(yù)測殘留降至最小。量化Q{}使預(yù)測器為非線性預(yù)測器。然而,在該示例性實施例中,該量化是以24位的精度完成的,而且假定在預(yù)測器系數(shù)優(yōu)化期間可以忽略由此產(chǎn)生的非線性效應(yīng)是合理的。通過忽略量化Q{},潛在的優(yōu)化問題可以被表示為包括信號自相關(guān)序列的滯后和未知預(yù)測器系數(shù)的一組線性方程式。這組線性方程式可以利用Levinson-Durbin(LD)算法來有效地解出。
由此產(chǎn)生的線性預(yù)測系數(shù)(LPC)需要被量化,以便它們可以有效地在編碼流中發(fā)送。遺憾的是,由于小的量化誤差可能引起大的頻譜誤差,LPC的直接量化不是最有效的方法。LPC的一個可選表達(dá)式是反射系數(shù)(RC)表達(dá)式,其對量化誤差顯現(xiàn)較小的靈敏度。還可以通過LD算法獲得這種表達(dá)式。通過定義LD算法,保證RC具有量值≤1(忽略數(shù)值誤差)。當(dāng)RC的絕對值接近1時,對出現(xiàn)在量化的RC中的量化誤差的線性預(yù)測的靈敏度變高。解決辦法是以圍繞單位(unity)的更精細(xì)量化級執(zhí)行RC的非均勻量化。這可以通過兩個步驟來完成1)將RC變換為log-area比(LAR)借助映射函數(shù)表示LAR=log1+RC1-RC]]>在此,log表示自然底對數(shù)。
2)對LAR均勻量化RC->LAR變換歪曲了參數(shù)的幅度比例,使得步驟1和2的結(jié)果等效于具有圍繞單位(unity)的更精細(xì)量化級的非均勻量化。
如圖6a所示,在自適應(yīng)預(yù)測分析的示例性實施例中,量化的LAR參數(shù)用于表示自適應(yīng)預(yù)測器參數(shù)并在編碼比特流中發(fā)送。每個輸入通道中的采樣被相互獨立地處理,因此該說明書將僅僅考慮在單個通道中的處理。
第一步驟是計算分析窗口(幀)的持續(xù)時間內(nèi)自相關(guān)序列(步驟100)。為了將由幀邊界處的間斷性引起的阻塞效應(yīng)降至最小,數(shù)據(jù)首先被窗口化。從窗口化的數(shù)據(jù)塊估計指定數(shù)量(等于最大LP級數(shù)+1)的滯后的自相關(guān)序列。
Levinson-Durbin(LD)算法被應(yīng)用于該組估計的自相關(guān)滯后和該組反射系數(shù)(RC),直到計算出最大LP級數(shù)(步驟102)。(LD)算法的中間結(jié)果是對于高達(dá)最大LP級數(shù)的每個線性預(yù)測級數(shù),預(yù)測殘留的一組估計方差。在下一個功能塊中,利用該組殘留方差,選擇線性預(yù)測器(PrOr)級數(shù)(步驟104)。
對于所選擇的預(yù)測器級數(shù),利用以上陳述的映射函數(shù)將該組反射系數(shù)(RC)變換成該組log-aria比參數(shù)(LAR)(步驟106)。在變換之前引入RC的極限以防止除0 在此,Tresh表示接近但小于1的數(shù)。根據(jù)以下規(guī)則量化LAR參數(shù)(步驟108) 在此,QLARInd表示量化的LAR索引,x指示找到小于或等于x的最大整數(shù)值的運算,而q表示量化級大小。在該示例性實施例中,利用8比特編碼區(qū)域-8至-8」,即,q=2*828,]]>因此QLARInd根據(jù)下式被限定 在打包之前(步驟110),利用以下映射將QLARInd從有符號值轉(zhuǎn)換成無符號值PackLARInd=2*QLARInd∀QLARInd≥02*(-QLARInd)-1∀QLARIn<0]]>在“RC LUT”功能塊中,在單個步驟中利用查找表完成LAR參數(shù)的逆向量化和對RC參數(shù)的轉(zhuǎn)換(步驟112)。查找表由逆向RC->LAR映射(即由下式給出的LAR->RC映射)的量化值組成RC=eLAR-1eLAR+1]]>以等于0、1.5*q、2.5*q、...127.5*q的LAR的量化值計算查找表。對應(yīng)的RC值,在以216比例換算后,被四舍五入為16比特的無符號整數(shù),并被存儲作為128個條目的表中Q16個無符號的固定點數(shù)。
量化的RC參數(shù)從該表中計算,且量化LAR索引QLARInd為QRC=TABLE[QLARInd]∀QLARInd≥0-TABLE[-QLARInd]∀QLARInd<0]]>根據(jù)以下算法,量化的RC參數(shù)QRCordfor ord=1、...PrOr被轉(zhuǎn)換成量化的線性預(yù)測參數(shù)(LPordfor ord=1、...PrOr)(步驟114)For ord=0 to PrOr-1doForm=1 to ord doCord+1,m=Cord,m+(QRCord+1·Cord.ord+1,m+(1<<15))>>16endCord+1,ord+1=QRCord+1endForord=0to PrOr-1doLPord+1=CPrOr,ord+1end由于量化的RC系數(shù)是以Q16有符號的固定點格式表示的,以上算法還將以Q16有符號的固定點格式生成LP系數(shù)。設(shè)計無損解碼器計算路徑以支持多達(dá)24比特的中間結(jié)果。因此需要在計算每個Cord+1,m之后執(zhí)行飽和檢查。如果飽和發(fā)生在該算法的任何階段,則設(shè)置飽和標(biāo)記并且自適應(yīng)預(yù)測器級數(shù)PrOr,對于特殊通道,被復(fù)位為0(步驟116)。對于PrOr=0的該特殊通道,將執(zhí)行一個固定系數(shù)預(yù)測而不是自適應(yīng)預(yù)測(參見固定系數(shù)預(yù)測)。注意,無符號的LAR量化索引{PackLARInd[n] for n=1,...PrOr[Ch]}被打包成僅用于PrOr[ch]>0的通道的編碼流。
最后對于PrOr>0的每個通道,執(zhí)行自適應(yīng)線性預(yù)測,并且根據(jù)下式計算預(yù)測殘留e(n)(步驟118)s(n)‾=[{Σk=1PrOrLRk*s(n-k)}+(1<<15)]>>16]]>Limits(n)‾to24-bitrange(-223to223-1)]]>e(n)=s(n)+s(n)‾]]>Llmif e(n)to 24-bit range(-223to223-1)for n=PrOr+1,...NamSamplInFrame
由于該示例性實施例中的設(shè)計目標(biāo)是每個幀是“隨機(jī)存取點”,采樣歷史不會在幀之間延續(xù)。取而代之的是,僅在該幀中的PrOr+1采樣處進(jìn)行預(yù)測。
自適應(yīng)預(yù)測殘留e(n)被進(jìn)一步熵編碼并被打包成編碼的比特流。
解碼側(cè)的逆向自適應(yīng)預(yù)測在解碼側(cè),執(zhí)行逆向自適應(yīng)預(yù)測的第一步驟是將頭部信息拆包并提取用于每個通道Ch=1,...NumCh的自適應(yīng)預(yù)測級數(shù)PrOr[Ch](步驟120)。接下來,對于PrOr[Ch]>0的通道,提取LAR量化索引(PackLARInd[n]for n=1,...PrOr[Ch])的無符號版本。對于具有預(yù)測級數(shù)PrOr[Ch]>0的每個通道Ch,利用以下映射將無符號的PackLARInd[n]映射為有符號的值QLARInd[n]QLARInd[n]=PackLARInd[n]>>1∀evennumberedPackLARInd[n]-(PackLARInd[n]>>1)-1∀oddnumberedPackLARInd[n]]]>for n=1,...,PrOr[Ch]在此,>>表示整數(shù)右移運算。
在單個步驟中利用Quant RC LUT完成LAR參數(shù)的逆向量化和對RC參數(shù)的轉(zhuǎn)換(步驟122)。它是與在編碼側(cè)定義查找表的相同的查找表TABLE{}。通過TABLE{}和量化LAR索引QLARInd[n]計算對于每個通道Ch(QRC[n] for n=1,...PrOr[Ch])的量化反射系數(shù)QRC[n]≡TABLE[QLARInd[n]]∀QLARInd[n]≥0-TABLE[-QLARInd[n]]∀QLARInd[n]<0]]>for n=1,...,PrOr[Ch]對于每個通道Ch,根據(jù)以下算法,量化的RC參數(shù)QRCordfor ord=1,...PrOr[Ch]被轉(zhuǎn)換成量化的線性預(yù)測參數(shù)(LPordfor ord=1,...PrOr[Ch])(步驟124)
For ord=0 to PrOr-1doFor m=1 to ord doCord+1,m=Cord,m+(QRCord+1*Cord,ord+1,m+(1<<15))>>16endCord+1,ord+1=QRCord+1endForord=0 to PrOr-1doLPord+1=CPrOr,ord+1end中間結(jié)果的任何飽和可能性在編碼側(cè)被去除。因此在解碼側(cè),在計算每個Cord+1,m之后不需要執(zhí)行飽和檢查。
最后對于Pror[Ch]>0的每個通道,執(zhí)行逆向自適應(yīng)線性預(yù)測(步驟126)。假設(shè)預(yù)測殘留e(n)被預(yù)先提取并被熵解碼,根據(jù)下式計算重建原始信號s(n)s(n)‾=[{Σk=1PrOr[Ch]LPk*s(n-k)}+(1<<15)]>>16]]>Limits(n)‾to24-bitrange(-223to223-1)]]>e(n)=s(n)-s(n)‾]]>forn=PrOr[Ch]+1,...NamnSamplInFrame由于采樣歷史沒有在幀之間被保持,逆向自適應(yīng)預(yù)測將從該幀中的(PrOr[Ch]+1)采樣開始。
固定系數(shù)預(yù)測已經(jīng)發(fā)現(xiàn)線性預(yù)測器的一種非常簡單的固定系數(shù)格式會非常有用。該固定預(yù)測系數(shù)是根據(jù)由Shorten首先提出的非常簡單的多項式近似方法得出的(T.Robinson.SHORTENSimple lossless and nearlossless waveform compression.Technical report 156.CambridgeUniversity Engineering Department Trumpington Street,CambridgeCB2 1PZ,UK December 1994)。在這種情況下,預(yù)測系數(shù)是那些通過將一個P階多項式提供給最后P個數(shù)據(jù)點指定的預(yù)測系數(shù)。在以下四個近似式上展開
s^0[n]=0]]>s^1[n]=s[n-1]]]>s^2[n]=2s[n-1]-s[n-2]]]>s^3[n]=3s[n-1]-3s[n-2]+s[n-3]]]>這些多項式近似的有趣特性是,最終產(chǎn)生的殘留信號ek[n]=s[n]-s^k[n]]]>可以以下列遞歸方式有效地實現(xiàn)。
e0[n]=s[n]e1[n]=e0[n]-e0[n-1]e2[n]=e1[n]-e1[n-1]e3[n]=e2[n]-e2[n-1]…固定系數(shù)預(yù)測分析以每幀為基礎(chǔ)應(yīng)用,并且不依賴在先前幀(ek[-1]=0)中計算的采樣。在整個幀內(nèi)具有最小和數(shù)量值的殘余集被定義為最佳近似值。為每個通道分別計算最佳殘留級并將其打包成流作為固定預(yù)測級(FPO[Ch])。當(dāng)前幀內(nèi)的殘留eFPO[Ch][n]被進(jìn)一步熵編碼并打包成流。
反向固定系數(shù)預(yù)測處理,在解碼側(cè),通過順序遞歸公式定義,用于在采樣時刻n計算k階殘留ek[n]=ek+1[n]+ek[n-1]在此,期望的原始信號s[n]通過下式給出s[n]=e0[n]并且在此對于每個k階殘留,ek[-1]=0。
舉例來說,提供用于第3級固定系數(shù)預(yù)測的遞歸,在此殘留e3[n]被編碼,以流發(fā)送并在解碼側(cè)被拆包e2[n]=e3[n]+e2[n-1]e1[n]=e2[n]+e1[n-1]e0[n]=e1[n]+e0[n-1]s[n]=e0[n]分段和熵代碼選擇圖7和8示意了分段和熵代碼選擇24的一個示例性實施例。為了設(shè)定最佳片段持續(xù)時間、編碼參數(shù)(熵代碼選擇&參數(shù))和通道對,為多個不同的片段持續(xù)時間確定編碼參數(shù)和通道對,并且在那些候選對象中,選擇每幀具有最小編碼凈荷、且滿足每個片段必須獨立可解碼并不超過最大尺寸的約束條件的一個候選對象?!白罴选狈侄?、編碼參數(shù)和通道對自然受到編碼處理的約束以及對片段尺寸的約束。例如,在該示例性的處理中,幀內(nèi)所有片段的持續(xù)時間相等,在并矢格柵上執(zhí)行對最佳持續(xù)時間的檢索,并且通道對選擇在整個幀上都是有效的。以額外的編碼器復(fù)雜性和開銷比特為代價,可以允許持續(xù)時間在幀內(nèi)變化,可以更好地解決對最佳持續(xù)時間的檢索,并且可以基于每片段完成通道對選擇。
該示例性的處理是以初始化諸如片段內(nèi)的采樣的最小數(shù)量、片段的最大允許尺寸、片段的最大數(shù)量和分割的最大數(shù)量的片段參數(shù)開始的(步驟150)。此后,該處理啟動一個分割環(huán)路,其索引是從0到分割的最大數(shù)量減1(步驟152),并且初始化包含片段數(shù)量、片段內(nèi)的采樣數(shù)量和在分割內(nèi)消耗的字節(jié)數(shù)量的分割參數(shù)(步驟154)。在該特殊實施例中,這些片段具有相等的持續(xù)時間,并且片段的數(shù)量隨著每次分割迭代換算為二次冪,片段的數(shù)量優(yōu)選被初始化為最大值,因此初始化為最小的持續(xù)時間。然而,該處理可以使用持續(xù)時間變化的片段,其可能提供更好的音頻數(shù)據(jù)壓縮,但是以額外的開銷為代價。此外,片段的數(shù)量不限于二次冪或者從最小到最大持續(xù)時間的檢索。
一旦初始化,該處理啟動一個通道集環(huán)路(步驟156),并為每個片段以及對應(yīng)的字節(jié)消耗確定最佳熵編碼參數(shù)和通道對選擇(步驟158)。編碼參數(shù)PWChDecorrFlag[][]、AllChSameParamFlag[][]、RiceCodeFlag[][][]、CodeParam[][][]和ChSetByteCons[][]被存儲(步驟160)。對于每個通道集重復(fù)該處理,直到通道集環(huán)路結(jié)束(步驟162)。
該處理啟動一個片段環(huán)路(步驟164),并計算所有通道集內(nèi)每個片段中的字節(jié)消耗(SegmByteCons)(步驟166)并更新字節(jié)消耗(ByteConsInPart)(步驟168)。在該點處,將片段的尺寸與最大尺寸約束相比較(步驟170)。如果該約束被打破,則丟棄當(dāng)前分割。此外,由于該處理是以最小持續(xù)時間開始的,一旦片段尺寸太大,則分割環(huán)路終結(jié)(步驟172)且對于該點的最佳解決辦法(持續(xù)時間、通道對、編碼參數(shù))被打包到頭部內(nèi)(步驟174)并且該處理轉(zhuǎn)至下一幀。如果對最小片段上尺寸的約束失敗(步驟176),則由于不能滿足最大尺寸約束,該處理終結(jié)并報告一個錯誤(步驟178)。假定滿足該約束,則對于當(dāng)前分割內(nèi)的每個片段重復(fù)該處理直到片段環(huán)路結(jié)束(步驟180)。
一旦片段環(huán)路已經(jīng)完成,且整個幀的字節(jié)消耗被計算為由ByteConsinPart表示,該凈荷與來自先前分割迭代的當(dāng)前最小凈荷(MinByteInPart)相比較(步驟182)。如果當(dāng)前分割表示一個改進(jìn),那么當(dāng)前分割(PartInd)被存儲作為最佳分割(OptPartind)并且更新最小凈荷(步驟184)。這些參數(shù)和所存儲的編碼參數(shù)隨后被存儲作為當(dāng)前最佳解決方案(步驟186)。這將重復(fù)一直到分割環(huán)路結(jié)束(步驟172),如圖3所示,在該點分段信息和編碼參數(shù)被打包到頭部中(步驟150)。
圖8a和8b示意了用于為當(dāng)前分割的通道集確定最佳編碼參數(shù)和相關(guān)比特消耗的一個示例性實施例(步驟158)。該處理啟動一個分段環(huán)路(步驟190)和通道環(huán)路(步驟192),其中用于我們當(dāng)前實例的通道是Ch1L,Ch2RCh3R-ChPairDecorrCoeff[1]*LCh4LsCh5RsCh6Rs-ChPairDecorrCoeff[2]*LsCh7CCh8LFE
Ch9LFE-ChPairDecorrCoeff[3]*C)該處理為基準(zhǔn)和相關(guān)通道確定熵代碼的類型,對應(yīng)的編碼參數(shù)和對應(yīng)的比特消耗(步驟194)。在這個實例中,該處理計算用于二進(jìn)制代碼和賴斯代碼的最佳編碼參數(shù),然后為通道和每個片段選擇具有最低比特消耗的一個(步驟196)。通常,可以對一個、兩個或多個可能的熵代碼進(jìn)行優(yōu)化。對于二進(jìn)制代碼,從當(dāng)前通道的片段中的所有采樣的最大絕對值計算比特數(shù)量。從當(dāng)前通道的片段中的所有采樣的平均絕對值計算賴斯編碼參數(shù)?;谠撨x擇,設(shè)置RiceCodeFlag,設(shè)置BitCons,并設(shè)置CodeParam為NumBitsBinary或RiceKParam(步驟198)。
如果被處理的當(dāng)前通道是相關(guān)通道(步驟200),則對對應(yīng)的解相關(guān)通道重復(fù)相同的優(yōu)化(步驟202),選擇最佳熵代碼(步驟204)并且設(shè)置編碼參數(shù)(步驟206)。該處理重復(fù)直到通道環(huán)路結(jié)束(步驟208)和片段環(huán)路結(jié)束(步驟210)。
在該點處,已經(jīng)確定用于每個片段和用于每個通道的最佳編碼參數(shù)??梢詾橥ǖ缹?基準(zhǔn)、相關(guān))從原始PCM音頻返回這些編碼參數(shù)和凈荷。然而,可以通過在三重組中的(基準(zhǔn)、相關(guān))和(基準(zhǔn)、解相關(guān))通道之間進(jìn)行選擇來提高壓縮性能。
為了確定哪個通道對(基準(zhǔn)、相關(guān))或(基準(zhǔn)、解相關(guān))用于三個三重組,啟動一個通道對環(huán)路(步驟211),并計算每個相關(guān)通道(Ch2、Ch5和Ch8)和每個解相關(guān)通道(Ch3、Ch6和Ch9)對總幀比特消耗的貢獻(xiàn)(步驟212)。將對每個相關(guān)通道作貢獻(xiàn)的幀消耗貢獻(xiàn)與對對應(yīng)的解相關(guān)通道作貢獻(xiàn)的幀消耗貢獻(xiàn)相比較,即,Ch2對Ch3,Ch5對Ch6,以及Ch8對Ch9(步驟214)。如果解相關(guān)通道的貢獻(xiàn)大于相關(guān)通道,則設(shè)置PWChDecorrFlag為假(步驟216)。否則,以解相關(guān)通道代替相關(guān)通道(步驟218)并且設(shè)置PWChDecorrFlag為真,而且通道對被配置為(基準(zhǔn)、解相關(guān))(步驟220)。
基于這些比較,該算法將選擇
1.Ch2或Ch3作為將與對應(yīng)的基準(zhǔn)通道Ch1成對的通道;2.Ch5或Ch6作為將與對應(yīng)的基準(zhǔn)通道Ch4成對的通道;以及3.Ch8或Ch9作為將與對應(yīng)的基準(zhǔn)通道Ch7成對的通道。
這些步驟對所有的通道對重復(fù)直到該環(huán)路結(jié)束(步驟222)。
在該點處,已經(jīng)確定了用于每個片段和每個不同通道以及最佳通道對的最佳編碼參數(shù)。用于每個不同的通道對和凈荷的這些編碼參數(shù)可以被返回到分割環(huán)路。然而,通過為所有通道上的每個片段計算一個全局性編碼參數(shù)集可得到附加的壓縮性能。最好,凈荷的編碼數(shù)據(jù)部分將與對每個通道優(yōu)化的編碼參數(shù)具有相同的尺寸,并且很有可能稍大。然而,開銷比特的減少可能大于對數(shù)據(jù)編碼效率的抵消。
利用相同的通道對,該處理啟動一個片段環(huán)路(步驟230),利用不同的編碼參數(shù)集為所有通道計算每個片段的比特消耗(ChSetByteCons[seg])(步驟232)并存儲ChSetByteCons[seg](步驟234)。隨后利用與之前的非用于所有通道的相同的二進(jìn)制代碼和賴斯代碼計算,為所有通道的片段確定全局性編碼參數(shù)(熵代碼選擇和參數(shù))集(步驟236)。選擇最佳參數(shù),并且計算字節(jié)消耗(SegmByteCons)(步驟238)。將SegmByteCons與CHSetByteCons[seg]相比較(步驟240)。如果利用全局參數(shù)沒有減少比特消耗,則將AllChSamParamFlag[seg]設(shè)置為假(步驟242)。否則,將AllChSameParamFlag[seg]設(shè)置為真(步驟244),并且保存全局編碼參數(shù)和對應(yīng)的每片段比特消耗(步驟246)。該過程重復(fù)直至片段環(huán)路的結(jié)束(步驟248)。整個處理重復(fù)直到通道集環(huán)路終結(jié)步驟250。
編碼處理是以可以通過少數(shù)標(biāo)記的控制來禁用不同的功能的方式來構(gòu)建的。例如,一個單個標(biāo)記控制是否執(zhí)行成對通道解相關(guān)分析。另一個標(biāo)記控制是否執(zhí)行自適應(yīng)預(yù)測(還有另一個標(biāo)記用于固定預(yù)測)分析。另外,單個標(biāo)記控制是否執(zhí)行所有通道上的全局參數(shù)的檢索。通過設(shè)置分割的數(shù)量和最小片段持續(xù)時間(在最簡單的形式下,可以是具有預(yù)定片段持續(xù)時間的單個分割),分段也是可以控制的。本質(zhì)上,通過在編碼器中設(shè)置少量標(biāo)記,該編碼器可以破壞簡單成幀和熵編碼。
后向兼容無損音頻編解碼器無損編解碼器可以用作與有損核心編碼器結(jié)合的“擴(kuò)展編碼器”?!坝袚p”核心代碼流被打包為核心比特流,而無損編碼的差分信號被打包為分離的擴(kuò)展比特流。一旦在具有擴(kuò)展的無損特性的解碼器中解碼,有損和無損流被合并以構(gòu)建無損重建信號。在前一代解碼器中,無損流被忽略,并且核心“有損”流被解碼以提供具有核心流的帶寬和信噪比特性的高質(zhì)量、多通道音頻信號。
圖9示出了用于多通道信號的一個通道的后向兼容無損編碼器400的系統(tǒng)級視圖。在輸入端402提供數(shù)字化的音頻信號,適當(dāng)?shù)臑镸比特的PCM音頻采樣。優(yōu)選地,數(shù)字化的音頻信號具有超出修正的有損核心編碼器404的采樣率和帶寬。在一個實施例中,數(shù)字化音頻信號的采樣率是96kHz(對應(yīng)于采樣音頻的48kHz的帶寬)。還應(yīng)當(dāng)理解的是,輸入音頻可以以及優(yōu)選為多通道信號,其中每個通道以96kHz采樣。下面將集中討論單個通道的處理,但是擴(kuò)展到多通道是直接了當(dāng)?shù)?。輸入信號在?jié)點406被復(fù)制,并且在并行分支中被處理。在信號路徑的第一個分支中,一個修正的有損、寬帶編碼器404編碼該信號。在下面詳細(xì)描述的修正的核心編碼器404產(chǎn)生編碼核心比特流408,其被傳送到打包器或復(fù)用器410。核心比特流408還被傳送到修正的核心解碼器412,該核心解碼器產(chǎn)生修正的重建核心信號414作為輸出。
同時,并行路徑中的輸入數(shù)字化音頻信號402經(jīng)歷補償延遲416,該補償延遲基本上等于(通過修正的編碼器和修正的解碼器)引入到重建音頻流中的延遲,以產(chǎn)生延遲的數(shù)字化音頻流。在加法節(jié)點420從延遲的數(shù)字化音頻流414減去音頻流400。求和節(jié)點420產(chǎn)生表示原始信號和重建核心信號的差分信號422。為了完成純“無損”編碼,需要以無損編碼技術(shù)編碼和發(fā)送該差分信號。因此,用無損編碼器424編碼差分信號422,并在打包器410中將擴(kuò)展比特流426與核心比特流408打包,以產(chǎn)生輸出比特流428。
注意,無損編碼產(chǎn)生可變比特率的擴(kuò)展比特流426,以適應(yīng)無損編碼器的需要。被打包的流隨后任選地經(jīng)過包括通道編碼的編碼的其它層,并且隨后被發(fā)送或記錄。注意,為了本公開內(nèi)容的目的,記錄可以被認(rèn)為是通過通道傳輸?shù)摹?br>
核心編碼器404被描述為“修正的”,這是因為在能夠處理擴(kuò)展帶寬的實施例中,核心編碼器將需要修正。編碼器內(nèi)的64-頻帶分析濾波器組430丟棄其輸出數(shù)據(jù)432的一半,并且核心子帶編碼器434僅僅編碼較低的32個頻帶。這個丟棄的信息對于在任何情況下都不能重建信號譜上半部分的傳統(tǒng)解碼器而言是不涉及的。剩余信息經(jīng)由未修正的編碼器編碼以形成后向兼容的核心輸出流。然而,在以48kHz或低于48kHz的采樣率工作的另一個實施例中,核心編碼器可以是現(xiàn)有核心編碼器的基本上未修正的版本。類似地,為了在上述的傳統(tǒng)解碼器的采樣率以上工作,修正的核心解碼器412包括以較低的32個子帶解碼采樣的核心子帶解碼器436。修正的核心解碼器從較低的32個子帶取出子帶采樣,并且對于較高的32個頻帶438使未發(fā)送的子帶采樣歸零,并且利用64-頻帶QMF合成濾波器440重建所有的64個頻帶。為了以常規(guī)采樣率(例如,48kHz和48kHz以下)操作,核心解碼器可以是現(xiàn)有核心解碼器的基本上未修正版本或等效物。在一些實施例中,可以在編碼時選擇采樣率,并且如同期望的那樣,在那時通過軟件重新配置編碼和解碼模塊。
由于無損編碼器將被用于編碼差分信號,似乎簡單的熵編碼就足夠了。然而,由于對現(xiàn)有有損核心編解碼器的比特率限制,仍然需要大量的總比特以提供無損比特流。此外,由于核心編解碼器的帶寬限制,該差分信號中的24kHz以上的信息內(nèi)容仍然相關(guān)。例如,大量的諧波成分,包括喇叭、吉他、三角鐵..,遠(yuǎn)遠(yuǎn)超過30kHz。因此更為成熟的提高了壓縮性能的無損編解碼器可增值。另外,在一些應(yīng)用中,核心和擴(kuò)展比特流必須仍然滿足可解碼單位必須不超出最大尺寸的約束。本發(fā)明的無損編解碼器同時提供了提高的壓縮性能和改善的靈活性以滿足這些約束。
舉例來說,8個通道的24比特96kHz PCM音頻需要18.5Mbps。無損壓縮可以將其降低到大約9Mbps。DTS相關(guān)聲學(xué)器件將以1.5Mbps編碼核心,剩下7.5Mbps的差分信號。對于2K字節(jié)的最大片段尺寸,平均片段持續(xù)時間為2048*8/7500000=2.18msec或者大約209個采樣@96kHz。滿足該最大尺寸的有損核心的典型幀尺寸在10到20msec之間。
可以在系統(tǒng)級合并無損編解碼器和后向兼容無損編解碼器以在擴(kuò)展帶寬處無損地編碼額外的音頻通道,同時保持與現(xiàn)有有損編解碼器的后向兼容性。例如,以18.5Mbps的8個通道的96kHz音頻可以被無損地編碼以包括以1.5Mbps的5.1通道的48kHz音頻。核心加無損編碼器將用于編碼5.1通道。無損編解碼器將用于編碼5.1通道中的差分信號。剩余的2個通道利用無損編碼器以分開的通道集編碼。由于當(dāng)試圖優(yōu)化片段持續(xù)時間時需要考慮所有通道集,所有的編碼工具將以一種方式或另一種方式使用。一個兼容的解碼器將解碼所有8個通道并無損地重建96kHz的18.5Mbps音頻信號。而較老的解碼器將僅僅解碼5.1通道并重建48kHz 1.5Mbps。
一般而言,為了計算解碼器的復(fù)雜性,可以提供一個以上純無損通道集。例如,對于10.2原始混頻,可以如此來組織通道集-CHSET1攜帶5.1(具有嵌入的10.2到5.1下混頻)并且利用核心+無損編碼-CHSET1和CHSET2攜帶7.1(具有嵌入的10.2到7.1下混頻),在此,CHSET2利用無損編碼2個通道-CHSET1+CHSET2+CHSET3攜帶全離散10.2混頻,在此,CHSET3僅利用無損編碼剩余的3.1通道能夠僅解碼5.1的解碼器將僅解碼CHSET1并忽略所有其它通道集。能夠僅解碼7.1的解碼器將解碼CHSET1和CHSET2并忽略所有其它通道集。...
此外,有損加無損核心不局限于5.1。當(dāng)前實現(xiàn)方案利用有損(core+XCh)和無損支持高達(dá)6.1,并且可以支持以任意數(shù)量的通道集組織的普通m.n通道。有損編碼將具有5.1后向兼容核心,并且用有損編解碼器編碼的所有其它通道將進(jìn)入XXCh擴(kuò)展。這就提供了具有相當(dāng)大的設(shè)計靈活性的總體無損編碼,以保持與現(xiàn)有解碼器的后向兼容,同時支持附加通道。
雖然已經(jīng)示出并描述了本發(fā)明的多個示例性實施例,本領(lǐng)域的技術(shù)人員將想到多種變型和可選實施例。這些變型和可選實施例是可預(yù)期的,并且可以不偏離所附權(quán)利要求書中定義的本發(fā)明的精神和范圍做出這些變型和可選實施例。
權(quán)利要求
1.一種無損地編碼多通道音頻的方法,包括將所述多通道音頻分塊成相等持續(xù)時間的幀;將每個幀分段成預(yù)定持續(xù)時間的多個片段,以減少在受到每個片段必須完全可解碼并且小于最大尺寸的約束的幀的編碼凈荷;對所述幀內(nèi)的每個通道熵編碼所述片段;以及將用于每個片段的所述編碼后的音頻數(shù)據(jù)打包到所述幀中。
2.根據(jù)權(quán)利要求1的方法,其中通過以下步驟確定所述預(yù)定持續(xù)時間a)將所述幀分割成給定持續(xù)時間的多個片段;b)為每個通道中的每個片段確定編碼參數(shù)集和編碼凈荷;c)為所有通道上的每個片段計算編碼凈荷;d)如果在所有通道上任一片段的編碼凈荷超過最大尺寸,則丟棄所述編碼參數(shù)集;e)如果用于當(dāng)前分割的幀的編碼凈荷低于用于先前分割的最小編碼凈荷,則存儲當(dāng)前編碼參數(shù)集并更新最小編碼凈荷;以及f)對不同持續(xù)時間的多個片段重復(fù)步驟a至e。
3.根據(jù)權(quán)利要求2的方法,其中所述片段持續(xù)時間最初被設(shè)置在最小持續(xù)時間并在每次分割迭代時增加。
4.根據(jù)權(quán)利要求3的方法,其中所述片段持續(xù)時間最初被設(shè)置為二次冪并且在每次分割迭代時加倍。
5.根據(jù)權(quán)利要求3的方法,其中如果在所有通道上任一片段的編碼凈荷超過所述最大尺寸,則該分割迭代終結(jié)。
6.根據(jù)權(quán)利要求2的方法,其中所述編碼參數(shù)集包括熵編碼器及其參數(shù)的選擇。
7.根據(jù)權(quán)利要求6的方法,其中選擇熵編碼器及其參數(shù)以將該通道中該片段的編碼凈荷降至最小。
8.根據(jù)權(quán)利要求2的方法,進(jìn)一步包括為通道對生成解相關(guān)通道以便形成三重組(基準(zhǔn)、相關(guān)、解相關(guān)),選擇(基準(zhǔn)、相關(guān))通道對或(基準(zhǔn)、解相關(guān))通道對,并對所選擇的通道對中的通道熵編碼。
9.根據(jù)權(quán)利要求2的方法,其中,基于哪個產(chǎn)生包括所述幀的頭部和音頻數(shù)據(jù)在內(nèi)的較小編碼凈荷,所述確定的編碼參數(shù)集或者是針對每個通道的不同的編碼參數(shù)集或者是針對所有通道的全局性編碼參數(shù)集。
10.根據(jù)權(quán)利要求1的方法,其中所述片段的預(yù)定持續(xù)時間被確定以將每幀的編碼凈荷降至最小。
11.根據(jù)權(quán)利要求1的方法,其中所述片段的預(yù)定持續(xù)時間部分地是通過為每個片段選擇包括多個熵編碼器之一及其編碼參數(shù)的編碼參數(shù)集來確定的。
12.根據(jù)權(quán)利要求11的方法,其中所述片段的預(yù)定持續(xù)時間部分地是通過為每個通道選擇不同的編碼參數(shù)集或為所述多個通道選擇全局性編碼參數(shù)集來確定的。
13.根據(jù)權(quán)利要求11的方法,其中為不同的片段持續(xù)時間計算編碼參數(shù)集,并且選擇對應(yīng)于具有滿足上述對最大分段尺寸的約束條件的最小編碼凈荷的編碼參數(shù)集的持續(xù)時間。
14.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括為通道對生成解相關(guān)通道以形成至少一個三重組(基準(zhǔn)、相關(guān)、解相關(guān)),所述片段的預(yù)定持續(xù)時間部分地是通過為每個所述三重組選擇(基準(zhǔn)、相關(guān))通道對或(基準(zhǔn)、解相關(guān))通道對用于熵編碼而確定的。
15.根據(jù)權(quán)利要求14的方法,其中通過確定是解相關(guān)通道還是相關(guān)通道對編碼凈荷貢獻(xiàn)最少比特來選擇通道對。
16.根據(jù)權(quán)利要求14的方法,其中兩個最相關(guān)的通道形成第一對,如此類推,直到通道被耗盡;如果剩余奇數(shù)通道,則其形成基準(zhǔn)通道。
17.根據(jù)權(quán)利要求16的方法,其中在每對中,具有較小零滯后自相關(guān)估計的通道是基準(zhǔn)通道。
18.根據(jù)權(quán)利要求17的方法,其中通過將基準(zhǔn)通道與解相關(guān)系數(shù)相乘并從相關(guān)通道減去該乘積結(jié)果來生成解相關(guān)通道。
19.一種無損編碼PCM音頻數(shù)據(jù)的方法,包括將多通道音頻分塊成相等持續(xù)時間的幀;處理所述多通道音頻以對包括基準(zhǔn)通道和相關(guān)通道的通道對排序;為每個通道對生成解相關(guān)通道以形成至少一個三重組(基準(zhǔn)、相關(guān)、解相關(guān));基于所述基準(zhǔn)和相關(guān)通道以及所述基準(zhǔn)和解相關(guān)通道的可能的通道對組合選擇編碼參數(shù);從每個所述三重組中選擇通道對(基準(zhǔn)、相關(guān))或(基準(zhǔn)、解相關(guān));根據(jù)編碼參數(shù)對所選通道對中的每個通道熵編碼;以及將所述編碼后的音頻數(shù)據(jù)打包到比特流中。
20.根據(jù)權(quán)利要求19的方法,其中兩個最相關(guān)的通道形成第一對,如此類推,直到通道被耗盡;如果剩余奇數(shù)通道,則其形成基準(zhǔn)通道。
21.根據(jù)權(quán)利要求20的方法,其中在每對中,具有較小零滯后自相關(guān)估計的通道為基準(zhǔn)通道。
22.根據(jù)權(quán)利要求21的方法,其中通過將基準(zhǔn)通道與解相關(guān)系數(shù)相乘并從相關(guān)通道減去該乘積結(jié)果來生成解相關(guān)通道。
23.一種無損編碼PCM音頻數(shù)據(jù)的方法,包括處理多通道音頻以創(chuàng)建包括基準(zhǔn)通道和相關(guān)通道的通道對;為每個通道對生成解相關(guān)通道以形成至少一個三重組(基準(zhǔn)、相關(guān)、解相關(guān));將所述多通道音頻分塊成相等持續(xù)時間的幀;將每個幀分段成預(yù)定持續(xù)時間的多個片段并從所述至少一個三重組中選擇通道對(基準(zhǔn)、相關(guān))或(基準(zhǔn)、解相關(guān)),以將受到每個片段必須完全可解碼并且小于最大尺寸的約束的幀的編碼凈荷降至最小;根據(jù)編碼參數(shù)對所選通道對中每個通道的每個片段熵編碼;以及將所述編碼后的音頻數(shù)據(jù)打包到比特流中。
24.根據(jù)權(quán)利要求23的方法,其中所述片段的預(yù)定持續(xù)時間部分地是通過選擇多個熵編碼器之一及其編碼參數(shù)來確定的。
25.根據(jù)權(quán)利要求23的方法,其中每個通道被分配包括所選擇的熵編碼器和其參數(shù)的編碼參數(shù)集,所述片段的持續(xù)時間部分地是通過為每個通道選擇不同的編碼參數(shù)集或為所述多個通道選擇全局性編碼參數(shù)集來確定的。
26.根據(jù)權(quán)利要求23的方法,其中對于幀中的每一個片段,所述預(yù)定持續(xù)時間相同。
27.根據(jù)權(quán)利要求23的方法,其中為每個幀確定所述預(yù)定持續(xù)時間,并且該預(yù)定持續(xù)時間在整個幀序列內(nèi)變化。
28.一種多通道音頻編碼器,用于編碼以已知采樣率采樣、具有音頻帶寬以及被分塊成幀序列的數(shù)字音頻信號,包括核心編碼器,從數(shù)字音頻信號提取核心信號并將其編碼為核心比特;打包器,將核心比特加上頭部信息打包成第一比特流;核心解碼器,解碼核心比特以形成重建的核心信號;求和節(jié)點,對多音頻通道中每個通道從所述重建的核心信號和數(shù)字音頻信號形成差分信號;無損編碼器,將多通道差分信號的每幀分段成多個片段,并將所述片段熵編碼成擴(kuò)展比特,所述無損編碼器選擇片段持續(xù)時間以減小受到每個片段必須完全可解碼并且小于最大尺寸的約束的幀內(nèi)差分信號的編碼凈荷;以及打包器,將擴(kuò)展比特打包成第二比特流。
29.根據(jù)權(quán)利要求28的多通道音頻編碼器,其中核心編碼器包括丟棄較高的N/2子帶的N頻帶分析濾波器組,和僅編碼較低的N/2子帶的核心子帶編碼器,該核心解碼器包括將核心比特解碼成用于較低的N/2子帶的采樣的核心子帶解碼器,和N頻帶合成濾波器組,該N頻帶合成濾波器組取出用于較低的N/2子帶的采樣,并使用于較高的N/2子帶的未發(fā)送的子帶采樣歸零,以及合成以已知采樣率采樣的重建音頻信號。
30.根據(jù)權(quán)利要求28的多通道音頻編碼器,其中該無損編碼器通過以下步驟確定片段持續(xù)時間,a)將幀分割成給定持續(xù)時間的若干片段;b)為每個通道中的每個片段確定編碼參數(shù)集和編碼凈荷;c)為所有通道上的每個片段計算編碼凈荷;d)如果在所有通道上對于任一片段的編碼凈荷超過最大尺寸,則丟棄該編碼參數(shù)集;e)如果當(dāng)前分割的幀的編碼凈荷小于用于先前分割的最小編碼凈荷,則存儲當(dāng)前編碼參數(shù)集并更新所述最小編碼凈荷;以及f)對于不同持續(xù)時間的多個片段重復(fù)步驟a至e。
31.根據(jù)權(quán)利要求30的多通道音頻編碼器,其中無損編碼器為通道對生成解相關(guān)通道以形成三重組(基準(zhǔn)、相關(guān)、解相關(guān)),選擇(基準(zhǔn)、相關(guān))通道對或(基準(zhǔn)、解相關(guān))通道對,并對所選通道對中的通道熵編碼。
32.根據(jù)權(quán)利要求28的多通道音頻編碼器,其中數(shù)字音頻信號包括被組織成至少第一和第二通道集的多音頻通道,所述第一通道集被核心編碼器和無損編碼器編碼,所述第二通道集僅被所述無損編碼器編碼。
33.根據(jù)權(quán)利要求32的多通道音頻編碼器,其中編碼所述第一通道集的無損編碼器包括5.1通道配置。
34.根據(jù)權(quán)利要求33的多通道音頻編碼器,其中核心編碼器具有編碼核心信號的最大比特率。
35.根據(jù)權(quán)利要求32的多通道音頻編碼器,其中核心編碼器以為預(yù)定采樣率一半的采樣率提取并編碼核心信號。
36.一種解碼無損比特流的方法,包括接收作為幀序列的比特流,該幀序列包括含有片段數(shù)和每片段采樣數(shù)的通用頭部信息,用于每個通道集的含有消耗的字節(jié)、熵代碼標(biāo)記和編碼參數(shù)的片段頭部信息,以及存儲在多個片段中的編碼殘留多通道音頻信號;對頭部拆包以提取熵代碼標(biāo)記和編碼參數(shù)以及編碼的殘留音頻信號,并利用所選擇的熵代碼和編碼參數(shù)對幀中每個片段執(zhí)行熵解碼,以便為每個片段生成殘留音頻信號;以及對頭部拆包以提取預(yù)測系數(shù)并對殘留音頻信號執(zhí)行逆向預(yù)測,以便為每個片段生成PCM音頻。
37.根據(jù)權(quán)利要求36的方法,其中所述片段頭部信息還包括所有通道相同參數(shù)標(biāo)記,其指示熵代碼和編碼參數(shù)對于每個通道是否不同,或者它們對于所有通道是否相同。
38.根據(jù)權(quán)利要求36的方法,其中比特流進(jìn)一步包括含有成對通道解相關(guān)標(biāo)記、原始通道順序、以及量化的通道解相關(guān)系數(shù)的通道集頭部信息,所述逆向預(yù)測步驟生成解相關(guān)PCM音頻,該方法進(jìn)一步包括對該頭部拆包以提取原始通道順序、成對通道解相關(guān)標(biāo)記和量化通道解相關(guān)系數(shù),并執(zhí)行逆向交叉通道解相關(guān)以生成多通道PCM音頻。
39.根據(jù)權(quán)利要求38的方法,其中成對通道解相關(guān)標(biāo)記指示用于三重組(基準(zhǔn)、相關(guān)、解相關(guān))的(基準(zhǔn)、相關(guān))通道對或(基準(zhǔn)、解相關(guān))通道對是否被編碼,該方法進(jìn)一步包括如果該標(biāo)記指示(基準(zhǔn)、解相關(guān))通道對,則將相關(guān)通道與量化通道解相關(guān)系數(shù)相乘并將結(jié)果加到基準(zhǔn)通道以生成相關(guān)通道。
40.一種制品,包括被分離為存儲在媒介上的無損編碼音頻數(shù)據(jù)的幀序列的比特流,每個所述幀被細(xì)分為多個片段,所述片段持續(xù)時間被選擇成將受到每個片段必須完全可解碼并小于最大尺寸的約束的幀中的音頻數(shù)據(jù)的編碼凈荷降至最小。
41.根據(jù)權(quán)利要求40的制品,其中每個片段被熵編碼,所述比特流包括片段頭部信息,該片段頭部信息包含指示特定熵代碼的熵代碼標(biāo)記和用于該熵代碼的編碼參數(shù)。
42.根據(jù)權(quán)利要求41的制品,其中,所述片段頭部信息還包括指示熵代碼和編碼參數(shù)對于每個通道是否不同或者它們對于所有通道是否相同的所有通道相同參數(shù)標(biāo)記。
43.根據(jù)權(quán)利要求41的制品,其中,音頻數(shù)據(jù)的每個片段包括對于每對音頻通道是(基準(zhǔn)、相關(guān))通道對或是(基準(zhǔn)、解相關(guān))通道對,所述比特流包括通道集頭部信息,該通道集頭部信息又包含指示包括哪一對的成對通道解相關(guān)標(biāo)記、原始通道順序和量化的通道解相關(guān)系數(shù),如果包括的是解相關(guān)通道,則量化的通道解相關(guān)系數(shù)用于生成相關(guān)通道。
全文摘要
一種無損音頻編解碼器將每幀內(nèi)的音頻數(shù)據(jù)分段以便提高在每個片段必須完全可解碼并小于最大尺寸的約束下的壓縮性能。對于每個幀,編解碼器選擇片段持續(xù)時間和編碼參數(shù),例如,用于每個片段的特定熵編碼器和其參數(shù),其將受到上述約束的整個幀的編碼凈荷降至最小??梢詾槊總€通道選擇不同的編碼參數(shù)集或者為所有通道選擇全局編碼參數(shù)集。還可以通過為M通道音頻形成M/2解相關(guān)通道來進(jìn)一步提高壓縮性能。通道的三重組(基準(zhǔn)、相關(guān)、解相關(guān))提供了兩種可能的配對組合基準(zhǔn)、相關(guān);和基準(zhǔn)、解相關(guān),其可以在分段和熵編碼優(yōu)化期間被考慮以進(jìn)一步提高壓縮性能。
文檔編號G10L19/02GK101027717SQ200580013444
公開日2007年8月29日 申請日期2005年3月21日 優(yōu)先權(quán)日2004年3月25日
發(fā)明者左蘭·菲左 申請人:Dts公司