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