AbstractDeveloping FPGA-based applications is typically a slow and multi-skilled task. Tools to support application development have gradually become more high level. This thesis describes an approach which aims to raise further the level at which an application developer works while developing FPGA-based implementations of image and video processing applications.
The starting concept is that of a soft coprocessor (SCP). A set of fundamental soft coprocessors is presented, aimed at implementing some of the key abstractions of Image Algebra. Each soft coprocessor processes an image or video stream, and can be parameterised by its specific functionality. To support interactive experimentation, the developer can edit the functionality and parameters without requiring re-synthesis in most cases.
Our soft coprocessors are designed to enable easy chaining of SCPs, as defined by a Dataflow Graph (DFG). This reduces considerably the amount of data transfer between SCPs and the host processor.
Although hardware optimisation is not a primary concern of this thesis, further contributions facilitate the development of more efficient and more specific versions of the more generic soft coprocessors, based on the concept of reusable coprocessor skeletons.
To facilitate the creation of more algorithm-specific coprocessors which cannot be accommodated within the skeleton framework, a layered library of macros is developed, which enables a developer to create new coprocessors without requiring extensive hardware design knowledge.
The thesis illustrates these novel concepts by presenting soft coprocessors for a range of common image processing algorithms, including a novel fast implementation of K-means Clustering for grey level images, GLCM feature extraction, and Histogram of oriented Gradients (HoG).
Finally, a prototype implementation of an integrated development environment, called SCoPeS, is presented. This enables a user to express an application as a text-based DFG of soft coprocessors, and automatically obtain and run an FPGA implementation. The ability to modify an application, even during execution, without requiring re-synthesis, is an important benefit given the experimental nature of image and video processing application development.
|Date of Award||Jul 2020|
|Sponsors||Chinese Scholarship Council (CSC) & Queen's University Belfast|
|Supervisor||John McAllister (Supervisor) & Roger Woods (Supervisor)|
- image processing
- High-level programming environment