消費類音頻產品的歷史
消費類音頻產品的歷史最早可以追溯到130年前,在開始的100年間,音頻回放只能采用模擬技術。那時采用數字技術的產品體積龐大,價格昂貴,對于消費類產品來說也過于復雜。直到1982年,CD光盤和CD播放器的出現徹底改變了這種局面,黑膠唱片設備似乎一夜之間就消失了。
與此同時,個人電腦的迅速普及使消費類音頻產品與數字技術緊密結合在一起。基于磁盤和閃存的MP3(如iPOD)等數字音樂播放器已經取代了磁帶設備。今后音頻產品的發(fā)展方向是什么呢?那就是更加真實的還原聲音。聲音還原技術一直在不斷的發(fā)展完善,從早期的單聲道到立體聲,再到用多個揚聲器營造的3D環(huán)繞音效。短短幾年間,家庭影院系統(tǒng)已經從5.1聲道進化為10.1聲道。每次技術的飛躍都伴隨著更多聲道,更高的采樣位數,以及更強的處理能力。
日趨復雜的音頻編解碼格式對性能的需求不斷增長,要求處理器的主頻也不斷提高。然而,提高主頻會給設計帶來一系列的問題,更高的主頻意味著更高的功耗,更多的發(fā)熱量,需要容量更大的電池,為了散熱而增加的風扇也會增加產品成本,并會帶來令人討厭的噪音。SoC設計過程中,更高的處理器主頻同時會使時序收斂變得更困難。所有這些問題都應該引起設計者的注意。
迄今為止,銷量最大的數字音頻播放器是移動電話。除了撥打電話的功能,現在的移動電話實際上都是小型的多媒體終端,既可以播放音視頻內容,又能運行包含了復雜音效的游戲,這些功能要求移動電話具有強勁的音頻處理能力,同時功耗又要盡可能的低,因為消費者總是希望他們購買的手機有足夠長的待機時間,同時希望MP3播放器在提供優(yōu)秀音質的同時也能長時間播放。
伴隨著音頻的數字化,視頻也已經完成了數字化。如今大多數的視頻播放設備都兼容多種音頻標準。在汽車音響領域,數字化也在如火如荼的進行中。多年以前,CD被作為標準裝備裝入汽車,近年來,隨著高保真衛(wèi)星廣播的普及,數字收音機也進入了汽車電子領域。在GPS導航設備中,需要文本到語音的轉換,某些GPS設備還兼具個人媒體播放器的功能。
音頻編解碼
編解碼格式是所有數字音頻應用中的核心元素,它定義了模擬音頻信號如何數字化并被壓縮成比特流,以及比特流如何被解壓并還原為模擬音頻信號。
在消費類產品領域最流行的壓縮算法是MP3格式,它于1991年同MPEG-1視頻標準一起推出,90年代中期,誕生了第一臺MP3播放器。隨后,廠商們不停在推廣其他可以提供更高保真度和更低比特率的算法格式,但MP3仍然在音頻標準中占有重要地位,當前幾乎所有的消費類產品都支持MP3格式。
大多數的音頻編解碼算法都采用有損壓縮來降低所需的比特率。有損壓縮可以減小數據交換和存儲的帶寬需求,從而降低成本,這也是廠商們采用有損壓縮的原因。然而,有損壓縮也會降低音頻的質量,質量下降的程度與壓縮算法有關。只要有足夠強大的處理能力,就可以將聲音損失控制在人耳無法分辨的水平,因此壓縮算法研究人員依然在不斷改進他們的算法。不同的應用需要根據自身特點在音頻質量和帶寬需求之間作出平衡,造成了多種數字音頻編解碼格式并存的局面。
當你開始考慮如何實現一種音頻編解碼算法時,你實際上有4種備選方案
1. 在通用處理器上依靠軟件實現音頻編解碼。例如在PC上運行的MP3播放器程序。
2. 利用專用的硬件實現音頻編解碼,早期的便攜MP3播放器采用這種方案。
3. 在DSP處理器上依靠軟件實現音頻編解碼。
4. 在基于通用處理器進行擴展的音頻專用處理器上用軟件實現音頻編解碼。
方案1,用一個通用處理器來實現所有系統(tǒng)功能,包括用戶界面,I/O和數字音頻編解碼。這個方案有以下幾個優(yōu)點。首先,音頻編解碼只是通用處理器上運行的一段軟件程序,唯一的硬件開銷也許只是增加少量的指令內存。其次,由于采用了軟件實現編解碼,可以實現多種編解碼算法。最后,當出現新的編解碼算法時,只需要升級軟件就可以支持。
這種方案也的缺點也很明顯。數字音頻對于暫時失靈很敏感,因為人耳可以捕捉到非常細小的錯誤。在這一點上音頻應用比視頻應用的要求更苛刻。在視頻應用中,一個錯誤的像素往往不會被注意到,而音頻應用中則不然。采用通用處理器來進行音頻編解碼,由于處理器還會執(zhí)行其他的任務,其帶寬并非音頻專用,這樣增加了音頻編解碼暫時失靈的概率。
除此以外,大多數的通用處理器沒有音頻專用指令,不能高效的執(zhí)行音頻編解碼程序,從而不得不提高處理器的主頻,在單位時間里執(zhí)行更多的指令來達到性能要求。
硬件實現編解碼
方案2,采用一顆性能相對較低的處理器搭配專門的音頻處理硬件,所有的音頻處理任務都由專用硬件來完成。通常,這塊硬件作為外設掛在系統(tǒng)總線上。音頻采樣由處理器通過總線送給編解碼硬件,或者由編解碼硬件通過DMA直接從內存中讀取。在這種方案中系統(tǒng)總線也是共享的。
使用專用編解碼硬件的優(yōu)點在于針對某種特定的編解碼格式,它的面積和功耗與其他方案比較是最優(yōu)的。因此90年代中期的MP3播放器都采用這種方案。它的缺點是每種編解碼格式都要增加硬件模塊來支持。如圖1的設計中,為了支持3種編解碼格式,就必須在設計中增加3塊硬件邏輯。因此,在需要多格式音頻的設計中,這種方案就不再具有優(yōu)勢,而幾乎當前所有的SoC設計都需要支持多格式音頻編解碼。其次,如果編解碼算法進行了升級或者出現了bug,為了修復問題,整個SOC芯片就必須重新流片,而不可能通過軟件升級來修正錯誤。此外,實現新的編解碼算法時,必須要設計新的硬件模塊,將它集成到系統(tǒng)設計中,并重新流片。
圖1:在使用專用編解碼硬件的方案中,每種編解碼格式都需增加硬件模塊來支持。
方案3,在通用DSP處理器上通過軟件來實現音頻編解碼,系統(tǒng)中同時包括一顆用來作控制的主處理器(這里的通用DSP處理器是指沒有專門針對音頻處理做過優(yōu)化的DSP處理器)。采用DSP處理器的方案有很多優(yōu)點。首先,DSP處理器中都有硬件乘法器,可以極大提高音頻編解碼程序的執(zhí)行效率。其次,因為采用軟件方式實現,只增加少量的存儲器開銷就可以支持多格式音頻編解碼。實現新的編解碼算法也僅僅需要編寫新的軟件,不必重新流片,從而延長產品的生命周期。
采用DSP的方案也有缺點。大多數DSP的C編譯器效率都比較低,所以一般不用DSP來做控制。系統(tǒng)的控制需要通用處理器來完成。而且,16或32位的DSP處理器對音頻處理來說并不是最理想的。雖然當前大多數編解碼算法采用16位采樣,但在運算的中間過程中為了避免舍入錯誤,需要留有一定余量。所以16位DSP處理器在實現復雜音頻算法時會帶來問題。使用雙精度整數計算可以避免問題,但效率又不夠高導致需要更高的處理器主頻。反過來,32位DSP處理器又不能被充分利用。實際上,對于音頻算法而言,24位DSP處理器是最適合的。
音頻專用RISC處理器
基于上述考慮,我們提出了第4種方案,即采用音頻專用處理器。基于通用處理器進行音頻處理的擴展,使處理器在高效執(zhí)行音頻編解碼程序的同時,保持C編譯器的效率。圖2所示就是一個采用音頻專用處理器進行編解碼的系統(tǒng)。
圖2:采用音頻專用處理器進行編解碼的系統(tǒng)。
這種設計方案有很多優(yōu)點。首先,音頻專用擴展使處理器更加高效的執(zhí)行音頻算法,在較低的主頻下提供算法所需的性能,從而顯著降低系統(tǒng)功耗。與基于DSP的方案一樣,此方案便于實現多格式的音頻編解碼,也可以通過升級軟件來支持新的編解碼算法。它的不足之處在于大家對于音頻專用處理器的概念還很陌生,下面我們就來介紹一下音頻專用處理器。
Tensilica Hi-Fi2音頻處理引擎是基于32位Tensilica Xtensa RISC處理器經過配置和擴展得到的,它可以非常高效的完成音頻處理任務。顧名思義,Hi-Fi2音頻處理引擎是Tensilica第二代音頻處理器。Hi-Fi2音頻處理引擎中最關鍵的擴展就是增加了兩個24位的硬件乘法器,它們可以大大提高音頻計算的速度。
然而,乘法器本身并不會減少執(zhí)行音頻算法需要的周期數,周期數減少是因為Hi-Fi2音頻處理引擎每個周期可以執(zhí)行1到2條指令。48位或56位寬的寄存器可以存放2個24位的采樣值。利用這些寄存器文件可以高效的處理立體聲音頻數據。Tensilica總共在Xtensa RISC處理器上添加了300條音頻專用指令,創(chuàng)建了一個靈活高效的音頻算法處理引擎。
一套優(yōu)秀的音頻SOC解決方案不僅限于高性能的硬件,還需要有編解碼軟件,而由于時間的原因,你可能并不打算自己編寫程序。雖然從互聯(lián)網上可以找到一些音頻處理程序,但是這些程序并沒有經過優(yōu)化,執(zhí)行起來效率不高。其次,像Dolby音頻編解碼這樣需要授權的程序是很難在互聯(lián)網上找到的。目前流行的音頻編解碼算法都已經移植到了Tensilica的Hi-Fi2音頻處理引擎上,而且支持的格式還在不斷增加,如圖3所示,所有這些編解碼程序都是用C語言編寫的。處理器的RISC基本指令和音頻擴展指令都允許程序員繼續(xù)用C語言來編程,在保證性能的前提下,提高了軟件的可維護性。
圖3:目前流行的音頻編解碼算法都已經移植到了Tensilica的Hi-Fi2音頻處理引擎上。
Hi-Fi2音頻處理引擎是采用Tensilica可配置技術,針對Xtensa LX2處理器的一套擴展指令。Tensilica利用這些擴展指令,配置出了Diamond 330Hi-Fi音頻處理器,因此在330Hi-Fi處理器上可以運行所有基于Hi-Fi2音頻處理引擎的編解碼程序。Tensilica的Hi-Fi音頻處理引擎應用于多項產品,在不同的工藝下得到了驗證,出貨量已經達到千萬。當前的最主要的應用還在移動電話領域,今后產品的應用將會擴展到視頻產品,消費類廣播,超便攜PC等領域。