  In the domain of image processing, often real-time constraints are required.
In particular, in safety-critical applications, such as X-ray computed
tomography in medical imaging or advanced driver assistance systems in the
automotive domain, timing is of utmost importance. A common approach to
maintain real-time capabilities of compute-intensive applications is to offload
those computations to dedicated accelerator hardware, such as Field
Programmable Gate Arrays (FPGAs). Programming such architectures is a
challenging task, with respect to the typical FPGA-specific design criteria:
Achievable overall algorithm latency and resource usage of FPGA primitives
(BRAM, FF, LUT, and DSP). High-Level Synthesis (HLS) dramatically simplifies
this task by enabling the description of algorithms in well-known higher
languages (C/C++) and its automatic synthesis that can be accomplished by HLS
tools. However, algorithm developers still need expert knowledge about the
target architecture, in order to achieve satisfying results. Therefore, in
previous work, we have shown that elevating the description of image algorithms
to an even higher abstraction level, by using a Domain-Specific Language (DSL),
can significantly cut down the complexity for designing such algorithms for
FPGAs. To give the developer even more control over the common trade-off,
latency vs. resource usage, we will present an automatic optimization process
where these criteria are analyzed and fed back to the DSL compiler, in order to
generate code that is closer to the desired design specifications. Finally, we
generate code for stereo block matching algorithms and compare it with
handwritten implementations to quantify the quality of our results.
