欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多通道聲碼器的制作方法

文檔序號(hào):2822143閱讀:651來源:國(guó)知局
專利名稱:多通道聲碼器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及高質(zhì)量多通道聲信號(hào)的編碼和解碼,更確切地說,涉及一種子帶編碼器,其在整個(gè)時(shí)間內(nèi)利用完全/不完全重構(gòu)濾波器、預(yù)測(cè)/非預(yù)測(cè)子帶編碼、瞬態(tài)分析、和心理聲學(xué)/最小均方差(mmse)的位分配、頻率和多聲道產(chǎn)生限定解碼計(jì)算載荷的數(shù)據(jù)流。
背景技術(shù)
可以將公知的高質(zhì)量聲音和音樂編碼器分成兩大類模式。第一類是,用于高頻分辨子帶的媒體/變換編碼器,該編碼器能根據(jù)心理聲學(xué)的掩蔽計(jì)算結(jié)果在分析窗內(nèi)自適應(yīng)地量化子帶或系數(shù)樣本。第二類是,低頻分辨子帶編碼器,這種編碼器通過用ADPCM對(duì)子帶樣本進(jìn)行處理來補(bǔ)償其低下的頻率分辨率。
第一類編碼器通過使位分配適應(yīng)于信號(hào)的譜能從而利用了普通音樂信號(hào)中的大量短程頻譜變化。借助這些編碼器的高分辨率可以把頻率轉(zhuǎn)換信號(hào)直接應(yīng)用到心理聲學(xué)模型上,這主要基于聽覺的臨界頻帶理論。托德(Todd)等人的Dolby的AC-3聲學(xué)編碼器“AC-3聲音傳播和存儲(chǔ)的柔感編碼”聲學(xué)工程協(xié)會(huì)大會(huì),1994年2月一般性地計(jì)算了各個(gè)PCM信號(hào)上的1024-ffts并在每個(gè)通道中建立了針對(duì)1024個(gè)頻率系數(shù)的心理聲學(xué)模型以便確定每個(gè)系數(shù)的位速率。Dolby系統(tǒng)使用了瞬態(tài)分析,這樣能把窗口尺寸減小到256個(gè)樣本從而達(dá)到隔離這些瞬態(tài)的目的。AC-3編碼器采用了專用的反向自適應(yīng)算法以便對(duì)位分配進(jìn)行解碼。這樣便減少了沿編碼聲數(shù)據(jù)一側(cè)發(fā)射的位分配信息量。結(jié)果,在正向自適應(yīng)系統(tǒng)的范圍內(nèi)增加了適合聲學(xué)要求的頻帶寬度從而改善了音質(zhì)。
在第二類編碼器中,在不明顯涉及任何心理聲學(xué)掩蔽理論的情況下,差值子帶信號(hào)的量化或者是固定的或者可用于最大限度地減小穿越所有或部分子帶的量化噪聲能量。由于很難估計(jì)位分配處理之前的預(yù)測(cè)特性,所以通常不能把心理聲學(xué)的失真直接加到預(yù)測(cè)/差值子帶信號(hào)上。由于量化噪聲在預(yù)測(cè)量處理時(shí)的相互作用而使問題進(jìn)一步復(fù)雜化。
由于感性臨界聲信號(hào)通常是周期性的,所以這些編碼器可在較長(zhǎng)的時(shí)間周期內(nèi)工作。這種周期性是通過預(yù)測(cè)差分量化而得到的。把信號(hào)分成少量子帶的結(jié)果降低了噪聲調(diào)制的聽覺效果并且可利用聲信號(hào)的長(zhǎng)程頻譜變化。如果子帶的數(shù)量增加,那么每個(gè)子帶中的預(yù)測(cè)增益將降低而且在某些點(diǎn)上的預(yù)測(cè)增益將趨于零。
數(shù)字式影院系統(tǒng),L.P.(DTS)采用了一種聲碼器,其中將每個(gè)PCM聲道濾成四個(gè)子帶而且用反向ADPCM編碼器對(duì)每個(gè)子帶進(jìn)行編碼,所述反向ADPCM編碼器使預(yù)測(cè)系數(shù)適應(yīng)于子帶數(shù)據(jù)。使位分配固定且使每個(gè)通道也同樣固定,賦予低頻子帶的位多于高頻子帶。位分配提供了固定的壓縮率,例如4∶1。邁克·史密斯(MikeSmyth)和斯蒂芬·史密斯(Stephen Smyth)在“APT-X100廣播中使用的低滯后、低位速率、子帶ADPCM聲碼器”第十次國(guó)際AES會(huì)議匯編,1991年,第41-56頁中描述了DTS編碼器。
兩種聲碼器還具有其它共同的局限性。首先,公知的聲碼器用固定的幀尺寸進(jìn)行編碼/解碼,即,樣本的數(shù)量或用幀表示的時(shí)間周期是固定的。結(jié)果,當(dāng)編碼的傳輸率相對(duì)于樣本率增加時(shí),幀內(nèi)的數(shù)據(jù)量也增加。因此,必須把解碼器中緩沖器的尺寸設(shè)計(jì)得能適應(yīng)最糟的情況以避免數(shù)據(jù)溢出。這樣將會(huì)增加作為解碼器主要成本因素的RAM之?dāng)?shù)量。其次,公知的聲碼器不易擴(kuò)大到使采樣頻率大于48kHz。由此使得現(xiàn)有解碼器與新解碼器所需的格式不兼容。對(duì)未來的產(chǎn)品不能兼容導(dǎo)致了嚴(yán)重的局限性。此外,對(duì)PCM進(jìn)行編碼所用的公知格式要求在播放之前啟動(dòng)由解碼器讀入的全部幀。這就需要把緩沖器的尺寸限制在接近100ms數(shù)據(jù)塊從而使滯后或等待時(shí)間不會(huì)干擾聽者。
此外,雖然這些編碼器的編碼能力達(dá)24kHz,但卻常常丟失更高頻的子帶。這樣會(huì)降低高頻保真度或重構(gòu)信號(hào)的背景。公知編碼器通常使用兩種誤差檢測(cè)系統(tǒng)中的一種。最常用的是讀所羅門編碼(Read Solomon coding),其中編碼器把誤差檢測(cè)位加到數(shù)據(jù)流中的邊(side)信息上。這有利于檢測(cè)和校正邊信息中的任何誤差。然而,無法測(cè)出聲數(shù)據(jù)中的誤差。另一種方法是檢驗(yàn)無效碼狀態(tài)的幀和聲標(biāo)題。例如,個(gè)別的3位參數(shù)可能只具有3種有效狀態(tài)。如果只鑒別出其它五種狀態(tài)中的一種那么肯定出現(xiàn)了誤差。這只是顯示了檢測(cè)能力而并不檢測(cè)聲數(shù)據(jù)中的誤差。

發(fā)明內(nèi)容
從上述問題出發(fā),本發(fā)明提供了一種具有柔性的多通道聲碼器,其在高位速率下以比CD更好的質(zhì)量靈活調(diào)整壓縮能級(jí)的寬度范圍和通過降低播放等待時(shí)間、簡(jiǎn)化誤差檢測(cè)改善了低位速率的感性質(zhì)量、改善了前回波的失真以及對(duì)較高采樣率的進(jìn)一步擴(kuò)展性。
這是用子帶編碼器實(shí)現(xiàn)的,子帶編碼器把每個(gè)聲道劃為聲幀序列,把幀濾成基帶和高頻區(qū),把每個(gè)基帶信號(hào)分解成多個(gè)子帶。子帶編碼器在位速率較低時(shí)一般選擇非完全濾波器以便分解基帶信號(hào),而在位速率足夠高時(shí)選擇完全濾波器。高頻編碼層對(duì)與基帶信號(hào)無關(guān)的高頻信號(hào)進(jìn)行編碼?;鶐Ь幋a層包括分別對(duì)高頻和低頻子帶進(jìn)行編碼的VQ和ADPCM編碼器。每個(gè)子帶幀包括至少一個(gè)子幀,每個(gè)子幀進(jìn)一步細(xì)分為多個(gè)子子幀。對(duì)每個(gè)子幀進(jìn)行分析以便估計(jì)ADPCM編碼器的預(yù)測(cè)增益和檢測(cè)瞬變狀態(tài)以調(diào)節(jié)前后瞬變狀態(tài)SFs,在所述ADPCM編碼器中,當(dāng)預(yù)測(cè)增益較低時(shí)其預(yù)測(cè)能力將喪失。
全位管理(GBM)系統(tǒng)利用多個(gè)聲道、多個(gè)子帶和當(dāng)前幀中的子幀之間的差把各位分配到每個(gè)子幀。GBM系統(tǒng)最初通過計(jì)算被預(yù)測(cè)增益改變的SMR而將各位分配到每個(gè)子幀以滿足心理聲學(xué)模型。然后,GBM系統(tǒng)按照MMSE分配的瞬間轉(zhuǎn)換、降低所有噪聲或MMSE的漸變變換等方法分配所有剩余位。
多路轉(zhuǎn)換器產(chǎn)生包括同步字、幀標(biāo)題、聲標(biāo)題和至少一個(gè)子幀的輸出幀并以傳輸速率把輸出幀多路轉(zhuǎn)換成數(shù)據(jù)流。幀標(biāo)題包括窗口尺寸和當(dāng)前輸出幀的尺寸。聲標(biāo)題表示聲幀的壓縮裝置和編碼格式。每個(gè)聲頻子幀包括在與任何其它子幀無關(guān)的情況下對(duì)聲頻子幀進(jìn)行解碼的邊信息、高頻VQ編碼、多個(gè)用于壓縮各通道低頻子帶聲數(shù)據(jù)并將其與其它通道進(jìn)行多路轉(zhuǎn)換的基帶聲頻子子幀、在每個(gè)通道的高頻范圍內(nèi)將聲頻數(shù)據(jù)壓縮并將其與其它通道進(jìn)行多路轉(zhuǎn)換從而在多種解碼采樣速率下對(duì)多通道聲信號(hào)進(jìn)行解碼和解壓縮同步確定子幀端部的高頻聲信息塊。
選擇窗口尺寸作為傳輸速率與編碼采樣速率之比的函數(shù)從而把輸出幀的尺寸限制在要求的范圍內(nèi)。當(dāng)壓縮量較低時(shí),窗口尺寸減小從而使幀尺寸不會(huì)超過上限最大值。結(jié)果,解碼器可以采用具有固定和較少RAM數(shù)量的輸入緩沖器。當(dāng)壓縮量相對(duì)高時(shí),窗口尺寸增加。結(jié)果,GBM系統(tǒng)需將各位分布到大的時(shí)間窗內(nèi)由此改善編碼特性。
通過以下結(jié)合附圖對(duì)優(yōu)選實(shí)施例所作的詳細(xì)說明將更有助于熟悉本領(lǐng)域的技術(shù)人員理解本發(fā)明的這些和其它特征和優(yōu)點(diǎn),其中


圖1是按照本發(fā)明所述5通道聲碼器的方框圖;圖2是多通道編碼器的方框圖;圖3是基帶編碼器和解碼器的方框圖;圖4a和圖4b分別是高采樣速率編碼器和解碼器的方框圖;圖5是單通道編碼器的方框圖;圖6是相對(duì)于可變傳輸速率的每幀字節(jié)與幀尺寸之間關(guān)系的曲線圖;圖7是NPR和PR重構(gòu)濾波器的幅值響應(yīng)曲線圖;圖8是重構(gòu)濾波器的子帶混疊曲線圖;
圖9是NPR和PR濾波器的失真曲線圖;圖10是單個(gè)子帶碥碼器的示意圖;圖11A和11B分別表示子幀的瞬態(tài)檢測(cè)和比例因數(shù)計(jì)算;圖12表示對(duì)量化TMODES的熵(entropy)編碼過程;圖13表示比例因數(shù)量化過程;圖14表示信號(hào)掩蔽響應(yīng)所產(chǎn)生的SMRs隨信號(hào)頻率產(chǎn)生的旋轉(zhuǎn);圖15是人的聽覺響應(yīng)的曲線圖;圖16是子帶的SMRs曲線圖;圖17是心理聲學(xué)和mmse位分配的誤差信號(hào)曲線圖;圖18A和圖18B分別是子帶能層的曲線圖和反向曲線圖,其表示mmse“注水”位分配過程;圖19是數(shù)據(jù)流中的單幀方框圖;圖20是解碼器的示意圖;圖21是構(gòu)成編碼器硬件的方框圖;和圖22是構(gòu)成解碼器硬件的方框圖。
附表說明表1是最大幀尺寸與采樣速率和傳輸速率之間關(guān)系的表格;表2是允許的最大幀尺寸(字節(jié))與采樣速率和傳輸速率之間關(guān)系的表格;表3表示ABIT指數(shù)值、量化層的數(shù)量和最終子帶SNR之間的關(guān)系。
具體實(shí)施例方式
多通道聲碼系統(tǒng)如圖1所示,本發(fā)明把兩個(gè)公知編碼系統(tǒng)的特征與單個(gè)多通道聲碼器10的附加特征相結(jié)合。把編碼算法設(shè)計(jì)成能進(jìn)行演播室質(zhì)量水平即“好于CD”質(zhì)量水平的演播和使其能在改變壓縮量、采樣速率、字長(zhǎng)、通道數(shù)和感性質(zhì)量方面獲得廣泛應(yīng)用。
編碼器12把通常在48kHz下以16-24位字長(zhǎng)采樣的多通道PCM聲數(shù)據(jù)14編譯成公知傳輸率的數(shù)據(jù)流16,合適的傳輸率范圍為32-4096kbps。與公知的聲碼器不同,在不會(huì)使已有編碼器出現(xiàn)不兼容的情況下,本結(jié)構(gòu)能達(dá)到更高的采樣速率(48-192kHz),所述已有編碼器是為基帶采樣速率或任何中間采樣速率而設(shè)計(jì)的。此外,當(dāng)優(yōu)選將每個(gè)幀分成1-4個(gè)子幀時(shí)將PCM數(shù)據(jù)14框住并編成一個(gè)幀。聲頻窗口的尺寸即PCM樣本數(shù)量與采樣速率和傳輸速率的相對(duì)值有關(guān),因此把輸出幀的尺寸即由解碼器18讀出的每幀字節(jié)的數(shù)量限制在5.3-8個(gè)字節(jié)之間。
結(jié)果,為緩沖進(jìn)入的數(shù)據(jù)流而需要在解碼器中設(shè)置的RAM的數(shù)量可保持較低水平,這將降低解碼器的成本。在低速率下可以使用較大的窗口尺寸來構(gòu)成PCM數(shù)據(jù),這樣便改善了編碼效能。在高位速率下,必須使用較小的窗口尺寸以便滿足限定數(shù)據(jù)的需要。這必然會(huì)使編碼效能降低,但這對(duì)高速率是無意義的。而且,PCM數(shù)據(jù)構(gòu)成的方式使得解碼器18在將全部輸出幀讀入緩沖器之前就能激發(fā)演播。這樣可減少聲碼器的滯后或等待時(shí)間。
編碼器12使用了高分辨率濾波帶,其根據(jù)位速率優(yōu)選在不完全(NPR)和完全(PR)重構(gòu)濾波器之間轉(zhuǎn)換以便把每個(gè)聲道14分成多個(gè)子帶信號(hào)。用預(yù)測(cè)和矢量量化(VQ)編碼器分別對(duì)低頻和高頻子帶進(jìn)行編碼??梢詫⑵鹗糣Q子帶固定或動(dòng)態(tài)確定為交流信號(hào)特性的函數(shù)。在低位速率下可以在采用綜合頻率編碼的同時(shí)對(duì)高頻子帶中的多個(gè)通道進(jìn)行編碼。
預(yù)測(cè)編碼器根據(jù)子帶預(yù)測(cè)增益優(yōu)選在APCM和ADPCM模式之間轉(zhuǎn)換。瞬態(tài)分析器把每個(gè)子帶的子幀分成前后回波信號(hào)(子子幀)并計(jì)算與前后回波子子幀相應(yīng)的各比例因數(shù)從而降低前回波失真。編碼器根據(jù)它們各自的需要(心理聲學(xué)或mse)自適應(yīng)地分配穿過所有PCM通道和當(dāng)前幀子帶的有效位速率以便達(dá)到量佳編碼效率。通過把預(yù)測(cè)編碼和心理聲學(xué)模型彼此結(jié)合可提高低位速率編碼效率從而降低獲得主觀透明度的位速率。把計(jì)算機(jī)或鍵盤等可編程控制器19與編碼器12相連以使聲模式信息滯后,這些信息包括理想位速率、通道數(shù)量、PR或NPR重構(gòu)、采樣速率和傳輸速率等參數(shù)。
將編碼信號(hào)和邊帶信息壓縮并多路轉(zhuǎn)換成數(shù)據(jù)流16由此將編碼計(jì)算負(fù)荷限制在所需的范圍內(nèi)。將數(shù)據(jù)流16編譯到傳輸媒體20例如CD、數(shù)字式視盤(DVD)或直播衛(wèi)星上并通過該媒體進(jìn)行演播。解碼器18對(duì)各子帶信號(hào)進(jìn)行解碼并完成相反的濾波操作以產(chǎn)生多通道聲信號(hào)22,該信號(hào)主觀上相當(dāng)于原始多通道聲信號(hào)14??捎寐曄到y(tǒng)24例如家庭影院或多媒體計(jì)算機(jī)為用戶播放聲信號(hào)。
多通道編碼器如圖2所示,編碼器12包括多個(gè)獨(dú)立的通道編碼器26,合適的是五個(gè)(左前、中、右前、左后和右后),其產(chǎn)生各組編碼子帶信號(hào)28,合適的是每個(gè)通道32個(gè)子帶信號(hào)。編碼器12采用全位管理(GBM)系統(tǒng)30,其動(dòng)態(tài)地把各位從通道中的共用位池(commonbit-pool)分配到通道內(nèi)的子帶之間和給定子帶中的各幀內(nèi)。編碼器12還采用了綜合頻率編碼技術(shù),該技術(shù)利用的是高頻子帶中的通道間關(guān)系。此外,編碼器12可以在不易感覺到的高頻子帶上使用VQ以便在非常低的位速率下形成基本的高頻保真度或背景。用這種方式,編碼器利用了不同的信號(hào)要求,例如,多個(gè)通道的子帶rms值和心理聲學(xué)掩蔽等級(jí)以及在每個(gè)通道的頻率范圍內(nèi)和給定的幀時(shí)間內(nèi)信號(hào)能量的非均勻分布。
位分配概述GBM系統(tǒng)30首先確定將對(duì)哪個(gè)通道的子帶進(jìn)行綜合頻率編碼和進(jìn)行數(shù)據(jù)平均,然后確定將用VQ對(duì)哪個(gè)子帶進(jìn)行編碼并從得到的位速率中減去那些位速率。可以在當(dāng)閾值頻率之上的所有子帶都是VQ時(shí)預(yù)先決定用VQ編碼的子帶或根據(jù)每幀中各子帶的心理聲學(xué)掩蔽效應(yīng)作出上述決定。因此,GBM系統(tǒng)30利用心理聲學(xué)掩蔽將各位(ABIT)分配到剩余的子帶上從而達(dá)到優(yōu)化解碼聲信號(hào)的主觀質(zhì)量之目的。如果得到了附加位,編碼器可以轉(zhuǎn)換到純mmse圖,即“注水(waterfilling)”,并根據(jù)子帶相對(duì)rms的值對(duì)所有的位進(jìn)行再分配從而使誤差信號(hào)的rms值降至最小。這可在極高位速率的情況下應(yīng)用。優(yōu)選的方法是保持心理聲學(xué)位分配和根據(jù)mmse圖只分配附加位。這樣可保持因心理聲學(xué)掩蔽而產(chǎn)生的噪聲信號(hào)的形狀,但將使噪音最低值均勻地向下偏移。
此外,可以對(duì)優(yōu)選的方法進(jìn)行改進(jìn)使其根據(jù)rms和心理聲學(xué)能級(jí)之間的差來分配附加位。結(jié)果,當(dāng)位速率增大時(shí)心理聲學(xué)分配的轉(zhuǎn)換與mmse分配相當(dāng),所以在兩種技術(shù)之間形成了平滑轉(zhuǎn)換。上述技術(shù)特別適用于固定的位速率系統(tǒng)。此外,編碼器12可以設(shè)定失真等級(jí)、主觀條件或mse,并允許改變所有位速率以保持失真等級(jí)。多路轉(zhuǎn)換器32按照特定的數(shù)據(jù)格式把子帶信號(hào)和邊信息多路轉(zhuǎn)換成數(shù)據(jù)流16。具體的數(shù)據(jù)格式將在下面的圖20中討論。
基帶編碼相對(duì)于8-48kHz范圍的采樣速率而言,如圖3中所示的通道編碼器26采用了均勻的512-抽頭32-帶的分析濾波器組34,其以48kHz的采樣速率工作并把每個(gè)通道0-24kHz的聲頻譜分成32個(gè)子帶,每個(gè)子帶的帶寬為750Hz。編碼級(jí)36對(duì)每個(gè)子帶信號(hào)進(jìn)行編碼并通過多路轉(zhuǎn)換器38將它們多路轉(zhuǎn)換成壓縮數(shù)據(jù)流16。解碼器18接收壓縮的數(shù)據(jù)流,利用拆分器40分出每個(gè)子帶的編碼數(shù)據(jù),并對(duì)每個(gè)子帶信號(hào)42進(jìn)行解碼和用512-抽頭32-帶的均勻內(nèi)插濾波器組44重構(gòu)每個(gè)通道的PCM數(shù)字式聲信號(hào)(Psamp=48kHz)。
在本結(jié)構(gòu)中,所有編碼策略,例如48KHz、96KHz或192kHz的采樣速率都使用了在最低(基帶)聲頻例如0-24kHz基礎(chǔ)上的32帶編碼/解碼方法。因此,目前根據(jù)48kHz采樣速率設(shè)計(jì)和制成的解碼器能與將來設(shè)計(jì)成利用高頻分量的編碼器兼容。目前的解碼器能讀取基帶信號(hào)(0-24kHz)和忽略高頻編碼數(shù)據(jù)。
高采樣速率編碼相對(duì)于48-96kHz范圍的采樣速率而言,通道編碼器26優(yōu)選把聲頻譜分成兩部分并采用了下半部為均勻32-帶的分析濾波器組而上半部為8-帶的分析濾波器組。如圖4a和圖4b所示,開始時(shí)用256-抽頭2-帶抽選預(yù)濾波器組46拆分0-48kHz的聲頻譜形成每帶24kHz的聲帶寬度。將低頻帶(0-24kHz)分離并以上述圖3的方式編入32個(gè)均勻帶。然而把高頻帶(24-48kHz)分離并編入8個(gè)均勻帶。如果8-帶抽選/內(nèi)插濾波器組48的滯后與32-帶濾波器組的滯后不相等則必須在24-48kHz信號(hào)通路中的某處采用滯后補(bǔ)償級(jí)50,以便確保解碼時(shí)兩個(gè)時(shí)間波形在進(jìn)入2-帶重構(gòu)濾波器組之前對(duì)齊。在96kHz采樣編碼系統(tǒng)中,使24-48kHz聲頻帶滯后384個(gè)樣本,然后用128-抽頭的內(nèi)插濾波器組將其分成8個(gè)均勻帶。用0-24kHz帶的編碼數(shù)據(jù)對(duì)每個(gè)3kHz的子帶進(jìn)行編碼52和壓縮54以形成壓縮數(shù)據(jù)流16。
當(dāng)?shù)竭_(dá)解碼器18時(shí),將壓縮數(shù)據(jù)流16解壓縮56并把相對(duì)于32-帶解碼器(0-24kHz區(qū))和8-帶解碼器(24-48kHz)的編碼分出并分別送到它們各自的解碼級(jí)42和58中。用128-抽頭和512-抽頭的均勻內(nèi)插濾波器組60和44分別重構(gòu)8和32解碼子帶。用256-抽頭2-帶均勻內(nèi)插濾波器組62順序重組解碼子帶以便產(chǎn)生采樣速率為96kHz的單一PCM數(shù)字式聲信號(hào)。在需要解碼器以壓縮數(shù)據(jù)流一半的采樣速率工作的情況下,通過放棄高頻帶編碼數(shù)據(jù)(24-48kHz)和只將0-24kHz聲域內(nèi)的32-子帶解碼便可以方便地進(jìn)行上述操作。
通道編碼器在上述所有的編碼層中,32-帶編碼/解碼過程是針對(duì)聲帶寬度為0-24kHz間的基帶部分進(jìn)行的。如圖5所示,取幀器64劃定PCM聲道將其分成連續(xù)的數(shù)據(jù)幀66。PCM聲頻窗確定了連續(xù)輸入的樣本數(shù)量,相對(duì)該數(shù)量將在編碼過程中產(chǎn)生數(shù)據(jù)流形式的輸出幀。根據(jù)壓縮量,即傳輸速率與采樣速率之比來設(shè)定窗口尺寸,從而構(gòu)成每幀內(nèi)的編碼數(shù)據(jù)量。通過32-帶512-抽頭的FIR抽選濾波器組34把每個(gè)連續(xù)的數(shù)據(jù)幀66分成32個(gè)均勻頻帶68。緩沖每個(gè)子帶的樣本輸出并將其送到32-帶編碼級(jí)36。
分析級(jí)70(將在圖10-19中詳細(xì)描述)產(chǎn)生最佳預(yù)測(cè)系數(shù)、差分量化位分配和緩沖子帶樣本的最佳量化比例因數(shù)。分析級(jí)70還可以決定將對(duì)哪個(gè)子帶進(jìn)行矢量量化和在這些決定不確定時(shí)可以決定對(duì)誰進(jìn)行綜合頻率編碼。把該數(shù)據(jù)或邊信息向前送到選定的ADPCM級(jí)72、VQ級(jí)73或綜合頻率編碼(JFC)級(jí)74并送到數(shù)據(jù)多路轉(zhuǎn)換器32(壓縮器)。然后通過ADPCM或VQ步驟對(duì)子帶樣本進(jìn)行編碼并將量化編碼輸入到多路轉(zhuǎn)換器。JFC級(jí)74實(shí)際上并不對(duì)子帶樣本進(jìn)行編碼而是產(chǎn)生指示連接哪個(gè)通道的子帶和在何處將它們放入數(shù)據(jù)流中的編碼。將來自每個(gè)子帶的量化編碼和邊信息壓縮成數(shù)據(jù)流16并將其送入解碼器。
到達(dá)解碼器18時(shí),將數(shù)據(jù)流多路分配40或解壓縮使之回到各自的子帶。首先把比例因數(shù)和位分配與每個(gè)子帶的預(yù)測(cè)系數(shù)一起裝入逆量化器75中。然后直接利用ADPCM過程76或反向VQ過程77或指定子帶的反向JFC過程78重構(gòu)不同的編碼。最后用32-帶內(nèi)插濾波器組44把子帶合并成單一的PCM聲信號(hào)22。
PCM信號(hào)構(gòu)成的幀如圖6所示,當(dāng)傳輸速率相對(duì)于給定采樣速率發(fā)生變化時(shí),圖5中所示的取幀器64將改變窗口79的尺寸從而使構(gòu)成每個(gè)輸出幀的字節(jié)數(shù)量處于例如5.3K個(gè)字節(jié)和8K個(gè)字節(jié)之間。表1和表2分別是允許設(shè)計(jì)者選擇最佳窗口尺寸和解碼緩沖器尺寸(幀尺寸)以便給出采樣速率和傳輸速率的設(shè)計(jì)表。在低傳輸速率下,幀尺寸可以相對(duì)較大。這可以使編碼器能利用聲頻信號(hào)在整個(gè)時(shí)間內(nèi)的不平滑變化分布和改善聲碼器的特性。在高速率下,需減小幀尺寸以便使字節(jié)的總量不會(huì)溢出解碼緩沖器。結(jié)果,設(shè)計(jì)者可以提供具有8K字節(jié)RAM的解碼器以滿足所有傳輸速率。這將降低解碼器的成本。通常,聲頻窗口的尺寸由下式得出
其中幀尺寸是解碼緩沖器的尺寸,F(xiàn)samp是采樣速率,而Trate是傳輸速率。聲頻窗口的尺寸依聲道的數(shù)量而定。然而,隨著通道數(shù)的增加,壓縮量也必須增加以保持所需的傳輸速率。
表1Fsamp(kHz)Trate8-1216-2432-4864-96128-192≤512kbps10242048 4096 ★ ★≤1024kbps★ 1024 2048 ★ ★≤2048kbps★ ★ 1024 2048 ★≤4096kbps★ ★ ★ 1024 2048表2Fsamp(kHz)Trate8-1216-2432-4864-96128-192<512kbps 8-5.3k 8-5.3k 8-5.3k ★ ★<1024kbps★ 8-5.3k 8-5.3k ★ ★<2048kbps★ ★ 8-5.3k 8-5.3k ★<4096kbps★ ★ ★ 8-5.3k 8-5.3k子帶濾波從兩個(gè)多相濾波器組中選擇32-帶521-抽頭的均勻抽選濾波器組34把數(shù)據(jù)幀66分成圖5所示的32個(gè)均勻子帶68。兩個(gè)濾波器組具有以不同相對(duì)重構(gòu)精度交換使用子帶編碼增益的重構(gòu)特性。將一類濾波器稱為完全重構(gòu)(PR)濾波器。當(dāng)將PR抽選(編碼)濾波器和它的內(nèi)插(解碼)濾波器背對(duì)背放置時(shí),重構(gòu)信號(hào)是“完全”的,其中將完全定義為在24位時(shí)分辨率在0.5 Isb內(nèi)。另一類濾波器被稱為不完全重構(gòu)(NPR)濾波器,因?yàn)槠渲貥?gòu)信號(hào)具有與濾波過程中的不完全混疊抵消特性有關(guān)的非零噪聲底值。
圖7中分別示出了單個(gè)子帶的濾波器NPR和PR之傳輸函數(shù)82和84。由于NPR濾波器并不強(qiáng)制提供完全重構(gòu),所以它們具有比PR濾波器更大的近似帶阻抑制(NSBR)比,即,通帶與第一側(cè)波瓣之比(110d B比85dB)。如圖8所示,濾波器的側(cè)瓣使實(shí)際上處于第三子帶中的信號(hào)86混疊到相鄰的子帶上。子帶增益可檢測(cè)相鄰子帶中的信號(hào)抑制情況,并由此表明濾波器對(duì)聲信號(hào)的抗相關(guān)能力。由于NPR濾波器比PR濾波器具有更大的NSBR比,所以它們還將具有更大的子帶增益。結(jié)果,NPR濾波器提供了更好的編碼效果。
如圖9所示,隨著PR和NPR濾波器所有位速率的增加,壓縮數(shù)據(jù)流中的所有失真都將減小。然而,在低速率下,兩種濾波器之間子帶增益特性的差異大于與NPR濾波器有關(guān)的噪聲底值。因此,NPR濾波器的相關(guān)失真曲線90位于PR濾波器的相關(guān)失真曲線92之下。所以,在低速率下聲碼器選擇NPR濾波器組。從某些點(diǎn)94開始,編碼器的量化誤差降至NPR濾波器的噪聲底值之下,這時(shí)向ADPCM編碼器添加附加位并不會(huì)帶來更多好處。在這一點(diǎn)上,將聲碼器轉(zhuǎn)到PR濾波器組。
ADPCM編碼ADPCM編碼器72根據(jù)H預(yù)測(cè)重構(gòu)樣本產(chǎn)生預(yù)測(cè)樣本p(n)。然后從輸入的x(n)中減去該預(yù)測(cè)樣本,從而給出差分樣本d(n)。通過用RMS(或PEAK)比例因數(shù)除以這些差分樣本便可以對(duì)其進(jìn)行換算使得差分樣本的RMS幅值相與量化器特性曲線Q的RMS幅值相匹配。當(dāng)用為當(dāng)前樣本分配的位數(shù)ABIT進(jìn)行測(cè)定時(shí),把換算后的差分樣本ud(n)加到具有L層步長(zhǎng)SZ的量化器特性曲線上。量化器相對(duì)于每個(gè)經(jīng)換算的差分樣本ud(n)產(chǎn)生分層碼(levelcode)QL(n)。最后將這些分層碼傳送到解碼器ADPCM級(jí)。為了更新預(yù)測(cè)器歷史,用特性曲線與Q相一致的逆量化器1/Q對(duì)量化器的分層碼QL(n)進(jìn)行就地解碼以產(chǎn)生量化的換算差分樣本ud(n)。通過把樣本ud(n)與RMS(或PEAK)比例因數(shù)相乘可得到d(n)。通過把起始預(yù)測(cè)樣本p(n)與量化差分樣本d(n)相加便可重構(gòu)初始輸入樣本x(n)的量化類型x(n)。然后用該樣本更新預(yù)測(cè)器歷史。
矢量量化用矢量量化器(VQ)對(duì)預(yù)測(cè)系數(shù)和高頻子帶樣本進(jìn)行編碼。預(yù)測(cè)器VQ具有4個(gè)樣本的矢量值和每樣本三位的位速率。因此最終的代碼本由4096個(gè)4值代碼矢量構(gòu)成。對(duì)匹配矢量的搜索構(gòu)成兩層樹,樹中的每個(gè)節(jié)點(diǎn)具有64個(gè)分枝。頂層存儲(chǔ)64個(gè)只在編碼器中需要并能幫助完成搜索過程的節(jié)點(diǎn)代碼矢量。底層觸發(fā)4096個(gè)在編碼器和解碼器中都需要的最終代碼矢量。就每次搜索而言,需要進(jìn)行128次4值MSE計(jì)算。利用LBG方法并借助于超過5百萬個(gè)預(yù)測(cè)系數(shù)訓(xùn)練(training)矢量對(duì)頂層的代碼本和節(jié)點(diǎn)矢量進(jìn)行訓(xùn)練。相對(duì)于在對(duì)大量聲學(xué)材料進(jìn)行編碼時(shí)顯示出正向預(yù)測(cè)增益的所有子帶累積訓(xùn)練矢量。為了測(cè)試訓(xùn)練組中的矢量,需得到近似30dB的平均SNRs。
高頻VQ具有32個(gè)樣本的矢量值(子幀的長(zhǎng)度)其位速率為每個(gè)樣本0.3125位。因此最終的代碼本由1024個(gè)32值代碼矢量構(gòu)成。匹配矢量的搜索構(gòu)成兩層樹,樹中的每個(gè)節(jié)點(diǎn)具有32個(gè)分枝。頂層存儲(chǔ)32個(gè)只在編碼器中需要的節(jié)點(diǎn)代碼矢量。底層包含1024個(gè)在編碼器和解碼器中都需要的最終代碼矢量。就每次搜索而言,需要進(jìn)行64次32值MSE計(jì)算。利用LBG方法并借助于超過7百萬個(gè)高頻子帶樣本訓(xùn)練矢量對(duì)頂層的代碼本和節(jié)點(diǎn)矢量進(jìn)行訓(xùn)練。相對(duì)于對(duì)大量采樣速率為48kHz的聲學(xué)材料來說,根據(jù)子帶16-32的輸出來累積構(gòu)成矢量的樣本。在48kHz的采樣速率下,訓(xùn)練樣本代表12-24kHz范圍的聲頻。為了測(cè)量訓(xùn)練組中矢量,希望的是約3dB的平均SNR。雖然3dB是很小的SNR,但是其足以提供高頻保真度或高頻下的背景。這在感觀上要比簡(jiǎn)單降低高頻子帶的公知技術(shù)好得多。
綜合頻率編碼在應(yīng)用極低的位速率時(shí),通過只對(duì)來自兩個(gè)或多個(gè)聲道的高頻子帶信號(hào)之和進(jìn)行編碼,而不是對(duì)它們進(jìn)行獨(dú)立編碼可以改善重構(gòu)的保真度。由于高頻子帶通常具有相似的能量分布,而且由于人的聽覺系統(tǒng)主要對(duì)高頻分量的“強(qiáng)度”而不是對(duì)它們的細(xì)微構(gòu)成敏感,所以可以進(jìn)行綜合編碼。因此,由于在任何位速率下都可以得到更多的位數(shù)以對(duì)感觀上很重要的低頻進(jìn)行編碼所以重構(gòu)的平均信號(hào)能提供很好的綜合保真度。
將綜合頻率編碼指數(shù)(JOINX)直接傳送到解碼器中以指出哪個(gè)通道和子帶已經(jīng)聯(lián)合以及將編碼信號(hào)定位在數(shù)據(jù)流中的何處。解碼器重構(gòu)指定通道中的信號(hào)并將其復(fù)制到其它每個(gè)通道中。然后根據(jù)其特定的RMS比例因數(shù)對(duì)每個(gè)通道進(jìn)行轉(zhuǎn)換。由于綜合頻率編碼根據(jù)其相似的能量分布而平均了時(shí)間信號(hào),所以會(huì)降低重構(gòu)保真度。因此它的應(yīng)用通常限于低位速率場(chǎng)合和主要是針對(duì)10-20kHz的信號(hào)。在用于高位速率的媒體中,通常不可能實(shí)現(xiàn)綜合頻率編碼。
子帶編碼器在圖10中詳細(xì)地示出了利用ADPCM/APCM方法特別是通過圖5中所示分析級(jí)70和ADPCM編碼器72以及圖2中所示全位管理系統(tǒng)30的相互作用對(duì)單個(gè)子帶進(jìn)行編碼的編碼過程。圖11-19詳細(xì)描述了圖13中所述的各組成過程。濾波器組34把PCM聲信號(hào)14分成32個(gè)寫入各子帶采樣緩沖器96中的子帶信號(hào)x(n)。假設(shè)聲頻窗的尺寸為4096個(gè)樣本,每個(gè)子帶樣本緩沖器96存儲(chǔ)128個(gè)樣本的完整幀,把完整幀分成432個(gè)樣本子幀。1024個(gè)樣本的窗口尺寸產(chǎn)生單一的32個(gè)樣本子幀。把樣本x(n)送到分析級(jí)70以便確定每個(gè)子幀的預(yù)測(cè)系數(shù)、預(yù)測(cè)模式(PMODE)、瞬態(tài)模式(TMODE)和比例因數(shù)(SF)。另外還把樣本x(n)送到GBM系統(tǒng)30,其確定每個(gè)聲道中每個(gè)子帶的每個(gè)子幀的位分配(ABIT)。此后,使樣本x(n)轉(zhuǎn)入ADPCM編碼器72得到某一時(shí)刻的子幀。
對(duì)最佳預(yù)測(cè)系數(shù)的估計(jì)用對(duì)子帶樣本x(n)程序塊進(jìn)行優(yōu)化處理的標(biāo)準(zhǔn)自動(dòng)相關(guān)方法98,即根據(jù)Weiner-Hopf或Yule-Walker公式分別產(chǎn)生適合每個(gè)子幀的H,合適的是第四序列預(yù)測(cè)系數(shù)。
對(duì)最佳預(yù)測(cè)系數(shù)的量化優(yōu)選用上述的4-元素樹-搜索12-位矢量代碼本(每個(gè)系數(shù)3位)對(duì)每組四個(gè)預(yù)測(cè)系數(shù)進(jìn)行量化。12-位矢量代碼本包括4096個(gè)系數(shù)矢量,為了達(dá)到可能的理想分布而用標(biāo)準(zhǔn)群算法對(duì)這些系數(shù)矢量進(jìn)行優(yōu)化處理。矢量量化(VQ)搜索100選擇在系數(shù)矢量自身和最佳系數(shù)之間顯示出最低加權(quán)均方差的系數(shù)矢量。然后用這些“量化矢量”代替每個(gè)子幀的最佳系數(shù)。起反向作用的VQ LUT101向ADPCM編碼器72提供量化的預(yù)測(cè)系數(shù)。
對(duì)預(yù)測(cè)差值信號(hào)d(n)的估計(jì)對(duì)ADPCM來說一個(gè)很大的難題是在實(shí)際的遞歸程序72之前不能容易地預(yù)測(cè)差分樣本序列d(n)。對(duì)正向自適應(yīng)子帶ADPCM的基本要求是在進(jìn)行ADPCM編碼之前知道差分信號(hào)的能量,以便為將在重構(gòu)樣本時(shí)產(chǎn)生已知量化誤差或噪聲級(jí)的量化器計(jì)算出合適的位分配。還需要了解不同的信號(hào)能量以便在編碼之前確定最佳差分比例因數(shù)。
遺憾的是,差分信號(hào)能量不僅取決于輸入信號(hào)的特性而且還取決于預(yù)測(cè)器的性能。除了已知的限制例如預(yù)測(cè)器種類和預(yù)測(cè)系數(shù)最優(yōu)性之外,預(yù)測(cè)器性能還受在重構(gòu)樣本時(shí)引入的量化誤差程度或噪聲的影響。由于量化噪聲可通過最終的位分配ABIT和差分比例因數(shù)RMS(或PEAK)值本身來確定,所以估計(jì)差分信號(hào)的能量必須被迭代地抵達(dá)102。
步驟1.假設(shè)量化誤差為零通過使緩沖的子帶樣本x(n)經(jīng)歷不進(jìn)行差分信號(hào)量化的ADPCM程序而對(duì)第一差分信號(hào)進(jìn)行估計(jì)。這是在ADPCM編碼循環(huán)中通過不進(jìn)行量化而進(jìn)行RMS轉(zhuǎn)換來實(shí)現(xiàn)的。通過用這種方式估計(jì)差分信號(hào)d(n),可以從計(jì)算中消除比例因數(shù)和位分配值的影響。然而,由于使用了矢量量化的預(yù)測(cè)系數(shù),所以在程序中需考慮量化誤差對(duì)預(yù)測(cè)系數(shù)的影響。用反向VQ LUT104可以提供量化預(yù)測(cè)系數(shù)。為了進(jìn)一步提高評(píng)估預(yù)測(cè)器的精度,應(yīng)在計(jì)算之前把從現(xiàn)在的ADPCM預(yù)測(cè)器輸出的在前一程序塊結(jié)束時(shí)累積的歷史樣本復(fù)制到預(yù)測(cè)器中。由此可確保預(yù)測(cè)器在前一個(gè)輸入緩沖器的動(dòng)作結(jié)束時(shí)從現(xiàn)在的ADPCM預(yù)測(cè)器開始啟動(dòng)。
該估計(jì)過程ed(n)和實(shí)際程序d(n)之間的主要差別是忽略了量化噪聲對(duì)重構(gòu)樣本x(n)和對(duì)降低預(yù)測(cè)精度的影響。為了進(jìn)行多層次量化,通常要使噪聲較小(假設(shè)通過合適的轉(zhuǎn)換),因此實(shí)際的差分信號(hào)能量將與在估計(jì)時(shí)計(jì)算出的結(jié)果密切匹配。然而,當(dāng)量化層的數(shù)量較少時(shí),即當(dāng)進(jìn)行通常的低位速率聲碼時(shí),實(shí)際的預(yù)測(cè)信號(hào)和由其得出的差分信號(hào)能量將與估計(jì)信號(hào)明顯不同。這樣便產(chǎn)生了編碼噪聲底值,其與早先在自適應(yīng)位分配程序中預(yù)測(cè)的那些值不同。
盡管如此,預(yù)測(cè)特性的變化在應(yīng)用時(shí)或?qū)ξ凰俾实挠绊懖⒉幻黠@。因此,在不迭代的情況下可以用估計(jì)結(jié)果直接計(jì)算位分配和比例因數(shù)。如果存在這種可能性,即為子帶分配的是層數(shù)很少的量化器,則可以進(jìn)行附加改進(jìn)通過對(duì)差分信號(hào)能量作出仔細(xì)地全面估計(jì)來補(bǔ)償特性的損失。還可以根據(jù)量化層數(shù)的變化將全面估計(jì)分成不同層次以提高精度。
步驟2.用估計(jì)的位分配和比例因數(shù)進(jìn)行再計(jì)算一旦用第一估計(jì)差分信號(hào)得出了位分配(ABIT)和比例因數(shù)(SF),就可以通過用在ADPCM循環(huán)72中估計(jì)出的ABIT和RMS(或PEAK)值使下一個(gè)ADPCM估計(jì)程序運(yùn)行來測(cè)試它們的最佳性。當(dāng)進(jìn)行第一次估計(jì)時(shí),在開始計(jì)算之前從實(shí)際的ADPCM預(yù)測(cè)器上復(fù)制估計(jì)的預(yù)測(cè)歷史從而確保從相同的點(diǎn)上啟動(dòng)兩個(gè)預(yù)測(cè)器。在緩沖的輸入樣本全部經(jīng)過第二估計(jì)循環(huán)之后,把得到的每個(gè)子帶中的噪聲底值與在自適應(yīng)位分配程序中假設(shè)的噪聲底值進(jìn)行比較。通過修正位分配和/或比例因數(shù)可以補(bǔ)償任何明顯的差異。
每當(dāng)用最當(dāng)前的差分信號(hào)估計(jì)計(jì)算下一組位分配和比例因數(shù)時(shí),可以重復(fù)步驟2以便適當(dāng)?shù)馗纳拼┰阶訋Х植嫉脑肼暤字?。通常,如果比例因?shù)的變化大于近似值2-3dB,則需重新計(jì)算。此外,如果位分配違反了由心理聲學(xué)掩蔽程序或換言之mmse程序產(chǎn)生的信號(hào)-掩蔽比將會(huì)很危險(xiǎn)。一般說來,一次重復(fù)就足夠了。
子帶預(yù)測(cè)模型(PMODE)的計(jì)算為了提高編碼效率,在當(dāng)前子幀中的預(yù)測(cè)增益降到通過設(shè)定PMODE特征位而得到的閾值以下時(shí),控制器106可以獨(dú)立關(guān)掉預(yù)測(cè)程序。當(dāng)在對(duì)輸入樣本組進(jìn)行估計(jì)的階段測(cè)得的預(yù)測(cè)增益(輸入信號(hào)的能量與估計(jì)的差分信號(hào)能量之比)超出正閾值時(shí),PMODE特征位將置1。相反,如果測(cè)得的預(yù)測(cè)增益小于正閾值,ADPCM預(yù)測(cè)系數(shù)將在與所述子帶相應(yīng)的編碼器和解碼器中置0,而且各PMODE也置0。把預(yù)測(cè)增益閾值設(shè)定成使其等于傳輸預(yù)測(cè)系數(shù)矢量的總失真率。這是通過努力確保當(dāng)PMODE=1時(shí),使ADPCM程序的編碼增益總是大于或等于正向自適應(yīng)PCM(APCM)編碼程序的編碼增益來實(shí)現(xiàn)的。此外,通過把PMODE設(shè)定為零和預(yù)置預(yù)測(cè)系數(shù),就可以簡(jiǎn)便地將ADPCM程序恢復(fù)到APCM。
如果ADPCM編碼增益的變化對(duì)使用來說不是很重要,則可以在任何或所有子帶中使PMODEs置于高電平。相反,如果例如某些子帶不會(huì)馬上編碼,所用的位速率高得不需要用預(yù)測(cè)增益保持聲音的主觀質(zhì)量,信號(hào)的瞬態(tài)信息很多,或者在對(duì)聲音進(jìn)行剪輯時(shí)ADPCM編碼聲音的疊接特性曲線不能令人滿意,則將PMODES置于低電平。
在編碼器和解碼器的ADPCM程序中以等于線性預(yù)測(cè)器更新速率的速率傳送適合每個(gè)子帶的各預(yù)測(cè)模式。如果個(gè)別子帶具有任何與其編碼聲數(shù)據(jù)塊有關(guān)的預(yù)測(cè)系數(shù)矢量地址,則PMODE參數(shù)的用途是向解碼器傳送指示。當(dāng)在任何子帶中PMODE=1時(shí),數(shù)據(jù)流中將總是包含預(yù)測(cè)系數(shù)矢量地址。當(dāng)在任何子帶中PMODE=0時(shí),數(shù)據(jù)流中決不會(huì)包含預(yù)測(cè)系數(shù)矢量地址,而且在編碼器和解碼器的ADPCM級(jí)預(yù)測(cè)系數(shù)將置0。
PMODEs的計(jì)算始于根據(jù)第一估計(jì)級(jí),即假設(shè)沒有量化誤差時(shí),用得到的相應(yīng)緩沖估計(jì)差分信號(hào)能量分析緩沖子帶輸入信號(hào)能量。對(duì)輸入樣本x(n)和估計(jì)的差分樣本ed(n)分別進(jìn)行適合每個(gè)子帶的緩沖處理。緩沖器的尺寸等于包含在每個(gè)預(yù)測(cè)更新期內(nèi)的樣本數(shù),例如子幀的尺寸。然后按下列公式計(jì)算預(yù)測(cè)增益Pgain(dB)=20.0*Log10(RMSx(n)/RMSed(n))其中RMSx(n)=緩沖輸入樣本x(n)的均方根值,RMSed(n)=緩沖估計(jì)差分樣本ed(n)的均方根值。
就正的預(yù)測(cè)增益而言,差分信號(hào)是平均小于輸入信號(hào)的信號(hào),所以在相同的位速率下,用APCM中的ADPCM程序便可得到減小的重構(gòu)噪聲底值。就負(fù)增益而言,ADPCM編碼器使得差分信號(hào)平均大于輸入信號(hào),這使得在相同的位速率下ADPCM比APCM具有更高的噪聲底值。通常,能接通PMODE的預(yù)測(cè)增益閾值是正的,而且其將是一個(gè)考慮了因傳輸預(yù)測(cè)系數(shù)矢量地址而消耗的額外通道容量的值。
子帶瞬態(tài)變化模式(TMODE)的計(jì)算控制器106計(jì)算適合每個(gè)子帶中每個(gè)子幀的瞬態(tài)變化模式(TMODE)。TMODEs表示當(dāng)PMODE=1時(shí)估計(jì)差分信號(hào)ed(n)的緩沖器中或當(dāng)PMODE=0時(shí)輸入子帶信號(hào)x(n)的緩沖器中的比例因數(shù)和樣本數(shù)量??梢杂门c預(yù)測(cè)矢量地址相同的速率對(duì)TMODEs進(jìn)行更新和將其傳送到解碼器。瞬態(tài)變化模式的用處是降低信號(hào)瞬態(tài)變化時(shí)聽覺上的編碼“前回波”偽象。
將瞬態(tài)變化定義成在低幅值信號(hào)和高幅值信號(hào)之間的快速轉(zhuǎn)換。由于在子帶差分樣本塊的范圍內(nèi)進(jìn)行比例因數(shù)的平均,所以如果信號(hào)幅值的快速變化發(fā)生在程序塊內(nèi),即瞬間發(fā)生,那么算出的比例因數(shù)將比瞬態(tài)變化發(fā)生前低幅采樣時(shí)的最佳值大得多。因此在瞬態(tài)變化前的采樣中出現(xiàn)的量化誤差可能會(huì)很大。該噪聲可以前回波失真的形式被查出。
在實(shí)際中,用瞬態(tài)變化模式來改變平均塊長(zhǎng)度的子帶比例因數(shù)以抑制瞬態(tài)變化對(duì)在瞬態(tài)變化前進(jìn)行的差分采樣轉(zhuǎn)換的影響。這樣做的動(dòng)機(jī)是因?yàn)樵谌说穆犛X系統(tǒng)中存在固有預(yù)掩蔽現(xiàn)象,為此建議在出現(xiàn)瞬態(tài)變化時(shí),如果它的保持周期很短的話則應(yīng)在瞬態(tài)變化發(fā)生前對(duì)噪聲進(jìn)行掩蔽。
根據(jù)PMODE的值,把子帶樣本緩沖器x(n)的子幀等內(nèi)容或估計(jì)的差分緩沖器ed(n)的內(nèi)容復(fù)制到瞬態(tài)變化分析緩沖器中。在此,根據(jù)分析緩沖器的采樣尺寸把緩沖器的內(nèi)容均勻地分成2、3或4個(gè)子子幀。例如,如果分析緩沖器包括32個(gè)子帶樣本(21.3ms@1500Hz),則把緩沖器隔成每8個(gè)樣本中4個(gè)子子幀,在子帶采樣速率為1500Hz的情況下,時(shí)間分辨率為5.3ms。此外,如果分析窗由16個(gè)子帶樣本構(gòu)成,那么只需將緩沖器分成兩個(gè)具有相同時(shí)間分辨率的子子幀。
對(duì)每個(gè)子子幀內(nèi)的信號(hào)進(jìn)行分析并確定每個(gè)而不是第一個(gè)瞬變狀態(tài)。如果發(fā)現(xiàn)任何子子幀出現(xiàn)瞬變,則將相對(duì)于分析緩沖器即當(dāng)前子幀產(chǎn)生兩個(gè)獨(dú)立的比例因數(shù)。根據(jù)瞬變子子幀前面的子子幀中存在的樣本計(jì)算第一比例因數(shù)。根據(jù)同時(shí)存在于在前子子幀和瞬變子子幀中的樣本計(jì)算第二比例因數(shù)。
由于通過分析窗自身的啟動(dòng)可自動(dòng)抑制量化噪聲所以不計(jì)算第一子子幀的瞬變狀態(tài)。如果出現(xiàn)瞬變的子子幀多于一個(gè),則只考慮首先出現(xiàn)的那個(gè)子子幀。如果根據(jù)沒有檢測(cè)到瞬變子緩沖器,則只用分析緩沖器中的所有樣本計(jì)算一個(gè)比例因數(shù)。用這種方式,可以不采用包括瞬變樣本的比例因數(shù)值來轉(zhuǎn)換在時(shí)間上多于一個(gè)子子幀返回周期的早期采樣。由此,把預(yù)瞬變量化噪聲限制在子子幀周期。
瞬變聲明如果前一子緩沖器中的瞬變能量比超過瞬變閾值(TT),而且前一子子幀中的能量低于預(yù)瞬變閾值(PTT)則表明在子子幀中有瞬變。TT和PTT的值取決于位速率和所需的預(yù)回波的抑制程度。在查出的預(yù)回波失真與其它編碼偽象(如果有的話)的能級(jí)匹配之前,這些值通常是變化的。增加TT和/或減小PTT的值都將減小存在瞬變的子子幀的相似性,并由此降低與比例因數(shù)傳輸有關(guān)的位速率。相反,減小TT和/或增加PTT的值將使存在瞬變的子子幀的相似性增加,并由此增加與比例因數(shù)傳輸相關(guān)的位速率。
由于TT和PTT是相對(duì)于每個(gè)子帶分別設(shè)定的,所以在編碼器中瞬態(tài)檢測(cè)的靈敏度可以相對(duì)所有子帶獨(dú)立設(shè)定。例如,如果發(fā)現(xiàn)在高頻子帶中的預(yù)回波在感性上小于低頻子帶中的預(yù)回波,那么可以設(shè)定閾值來減小高頻子帶中出現(xiàn)的瞬變相似性。由于將TMODEs嵌入壓縮的數(shù)據(jù)流中,所以解碼器不必知道在編碼器中使用的瞬變檢測(cè)算法既可對(duì)TMODE信息進(jìn)行合適地解碼。
四種子緩沖器的結(jié)構(gòu)如圖11a所示,如果子帶分析緩沖器109中的第一子子幀108出現(xiàn)瞬變,或如果沒有檢測(cè)到瞬變子子幀,則TMODE=0。如果第二子子幀而不是第一子子幀出現(xiàn)瞬變,則TMODE=1。如果第三子子幀而不是第一或第二子子幀出現(xiàn)瞬變,則TMODE=2。如果只有第四子子幀出現(xiàn)瞬變則TMODE=3。
比例因數(shù)的計(jì)算如圖11b所示,當(dāng)TMODE=0時(shí),在所有子子幀上計(jì)算比例因數(shù)110。當(dāng)TMODE=1時(shí),在第一子子幀上計(jì)算第一比例因數(shù)和在所有在先的子子幀上計(jì)算第二比例因數(shù)。當(dāng)TMODE=2時(shí),在第一和第二子子幀上計(jì)算第一比例因數(shù)和在所有在先子子幀上計(jì)算第二比例因數(shù)。當(dāng)TMODE=3時(shí),在第一、第二和第三子子幀上計(jì)算第一比例因數(shù)而在第四子子幀上計(jì)算第二比例因數(shù)。
用TMODE進(jìn)行ADPCM編碼和解碼當(dāng)TMODE=0時(shí),在所有分析緩沖器即子幀工作期間用一個(gè)比例因數(shù)轉(zhuǎn)換子帶差分樣本,并將該比例因數(shù)傳送到解碼器以便進(jìn)行反向轉(zhuǎn)換。當(dāng)TMODE>0時(shí),用兩個(gè)比例因數(shù)轉(zhuǎn)換子帶差分樣本并將兩個(gè)比例因數(shù)傳送到解碼器。對(duì)于任何TMODE來說,用每個(gè)比例因數(shù)對(duì)在第一位置上產(chǎn)生的差分樣本進(jìn)行轉(zhuǎn)換。
子帶比例因數(shù)(RMS或PEAK)的計(jì)算根據(jù)相應(yīng)子帶的PMODE值,用估計(jì)的差分樣本ed(n)或輸入的子帶樣本x(n)來計(jì)算合適的比例因數(shù)(s)。在該計(jì)算中用TMODEs確定比例因數(shù)的數(shù)量并在緩沖器中識(shí)別相應(yīng)的子子幀。
RMS比例因數(shù)計(jì)算對(duì)第j個(gè)子帶而言,按下列公式計(jì)算rms比例因數(shù)當(dāng)TMODE=0時(shí),單個(gè)rms的值是RMSj=(Σn=1Led(n)2/L)0.5]]>其中L是子幀中的樣本數(shù)量。
當(dāng)TMODE>0時(shí),兩個(gè)rms值為RMS1j=(Σn=1ked(n)2/L)0.5]]>RMS2j=(Σn=1k+1ed(n)2/L)0.5]]>其中k=(TMODE*L/NSB),NSB是均勻子子幀的數(shù)量。
如果PMODE=0,則用輸入樣本xj(n)替換樣本edj(n)。
PEAK比例因數(shù)的計(jì)算就第j個(gè)子帶而言,按下列公式計(jì)算峰值比例因數(shù)當(dāng)TMODE=0時(shí),一個(gè)峰值是PEAKj=MAX(ABS(edj(n))),n=1,L當(dāng)TMODE>0時(shí),兩個(gè)峰值是PEAK1j=MAX(ABS(edj(n))),n=1,(TMODE*L/NSB)PEAK2j=MAX(ABS(edj(n))),n=(1+TMODE*L/NSB),L如果PMODE=0則用輸入樣本xj(n)替換樣本edj(n)。
PMODE、TMODE和比例因數(shù)的量化PMODEs的量化預(yù)測(cè)模式特征只有兩個(gè)值,通或斷,將其直接送到解碼器中作為1-位編碼。
TMODEs的量化瞬變模式特征最多具有4個(gè)值0、1、2和3,使用2-位無符號(hào)整數(shù)代碼字或在努力把TMODEs的平均字長(zhǎng)減到2位以下并選擇性地通過4-層熵表把上述值直接傳送到解碼器中。通常在采用低位率時(shí)為了節(jié)約位數(shù)而使用選擇性的熵編碼。
圖12中詳細(xì)示出的熵編碼程序112如下把j子帶的瞬變模式編碼TMODE(j)變換成多個(gè)(p)中度增加的4-層可變長(zhǎng)度代碼本,其中針對(duì)不同輸入的統(tǒng)計(jì)特性對(duì)每個(gè)代碼本進(jìn)行優(yōu)化。把TMODE的值轉(zhuǎn)換成4-層表114并計(jì)算116與每個(gè)表(NBp)有關(guān)的所有位的應(yīng)用。利用THUFF變址(index)選擇118在整個(gè)轉(zhuǎn)換過程中構(gòu)成最低位應(yīng)用的表格。從該表格中抽取轉(zhuǎn)換代碼VTMODE(j),并將其與THUFF變址字一道壓縮和送到解碼器。保持同組4-層反向表的解碼器利用THUFF變址使到來的可變長(zhǎng)度編碼VTMODE(j)進(jìn)入合適的表格進(jìn)行解碼使之回到TMODE變址。
子帶比例因數(shù)的量化為了將比例因數(shù)傳送到解碼器必須將它們量化成已知的編碼格式。在該系統(tǒng)中,利用均勻64-層對(duì)數(shù)特性、均勻128-層對(duì)數(shù)特性或可變速編碼的均勻64-層對(duì)數(shù)特性對(duì)比例因數(shù)進(jìn)行量化120。在兩種情況下,64-層量化器顯示的步長(zhǎng)為2.25dB,而128-層的步長(zhǎng)為1.25dB。64-層量化用于低的媒體位速率,附加的可變速率編碼用于使用低位速率的場(chǎng)合,而128-層通常用于高位速率。
圖13中示出了量化過程120。把從緩沖器121中讀出的比例因數(shù)、RMS或PEAK轉(zhuǎn)換成對(duì)數(shù)域122,然后根據(jù)編碼模式控制器128的判斷將其送到64-層或128-層均勻量化器124、126。然后把對(duì)數(shù)量化的比例因數(shù)寫入緩沖器130中。128-層和64-層量化器的范圍不同以便分別用近似為160dB和144dB的動(dòng)態(tài)范圍覆蓋比例因數(shù)。把128-層的上限設(shè)定為能覆蓋24-位輸入PCM數(shù)字式聲信號(hào)的動(dòng)態(tài)范圍。把64-層的上限設(shè)定為能覆蓋20-位輸入PCM數(shù)字式聲信號(hào)的動(dòng)態(tài)范圍。
把對(duì)數(shù)比例因數(shù)轉(zhuǎn)換到量化器并用最接近的量化層代碼RMSQL(或PEAKQL)代替比例因數(shù)。在使用64-層量化器的情況下,這些編碼為6-位長(zhǎng),其范圍為0-63。在使用128-層量化器的情況下,編碼長(zhǎng)度為7-位,其范圍為0-127。
通過把層代碼轉(zhuǎn)回到各逆量化特性并給出RMSq(或PEAKq)值便可簡(jiǎn)便地實(shí)現(xiàn)逆量化131。就ADPCM(或當(dāng)PMODE=0時(shí)為APCM)差分樣本的轉(zhuǎn)換而言,既在編碼器又在解碼器中使用量化比例因數(shù),由此可確保轉(zhuǎn)換和反向轉(zhuǎn)換過程相一致。
如果需要降低64-層量化器編碼的位速率,則要進(jìn)行附加熵或可變長(zhǎng)度的編碼。64-層編碼是從第二子帶(j=2)開始到最高現(xiàn)用子帶穿越j(luò)個(gè)子帶的第一階不同編碼132。該程序帶可以用于對(duì)PEAK比例因數(shù)進(jìn)行編碼。有符號(hào)的不同編碼DRMSQL(j)(或DPEAKQL(j))的最大范圍為+/-63而且將這些編碼存儲(chǔ)在緩沖器134中。為了在原始的6-位編碼上降低它們的位速率,把不同的編碼轉(zhuǎn)換成多個(gè)(p)127-層中度增加的可變長(zhǎng)度代碼本。相對(duì)于不同的輸入統(tǒng)計(jì)特性對(duì)每個(gè)代碼本進(jìn)行優(yōu)化。
除了使用p127-層可變長(zhǎng)度編碼表之外,對(duì)有符號(hào)的不同編碼進(jìn)行熵編碼的程序與圖12中所示瞬變模式中使用的熵編碼程序相同。利用SHUFF變址選擇在轉(zhuǎn)換過程中提供最低位應(yīng)用的表格。從該表格中抽出轉(zhuǎn)換的編碼VDRMSQL(j),將其與SHUFF變址字一道壓縮和傳送到解碼器。保持了同組(p)127-位反向表的解碼器,利用SHUFF變址把到來的可變長(zhǎng)度編碼送入合適的表中,以便對(duì)其進(jìn)行解碼使之回到不同的量化器編碼層。用下列程序使不同的編碼層再現(xiàn)成絕對(duì)值RMSQL(1)=DRMSQL(1)RMSQL(j)=DRMSQL(j)+RMSQL(j-1)j=2,…K而用下列程序使PEAK的不同編碼層再現(xiàn)成絕對(duì)值PEAKQL(1)=DPEAKQL(1)PEAKQL(j)=DPEAKQL(j)+PEAKQL(j-1)j=2,…K其中在兩種情況下K=現(xiàn)用子帶的數(shù)量。
全位分配如圖10所示的全位管理系統(tǒng)30管理位分配(ABIT),并確定適合多通道聲碼器的有源子帶(SUBS)和綜合頻率策略(JOINX)以及VQ策略,以便以較低的位速率提供主觀透明編碼。由此可在保持或提高聲音保真度的同時(shí)增加已被編碼并存儲(chǔ)在固定媒體上的聲道數(shù)量和/或演播時(shí)間。通常,GBM系統(tǒng)30首先根據(jù)用編碼器的預(yù)測(cè)增益修正的心理聲學(xué)分析結(jié)果將各位分配到每個(gè)子帶。然后根據(jù)mmse圖分配各剩余位以便降低所有噪聲底值。為了提高編碼效率,GBM系統(tǒng)同時(shí)在所有聲道、所有子帶上并穿越全部幀進(jìn)行位分配。此外,可以利用綜合頻率的編碼策略。用這種方式,系統(tǒng)可以利用在聲道、交叉頻率和整個(gè)時(shí)間之間非均勻分布的信號(hào)能量。
心理聲學(xué)分析用心理聲學(xué)測(cè)量法確定聲信號(hào)中與感性不相關(guān)的信息。把與感性不相關(guān)的信息定義為不能夠被人的聽覺聽到和能夠在時(shí)間域、頻率域或在其它一些背景下測(cè)量到的那部分聲信號(hào)。J.D.約翰斯頓(J.D.Johnston)“采用感性噪聲標(biāo)準(zhǔn)的聲信號(hào)轉(zhuǎn)換編碼”見《地方通信選編》中的IEEE刊物,第JSAC-6期,第2號(hào),第314~323頁,1988年2月,其中描述了心理聲學(xué)編碼的一般原理。
兩個(gè)主要因素將影響心理聲學(xué)測(cè)量。一個(gè)是適合于人的聽力且與頻率有關(guān)的絕對(duì)閾值。另一個(gè)是掩蔽效應(yīng),即人所能聽到的蓋位與其同時(shí)演奏或在其之后演奏的第二種聲音的一種聲音。換句話說,第一種聲音能阻止我們聽到第二種聲音,也就是說將其掩蔽掉。
在子帶編碼器中,心理聲學(xué)計(jì)算的最終結(jié)果是一組表示在某瞬間相對(duì)于每個(gè)子帶無聲量級(jí)的數(shù)碼。該計(jì)算方法是公知的而且在此將其與MPEG1壓縮標(biāo)準(zhǔn)ISO/IEC DIS 11172“信息技術(shù)-高達(dá)1.5Mbits/s數(shù)字式存儲(chǔ)媒體的運(yùn)動(dòng)圖象和相關(guān)聲音的編碼”1992相結(jié)合。這些數(shù)碼隨聲信號(hào)產(chǎn)生動(dòng)態(tài)變化。編碼器借助位分配程序調(diào)節(jié)子帶中的量化噪聲底值以便使這些子帶中的量化噪聲小于可聽范圍。
精確的心理聲學(xué)計(jì)算通常需要在時(shí)間與頻率的轉(zhuǎn)換中具備高頻率分辨率。這意味著需要較大的分析窗以便進(jìn)行時(shí)間頻率轉(zhuǎn)換。標(biāo)準(zhǔn)的分析窗尺寸是與壓縮聲數(shù)據(jù)的幀相應(yīng)的1024個(gè)樣本。長(zhǎng)度1024fft的頻率分辨率大致與人耳的瞬時(shí)分辨率匹配。
心理聲學(xué)模型的輸出是32個(gè)子帶中每一個(gè)子帶的信號(hào)-掩蔽(SMR)比。SMR表示個(gè)別子帶所承受的量化噪聲量,其還表示使子帶中的樣本量化所需的位數(shù)。具體地說,大的SMR(>>1)表示需要的位數(shù)很多,而小SMR(>0)則表示需要的位數(shù)很少。如果SMR<0,則聲信號(hào)處于噪聲掩蔽閾值之下,這時(shí)不需要量化位數(shù)。
如圖14所示,通常通過1)根據(jù)PCM聲樣本計(jì)算fft,優(yōu)選長(zhǎng)度為1024,得出一系列頻率系數(shù)142,2)根據(jù)與頻率有關(guān)的音質(zhì)和噪聲心理掩蔽針144對(duì)每個(gè)子帶進(jìn)行頻率系數(shù)卷積處理,3)對(duì)得到的每個(gè)子帶系數(shù)進(jìn)行平均得出SMR的量級(jí),和4)根據(jù)圖15中所示人的聽覺響應(yīng)146對(duì)SMRs進(jìn)行選擇性的歸一化處理。
當(dāng)頻率接近4KHz時(shí)人耳的靈敏度最高而隨著頻率的升高或降低靈敏度將下降。因此,要想感受相同的量級(jí),20kHz的信號(hào)顯然比4kHz的信號(hào)顯得過強(qiáng)。所以,通常,近似4kHz頻率的SMRs比遠(yuǎn)離該區(qū)域的頻率重要得多。然而,曲線的精確形狀與傳送給聽者的信號(hào)的平均功率有關(guān)。隨著電壓的增加,聽覺響應(yīng)146受到壓制。因此,在其它電壓下將對(duì)特定電壓的優(yōu)化系統(tǒng)進(jìn)行次優(yōu)化。結(jié)果是,或者選擇標(biāo)準(zhǔn)功率級(jí)以便對(duì)SMR進(jìn)行歸一化處理或者是不進(jìn)行歸一化處理。圖16中示出了得到的32個(gè)子帶的SMRs148。
位分配程序不管JFC是否能實(shí)現(xiàn),GBM系統(tǒng)30首先選擇用VQ和ADPCM算法對(duì)子帶進(jìn)行編碼時(shí)應(yīng)采用的合適編碼策略。因此,GBM系統(tǒng)將選擇心理聲學(xué)或者是MMSE位分配方法。例如,在高位速率下,系統(tǒng)可能無法使用心理聲學(xué)模式而使用有效的mmse分配系統(tǒng)。這樣可以在當(dāng)重構(gòu)聲信號(hào)中沒有任何感性變化的情況下降低計(jì)算的復(fù)雜性。相反,在低速率下,系統(tǒng)能夠激活上述綜合頻率編碼系統(tǒng)從而提高在低頻下的重構(gòu)保真度。GBM系統(tǒng)能夠根據(jù)逐幀基礎(chǔ)上信號(hào)的瞬變信息在正常的心理聲學(xué)分配和mmse分配之間轉(zhuǎn)換。當(dāng)瞬變信息量較大時(shí),在計(jì)算SMRs時(shí)使用的穩(wěn)態(tài)假設(shè)就不再是真實(shí)的,因此mmse圖可以提供較好的特性。
就心理聲學(xué)分配而言,GBM系統(tǒng)首先分配有效位以滿足達(dá)到心理聲學(xué)效果的條件,然后對(duì)剩余位進(jìn)行分配以便降低所有的噪聲底值。第一步是確定上述當(dāng)前幀的每個(gè)子帶之SMRs。下一步是調(diào)節(jié)各子帶中預(yù)期增益(Pgain)的SMRs從而形成掩蔽-噪聲定量比(MNRs)。原則上ADPCM編碼器將提供一部分所需的SMR。所以用極少的位數(shù)便可得到聽不到的心理聲學(xué)噪聲級(jí)。
假設(shè)PMODE=1,則第j個(gè)子帶的MNR由下式給出MNR(j)=SMR(j)-Pgain(j)*PEF(ABIT)其中PEF(ABIT)是量化器的預(yù)測(cè)有效因數(shù)。為了計(jì)算MNR(j),設(shè)計(jì)者必須估計(jì)位分配(ABIT)情況,這可以通過只在SMR(j)的基礎(chǔ)上進(jìn)行位分配或通過假設(shè)PEF(ABIT)=1而完成。在高位速率的媒體上,有效預(yù)測(cè)增益近似等于計(jì)算的預(yù)測(cè)增益。然而,在低位速率下,有效預(yù)測(cè)增益將降低。用例如5-層量化器得到的有效預(yù)測(cè)增益近似為估計(jì)預(yù)測(cè)增益的0.7倍,而65-層量化器則使有效預(yù)測(cè)增益近似等于估計(jì)的預(yù)測(cè)增益,PEF=1.0。在此范圍內(nèi),當(dāng)位速率為零時(shí),實(shí)際上無法進(jìn)行預(yù)測(cè)編碼而且有效預(yù)測(cè)增益為零。
在下一步驟中,GBM系統(tǒng)30生成滿足每個(gè)子帶之MNR的位分配系統(tǒng)。這是利用1位等于6dB信號(hào)失真的近似值而實(shí)現(xiàn)的。為了確保編碼失真小于心理聲學(xué)聽覺閾值,而使位速率是用6dB除以MNR得到的最大整數(shù)。其由下式給出 通過用這種方式進(jìn)行位分配,重構(gòu)信號(hào)中的噪聲級(jí)156將如圖17所示隨信號(hào)本身157而變化。因此,在信號(hào)很強(qiáng)的頻率下,噪聲級(jí)將比較高,但仍將保持在聽力范圍之外。在信號(hào)比較弱的頻率下,噪聲底值將很小且不會(huì)被聽到。與這種心理聲學(xué)模式相關(guān)的平均誤差總是大于mmse噪聲級(jí)158,但是其音響特性較好,特別是在低位速率下更是如此。
在所有聲道每個(gè)子帶上分配的位數(shù)總和大于或小于目標(biāo)位速率的情況下,GBM程序?qū)⒌鷾p小或增加各子帶的位分配。此外,可計(jì)算每個(gè)聲道的目標(biāo)位速率。這雖然是亞最佳的但極易于用硬件實(shí)現(xiàn)。例如,有效位可以在聲道中均勻地分布或是與每個(gè)通道的平均SMR或RMS均衡分布。
在包含VQ碼位和邊信息的局部位分配總和超過目標(biāo)位速率的情況下,全位管理程序?qū)⒅饾u降低局部子帶的位分配。有多種技術(shù)可用于降低平均位速率。首先,可以通過最大整數(shù)運(yùn)算對(duì)入位的位速率進(jìn)行舍位。然后從具有最小MNRs的子帶中取出一位。此外,可以截?cái)喔哳l子帶或進(jìn)行綜合頻率編碼。所有位速率降低策略均遵循用合適的方式逐漸降低編碼分辨率的基本原則,所述方式首先引入感覺上最少唐突(offensive)感的策略和最后使用最唐突的策略。
在目標(biāo)位速率大于包含VQ編碼位和邊信息之局部位分配總和的情況下,全位管理程序?qū)⒅饾u地和迭代地增加局部子帶位分配,以便降低重構(gòu)信號(hào)的全部噪聲底值。這樣可以對(duì)已經(jīng)預(yù)先分配了零位的子帶進(jìn)行編碼。如果能夠采用PMODE的話,可能需要用這種方式得到在‘接通’的子帶中的總位數(shù)以便反映出在傳輸任何預(yù)測(cè)系數(shù)時(shí)的成本。
GBM程序能夠選擇三個(gè)不同系統(tǒng)中的一個(gè)以便分配剩余位。一種選擇是用對(duì)所有位進(jìn)行再分配以便使噪聲底值近似平坦的mmse方法。這等于不能使用最初的心理聲學(xué)模型。為了得到mmse噪聲底值,在用完所有位之前應(yīng)使圖18a中示出的子帶RMS值的圖160的上邊如圖18b所示向下轉(zhuǎn)并“注水(waterfilled)”。將這種公知技術(shù)稱為注水是因?yàn)殡S著分配位數(shù)量的增加失真度均勻降低。在圖中所示的例子中,把第一位分配給子帶1,把第二和第三位分配給子帶1和2,把第四至第七位分配給子帶1、2、4和7,等等。此外,還在每個(gè)子帶上分配一位以保證對(duì)每個(gè)子帶進(jìn)行編碼,此后將剩余位注水。
其次,優(yōu)選的選擇是按照上述mmse方法和RMS圖來分配剩余位。這種方法的效果是能在保持與心理聲學(xué)掩蔽有關(guān)的形狀的同時(shí)均勻降低圖17中所示的噪聲底值157。在心理聲學(xué)和mse失真之間提供了一種很好的折衷方案。
第三種方法是在適用于子帶的RMS和MNR值之間的差值圖的情況下用mmse方法分配剩余位。這種方法的效果是可以在位速率增加時(shí)將噪聲底值的形狀平滑地從最佳心理聲學(xué)形狀157變?yōu)樽罴?平緩的)mmse形狀158。在這些系統(tǒng)的任何一種系統(tǒng)中,如果相對(duì)于源PCM來說任何子帶中的編碼誤差低于0.5LSB,就不會(huì)將更多的位分配到該子帶中??梢杂眠x擇性固定的子帶位分配的最大值來限定分配到特定子帶的最大位數(shù)。
在上面討論的編碼系統(tǒng)中,我們已經(jīng)假設(shè)每個(gè)采樣的平均位速率是固定的而且形成了重構(gòu)聲信號(hào)最大保真度的位分配。此外,失真度、mse或感覺是固定的而且允許位速率變到滿足失真度的條件。在mmse方法中,在滿足失真度條件之前將RMS圖簡(jiǎn)單地注水。將根據(jù)子帶的RMS層改變所需的位速率。在心理聲學(xué)方法中,進(jìn)行位分配以滿足各MNRs。結(jié)果,將根據(jù)各SMRs和預(yù)測(cè)增益改變位速率。這種分配目前不是最有用的,因?yàn)楝F(xiàn)代的解碼器均以固定的速率工作。然而,實(shí)際上在不久的將來可以用交替?zhèn)鬟f系統(tǒng)例如ATM或隨機(jī)存取存儲(chǔ)媒體進(jìn)行可變速率編碼。
位分配變址(ABIT)的量化在全位管理過程中,通過自適應(yīng)位分配程序可以相對(duì)于每個(gè)子帶和每個(gè)聲道產(chǎn)生位分配變址(bit allocation indexes)(ABIT)。在編碼器中變址的目的在于指示圖10中所示量化差值信號(hào)以便在解碼的聲音中得到主觀最佳重構(gòu)噪聲底值所需層(levels)162的數(shù)量。在解碼器中解碼的目的是指示逆量化所需的層數(shù)。相對(duì)于每個(gè)分析緩沖器產(chǎn)生變址而且變址值的范圍為0-27。變址值、量化層的數(shù)目和近似的最終差分子帶SNQR之間的關(guān)系示于表3中。
表3ABIT變址量化層的數(shù)目編碼長(zhǎng)度(位)SNQR(dB)0 0 0 -1 3 可變的 82 5 可變的 123 7(或8) 可變的(或3) 164 9 可變的 195 13 可變的 216 17(或16) 可變的(或4) 247 25 可變的 278 33(或32) 可變的(或5) 309 65(或64) 可變的(或6) 3610 129(或128) 可變的(或7) 4211256 8 4812512 9 5413102410 6014204811 6615409612 7216819213 781716384 14 841832768 15 901965536 16 9620131072 17 10221262144 18 10822524268 19 114231048576 20 120242097152 21 126254194304 22 132268388608 23 138271677721624 144
可以用4-位不帶符號(hào)的整數(shù)編碼字、5-位不帶符號(hào)的整數(shù)編碼字或12-層熵表將位分配變址(ABIT)直接傳輸?shù)浇獯a器。通常,可以在低位速率場(chǎng)合下使用熵編碼以進(jìn)行位的保存。ABIT編碼的方法是通過在編碼器中進(jìn)行模式控制而設(shè)定的并將編碼送到解碼器。熵編碼166把ABIT變址標(biāo)到特定的代碼本上,所述代碼本是用圖12所示的程序并借助于12-層ABIT表通過BHUFF變址和代碼本中的特定碼VABIT進(jìn)行識(shí)別的。
全位速率控制由于可以用熵的可變長(zhǎng)度代碼本選擇性地對(duì)邊信息和差分子帶樣本進(jìn)行編碼,所以當(dāng)以固定的速率傳輸壓縮的比特流時(shí)必須用某些機(jī)構(gòu)來調(diào)節(jié)編碼器最終的位速率。由于一旦開始計(jì)算通常就不再需要改變邊信息,所以在滿足速率抑制條件之前最好通過迭代改變ADPCM編碼器中的差分子帶樣本量化程序來實(shí)現(xiàn)位速率的調(diào)節(jié)。
在上述系統(tǒng)中,圖10中的全速率控制(GRC)系統(tǒng)178調(diào)節(jié)位速率,其通過改變分層碼值的統(tǒng)計(jì)學(xué)分布而形成把量化層碼轉(zhuǎn)換成熵表的程序。熵表顯示了層碼值越大碼長(zhǎng)越長(zhǎng)的相似趨勢(shì)。在這種情況下,平均位速率隨低值編碼層的增加而降低,反之亦然。在ADPCM(或APCM)量化程序中,比例因數(shù)的大小確定了分層編碼值的分布或使用。例如,隨著比例因數(shù)大小的增加差分采樣將在較低層上量化,因此編碼值將逐漸變小。這樣,將轉(zhuǎn)而產(chǎn)生較小的商編碼字長(zhǎng)和較低的位速率。
這種方法的優(yōu)點(diǎn)是通過增加比例因數(shù)的大小把子帶采樣中的重構(gòu)噪聲也提高到相同的水平。然而實(shí)際上,對(duì)比例因數(shù)的調(diào)節(jié)通常不大于1dB-3dB。如果需要進(jìn)行較大的調(diào)整,則最好是返回到位分配和減少所有的位分配而不要冒因使用升高的比例因數(shù)可能在子帶中出現(xiàn)可聽到量化噪聲的危險(xiǎn)。
在重復(fù)ADPCM編碼循環(huán)的情況下,為了調(diào)節(jié)熵編碼的ADPCM位分配,將每個(gè)子帶的預(yù)測(cè)歷史樣本存儲(chǔ)在臨時(shí)緩沖器中。此外,利用從子帶LPC分析推出的預(yù)測(cè)系數(shù)AH以及比例因數(shù)RMS(或PEAK)、量化位分配ABIT、瞬變模式TMODE、和從估計(jì)的差分信號(hào)中推出的預(yù)測(cè)模式PMODE通過完整的ADPCM程序?qū)λ凶訋Р蓸泳彌_器進(jìn)行編碼。將最終的量化層編碼緩沖并轉(zhuǎn)換到熵的可變長(zhǎng)度代碼本上,這顯示出再次使用位分配變址確定代碼本大小的最低位應(yīng)用。
隨后,GRC系統(tǒng)利用在所有變址上的相同位分配變址分析每個(gè)子帶使用的位數(shù)。例如,當(dāng)ABIT=1時(shí),全位管理中位分配計(jì)算假設(shè)的平均速率是每個(gè)子帶樣本為1.4(即,假設(shè)在最佳層碼幅值分布的情況下熵編碼本的平均速率)。如果在ABIT=1時(shí)所有子帶使用的全部位數(shù)大于1.4/(子帶采樣的總數(shù)),那么所有這些子帶的比例因數(shù)都將增加從而使位速率受影響而下降。在存取所有ABIT變址速率之前,最好是不作出調(diào)節(jié)子帶比例因數(shù)的決定。由此,用低于位分配程序中假設(shè)的位速率進(jìn)行變址可以補(bǔ)償用高于位分配程序的位速率進(jìn)行的變址。這種估計(jì)可擴(kuò)展到所有合適的聲道中。
為降低所有位速率而建議的程序是以超過閾值的最低ABIT變址位速率開始并增加具有這種位分配的每個(gè)子帶中的比例因數(shù)。實(shí)際位的應(yīng)用減少了當(dāng)這些子帶最初處于分配的正常速率之上時(shí)的位數(shù)。如果變化后使用的位數(shù)仍然超出允許的最大值,那么下一個(gè)使用位數(shù)超出正常值的最高ABIT變址的子帶比例因數(shù)將會(huì)增加。這個(gè)程序連續(xù)進(jìn)行直到使用的位數(shù)變到最大值以下為止。
一旦達(dá)到這一目的,就將舊的歷史數(shù)據(jù)裝入預(yù)測(cè)器中并且重復(fù)已經(jīng)改變了其比例因數(shù)的那些子帶的ADPCM編碼程序72。此后,將層編碼再次轉(zhuǎn)換成最佳熵代碼本并重新計(jì)算使用的位數(shù)。如果使用的所有位中仍有超過正常速率的,那么要進(jìn)一步增大比例因數(shù)并且重復(fù)進(jìn)行上述循環(huán)。
改變比例因數(shù)的方式有兩種。第一種是向解碼器傳輸每個(gè)ABIT變址的調(diào)整系數(shù)。例如2-位的字能夠發(fā)出調(diào)整范圍約為0、1、2和3dB的信號(hào)。由于采用ABIT變址的所有子帶都使用相同的調(diào)整系數(shù),所以只有變址1-10可以使用熵碥碼,對(duì)于所有子帶來說需要傳輸?shù)恼{(diào)整系數(shù)的最大數(shù)目是10。此外,通過選擇高量化層可以改變每個(gè)子帶中的比例因數(shù)。然而,由于比例因數(shù)量化器的步長(zhǎng)分別為1.25和2.5dB,所以比例因數(shù)的調(diào)節(jié)限于這些步內(nèi)。然而,當(dāng)使用這些技術(shù)時(shí),如果能夠進(jìn)行熵編碼的話,則需要重新計(jì)算比例因數(shù)的差分編碼和最終使用的位數(shù)。
一般說來,例如當(dāng)位速率低于所需的位速率時(shí),可以使用同樣的程序來增加位速率。在這種情況下,將減小比例因數(shù)以強(qiáng)制進(jìn)行差分采樣從而大量地使用更外側(cè)的量化層,并因此而使用熵表中更長(zhǎng)的代碼字。
如果在合適的迭代數(shù)內(nèi)或在傳輸比例因數(shù)調(diào)節(jié)系數(shù)的情況下不能減少位分配變址使用的位數(shù),則調(diào)節(jié)的步數(shù)就已經(jīng)達(dá)到極限,隨后可進(jìn)行二次修正。首先,可以增加正常速率范圍內(nèi)的子帶比例因數(shù),由此降低整體位速率。此外,可以中止所有ADPCM編碼程序并重新計(jì)算穿越子帶的自適應(yīng)位分配,這時(shí)使用極少的位數(shù)。
數(shù)據(jù)流格式化圖10所示的多路轉(zhuǎn)換器32壓縮每個(gè)通道的數(shù)據(jù)然后把每個(gè)通道的壓縮數(shù)據(jù)多路轉(zhuǎn)換成輸出幀以形成數(shù)據(jù)流16。設(shè)計(jì)壓縮和多路轉(zhuǎn)換數(shù)據(jù)的方法,即圖19所示的幀格式使得聲碼器可以在較寬范圍內(nèi)使用并能擴(kuò)展到更高的采樣頻率,限制每幀內(nèi)的數(shù)據(jù)量可以在每個(gè)子子幀獨(dú)立地開始播放從而減少等待時(shí)間和降低解碼誤差。
如圖所示,單個(gè)幀186(4096 PCM采樣/ch)確定了有足夠信息駐留以對(duì)聲頻塊進(jìn)行適當(dāng)解碼的比特流邊界,該單個(gè)幀由4個(gè)子幀188(1024 PCM采樣/ch)構(gòu)成,而每個(gè)子幀又由4個(gè)子子幀190(256 PCM采樣/ch)構(gòu)成。在每個(gè)聲頻幀開始時(shí)置入幀同步字192。幀標(biāo)題信息194主要形成與幀186的結(jié)構(gòu)和編碼器的結(jié)構(gòu)有關(guān)的信息,所述編碼器產(chǎn)生比特流和各種選擇操作特征,例如嵌入的動(dòng)態(tài)范圍控制和時(shí)間碼。如果需要下行混合、如果進(jìn)行了動(dòng)態(tài)距離補(bǔ)償和如果在數(shù)據(jù)流中包含輔助數(shù)據(jù)字節(jié)的話,選擇的標(biāo)題信息196將通知解碼器。聲碼標(biāo)題198表示在編碼器中使用以便對(duì)編碼的‘邊信息’即位分配、比例因數(shù)、PMODES、TMODES、代碼本等進(jìn)行組合的壓縮裝置和編碼格式。剩余的幀由SUBFS串行聲頻子幀188構(gòu)成。
每個(gè)子幀均以聲碼邊信息開始,該信息使得與用于把聲頻壓縮到解碼器的多個(gè)鍵盤編碼系統(tǒng)相關(guān)的信息滯后。這些信息包括瞬變檢測(cè)、預(yù)測(cè)編碼、自適應(yīng)位分配、高頻矢量量化、強(qiáng)度編碼和自適應(yīng)轉(zhuǎn)換。可以用上述編碼標(biāo)題信息從數(shù)據(jù)流中對(duì)這些數(shù)據(jù)中的很多數(shù)據(jù)進(jìn)行解壓縮。高頻VQ編碼陣列202包括用VQSUB變址表示的每個(gè)高頻子帶中的10-位變址。也可以選擇低頻效應(yīng)陣列204,其表示可用于驅(qū)動(dòng)例如次低音揚(yáng)聲器的極低頻數(shù)據(jù)。
用霍夫曼/固定逆量化器對(duì)聲頻陣列206進(jìn)行解碼并將其分成多個(gè)子子幀(SSC),每次解碼達(dá)到每個(gè)聲道256 PCM個(gè)樣本。只有當(dāng)采樣頻率大于48kHz時(shí)才會(huì)出現(xiàn)過采樣208。為了保持兼容,在采樣速率高于48kHz時(shí)不能工作的解碼器應(yīng)當(dāng)跳過該聲數(shù)據(jù)陣列。用DSYNC210來改變聲幀中子幀的結(jié)束位置。如果該位置無法改變,則表明子幀中的聲解碼不可靠。結(jié)果,要么對(duì)幀進(jìn)行噪聲抑制要么重復(fù)前一幀。
子帶解碼器圖20是子帶采樣編碼器18的方框圖。解碼器與編碼器相比相當(dāng)簡(jiǎn)單而且并不包括對(duì)重構(gòu)聲頻例如位分配的質(zhì)量來說很重要的計(jì)算。在用解壓器40對(duì)壓縮的聲數(shù)據(jù)流16進(jìn)行同步解壓之后,進(jìn)行檢測(cè)和如果需要的話校正因傳輸而引入的誤差,并且把數(shù)據(jù)多路分配到各聲道中。把子帶差分信號(hào)量化成PCM信號(hào)和對(duì)每個(gè)聲道進(jìn)行反向?yàn)V波以便把信號(hào)轉(zhuǎn)回到時(shí)間域。
接收聲幀和標(biāo)題解壓在編碼器中將編碼數(shù)據(jù)流壓縮(或幀)而且在每幀中包括可與真實(shí)聲碼本身分離且用于使解碼器同步、進(jìn)行誤差檢測(cè)和校正、聲碼狀態(tài)標(biāo)記和對(duì)邊信息進(jìn)行編碼的附加數(shù)據(jù)流。解壓器40檢測(cè)SYNC字并抽取幀尺寸FSIZE。編碼的比特流構(gòu)成串行的聲幀,每個(gè)幀都以32-位(0x7ffe8001)同步字(SYNC)開始。從下列同步字的字節(jié)中抽取聲幀的實(shí)際尺寸FSIZE。這樣便允許編程員設(shè)定‘幀結(jié)束’定時(shí)器以便減少軟件的輔助操作。接著抽取NBlks使解碼器計(jì)算聲頻窗口尺寸(32(Nblks+1))。由此通知解碼器抽取了什么樣的邊信息和產(chǎn)生了多少重構(gòu)樣本。只要接收到幀標(biāo)題字節(jié)(sync,ftype,surp,nblks,fsize,amode,sfreq,rate,mixt,dynf,dynct,time,auxcnt,Iff,hflag),就可以用Reed Solomon檢驗(yàn)字節(jié)HCRC檢驗(yàn)第一個(gè)12字節(jié)的真實(shí)性。這些程序?qū)⑿U?4字節(jié)之外的1個(gè)錯(cuò)誤字節(jié)或標(biāo)出2個(gè)錯(cuò)誤字節(jié)。在完成了誤差檢驗(yàn)之后,用標(biāo)題信息更新解碼器標(biāo)記。
可以抽取下列選擇信息標(biāo)題(filts,vernum,chist,pcmr,unspec)內(nèi)的HCRC并用其來更新解碼器標(biāo)記。由于該信息將不會(huì)逐幀改變,所以可以用多數(shù)表決系統(tǒng)來補(bǔ)償位誤差??梢允褂眠x擇ReedSolomon檢驗(yàn)字節(jié)OCRC改變選擇數(shù)據(jù)。
只需要在每幀中傳輸聲碼幀標(biāo)題(shbfs,subs,chs,vqsub,joinx,thuff,shuff,bhuff,sel5,sel7,sel9,sel13,sel17,sel25,sel33,sel65,sel129,ahcrc)??梢允褂寐昍eed Solomon檢驗(yàn)字節(jié)AHCRC改變這些標(biāo)題。相對(duì)于由CHS確定的每個(gè)聲道重復(fù)大多數(shù)標(biāo)題。
解壓縮子幀編碼邊信息將聲碼幀分成多個(gè)子幀(SUBFS)。所述子幀包括所需要的所有邊信息(pmode,pvq,tmode,scales,abits,hfreq)以便在與任何其它子幀無關(guān)的情況下對(duì)每個(gè)聲子幀進(jìn)行編碼。通過首先對(duì)其邊信息進(jìn)行解碼對(duì)每個(gè)連續(xù)的子幀進(jìn)行解碼。
相對(duì)于每一個(gè)有源子帶和穿過所有聲道傳輸1-位預(yù)測(cè)模式(PMODE)標(biāo)記。PMODE標(biāo)記對(duì)當(dāng)前子幀有效。 PMODE=0意味著預(yù)測(cè)系數(shù)不包含在該子帶的聲幀中。在這種情況下,在該子幀期間使這個(gè)頻帶中的預(yù)測(cè)系數(shù)置零。PMODE=1意味著邊信息包含該子帶的預(yù)測(cè)系數(shù)。在這種情況下,在子幀期間抽取預(yù)測(cè)系數(shù)并將其安裝在它的預(yù)測(cè)器中。
相對(duì)于pmode陣列中的每個(gè)PMODE=1而言,相應(yīng)的預(yù)測(cè)系數(shù)VQ尋址變址(address index)位于陣列PVQ中。變址固定于不帶符號(hào)的12-位整數(shù)字上并且通過把12-位整數(shù)轉(zhuǎn)換成矢量表266可以從查尋表中抽取4個(gè)預(yù)測(cè)系數(shù)。
位分配變址(ABIT)表示在逆量化器中的層數(shù),逆量化器把子帶聲碼轉(zhuǎn)回到絕對(duì)值。解壓縮格式不同于每個(gè)聲道中的ABITs,其與BHUFF變址和特定的VABIT碼256相關(guān)。
用瞬變模式邊信息(TMODE)238表示在每個(gè)子帶中相對(duì)于子幀的瞬變位置。將每個(gè)子幀分成1-4個(gè)子子幀。就子帶樣本而言,每個(gè)子子幀由8個(gè)樣本構(gòu)成。最大子幀尺寸是32個(gè)子帶樣本。如果瞬變發(fā)生在每一個(gè)子子幀內(nèi),則tmode=0。當(dāng)tmode=1時(shí)表示瞬變出現(xiàn)在第二子子幀內(nèi),以此類推。為了控制例如前回波等瞬變失真,在TMODE大于零的情況下向子幀子帶傳輸兩個(gè)比例因數(shù)。從聲標(biāo)題中抽取THUFF變址以確定對(duì)TMODEs進(jìn)行解碼所需的方法。當(dāng)THUFF=3時(shí),將TMODEs解壓縮成不帶符號(hào)的2-位整數(shù)。
傳輸比例因數(shù)變址以便在每個(gè)子幀內(nèi)對(duì)子帶聲碼進(jìn)行適當(dāng)轉(zhuǎn)換。如果TMODE等于零,則傳輸一個(gè)比例因數(shù)。如果對(duì)于所有子帶來說TMODE都大于零,那么同時(shí)傳輸兩個(gè)比例因數(shù)。通過從聲標(biāo)題中抽取SHUFF變址240可確定對(duì)每個(gè)獨(dú)立聲道進(jìn)行SCALES解碼所需的方法。VDRMSQL變址確定RMS比例因數(shù)的值。
在特定模式下,選用五個(gè)129層帶符號(hào)的霍夫曼逆量化器對(duì)SCALES變址進(jìn)行解壓縮。然而,要對(duì)最終的逆量化變址進(jìn)行不同的編碼并將其轉(zhuǎn)換成下列絕對(duì)值A(chǔ)BS_SCALE(n+1)=SCALES(n)-SCALES(n+1),其中n是在聲道中從第一子帶開始的第n個(gè)差分比例因數(shù)。
在低位速率聲碼模式下,聲碼器利用矢量量化直接對(duì)高頻子帶聲樣本進(jìn)行有效編碼。在這些子帶中使用非差分編碼和必須使所有與正常ADPCM程序有關(guān)的陣列保持復(fù)位。用VQSUB表示利用VQ編碼的第一子帶并用這種方式對(duì)SUBS以內(nèi)的所有子帶進(jìn)行編碼。
借助固定的10-位不帶符號(hào)整數(shù)對(duì)高頻變址(HFREQ)進(jìn)行解壓縮248。通過應(yīng)用合適的變址從Q4二進(jìn)制小數(shù)(fractionalbinary)LUT中抽取每個(gè)子帶子幀所需的32個(gè)樣本。在啟動(dòng)高頻VQ模式的每個(gè)通道中重復(fù)這一過程。
有效通道的十中抽一采樣因數(shù)總是X128。當(dāng)PSC=0時(shí)由SSC*2或當(dāng)PSC不等于零時(shí)由(SSC+1)*2給出LFE中存在的8-位有效采樣數(shù)。在LFE陣列的端部包含有附加的7-位比例因數(shù)(不帶符號(hào)的整數(shù))而且用7-位LUT將其轉(zhuǎn)換成rms。
解壓縮子子幀聲碼陣列通過ABIT變址和在ABIT<11的情況下通過SEL變址來驅(qū)動(dòng)子帶聲碼的抽取過程。使用可變長(zhǎng)度的霍夫曼碼或固定的線性編碼將聲碼格式化。通常ABIT變址為10或小于10意味著采用霍夫曼可變長(zhǎng)度編碼,其由編碼VQL(n)258選定,而當(dāng)ABIT大于10時(shí)總是預(yù)示采用固定碼。所有量化器都具有中性的均勻特性。對(duì)于固定碼(Y2)量化器而言,降低了最大的反向?qū)?。將聲碼壓縮成子子幀,每個(gè)子子幀代表8個(gè)子帶樣本中的最大值,在當(dāng)前子幀中使這些子子幀重復(fù)4次。
如果采樣速率標(biāo)記(SFREQ)表示的速率高于48kH,那么將在聲幀中存在過聲(over_audio)數(shù)據(jù)陣列。在該陣列中首先出現(xiàn)的兩個(gè)字節(jié)將表示過聲的字節(jié)尺寸。此外,應(yīng)將解碼器硬件的采樣速率設(shè)定成使其在與高頻采樣速率有關(guān)的SFREQ/2或SFREQ/4下工作。
解壓縮同步檢驗(yàn)在每個(gè)子幀結(jié)束時(shí)對(duì)數(shù)據(jù)解壓縮檢驗(yàn)字DSYNC=0xffff進(jìn)行檢測(cè)以便驗(yàn)證解壓縮的完好性。在低聲位速率下,如果標(biāo)題、邊信息或聲陣列出現(xiàn)位誤差的毛病,則在邊信息和聲碼中使用的各種碼字就可能引起解壓縮偏移。如果解壓縮的指示字沒有指向DSYNC的始端,則認(rèn)為前一個(gè)子幀的聲音是不可靠的。只要對(duì)所有的邊信息和聲數(shù)據(jù)都進(jìn)行了解壓縮,解碼器將把多通道聲信號(hào)同時(shí)重構(gòu)成一個(gè)子幀。圖20表示在單個(gè)通道中相對(duì)于一個(gè)子帶的基帶解碼器部分。
重構(gòu)RMS比例因數(shù)解碼器重構(gòu)造合AD PCM、VQ和JFC算法的RMS比例因數(shù)(SCALES)。特別是,把VTMODE和THUFF變址反向轉(zhuǎn)換成與當(dāng)前子幀的瞬變模式(TMOD)相一致。此后,SHUFF變址、VDRMSQL碼和TMODE反向轉(zhuǎn)換成重構(gòu)差分RMS編碼。將差分RMS編碼進(jìn)行反向差分編碼242以便選擇RMS碼,將碼逆量化244以形成RMS比例因數(shù)。
逆量化的高頻矢量解碼器對(duì)高頻矢量進(jìn)行逆量化以重構(gòu)子帶聲信號(hào)。特別是,當(dāng)用起始VQ子帶(VQSUBS)識(shí)別時(shí),把抽取的標(biāo)有8-位小數(shù)(Q4)二進(jìn)制數(shù)的高頻樣本(HFREQ)變換成反向VQ Iut248。將選定的表格值逆量化250,并通過RMS比例因數(shù)進(jìn)行轉(zhuǎn)換252。
逆量化聲碼在進(jìn)入ADPCM循環(huán)之前,對(duì)聲碼進(jìn)行逆量化并對(duì)其進(jìn)行轉(zhuǎn)換以形成重構(gòu)的子帶差值樣本。逆量化是首先通過對(duì)VABIT和BHUFF變址進(jìn)行反向轉(zhuǎn)換以給出可確定步長(zhǎng)和量化層數(shù)量的ABIT變址和進(jìn)一步通過反向轉(zhuǎn)換能產(chǎn)生量化器層編碼QL(n)的SEL變址和VQL(n)聲碼來實(shí)現(xiàn)的。隨后,把碼字QL(n)轉(zhuǎn)換到由ABIT和SEL變址指定的逆量化器查尋表260。雖然ABIT對(duì)這些編碼進(jìn)行了排序,但是每個(gè)獨(dú)立的聲道都將具有獨(dú)立的SEL指定器。查尋過程產(chǎn)生帶符號(hào)的量化層數(shù),通過與量化器的步長(zhǎng)相乘可以將其轉(zhuǎn)換成單位rms。通過將單位rms值乘以指定的RMS比例因數(shù)(SCALES)262可以將該單位值轉(zhuǎn)換成完全差值樣本。
1.QL[n]=1/Q[碼[n]],其中1/Q是逆量化器查尋表2.Y[n]=Q L[n]*步長(zhǎng)[abits]3.Rd[n]=Y(jié)[n]*比例因數(shù),其中Rd=重構(gòu)的差值樣本逆ADPCM按照下列方式對(duì)每個(gè)子帶差值樣本執(zhí)行ADPCM解碼程序1.從逆VQ Iut268輸入預(yù)測(cè)系數(shù)。
2.通過用保持在預(yù)測(cè)器歷史陣列268中的前4個(gè)重構(gòu)子帶樣本對(duì)當(dāng)前的預(yù)測(cè)系數(shù)進(jìn)行卷積處理得到預(yù)測(cè)的樣本。
p[n]=sum(Coeff[i]*R[n-i]),在n=當(dāng)前采樣周期的情況下,i=1,43.將預(yù)測(cè)樣本與重構(gòu)的差值樣本相加產(chǎn)生重構(gòu)的子帶樣本270。
R[n]=Rd[n]+P[n]4.更新預(yù)測(cè)器的歷史,即把當(dāng)前的重構(gòu)子帶樣本復(fù)制到歷史表的頂部。
R[n-i]=R[n-i+1],i=4,1在PMODE=0的情況下,預(yù)測(cè)系數(shù)將為零,預(yù)測(cè)樣本也為零,而且重構(gòu)的子帶樣本等于差值子帶樣本。雖然在這種情況下不需要進(jìn)行預(yù)測(cè)計(jì)算,但是在PMODE應(yīng)在下一個(gè)子幀中激活的情況下,則需要將預(yù)測(cè)歷史更新。此外,如果HFLAG在當(dāng)前聲幀中激活,則應(yīng)在對(duì)幀中首先出現(xiàn)的子子幀進(jìn)行解碼之前清除預(yù)測(cè)歷史。通常將從此點(diǎn)開始更新歷史。
在高頻VQ子帶或未選擇(即上述SUBS限制)子帶的情況下,預(yù)測(cè)歷史將保持清除直到子帶預(yù)測(cè)器激活為止。
ADPCM、VQ和JFC解碼的選擇控制第一“開關(guān)”控制ADPCM或VQ輸出的選擇。VQSUBS變址與VQ編碼的起始子帶相對(duì)應(yīng)。因此,如果當(dāng)前子帶低于VQSUBS,開關(guān)將選擇ADPCM輸出。否則選擇VQ輸出。第二“開關(guān)”278控制直流通道輸出或JFC編碼輸出。JOINX變址確定連接哪一個(gè)通道和重構(gòu)信號(hào)是在哪一個(gè)通道中產(chǎn)生的。重構(gòu)的JFC信號(hào)形成其它通道中JFC輸入的強(qiáng)度源。因此,如果當(dāng)前子帶是JFC的一部分并且沒有指定通道,則開關(guān)將選擇JFC輸出。一般情況下開關(guān)選擇通道輸出。
下行矩陣用AMODE表示數(shù)據(jù)流的聲碼模式。然后把解碼的聲道改成動(dòng)態(tài)范圍控制數(shù)據(jù)使之與解碼器硬件280上的實(shí)際輸出通道裝置相匹配。
動(dòng)態(tài)范圍控制數(shù)據(jù)在編碼階段282可以選擇性地將動(dòng)態(tài)范圍系數(shù)DCOEFF嵌入聲幀中。這個(gè)特征的目的是便于在解碼器的輸出中實(shí)現(xiàn)聲頻動(dòng)態(tài)范圍的壓縮。當(dāng)在高音通道中不存在損壞揚(yáng)聲器的危險(xiǎn)時(shí)在背景噪聲級(jí)較高以致無法鑒別低能級(jí)信號(hào)的收聽環(huán)境中動(dòng)態(tài)范圍的壓縮是特別重要的。由于更多地采用展現(xiàn)動(dòng)態(tài)范圍高達(dá)110dB的20-位PCM聲記錄而使該問題進(jìn)一步復(fù)雜化。
根據(jù)幀的窗口尺寸(NBLKS),對(duì)任何編碼模式(DYNF)來說每個(gè)聲道可傳輸一、二或四個(gè)系數(shù)。如果傳輸單個(gè)系數(shù),則可用于全幀。如果傳輸兩個(gè)系數(shù),則第一個(gè)系數(shù)相對(duì)于幀的第一半而第二個(gè)系數(shù)相對(duì)于幀的第二半。傳輸四個(gè)系數(shù)時(shí),四個(gè)系數(shù)分布在每個(gè)幀的四分之一上。通過在傳輸值之間進(jìn)行局部?jī)?nèi)插可以達(dá)到較高的時(shí)間分辨率。
每個(gè)系數(shù)是8-位帶符號(hào)的小數(shù)Q2二進(jìn)制數(shù),而且代表表(53)中示出的算法增益值,該表給出的范圍是在0.25dB步中的增益值為+/-31.75dB。按通道數(shù)對(duì)系數(shù)進(jìn)行排序。用解碼聲樣本乘以線性系數(shù)可以影響動(dòng)態(tài)范圍。
通過對(duì)解碼器的系數(shù)值進(jìn)行適當(dāng)調(diào)節(jié)或通過忽略系數(shù)而將其完全截?cái)嗫梢愿淖儔嚎s的程度。
32-帶內(nèi)插濾波器組32-帶內(nèi)插濾波器組44將每個(gè)聲道的32個(gè)子帶轉(zhuǎn)換成單個(gè)PCM時(shí)間域信號(hào)。當(dāng)FILTS=0時(shí)使用非完全重構(gòu)系數(shù)(512-抽頭FIR濾波器)。當(dāng)FILTS=1時(shí)使用完全重構(gòu)系數(shù)。通常預(yù)先計(jì)算余弦調(diào)制系數(shù)并將其存儲(chǔ)在ROM中??梢詫?nèi)插程序擴(kuò)展到重構(gòu)更大的數(shù)據(jù)塊以減少額外循環(huán)。然而,在終止幀的情況下,可以被稱之為最小分辨率的是32個(gè)PCM樣本。內(nèi)插算法如下建立余弦調(diào)制系數(shù),讀入32個(gè)新子帶樣本以便排出XIN,乘以余弦調(diào)制系數(shù)和建立臨時(shí)陣列SUM和DIFF,存儲(chǔ)歷史,乘以濾波器系數(shù),建立32個(gè)PCM輸出樣本,更新工作陣列,和輸出32個(gè)新PCM樣本。
根據(jù)工作中的位速率和編碼系統(tǒng),比特流既可以指定非完全又可以指定完全重構(gòu)內(nèi)插濾波器組系數(shù)(FILTS)。由于可用40-位可變精度計(jì)算編碼器抽選濾波器組,所以編碼器能夠獲得最大理論重構(gòu)精度的能力取決于源PCM字長(zhǎng)和用于計(jì)算卷積的DSP磁芯的精度以及轉(zhuǎn)換操作的方式。
低頻有效PCM內(nèi)插與低頻有效通道有關(guān)的聲數(shù)據(jù)與主聲道無關(guān)。用8-位APCM程序?qū)νǖ肋M(jìn)行編碼,所述程序是在X128十中抽一(120Hz帶寬)的20-位PCM輸入基礎(chǔ)上工作的。十中抽一的有效聲頻是在主聲道中與當(dāng)前子幀聲頻一致的時(shí)間。在此,由于推遲穿越32-帶的內(nèi)插濾波器組是256個(gè)樣本(512個(gè)抽頭),所以必須注意確保內(nèi)插的低頻有效通道也與輸出前的其它聲道相一致。如果有效內(nèi)插FIR也是512個(gè)抽頭,則不需要進(jìn)行補(bǔ)償。
LFT算法使用了如下512個(gè)抽頭的128X內(nèi)插FIR把7-位比例因數(shù)轉(zhuǎn)換成rms,乘以7-位量化器的步長(zhǎng),由標(biāo)準(zhǔn)值產(chǎn)生子樣本值,利用例如為每個(gè)子樣本設(shè)置的低通濾波器進(jìn)行128倍內(nèi)插。
硬件執(zhí)行器件圖21和22描述了以32、44.1和48kHz采樣速率工作的6通道式編碼器和解碼器之硬件執(zhí)行器件的基本功能結(jié)構(gòu)。參照?qǐng)D22,用八個(gè)模擬裝置ADSP21020 40-位浮點(diǎn)數(shù)字信號(hào)處理器(DSP)芯片296構(gòu)成6通道數(shù)字子聲碼器298。用6個(gè)DSPs對(duì)每個(gè)通道進(jìn)行編碼同時(shí)分別用第七個(gè)和第八個(gè)來實(shí)現(xiàn)“全位分配和管理”以及“數(shù)據(jù)流格式化和誤差編碼”功能。以33MHz記錄每個(gè)ADSP21020并利用外部的48位X32k程序ram(PRAM)300,40位X32k數(shù)據(jù)ram(SRAM)302來運(yùn)行算法。在編碼器工作的情況下,還用8位X512k EPROM304來存儲(chǔ)固定內(nèi)容例如可變長(zhǎng)度的熵代碼本。數(shù)據(jù)流格式化DSP利用Reed Solomon CRC芯片306進(jìn)行誤差檢測(cè)和在解碼器中進(jìn)行保護(hù)。用雙端口靜態(tài)RAM308可以實(shí)現(xiàn)編碼器DSPs和全位分配及管理之間的通信。
編碼過程的流程如下。從三個(gè)AES/EBU數(shù)字式聲接收器的每個(gè)輸出中抽取2-通道數(shù)字聲頻PCM數(shù)據(jù)流310。把每一對(duì)中的第一通道分別引向CH1、3和5編碼器DPSs同時(shí)把每一對(duì)中的第二通道分別引向CH2、4和6。通過把串行PCM字轉(zhuǎn)換成并行(s/p)而將PCM樣本讀入DSPs。如上所述,每個(gè)編碼器存放一幀PCM樣本并對(duì)幀數(shù)據(jù)進(jìn)行編碼。把與每個(gè)通道中的估計(jì)差值信號(hào)(ed(n))和子帶樣本(x(n))有關(guān)的信息通過雙端口RAM傳輸?shù)饺环峙浜凸芾鞤SP中。然后用同樣的方式讀回每個(gè)編碼器的分配策略。編碼過程完成之后,通過全位分配和管理DSP把6個(gè)通道的編碼數(shù)據(jù)和邊信息傳輸?shù)綌?shù)據(jù)流格式化器DSP中。在該階段選擇性地產(chǎn)生CRC檢驗(yàn)字節(jié)并將其加到編碼數(shù)據(jù)中以便在解碼器中提供誤差保護(hù)。最后,將所有數(shù)據(jù)包16相互組合并輸出。
在圖22中示出了6通道硬件解碼器的實(shí)現(xiàn)過程。用單個(gè)模擬裝置ADSP21020 40-位浮點(diǎn)數(shù)字信號(hào)處理器(DSP)芯片324構(gòu)成6通道數(shù)字式聲解碼器。以33MHz記錄ADSP21020并用外部48位X32k程序ram(PRAM)326,40位X32k數(shù)據(jù)ram(SRAM)328運(yùn)行解碼算法。此外還用附加的8位X512k EPROM330來存儲(chǔ)可變長(zhǎng)度熵和預(yù)測(cè)系數(shù)矢量代碼本等固定常數(shù)。
解碼處理的流程如下。通過串/并行轉(zhuǎn)換器(s/p)332把壓縮數(shù)據(jù)流16輸入到DSP。按前面所述對(duì)數(shù)據(jù)進(jìn)行解壓縮和解碼。把子帶樣本重構(gòu)成每個(gè)通道的單個(gè)PCM數(shù)據(jù)流22并通過三個(gè)并行/串行轉(zhuǎn)換器(p/s)335輸出到三個(gè)AES/EBU數(shù)字聲頻傳輸器芯片334中。
以上顯示和描述了本發(fā)明的幾個(gè)說明性實(shí)施例,但是對(duì)于那些熟悉本領(lǐng)域的技術(shù)人員來說可以做出大量不同的和變換的實(shí)施例。例如,隨著處理速度的增加和存儲(chǔ)器成本的降低,采樣頻率、傳輸速率和緩沖器尺寸不會(huì)增加。在不脫離本發(fā)明的構(gòu)思和范圍的情況下可以預(yù)想和實(shí)現(xiàn)這些不同的和變換的實(shí)施例。
權(quán)利要求
1.多通道聲碼器,包括取幀器(64),其向以某一采樣速率采樣的多通道聲信號(hào)的每個(gè)通道提供聲頻窗口以產(chǎn)生各個(gè)聲幀序列;多個(gè)濾波器(34),其在基帶頻率范圍內(nèi)把通道的聲幀分成多個(gè)獨(dú)立的頻率子帶,所說的頻率子帶中的每一個(gè)子帶包括子帶幀序列,在每個(gè)子帶幀中具有至少一個(gè)聲數(shù)據(jù)子幀;多個(gè)子帶編碼器(26),其以一次一個(gè)子幀的形式對(duì)各頻率子帶中的聲數(shù)據(jù)進(jìn)行編碼使之成為編碼的子帶信號(hào);多路轉(zhuǎn)換器(32),其把編碼的子帶信號(hào)壓縮和多路轉(zhuǎn)換成適合每個(gè)序列數(shù)據(jù)幀的輸出幀由此形成具有某一傳輸速率的數(shù)據(jù)流;和控制器(19),其根據(jù)采樣速率和傳輸速率設(shè)定聲窗的尺寸以便將所說輸出幀的尺寸限定在所需的范圍內(nèi)。
2.根據(jù)權(quán)利要求1所述的多通道聲碼器,其中控制器按照兩個(gè)小于 值的最大乘積設(shè)定聲窗尺寸,其中幀尺寸是輸出幀的最大尺寸,F(xiàn)samp是采樣速率,和Trate是傳輸速率。
3.根據(jù)權(quán)利要求1所述的多通道聲碼器,其中在目標(biāo)位速率下對(duì)多通道聲信號(hào)進(jìn)行編碼并且子帶編碼器包括預(yù)測(cè)編碼器,所述多通道聲碼器進(jìn)一步包括全位管理器(GBM)(30),其計(jì)算心理聲學(xué)信號(hào)與掩蔽比(SMR)和每個(gè)子幀的估計(jì)預(yù)測(cè)增益(Pgain),通過把SMRs減小到與其相關(guān)之預(yù)測(cè)增益的各比值來計(jì)算掩蔽與噪聲比(MNRs),分配各位使之滿足每個(gè)MNR,計(jì)算所有子帶上的分配位速率,和調(diào)節(jié)各次分配使得實(shí)際位速率近似等于目標(biāo)位速率。
4.根據(jù)權(quán)利要求1或3所述的多通道聲碼器,其中子帶編碼器把每個(gè)子幀分成多個(gè)子子幀,每個(gè)子帶編碼器包括產(chǎn)生和量化每個(gè)子幀之誤差信號(hào)的預(yù)測(cè)編碼器(72),所述多通道聲碼器進(jìn)一步包括分析器(98,100,102,104,106),其在每個(gè)子幀編碼之前產(chǎn)生估計(jì)誤差信號(hào),檢測(cè)在估計(jì)誤差信號(hào)的每個(gè)子子幀中的瞬變,產(chǎn)生瞬變編碼,該瞬變編碼表示在任何子子幀而不是在已有瞬變出現(xiàn)的第一子子幀內(nèi)是否存在瞬變,而且當(dāng)檢測(cè)瞬變時(shí),在瞬變前產(chǎn)生適合那些子子幀的前瞬變比例因數(shù),在瞬變后產(chǎn)生適合那些子子幀的后瞬變比例因數(shù),否則產(chǎn)生適合于子幀的均勻比例因數(shù),所說的預(yù)測(cè)編碼器利用所說前瞬變、后瞬變和均勻比例因數(shù)對(duì)編碼前的誤差信號(hào)進(jìn)行轉(zhuǎn)換以減小與前瞬變比例因數(shù)相應(yīng)的子子幀內(nèi)的編碼誤差。
5.根據(jù)權(quán)利要求1所述的多通道聲碼器,其中所說的基帶頻率范圍構(gòu)成最大頻率,所說多通道聲碼器進(jìn)一步包括預(yù)濾波器(46),其在基帶頻率范圍和上述最大頻率的頻率下把每個(gè)所說的聲幀分別分成基帶信號(hào)和高采樣速率信號(hào);和高采樣速率編碼器(48,50,52),其對(duì)聲道的高采樣速率信號(hào)進(jìn)行編碼使之成為獨(dú)立編碼的高采樣速率信號(hào);所說的多路轉(zhuǎn)換器把通道中編碼的高采樣速率信號(hào)壓縮成獨(dú)立的輸出幀從而可對(duì)多通道聲信號(hào)的基帶和高采樣速率部分進(jìn)行獨(dú)立解碼。
全文摘要
一種子帶聲編碼器(12)采用了完全/非完全重構(gòu)濾波器(34)、預(yù)測(cè)/非預(yù)測(cè)子帶編碼(72)、瞬變分析器(106)、和心理聲學(xué)/最小均方差(mmse)相對(duì)時(shí)間的位分配(30)、頻率以及多聲道對(duì)數(shù)據(jù)流進(jìn)行編碼/解碼以產(chǎn)生高保真度的重構(gòu)聲音。聲編碼器(64)對(duì)多通道聲信號(hào)進(jìn)行劃分以便把幀尺寸即字節(jié)數(shù)量限制在所需的范圍內(nèi),并對(duì)編碼數(shù)據(jù)進(jìn)行格式化處理以便當(dāng)接收到各子幀時(shí)能進(jìn)行播放從而減少偽象。此外,聲編碼器處理聲頻帶寬的基帶部分0-24kHz以便用相同的編碼/解碼算法對(duì)48kHz或更高的頻率進(jìn)行采樣從而使聲編碼器的結(jié)構(gòu)在未來具有兼容性。
文檔編號(hào)G10L19/12GK1495705SQ0315692
公開日2004年5月12日 申請(qǐng)日期1996年11月21日 優(yōu)先權(quán)日1995年12月1日
發(fā)明者斯蒂芬·M·史密斯, 斯蒂芬 M 史密斯, H 史密斯, 邁克爾·H·史密斯, 保羅 史密斯, 威廉·保羅·史密斯 申請(qǐng)人:數(shù)字劇場(chǎng)系統(tǒng)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
东兴市| 临安市| 馆陶县| 永修县| 东丽区| 扶绥县| 偏关县| 公安县| 都兰县| 孟津县| 柯坪县| 隆德县| 仁布县| 江阴市| 枣庄市| 宁阳县| 图们市| 包头市| 苍梧县| 永川市| 精河县| 普定县| 玉树县| 通河县| 屏边| 仙游县| 余江县| 东安县| 海晏县| 马关县| 岑巩县| 望奎县| 玉溪市| 浮梁县| 鸡泽县| 浦城县| 泰安市| 宣武区| 资溪县| 珲春市| 和平县|