將低成本FPGA用于視頻和圖像處理
FPGA已經(jīng)存在了十幾年的時間,在傳統(tǒng)概念中,FPGA價格昂貴,設(shè)計門檻較高,多用于通信和高端工業(yè)控制領(lǐng)域。最近幾年,低成本FPGA不斷推陳出新。半導(dǎo)體工藝的進(jìn)步不僅帶來FPGA成本的降低,還使其性能顯著提升,同時不斷集成一些新的硬件資源,比如內(nèi)嵌DSP塊、內(nèi)嵌RAM塊、鎖相環(huán)(PLL)、高速外部存儲器接口(DDR/DDR2)、高速LVDS接口等。在Altera公司90nm的Cyclone II FPGA內(nèi)部,還可以集成一種軟處理器Nios II及其外設(shè),它是目前FPGA中應(yīng)用最為廣泛的軟處理器系統(tǒng)。
作為一個平臺,F(xiàn)PGA顯然已經(jīng)非常適合于高性能低成本的視頻和圖像應(yīng)用。它可以幫助用戶靈活定制系統(tǒng),縮短產(chǎn)品研發(fā)和更新?lián)Q代的周期,使用戶緊跟技術(shù)和市場發(fā)展潮流。本文首先將回顧視頻和圖像處理的應(yīng)用領(lǐng)域、視頻處理流程、發(fā)展趨勢,以及設(shè)計者必須應(yīng)對的挑戰(zhàn)。然后,對FPGA內(nèi)部的資源和算法實(shí)現(xiàn)進(jìn)行簡單介紹。隨后,本文將介紹Altera公司及其合作伙伴在視頻圖像應(yīng)用領(lǐng)域提供給用戶的解決方案。最后給出設(shè)計視頻圖像處理系統(tǒng)的工具和流程。
技術(shù)與挑戰(zhàn)
視頻和圖像處理技術(shù)的應(yīng)用非常廣 泛,主要包括數(shù)字電視廣播、消費(fèi)類電子、汽車電子、視頻監(jiān)控、醫(yī)學(xué)成像,以及文檔影像處理等領(lǐng)域。一個典型的視頻處理系統(tǒng)包括:視頻采集、預(yù)處理、壓縮、信號發(fā)送和接收、解壓縮、后處理,最后到顯示控制部分,驅(qū)動顯示設(shè)備。在視頻處理系統(tǒng)的所有組成模塊中,都有FPGA成功應(yīng)用的案例,如表1所示。
視頻和圖像處理技術(shù)可謂日新月異,研究人員對于視頻圖像和人眼感官的研究從來就沒有停止過,新需求不斷催生技術(shù)革新和新標(biāo)準(zhǔn),主要體現(xiàn)在以下幾個方面:從標(biāo)清(SD)到高清(HD),分辨率越來越高,需要實(shí)時處理的數(shù)據(jù)量越來越大;視頻和圖像壓縮技術(shù)日趨復(fù)雜,如MPEG-4第2部分,H.264 AVC,JPEG2000等;對視頻系統(tǒng)智能的要求提高,如智能拍攝、運(yùn)動檢測、對象識別、多通道、畫中畫、透明疊加效果等;消費(fèi)者欣賞能力的提高,希望圖像更穩(wěn)定、更清晰、色彩更艷麗、亮度更符合人眼的感官需求。
雖然技術(shù)難度不斷增大,成本和上市時間依然是視頻和圖像應(yīng)用系統(tǒng)設(shè)計中兩個重點(diǎn)考慮因素。同時,產(chǎn)品差異化和自主知識產(chǎn)權(quán)也是一些有想法的中國公司追求的目標(biāo)。
如果單純使用現(xiàn)成的專用視頻圖像處理芯片(ASSP),根本無法設(shè)計出具有自主知識產(chǎn)權(quán)的產(chǎn)品,無法體現(xiàn)產(chǎn)品的差異化。而且,使用ASSP很難做到靈活、易升級、以及緊跟技術(shù)發(fā)展的潮流。廠商自己開發(fā)ASIC的周期又太長,前期投入太大,風(fēng)險很高,無法保證投資回報,也無法保持技術(shù)領(lǐng)先。
目前,就算功能最為強(qiáng)大的單片DSP處理器也不能實(shí)時壓縮(H.264)高清視頻。而使用DSP陣列的成本讓人難以接受,同時多片DSP處理器將帶來系統(tǒng)分割和調(diào)試的困難,增加系統(tǒng)的不穩(wěn)定性,增加PCB成本。如果使用單片F(xiàn)PGA,或采用FPGA加DSP處理器協(xié)同工作的方案,這些困難均可迎刃而解。
總之,使用FPGA技術(shù)可以幫助用戶在保證合理成本的前提下,開發(fā)高性能的產(chǎn)品。利用FPGA的可靈活升級性,用戶可以滿足千變?nèi)f化的市場需求,使自己的產(chǎn)品迅速推陳出新,緊跟業(yè)界發(fā)展趨勢,做出有自己特色、自主知識產(chǎn)權(quán)的產(chǎn)品,始終保持產(chǎn)品的差異化和領(lǐng)先性。
圖1 使用Altera VIP套件實(shí)現(xiàn)系統(tǒng)示意圖
FPGA構(gòu)架與算法實(shí)現(xiàn)
Cyclone II FPGA的構(gòu)架非常適合于實(shí)時視頻圖像處理,其特點(diǎn)如下:
* 全并行邏輯構(gòu)架:實(shí)現(xiàn)邏輯和算術(shù)功能;
* 豐富的硬件乘法器:實(shí)現(xiàn)高速實(shí)時計算;
* 豐富的內(nèi)嵌RAM資源:用于存取部分(或幾行)幀信號;
* 高速外部RAM接口:用于存取整幀信號;
* 高速收發(fā)通道,支持LVDS,Mini-LVDS,RSDS電平:實(shí)現(xiàn)高速視頻傳送;
* 內(nèi)嵌鎖相環(huán):作靈活時鐘管理,產(chǎn)生各種頻率和相位的時鐘信號;
此外,用邏輯單元或內(nèi)嵌RAM塊也可以靈活實(shí)現(xiàn)移位寄存器和乘法功能。
而且,在Cyclone II FPGA內(nèi)部,可以實(shí)現(xiàn)一個或多個軟處理器Nios II,用戶可以根據(jù)自己的需求靈活定制Nios II及其外設(shè)。Nios II可以輔助高速視頻通道作一些復(fù)雜的管理工作。這樣,F(xiàn)PGA就兼有了硬件和軟件(Nios II)的現(xiàn)場可編程能力。
前面已經(jīng)提到過,在FPGA內(nèi)部,同一種算法可以由不同的資源來實(shí)現(xiàn)。當(dāng)然,不同的實(shí)現(xiàn)方法具有不同的性能,用戶可以根據(jù)FPGA的實(shí)際資源和性能要求靈活選擇。色彩空間轉(zhuǎn)換是視頻處理中的常用功能,這里將舉例說明如何使用FPGA的內(nèi)部資源來實(shí)現(xiàn)這一算法。如何使用FPGA的內(nèi)部資源來實(shí)現(xiàn)這一算法。
TV解碼芯片將模擬電視信號轉(zhuǎn)換成數(shù)字的Y?CrCb信號,其中Y?表示亮度,Cr和Cb兩個信號表示色彩。在計算機(jī)系統(tǒng)中,常用R?G?B?來表示視頻,R?G?B?是經(jīng)過Gamma校正的RGB信號,取值范圍是0~255。Y?CrCb信號不能直接用在計算機(jī)系統(tǒng)中,因此,需要將視頻信號由Y?CrCb空間轉(zhuǎn)換到R?G?B?空間。
將ITU-R BT.601標(biāo)準(zhǔn)的Y?CrCb信號轉(zhuǎn)換為R?G?B?信號的常用公式如下:
R?= 1.164(Y?-16) + 1.596(Cr -128)
G? = 1.164(Y?-16) -0.813(Cr -128)- 0.391(Cb -128)
B?= 1.164(Y? -16) + 2.018(Cb -128)
這里的R?G?B?和Y?CrCb都為8比特信號。
要實(shí)現(xiàn)上式中的乘法運(yùn)算,有3種方法,如表2所示。由此可見,F(xiàn)PGA是一個資源平臺,用戶可以根據(jù)自己的性能需求、器件資源分布情況,靈活決定實(shí)現(xiàn)方法。
參考設(shè)計、IP核與解決方案
Altera在提供可編程 器件的同時,也為用戶構(gòu)建自己的系統(tǒng)提供了豐富的IP模塊。這樣,用戶不用去再花時間從頭開發(fā)那些成熟模塊,而可以將主要精力放在有自己特色的技術(shù)創(chuàng)新上,以及保證整個系統(tǒng)可以正確的協(xié)同工作。
在視頻和圖像處理領(lǐng)域,Altera開發(fā)了一組IP核,稱之為VIP (Video Image Proce ssing)套件。該IP套件包括常用的9個IP核,如表3所示。用戶可以使用這些IP構(gòu)建出類似如圖1所示的系統(tǒng)。
Avalon控制接口是一種片內(nèi)系統(tǒng)全交叉總線結(jié)構(gòu)。Nios II處理器可以作為一個智能管理單元,對Gamma校正和畫中畫圖像混合模塊進(jìn)行動態(tài)參數(shù)配置。圖1中只表示了一路視頻處理功能,用戶也可以根據(jù)自己的需要放置多路,共享Nios II和外部存儲器。
關(guān)于視頻數(shù)據(jù)的傳送,Altera為用戶開發(fā)了ASI/SDI、IP承載視頻的IP核與參考設(shè)計。在圖像視頻壓縮與解壓縮領(lǐng)域,Altera與多家方案提供商合作,推出了H.264、MPEG-4和JEPG2000的完整解決方案。另外,Cyclone II FPGA的高速LVDS接口,可以非常方便地應(yīng)用于顯示控制和驅(qū)動上,支持高速7:1的串/并變換功能。
圖2 典型的視頻處理系統(tǒng)
設(shè)計工具與設(shè)計流程
一個典型的包含視頻處理模塊的硬件系統(tǒng)框圖如圖2所示。在這個系統(tǒng)中,包括Nios II,一個硬件視頻協(xié)處理器、片內(nèi)RAM、DMA和其它外設(shè)。
與通信類應(yīng)用不同的是,在設(shè)計視頻圖像處理功能模塊時,用戶將面臨兩大難題:第一是設(shè)計效率問題;第二是驗(yàn)證效率問題。
通常,首先需要進(jìn)行算法驗(yàn)證,然后將算法盡快轉(zhuǎn)換為HDL的RTL級描述,接著實(shí)現(xiàn)在FPGA硅片上,做原型驗(yàn)證。實(shí)際上,從算法到硅片實(shí)現(xiàn)有很大的鴻溝,如何提高系統(tǒng)開發(fā)效率,使產(chǎn)品盡快上市,是系統(tǒng)設(shè)計商所面臨的一個巨大挑戰(zhàn)。另外,視頻圖像處理的性能需要人眼去檢查,傳統(tǒng)的RTL級仿真可視性不強(qiáng),很難去檢查實(shí)現(xiàn)效果。
為了應(yīng)對這些挑戰(zhàn),Altera公司與MathWorks聯(lián)合推出了Matlab/SimuLink + DSP Builder的設(shè)計工具和流程。SimuLink是MathWorks公司開發(fā)的基于模塊的設(shè)計仿真工具。DSP Builder是Altera公司開發(fā)的一個在SimuLink和Quartus II FPGA實(shí)現(xiàn)工具之間的橋梁,它可以通過SimuLink中驗(yàn)證過的設(shè)計產(chǎn)生出VHDL代碼,從后臺調(diào)用Quartus II工具完成FPGA的實(shí)現(xiàn),同時集成了硬件在環(huán)(Hardware In Loop)和Signal Tap調(diào)試工具。DSP Builder是以SimuLink中的一組庫的形式存在的。在視頻圖像設(shè)計中,基于SimuLink/DSP Builder的模塊化設(shè)計環(huán)境,可以迅速構(gòu)建系統(tǒng),同時進(jìn)行高效驗(yàn)證。
當(dāng)算法在SimuLink中實(shí)現(xiàn)并驗(yàn)證完成以后,就可以把該設(shè)計模塊集成到FPGA系統(tǒng)中去。這時,可以使用Altera公司的系統(tǒng)集成工具SOPC Builder。
在SOPC Builder中完成系統(tǒng)集成之后,就可以在Quartus II中按照傳統(tǒng)的FPGA設(shè)計流程完成后續(xù)的綜合、布局與布線等工作。與此同時,如果系統(tǒng)中有Nios II處理器,用戶可以使用Altera的Nios II IDE(集成開發(fā)環(huán)境)來開發(fā)嵌入式軟件。
最后,將Quartus II的實(shí)現(xiàn)結(jié)果(FPGA比特文件)與IDE中開發(fā)的軟件可執(zhí)行文件(*.elf)結(jié)合在一起進(jìn)行系統(tǒng)原型驗(yàn)證。開發(fā)工具和流程如圖3所示。
圖3 視頻圖像
處理系統(tǒng)開發(fā)工具和流程以圖2中的系統(tǒng)為例,其中的視頻處理模塊(協(xié)處理器)可以用SimuLink/DSP Builder來設(shè)計和驗(yàn)證,設(shè)計輸入可以是IP核、HDL或C語言。然后可以使用SOPC Builder來集成系統(tǒng)中的所有硬件單元,包括Nios II處理器和SimuLink/DSP Builder中產(chǎn)生出來的視頻處理模塊。
結(jié)語
本文力圖對低成本FPGA在視頻圖像處理領(lǐng)域的應(yīng)用作一個全面、清晰的介紹。用戶可以充分利用FPGA的構(gòu)架優(yōu)勢、豐富的設(shè)計資源,以及先進(jìn)的設(shè)計方法學(xué),以最快的上市時間,設(shè)計出高性能、低成本的系統(tǒng),同時保留系統(tǒng)的可升級性。
評論