Chip123 科技應用創新平台

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

作者: brosnan    時間: 2008-12-11 12:47 AM
標題: FPGA用於數位影像處理?
各位前輩.小弟目前手上有一個xillinx的FPGA版子! 目前想要建構一個如下的環境:2 S0 A9 h# Z! s$ Y, _9 v5 z& A5 x. w
讀取一張影像,經過一個簡單的運算(ex.把一張影像的每個pixel值作一些運算) 輸出到VGA的螢幕上!) U! _# i/ R; g) g5 ~
想請教各位幾個問題(之前無FPGA的學習經驗)
2 J+ p5 X5 e/ h1.verilog 有讀取一張影像的指令嗎?我的想法是寫一個verilog code 把要處理的影像就直接寫在code上.( E( x" i' ~7 X* o8 T  q
  燒錄到版子上,直接秀在螢幕上.
# A5 f# S6 ]6 |; O2 _4 `2.如果是要把處理好的影像輸出到VGA螢幕上(FPGA板上有VGA Port),還需要寫什麼程式嗎?. K# k4 e: n8 L) u/ `2 t; l" \" h: @
, A7 t1 e+ O5 `; o! C6 X, h
<ps>如果有相關的參考資料(網站,書),可提參考的話,也非常感激!
作者: walltsou    時間: 2008-12-11 01:38 PM
有幾件事你必須先決定。  W$ u; `, ]$ ]) D: Z6 i% n
1.影像儲存的地方及大小
' z; d. W& C( O7 H* q. C# R7 s6 O2.影像如何和PC之間傳輸及驗證# B. j# M1 j1 F" c5 g
我規劃的方法
7 x4 B& h: D; A) [/ }1.使用SDRAM存,所以要使用SDRAM控制器的IP4 D- c6 M& e( ]# ]4 B5 m
2.使用PCI界面,確保資料流量8 Y5 }$ K) e+ V3 t. Q# t* ~
至於VGA,暫不考量,因為要是資料處理錯誤,從VGA是看不出來的。
2 j9 F' a: ?5 M+ P3 I& l% `我是從PC的記憶體傳到PCI卡上的FPGA處理完再回傳PC。至少可以比對處理狀況,或是單格處理再比對。/ H( ~* T: }0 r) h6 S
要是你用獨立板子,那又要處理攝影問題。至少PC不用,可以使用錄好的檔案。" `6 v6 N# S) ^' M9 s8 x* b1 f
做即時攝影處理,我做過,完全看不出資料處理錯誤時的狀況。只能知道處理錯誤,然後猜。
作者: jason_lin    時間: 2008-12-14 04:48 PM
Altera有一塊板子他提供NTSC/PA IN,VGA out的參考設計,而且全部都是source code,你可以參考這個設計^_^0 t7 r& p% q# ~. e
網址如下:0 R3 @- p$ O' W0 _, r* E$ U/ ?
http://www.terasic.com.tw/cgi-bi ... goryNo=38&No=561 ?" N. T. P7 n
想design TV的人可以參考,板子規格如下:4 A- @( R+ K1 c
Altera Cyclone II 2C35 FPGA with 35000 LEs ( v1 H: I3 ~. P: F$ ]
Altera Serial Configuration deivices (EPCS16) for Cyclone II 2C35
* O4 |# v& n% _( v' v& ^USB Blaster built in on board for programming and user API controlling
% G% q$ M4 `) |0 OJTAG Mode and AS Mode are supported
  X! X0 M9 y, r2 p7 p' |8Mbyte (1M x 4 x 16) SDRAM
  P% s* B( {9 w9 C2 a512K byte(256K X16) SRAM
; E  H  {) N( m3 V* n% i3 a4Mbyte Flash Memory (upgradeable to 4Mbyte)
7 ~( Z6 L( C! {% Z, hSD Card Socket   I( R0 l! U2 z1 ?3 Z8 G. J4 p
4 Push-button switches ! ?) \! P$ \+ R' ~" ~
18 DPDT switches
; @) E% c% f9 N' [1 f! U9 Green User LEDs 6 x. \9 ^- Q1 z, c+ L
18 Red User LEDs / C6 B) y* p  G$ e0 J
16 x 2 LCD Module
& j7 }/ ~5 h# a! p50MHz Oscillator and 27MHz Oscillator for external clock sources
- V/ `7 L5 q0 r0 A: Z) w0 U) i& N24-bit CD-Quality Audio CODEC with line-in, line-out, and microphone-in jacks
) i, \' W2 J! k! b" G# R* f; p9 [VGA DAC (10-bit high-speed triple DACs) with VGA out connector & {0 L! a; q3 M( q9 Y
TV Decoder (NTSC/PAL) and TV in connector , h* K. e) e7 |+ s: ?
10/100 Ethernet Controller with socket. " K2 j: c% j2 e& n
USB Host/Slave Controller with USB type A and type B connectors.
- X$ }* u: ]4 s: SRS-232 Transceiver and 9-pin connector % \% e4 p# C7 @, d& c
PS/2 mouse/keyboard connector
; D8 s! E3 R& G, t: a) m) F( JIrDA transceiver
3 B" G- q: z2 Y% MTwo 40-pin Expansion Headers with diode protection
$ O$ t+ k& g% W: K/ _DE2 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
2 `4 M" Y5 ]  X8 n5 QSize:153*203 mm
作者: walltsou    時間: 2008-12-15 01:26 PM
DE2這個發展板,是基於NIOS-II的Soft-CPU上。也有CCD模組可以選購。& B2 k# c8 @4 _! F- {' u) D( ~( B
不過,影像處理需要很高的效能,不可以在Soft-CPU上執行,必須自行建立處理模組以裝置的方式掛上。7 Z- J/ w- t- E) D; H
可以我覺得因為影像處理使用很多FPGA的資料,再加上一個Soft-CPU,真的不知是否可以擠進去。
& p* b0 B6 z* m+ ?至於和PC端的傳輸,大概只能使用USB。可能要做出單格的方式來驗證演算法。
+ e1 P: L* N( p' R使用這板子做VGA顯示,已有台大研究生做出來,也是用在影像處理上,用Google找找吧。
作者: kosenmagic    時間: 2008-12-16 11:14 AM
你能確定你的資料輸入的模式嗎?
) e, k: J0 v# e6 R& K' ^就是說資料進入FPGA的方式是哪一種?2 T  x+ M$ G" ]1 V) E
實務上的作法就是 你要先確定你的版子是哪一種資料輸入  q& u! t$ t  ~  V' _$ R
以及是哪一種訊號模式進入FPGA?  {" p  Q% ?, w0 m% L
然後妳才能有辦法寫code去判斷一張FRAME的起始
! M8 h0 a: e2 G9 ?7 T/ x( ]判斷起始以後再去判斷每一條LINE的起始
8 S/ h" j2 f4 E+ y9 G, T6 h" ^有辦法判斷起始以後再去對pixdata進行演算法運算
( O( Z2 s; C& O5 i9 W$ W影像處理最主要是演算法的驗證,可以實現的演算法不一定能用
6 _0 b. ]3 Y! e; V6 h$ `因為gate會太多以致COST大增,以你的想法是想要把資料寫在CODE裡面& k2 H6 I3 p: @9 `0 {' d
或是把影像從RAM拉出來一次,然後運算以後儲存,在輸出運算一次的結果到螢幕
$ K; {- ^. v+ V( v這只能確認演算法的展現成果,但是對於實際影像運作就不行$ l6 o. \* J% A6 k- D
因為影像是連續的,實際的運作流程會是判斷影像的資料型態,
) T, `6 Q3 r. }/ C) v將演算法實現成VERILOG,判斷影像的起始與資料位置進行演算法運算,再依照輸出與輸入的介面需求5 c" v7 C( j! B# v' |, `' \
將資料讀入與輸出
4 G& y2 W, q& }% G# j" t* B實務作法1 \. X6 I0 y5 c' X% ?
1.確認進入與輸出實驗版的資料型態RGB?CCIR?: j( M4 u) C0 d5 }4 {0 _
2.確認進入與輸出FPGA的資料型態RGB?CCIR?或是SD?6 v" }' u( u" a. h. x& S; o! d8 I! ~) e
3.進行FPGA資料介面編寫
! X! E" V3 ]6 q' V; _4.進行演算法編寫
) _4 [$ V5 {/ O, M. I( O/ Z5.整合介面與演算法
# O2 f- X$ |! s' J% t6 R2 a! p6.燒入FPGA8 |# g+ h+ p! u! d9 Q- Q" q7 \
這樣才是整各流程9 f6 B5 q) L& x- ]$ m, F
* V9 F0 H- V3 e
[ 本帖最後由 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,
- R9 [( R& ^0 s) D1 j2 a7 f- t" [block Digram如下圖:3 E3 D& y& A! O- c
有任何問題,我們再來討論討論^__^
作者: kka    時間: 2008-12-24 06:39 PM
挖...
; Q4 V9 Z2 S1 D  S各位大大的回答都很詳細...
; v0 F0 W7 m4 J0 ?" Z讓我們這些新手很受用...
: b6 ]5 W$ O, @- o0 v5 k8 e) e& H不知道哪邊還可以找到更多DE2的介紹呢?




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