FPGARelated.com
Books

Design for Embedded Image Processing on FPGAS

Bailey, Donald G. 2011

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 he 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.

Companion website for the book: www.wiley.com/go/bailey/fpga


Why Read This Book

You will learn how to translate image-processing algorithms from a software mindset into efficient, parallel FPGA implementations so they meet real-time, embedded constraints. The book combines practical design patterns, hardware-aware algorithm choices, and worked examples to show you how to exploit FPGA parallelism, memory architectures, and hardware description languages for image processing tasks.

Who Will Benefit

Engineers and graduate students with some image-processing or digital-design background who need to implement real-time image algorithms on FPGAs for embedded and reconfigurable systems.

Level: Intermediate — Prerequisites: Basic digital logic and computer architecture, familiarity with fundamentals of image processing (filters, convolution, feature detection), and basic programming skills; prior HDL experience helps but is not strictly required.

Get This Book

Key Takeaways

  • Map image-processing algorithms to hardware-friendly architectures that exploit spatial and temporal parallelism
  • Design streaming, pipelined dataflows and memory-buffer strategies suited to FPGA on-chip/off-chip bandwidth
  • Apply fixed-point design and numeric optimization to preserve image quality while minimizing resource use
  • Use Verilog/VHDL/SystemVerilog idioms and HLS concepts to express image-processing kernels for synthesis
  • Optimize implementation for common FPGA platforms (Xilinx, Intel/Altera) including resource, timing, and power tradeoffs

Topics Covered

  1. 1. Introduction: Embedded Image Processing Challenges and Opportunities
  2. 2. Parallelism and Reconfigurable Computing for Vision
  3. 3. FPGA Technology Overview and Architectures
  4. 4. Hardware Description Languages: VHDL, Verilog and SystemVerilog (and HLS introductions)
  5. 5. Design Methodology: From Algorithm to Hardware
  6. 6. Dataflow, Pipelining and Parallel Architectures for Image Pipelines
  7. 7. Memory, Bandwidth and Interface Considerations
  8. 8. Fixed-Point Arithmetic and Numerical Issues in Image Processing
  9. 9. Common Image Processing Primitives: Filters, Morphology, Transforms
  10. 10. Case Studies: Edge Detection, Convolutional Filters, Feature Extraction
  11. 11. Implementation Tools, Synthesis and Verification (Xilinx/Altera tool flows)
  12. 12. Optimization, Timing Closure and Power Considerations
  13. 13. Practical Design Examples and Project Guidelines
  14. 14. Future Directions: HLS, Heterogeneous Systems and Emerging FPGA Trends

Languages, Platforms & Tools

VHDLVerilogSystemVerilogC/C++ (for High-Level Synthesis concepts)Xilinx FPGAs (Virtex/Spartan/Artix families)Intel/Altera FPGAs (Cyclone/Arria/Stratix families)Generic reconfigurable FPGA platforms and development boardsXilinx ISE/VivadoIntel QuartusModelSim/ Questa (simulation and verification)Vivado HLS or other HLS tools (conceptual coverage)MATLAB/Simulink (for algorithm exploration and co-simulation)

How It Compares

Covers similar practical mapping of algorithms to FPGA hardware as Pong P. Chu's 'FPGA Prototyping' but with a stronger focus on image-processing pipelines and system-level tradeoffs; more application-focused than Meyer-Baese's DSP-centric FPGA texts.

Related Books