Chip123 科技應用創新平台

標題: FPGA用於數位影像處理? [打印本頁]

作者: brosnan    時間: 2008-12-11 12:47 AM
標題: FPGA用於數位影像處理?
各位前輩.小弟目前手上有一個xillinx的FPGA版子! 目前想要建構一個如下的環境:
; R+ G( C0 m( ~. I5 k$ y讀取一張影像,經過一個簡單的運算(ex.把一張影像的每個pixel值作一些運算) 輸出到VGA的螢幕上!! P3 S) S) c3 r& R4 E
想請教各位幾個問題(之前無FPGA的學習經驗)
4 }9 K, E  X6 ~3 C7 w1.verilog 有讀取一張影像的指令嗎?我的想法是寫一個verilog code 把要處理的影像就直接寫在code上.
9 Q0 M1 i0 w) \& J( G2 N3 N  燒錄到版子上,直接秀在螢幕上.7 t2 N4 T( x& O7 J4 x
2.如果是要把處理好的影像輸出到VGA螢幕上(FPGA板上有VGA Port),還需要寫什麼程式嗎?
  k5 G+ J  Y7 l% h5 }' o, P9 `7 P, ]2 _' A6 [7 b/ ~5 r
<ps>如果有相關的參考資料(網站,書),可提參考的話,也非常感激!
作者: walltsou    時間: 2008-12-11 01:38 PM
有幾件事你必須先決定。
6 p3 `0 b! ^" h5 y1.影像儲存的地方及大小3 Z/ D1 S) @. F# K/ v) S
2.影像如何和PC之間傳輸及驗證
9 i! [% x* B- Z' u4 y3 V我規劃的方法
" q) p8 y3 @9 x" ^  x# c9 c/ x1.使用SDRAM存,所以要使用SDRAM控制器的IP; j' [1 H/ i3 _" L! d
2.使用PCI界面,確保資料流量
6 S* Z! K; b# d至於VGA,暫不考量,因為要是資料處理錯誤,從VGA是看不出來的。, k1 h! v  a/ f# Y9 @( y$ l
我是從PC的記憶體傳到PCI卡上的FPGA處理完再回傳PC。至少可以比對處理狀況,或是單格處理再比對。
5 H. ]" N  b7 f- O" o要是你用獨立板子,那又要處理攝影問題。至少PC不用,可以使用錄好的檔案。) H( s6 x9 ~; u5 c+ L5 o5 Y
做即時攝影處理,我做過,完全看不出資料處理錯誤時的狀況。只能知道處理錯誤,然後猜。
作者: jason_lin    時間: 2008-12-14 04:48 PM
Altera有一塊板子他提供NTSC/PA IN,VGA out的參考設計,而且全部都是source code,你可以參考這個設計^_^9 e6 ]. h5 o( h0 G1 ?
網址如下:, r- d( {6 v3 W  |3 y
http://www.terasic.com.tw/cgi-bi ... goryNo=38&No=56! X6 L4 N5 |9 ^' z3 Y
想design TV的人可以參考,板子規格如下:) ^' `: U$ |' ^1 H: E/ t) L* ]
Altera Cyclone II 2C35 FPGA with 35000 LEs / x9 ?- J1 ?7 S% a) k- C7 ~% c+ N# J
Altera Serial Configuration deivices (EPCS16) for Cyclone II 2C35
, @7 ]. T4 j. ]" g6 W# `USB Blaster built in on board for programming and user API controlling
! L9 |: n8 G& S8 e7 l$ |/ [JTAG Mode and AS Mode are supported ! z+ k! _+ l4 f
8Mbyte (1M x 4 x 16) SDRAM 0 F* g0 y2 \4 u1 p
512K byte(256K X16) SRAM 7 j1 _) u1 z/ E9 ~# G
4Mbyte Flash Memory (upgradeable to 4Mbyte) & h7 ^3 ~  I" B1 ~
SD Card Socket 7 Z4 t% g- y* `! v
4 Push-button switches $ E; K, Q7 N! a: a
18 DPDT switches
$ ~- v9 I( U7 C' ?6 s* h9 Green User LEDs   C! _6 s# `. F' h+ ^7 U8 ]4 K
18 Red User LEDs
; x% m" {9 U, b$ ~3 L9 ~16 x 2 LCD Module
7 ?0 h* Z7 i, Y% o1 a* {50MHz Oscillator and 27MHz Oscillator for external clock sources ' q8 H& [* Q) {, a( o9 T  P: j: R
24-bit CD-Quality Audio CODEC with line-in, line-out, and microphone-in jacks
0 l0 [+ w' W& L# `+ ]4 G- QVGA DAC (10-bit high-speed triple DACs) with VGA out connector 4 D: Y" o3 L+ O. C) B1 |
TV Decoder (NTSC/PAL) and TV in connector
8 Q! _# c1 k8 ~: g10/100 Ethernet Controller with socket. ; @+ \9 Z1 B( O, S: j6 F
USB Host/Slave Controller with USB type A and type B connectors. ' d. h2 u$ D+ q, g7 |# s! c# a
RS-232 Transceiver and 9-pin connector
- Y% l, R; d2 j/ d7 }$ m9 p1 KPS/2 mouse/keyboard connector
( U$ M  L) r. pIrDA transceiver
% ]9 Q$ V* m7 A, STwo 40-pin Expansion Headers with diode protection
# s; y4 Q9 W& x3 VDE2 Lab CD-ROM which contains many examples with source code to exercise the boards, including: SDRAM and Flash Controller, CD-Quality Music Player, VGA and TV Labs, SD Card reader, RS-232/PS-2 Communication Labs, NIOSII, and Control Panel API
! z5 y7 A0 r' A# ~# n7 f5 M" l# ESize:153*203 mm
作者: walltsou    時間: 2008-12-15 01:26 PM
DE2這個發展板,是基於NIOS-II的Soft-CPU上。也有CCD模組可以選購。2 R" k9 N' T" N/ \4 Y6 k. |: z/ ]
不過,影像處理需要很高的效能,不可以在Soft-CPU上執行,必須自行建立處理模組以裝置的方式掛上。4 U4 O7 e. i/ u4 N7 D( N. e
可以我覺得因為影像處理使用很多FPGA的資料,再加上一個Soft-CPU,真的不知是否可以擠進去。
3 Q% x% {* d$ o至於和PC端的傳輸,大概只能使用USB。可能要做出單格的方式來驗證演算法。
5 `. M, |9 \0 {: M) V- S& }使用這板子做VGA顯示,已有台大研究生做出來,也是用在影像處理上,用Google找找吧。
作者: kosenmagic    時間: 2008-12-16 11:14 AM
你能確定你的資料輸入的模式嗎?5 m4 s6 T( S+ g9 O; D' ?
就是說資料進入FPGA的方式是哪一種?
" R. Y6 D3 y! W4 n; K: }9 }實務上的作法就是 你要先確定你的版子是哪一種資料輸入
$ o4 ~2 Z6 h! j% Q9 i! B以及是哪一種訊號模式進入FPGA?
1 T2 F6 M) A' V- j然後妳才能有辦法寫code去判斷一張FRAME的起始
% y9 c, }9 f0 U判斷起始以後再去判斷每一條LINE的起始+ r( b" A9 L6 P5 f9 r& N
有辦法判斷起始以後再去對pixdata進行演算法運算
! P0 k8 u% S3 ]7 x* Y& Q; r- Y影像處理最主要是演算法的驗證,可以實現的演算法不一定能用
( a  A, ~7 B% `; a0 m6 O9 O. C4 |因為gate會太多以致COST大增,以你的想法是想要把資料寫在CODE裡面
6 j1 ~( q& X- h4 k或是把影像從RAM拉出來一次,然後運算以後儲存,在輸出運算一次的結果到螢幕
$ Z8 V' b/ x/ n  A! R這只能確認演算法的展現成果,但是對於實際影像運作就不行; {2 \) D9 I5 z: f0 c8 f
因為影像是連續的,實際的運作流程會是判斷影像的資料型態,
4 _1 x3 F) y8 r. C* `) D! n& n5 P將演算法實現成VERILOG,判斷影像的起始與資料位置進行演算法運算,再依照輸出與輸入的介面需求# |/ l4 M# {: d3 w! `+ r. P
將資料讀入與輸出% N- }/ i4 r8 x% `$ d0 N$ R
實務作法3 E" ^0 S7 b% R
1.確認進入與輸出實驗版的資料型態RGB?CCIR?
0 t) p- ]1 Y2 x- ~2.確認進入與輸出FPGA的資料型態RGB?CCIR?或是SD?( M, d1 D, f" b$ }' p  o
3.進行FPGA資料介面編寫
$ |1 G; ?( q( y: V6 D4.進行演算法編寫: ]; c4 a' @* b7 V
5.整合介面與演算法8 I  {" `) n0 T7 h4 p+ e" x- [1 H
6.燒入FPGA
; c6 ~( v' H$ s  c  y/ Y7 V2 C# B這樣才是整各流程
' G2 P/ x( b' x/ \( R" ~; b* O, D* }- E1 P0 a- S9 T: I+ Y; X. g2 O: b
[ 本帖最後由 kosenmagic 於 2008-12-16 11:31 AM 編輯 ]
作者: jason_lin    時間: 2008-12-18 10:26 PM
DE2板子參考設計的輸入是使用ADI的chip,出來是CCIR656,source code是把656轉601,之後存到sdram,然後再抓出來做影像處理,最後丟到VGA或LCD,& _, ~8 f# q/ m2 Z
block Digram如下圖:( N# t, _5 V$ h' `
有任何問題,我們再來討論討論^__^
作者: kka    時間: 2008-12-24 06:39 PM
挖...
/ R6 }4 i/ U5 t3 f各位大大的回答都很詳細...
( U7 g) f8 p1 i! ~9 ~讓我們這些新手很受用...  A1 L8 N/ d. j! e
不知道哪邊還可以找到更多DE2的介紹呢?




歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/) Powered by Discuz! X3.2