多數消費類視頻產品是以解壓過程中和解壓後所采用的視頻處理技術以及算法來區分的。壹些視頻處理技術可能會采用不同於下面所列舉的方式來實現,而且下列技術在不同的應用場合可能有不同的名稱。 為了創造壹個成功的數字視頻產品,妳需要選擇合適的處理器。聽起來簡單,當然,實際上並不簡單。其中的壹個大問題是,有太多的處理器款式供妳選擇:通用CPU,FPGA,DSP,可配置處理器,固定功能芯片以及其它類型的處理器等。
令問題更加復雜的是,數字視頻是壹個迅速發展的領域,標準不斷發展和變化。因此,在數字視頻領域,處理器適應變化的能力比在其它應用中顯得更加重要,但是,這種靈活性通常是以降低效率為代價的。
選擇處理器的時候,難免要作壹些折衷,但關鍵是要知道,如何選擇處理器,才不至於使產品的成功打折扣。 由於有這麽多的處理器供妳選擇,實際上不可能挨個都看壹遍——甚至無法詳細了解各個主要大類,可以采用分級方法:利用對妳來說最重要的篩選標準先排除不適合的候選者。
進行初選時普遍采用的標準包括:
* 速度。數字視頻任務,像許多其它類型的信號處理任務壹樣,都要求處理器承擔沈重的計算任務。針對目標應用,仔細分析處理器是否具有足夠的速度,最好使用BDTI Video Benchmarks等面向視頻的測試基準。
* 價格。雖然芯片價格很重要,但每通道成本或者總體系統成本可能更加重要。
* 能源效率。在多數情況下,評估能源效率比功耗更有意義,因為能源使用情況決定著電池壽命。
* 靈活性。有些種類的處理器比其它種類的處理器更加靈活,可以適應未來產品特點的變化,或者允許現場升級,如增加對新壓縮算法的支持。但是,壹般來說,處理器靈活性越高,其成本和能源使用效率越低。
* 開發工具質量。處理器是否擁有用於支持信號處理應用(或者更進壹步,視頻應用)開發的工具,可能對於開發時間產生重大影響,並進而影響產品上市時間。
* 與早期處理器型號的兼容性。如果妳期望重復使用早期產品所用的軟件,這點通常很重要。
* 供應商路線圖。供應商的產品路線圖,是否非常符合妳的後續產品開發計劃?在妳的產品壽命期內,處理器能否得到支持或者升級?
* 以芯片或者可授權內核形式銷售。有些處理器是作為封裝好的現成芯片出售的;有些是作為可授權知識產權出售的――通常被稱為可授權內核,用於制造定制芯片。本文所討論的多數處理器種類都既包括封裝式芯片,也包括可授權內核。
各類處理器優劣
重點介紹數字視頻所普遍采用的六類處理器:固定功能引擎,專用標準產品(ASSP),媒體處理器,DSP,嵌入式RISC處理器和FPGA。這些範圍覆蓋了最專業的和最靈活的產品,討論各類處理器的優劣,並對每類中的壹個具體產品進行分析。
首先談談固定功能引擎。它采用硬布線處理器結構,以獲得最大效率;它們不使用指令流,不可以編程。硬布線邏輯犧牲了靈活性,以換取非凡的處理速度、能源效率,而且經常能夠取得成本效益。
采用固定功能引擎可以簡化系統設計和測試。由於固定功能引擎不可編程,產品開發人員就不必學習編程工具,也不必集成多個軟件模塊。而且他們不需要考慮,處理器所執行的多個任務是否可能以其不希望的方式相互影響,是否會幹擾系統的實時特點等問題。
固定功能引擎壹般以可授權知識產權(IP)的方式提供,以便於集成到定制芯片之中。采用這種形式,固定功能引擎最適合於手機等大批量應用。固定功能引擎有時也可以芯片的形式提供。固定功能視頻芯片,如MPEG-2解碼器芯片,能夠以較低的成本給現有產品增加功能,特別是當產品具有能夠處理需求控制和用戶接口功能的主機處理器的時候。
比如Hantro公司的5150 MPEG-4視頻解碼器,這是以IP形式出售的固定功能引擎的例子。該引擎準備用作協處理器,附屬於壹個通用處理器,後者處理壹些MPEG-4解碼所需要的要求不太高的子任務。
固定功能硬件的主要缺點是缺乏靈活性。由於它不可編程,產品開發人員就不能很容易地修改固定功能硬件,使其支持新標準或者不同的功能。這點很令人關切,因為許多視頻應用目前來看仍然不夠成熟,標準和功能變化很快。
因此,固定功能引擎經常被用作專用標準產品的壹部分,下面就說壹說ASSP。
專用標準產品(ASSP)是集成度很高的專用芯片。可以與專用集成電路(ASIC)作壹番比較。ASIC是由系統公司設計的,並用於它們自己的產品之中。而ASSP是由芯片公司設計的,作為現成的芯片提供給多家系統開發商。由於開發壹種復雜芯片又費錢又耗時,ASSP通常用於已達到大批量的已定型產品,或者預計會有較高的批量的產品。
比如卓然公司的Vaddis 5R,是面向DVD錄像機中音頻和視頻處理的高度專業化的芯片。所需要的關鍵算法都已確定:最突出的是MPEG-2視頻壓縮與解壓縮。
然Vaddis 5R包含兩個RISC處理器,但它在執行計算量最大的任務時使用固定功能硬件加速器,如MPEG-2視頻解碼和彩色空間轉換。出於上述原因,Vaddis 5R (和其它類似的ASSP)也具有固定功能引擎的優缺點:擁有良好的性能和能源效率,但靈活性有限。
靈活性有限,意味著系統設計人員在設計產品時,使其產品與采用同樣ASSP的其它產品容易雷同。它還意味著,系統設計人員高度依賴芯片供應商的路線圖,因為需要新款芯片支持顯著不同的功能。
還有壹種是主要依賴可編程處理器執行繁重視頻任務的ASSP,為獲得靈活性而犧牲了能源效率和成本效率。這類ASSP通常與視頻解碼器和硬件驅動器等關鍵軟件相捆綁,使系統開發人員不必從事許多低級軟件的開發工作。但是,與采用基於固定功能硬件的ASSP相比,仍可能需要在軟件開發和集成方面花費很大的精力。
媒體處理器在專業化/靈活性方面處於ASSP與數字信號處理器(DSP)之間。媒體處理器針對與音頻和視頻處理相關的任務進行了優化,不象DSP那樣面向廣泛的信號處理任務進行優化。媒體處理器通常要采用多個處理器,包括壹個類似於DSP的主處理引擎、兩個或三個專用協處理器,以及音頻與視頻專用外設。
飛利浦的PNX1500就是壹款媒體處理器。像典型的媒體處理器壹樣,PNX1500基於壹個功能強大的、高度並行的處理器內核,該內核在執行視頻處理任務時具有較高的效率。PNX1500還包含幾個固定功能硬件加速器和專用外設器件,這也是典型的媒體處理器的特點。主處理器內核處理壓縮等復雜的視頻任務,系統設計人員可以對該內核進行編程。
與卓然公司的Vaddis 5R類似, PNX1500非常適合於MPEG-2解碼。但與卓然的ASSP不同的是,PNX1500具有足夠的靈活性,可以與H.264等其它視頻壓縮標準壹同使用。當然,這種靈活性也是有代價的:與固定功能硬件相比,軟件視頻解碼器的能源與成本效率通常較低。
由於媒體處理器采用多個不同的處理器,與其它可編程處理器相比,給軟件開發造成極大的困難。例如,為了執行壹項特定的視頻任務,壹般必須給兩個或更多的處理單元編程,並對它們加以協調。為了幫助彌補這個缺點,媒體處理器供應商經常提供優化的軟件構件庫。
媒體處理器供應商通常強調在開發軟件時使用C或C++,不推薦或支持匯編語言。之所以強調用高級語言開發軟件,是為了使程序員不需面對處理器架構方面的許多復雜問題。但不足之處是,程序員必須依賴編譯器來生成有效代碼,而這不總是現實的。開發人員可能需要投入很大的精力,手工調整其高級語言代碼,以獲得最佳性能。
數字信號處理器(DSP)是為壹系列信號處理應用所設計。與媒體處理器相比,DSP所采用的規格不太偏重於視頻處理,而且並行性較低。為了彌補並行性較低的弱點,在給定的應用中,DSP的指令執行速度通常必須高於媒體處理器。較高的指令速度可能導致系統設計復雜化,並增加能耗。另壹方面,與嵌入RISC處理器(下面將會說到)相比,DSP在處理視頻任務時需要的時鐘速度較低。DSP的關鍵優勢在於其靈活性和強大的應用開發工具。