《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的ARM圖像擴展顯示
基于FPGA的ARM圖像擴展顯示
電子技術應用2012年第2期
黃 俊, 劉一清
華東師范大學 信息科學技術學院, 上海 200241
摘要: ARM處理器在消費電子及儀器設備等領域得到了廣泛的應用,但是在很多情況下ARM系統的圖像分辨率支持偏低,通過使用FPGA實現圖像縮放器的功能來解決這個問題。采用雙線性插值算法將VGA格式的ARM9圖像信號的轉換為XGA格式圖像信號,完成對分辨率的擴展。仿真驗證證明,擴展后的圖像在顯示上取得了良好的效果。
中圖分類號: TP931;TN911.73
文獻標識碼: A
文章編號: 0258-7998(2012)02-0131-03
The extending display of ARM image based on FPGA
Huang Jun, Liu Yiqing
School of Information Science and Technology, East China Normal University, Shanghai 200241, China
Abstract: ARM processor is widely used in the field of consumer electronics and instrumentation,but the disadvantage of ARM processor is low resolution in image resolution in many cases. We solve the problem by using FPGA to implement scaler, which can transform the VGA standard image provided by ARM to the XGA standard image by use bilinear interpolation. The results show that the expanded image has a good display by simulation and verification.
Key words : ARM; FPGA; scaler; bilinear

    ARM是目前全球最大的嵌入式芯片技術的IP提供商,其所擁有的IP已經成為眾多芯片設計公司采納的一種技術標準和開發平臺。所以基于ARM 內核的SoC已經成為嵌入式處理器的開發重點,可通過ARM實現LCD控制器來完成對嵌入式LCD屏的控制。如果利用TFT屏支持顯示,其圖像分辨率存在局限性,因此通過搭建一個FPGA平臺實現圖像縮放器功能外接LCD顯示器,完成ARM信號的擴展顯示。同時FPGA也能完成對ARM平臺產生的圖像信號進行驗證和仿真,以測試其功能和時序的正確性。XGA顯示器因其顯示量大,輸出形式多樣等特點已經成為目前大多數設計中的常用輸出設備,因此本文針對ARM產生的VGA信號通過插值算法對其擴展為XGA標準信號。

1 VESA標準中的VGA與XGA時序
       視頻電子標準協會(VESA)是非盈利國際組織,主要制定個人電腦、工作站以及消費電子類產品在視頻接口標準,因此本文所設計的VGA與XGA的時序均按照VESA標準設計。
    顯示器通常采用逐行掃描的方式,每一幀圖像按順序一行接著一行連續掃描而成,掃描的過程中由水平同步信號HSYNC和垂直同步信號VSYNC來控制掃描。行掃描和場掃描的時序圖如圖1所示,其行掃描和場掃描的時序要求如表1、表2所示。

圖1 行掃描時序和場掃描時序


2 系統整體設計
2.1系統框圖

     系統設計的數據源是來自ARM9系統板的視頻信號,其格式為VESA標準的VGA信號。數據源進入FPGA后先進行圖像縮放的處理,把輸入的有效像素數據利用算法對其進行處理,期間的處理數據利用FIFO與DDR2進行緩存,然后把處理后的圖像數據按照XGA時序送入視頻編碼芯片,最后送入顯示器顯示。其中FPGA內部設計分為時序控制模塊、時序產生模塊、FIFO模塊、圖像縮放器模塊以及DDR2 SDRAM控制器模塊,如圖2所示。

基于FPGA的ARM圖像擴展顯示系統框圖

圖2 系統原理框圖


2.2 硬件實現
     FPGA采用Altera的EP3C16F484C6芯片,該芯片具有15 408個邏輯單元,504 KB內存,56個乘法器和4個PLL鎖相環內核,最大支持346個I/O端口,系統時鐘最高為250 MHz。FPGA開發板采用了專門的視頻解碼編碼芯片,Silicon Image的視頻編碼芯片SI7170支持VGA到UVGA的格式標準,同時也支持HDTV格式的編碼。DDR2 SDRAM采用三星的K4T51163QC芯片, 其頻率支持267 MHz,本文選取為200 MHz。芯片容量為32 MB×16,實際上只要SDRAM滿足存儲2幀圖像的容量即可滿足本文設計要求[1]。完成轉換后的XGA信號所需的輸出時鐘為65 MHz,可由FPGA內部鎖相環產生。
3 FPGA內部模塊工作原理
3.1輸入時序控制模塊與輸出時序控制模塊

     輸入時序控制模塊是根據輸入視頻信號的同步信號和時序要求,確保有效的圖像數據能夠順利寫入FIFO進行緩存。例如當模塊接收到場同步信號時,FIFO進入即將寫入的狀態,當模塊接收到使能信號時, FIFO開始寫入數據,這樣能確保寫入FIFO的數據是從完整1幀圖像的起始開始寫入。
    輸出時序控制模塊的功能是產生輸出圖像所必需的同步信號、場同步信號和行同步信號,以保證輸出圖像的數據與時序一致,從而使圖像可以正確地顯示在顯示器上。
     輸入輸出時序控制模塊,按照計數器的方法進行設計[2]。例如VGA信號的1幀圖像的總像素要求為800×525,其中有效像素為640×480。對于行掃描來說可設置1~96像素時鐘計數為行同步信號,97~144像素時鐘計數為行消隱后肩,145~784像素時鐘計數為圖像有效像素顯示,685~800像素時鐘計數為行消隱前肩。完成一行后,計數器置0,等待新的行同步信號到來再重新計數。在圖像有效像素時鐘內,讓寫入FIFO使能信號處于有效狀態,而其余時間使能信號處于無效狀態,這樣可保證有效圖像數據能準確寫入FIFO進行緩存,并等待下一步的處理。

3.2 圖像縮放器模塊
    如圖3所示,圖像縮放器模塊主要完成對輸入圖像數據源進行分辨率的縮放。根據設計,輸入的圖像數據為VGA 640×480格式,輸出的圖像數據為XGA 1024×768格式。由于輸入圖像數據與輸出圖像數據在完整1幀中的每一行像素點和每一列的數量上之比都為5:8,因此可考慮對輸入的VGA信號作5:8的放大。先對數據在水平方向上進行插值放大,然后再進行垂直方向上的放大,設計中水平方向和垂直方向的插值放大均使用分級雙線性插值算法。

圖像縮放器模塊框圖

圖3 圖像縮放器模塊框圖


3.2.1分級雙線性插值 [3]
     在雙線性插值算法中,插值點的值根據其相鄰的4個已知點計算得出,如圖4所示。

雙線性插值算法原理圖

圖4 雙線性插值算法原理圖


    已知a、b、c、d為輸入圖像內的相鄰的4個點,其灰度值表示為f(x)。待插像素f點映射到原圖像后的坐標值小數部分為[m,n]。計算f點灰度值的過程如式(1)~式(3)所示:
    f[g]=f[a]+m(f(b)-f(a)) (1)
    f[h]=f[c]+m(f(d)-f(c)) (2)
  f[f]=f[g]+m(f(h)-f(g))
    =(1-m)(1-n)f(a)+m(1-n)f(b)+(1-m)nf(c)+mnf(d)  (3)
    分級雙線性插值使用的4個源圖像像素點都是待插值點的直接鄰點。插值的計算過程如下:
    g(x)=(f(a)(m×N)+f(b)×(1-m)N)/N
其中,m與1-m分別是a點與b點的權值。因為是做5:8的轉換,這里取C=N=8, 將原來為5個像素點的長度區間劃分為8個區間,每個區間都有m×N與(1-m)N這一對權值組成的整數對。每個區間內部的待插值點都與該區間左邊界取同樣的值。8個區間的權值對應于(8,0)、(7,1)、(6,2)、(5,3)(4,4)、(3,5)、(2,6)和(1,7)。在確定好了點位置后,以查找表的方式寫入權值與位置之間的關系,最后可根據內插點與臨近點的相對位置查找對應系數,并通過計算得出各像素點的灰階值。
3.2.2具體插值過程
3.2.2.1水平插值

  將雙線性插值分解為水平和垂直方向進行,由于是把原圖像作5:8的放大,所以根據分級雙線性插值,把原水平方向的5個像素點采用分8級雙線性插值送入水平插值器。水平插值器由計數器與使能信號同時控制,每間隔5個時鐘,水平插值器使能端置于計算插值狀態,把進入的5個值進行一次插值變成新的8個像素點,之后再間隔5個時鐘,將新的值進入插值器進行插值,直到把1行640個像素點插值為1行1 024個像素點。
3.2.2.2 垂直插值

     垂直插值器完成垂直方向5:8的轉換,即5行數據變為8行數據的轉換,插值過程是按垂直方向對原來的5行數據采用分8級雙線性插值,變換為新的8行數據。
     完成水平插值的數據流水線型通過FIFO1與FIFO2模塊,期間將FIFO1與FIFO2的值送入垂直插值器進行插值,完成垂直插值后的數據送入FIFO3與FIFO4模塊,輸出順序排列在先的送入FIFO3,而另外一行數據進入FIFO4。FIFO3與FIFO4之間的數據也是流水線型進入到DDR2 SDRAM模塊中,整個過程通過使用狀態機對垂直插值進行控制,使經過垂直插值后的數據能以正確的順序完成插值,并且送入DDR2 SDRAM模塊。把對原5行數據經過水平和垂直插值變為8行數據的時間作為一個周期,直到完成整1幀VGA格式圖像到1幀XGA圖像的放大。
3.3 DDR2 SDRAM控制器模塊
    控制器模塊的具體作用為:當SCALER完成圖像數據處理后,把圖像數據送進DDR2中儲存,在確保DDR2中存儲有2幀完整圖像時,DDR2的讀出端才開始讀取,從第一幀圖像地址讀取圖像數據,然后據根據時序控制從DDR2輸出。當讀完第一幀后,繼續讀取第二幀,此時第三幀繼續寫入原第一幀地址,之后的讀取寫入都按此過程進行。
    由于DDR2 SDRAM不能同時寫入和讀出,所以需要DDR2 SDRAM控制器加以控制。可根據連接到DDR2 SDRAM模塊寫入端和讀出端的FIFO內部已存數據數量進行讀寫控制。寫入端前的FIFO即為圖3的FIFO3。連接到DDR2讀出端的FIFO為圖3的FIFO2,它與輸出時序控制模塊共同完成最終所需XGA圖像的輸出。DDR2 SDRAM每次操作指令時,以1行數據為單位,即接受1次讀命令,則讀出1行數據;同樣,接受1次寫入命令,則寫入1行數據,此1行數據同時為XGA格式的1行(1 024個像素點數據)。
4 仿真與功能實現
     在設計中,采用Verilog語言對各邏輯模塊進行編寫設計,在開發環境Quartus II 9.1和Modelsim-altera 6.5b下完成對各模塊的時序的仿真和功能的設計和驗證,如圖5所示為數據進入水平插值器后的仿真結果,水平插值把原5像素插為新8像素的仿真,其中pix為待插值的5個像素,data為插值后的8個新像素。

水平插值5像素插成8像素Modelsim仿真圖

圖5 水平插值5像素插成8像素Modelsim仿真圖


    經過對各模塊設計的仿真,并且對各模塊功能驗證正確后,進行系統整體的仿真驗證,最終將處理完成圖像數據送到LCD上進行顯示,經過放大后的示例如圖6 所示。仿真驗證表明,得到的圖像時序和數據與要求的時序一致,對于圖像數據來說雖然雙線性會對屏幕邊緣存在高頻分量的損失[4],使輪廓稍有模糊,但是從圖像上對人眼觀看的影響很小。

經過放大的ARM圖像信號在LCD上的顯示(XGA格式)

圖6 經過放大的ARM圖像信號在LCD上的顯示(XGA格式)


    介紹了VESA標準中的VGA與XGA時序,通過FPGA平臺設計圖像縮放器,完成控制信號、時序信號和數據信號的同時輸入和控制,同時使用插值算法對分辨率進行放大,達到了對ARM圖像信號的擴展顯示。如要實現更多格式之間的轉換,可在程序寫入各種圖像格式縮放之間的算法,如VGA、XGA、SVGA等格式。在程序中利用狀態機實現不同格式之間的轉換和時序的控制,加強縮放的范圍,擴展其運用。
參考文獻
[1] 張旭,王彬.一種基于FPGA的實時圖像轉換控制器的設計[J].電子技術應用,2007,33(10):66-68.
[2] 陳偉,盧貴主,鄭靈翔. 基于雙線性算法的定標器及其FPGA實現[J].電子技術應用,2008,34(4):40-43.
[3] 朱艷亮. 實時視頻縮放算法研究及FPGA的實現[D].長沙:中南大學,2009.
[4] 孫紅進.FPGA實現的視頻圖像縮放顯示[J]. 液晶與顯示, 2010,25(1):130-133.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品男女| 一本到12不卡视频在线dvd| 亚洲激精日韩激精欧美精品| 狠狠狠色丁香婷婷综合久久五月 | 午夜精品免费| 黑人一区二区| 国产日本精品| 嫩草影视亚洲| 亚洲视频免费| 欧美一区二区三区四区在线观看地址| 伊大人香蕉综合8在线视| 欧美黄网免费在线观看| 亚洲一区精品电影| 欧美一级淫片播放口| 亚洲第一在线综合网站| 欧美性大战xxxxx久久久| 久久久精品五月天| 久久精品99| 日韩视频在线观看| 亚洲女人av| 亚洲高清成人| 国产精品久久久久久久久婷婷 | 99re8这里有精品热视频免费 | 亚洲视频精选在线| 在线视频日本亚洲性| 亚洲欧美激情一区| 亚洲欧美日韩国产一区二区三区| 亚洲制服av| 亚洲国产欧美在线| 国产精品婷婷| 欧美成人免费在线视频| 亚洲欧美日韩一区二区| 亚洲第一福利在线观看| 日韩一级成人av| 国产综合自拍| 国产精品另类一区| 欧美国产激情二区三区| 欧美激情一区| 久久综合九色综合久99| 亚洲一区二区三区免费观看| 亚洲制服av| 久久都是精品| 免费黄网站欧美| 久久国产精品高清| 久久久噜噜噜久久狠狠50岁| 亚洲欧美电影院| 亚洲人人精品| 欧美一区二区在线看| 亚洲电影网站| 午夜欧美精品| 亚洲国产91| 亚洲美女性视频| 亚洲高清不卡在线观看| 亚洲美女视频在线免费观看| 亚洲女同在线| 久热精品视频在线观看一区| 欧美日韩成人| 欧美国产先锋| 国产精品久久久久久久久久久久久| 国产欧美在线观看一区| 亚洲第一精品夜夜躁人人爽| 99re66热这里只有精品3直播| 亚洲综合大片69999| 亚洲国产一二三| 亚洲影视在线| 美女视频黄免费的久久| 欧美视频精品在线| 欧美精品不卡| 国产精品亚洲综合| 亚洲大片在线| 欧美一级理论片| 一区二区三区视频在线观看| 久久国产黑丝| 欧美日韩一二三四五区| 欧美精品日韩精品| 国产精品无人区| 亚洲激情午夜| 欧美在线3区| 亚洲性视频h| 亚洲小说春色综合另类电影| 久久久免费观看视频| 欧美亚州一区二区三区| 在线成人av.com| 亚洲高清激情| 亚洲欧美在线免费| 亚洲特级毛片| 欧美大胆成人| 黄网动漫久久久| 亚洲影院在线观看| 在线中文字幕不卡| 欧美成人精品h版在线观看| 国产日韩欧美在线播放不卡| 国产亚洲亚洲| 好看的日韩av电影| 在线视频你懂得一区| 中文高清一区| 亚洲国产精品第一区二区| 一本综合久久| 9人人澡人人爽人人精品| 国产精品99久久不卡二区| 久久免费视频网| 久久综合久久综合九色| 国产精品蜜臀在线观看| 亚洲巨乳在线| 亚洲男人的天堂在线aⅴ视频| 亚洲另类一区二区| 另类春色校园亚洲| 国语自产精品视频在线看| 亚洲欧美中文在线视频| 亚洲在线观看视频| 欧美调教vk| 99国产麻豆精品| 一区二区高清| 欧美日本二区| 欧美日韩在线一区二区三区| 1024精品一区二区三区| 亚洲大片精品永久免费| 久久婷婷激情| 狠狠干综合网| 亚洲激情视频网站| 亚洲一区二区三区精品在线| 欧美护士18xxxxhd| 亚洲黄色一区| 99国产一区| 欧美日本网站| 亚洲美女色禁图| 亚洲婷婷在线| 欧美视频在线观看免费| 一区二区三区毛片| 亚洲欧美日韩一区二区在线| 国产精品欧美久久| 亚洲欧美日韩精品久久亚洲区| 小处雏高清一区二区三区 | 久久久久久久欧美精品| 国内精品久久久久久| 久久精品人人做人人爽电影蜜月| 亚洲美女电影在线| 欧美精品18| 99精品99| 午夜视频在线观看一区| 国产欧美日韩三区| 久久精品亚洲精品国产欧美kt∨| 久久久中精品2020中文| 影音先锋成人资源站| 亚洲人线精品午夜| 欧美日韩第一页| 亚洲少妇最新在线视频| 午夜亚洲伦理| 激情伊人五月天久久综合| 亚洲精品婷婷| 国产精品激情av在线播放| 亚洲欧美日韩精品久久久久| 久久蜜桃av一区精品变态类天堂| 精品999在线观看| 99精品视频免费观看| 国产精品白丝av嫩草影院| 亚洲欧美一区二区三区久久| 久久久久青草大香线综合精品| 亚洲成色最大综合在线| 亚洲一二三区视频在线观看| 国产日韩欧美另类| 最新日韩在线视频| 欧美视频中文字幕在线| 欧美一级久久久| 欧美女同视频| 午夜精品久久久久久久99水蜜桃| 裸体歌舞表演一区二区 | 一区二区高清在线| 欧美在线看片| 欧美午夜精品久久久久久人妖| 亚洲午夜一区| 亚洲图片在线| 国产欧美日韩专区发布| 亚洲精品国精品久久99热一| 欧美性猛片xxxx免费看久爱| 久久本道综合色狠狠五月| 午夜精品视频一区| 黑人巨大精品欧美一区二区| 亚洲美女黄网| 国产精品日韩电影| 亚洲精品国产欧美| 国产精品自在线| 亚洲一区区二区| 开心色5月久久精品| 一本在线高清不卡dvd| 美女成人午夜| 亚洲一区久久久| 欧美极品色图| 欧美在线播放视频| 欧美日韩在线播放一区| 久久精品国内一区二区三区| 欧美新色视频| 日韩视频在线一区二区| 国产视频一区在线观看| 亚洲婷婷国产精品电影人久久| 激情久久久久| 亚洲欧美中文日韩在线| 亚洲日本中文| 欧美一区二区三区在线看| 欧美理论片在线观看|