隨著數(shù)字電話和數(shù)據(jù)通信容量日益增長(zhǎng)的迫切要求,而又不希望明顯降低傳送話音信號(hào)的質(zhì)量,除了提高通信帶寬之外,對(duì)話音信號(hào)進(jìn)行壓縮是提高通信容量的重要措施。另一個(gè)可說(shuō)明話音數(shù)據(jù)壓縮的重要性的例子是,用戶無(wú)法使用28.8 kb/s的調(diào)制解調(diào)器來(lái)接收因特網(wǎng)上的64 kb/s話音數(shù)據(jù)流,這是一種單聲道、8位/樣本、采樣頻率為8 kHz的話音數(shù)據(jù)流。ITU-TSS為此制定了并且繼續(xù)制定一系列話音(speech)數(shù)據(jù)編譯碼標(biāo)準(zhǔn)。其中,G.711使用μ率和A率壓縮算法,信號(hào)帶寬為3.4 kHz,壓縮后的數(shù)據(jù)率為64 kb/s;G.721使用ADPCM壓縮算法,信號(hào)帶寬為3.4 kHz,壓縮后的數(shù)據(jù)率為32 kb/s;G.722使用ADPCM壓縮算法,信號(hào)帶寬為7 kHz,壓縮后的數(shù)據(jù)率為64 kb/s。在這些標(biāo)準(zhǔn)基礎(chǔ)還制定了許多話音數(shù)據(jù)壓縮標(biāo)準(zhǔn),例如G.723,G.723.1,G.728,G.729和G.729.A等。 本章將重點(diǎn)介紹話音編碼的基本思想,而詳細(xì)計(jì)算則留給那些開(kāi)發(fā)和具體設(shè)計(jì)編譯碼器軟硬件的讀者去研究,并可從本章所列的參考文獻(xiàn)和站點(diǎn)中找到你滿意的文獻(xiàn)資料。
3.1 話音編碼概要
3.1.1 話音波形的特性
了解話音波形的基本特性對(duì)聲音數(shù)據(jù)的壓縮編碼、聲音的識(shí)別和文本-聲音的轉(zhuǎn)換等都有很重要的意義。 當(dāng)肺部中的受壓空氣沿著聲道通過(guò)聲門發(fā)出時(shí)就產(chǎn)生了話音。普通男人的聲道從聲門到嘴的平均長(zhǎng)度約為17厘米,這個(gè)事實(shí)反映在聲音信號(hào)中就相當(dāng)于在1 ms數(shù)量級(jí)內(nèi)的數(shù)據(jù)具有相關(guān)性,這種相關(guān)稱為短期相關(guān)(short-term correlation)。聲道也被認(rèn)為是一個(gè)濾波器,這個(gè)濾波器有許多共振峰,這些共振峰的頻率受隨時(shí)間變化的聲道形狀所控制,例如舌的移動(dòng)就會(huì)改變聲道的形狀。許多話音編碼器用一個(gè)短期濾波器(short term filter)來(lái)模擬聲道。但由于聲道形狀的變化比較慢,模擬濾波器的傳遞函數(shù)的修改不需要那么頻繁,典型值在20 ms左右。 壓縮空氣通過(guò)聲門激勵(lì)聲道濾波器,根據(jù)激勵(lì)方式不同,發(fā)出的話音分成三種類型:濁音(voiced sounds),清音(unvoiced sounds)和爆破音(plosive sounds)。 1.濁音 濁音是一種稱為準(zhǔn)周期脈沖(quasi-periodic pulses)激勵(lì)所發(fā)出的音,這種準(zhǔn)周期脈沖是在聲門打開(kāi)然后關(guān)閉時(shí)中斷肺部到聲道的氣流所產(chǎn)生的脈沖。聲門打開(kāi)和關(guān)閉的速率呈現(xiàn)為音節(jié)(pitch)的大小,它的速率可通過(guò)改變聲道的形狀和空氣的壓力來(lái)調(diào)整。濁音表現(xiàn)出在音節(jié)上有高度的周期性,其值在2~20 ms之間,這個(gè)周期性稱為長(zhǎng)期周期性(long-term periodicity)。圖3-01表示了某一濁音段的波形,音節(jié)周期大約8 ms。這一濁音段的功率譜密度(power spectral density,PSD)如圖3-02所示。
 圖3-01 濁音段的波形舉例
圖3-02 濁音段的功率普密度舉例
2. 清音 清音是由不穩(wěn)定氣流激勵(lì)所產(chǎn)生的,這種氣流是在聲門處在打開(kāi)狀態(tài)下強(qiáng)制空氣在聲道里高速收縮產(chǎn)生的,如圖3-03所示。這一清音段的功率譜密度PSD和圖3-04所示。
 圖3-03 清音段的波形舉例
 圖3-04 清音段的功率譜密度舉例
3. 爆破音 爆破音是在聲道關(guān)閉之后產(chǎn)生的壓縮空氣然后突然打開(kāi)聲道所發(fā)出的音。 某些音不能歸屬到上述三種音中的任何一種,例如在聲門振動(dòng)和聲道收縮同時(shí)出現(xiàn)的情況下產(chǎn)生的摩擦音,這種音稱為混合音。 雖然各種各樣的話音都有可能產(chǎn)生,但聲道的形狀和激勵(lì)方式的變化相對(duì)比較慢,因此話音在短時(shí)間周期(20 ms的數(shù)量級(jí))里可以被認(rèn)為是準(zhǔn)定態(tài)(quasi-stationary)的,也就是說(shuō)基本不變的。從圖3-01, -02, -03和-04中可以看到話音信號(hào)顯示出的高度周期性,這是由于聲門的準(zhǔn)周期性的振動(dòng)和聲道的諧振所引起的。話音編碼器就是企圖揭示這種周期性,目的是為了減少數(shù)據(jù)率而又盡可能不犧牲聲音的質(zhì)量。
3.1.2 三種話音編譯碼器
通常把已有的話音編譯碼器分成以下三種類型:波形編譯碼器(waveform codecs),音源編譯碼器(source codecs)和混合編譯碼器(hybrid codecs)。一般來(lái)說(shuō),波形編譯碼器的話音質(zhì)量高,但數(shù)據(jù)率也很高;音源編譯碼器的數(shù)據(jù)率很低,產(chǎn)生的合成話音的音質(zhì)有待提高;混合編譯碼器使用音源編譯碼技術(shù)和波形編譯碼技術(shù),數(shù)據(jù)率和音質(zhì)介于它們之間。圖3-05表示了目前這三種編譯碼器的話音質(zhì)量和數(shù)據(jù)率的關(guān)系。
 圖3-05 普通編譯碼器的音質(zhì)與數(shù)據(jù)率
1. 波形編譯碼器 波形編譯碼的想法是,不利用生成話音信號(hào)的任何知識(shí)而企圖產(chǎn)生一種重構(gòu)信號(hào),它的波形與原始話音波形盡可能地一致。一般來(lái)說(shuō),這種編譯碼器的復(fù)雜程度比較低,數(shù)據(jù)速率在16 kb/s以上,質(zhì)量相當(dāng)高。低于這個(gè)數(shù)據(jù)速率時(shí),音質(zhì)急劇下降。 最簡(jiǎn)單的波形編碼是脈沖編碼調(diào)制(pulse code modulation,PCM),它僅僅是對(duì)輸入信號(hào)進(jìn)行采樣和量化。典型的窄帶話音帶寬限制在4 kHz,采樣頻率是8 kHz。如果要獲得高一點(diǎn)的音質(zhì),樣本精度要用12位,它的數(shù)據(jù)率就等于96 kb/s,這個(gè)數(shù)據(jù)率可以使用非線性量化來(lái)降低。例如,可以使用近似于對(duì)數(shù)的對(duì)數(shù)量化器(logarithmic quantizer),使用它產(chǎn)生的樣本精度為8位,它的數(shù)據(jù)率為64 kb/s時(shí),重構(gòu)的話音信號(hào)幾乎與原始的話音信號(hào)沒(méi)有什么差別。這種量化器在20世紀(jì)80年代就已經(jīng)標(biāo)準(zhǔn)化,而且直到今天還在廣泛使用。在北美的壓擴(kuò)(companding)標(biāo)準(zhǔn)是μ律(μ-law),在歐洲的壓擴(kuò)標(biāo)準(zhǔn)是A律(A-law)。它們的優(yōu)點(diǎn)是編譯碼器簡(jiǎn)單,延遲時(shí)間短,音質(zhì)高。但不足之處是數(shù)據(jù)速率比較高,對(duì)傳輸通道的錯(cuò)誤比較敏感。 在話音編碼中,一種普遍使用的技術(shù)叫做預(yù)測(cè)技術(shù),這種技術(shù)是企圖從過(guò)去的樣本來(lái)預(yù)測(cè)下一個(gè)樣本的值。這樣做的根據(jù)是認(rèn)為在話音樣本之間存在相關(guān)性。如果樣本的預(yù)測(cè)值與樣本的實(shí)際值比較接近,它們之間的差值幅度的變化就比原始話音樣本幅度值的變化小,因此量化這種差值信號(hào)時(shí)就可以用比較少的位數(shù)來(lái)表示差值。這就是差分脈沖編碼調(diào)制(differential pulse code modulation,DPCM)的基礎(chǔ)—對(duì)預(yù)測(cè)的樣本值與原始的樣本值之差進(jìn)行編碼。 這種編譯碼器對(duì)幅度急劇變化的輸入信號(hào)會(huì)產(chǎn)生比較大的噪聲,改進(jìn)的方法之一就是使用自適應(yīng)的預(yù)測(cè)器和量化器,這就產(chǎn)生了一種叫做自適應(yīng)差分脈沖編碼調(diào)制(adaptive differential PCM,ADPCM)。在20世紀(jì)80年代,國(guó)際電話與電報(bào)顧問(wèn)委員會(huì) (International Telephone and Telegraph Consultative Committee,CCITT),現(xiàn)改為國(guó)際電信聯(lián)盟-遠(yuǎn)程通信標(biāo)準(zhǔn)部(International Telecommunications Union-Telecommunications Standards Section,ITU-TSS ),就制定了數(shù)據(jù)率為32 kb/s的ADPCM標(biāo)準(zhǔn),它的音質(zhì)非常接近64 kb/s的PCM編譯碼器,隨后又制定了數(shù)據(jù)率為16,24和40 kb/s的ADPCM標(biāo)準(zhǔn)。 上述的所有波形編譯碼器完全是在時(shí)間域里開(kāi)發(fā)的,在時(shí)域里的編譯碼方法稱為時(shí)域法(time domain approach)。在開(kāi)發(fā)波形編譯碼器中,人們還使用了另一種方法,叫做頻域法(frequency domain approach)。例如,在子帶編碼(sub-band coding,SBC)中,輸入的話音信號(hào)被分成好幾個(gè)頻帶(即子帶),變換到每個(gè)子帶中的話音信號(hào)都進(jìn)行獨(dú)立編碼,例如使用ADPCM編碼器編碼,在接收端,每個(gè)子帶中的信號(hào)單獨(dú)解碼之后重新組合,然后產(chǎn)生重構(gòu)話音信號(hào)。它的優(yōu)點(diǎn)是每個(gè)子帶中的噪聲信號(hào)僅僅與該子帶使用的編碼方法有關(guān)系。對(duì)聽(tīng)覺(jué)感知比較重要的子帶信號(hào),編碼器可分配比較多的位數(shù)來(lái)表示它們,于是在這些頻率范圍里噪聲就比較低。對(duì)于其他的子帶,由于對(duì)聽(tīng)覺(jué)感知的重要性比較低,允許比較高的噪聲,于是編碼器就可以分配比較少的位數(shù)來(lái)表示這些信號(hào)。自適應(yīng)位分配的方案也可以考慮用來(lái)進(jìn)一步提高音質(zhì)。子帶編碼需要用濾波器把信號(hào)分成若干個(gè)子帶,這比使用簡(jiǎn)單的ADPCM編譯碼器復(fù)雜,而且還增加了更多的編碼時(shí)延。即使如此,與大多數(shù)混合編譯碼器相比,子帶編譯碼的復(fù)雜性和時(shí)延相對(duì)來(lái)說(shuō)還是比較低的。 另一種頻域波形編碼技術(shù)叫做自適應(yīng)變換編碼(adaptive transform coding,ATC)。這種方法使用快速變換(例如離散余弦變換)把話音信號(hào)分成許許多多的頻帶,用來(lái)表示每個(gè)變換系數(shù)的位數(shù)取決于話音譜的性質(zhì),獲得的數(shù)據(jù)率可低到16 kb/s。 2. 音源編譯碼器 音源編譯碼的想法是企圖從話音波形信號(hào)中提取生成話音的參數(shù),使用這些參數(shù)通過(guò)話音生成模型重構(gòu)出話音。針對(duì)話音的音源編譯碼器叫做聲碼器(vocoder)。在話音生成模型中,聲道被等效成一個(gè)隨時(shí)間變化的濾波器,叫做時(shí)變?yōu)V波器(time-varying filter),它由白噪聲—無(wú)聲話音段激勵(lì),或者由脈沖串——有聲話音段激勵(lì)。因此需要傳送給解碼器的信息就是濾波器的規(guī)格、發(fā)聲或者不發(fā)聲的標(biāo)志和有聲話音的音節(jié)周期,并且每隔10~20 ms更新一次。聲碼器的模型參數(shù)既可使用時(shí)域的方法也可以使用頻域的方法確定,這項(xiàng)任務(wù)由編碼器完成。 這種聲碼器的數(shù)據(jù)率在2.4 kb/s左右,產(chǎn)生的語(yǔ)音雖然可以聽(tīng)懂,但其質(zhì)量遠(yuǎn)遠(yuǎn)低于自然話音。增加數(shù)據(jù)率對(duì)提高合成話音的質(zhì)量無(wú)濟(jì)于事,這是因?yàn)槭艿皆捯羯赡P偷南拗啤1M管它的音質(zhì)比較低,但它的保密性能好,因此這種編譯碼器一直用在軍事上。 3. 混合編譯碼 混合編譯碼的想法是企圖填補(bǔ)波形編譯碼和音源編譯碼之間的間隔。波形編譯碼器雖然可提供高話音的質(zhì)量,但數(shù)據(jù)率低于16 kb/s的情況下,在技術(shù)上還沒(méi)有解決音質(zhì)的問(wèn)題;聲碼器的數(shù)據(jù)率雖然可降到2.4 kb/s甚至更低,但它的音質(zhì)根本不能與自然話音相提并論。為了得到音質(zhì)高而數(shù)據(jù)率又低的編譯碼器,歷史上出現(xiàn)過(guò)很多形式的混合編譯碼器,但最成功并且普遍使用的編譯碼器是時(shí)域合成-分析(analysis-by-synthesis,AbS)編譯碼器。這種編譯碼器使用的聲道線性預(yù)測(cè)濾波器模型與線性預(yù)測(cè)編碼(linear predictive coding,LPC)使用的模型相同,不使用兩個(gè)狀態(tài)(有聲/無(wú)聲)的模型來(lái)尋找濾波器的輸入激勵(lì)信號(hào),而是企圖尋找這樣一種激勵(lì)信號(hào),使用這種信號(hào)激勵(lì)產(chǎn)生的波形盡可能接近于原始話音的波形。AbS編譯碼器由Atal和Remde在1982年首次提出,并命名為多脈沖激勵(lì)(multi-pulse excited,MPE)編譯碼器,在此基礎(chǔ)上隨后出現(xiàn)的是等間隔脈沖激勵(lì)(regular-pulse excited,RPE)編譯碼器、碼激勵(lì)線性預(yù)測(cè)CELP(code excited linear predictive)編譯碼器和混合激勵(lì)線性預(yù)測(cè)(mixed excitation linear prediction,MELP)等編譯碼器。 AbS編譯碼器的一般結(jié)構(gòu)如圖3-06所示。
 (a) 編碼器
 (b) 譯碼器 圖3-06 AbS編譯碼器的結(jié)構(gòu)
AbS編譯碼器把輸入話音信號(hào)分成許多幀(frames),一般來(lái)說(shuō),每幀的長(zhǎng)度為20 ms。合成濾波器的參數(shù)按幀計(jì)算,然后確定濾波器的激勵(lì)參數(shù)。從圖3-06(a)可以看到,AbS編碼器是一個(gè)負(fù)反饋系統(tǒng),通過(guò)調(diào)節(jié)激勵(lì)信號(hào)u(n)可使話音輸入信號(hào)s(n)與重構(gòu)的話音信號(hào) 之差為最小,也就是重構(gòu)的話音與實(shí)際的話音最接近。這就是說(shuō),編碼器通過(guò)“合成”許多不同的近似值來(lái)“分析”輸入話音信號(hào),這也是“合成-分析編碼器”名稱的來(lái)由。在表示每幀的合成濾波器的參數(shù)和激勵(lì)信號(hào)確定之后,編碼器就把它們存儲(chǔ)起來(lái)或者傳送到譯碼器。在譯碼器端,激勵(lì)信號(hào)饋送給合成濾波器,合成濾波器產(chǎn)生重構(gòu)的話音信號(hào),如圖3-06(b)所示。 合成濾波器通常使用全極點(diǎn)(all pole)的短期(short-term)線性濾波器,它的函數(shù)如:  其中  是預(yù)測(cè)誤差濾波器,這個(gè)濾波器是按照這樣的原則確定的:當(dāng)原始話音段通過(guò)該濾波器時(shí)產(chǎn)生的殘留信號(hào)的能量最小。濾波器的極點(diǎn)數(shù)的典型值等于10。這個(gè)濾波器企圖去模擬由于聲道作用而引入的話音相關(guān)性。 合成濾波器也可以包含音節(jié)(pitch)濾波器,用來(lái)模擬話音中出現(xiàn)的長(zhǎng)期預(yù)測(cè)。MPE和RPE編譯碼器一般不使用音節(jié)濾波器,對(duì)于CELP編譯碼器,音節(jié)濾波器則顯得非常重要。 圖3-06中的“誤差加權(quán)”方框用來(lái)塑造誤差信號(hào)譜的形狀,目的是減少誤差信號(hào)的主觀響度。這樣做的想法是,在話音信號(hào)能量很高的頻段中,誤差信號(hào)至少有部分能夠被高能量的話音掩蔽掉。 AbS編譯碼器的性能與如何選擇激勵(lì)合成濾波器的波形u(n)有很大關(guān)系。從概念上說(shuō),可把每一種可能的波形輸送給合成濾波器試試看,這種激勵(lì)信號(hào)將會(huì)產(chǎn)生什么樣的重構(gòu)話音信號(hào),它和原始話音信號(hào)之間的誤差如何變化,然后選擇產(chǎn)生最小加權(quán)誤差的激勵(lì)信號(hào),并把它作為譯碼器中的合成濾波器的驅(qū)動(dòng)信號(hào)。由于編碼器是一個(gè)閉環(huán)系統(tǒng),因此可以獲得比較高的音質(zhì)而數(shù)據(jù)率又比較低。但由于可能的激勵(lì)信號(hào)的數(shù)目巨大,因此需要有某種方法來(lái)減少計(jì)算的復(fù)雜性而音質(zhì)又不會(huì)犧牲太大。 MPE,RPE和CELP編譯碼器之間的差別在于所使用的激勵(lì)信號(hào)的表示方法。在MPE中,對(duì)每幀話音所用的激勵(lì)信號(hào)u(n)是固定數(shù)目的脈沖,在一幀中脈沖的位置和幅度必須由編碼器來(lái)確定,這在理論上可以找到很好的值,但實(shí)際上不太可能,因?yàn)橛?jì)算太復(fù)雜。因此在實(shí)際上就使用次佳方法,一般來(lái)說(shuō),每5 ms使用4個(gè)脈沖,在數(shù)據(jù)率為10 kb/s時(shí)可以獲得好的重構(gòu)話音。 像MPE那樣,RPE編譯碼器使用固定間隔的脈沖,于是編碼器就只需要確定第一個(gè)激勵(lì)脈沖的位置和所有其他脈沖的幅度,所需要的脈沖位置信息也就可以減少,而脈沖的數(shù)目則比MPE使用的數(shù)目多。數(shù)據(jù)率在10 kb/s左右時(shí),每5 ms可使用10個(gè)脈沖,比MPE多6個(gè),產(chǎn)生比MPE音質(zhì)高一些的重構(gòu)話音。然而RPE仍然顯得比較復(fù)雜,因此歐洲的GSM移動(dòng)電話系統(tǒng)使用了一個(gè)帶長(zhǎng)期預(yù)測(cè)的簡(jiǎn)化了的RPE編譯碼器,數(shù)據(jù)率為13 kb/s。 雖然MPE和RPE編譯碼器在10 kb/s左右的數(shù)據(jù)率下可提供好的音質(zhì),但數(shù)據(jù)率低于10 kb/s情況下提供的音質(zhì)還不能接受,這是因?yàn)樗鼈冃枰峁┐罅坑嘘P(guān)激勵(lì)脈沖的位置和幅度信息。對(duì)要求音質(zhì)好而數(shù)據(jù)率又低于10 kb/s的編譯碼器,現(xiàn)在普遍使用的算法是1985年由Schroeder和Atal提出的CELP算法。與MPE和RPE的不同之處是,CELP使用的激勵(lì)信號(hào)是量化矢量。激勵(lì)信號(hào)由一個(gè)矢量量化大碼簿的表項(xiàng)給出,還有一個(gè)增益項(xiàng)用來(lái)擴(kuò)展它的功率。典型的碼簿索引有10位,就是有1024個(gè)表項(xiàng)的碼簿,增益用5位表示。因此激勵(lì)信號(hào)的位數(shù)可以減少到15位,這與GSM RPE編譯碼器中使用的47位相比減少了32位。 CELP最初使用的碼簿包含白高斯序列(white Gaussian sequences),這是因?yàn)樽髁诉@樣的假設(shè):長(zhǎng)期預(yù)測(cè)和短期預(yù)測(cè)能夠從話音信號(hào)中去除幾乎所有的冗余度,產(chǎn)生隨機(jī)的像噪聲那樣的殘留信號(hào)。試驗(yàn)也顯示出短期概率密度函數(shù)幾乎是高斯?fàn)畹?。Schroeder和Atal發(fā)現(xiàn),對(duì)長(zhǎng)期和短期濾波器使用這樣的碼簿能夠產(chǎn)生高質(zhì)量的話音。然而,在合成-分析過(guò)程中要選擇使用哪一個(gè)碼簿表項(xiàng),這就意味每一個(gè)激勵(lì)序列都要傳送給合成濾波器,看看重構(gòu)話音與原始話音的近似程度。這也就是說(shuō)原始CELP編譯碼器的計(jì)算量太大,難以實(shí)時(shí)執(zhí)行。從1985年開(kāi)始,在簡(jiǎn)化CELP的碼簿結(jié)構(gòu)方面做了大量的工作,使用數(shù)字信號(hào)處理(DSP)芯片提高執(zhí)行速度方面也取得了很大的進(jìn)展,因此現(xiàn)在在低成本的單片DSP上實(shí)時(shí)執(zhí)行CELP算法相對(duì)容易了,在CELP基礎(chǔ)上制定了好幾個(gè)重要的話音編碼標(biāo)準(zhǔn),例如美國(guó)的“Department of Defence(DoD) 4.8 kb/s codec”標(biāo)準(zhǔn)和CCITT的“l(fā)ow-delay 16 kb/s codec”標(biāo)準(zhǔn)。 CELP編譯碼器在話音通信中取得了很大成功,話音的速率在4.8 kb/s~16 kb/s之間。近年來(lái)對(duì)運(yùn)行在4.8 kb/s以下的編譯碼器作了大量的研究工作,其目標(biāo)是開(kāi)發(fā)運(yùn)行在2.4 kb/s或者更低數(shù)據(jù)率下的編譯碼器。 通過(guò)對(duì)話音段進(jìn)行分類,例如分成濁音幀、清音幀和過(guò)渡幀,CELP編譯碼器的結(jié)構(gòu)可以進(jìn)一步得到改善,不同類型的話音段使用專門設(shè)計(jì)的編碼器進(jìn)行編碼。例如,對(duì)于濁音幀編碼器不使用長(zhǎng)期預(yù)測(cè),而對(duì)于清音幀使用長(zhǎng)期預(yù)測(cè)就顯得特別重要。這種按話音類型設(shè)計(jì)的編譯碼器在數(shù)據(jù)率為2.4 kb/s下呈現(xiàn)的音質(zhì)已經(jīng)得到認(rèn)可。多帶激勵(lì)MBE(multi-band excitation)編譯碼器把頻域中的某些頻段看成是濁音頻段,其他頻段看成是清音頻段。它們傳送每幀的音節(jié)周期、頻譜的幅度和相位信息以及濁音/清音的判決。這種編譯碼器經(jīng)過(guò)改造以后也顯示出了它的潛力,在低數(shù)據(jù)率下可提供認(rèn)可的音質(zhì)。 在數(shù)據(jù)率為2.4 kb/s~64 kb/s的范圍里,部分編碼器的MOS分?jǐn)?shù)大致如表3-01所示。
表3-01 部分編碼器的MOS分
編碼器 |
MOS分 |
64 kb/s脈沖編碼調(diào)制(PCM) |
4.3 |
32 kb/s自適應(yīng)差分脈沖編碼調(diào)制(ADPCM) |
4.1 |
16 kb/s低時(shí)延碼激勵(lì)線性預(yù)測(cè)編碼(LD-CELP) |
4.0 |
8 kb/s碼激勵(lì)線性預(yù)測(cè)編碼(CELP) |
3.7 |
3.8 kb/s碼激勵(lì)線性預(yù)測(cè)編碼(CELP) |
3.0 |
2.4 kb/s線性預(yù)測(cè)編碼(LPC) |
2.5 |
3.2 脈沖編碼調(diào)制(PCM)
3.2.1 PCM的概念
脈沖編碼調(diào)制(pulse code modulation,PCM)是概念上最簡(jiǎn)單、理論上最完善的編碼系統(tǒng),是最早研制成功、使用最為廣泛的編碼系統(tǒng),但也是數(shù)據(jù)量最大的編碼系統(tǒng)。 PCM的編碼原理比較直觀和簡(jiǎn)單,它的原理框圖如圖3–07所示。在這個(gè)編碼框圖中,它的輸入是模擬聲音信號(hào),它的輸出是PCM樣本。圖中的“防失真濾波器”是一個(gè)低通濾波器,用來(lái)濾除聲音頻帶以外的信號(hào);“波形編碼器”可暫時(shí)理解為“采樣器”,“量化器”可理解為“量化階大小(step-size)”生成器或者稱為“量化間隔”生成器。
 圖3-07 PCM編碼框圖
在第2章介紹聲音數(shù)字化的時(shí)候,談到聲音數(shù)字化有兩個(gè)步驟:第一步是采樣,就是每隔一段時(shí)間間隔讀一次聲音的幅度;第二步是量化,就是把采樣得到的聲音信號(hào)幅度轉(zhuǎn)換成數(shù)字值。但那時(shí)并沒(méi)有涉及如何進(jìn)行量化。量化有好幾種方法,但可歸納成兩類:一類稱為均勻量化,另一類稱為非均勻量化。采用的量化方法不同,量化后的數(shù)據(jù)量也就不同。因此,可以說(shuō)量化也是一種壓縮數(shù)據(jù)的方法。
3.2.2 均勻量化
如果采用相等的量化間隔對(duì)采樣得到的信號(hào)作量化,那么這種量化稱為均勻量化。均勻量化就是采用相同的“等分尺”來(lái)度量采樣得到的幅度,也稱為線性量化,如圖3-08所示。量化后的樣本值Y和原始值X的差E=Y-X稱為量化誤差或量化噪聲。
 圖3-08 均勻量化
用這種方法量化輸入信號(hào)時(shí),無(wú)論對(duì)大的輸入信號(hào)還是小的輸入信號(hào)一律都采用相同的量化間隔。為了適應(yīng)幅度大的輸入信號(hào),同時(shí)又要滿足精度要求,就需要增加樣本的位數(shù)。但是,對(duì)話音信號(hào)來(lái)說(shuō),大信號(hào)出現(xiàn)的機(jī)會(huì)并不多,增加的樣本位數(shù)就沒(méi)有充分利用。為了克服這個(gè)不足,就出現(xiàn)了非均勻量化的方法,這種方法也叫做非線性量化。
3.2.3 非均勻量化
非線性量化的基本想法是,對(duì)輸入信號(hào)進(jìn)行量化時(shí),大的輸入信號(hào)采用大的量化間隔,小的輸入信號(hào)采用小的量化間隔,如圖3-09所示。這樣就可以在滿足精度要求的情況下用較少的位數(shù)來(lái)表示。聲音數(shù)據(jù)還原時(shí),采用相同的規(guī)則。 在非線性量化中,采樣輸入信號(hào)幅度和量化輸出數(shù)據(jù)之間定義了兩種對(duì)應(yīng)關(guān)系,一種稱為 m 律壓擴(kuò)(companding)算法,另一種稱為A律壓擴(kuò)算法。
圖3-09 非均勻量化
3.2.4 m 律壓擴(kuò)
m 律(m -Law)壓擴(kuò)(G.711)主要用在北美和日本等地區(qū)的數(shù)字電話通信中,按下面的式子確定量化輸入和輸出的關(guān)系:  式中:x為輸入信號(hào)幅度,規(guī)格化成-1≤x≤1 ; sgn(x)為x的極性; m 為確定壓縮量的參數(shù),它反映最大量化間隔和最小量化間隔之比,取100 £ m £ 500。 由于m 律壓擴(kuò)的輸入和輸出關(guān)系是對(duì)數(shù)關(guān)系,所以這種編碼又稱為對(duì)數(shù)PCM。具體計(jì)算時(shí),用m=255,把對(duì)數(shù)曲線變成8條折線以簡(jiǎn)化計(jì)算過(guò)程。詳細(xì)計(jì)算請(qǐng)看參考文獻(xiàn)[17]。
3.2.5 A律壓擴(kuò)
A律(A-Law)壓擴(kuò)(G.711)主要用在歐洲和中國(guó)大陸等地區(qū)的數(shù)字電話通信中,按下面的式子確定量化輸入和輸出的關(guān)系: 0 £ |x| £ 1/A 1/A < |x| £ 1 式中:x為輸入信號(hào)幅度,規(guī)格化成 -1 £ x £ 1; sgn(x)為x的極性; A為確定壓縮量的參數(shù),它反映最大量化間隔和最小量化間隔之比。 A律壓擴(kuò)的前一部分是線性的,其余部分與m 律壓擴(kuò)相同。具體計(jì)算時(shí),A=87.56,為簡(jiǎn)化計(jì)算,同樣把對(duì)數(shù)曲線部分變成折線。詳細(xì)計(jì)算請(qǐng)看參考文獻(xiàn)[17]。 對(duì)于采樣頻率為8 kHz,樣本精度為13位、14位或者16位的輸入信號(hào),使用m 律壓擴(kuò)編碼或者使用A律壓擴(kuò)編碼,經(jīng)過(guò)PCM編碼器之后每個(gè)樣本的精度為8位,輸出的數(shù)據(jù)率為64 kb/s。這個(gè)數(shù)據(jù)就是CCITT推薦的G.711標(biāo)準(zhǔn):話音頻率脈沖編碼調(diào)制(Pulse Code Modulation (PCM) of Voice Frequences)。
3.3 PCM在通信中的應(yīng)用
PCM編碼早期主要用于話音通信中的多路復(fù)用。一般來(lái)說(shuō),在電信網(wǎng)中傳輸媒體費(fèi)用約占總成本的65%,設(shè)備費(fèi)用約占成本的35%,因此提高線路利用率是一個(gè)重要課題。提高線路利用率通常用下面兩種方法: 1. 頻分多路復(fù)用 (frequency-division multiplexing,F(xiàn)DM) 這種方法是把傳輸信道的頻帶分成好幾個(gè)窄帶,每個(gè)窄帶傳送一路信號(hào)。例如,一個(gè)信道的頻帶為1400 Hz,把這個(gè)信道分成4個(gè)子信道(subchannels):820~990 Hz, 1230~1400 Hz, 1640~1810 Hz和2050~2220 Hz,相鄰子信道間相距240 Hz,用于確保子信道之間不相互干擾。每對(duì)用戶僅占用其中的一個(gè)子信道。這是模擬載波通信的主要手段。 2. 時(shí)分多路復(fù)用(time-division multiplexing,TDM) 這種方法是把傳輸信道按時(shí)間來(lái)分割,為每個(gè)用戶指定一個(gè)時(shí)間間隔,每個(gè)間隔里傳輸信號(hào)的一部分,這樣就可以使許多用戶同時(shí)使用一條傳輸線路。這是數(shù)字通信的主要手段。例如,話音信號(hào)的采樣頻率f=8000 Hz,它的采樣周期=125 m s,這個(gè)時(shí)間稱為1幀(frame)。在這個(gè)時(shí)間里可容納的話路數(shù)有兩種規(guī)格:24路制和30路制。圖3-10表示了24路制的結(jié)構(gòu)。
 圖3-10 24路PCM的幀結(jié)構(gòu)
24路制的重要參數(shù)如下:
●每秒鐘傳送8000幀,每幀125 m s。 ●12幀組成1復(fù)幀(用于同步)。 ●每幀由24個(gè)時(shí)間片(信道)和1位同步位組成。 ●每個(gè)信道每次傳送8位代碼,1幀有24 × 8 +1=193位(位)。 ●數(shù)據(jù)傳輸率R=8000×193=1544 kb/s。 ●每一個(gè)話路的數(shù)據(jù)傳輸率=8000×8=64 kb/s。 30路制的重要參數(shù)如下: ●每秒鐘傳送8000幀,每幀125 ms。 ●16幀組成1復(fù)幀(用于同步)。 ●每幀由32個(gè)時(shí)間片(信道)組成。 ●每個(gè)信道每次傳送8位代碼。 ●數(shù)據(jù)傳輸率:R=8000×32×8=2048 kb/s。 ●每一個(gè)話路的數(shù)據(jù)傳輸率=8000×8=64 kb/s。 時(shí)分多路復(fù)用(TDM)技術(shù)已廣泛用在數(shù)字電話網(wǎng)中,為反映PCM信號(hào)復(fù)用的復(fù)雜程度,通常用“群(group)”這個(gè)術(shù)語(yǔ)來(lái)表示,也稱為數(shù)字網(wǎng)絡(luò)的等級(jí)。PCM通信方式發(fā)展很快,傳輸容量已由一次群(基群)的30路(或24路),增加到二次群的120路(或96路),三次群的480路(或384路),……。圖3-11表示二次復(fù)用的示意圖。圖中的N表示話路數(shù),無(wú)論N=30還是N=24,每個(gè)信道的數(shù)據(jù)率都是64 kb/s,經(jīng)過(guò)一次復(fù)用后的數(shù)據(jù)率就變成2048 kb/s(N=30)或者1544 kb/s(N=24)。在數(shù)字通信中,具有這種數(shù)據(jù)率的線路在北美叫做T1遠(yuǎn)距離數(shù)字通信線,提供這種數(shù)據(jù)率服務(wù)的級(jí)別稱為T1等級(jí),在歐洲叫做E1遠(yuǎn)距離數(shù)字通信線和E1等級(jí)。T1/E1,T2/E2,T3/E3,T4/E4和T5/E5的數(shù)據(jù)率如表3-02所示。請(qǐng)注意,上述基本概念都是在多媒體通信中經(jīng)常用到的。
 圖3-11 二次復(fù)用示意圖
表3-02 多次復(fù)用的數(shù)據(jù)傳輸率
|
數(shù)字網(wǎng)絡(luò)等級(jí) |
T1/E1 |
T2/E2 |
T3/E3 |
T4/E4 |
T5/E5 |
美國(guó) |
64 kb/s話路數(shù) |
24 |
96 |
672 |
4.32 |
|
|
總傳輸率(Mb/s) |
1.544 |
6.512 |
44.736 |
274.176 |
|
|
數(shù)字網(wǎng)絡(luò)等級(jí) |
1 |
2 |
3 |
4 |
5 |
歐洲 |
64 kb/s話路數(shù) |
30 |
120 |
480 |
1920 |
7680 |
|
總傳輸率(Mb/s) |
2.048 |
8.448 |
34.368 |
139.264 |
5600 |
日本 |
64 kb/s話路數(shù) |
24 |
96 |
480 |
1440 |
|
|
總傳輸率(Mb/s) |
1.544 |
6.312 |
32.064 |
97.728 |
|
3.4 增量調(diào)制與自適應(yīng)增量調(diào)制
由于DM編碼的簡(jiǎn)單性,它已成為數(shù)字通信和壓縮存儲(chǔ)的一種重要方法,很多人對(duì)最早在1946年發(fā)明的DM系統(tǒng)做了大量的改進(jìn)和提高工作。后來(lái)的自適應(yīng)增量調(diào)制ADM系統(tǒng)采用十分簡(jiǎn)單的算法就能實(shí)現(xiàn)32 kb/s~48 kb/s的數(shù)據(jù)率,而且可提供高質(zhì)量的重構(gòu)話音,它的MOS評(píng)分可達(dá)到4.3分左右。
3.4.1 增量調(diào)制(DM)
增量調(diào)制也稱△調(diào)制(delta modulation,DM),它是一種預(yù)測(cè)編碼技術(shù),是PCM編碼的一種變形。PCM是對(duì)每個(gè)采樣信號(hào)的整個(gè)幅度進(jìn)行量化編碼,因此它具有對(duì)任意波形進(jìn)行編碼的能力;DM是對(duì)實(shí)際的采樣信號(hào)與預(yù)測(cè)的采樣信號(hào)之差的極性進(jìn)行編碼,將極性變成“0”和“1”這兩種可能的取值之一。如果實(shí)際的采樣信號(hào)與預(yù)測(cè)的采樣信號(hào)之差的極性為“正”,則用“1”表示;相反則用“0”表示,或者相反。由于DM編碼只須用1位對(duì)話音信號(hào)進(jìn)行編碼,所以DM編碼系統(tǒng)又稱為“1位系統(tǒng)”。 DM波形編碼的原理如圖3-12所示。縱坐標(biāo)表示“模擬信號(hào)輸入幅度”,橫坐標(biāo)表示“編碼輸出”。用i表示采樣點(diǎn)的位置,x[i]表示在i點(diǎn)的編碼輸出。輸入信號(hào)的實(shí)際值用yi表示,輸入信號(hào)的預(yù)測(cè)值用y[i+1]=y[i]±Δ表示。假設(shè)采用均勻量化,量化階的大小為Δ,在開(kāi)始位置的輸入信號(hào)y0=0,預(yù)測(cè)值y[0]=0,編碼輸出x[0]=1。 現(xiàn)在讓我們看幾個(gè)采樣點(diǎn)的輸出。在采樣點(diǎn)i=1處,預(yù)測(cè)值y[1]=Δ,由于實(shí)際輸入信號(hào)大于預(yù)測(cè)值,因此x[1]=1;… ;在采樣點(diǎn)i=4處,預(yù)測(cè)值x[4] =4Δ,同樣由于實(shí)際輸入信號(hào)大于預(yù)測(cè)值,因此x[4]=1;其他情況依此類推。 從圖3-12中可以看到,在開(kāi)始階段增量調(diào)制器的輸出不能保持跟蹤輸入信號(hào)的快速變化,這種現(xiàn)象就稱為增量調(diào)制器的“斜率過(guò)載”(slope overload)。一般來(lái)說(shuō),當(dāng)輸入信號(hào)的變化速度超過(guò)反饋回路輸出信號(hào)的最大變化速度時(shí),就會(huì)出現(xiàn)斜率過(guò)載。之所以會(huì)出現(xiàn)這種現(xiàn)象,主要是反饋回路輸出信號(hào)的最大變化速率受到量化階大小的限制,因?yàn)榱炕A的大小是固定的。 從圖3-12中還可以看到,在輸入信號(hào)緩慢變化部分,即輸入信號(hào)與預(yù)測(cè)信號(hào)的差值接近零的區(qū)域,增量調(diào)制器的輸出出現(xiàn)隨機(jī)交變的“0”和“1”。這種現(xiàn)象稱為增量調(diào)制器的粒狀噪聲(granular noise),這種噪聲是不可能消除的。
 圖3-12 DM波形編碼示意圖
在輸入信號(hào)變化快的區(qū)域,斜率過(guò)載是關(guān)心的焦點(diǎn),而在輸入信號(hào)變化慢的區(qū)域,關(guān)心的焦點(diǎn)是粒狀噪聲。為了盡可能避免出現(xiàn)斜率過(guò)載,就要加大量化階Δ,但這樣做又會(huì)加大粒狀噪聲;相反,如果要減小粒狀噪聲,就要減小量化階Δ,這又會(huì)使斜率過(guò)載更加嚴(yán)重。這就促進(jìn)了對(duì)自適應(yīng)增量調(diào)制(adaptive delta modulation,ADM)的研究。
3.4.2 自適應(yīng)增量調(diào)制(ADM)
為了使增量調(diào)制器的量化階Δ能自適應(yīng),也就是根據(jù)輸入信號(hào)斜率的變化自動(dòng)調(diào)整量化階Δ的大小,以使斜率過(guò)載和粒狀噪聲都減到最小,許多研究人員研究了各種各樣的方法,而且?guī)缀跛械姆椒ɑ旧隙际窃跈z測(cè)到斜率過(guò)載時(shí)開(kāi)始增大量化階Δ,而在輸入信號(hào)的斜率減小時(shí)降低量化階Δ。 例如,宋(Song)在1971描述的自適應(yīng)增量調(diào)制技術(shù)中提出:假定增量調(diào)制器的輸出為1和0,每當(dāng)輸出不變時(shí)量化階增大50%,使預(yù)測(cè)器的輸出跟上輸入信號(hào);每當(dāng)輸出值改變時(shí),量化階減小50%,使粒狀噪聲減到最小,這種自適應(yīng)方法使斜率過(guò)載和粒狀噪聲同時(shí)減到最小。 又如,使用較多的另一種自適應(yīng)增量調(diào)制器是由格林弗基斯(Greefkes)1970提出的,稱為連續(xù)可變斜率增量調(diào)制(continuously variable slope delta modulation,CVSD)。它的基本方法是:如果連續(xù)可變斜率增量調(diào)制器(continuously variable slope delta modulator,CVSD)的輸出連續(xù)出現(xiàn)三個(gè)相同的值,量化階就加上一個(gè)大的增量,反之,就加一個(gè)小的增量。 為了適應(yīng)數(shù)字通信快速增長(zhǎng)的需要,Motorola公司于80年代初期就已經(jīng)開(kāi)發(fā)了實(shí)現(xiàn)CVSD算法的集成電路芯片。如MC3417/MC3517和MC3418/MC3518,前者采用3位算法,后者采用4位算法。MC3417/MC3517用于一般的數(shù)字通信,MC3418/MC3518用于數(shù)字電話。MC3417/MC3418用于民用,MC3517/MC3518用于軍用。
3.5 自適應(yīng)差分脈沖編碼調(diào)制
G.711使用A律或μ律PCM方法對(duì)采樣率為8 kHz的聲音數(shù)據(jù)進(jìn)行壓縮,壓縮后的數(shù)據(jù)率為64 kb/s。為了提高充分利用線路資源,而又不希望明顯降低傳送話音信號(hào)的質(zhì)量,就要對(duì)它作進(jìn)一步壓縮,方法之一就是采用ADPCM。
3.5.1 自適應(yīng)脈沖編碼調(diào)制(APCM)的概念
自適應(yīng)脈沖編碼調(diào)制(adaptive pulse code modulation,APCM)是根據(jù)輸入信號(hào)幅度大小來(lái)改變量化階大小的一種波形編碼技術(shù)。這種自適應(yīng)可以是瞬時(shí)自適應(yīng),即量化階的大小每隔幾個(gè)樣本就改變,也可以是音節(jié)自適應(yīng),即量化階的大小在較長(zhǎng)時(shí)間周期里發(fā)生變化。 改變量化階大小的方法有兩種:一種稱為前向自適應(yīng)(forward adaptation),另一種稱為后向自適應(yīng)(backward adaptation)。前者是根據(jù)未量化的樣本值的均方根值來(lái)估算輸入信號(hào)的電平,以此來(lái)確定量化階的大小,并對(duì)其電平進(jìn)行編碼作為邊信息(side information)傳送到接收端。后者是從量化器剛輸出的過(guò)去樣本中來(lái)提取量化階信息。由于后向自適應(yīng)能在發(fā)收兩端自動(dòng)生成量化階,所以它不需要傳送邊信息。前向自適應(yīng)和后向自適應(yīng)APCM的基本概念,如圖3-13所示。圖中的s(k)是發(fā)送端編碼器的輸入信號(hào),sr(k)是接收端譯碼器輸出的信號(hào)。
 (a) 前向自適應(yīng)

(b) 后向自適應(yīng) 圖3-13 APCM方塊圖
3.5.2 差分脈沖編碼調(diào)制(DPCM)的概念
差分脈沖編碼調(diào)制DPCM(differential pulse code modulation)是利用樣本與樣本之間存在的信息冗余度來(lái)進(jìn)行編碼的一種數(shù)據(jù)壓縮技術(shù)。差分脈沖編碼調(diào)制的思想是,根據(jù)過(guò)去的樣本去估算(estimate)下一個(gè)樣本信號(hào)的幅度大小,這個(gè)值稱為預(yù)測(cè)值,然后對(duì)實(shí)際信號(hào)值與預(yù)測(cè)值之差進(jìn)行量化編碼,從而就減少了表示每個(gè)樣本信號(hào)的位數(shù)。它與脈沖編碼調(diào)制(PCM)不同的是,PCM是直接對(duì)采樣信號(hào)進(jìn)行量化編碼,而DPCM是對(duì)實(shí)際信號(hào)值與預(yù)測(cè)值之差進(jìn)行量化編碼,存儲(chǔ)或者傳送的是差值而不是幅度絕對(duì)值,這就降低了傳送或存儲(chǔ)的數(shù)據(jù)量。此外,它還能適應(yīng)大范圍變化的輸入信號(hào)。 差分脈沖編碼調(diào)制的概念示于圖3-14。圖中,差分信號(hào)d(k)是離散輸入信號(hào)s(k)和預(yù)測(cè)器輸出的估算值se(k-1)之差。注意,se(k-1)是對(duì)s(k)的預(yù)測(cè)值,而不是過(guò)去樣本的實(shí)際值。DPCM系統(tǒng)實(shí)際上就是對(duì)這個(gè)差值d(k)進(jìn)行量化編碼,用來(lái)補(bǔ)償過(guò)去編碼中產(chǎn)生的量化誤差。DPCM系統(tǒng)是一個(gè)負(fù)反饋系統(tǒng),采用這種結(jié)構(gòu)可以避免量化誤差的積累。重構(gòu)信號(hào)sr(k)是由逆量化器產(chǎn)生的量化差分信號(hào)dq(k),與對(duì)過(guò)去樣本信號(hào)的估算值se(k-1)求和得到。它們的和,即sr(k)作為預(yù)測(cè)器確定下一個(gè)信號(hào)估算值的輸入信號(hào)。由于在發(fā)送端和接收se(k-1)端都使用相同的逆量化器和預(yù)測(cè)器,所以接收端的重構(gòu)信號(hào)sr(k)可從傳送信號(hào)I(k)獲得。
 圖3-14 DPCM方塊圖
3.5.3 自適應(yīng)差分脈沖編碼調(diào)制(ADPCM)
ADPCM(adaptive difference pulse code modulation)綜合了APCM的自適應(yīng)特性和DPCM系統(tǒng)的差分特性,是一種性能比較好的波形編碼。它的核心想法是:①利用自適應(yīng)的思想改變量化階的大小,即使用小的量化階(step-size)去編碼小的差值,使用大的量化階去編碼大的差值,②使用過(guò)去的樣本值估算下一個(gè)輸入樣本的預(yù)測(cè)值,使實(shí)際樣本值和預(yù)測(cè)值之間的差值總是最小。它的編碼簡(jiǎn)化框圖如圖3-15所示。 接收端的譯碼器使用與發(fā)送端相同的算法,利用傳送來(lái)的信號(hào)來(lái)確定量化器和逆量化器中的量化階大小,并且用它來(lái)預(yù)測(cè)下一個(gè)接收信號(hào)的預(yù)測(cè)值。
 圖3-15 ADPCM方塊圖
3.5.4 G.721 ADPCM編譯碼器
ADPCM是利用樣本與樣本之間的高度相關(guān)性和量化階自適應(yīng)來(lái)壓縮數(shù)據(jù)的一種波形編碼技術(shù),CCITT為此制定了G.721推薦標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)叫做32 kb/s自適應(yīng)差分脈沖編碼調(diào)制——32 kb/s Adaptive Differential Pulse Code Modulation[7]。在此基礎(chǔ)上還制定了G.721的擴(kuò)充推薦標(biāo)準(zhǔn),即G.723 —— Extension of Recommendation G.721 Adaptive Differential Pulse Code Modulation to 24 and 40 kb/s for Digital Circuit Multiplication Equipment Application,使用該標(biāo)準(zhǔn)的編碼器的數(shù)據(jù)率可降低到40 kb/s和24 kb/s。 CCITT推薦的G.721 ADPCM標(biāo)準(zhǔn)是一個(gè)代碼轉(zhuǎn)換系統(tǒng)。它使用ADPCM轉(zhuǎn)換技術(shù),實(shí)現(xiàn)64 kb/s A律或μ律PCM速率和32 kb/s速率之間的相互轉(zhuǎn)換。G.721 ADPCM的簡(jiǎn)化框圖如圖3-16所示。
 (a) ADPCM編碼器
(b) ADPCM譯碼器 圖3-16 G.721 ADPCM簡(jiǎn)化框圖
在圖3-16(a)所示的編碼器中,A律或μ律PCM輸入信號(hào)轉(zhuǎn)換成均勻的PCM。差分信號(hào)等于均勻的PCM輸入信號(hào)與預(yù)測(cè)信號(hào)之差?!白赃m應(yīng)量化器”用4位二進(jìn)制數(shù)表示差分信號(hào),但只用其中的15個(gè)數(shù)(即15個(gè)量級(jí))來(lái)表示差分信號(hào),這是為防止出現(xiàn)全“0”信號(hào)?!澳孀赃m應(yīng)量化器”從這4位相同的代碼中產(chǎn)生量化差分信號(hào)。預(yù)測(cè)信號(hào)和這個(gè)量化差分信號(hào)相加產(chǎn)生重構(gòu)信號(hào)。“自適應(yīng)預(yù)測(cè)器”根據(jù)重構(gòu)信號(hào)和量化差分信號(hào)產(chǎn)生輸入信號(hào)的預(yù)測(cè)信號(hào),這樣就構(gòu)成了一個(gè)負(fù)反饋回路。 G.721 ADPCM編譯碼器的輸入信號(hào)是G.711 PCM代碼,采樣率是8 kHz,每個(gè)代碼用8位表示,因此它的數(shù)據(jù)率為64 kb/s。而G.721 ADPCM的輸出代碼是“自適應(yīng)量化器”的輸出,該輸出是用4位表示的差分信號(hào),它的采樣率仍然是8 kHz,它的數(shù)據(jù)率為32 kb/s,這樣就獲得了2∶1的數(shù)據(jù)壓縮。 在圖3-16(b)所示的譯碼器中,譯碼器的部分結(jié)構(gòu)與編碼器負(fù)反饋回路部分相同。此外,還包含有均勻PCM到A律或μ律PCM的轉(zhuǎn)換部分,以及同步編碼調(diào)整(synchronous coding adjustment)部分。設(shè)置同步(串行)編碼調(diào)整的目的是為防止在同步串行編碼期間出現(xiàn)的累積信號(hào)失真。
3.6 G.722 SB-ADPCM編譯碼器
為了適應(yīng)可視電話會(huì)議日益增長(zhǎng)的迫切需要,1988年CCITT為此制定了G.722推薦標(biāo)準(zhǔn),叫做“數(shù)據(jù)率為64 kb/s的7 kHz聲音信號(hào)編碼——7 kHz Audio-coding with 64 kb/s”[8][9]。這個(gè)標(biāo)準(zhǔn)把話音信號(hào)的質(zhì)量由電話質(zhì)量提高到AM無(wú)線電廣播質(zhì)量,而其數(shù)據(jù)傳輸率仍保持為64 kb/s。 寬帶話音是指帶寬在50~7000 Hz的話音,這種話音在可懂度和自然度方面都比帶寬為300~3400的話音有明顯的提高,也更容易識(shí)別對(duì)方的說(shuō)話人。
3.6.1 子帶編碼(SBC)
子帶編碼(subband coding,SBC)的基本思想是:使用一組帶通濾波器(band-pass filter,BPF)把輸入音頻信號(hào)的頻帶分成若干個(gè)連續(xù)的頻段,每個(gè)頻段稱為子帶。對(duì)每個(gè)子帶中的音頻信號(hào)采用單獨(dú)的編碼方案去編碼。在信道上傳送時(shí),將每個(gè)子帶的代碼復(fù)合起來(lái)。在接收端譯碼時(shí),將每個(gè)子帶的代碼單獨(dú)譯碼,然后把它們組合起來(lái),還原成原來(lái)的音頻信號(hào)。子帶編碼的方塊圖如圖3-17所示,圖中的編碼/譯碼器,可以采用ADPCM,APCM,PCM等。
圖3-17 子帶編碼方塊圖
采用對(duì)每個(gè)子帶分別編碼的好處有二個(gè)。第一,對(duì)每個(gè)子帶信號(hào)分別進(jìn)行自適應(yīng)控制,量化階(quantization step)的大小可以按照每個(gè)子帶的能量電平加以調(diào)節(jié)。具有較高能量電平的子帶用大的量化階去量化,以減少總的量化噪聲。第二,可根據(jù)每個(gè)子帶信號(hào)在感覺(jué)上的重要性,對(duì)每個(gè)子帶分配不同的位數(shù),用來(lái)表示每個(gè)樣本值。例如,在低頻子帶中,為了保護(hù)音調(diào)和共振峰的結(jié)構(gòu),就要求用較小的量化階、較多的量化級(jí)數(shù),即分配較多的位數(shù)來(lái)表示樣本值。而話音中的摩擦音和類似噪聲的聲音,通常出現(xiàn)在高頻子帶中,對(duì)它分配較少的位數(shù)。 音頻頻帶的分割可以用樹(shù)型結(jié)構(gòu)的式樣進(jìn)行劃分。首先把整個(gè)音頻信號(hào)帶寬分成兩個(gè)相等帶寬的子帶:高頻子帶和低頻子帶。然后對(duì)這兩個(gè)子帶用同樣的方法劃分,形成4個(gè)子帶。這個(gè)過(guò)程可按需要重復(fù)下去,以產(chǎn)生2K個(gè)子帶,K為分割的次數(shù)。用這種辦法可以產(chǎn)生等帶寬的子帶,也可以生成不等帶寬的子帶。例如,對(duì)帶寬為4000 Hz的音頻信號(hào),當(dāng)K=3時(shí),可分為8個(gè)相等帶寬的子帶,每個(gè)子帶的帶寬為500 Hz。也可生成5個(gè)不等帶寬的子帶,分別為[0,500),[500,1000),[1000,2000),[2000,3000)和[3000,4000]。 把音頻信號(hào)分割成相鄰的子帶分量之后,用2倍于子帶帶寬的采樣頻率對(duì)子帶信號(hào)進(jìn)行采樣,就可以用它的樣本值重構(gòu)出原來(lái)的子帶信號(hào)。例如,把4000 Hz帶寬分成4個(gè)等帶寬子帶時(shí),子帶帶寬為1000 Hz,采樣頻率可用2000 Hz,它的總采樣率仍然X是8000 Hz。 由于分割頻帶所用的濾波器不是理想的濾波器,經(jīng)過(guò)分帶、編碼、譯碼后合成的輸出音頻信號(hào)會(huì)有混迭效應(yīng)。據(jù)有關(guān)資料的分析,采用正交鏡象濾波器(quandrature mirror filter,QMF)來(lái)劃分頻帶,混迭效應(yīng)在最后合成時(shí)可以抵消。 圖3-18表示用QMF分割頻帶的子帶編譯碼簡(jiǎn)化框圖。圖中表示用QMF把全帶音頻信號(hào)分割成兩個(gè)等帶寬子帶的情況。hH(n)和hL(n)分別表示高通濾波器和低通濾波器,它們組成一對(duì)正交鏡象濾波器。這兩個(gè)濾波器也叫做分析濾波器。圖3-18(b)是QMF簡(jiǎn)化的幅頻特性。
 (a) QMF分割頻道方框圖
 (b) QMF幅頻特性簡(jiǎn)化圖
圖3-18 采用QMF的子帶編譯碼簡(jiǎn)化框圖
子帶編碼器SBC愈來(lái)愈受到重視。在中等速率的編碼系統(tǒng)中,SBC的動(dòng)態(tài)范圍寬、音質(zhì)高、成本低。使用子帶編碼技術(shù)的編譯碼器已開(kāi)始用于話音存儲(chǔ)轉(zhuǎn)發(fā)(voice store-and-forward)和話音郵件,采用2個(gè)子帶和ADPCM的編碼系統(tǒng)也已由CCITT作為G.722標(biāo)準(zhǔn)向全世界推薦使用。
3.6.2 子帶-自適應(yīng)差分脈沖編碼調(diào)制(SB-ADPCM)
采樣率為8 kHz、8位/樣本、數(shù)據(jù)率為64 kb/s的G.711標(biāo)準(zhǔn)是CCITT為話音信號(hào)頻率為300~3400 Hz制定的編譯碼標(biāo)準(zhǔn),這屬于窄帶音頻信號(hào)編碼。現(xiàn)代的話音編碼技術(shù)已經(jīng)可以減少數(shù)據(jù)率,而又不致于顯著降低音質(zhì)。CCITT推薦的8 kHz采樣率、4位/樣本、32 kb/s的G.721標(biāo)準(zhǔn),以及G.721的擴(kuò)充標(biāo)準(zhǔn)G.723,都說(shuō)明了話音壓縮編碼技術(shù)的進(jìn)展。 G.722是CCITT推薦的音頻信號(hào)(audio)編碼譯碼標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)是描述音頻信號(hào)帶寬為7 kHz、數(shù)據(jù)率為64 kb/s的編譯碼原理、算法和計(jì)算細(xì)節(jié)。G.722的主要目標(biāo)是保持64 kb/s的數(shù)據(jù)率,而音頻信號(hào)的質(zhì)量要明顯高于G.711的質(zhì)量。G.722標(biāo)準(zhǔn)把音頻信號(hào)采樣頻率由8 kHz提高到16 kHz,是G.711 PCM采樣率的2倍,因而要被編碼的信號(hào)頻率由原來(lái)的3.4 kHz擴(kuò)展到7 kHz。這就使音頻信號(hào)的質(zhì)量有很大改善,由數(shù)字電話的話音質(zhì)量提高到調(diào)幅(AM)無(wú)線電廣播的質(zhì)量。對(duì)話音信號(hào)質(zhì)量來(lái)說(shuō),提高采樣率并無(wú)多大改善,但對(duì)音樂(lè)一類信號(hào)來(lái)說(shuō),其質(zhì)量卻有很大提高。圖3-19對(duì)窄帶話音和寬帶音頻信道作了比較。G.722編碼標(biāo)準(zhǔn)在音頻信號(hào)的低頻端把截止頻率擴(kuò)展到50 Hz,其目的是為進(jìn)一步改善音頻信號(hào)的自然度。
 圖3-19 窄帶和寬帶音頻信道頻率特性
在端對(duì)端(end-to-end)的數(shù)字連接應(yīng)用中,加到電話網(wǎng)上的回音(echo)音源并不十分強(qiáng)。然而,當(dāng)把現(xiàn)存窄帶通信鏈路和寬帶會(huì)議系統(tǒng)相互連接時(shí),這種連接就可能引入比較強(qiáng)的回音源。如果寬帶信號(hào)端對(duì)端的延遲不加限制,回音控制就可能變得很困難。為了簡(jiǎn)化回音控制,G.722編譯碼器引入的延遲時(shí)間限制在4 ms以內(nèi)。 在某些應(yīng)用場(chǎng)合中,也許希望從64 kb/s信道中讓出一部分信道用來(lái)傳送其它的數(shù)據(jù)。因此,G.722定了三種音頻信號(hào)傳送方式,如表3-03所示。北美洲的信息限制音頻信號(hào)速率為56 kb/s,因此有8 kb/s的數(shù)據(jù)率用來(lái)傳送附加數(shù)據(jù)。
表3-03運(yùn)行方式
方式 |
7 kHz音頻信號(hào)編碼位速率 |
附加數(shù)據(jù)信道位速度 |
1 |
64 kb/s |
0 kb/s |
2 |
56 kb/s |
8 kb/s |
3 |
48 kb/s |
16 kb/s |
G.722編譯碼系統(tǒng)采用子帶自適應(yīng)差分脈沖編碼調(diào)制(sub-band adaptive differential pulse code modulation,SB-ADPCM)技術(shù)。在這個(gè)系統(tǒng)中,用正交鏡象濾波器(QMF)把頻帶分割成兩個(gè)等帶寬的子帶,分別是高頻子帶和低頻子帶。在每個(gè)子帶中的信號(hào)都用ADPCM進(jìn)行編碼。圖3-20是QMF的頻率響應(yīng)曲線,圖3-21表示G.722的簡(jiǎn)化框圖。低頻帶寬略大于常規(guī)的電話話音帶寬。對(duì)高子帶分配2位表示每個(gè)樣本值,而低子帶分配6位。因?yàn)?4 kb/s的G.722標(biāo)準(zhǔn)主要還是針對(duì)寬帶話音,其次才是音樂(lè)。
圖3-20 QMF濾波器的頻率響應(yīng)特性
 圖3-21 7 kHz音頻信號(hào)64 kb/s數(shù)據(jù)率的編譯碼方塊圖
3.7 線性預(yù)測(cè)編碼(LPC)的概念
線性預(yù)測(cè)編碼(linear predictive coding,LPC)是一種非常重要的編碼方法。從原理上講,LPC是通過(guò)分析話音波形來(lái)產(chǎn)生聲道激勵(lì)和轉(zhuǎn)移函數(shù)的參數(shù),對(duì)聲音波形的編碼實(shí)際就轉(zhuǎn)化為對(duì)這些參數(shù)的編碼,這就使聲音的數(shù)據(jù)量大大減少。在接收端使用LPC分析得到的參數(shù),通過(guò)話音合成器重構(gòu)話音。合成器實(shí)際上是一個(gè)離散的隨時(shí)間變化的時(shí)變線性濾波器,它代表人的話音生成系統(tǒng)模型。時(shí)變線性濾波器既當(dāng)作預(yù)測(cè)器使用,又當(dāng)作合成器使用。分析話音波形時(shí),主要是當(dāng)作預(yù)測(cè)器使用,合成話音時(shí)當(dāng)作話音生成模型使用。隨著話音波形的變化,周期性地使模型的參數(shù)和激勵(lì)條件適合新的要求。 線性預(yù)測(cè)器是使用過(guò)去的P個(gè)樣本值來(lái)預(yù)測(cè)現(xiàn)時(shí)刻的采樣值x(n)。如圖3-22所示,預(yù)測(cè)值可以用過(guò)去P個(gè)樣本值的線性組合來(lái)表示: xpre(n) = -[a1x(n-1)+a2x(n-2)+……+apx(n-p)] =  為方便起見(jiàn),式中采用了負(fù)號(hào)。殘差誤差(residual error)即線性預(yù)測(cè)誤差為 e(n)=x(n)-xpre(n) = 這是一個(gè)線性差分方程。 在給定的時(shí)間范圍里,如[n0,n1],使e(n)的平方和即β=[e(n)]2為最小,這樣可使預(yù)測(cè)得到的樣本值更精確。通過(guò)求解偏微分方程,可找到系數(shù)ai的值。如果把發(fā)音器官等效成濾波器,這些系數(shù)值就可以理解成濾波器的系數(shù)。這些參數(shù)不再是聲音波形本身的值,而是發(fā)音器官的激勵(lì)參數(shù)。在接收端重構(gòu)的話音也不再具體復(fù)現(xiàn)真實(shí)話音的波形,而是合成的聲音。
 圖3-22 預(yù)測(cè)概念
3.8 GSM編譯碼器簡(jiǎn)介
除了ADPCM算法已經(jīng)得到普遍應(yīng)用之外,還有一種使用較普遍的波形聲音壓縮算法叫做GSM算法。GSM是Global System for Mobile communications的縮寫,可譯成全球數(shù)字移動(dòng)通信系統(tǒng)。GSM算法是1992年柏林技術(shù)大學(xué)(Technical University Of Berlin)根據(jù)GSM協(xié)議開(kāi)發(fā)的,這個(gè)協(xié)議是歐洲最流行的數(shù)字蜂窩電話通信協(xié)議。 GSM的輸入是幀(frame)數(shù)據(jù),一幀(20毫秒)由采樣頻率為8 kHz的帶符號(hào)的160個(gè)樣本組成,每個(gè)樣本為13位或者16位的線性PCM(linear PCM)碼。GSM編碼器可把一幀(160×16位)的數(shù)據(jù)壓縮成260位的GSM幀,壓縮后的數(shù)據(jù)率為1625字節(jié),相當(dāng)于13 kb/s。由于260位不是8位的整數(shù)倍,因此編碼器輸出的GSM幀為264位的線性PCM碼。采樣頻率為8 kHz、每個(gè)樣本為16位的未壓縮的話音數(shù)據(jù)率為128 kb/s,使用GSM壓縮后的數(shù)據(jù)率為: (264位×8000樣本/秒)/160樣本=13.2 千位/秒 GSM的壓縮比:128:13.2 = 9.7,近似于10:1。
練習(xí)與思考題
- 用自己的語(yǔ)言說(shuō)出下面3種話音編譯碼器的基本想法。
① 波形編譯碼器,②音源編譯碼器,③混合編譯碼器
- 列出你所知道的話音編譯碼器的主要指標(biāo)(至少2個(gè))。
- 試說(shuō)混合編譯碼器的發(fā)展過(guò)程。
- 什么叫做均勻量化?什么叫做非均勻量化?
- 什么叫做m 律壓擴(kuò)?什么叫做A律壓擴(kuò)?
- G.711標(biāo)準(zhǔn)定義的輸出數(shù)據(jù)率是多少?T1的數(shù)據(jù)率是多少?T2的數(shù)據(jù)率是多少?
- 下圖是DM編碼器的原理圖,如果你已經(jīng)學(xué)過(guò)模擬電路和數(shù)字電路技術(shù)基礎(chǔ),請(qǐng)分析該電路是如何完成增量調(diào)制編碼的。
 DM編碼器原理圖
- 自適應(yīng)脈沖編碼調(diào)制(APCM)的基本思想是什么?
- 差分脈沖編碼調(diào)制(DPCM)的基本思想是什么?
- 自適應(yīng)差分脈沖編碼調(diào)制(ADPCM)的兩個(gè)基本思想是什么?
參考文獻(xiàn)和站點(diǎn)
- Jason Woodard. Speech Coding.
http://www-mobile.ecs./jason/speech_codecs/ (瀏覽日期:1999年1月30日)
- Esin Darici Haritaoglu. Wideband Speech and Audio Coding.
http://www.umiacs./~desin/Speech1/new.html (瀏覽日期:1999年1月30日)
- 美國(guó)普渡大學(xué)課程:http://shay.ecn./~ee649/ (瀏覽日期:1999年2月4日)
- 通信器件:http://www./public/nf/TelecomTables-1.html (瀏覽日期:1999年2月4日)
- Thomas J. Lynch, Ph.D.. Data Compression Techniques and Application. Van Nostrand Reinhold Company,1985
- Thomas W. Parsons. Voice and Speech Processing. McGraw-Hill Book Company. 1986
- Sadaoki Furui. Digital Speech Processing, Synthesis, and Recognition. Marcel Dekker, INC.,1989
- CCITT. Recommendation G.711, Pulse Code Modulation (PCM) of Voice Frequences, Blue Book, Vol.III, Fascicle III.4. 1988
- CCITT. Recommendation G.721, 32 kb/s Adaptive Differential Pulse Code Modulation(ADPCM), Blue Book, Vol.III, Fascicle III.4. 1988
- CCITT. Recommendation G.722, 7 kHz Audio Coding With 64 kb/s, Blue Book, Vol.III, Fascicle III.4. 1988
- Paul Mermelstein, G.722, A New CCITT Coding Standard for Digital Transmission of Wideband Audio Signal. IEEE Communications Magazine,Vol.26, No.1,January 1988
- CCITT. Recommendation G.723, Extensions of Recommendation G.721 ADPCM to 24 and 40 kb/s for DCME Application, Blue Book, Vol.III, Fascicle Ⅲ.4. 1988
- CCITT. Recommendation, G.725, System Aspects for the use of the 7 kHz Audio codec with 64 kb/s, Blue Book, VolⅢ, Fascicle Ⅲ.4. 1988
- CCITT. Study Group XV, Recommendation H.221 Frame Structure for a 64 to 1920 kb/s channel in Audiovisual Teleservices, Revised. 1990
- J.Reimer, M.McMahan and M.Arjmand. 32 kb/s ADPCM with the TMS32010. Texas Instruments, 1986
- Song, C., Garodnic, J., and Schilling, D.C.. A Variable��Step-size Robust Delta Modulator. IEEE Trans. on Comm.Tech,Vol. COM-19, No.6,December 1971,pp1033~1044
- 林福宗, 陸 達(dá) 編著. 多媒體與CD-ROM. 北京:清華大學(xué)出版社,1995.3,171-193
- GSM技術(shù)介紹(瀏覽日期1999年1月):
① http://www./~murti/mqp/2_2.html ② http://www./~murti/mqp/contents.html ③ http://www./wcdma/wcdma/sub_tech/brochures/umts.htm
|