摘 要:設(shè)計(jì)了以基于高性能DSP和大規(guī)模FPGA芯片為核心的多通道高清信號(hào)綜合圖形顯示系統(tǒng),具有較強(qiáng)的靈活性和擴(kuò)展性,實(shí)現(xiàn)了對(duì)Camera Link、DVI及LVDS等多通道多種格式視頻信號(hào)的解碼、實(shí)時(shí)處理以及輸出。提出一種基于紋理特征的視頻縮放線性插值算法,基于紋理特征確定像素點(diǎn)的方向,通過線性插值算法實(shí)現(xiàn)視頻縮放。實(shí)驗(yàn)結(jié)果表明,高效視頻縮放算法在保持傳統(tǒng)插值算法低運(yùn)算復(fù)雜度和模型簡(jiǎn)單優(yōu)勢(shì)的同時(shí),大大減少了圖像邊沿區(qū)域的信息損失,消除了雙線性插值算法固有的邊緣鋸齒現(xiàn)象。系統(tǒng)可同時(shí)接收一路1920×1080數(shù)字視頻、一路1600×1200DVI視頻信號(hào)和20路LVDS雷達(dá)數(shù)據(jù),并可以生成一路分辨率1600×1200DVI視頻輸出信號(hào),能夠?qū)斎胄盘?hào)進(jìn)行實(shí)時(shí)縮放和融合處理。
關(guān)鍵詞:多通道信號(hào);綜合顯示;視頻縮放;紋理特征;嵌入式
中圖分類號(hào):TP391.9
新一代多傳感器綜合處理應(yīng)用提出了海量數(shù)據(jù)采集、實(shí)時(shí)融合和顯示的新需求。當(dāng)前,基于嵌入式平臺(tái)的多傳感器數(shù)據(jù)的高效縮放和實(shí)時(shí)顯示已成為研究熱點(diǎn)[1-6]。文獻(xiàn)[1]以高性能FPGA作為核心處理器,實(shí)現(xiàn)了對(duì)DVI及PAL等多種格式視頻信號(hào)實(shí)時(shí)處理,輸出分辨率達(dá)到1600×1200,處理時(shí)間最長(zhǎng)不超過3ms。文獻(xiàn)[2]基于以大規(guī)模FPGA和M9圖形處理芯片,可同時(shí)接收1路差分PAL-D信號(hào)與1路差分VGA信號(hào),并生成分辨率1024×768的數(shù)字RGB輸出信號(hào)。文獻(xiàn)[3]設(shè)計(jì)了一種基于FPGA和SOPC為控制核心的軟硬件協(xié)同處理的實(shí)時(shí)圖像處理系統(tǒng)。
針對(duì)視頻縮放過程,文獻(xiàn)[2]綜合考慮視覺效果、算法復(fù)雜度以及FPGA計(jì)算資源等因素后,采用雙線性插值算法實(shí)現(xiàn)視頻分辨率格式的轉(zhuǎn)換。文獻(xiàn)[4]用顯著區(qū)域、語義內(nèi)容和結(jié)構(gòu)信息的特征來檢測(cè)圖像中的重要區(qū)域,對(duì)子圖進(jìn)行自適應(yīng)采樣,圖像中的顯著物體保護(hù)較好,但復(fù)雜度較高,不適合在嵌入式平臺(tái)應(yīng)用。文獻(xiàn)[5][6]分別借助Catmull_Rom和拉普拉斯邊緣檢測(cè)算法設(shè)計(jì)插值圖像縮放器結(jié)構(gòu),在FPGA平臺(tái)上實(shí)現(xiàn)了并行處理算法,節(jié)省了資源、降低了開銷,又提高了圖像質(zhì)量。
為了滿足多通道高清信號(hào)的輸入、高效縮放和實(shí)時(shí)顯示需求,本文設(shè)計(jì)了新的高性能多通道高清信號(hào)綜合圖形顯示系統(tǒng)。
1 系統(tǒng)體系結(jié)構(gòu)
以高性能FPGA和雙路DSP為核心實(shí)現(xiàn)了多通道高清信號(hào)綜合圖形顯示系統(tǒng),主要由多通道高速信號(hào)采集顯示模塊、數(shù)據(jù)格式轉(zhuǎn)換模塊、數(shù)據(jù)綜合和處理模塊三部分構(gòu)成,硬件結(jié)構(gòu)如圖1所示。
1.1 多通道高速信號(hào)采集顯示模塊
通過Camera Link接口接收一路來自高清攝像機(jī)的分辨率為1920×1080數(shù)字視頻,采用DS90CR288A芯片,最大時(shí)鐘頻率85MHz,最大帶寬765MB/s。
接收一路高清DVI視頻信號(hào),選用DVI接收芯片SIL1161,芯片支持24位數(shù)據(jù),25-165MHz時(shí)鐘頻率,視頻分辨率可達(dá)1600×1200。
基于FPGA芯片提供的20路LVDS接口接收雷達(dá)數(shù)據(jù)。
輸出一路高清DVI視頻信號(hào),DVI發(fā)送芯片TFP410,芯片支持24位數(shù)據(jù),25-165MHz時(shí)鐘頻率。
圖1 多通道高清信號(hào)綜合圖形顯示系統(tǒng)硬件體系結(jié)構(gòu)
1.2 數(shù)據(jù)格式轉(zhuǎn)換模塊
各種數(shù)字視頻流經(jīng)過FPGA芯片進(jìn)行必要的格式預(yù)處理,采用Xilinx公司Virtex5系列FPGA芯片作為控制核心。FPGA通過用于高速串行數(shù)據(jù)通信的GTX收發(fā)器實(shí)現(xiàn)4×的Rapid IO設(shè)計(jì),實(shí)現(xiàn)10Gbps的高速通信能力。
為滿足視頻融合需要幀緩存的需要,數(shù)據(jù)格式轉(zhuǎn)換模塊設(shè)計(jì)了8個(gè)Bank的ZBT SRAM緩存,每個(gè)Bank為2M*36bits。由于DVI最大分辨率不小于1600X1200,色彩深度不低于24bits,刷新率不低于每秒50次,而SRAM作為單口RAM,不能同時(shí)讀寫,為了保證DVI顯示效果,DVI采用兩個(gè)Bank的SRAM進(jìn)行雙緩存,而TV和雷達(dá)由于數(shù)據(jù)量小,刷新率低,每路視頻可以采用單個(gè)Bank的SRAM進(jìn)行緩存。
1.3 數(shù)據(jù)綜合和處理模塊
采樣得到的數(shù)據(jù)經(jīng)FPGA格式預(yù)處理后,傳輸?shù)紻SP芯片中實(shí)現(xiàn)多路信號(hào)的縮放和融合處理??紤]到FPGA與DSP的高速通信以及多片DSP間的協(xié)同處理,采用2片TMS320C6455(簡(jiǎn)稱C6455)芯片進(jìn)行數(shù)據(jù)處理。
C6455可達(dá)到1GHz的時(shí)鐘頻率,增強(qiáng)型C64x+DSP內(nèi)核。采用修正的哈佛總線結(jié)構(gòu),具有一套256位的程序總線,兩套32位的數(shù)據(jù)總線和一套32位的DMA專用總線。內(nèi)嵌了SRIO(Serial RapidIO)模塊,支持SRIO 1x/4x串行協(xié)議。片內(nèi)集成了2M字節(jié)的高速存儲(chǔ)器。通過與DSP的EMIFA總線實(shí)現(xiàn)無縫連接,采用2片MT47H256M8,構(gòu)成高速內(nèi)存;采用2片AM29LV256M進(jìn)行擴(kuò)展,構(gòu)成FLASH存儲(chǔ)空間,實(shí)現(xiàn)加電自舉功能。
2 基于紋理特征插值的視頻縮放算法
2.1 視頻插值算法
視頻插值技術(shù)是圖像處理的重要內(nèi)容之一,為滿足實(shí)際應(yīng)用需求,經(jīng)典的插值算法包括最近鄰域取樣法、雙線性插值法、雙三次插值法等。雙線性插值算法簡(jiǎn)單,在低分辨率的視頻縮放時(shí)有較好的視覺效果且易于硬件實(shí)現(xiàn),被廣泛采用。
雙線性插值法是通過映射關(guān)系,算出縮小圖像某點(diǎn)在原始圖像中的浮點(diǎn)坐標(biāo),通過利用浮點(diǎn)坐標(biāo)鄰近2×2的4個(gè)原像素點(diǎn)進(jìn)行加權(quán)求和計(jì)算,插入點(diǎn)的像素值如圖2所示。
插值權(quán)重為它們距離待插點(diǎn)的幾何距離,待插入的像素值如公式(1)所示:
f(i+μ,j+v)=(1-μ)(1-v)f(i,j)+(1-μ)vf(i,j+1)+μ(1-v)f(i+1,j)+μvf(i+1,j+1) (1)
其中i和j均為負(fù)整數(shù),μ和v為[0,1]區(qū)間的浮點(diǎn)數(shù),f(i,j)是當(dāng)前視頻幀中的像素點(diǎn)(i,j)位置的亮度值,f(i+μ,j+v)是當(dāng)前視頻幀縮放后像素點(diǎn)(i+μ,j+v)位置的亮度值。
圖2 線性插值示意圖
但是隨著高清視頻的廣泛應(yīng)用,雙線性插值縮放的高清視頻在顯示時(shí)存在邊緣鋸齒和平滑過程導(dǎo)致的邊緣模糊的兩個(gè)缺陷。
2.2 紋理特征檢測(cè)
圖像紋理是圖像基本特征之一,考慮到相鄰像素間紋理不存在劇烈變化,而且其紋理是存在方向性的,因此利用視頻編碼中的幀內(nèi)預(yù)測(cè)的思路建立視頻紋理特征方向的預(yù)測(cè)過程[7]。
設(shè)計(jì)思想是利用視頻待插值塊的左邊一列和上邊一行像素(如果存在),設(shè)計(jì)圖3所示的9種預(yù)測(cè)方向。
塊內(nèi)各像素點(diǎn)預(yù)測(cè)值的具體計(jì)算公式參見文獻(xiàn)[8],遍歷所有的預(yù)測(cè)方向,計(jì)算絕對(duì)誤差和SAD,如公式(2)所示,選擇最小的SAD預(yù)測(cè)方向?yàn)檫吘壏较颉?/p>
(2)
其中f(i,j)和ref(i,j)分別表示視頻待插值塊和參考?jí)K中第i行j列的象素值,M和N分別表示塊中包含的水平、垂直方向象素?cái)?shù)。實(shí)際計(jì)算中,待插值塊為大小4×4。
圖3 插值點(diǎn)示意圖
2.3 改進(jìn)的線性插值視頻縮放算法
通過紋理特征分析可以找出待插入點(diǎn)周圍的方向,根據(jù)9種不同方向分別進(jìn)行不同的插值過程,用以減少鋸齒和圖像模糊的缺陷,具體過程如下:
(1)通過映射關(guān)系,算出縮小圖像某點(diǎn)在原始圖像中的浮點(diǎn)坐標(biāo),獲取浮點(diǎn)坐標(biāo)鄰近2×2的4個(gè)原像素點(diǎn)。
(2)將獲取到的2×2子塊置于圖3中4×4待插值塊的中心,按照2.2節(jié)的描述分別計(jì)算9種方向的SAD值,選擇最小的SAD預(yù)測(cè)方向?yàn)榧y理方向。
(3)按照線性插值計(jì)算,但是輸入的相關(guān)點(diǎn)要根據(jù)方向進(jìn)行選擇,如圖3所示其中f0、f1、f2、f3是浮點(diǎn)坐標(biāo)鄰近的4個(gè)原像素點(diǎn)。
對(duì)于垂直0、水平1和均值2的紋理方向,輸入點(diǎn)分別固定為f0、f1、f2、f3;
對(duì)于左對(duì)角3的紋理方向,如果帶插值點(diǎn)位于直線3上區(qū)域,則輸入點(diǎn)分別固定為f0、f1、f3、f6、f14;如果帶插值點(diǎn)位于直線3下區(qū)域,則輸入點(diǎn)分別固定為f1、f2、f3、f8、f12;位于直線3,則輸入點(diǎn)分別固定為f1、f3、f7、f13;
對(duì)于右對(duì)角4的紋理方向,如果帶插值點(diǎn)位于直線4上區(qū)域,則輸入點(diǎn)分別固定為f0、f1、f2、f5、f9;如果帶插值點(diǎn)位于直線4下區(qū)域,則輸入點(diǎn)分別固定為f0、f2、f3、f11、f15;位于直線4,則輸入點(diǎn)分別固定為f4、f0、f2、f10;
對(duì)于垂直\右對(duì)角5的紋理方向,如果帶插值點(diǎn)位于直線5上區(qū)域,則輸入點(diǎn)分別固定為f1、f2、f5、f11;如果帶插值點(diǎn)位于直線5下區(qū)域,則輸入點(diǎn)分別固定為f0、f3、f5、f11;位于直線5,則輸入點(diǎn)分別固定為f5、f11;
對(duì)于垂直\左對(duì)角7的紋理方向,如果帶插值點(diǎn)位于直線7上區(qū)域,則輸入點(diǎn)分別固定為f0、f3、f6、f12;如果帶插值點(diǎn)位于直線7下區(qū)域,則輸入點(diǎn)分別固定為f1、f2、f6、f12;位于直線7,則輸入點(diǎn)分別固定為f6、f12;
對(duì)于水平\右對(duì)角6的紋理方向,如果帶插值點(diǎn)位于直線6上區(qū)域,則輸入點(diǎn)分別固定為f0、f1、f9、f15;如果帶插值點(diǎn)位于直線6下區(qū)域,則輸入點(diǎn)分別固定為ff2、f3、f9、f15;位于直線6,則輸入點(diǎn)分別固定為f9、f15;
對(duì)于水平\左對(duì)角8的紋理方向,如果帶插值點(diǎn)位于直線8上區(qū)域,則輸入點(diǎn)分別固定為f0、f1、f8、f14;如果帶插值點(diǎn)位于直線8下區(qū)域,則輸入點(diǎn)分別固定為f2、f3、f8、f14;位于直線8,則輸入點(diǎn)分別固定為f8、f14。
3 實(shí)驗(yàn)結(jié)果及分析
以典型的256×256的lena圖像為例,縮小比例為0.5。從圖4處理結(jié)果看,雙線性插值法總體上對(duì)圖像的細(xì)節(jié)保留的較好,但在圖像輪廓上出現(xiàn)了鋸齒。而本文算法在細(xì)節(jié)上出現(xiàn)了少許模糊,但沒有鋸齒現(xiàn)象,主觀上可以滿足視頻縮放的需要。
(a)原始的
(b)雙線性的 (c)提出的
圖4 Lena圖像縮放示意圖
整個(gè)多通道高清信號(hào)綜合圖形顯示系統(tǒng)滿足了對(duì)多通道高分辨率視頻綜合處理的要求,同時(shí)本系統(tǒng)的可擴(kuò)展性可以用于實(shí)現(xiàn)更加完善的視頻處理功能?;谟布脚_(tái),結(jié)合FPGA和DSP程序?qū)崿F(xiàn)了一路1920×1080數(shù)字視頻、一路1600×1200DVI視頻信號(hào)和20路LVDS雷達(dá)數(shù)據(jù)的輸入信號(hào)經(jīng)縮放融合后生成的一路分辨率1600×1200DVI視頻輸出信號(hào)。疊加后的視頻信號(hào)完整保留了原信號(hào)的信息,圖像顯示穩(wěn)定、清晰,滿足顯示單元對(duì)數(shù)據(jù)處理的要求。
4 結(jié)束語
在分析嵌入式綜合圖形顯示系統(tǒng)需求的基礎(chǔ)上,提出一種基于紋理方向的視頻縮放線性插值算法,基于紋理特征確定像素點(diǎn)的方向,通過線性插值算法實(shí)現(xiàn)視頻縮放。以DSP和FPGA為核心實(shí)現(xiàn)了一種功能強(qiáng)大的嵌入式多通道高清信號(hào)綜合圖形顯示系統(tǒng),能夠?qū)斎胄盘?hào)進(jìn)行實(shí)時(shí)縮放和融合處理。解決現(xiàn)代多傳感器綜合處理應(yīng)用提出的海量數(shù)據(jù)采集、融合和顯示的需求。
參考文獻(xiàn):
[1]尤力,夏偉杰,周建江.基于FPGA機(jī)載實(shí)時(shí)視頻圖形處理系統(tǒng)的設(shè)計(jì)[J].電子科技,2011(11):63-65.
[2]謝建春,楊敬寶,李翠娟.新型機(jī)載嵌入式顯示單元的設(shè)計(jì)與實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2011(06):109-111.
[3]沈淦松,葉玉堂,劉霖,劉娟秀.FPGA軟硬件協(xié)同處理實(shí)時(shí)圖像處理系統(tǒng)[J]. 光電工程,2012(10):143-150.
[4]朱運(yùn),沈一帆,姜昊.基于內(nèi)容劃分和傅里葉分析的圖像縮放算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2013(01):225-229.
[5]呂榮國,蔣林,楊飛.圖像縮放的研究與FPGA設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011(12):205-208.
[6]史再峰,姚素英,趙雷,劉豐.基于邊緣方向插值的視頻縮放算法及電路設(shè)計(jì)[J].吉林大學(xué)學(xué)報(bào)(工學(xué)版),2009(03):1119-1124.
[7]孟慶磊,姚春蓮等.一種面向H.264/AVC的快速幀內(nèi)預(yù)測(cè)選擇算法[J].北京航空航天大學(xué)學(xué)報(bào),2007(02):219-223.
[8]ISO/IEC FDIS 14496-10.Information technology-Coding of audio-visual objects Part 10:Advanced video coding. Final Draft International Standard,2003.
作者簡(jiǎn)介:張龍(1979-),男,工程師,學(xué)士學(xué)位,計(jì)算機(jī)科學(xué)與技術(shù),主要研究方向?yàn)槠脚_(tái)電子系統(tǒng)軟件總體設(shè)計(jì)與綜合集成技術(shù),電子信息系統(tǒng)綜合設(shè)計(jì)技術(shù);孟慶鑫(1980-),男,工程師,碩士,計(jì)算機(jī)科學(xué)與技術(shù),主要從事為系統(tǒng)總體技術(shù)、開放式系統(tǒng)構(gòu)架技術(shù)、系統(tǒng)集成方面的研究與應(yīng)用。
作者單位:中國電子科技集團(tuán)公司電子科學(xué)研究院,北京 100041