Abstract
This paper reports on a color image enhancement algorithm implemented on a reconfigurable SoC of the Xilinx Zynq family. The algorithm consists of histogram equalization followed by an unsharp masking filter. A pure software implementation running on the Zynq’s ARM Core-A9 processor is compared to several hardware-accelerated versions with respect to the design effort and the quality-of-results. The accelerators are specified at register-transfer level, at high-level (C functions) and at system-level using the recently released Xilinx SDSoC tool. The latter approach is purely software-defined and generates all the interface code and circuitry automatically. Nevertheless, experience with high-level synthesis tools and a basic understanding of hardware coprocessor principles are also required in this approach to effectively use SDSoC.
The results show that the same, significant speedup as with manual implementation can be reached for our application, but the resulting circuit tends to be larger with the higher-level design tools.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
For more examples, consult the proceedings of the FPL (Field-Programmable Logic), ARC (Applied Reconfigurable Computing), FCCM (Field-Programmable Custom Computing Machines) or other conferences and workshops on FPGAs.
- 2.
Note that, in order to process one pixel every cycle, two BRAMs could be used alternately. Then, their values have to be added to compute the cumulative histogram. This further optimization is applicable to both the RTL and the HLS design.
- 3.
Note that automatic data reuse as defined in [14] which restructures regular loops automatically is still not implemented in commercial HLS tools as Vivado HLS.
- 4.
Note that we do not use the line-buffer objects provided by VHLS for C++ programs.
- 5.
The Zybo board also provides a 125 MHz clock for the FPGA fabric, but 125 MHz could not always be reached by VHLS.
References
ZYBO Reference Manual (2014). www.digilentinc.com
Crockett, L.H., Elliot, R.A., Enderwitz, M.A., Stewart, R.W. (eds.): The Zynq Book. Strathclyde Academic Media, Glasgow (2014). www.zynqbook.com
Zynq-7000 All Programmable SoC - Technical Reference Manual (UG 585) (2015). www.xilinx.com
Burger, W., Burge, M.J.: Digital Image Processing: An Algorithmic Introduction using Java. Springer, London (2008)
Gajski, D.D., Dutt, N.D., Wu, A.C.-H., Lin, S.Y.-L.: High-Level Synthesis, Introduction to Chip and System Design. Kluwer Academic Publishers, Norwell (1992)
Vivado Design Suite User Guide - High-Level Synthesis (UG 902) (2015). www.xilinx.com
Cong, J., Liu, B., Neuendorffer, S., Noguera, J., Vissers, K., Zhang, Z.: High-level synthesis for FPGAs: from prototyping to deployment. IEEE Trans. Comput.-Aided Des. Integr. Circ. Syst. 30(4), 473–491 (2011)
SDSoC User Guide - Introduction to SDSoC (UG 1027) (2015). www.xilinx.com
Huang, M., Serres, O., El-Ghazawi, T., Newby, G.: Parameterized hardware design on reconfigurable computers: an image processing case study. Int. J. Reconf. Comput. 2010, 1–11 (2010). Article No. 7
Monson, J., Wirthlin, M., Hutchings, B.L.: Optimization techniques for a high level synthesis implementation of the sobel filter. In: Proceedings of the International Conference on ReConFigurable Computing and FPGAs (ReConFig 2013). IEEE, December 2013
Matai, J., Richmond, D., Lee, D., Kastner, R.: Enabling FPGAs for the masses. In: Proceedings of the 1st International Workshop on FPGAs for Software Programmers (FSP), Munich, Germany (2014)
Abdelgawad, H.M., Safar, M., Wahba, A.M.: High level synthesis of canny edge detection algorithm on Zynq platform. Int. J. Comput. Electr. Autom. Control Inf. Eng. 9(1), 148–152 (2015)
Neuendorffer, S., Li, T., Vallina, F.M.: Developing OpenCL imaging applications using C++ libraries. Xcell Softw. J., Issue 1, 36–41 (2015)
Weinhardt, M., Luk, W.: Pipeline vectorization. IEEE Trans. Comput.-Aided Des. Integr. Circ. Syst. 20(2), 234–248 (2001)
UltraFast Embedded Design Methodology Guide (UG 1046) (2015). www.xilinx.com
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Weinhardt, M. (2016). Comparing Register-Transfer-, C-, and System-Level Implementations of an Image Enhancement Algorithm. In: Bonato, V., Bouganis, C., Gorgon, M. (eds) Applied Reconfigurable Computing. ARC 2016. Lecture Notes in Computer Science(), vol 9625. Springer, Cham. https://doi.org/10.1007/978-3-319-30481-6_20
Download citation
DOI: https://doi.org/10.1007/978-3-319-30481-6_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-30480-9
Online ISBN: 978-3-319-30481-6
eBook Packages: Computer ScienceComputer Science (R0)