Skip to main content

Comparing Register-Transfer-, C-, and System-Level Implementations of an Image Enhancement Algorithm

  • Conference paper
  • First Online:
Book cover Applied Reconfigurable Computing (ARC 2016)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9625))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 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. 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. 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. 4.

    Note that we do not use the line-buffer objects provided by VHLS for C++ programs.

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

  1. ZYBO Reference Manual (2014). www.digilentinc.com

  2. Crockett, L.H., Elliot, R.A., Enderwitz, M.A., Stewart, R.W. (eds.): The Zynq Book. Strathclyde Academic Media, Glasgow (2014). www.zynqbook.com

    Google Scholar 

  3. Zynq-7000 All Programmable SoC - Technical Reference Manual (UG 585) (2015). www.xilinx.com

  4. Burger, W., Burge, M.J.: Digital Image Processing: An Algorithmic Introduction using Java. Springer, London (2008)

    Book  Google Scholar 

  5. 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)

    Google Scholar 

  6. Vivado Design Suite User Guide - High-Level Synthesis (UG 902) (2015). www.xilinx.com

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

    Article  Google Scholar 

  8. SDSoC User Guide - Introduction to SDSoC (UG 1027) (2015). www.xilinx.com

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

    Google Scholar 

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

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. Neuendorffer, S., Li, T., Vallina, F.M.: Developing OpenCL imaging applications using C++ libraries. Xcell Softw. J., Issue 1, 36–41 (2015)

    Google Scholar 

  14. Weinhardt, M., Luk, W.: Pipeline vectorization. IEEE Trans. Comput.-Aided Des. Integr. Circ. Syst. 20(2), 234–248 (2001)

    Article  Google Scholar 

  15. UltraFast Embedded Design Methodology Guide (UG 1046) (2015). www.xilinx.com

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Markus Weinhardt .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics