Chip123 科技應用創新平台

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

作者: brosnan    時間: 2008-12-11 12:47 AM
標題: FPGA用於數位影像處理?
各位前輩.小弟目前手上有一個xillinx的FPGA版子! 目前想要建構一個如下的環境:
8 y2 p" N7 m  N, F5 j+ e讀取一張影像,經過一個簡單的運算(ex.把一張影像的每個pixel值作一些運算) 輸出到VGA的螢幕上!
$ y1 a" j) @, k( D6 P想請教各位幾個問題(之前無FPGA的學習經驗)
! j) F: j2 @& B5 y& V1.verilog 有讀取一張影像的指令嗎?我的想法是寫一個verilog code 把要處理的影像就直接寫在code上.6 X4 m5 `1 `/ A2 K% R) j; D6 b
  燒錄到版子上,直接秀在螢幕上.
2 z) K. A- \- k+ C" v  ]2.如果是要把處理好的影像輸出到VGA螢幕上(FPGA板上有VGA Port),還需要寫什麼程式嗎?
- p( c# O! [# i3 a, s* l/ w- s4 o% B$ G. L# j
<ps>如果有相關的參考資料(網站,書),可提參考的話,也非常感激!
作者: walltsou    時間: 2008-12-11 01:38 PM
有幾件事你必須先決定。  v5 C" y& a1 [0 z# `, {7 W
1.影像儲存的地方及大小
9 z5 C5 k+ ^4 K2.影像如何和PC之間傳輸及驗證+ T" B5 E) ]; P* l) v
我規劃的方法
7 p# q* C1 G3 @8 E1.使用SDRAM存,所以要使用SDRAM控制器的IP
1 C0 l% V+ p( q5 X8 J$ z2.使用PCI界面,確保資料流量
& N# ~) j) E. A至於VGA,暫不考量,因為要是資料處理錯誤,從VGA是看不出來的。
' ~" _+ N3 m& g: D我是從PC的記憶體傳到PCI卡上的FPGA處理完再回傳PC。至少可以比對處理狀況,或是單格處理再比對。$ c. o  t; h( j9 k$ f$ A3 h6 ~
要是你用獨立板子,那又要處理攝影問題。至少PC不用,可以使用錄好的檔案。
! D; @9 K( n/ ]) L1 T  n" T做即時攝影處理,我做過,完全看不出資料處理錯誤時的狀況。只能知道處理錯誤,然後猜。
作者: jason_lin    時間: 2008-12-14 04:48 PM
Altera有一塊板子他提供NTSC/PA IN,VGA out的參考設計,而且全部都是source code,你可以參考這個設計^_^
- U- W9 e4 y1 O8 B5 g網址如下:
7 R( H& Z: m5 J% g5 W) dhttp://www.terasic.com.tw/cgi-bi ... goryNo=38&No=56
; o; G3 i  k4 X3 t8 U7 e想design TV的人可以參考,板子規格如下:
1 L6 K6 d/ m; T3 X9 ]0 _& iAltera Cyclone II 2C35 FPGA with 35000 LEs
' _( L7 q$ v6 m$ cAltera Serial Configuration deivices (EPCS16) for Cyclone II 2C35 ) M  m0 X9 Z# Q$ o) Q9 }; ^
USB Blaster built in on board for programming and user API controlling $ j' J' S4 Y: g
JTAG Mode and AS Mode are supported
* U* P2 R7 n7 E0 }& S8Mbyte (1M x 4 x 16) SDRAM
- d- s/ k# V/ d1 H* D512K byte(256K X16) SRAM 3 E: u+ a. o$ u; }6 n" ]- g  |
4Mbyte Flash Memory (upgradeable to 4Mbyte) 9 v  U& e: x  Z
SD Card Socket
0 Q3 d' q) B  M' Z; K$ g3 J* g4 Push-button switches 6 |: o$ i+ b, A
18 DPDT switches 2 P: I5 D+ f; X* }
9 Green User LEDs
  |+ h) q- |9 n/ T4 A8 K$ g6 U18 Red User LEDs 8 t0 t0 m  y1 r1 U8 W. _6 d
16 x 2 LCD Module
- n# o2 F5 z) Y50MHz Oscillator and 27MHz Oscillator for external clock sources
: p: Q6 p- `- `& O9 n$ @24-bit CD-Quality Audio CODEC with line-in, line-out, and microphone-in jacks
& x! z% u- ~. v& H8 I9 tVGA DAC (10-bit high-speed triple DACs) with VGA out connector : X. Y; ]: J* h; I
TV Decoder (NTSC/PAL) and TV in connector - A& Q# f6 |- _* C9 k
10/100 Ethernet Controller with socket.
- g( s5 N3 g4 b; T, H; S3 P& [: X+ sUSB Host/Slave Controller with USB type A and type B connectors. & L8 T$ |$ r, m7 p/ j' p
RS-232 Transceiver and 9-pin connector 2 Q1 o7 Y; V5 `/ m% a
PS/2 mouse/keyboard connector
. z: G3 V# W9 c, T3 o* FIrDA transceiver $ H  \2 o% w/ W0 x5 D
Two 40-pin Expansion Headers with diode protection 9 p3 }" G! ?6 B) `3 |
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 * w" \% W, E1 j6 Y
Size:153*203 mm
作者: walltsou    時間: 2008-12-15 01:26 PM
DE2這個發展板,是基於NIOS-II的Soft-CPU上。也有CCD模組可以選購。
# }. |, ~( M- r不過,影像處理需要很高的效能,不可以在Soft-CPU上執行,必須自行建立處理模組以裝置的方式掛上。# c, n3 b2 ~7 J3 g
可以我覺得因為影像處理使用很多FPGA的資料,再加上一個Soft-CPU,真的不知是否可以擠進去。
. M8 p9 {  N& z+ k! e! D8 E至於和PC端的傳輸,大概只能使用USB。可能要做出單格的方式來驗證演算法。
5 Y  o, C& u8 i; b0 D8 V使用這板子做VGA顯示,已有台大研究生做出來,也是用在影像處理上,用Google找找吧。
作者: kosenmagic    時間: 2008-12-16 11:14 AM
你能確定你的資料輸入的模式嗎?& U4 c" e9 R# `$ _% q' P0 |! b0 d6 {2 b
就是說資料進入FPGA的方式是哪一種?
+ B! w9 K! B+ d+ H3 R* W9 {. I0 K: K實務上的作法就是 你要先確定你的版子是哪一種資料輸入  s' Z& n7 {: L5 T
以及是哪一種訊號模式進入FPGA?2 y, h+ Z" a5 c1 D% o
然後妳才能有辦法寫code去判斷一張FRAME的起始
. k1 O/ C5 A# u; \判斷起始以後再去判斷每一條LINE的起始( X* S, \5 R; L$ y% m( C3 B
有辦法判斷起始以後再去對pixdata進行演算法運算
+ q0 l  F- T3 l( t影像處理最主要是演算法的驗證,可以實現的演算法不一定能用
  i+ o. V0 ~, M$ ]因為gate會太多以致COST大增,以你的想法是想要把資料寫在CODE裡面
: u, i1 @- ?3 V3 O( t% B或是把影像從RAM拉出來一次,然後運算以後儲存,在輸出運算一次的結果到螢幕, @5 O& Q/ ^# g& \
這只能確認演算法的展現成果,但是對於實際影像運作就不行4 ~) Z7 }* w6 r  i
因為影像是連續的,實際的運作流程會是判斷影像的資料型態,
" g0 H% o( s( @5 D3 A$ d將演算法實現成VERILOG,判斷影像的起始與資料位置進行演算法運算,再依照輸出與輸入的介面需求/ D" f4 D' ]! ~1 b! R6 m
將資料讀入與輸出# N0 V4 w/ ]2 A& @$ D4 D
實務作法$ M# W: r" N6 j( i: u8 C: y
1.確認進入與輸出實驗版的資料型態RGB?CCIR?# P2 I( Z2 V/ B
2.確認進入與輸出FPGA的資料型態RGB?CCIR?或是SD?
7 M3 E5 Z' p1 B0 X9 O) H  Q3.進行FPGA資料介面編寫8 `, X1 p4 ], a0 j
4.進行演算法編寫
1 I: k: X( D: ^; y: t% b! q( R9 [5.整合介面與演算法' d! c4 ~# J6 }- [  k
6.燒入FPGA) Q' g* U5 v: C3 S& ^  q3 M% k
這樣才是整各流程9 u, {+ b; ^* T3 k6 W

  c3 D5 q6 {# X8 `- W[ 本帖最後由 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,
  L- h1 M1 j) C; {& Cblock Digram如下圖:
, M" e6 W1 O' ~" T有任何問題,我們再來討論討論^__^
作者: kka    時間: 2008-12-24 06:39 PM
挖...- _% v$ u" y+ v, U! K; W6 a& e; X4 `
各位大大的回答都很詳細...# t" y) |* ~6 \( H1 R
讓我們這些新手很受用...8 q. }: y3 u! h
不知道哪邊還可以找到更多DE2的介紹呢?




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