طراحی سیستم های پردازش تصویر با FPGA
Design for Embedded Image Processing on FPGAs is ideal for researchers and engineers in the vision or image processing industry, who are looking at smart sensors, machine vision, and robotic vision, as well as FPGA developers and application engineers.
The book can also be used by graduate students studying imaging systems, computer engineering, digital design, circuit design, or computer science. It can also be used as supplementary text for courses in advanced digital design, algorithm and hardware implementation, and digital signal processing and applications.
Dr Donald Bailey starts with introductory material considering the problem of embedded image processing, and how some of the issues may be solved using parallel hardware solutions. Field programmable gate arrays (FPGAs) are introduced as a technology that provides flexible, fine-grained hardware that can readily exploit parallelism within many image processing algorithms. A brief review of FPGA programming languages provides the link between a software mindset normally associated with image processing algorithms, and the hardware mindset required for efficient utilization of a parallel hardware design. The design process for implementing an image processing algorithm on an FPGA is compared with that for a conventional software implementation, with the key differences highlighted. Particular attention is given to the techniques for mapping an algorithm onto an FPGA implementation, considering timing, memory bandwidth and resource constraints, and efficient hardware computational techniques. Extensive coverage is given of a range of low and intermediate level image processing operations, discussing efficient implementations and how these may vary according to the application. The techniques are illustrated with several example applications or case studies from projects or applications the author has been involved with. Issues such as interfacing between the FPGA and peripheral devices are covered briefly, as is designing the system in such a way that it can be more readily debugged and tuned.
• Provides a bridge between algorithms and hardware
• Demonstrates how to avoid many of the potential pitfalls
• Offers practical recommendations and solutions
• Illustrates several real-world applications and case studies
• Allows those with software backgrounds to understand efficient hardware implementation
Design for Embedded Image Processing on FPGAs is ideal for researchers and engineers in the vision or image processing industry, who are looking at smart sensors, machine vision, and robotic vision, as well as FPGA developers and application engineers.
The book can also be used by graduate students studying imaging systems, computer engineering, digital design, circuit design, or computer science. It can also be used as supplementary text for courses in advanced digital design, algorithm and hardware implementation, and digital signal processing and applications.
فهرست مطالب
Acknowledgements xvii
۱ Image Processing 1
۱.۱ Basic Definitions 2
۱.۲ Image Formation 3
۱.۳ Image Processing Operations 7
۱.۴ Example Application 9
۱.۵ Real-Time Image Processing 11
۱.۶ Embedded Image Processing 12
۱.۷ Serial Processing 12
۱.۸ Parallelism 14
۱.۹ Hardware Image Processing Systems 18
۲ Field Programmable Gate Arrays 21
۲.۱ Programmable Logic 21
۲.۱.۱ FPGAs vs. ASICs 24
۲.۲ FPGAs and Image Processing 25
۲.۳ Inside an FPGA 26
۲.۳.۱ Logic 27
۲.۳.۲ Interconnect 28
۲.۳.۳ Input and Output 29
۲.۳.۴ Clocking 30
۲.۳.۵ Configuration 31
۲.۳.۶ Power Consumption 32
۲.۴ FPGA Families and Features 33
۲.۴.۱ Xilinx 33
۲.۴.۲ Altera 38
۲.۴.۳ Lattice Semiconductor 44
۲.۴.۴ Achronix 46
۲.۴.۵ SiliconBlue 47
۲.۴.۶ Tabula 47
۲.۴.۷ Actel 48
۲.۴.۸ Atmel 49
۲.۴.۹ QuickLogic 50
۲.۴.۱۰ MathStar 50
۲.۴.۱۱ Cypress 51
۲.۵ Choosing an FPGA or Development Board 51
۳ Languages 53
۳.۱ Hardware Description Languages 56
۳.۲ Software-Based Languages 61
۳.۲.۱ Structural Approaches 63
۳.۲.۲ Augmented Languages 64
۳.۲.۳ Native Compilation Techniques 69
۳.۳ Visual Languages 72
۳.۳.۱ Behavioural 73
۳.۳.۲ Dataflow 73
۳.۳.۳ Hybrid 74
۳.۴ Summary 77
۴ Design Process 79
۴.۱ Problem Specification 79
۴.۲ Algorithm Development 81
۴.۲.۱ Algorithm Development Process 82
۴.۲.۲ Algorithm Structure 83
۴.۲.۳ FPGA Development Issues 86
۴.۳ Architecture Selection 86
۴.۳.۱ System Level Architecture 87
۴.۳.۲ Computational Architecture 89
۴.۳.۳ Partitioning between Hardware and Software 93
۴.۴ System Implementation 96
۴.۴.۱ Mapping to FPGA Resources 97
۴.۴.۲ Algorithm Mapping Issues 100
۴.۴.۳ Design Flow 101
۴.۵ Designing for Tuning and Debugging 102
۴.۵.۱ Algorithm Tuning 102
۴.۵.۲ System Debugging 104
۵ Mapping Techniques 107
۵.۱ Timing Constraints 107
۵.۱.۱ Low Level Pipelining 107
۵.۱.۲ Process Synchronisation 110
۵.۱.۳ Multiple Clock Domains 111
۵.۲ Memory Bandwidth Constraints 113
۵.۲.۱ Memory Architectures 113
۵.۲.۲ Caching 116
۵.۲.۳ Row Buffering 117
۵.۲.۴ Other Memory Structures 118
۵.۳ Resource Constraints 122
۵.۳.۱ Resource Multiplexing 122
۵.۳.۲ Resource Controllers 125
۵.۳.۳ Reconfigurability 130
۵.۴ Computational Techniques 132
۵.۴.۱ Number Systems 132
۵.۴.۲ Lookup Tables 138
۵.۴.۳ CORDIC 142
۵.۴.۴ Approximations 150
۵.۴.۵ Other Techniques 152
۵.۵ Summary 154
۶ Point Operations 155
۶.۱ Point Operations on a Single Image 155
۶.۱.۱ Contrast and Brightness Adjustment 155
۶.۱.۲ Global Thresholding and Contouring 159
۶.۱.۳ Lookup Table Implementation 162
۶.۲ Point Operations on Multiple Images 163
۶.۲.۱ Image Averaging 164
۶.۲.۲ Image Subtraction 166
۶.۲.۳ Image Comparison 170
۶.۲.۴ Intensity Scaling 171
۶.۲.۵ Masking 173
۶.۳ Colour Image Processing 175
۶.۳.۱ False Colouring 175
۶.۳.۲ Colour Space Conversion 176
۶.۳.۳ Colour Thresholding 192
۶.۳.۴ Colour Correction 193
۶.۳.۵ Colour Enhancement 197
۶.۴ Summary 197
۷ Histogram Operations 199
۷.۱ Greyscale Histogram 199
۷.۱.۱ Data Gathering 201
۷.۱.۲ Histogram Equalisation 206
۷.۱.۳ Automatic Exposure 210
۷.۱.۴ Threshold Selection 211
۷.۱.۵ Histogram Similarity 219
۷.۲ Multidimensional Histograms 219
۷.۲.۱ Triangular Arrays 220
۷.۲.۲ Multidimensional Statistics 222
۷.۲.۳ Colour Segmentation 226
۷.۲.۴ Colour Indexing 229
۷.۲.۵ Texture Analysis 231
۸ Local Filters 233
۸.۱ Caching 233
۸.۲ Linear Filters 239
۸.۲.۱ Noise Smoothing 239
۸.۲.۲ Edge Detection 241
۸.۲.۳ Edge Enhancement 243
۸.۲.۴ Linear Filter Techniques 243
۸.۳ Nonlinear Filters 248
۸.۳.۱ Edge Orientation 250
۸.۳.۲ Non-maximal Suppression 251
۸.۳.۳ Zero-Crossing Detection 252
۸.۴ Rank Filters 252
۸.۴.۱ Rank Filter Sorting Networks 255
۸.۴.۲ Adaptive Histogram Equalisation 260
۸.۵ Colour Filters 261
۸.۶ Morphological Filters 264
۸.۶.۱ Binary Morphology 264
۸.۶.۲ Greyscale Morphology 269
۸.۶.۳ Colour Morphology 270
۸.۷ Adaptive Thresholding 271
۸.۷.۱ Error Diffusion 271
۸.۸ Summary 273
۹ Geometric Transformations 275
۹.۱ Forward Mapping 276
۹.۱.۱ Separable Mapping 277
۹.۲ Reverse Mapping 282
۹.۳ Interpolation 285
۹.۳.۱ Bilinear Interpolation 286
۹.۳.۲ Bicubic Interpolation 288
۹.۳.۳ Splines 290
۹.۳.۴ Interpolating Compressed Data 292
۹.۴ Mapping Optimisations 292
۹.۵ Image Registration 294
۹.۵.۱ Feature-Based Methods 295
۹.۵.۲ Area-Based Methods 299
۹.۵.۳ Applications 305
۱۰ Linear Transforms 309
۱۰.۱ Fourier Transform 310
۱۰.۱.۱ Fast Fourier Transform 311
۱۰.۱.۲ Filtering 318
۱۰.۱.۳ Inverse Filtering 320
۱۰.۱.۴ Interpolation 321
۱۰.۱.۵ Registration 322
viii Contents
۱۰.۱.۶ Feature Extraction 323
۱۰.۱.۷ Goertzel’s Algorithm 324
۱۰.۲ Discrete Cosine Transform 325
۱۰.۳ Wavelet Transform 328
۱۰.۳.۱ Filter Implementations 330
۱۰.۳.۲ Applications of the Wavelet Transform 335
۱۰.۴ Image and Video Coding 336
۱۱ Blob Detection and Labelling 343
۱۱.۱ Bounding Box 343
۱۱.۲ Run-Length Coding 346
۱۱.۳ Chain Coding 347
۱۱.۳.۱ Sequential Implementation 347
۱۱.۳.۲ Single Pass Algorithms 348
۱۱.۳.۳ Feature Extraction 350
۱۱.۴ Connected Component Labelling 352
۱۱.۴.۱ Random Access Algorithms 353
۱۱.۴.۲ Multiple-Pass Algorithms 353
۱۱.۴.۳ Two-Pass Algorithms 354
۱۱.۴.۴ Single-Pass Algorithms 356
۱۱.۴.۵ Multiple Input Labels 358
۱۱.۴.۶ Further Optimisations 358
۱۱.۵ Distance Transform 359
۱۱.۵.۱ Morphological Approaches 360
۱۱.۵.۲ Chamfer Distance 360
۱۱.۵.۳ Separable Transform 362
۱۱.۵.۴ Applications 365
۱۱.۵.۵ Geodesic Distance Transform 365
۱۱.۶ Watershed Transform 366
۱۱.۶.۱ Flow Algorithms 366
۱۱.۶.۲ Immersion Algorithms 367
۱۱.۶.۳ Applications 369
۱۱.۷ Hough Transform 370
۱۱.۷.۱ Line Hough Transform 371
۱۱.۷.۲ Circle Hough Transform 373
۱۱.۷.۳ Generalised Hough Transform 374
۱۱.۸ Summary 375
۱۲ Interfacing 377
۱۲.۱ Camera Input 378
۱۲.۱.۱ Camera Interface Standards 378
۱۲.۱.۲ Deinterlacing 383
۱۲.۱.۳ Global and Rolling Shutter Correction 384
۱۲.۱.۴ Bayer Pattern Processing 384
۱۲.۲ Display Output 387
۱۲.۲.۱ Display Driver 387
۱۲.۲.۲ Display Content 390
۱۲.۳ Serial Communication 393
۱۲.۳.۱ PS2 Interface 393
۱۲.۳.۲ I2C 395
۱۲.۳.۳ SPI 397
۱۲.۳.۴ RS-232 397
۱۲.۳.۵ USB 398
۱۲.۳.۶ Ethernet 398
۱۲.۳.۷ PCI Express 399
۱۲.۴ Memory 400
۱۲.۴.۱ Static RAM 400
۱۲.۴.۲ Dynamic RAM 401
۱۲.۴.۳ Flash Memory 402
۱۲.۵ Summary 402
۱۳ Testing, Tuning and Debugging 405
۱۳.۱ Design 405
۱۳.۱.۱ Random Noise Sources 406
۱۳.۲ Implementation 409
۱۳.۲.۱ Common Implementation Bugs 410
۱۳.۳ Tuning 412
۱۳.۴ Timing Closure 412
۱۴ Example Applications 415
۱۴.۱ Coloured Region Tracking 415
۱۴.۲ Lens Distortion Correction 418
۱۴.۲.۱ Characterising the Distortion 419
۱۴.۲.۲ Correcting the Distortion 421
۱۴.۳ Foveal Sensor 424
۱۴.۳.۱ Foveal Mapping 425
۱۴.۳.۲ Using the Sensor 429
۱۴.۴ Range Imaging 429
۱۴.۴.۱ Extending the Unambiguous Range 431
۱۴.۵ Real-Time Produce Grading 433
۱۴.۵.۱ Software Algorithm 434
۱۴.۵.۲ Hardware Implementation 436
۱۴.۶ Summary 439
References 441
Index 475
موضوعات: کتاب آموزشی FPGA
برچسب ها: پردازش تصویر با FPGA, پردازش سیگنال با FPGA, پردازش صدا با FPGA, مخابرات دیجیتال با FPGA, نمونه کد FPGA
ناشر کتاب: Wiley-IEEE Press
سال انتشار: 2011
نوع کتاب: PDF
تعداد صفحات کتاب: 416
حجم کتاب: 3 مگابایت
ISBN: 0470828498
امتیاز این کتاب: