本書首先介紹FPGA程式設計和圖像與視頻處理的關鍵基礎理論,然後通過實例代碼詳細講解了如何利用FPGA實現直方圖操作中的直方圖統計/均衡化/線性拉伸/規定化、線性濾波器操作中的均值濾波器、Sobel運算元(濾波、求模、求角度)、非線性濾波器操作中的排序類算法/形態學濾波、圖像分割算法中的局部自適應分割/Canny運算元等。
本書適用於需要利用FPGA進行圖像處理和視頻分析的學者和工程開發人員。讀者需要具備一定的嵌入式設計及FPGA設計的基礎知識,特別是Verilog語言的語法基礎。
基本介紹
- 書名:基於FPGA的數字圖像處理原理及套用
- 作者:牟新剛,周曉,鄭曉亮
- ISBN:9787121293351
- 出版社:電子工業出版社
- 出版時間:2017-01-01
內容簡介,目 錄,
內容簡介
本書首先介紹FPGA程式設計和圖像與視頻處理的關鍵基礎理論,然後通過實例代碼詳細講解了如何利用FPGA實現直方圖操作中的直方圖統計/均衡化/線性拉伸/規定化、線性濾波器操作中的均值濾波器、Sobel運算元(濾波、求模、求角度)、非線性濾波器操作中的排序類算法/形態學濾波、圖像分割算法中的局部自適應分割/Canny運算元等。
本書在仿真測試部分設計了一種完善的通用測試系統,並利用此測試系統在每一章的仿真測試環節對所設計算法進行嚴格的測試和驗證。本書在最後一章介紹了在視頻處理領域常見的輸入/輸出接口。本書偏向於工程套用,在書中有大量關於如何利用FPGA實現圖像處理算法的實例及代碼,並對這些算法的原理及其實現過程、算法測試等做了詳細的介紹,全部的算法都進行了仿真測試驗證。
本書適用於需要利用FPGA進行圖像處理和視頻分析的學者和工程開發人員。讀者需要具備一定的嵌入式設計及FPGA設計的基礎知識,特別是Verilog語言的語法基礎。
目 錄
第1章 圖像處理基礎 1
1.1 數字圖像處理簡介 1
1.1.1 圖像採樣 1
1.1.2 圖像量化 2
1.1.3 數字圖像處理 3
1.2 數字圖像處理系統 4
1.2.1 圖像處理系統構成 4
1.2.2 原始圖像獲取 6
1.2.3 圖像感測器接口 16
1.2.4 圖像處理流水線 17
1.2.5 圖像與視頻壓縮 19
1.2.6 視頻顯示處理 26
第2章 FPGA與圖像處理 32
2.1 使用FPGA的原因 32
2.2 FPGA技術優勢 33
2.3 FPGA的發展歷程 34
2.4 FPGA生產廠家及其產品 35
2.4.1 Altera 35
2.4.2 Xilinx 37
2.4.3 Lattice 37
2.4.4 Atmel 38
2.4.5 Actel 38
2.5 FPGA開發流程 38
2.5.1 FPGA設計方法 38
2.5.2 典型的FPGA開發流程 39
2.6 FPGA常用開發工具 44
2.6.1 代碼輸入工具 45
2.6.2 綜合工具 46
2.6.3 仿真工具 47
2.6.4 實現與最佳化工具 47
2.6.5 EDA工具 48
2.7 FPGA圖像處理的開發流程 49
2.7.1 需求分析及問題描述 49
2.7.2 軟體算法設計及驗證 50
2.7.3 硬體平台設計 51
2.7.4 FPGA映射 52
2.7.5 仿真及驗證 54
第3章 FPGA程式語言 55
3.1 HDL語言簡介 55
3.2 模組化設計 56
3.3 可移植性 57
3.4 不可移植性 61
3.5 測試邏輯 62
3.6 冗餘邏輯 63
3.7 常用語法 63
3.7.1 參數化 63
3.7.2 條件編譯 68
3.7.3 位寬匹配 69
3.7.4 二維數組 69
3.8 套用實例 70
3.8.1 信號邊沿檢測 70
3.8.2 多拍處理 72
3.8.3 圖像行列計數 73
第4章 映射技術 77
4.1 系統結構 77
4.1.1 流水線設計 77
4.1.2 並行陣列 81
4.2 計算技術 82
4.2.1 算法轉換 82
4.2.2 近似計算 83
4.2.3 增量更新 85
4.2.4 查找表 85
4.2.5 浮點計算 89
4.2.6 Cordic技術 96
4.3 存儲器映射 103
4.3.1 幀快取 104
4.3.2 行快取 105
4.3.3 異步快取 113
4.3.4 增加存儲器頻寬 114
4.3.5 存儲器建模與仿真 115
4.4 其他設計技巧 116
4.4.1 合理處理參數 116
4.4.2 資源及模組復用 117
4.4.3 防止亞穩態 118
第5章 系統仿真 121
5.1 Modelsim使用基礎 121
5.1.1 Modelsim簡介 121
5.1.2 Modelsim圖形界面及
仿真示例 122
5.1.3 使用腳本命令來加速
仿真 133
5.1.4 其他加速仿真的方法 136
5.2 視頻圖像處理仿真測試系統
5.2.1 仿真測試系統框架 136
5.2.2 視頻時序模擬 137
5.2.3 視頻捕獲模擬 145
5.2.4 MFC程式設計 157
5.2.5 通用testbench 161
第6章 直方圖操作 167
6.1 灰度直方圖 167
6.2 直方圖均衡化 169
6.3 直方圖規定化 172
6.4 直方圖拉伸 175
6.5 基於FPGA的直方圖操作 179
6.5.1 FPGA直方圖統計 179
6.5.2 FPGA直方圖均衡化 192
6.5.3 FPGA直方圖線性拉伸 203
第7章 線性濾波器 214
7.1 線性濾波 214
7.1.1 均值濾波 214
7.1.2 高斯濾波 216
7.1.3 Sobel運算元 219
7.1.4 離散傅立葉變換 222
7.2 基於FPGA的均值濾波 227
7.2.1 整體設計與模組劃分 227
7.2.2 子模組設計 228
7.2.3 Verilog代碼設計 232
7.2.4 仿真與調試結果 243
7.3 基於FPGA的Sobel運算元 247
7.3.1 整體設計與模組劃分 247
7.3.2 Sobel模板計算電路 249
7.3.3 基於Cordic的坐標系轉換
電路 251
7.3.4 Verilog代碼設計 257
7.3.5 仿真與調試結果 274
第8章 非線性濾波器 280
8.1 統計排序濾波 280
8.2 基於FPGA的統計排序濾波器 282
8.2.1 並行全比較排序法原理 282
8.2.2 整體設計與模組劃分 285
8.2.3 子模組設計 286
8.2.4 Verilog代碼設計 288
8.2.5 仿真與調試結果 298
第9章 形態學濾波 303
9.1 形態學濾波簡介 303
9.2 形態學濾波的基本套用 304
9.3 基於FPGA的Tophat濾波設計 311
9.3.1 頂層框架設計 311
9.3.2 子模組設計 312
9.3.3 Verilog代碼設計 317
9.3.4 仿真及調試結果 337
第10章 圖像分割 341
10.1 圖像分割簡介 341
10.2 基於閾值的分割 341
10.2.1 全局閾值分割 341
10.2.2 局部自適應閾值分割 344
10.3 基於邊緣的分割 347
10.3.1 Canny運算元 347
10.3.2 Canny運算元的計算步驟 347
10.4 基於FPGA的局部自適應分割 356
10.4.1 算法轉換 357
10.4.2 FPGA結構設計 358
10.4.3 子模組設計 359
10.4.4 Verilog代碼設計 363
10.4.5 仿真與調試 371
10.5 基於FPGA的Canny運算元設計 378
10.5.1 非最大值抑制電路設計 378
10.5.2 滯後閾值分割電路設計 381
10.5.3 Verilog代碼設計 382
10.5.4 仿真調試結果 390
第11章 視頻接口 391
11.1 視頻輸入接口 391
11.1.1 模擬視頻輸入 391
11.1.2 CameraLink接口 394
11.1.3 USB接口 399
11.1.4 FireWire接口 401
11.1.5 GigE Vision?接口 407
11.1.6 直接接口 410
11.2 視頻輸出接口 411
11.2.1 CVT標準 411
11.2.2 VGA 416
11.2.3 PAL 425
11.2.4 DVI/HDMI 433
參考文獻 441