《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于雙線性算法的定標(biāo)器及其FPGA實(shí)現(xiàn)

基于雙線性算法的定標(biāo)器及其FPGA實(shí)現(xiàn)

2008-11-05
作者:陳 偉,,盧貴主,,鄭靈翔

  摘? 要: 在視頻顯示系統(tǒng)中,,定標(biāo)器" title="定標(biāo)器">定標(biāo)器(scaler)起著匹配視頻輸出設(shè)備和視頻顯示設(shè)備之間的顯示分辨率的作用,,它直接影響了圖像縮放之后的顯示效果" title="顯示效果">顯示效果,。本文采用雙線性插值" title="插值">插值(bilinear interpolation)算法,,在FPGA上實(shí)現(xiàn)了定標(biāo)器,,最后給出了驗(yàn)證平臺(tái)和方法,,結(jié)果表明所設(shè)計(jì)的定標(biāo)器有效并且顯示效果良好,。

  關(guān)鍵詞: 定標(biāo)器,;FPGA;雙線性

?

  視頻顯示系統(tǒng)中經(jīng)常需要進(jìn)行圖像的分辨率轉(zhuǎn)化,,這個(gè)過(guò)程通常稱為圖像縮放(scaling),,是由定標(biāo)器實(shí)現(xiàn)的,。它不僅影響著圖像顯示的分辨率,而且影響圖像顯示的質(zhì)量,。

  圖像縮放的算法很多,,常用的有最近鄰法(nearest narbor)、雙線性插值" title="雙線性插值">雙線性插值法,、雙三次插值法(bicubic interpolation),,另外,還有基于邊緣的圖像算法(edge-based scaling methods)[1],?;谶吘壍膱D像算法能夠得到最好的顯示效果,但是這種算法復(fù)雜度高,,不易于實(shí)現(xiàn),。在參考文獻(xiàn)[2]中還提到了一種小波雙線性插值算法,用小波變換把圖像分解成一些具有不同空間分辨率,、頻率特性和方向特性的子帶信號(hào),。這種插值保存了圖像中豐富的高頻信息,使圖像具有很好的顯示效果,,但是該算法主要是針對(duì)于遙感圖像應(yīng)用,。本文對(duì)顯示效果和實(shí)現(xiàn)的資源耗費(fèi)、速度進(jìn)行折衷,,采用雙線性插值法并在FPGA上實(shí)現(xiàn)了定標(biāo)器,。采用FPGA進(jìn)行設(shè)計(jì)主要是因?yàn)樗軌蛱岣咴O(shè)計(jì)的并行度從而保證實(shí)時(shí)性的要求。如果采用DSP的解決方案,,雖然在設(shè)計(jì)的靈活度上有所加強(qiáng),,但是往往無(wú)法滿足實(shí)時(shí)性的要求。特別是在視頻顯示系統(tǒng)中,,設(shè)計(jì)應(yīng)該優(yōu)先考慮用硬件進(jìn)行實(shí)現(xiàn),。

  本文首先對(duì)算法進(jìn)行了描述,之后對(duì)硬件實(shí)現(xiàn)的各個(gè)模塊都作了詳細(xì)說(shuō)明,,包括獲取原始圖像相鄰的四個(gè)像素模塊,,水平、垂直兩個(gè)增量的生成模塊,,插值運(yùn)算模塊以及同步信號(hào)" title="同步信號(hào)">同步信號(hào)生成模塊,。最后對(duì)所設(shè)計(jì)的定標(biāo)器進(jìn)行驗(yàn)證,并給出了驗(yàn)證的平臺(tái),、方法以及結(jié)果,。

1 雙線性算法描述

  幾何運(yùn)算[3](geometry operations)的定義是:改變圖像像素空間分布的一系列運(yùn)算。在實(shí)施幾何運(yùn)算時(shí),可以想象成將輸入的像素一個(gè)一個(gè)地移動(dòng)到輸出圖像中,,稱為向前映射法,;另一種方法按反向移動(dòng)像素,稱之為逆向映射法,。如果映射回的像素落在4個(gè)輸入像素之間,,則其灰度由4個(gè)像素插值計(jì)算得到。雙線性算法就屬于逆向映射法,。

  雙線形算法的描述為:假設(shè)原始圖像的4個(gè)像素點(diǎn)為P1,、P2、P3,、P4,,水平和垂直兩個(gè)方向的點(diǎn)距為單位長(zhǎng)度1。4點(diǎn)坐標(biāo)分別為P1(x,,y),、P2(x+1,y),、P3(x,,y+1)、P4(x+1,,y+1),,縮放后的目標(biāo)像素點(diǎn)的坐標(biāo)為P(x+dy,y+dy),,dx,、dy分別是目標(biāo)像素點(diǎn)與原始圖像中的鄰近點(diǎn)的水平和垂直坐標(biāo)方向上的兩個(gè)增量。因此,,所得到的目標(biāo)插值像素點(diǎn)的灰度表達(dá)式為:

????P(x+dx,,y+dy)=(1-dx)(1-dy)P1+dx(1-dy)P2+(1-dx)dyP3+dxdyP4

????利用這個(gè)公式,對(duì)于每一個(gè)目標(biāo)像素點(diǎn),,都可以定量地由原始圖像的4個(gè)像素點(diǎn)進(jìn)行計(jì)算得到,。

2 定標(biāo)器的FPGA實(shí)現(xiàn)

2.1 定標(biāo)器的實(shí)現(xiàn)模塊

????基于雙線性算法定標(biāo)器的實(shí)現(xiàn)可以劃分為4個(gè)功能模塊:(1)獲取原始圖橡的水平、垂直兩個(gè)方向相鄰的4個(gè)像素P1,,P2,P3,,P4,。(2)計(jì)算對(duì)應(yīng)各個(gè)像素位置的水平、垂直方向上的坐標(biāo)增量dx,,dy,。(3)進(jìn)行插值運(yùn)算得到新的圖像的像素點(diǎn)。(4)同步信號(hào)生成模塊。實(shí)際的定標(biāo)器還包括了前端處理模塊和后端處理模塊,。前端處理模塊主要進(jìn)行圖像的格式轉(zhuǎn)換等,,而后端處理模塊主要進(jìn)行圖像的增強(qiáng)處理。這些增強(qiáng)處理包括:圖像變換,、直方圖變換,、灰度變換、圖像平滑和圖像銳化[4]等,。在4個(gè)功能模塊中,,同步信號(hào)的生成模塊負(fù)責(zé)產(chǎn)生顯示所需要的同步和消隱信號(hào),同時(shí)它會(huì)產(chǎn)生一幀圖像的索引地址,,包括行地址和列地址,。當(dāng)索引地址索引到目標(biāo)圖像的一個(gè)像素時(shí),由它去獲得對(duì)應(yīng)的輸入圖像的相關(guān)像素的灰度值,,同時(shí)獲得對(duì)應(yīng)的位置偏移量,。這樣就保證了輸入圖像到輸出圖像的映射無(wú)誤。其他三個(gè)模塊是插值運(yùn)算的具體執(zhí)行單元,。獲取相鄰4個(gè)像素模塊在索引輸出圖像的某一個(gè)像素時(shí)獲取插值計(jì)算這個(gè)像素點(diǎn)所需要的4個(gè)相鄰的輸入圖像像素,。水平、垂直方向上的坐標(biāo)增量生成模塊在行場(chǎng)有效信號(hào)的控制下使能有效,,并且每個(gè)像素時(shí)鐘都更新增量的值,。插值運(yùn)算對(duì)輸入圖像中得到的幾個(gè)像素值和對(duì)應(yīng)的坐標(biāo)增量進(jìn)行運(yùn)算,最后得到在索引地址位置的輸出像素的灰度值,。從時(shí)序上看,,插值運(yùn)算有固定的延遲,因而不會(huì)造成時(shí)序混亂,,同時(shí)由于整個(gè)插值算法的實(shí)現(xiàn)是在同步信號(hào)生成模塊的控制下進(jìn)行的,,這就保證了算法實(shí)現(xiàn)上時(shí)序的正確性。因而,,上面的模塊劃分是可行的,。基于雙線性算法定標(biāo)器的實(shí)現(xiàn)框圖如圖1,。

?

?

2.2 獲取原始圖像相鄰的四個(gè)像素模塊

  采用3個(gè)雙口dpram進(jìn)行實(shí)現(xiàn),,每個(gè)dpram的深度取一行原始圖像的深度。3個(gè)dpram模塊分別工作在寫(xiě)有效狀態(tài)和只讀狀態(tài)下,。初始時(shí),,3個(gè)dpram都處于只讀狀態(tài),之后dpram1,、dpram2,、dpram3輪流處于寫(xiě)有效狀態(tài),而且當(dāng)其中一個(gè)dpram處于寫(xiě)有效狀態(tài)時(shí),另外兩個(gè)dpram處于只讀狀態(tài),。由于采用的是雙口dpram,,因而當(dāng)處于只讀狀態(tài)時(shí),一個(gè)dpram可以讀取一行上相鄰的兩個(gè)像素,??刂芼pram的功能采用了狀態(tài)機(jī)來(lái)完成,其中狀態(tài)的變化都由ChangeMode_en信號(hào)進(jìn)行控制,,這個(gè)信號(hào)由行同步信號(hào)和場(chǎng)同步信號(hào)控制生成,。dpram控制狀態(tài)機(jī)如圖2所示,其有4個(gè)狀態(tài),,分別是WAIT狀態(tài),、dpram1寫(xiě)有效狀態(tài)、dpram2寫(xiě)有效狀態(tài),、dpram3寫(xiě)有效狀態(tài),。初始時(shí)復(fù)位,進(jìn)入WAIT狀態(tài),,其余時(shí)刻在ChangeMode_en為高電平時(shí)進(jìn)行狀態(tài)轉(zhuǎn)變,,為低電平時(shí)保持原來(lái)的狀態(tài)。

?

?

2.3 水平,、垂直兩個(gè)增量dx,、dy的生成模塊

  它們是由縮放系數(shù)conf決定。這里的縮放系數(shù)指:對(duì)于用單位長(zhǎng)度來(lái)表示兩個(gè)像素點(diǎn)距離的模型進(jìn)行縮放時(shí),,以conf為間隔形成的一個(gè)新采樣格柵,,對(duì)模型圖像進(jìn)行重采樣時(shí),則新的圖像相鄰的像素點(diǎn)之間的距離便為conf,。如果在水平和垂直兩個(gè)方向上的縮放倍數(shù)不同,,則可以定義兩個(gè)不同大小的縮放因子conf_x、conf_y,。例如:從分辨率為640×480的圖像轉(zhuǎn)化為800×600的圖像,,需要進(jìn)行行列方向上1.25倍的放大,則縮放系數(shù)分別為conf_x=1/1.25,,conf_y=1/1.25,。假設(shè)原始圖像對(duì)應(yīng)的目標(biāo)圖像大小為I×J,則在水平和垂直方向上分別對(duì)應(yīng)有I個(gè)dx,、J個(gè)dy,,即i的取值從0~I(xiàn),j的取值從0~J,。計(jì)算dx、dy的公式如下:

  

  這里,增量dx和dy的生成要和原始圖像的四個(gè)像素點(diǎn)相對(duì)應(yīng),,即對(duì)應(yīng)不同的目標(biāo)像素點(diǎn),,需要更新i和j的值,然后計(jì)算對(duì)應(yīng)的增量dx和dy,。硬件實(shí)現(xiàn)電路圖如圖3,。在行、場(chǎng)有效信號(hào)時(shí),,分別產(chǎn)生行和列方向的使能信號(hào)En_x和En_y,。控制增量系數(shù)和對(duì)應(yīng)的像素點(diǎn)之間的同步生成,。最后累加和與累加和取整相減的實(shí)現(xiàn)是對(duì)累加和的結(jié)果Sum_x和Sum_y進(jìn)行處理,,保留它的小數(shù)部分作為最后的增量的值。

?

?

2.4 插值運(yùn)算模塊

 這個(gè)模塊的作用是實(shí)現(xiàn)以下公式的運(yùn)算:

 P(x+dx,,y+dy)=(1-dx)(1-dy)P1+dx(1-dy)P2+(1-dx)dyP3+dxdyP4

 對(duì)獲取的4個(gè)相鄰的像素P1,、P2、P3,、P4和坐標(biāo)增量dx,、dy進(jìn)行雙線性的插值運(yùn)算。計(jì)算前可以對(duì)計(jì)算式進(jìn)行優(yōu)化,,使它耗費(fèi)的資源最少,。公式經(jīng)過(guò)減少乘法器的等價(jià)變換之后,變成了如下形式:

 P(x+dx,,y+dy)=((P4-P3)-(P2-P1))dxdy+(P2-P1)dx+(P3-P1)dy+P1

 它只需要4個(gè)乘法器和7個(gè)加法器,。因而比原計(jì)算公式節(jié)省了4個(gè)乘法器的資源。該模塊有固定的延時(shí)時(shí)間,。對(duì)于不同的延時(shí)路徑,,只要在適當(dāng)?shù)牡胤讲迦爰拇嫫鬟M(jìn)行平衡,即引入流水線(pipeline)的技術(shù),,加快模塊處理的吞吐率,,最后再把幾個(gè)路徑的結(jié)果進(jìn)行累加,就可以得到最后的目標(biāo)像素點(diǎn)的灰度值,。電路原理圖如圖4,。

?

?

2.5 同步時(shí)序信號(hào)生成模塊

  這個(gè)模塊的作用是,一方面產(chǎn)生顯示所需要的同步信號(hào),、消隱信號(hào),,包括行同步信號(hào)H_sync、場(chǎng)同步信號(hào)V_sync,、混合同步信號(hào)C_sync,、消隱信號(hào)Blank,;另一方面產(chǎn)生地址信號(hào)用于控制增量生成模塊以及獲取原始圖像的4個(gè)相鄰的像素模塊。

  同步時(shí)序信號(hào)的生成,,對(duì)于不同的圖像顯示格式,,必須符合特定要求。針對(duì)Virtex_iv開(kāi)發(fā)平臺(tái),,由于使用的時(shí)鐘頻率為25.175MHz,,因而圖像顯示的分辨率取為640×480,場(chǎng)頻為59.94Hz,。對(duì)于場(chǎng)信號(hào),,主要參數(shù)有:總行數(shù)、有效顯示行數(shù),、場(chǎng)同步信號(hào)的寬度,、場(chǎng)消隱前肩、場(chǎng)消隱后肩,;同樣,,對(duì)于行信號(hào),也有類似的幾個(gè)參數(shù):總像素點(diǎn),、有效顯示的像素點(diǎn),、行同步信號(hào)寬度、行消隱前肩,、行消隱后肩,。參數(shù)的具體設(shè)置值為:總行數(shù)為525行,有效顯示行數(shù)為480行,,場(chǎng)同步信號(hào)為2行,,場(chǎng)消隱前肩為13行,場(chǎng)消隱后肩為30行,;總像素點(diǎn)為800點(diǎn),,有效顯示的像素點(diǎn)為640點(diǎn),行同步信號(hào)為96點(diǎn),,行消隱前肩為19點(diǎn),,行消隱后肩為45點(diǎn)。

  本文是采用計(jì)數(shù)器方法設(shè)計(jì),。首先設(shè)計(jì)一個(gè)總的行數(shù),、點(diǎn)數(shù)的計(jì)數(shù)器進(jìn)程,其中行計(jì)數(shù)器在0~479的計(jì)數(shù)值時(shí)作為有效顯示行的時(shí)刻,,480~524時(shí)為場(chǎng)消隱的時(shí)刻,,包括場(chǎng)同步、場(chǎng)消隱前肩,、場(chǎng)消隱后肩,;點(diǎn)數(shù)計(jì)數(shù)器,,在0~639的計(jì)數(shù)值為有效顯示的時(shí)刻,640~799為行消隱的時(shí)刻,,包括行同步,、行消隱前肩、行消隱后肩,。

3 驗(yàn)證及其資源利用

  定標(biāo)器的驗(yàn)證示意圖如圖5,在FPGA內(nèi)部BRAM中存儲(chǔ)一幅圖像,,也可以通過(guò)總線輸入圖像數(shù)據(jù),。圖像數(shù)據(jù)通過(guò)一個(gè)FIFO緩存模塊緩存一行數(shù)據(jù)之后,數(shù)據(jù)流輸入到定標(biāo)器中進(jìn)行分辨率的調(diào)整,,最后由定標(biāo)器輸出顯示所需要的RGB數(shù)據(jù)和同步信號(hào)H_sync,、V_sync、C_sync,、Blank_n以及像素地址Addr_x,、Addr_y。同步信號(hào)直接作用于顯示的接口芯片,。像素地址用于從FIFO緩存模塊中讀出原始圖像的像素,。

?

?

  驗(yàn)證平臺(tái)采用了Virtex_4 FX12 Evaluation Board以及Audio/Video Board。Audio/Video模塊并不是單獨(dú)使用的模塊,,而是和具有足夠的利用音/視頻能力并且能夠提供實(shí)時(shí)處理能力的實(shí)體模塊一起使用[5],。板上使用的FPGA芯片為vc4vf12-12ff668。板上提供的AD轉(zhuǎn)換芯片為ADV7123,,像素時(shí)鐘為25.175MHz,。因而目標(biāo)圖像的顯示格式選取為640×480,25.175MHz,。通過(guò)VGA接口,,不同顯示分辨率的原始圖像經(jīng)過(guò)定標(biāo)器的縮放之后,在CRT或TFT顯示器上進(jìn)行顯示,。實(shí)驗(yàn)結(jié)果表明,,目標(biāo)圖像顯示清晰,而且在邊緣處也比較平滑,,沒(méi)有出現(xiàn)影響視覺(jué)觀察的塊狀效應(yīng),。

  本驗(yàn)證的綜合結(jié)果為:使用的Slices數(shù)目為566個(gè),只占Slices總數(shù)的10%,;使用的Slice Flip Flops數(shù)目為321個(gè),,只占總數(shù)的2%;使用輸入LUTs的數(shù)目為1024個(gè),,占總數(shù)的9%,。因而,,設(shè)計(jì)的定標(biāo)器占用的資源較小。定標(biāo)器對(duì)視頻顯示分辨率的調(diào)整以及視頻顯示的質(zhì)量有較大影響,,被廣泛地應(yīng)用于平板顯示器的顯示系統(tǒng)中,,因而對(duì)它進(jìn)行探討很有意義。目前,,對(duì)于定標(biāo)器的研究很少,,本文給出了定標(biāo)器在FPGA上的一種實(shí)現(xiàn)方法。實(shí)驗(yàn)結(jié)果表明,,這種定標(biāo)器能夠有效地實(shí)現(xiàn)縮放,,而且顯示效果清晰。這種實(shí)現(xiàn)方法對(duì)于定制定標(biāo)器IP模塊也具有參考意義,。

?

參考文獻(xiàn)

[1] 劉政林,,鄒雪城,向祖權(quán),,等.定標(biāo)器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子學(xué)報(bào),,2006,34(1):185-188.

[2] 劉笑宙,,涂國(guó)防.小波雙線性插值應(yīng)用于光學(xué)遙感圖像[J].中國(guó)科學(xué)院研究生院學(xué)報(bào),,2003,20(1):39-43.

[3] 陳書(shū)海,,傅錄詳.實(shí)用數(shù)字圖像處理[M].北京:科學(xué)出版社,,2005,6.

[4] 胡小鋒,,趙輝.Visual C++/MATLAB圖像處理與識(shí)別實(shí)用案例精選(第一版)[M].北京:人民郵電出版社,,2004,9.

[5] AVNET.Audio/Video Module User Guide.http://www.em.avnet.com/evk/home/,,2006.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected],。