隨著數(shù)字融合的進(jìn)一步發(fā)展,系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)需要更大的靈活性,,以解決將完全不同的標(biāo)準(zhǔn)和要求整合為同類產(chǎn)品時(shí)引發(fā)的諸多問題,。本文介紹FPGA在視頻處理中的應(yīng)用,與ASSP和芯片組解決方案相比,,F(xiàn)PGA可根據(jù)目前設(shè)計(jì)工程師的實(shí)際需求提供不同層次的靈活性,,并保持明顯優(yōu)于傳統(tǒng)DSP的性能。
實(shí)時(shí)視頻處理對(duì)系統(tǒng)性能的要求極高,,因此幾乎所有只具最簡單功能的通用DSP都不具備這項(xiàng)功能,。可程序邏輯組件允許設(shè)計(jì)人員利用平行處理技術(shù)實(shí)現(xiàn)視頻信號(hào)處理算法,,并且只需單個(gè)組件就能實(shí)現(xiàn)期望的性能,。基于DSP的解決方案通常需要在單板上嵌入許多DSP,,以得到必需的處理能力,,這無疑將增加程序資源開銷和數(shù)據(jù)內(nèi)存資源開銷。
藉由在實(shí)時(shí)環(huán)境下進(jìn)行視頻處理,,系統(tǒng)工程人員可將幀內(nèi)存需求和數(shù)據(jù)緩沖需求降至最低,,而在非實(shí)時(shí)應(yīng)用中則無需如此,。隨著業(yè)界積極推動(dòng)高質(zhì)量視頻開發(fā)以及壓縮格式的不斷改進(jìn),系統(tǒng)處理速度也不斷提高,??沙绦蜻壿嫿M件也采用了專用尋呼設(shè)備中廣泛采用的FPGA組件架構(gòu)。由于FPGA制程的發(fā)展遵循摩爾定律,,因此與稍早開發(fā)的同種產(chǎn)品相比,,新產(chǎn)品能以更具吸引力的成本優(yōu)勢(shì)實(shí)現(xiàn)相同的功能和性能。
這種趨勢(shì)的一大源動(dòng)力來自網(wǎng)絡(luò),、廣播,、處理和顯示技術(shù)的融合,即業(yè)界所稱的‘數(shù)位融合’,。由于在極窄的傳輸信道(如無線信道)上發(fā)送高頻寬視頻數(shù)據(jù)并保持適當(dāng)?shù)臉I(yè)務(wù)質(zhì)量(QoS)極其困難,,因此設(shè)計(jì)人員展開了廣泛的研究,致力于改進(jìn)糾錯(cuò),、壓縮和圖像處理技術(shù),,這些研究均建立在FPGA實(shí)現(xiàn)的基礎(chǔ)上。
圖像壓縮/解壓縮-DCT/IDCT 目前在數(shù)字視頻系統(tǒng)中主要使用的視頻壓縮格式是MPEG2,,已廣泛應(yīng)用于數(shù)字電視,、視訊轉(zhuǎn)換盒、數(shù)字衛(wèi)星系統(tǒng),、高清晰度電視(HDTV)譯碼器,、DVD播放器、視頻會(huì)議設(shè)備和*中,。原始的數(shù)字視頻信息總需要進(jìn)行壓縮,,以便藉由適當(dāng)?shù)膫鬏斖ǖ纻魉突蛘邇?chǔ)存在適當(dāng)?shù)慕橘|(zhì)(如磁盤)中。此外還有許多新標(biāo)準(zhǔn)即將或正在推出,,包括最為引人注目的MPEG4,,但大多數(shù)基于該技術(shù)的產(chǎn)品仍在開發(fā)中。
MPEG2和MPEG4算法的核心是一種稱為離散余弦變換(DCT)的作業(yè),。DCT的基本原理是取圖素塊的平方并除去觀察者察覺不到的冗余信息,。為了解壓縮數(shù)據(jù),,還需要反離散余弦(IDCT)運(yùn)算,。
雖然MPEG算法中的DCT部份已經(jīng)標(biāo)準(zhǔn)化并能在FPGA中有效實(shí)現(xiàn),MPEG編碼仍有許多部份尚未明確規(guī)定,。而正是這些不明確部份使得一家公司的產(chǎn)品得以區(qū)別于競爭對(duì)手,,并開發(fā)出擁有自主產(chǎn)權(quán)的算法。許多專用MPEG譯碼器在這些部份(如運(yùn)動(dòng)估計(jì)模塊)使用了FPGA,。因?yàn)镕PGA可重新配置,,因此組件能方便地進(jìn)行刷新,,并在整個(gè)開發(fā)階段(包括配置之后)整合新算法,而完全依賴標(biāo)準(zhǔn)ASSP解決方案的公司由于受到自身能力的限制而無法開發(fā)出類似產(chǎn)品,,因此市場(chǎng)風(fēng)險(xiǎn)較大(圖1),。
色彩空間轉(zhuǎn)換
視頻系統(tǒng)另一重要部份是色彩空間轉(zhuǎn)換,該制程規(guī)定了圖像的表示方法,,例如由一種色彩格式轉(zhuǎn)化為另一種不同的色彩格式,。
人眼傳感器只能檢測(cè)到波長介于400nm至700nm之間的可見光,這些傳感器稱為圓錐細(xì)胞,,具有三種不同的類型:紅光圓錐細(xì)胞,、綠光圓錐細(xì)胞和藍(lán)光圓錐細(xì)胞。如果單波長的光可見,,這三種傳感器的相對(duì)反應(yīng)能使我們鑒別出光的顏色,。該現(xiàn)象極具實(shí)用價(jià)值,因?yàn)檫@意味著我們只需簡單地按不同比例將上述三種光混合,,就能產(chǎn)生各種顏色的光,。這就是著名的三色原理,它在彩電系統(tǒng)中獲得了廣泛的應(yīng)用,。
我們可以在3維立方體中藉由繪制三原色(即紅色,、綠色和藍(lán)色,簡寫為RGB)的構(gòu)成比率圖以表示各種顏色,,其中黑色位于原點(diǎn),,而白色則位于原點(diǎn)的斜對(duì)角。得到的立方體就是著名的RGB色彩空間,。
不管最終的顯示媒體是紙張,、LED、CRT或等離子顯示器,,圖像總可細(xì)分為很多個(gè)圖素(例如HDTV可具備1920×1080個(gè)圖素),。同時(shí)每種媒體之間又存在些許差異,但其基本原理都是每個(gè)圖素由一定比例的紅色,、綠色或藍(lán)色構(gòu)成,,構(gòu)成的比例取決于驅(qū)動(dòng)顯示的電壓信號(hào)。
利用RGB格式處理圖像時(shí),,每個(gè)圖素由3個(gè)分別對(duì)應(yīng)于三原色的8位或10位字確定,,因而這不是一種最高效的處理方法。這種格式下,,必須在所有的紅色,、綠色和藍(lán)色信道上對(duì)圖素進(jìn)行作業(yè),所需的儲(chǔ)存空間和數(shù)據(jù)頻寬毫無疑問將比其它可供選擇的色彩格式更大。為了解決這個(gè)問題,,許多廣播標(biāo)準(zhǔn)(如歐洲的PAL和北美的NTSC電視系統(tǒng))均采用亮度和色度視頻信號(hào),。因此,不同的色彩格式之間需要一種能互相轉(zhuǎn)換的機(jī)制,,即色彩空間轉(zhuǎn)換(圖2),。
用硬件實(shí)現(xiàn)這些電路則相對(duì)比較簡單,只需要知道從一種格式映像到另一種格式的系數(shù),。最通用的一種轉(zhuǎn)換是由RGB格式轉(zhuǎn)換至YCbCr格式(反之則從YCbCr格式轉(zhuǎn)換至RGB格式),。研究顯示,人眼察覺到的光亮度信息(Y)的60%至70%來自綠色光,。紅色和藍(lán)色信道實(shí)際上只是亮度信息的復(fù)制,,因此這些重復(fù)信息完全可以去除掉。最終的結(jié)果是圖像可用表征色度和亮度的信號(hào)來表示,。在這種格式下,,8位系統(tǒng)規(guī)定亮度的取值范圍介于16至235之間,而Cb和Cr信號(hào)的取值范圍介于16至240之間,,并規(guī)定128表示亮度為0,。
可用如下的方程將YCbCr空間中的色彩轉(zhuǎn)換為RGB色彩空間中的色彩:
R'=1.164*(Y-16)+1.596*(Cr-128)
G'=1.164*(Y-16)-0.813*(Cr-128)-0.392*(Cb-128)
B'=1.164*(Y-16)+1.596*(Cr-128)
R'G'B'表示圖像灰度校正RGB值。例如,,CRT顯示器的信號(hào)振幅與輸出密度之間存在非線性,,如果在顯示信號(hào)之前進(jìn)行圖像灰度校正,就能使信號(hào)振幅與輸出密度間的關(guān)系趨于線性,。輸出增益同樣必須限定低于特定的臨界值,,以減少圖像暗區(qū)中的傳輸噪音(圖3)。
我們可以采用許多可行的方法實(shí)現(xiàn)所需的乘積功能,,如利用內(nèi)存,、邏輯組件或嵌入式乘法器。顯然,,HDTV系統(tǒng)所需的74.25MHz數(shù)據(jù)率可輕松地達(dá)到,,而且還可以嘗試不同的設(shè)計(jì)折衷考慮,如系統(tǒng)精確度和設(shè)計(jì)范圍之間的折衷,。例如,,為了保證3%的轉(zhuǎn)換誤差,YCbCr至RGB色彩空間轉(zhuǎn)換器的設(shè)計(jì)尺寸可以至少減小一半,。這或許超出了大多數(shù)顯示器產(chǎn)品所能承受的范圍,,但仍然能被其它的應(yīng)用系統(tǒng)接受,如機(jī)器視覺或安全系統(tǒng),。采用FPGA的系統(tǒng)架構(gòu)就能調(diào)整應(yīng)用系統(tǒng)的算法,,由此實(shí)現(xiàn)最佳的性能和效率,。
實(shí)時(shí)圖像和視頻處理功能
標(biāo)準(zhǔn)DSP自身性能上的缺陷促進(jìn)了專門解決此難題的專用設(shè)計(jì)芯片(如媒體處理器)的發(fā)展,。但是,,這些組件極低的靈活度往往使其局限于非常有限的應(yīng)用中并容易產(chǎn)生性能瓶頸。在高分辨率系統(tǒng)(如HDTV和醫(yī)療成像系統(tǒng))中,,基于處理器的方法受到的限制尤為明顯,。從根本上講,處理器的分辨率受限于分配給濾波器每個(gè)抽頭或每個(gè)轉(zhuǎn)換階段時(shí)鐘周期的數(shù)目,。一旦達(dá)到極限條件,,通常除了增加額外的DSP部件外別無選擇。FPGA可以藉由定制調(diào)整提供最具實(shí)用價(jià)值的高性能高效率產(chǎn)品,。設(shè)計(jì)人員可在適用范圍和速率之間進(jìn)行折衷考慮,,從而以比DSP時(shí)鐘低得多的速率實(shí)現(xiàn)指定功能。
例如Visicom公司發(fā)現(xiàn),,在中值濾波器應(yīng)用中[3],,DSP處理器需要67個(gè)時(shí)鐘周期執(zhí)行算法,而FPGA只需工作在25MHz頻率下,,因?yàn)镕PGA能平行實(shí)現(xiàn)該功能,。實(shí)現(xiàn)上述功能的DSP必須工作在1.5GHz頻率下,可見在此特定應(yīng)用中,,F(xiàn)PGA解決方案的處理能力可以達(dá)到100MHz DSP處理器的17倍,。
許多實(shí)時(shí)圖像和視頻處理功能均適合于用FPGA組件來實(shí)現(xiàn),包括:圖像旋轉(zhuǎn),、圖像縮放色彩校正和色度校正,、陰影增強(qiáng)、邊緣檢測(cè),、直方圖功能,、銳化、中值濾波器和斑點(diǎn)分析等,。
許多功能都針對(duì)特定的應(yīng)用和系統(tǒng),,并構(gòu)建在核心架構(gòu)(如2D-FIR濾波器)之上。我們可以利用HDL設(shè)計(jì)語言或高級(jí)內(nèi)核設(shè)計(jì)工具(如Xilinx CoreGen軟件)中的DSP程序塊迅速實(shí)現(xiàn)這些功能,。此外,,還能藉由系統(tǒng)級(jí)設(shè)計(jì)方法,利用Matlabs Simulink和Xilinx SystemGenerator工具進(jìn)一步減少設(shè)計(jì)和模擬時(shí)間,。