{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,4,5]],"date-time":"2025-04-05T21:10:07Z","timestamp":1743887407394,"version":"3.40.3"},"reference-count":21,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2025,2,28]],"date-time":"2025-02-28T00:00:00Z","timestamp":1740700800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2025,2,28]],"date-time":"2025-02-28T00:00:00Z","timestamp":1740700800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"name":"Ente per le Nuove Tecnologie, l'Energia e l'Ambiente"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Int J Parallel Prog"],"published-print":{"date-parts":[[2025,4]]},"abstract":"<jats:title>Abstract<\/jats:title>\n          <jats:p>This paper investigates the use of High-Level Synthesis (HLS) for designing parallel hardware architectures on FPGAs. HLS compilers, like the one used in Vitis HLS, extract the available parallelism so the HLS languages should be thought as inherently parallel and should be programmed with the target parallel architecture in mind. We discuss how HLS facilitated the development of FIPLib, an image processing library for FPGAs, leveraging the streaming model. This library comprises parallel kernels connected through streams to implement a streaming data-flow computation. Following an overview of the library\u2019s functionalities and its parallel implementation, we present the benefits of adopting this FPGA library, particularly in terms of speed and power consumption. We conduct a comparative analysis by implementing two image processing algorithms using both our FPGA library and the equivalent OpenCV CPU and GPU implementation. The results demonstrate that FPGAs programmed through FIPLib can significantly accelerate computations and\/or reduce power consumption.<\/jats:p>","DOI":"10.1007\/s10766-025-00784-5","type":"journal-article","created":{"date-parts":[[2025,2,28]],"date-time":"2025-02-28T18:56:06Z","timestamp":1740768966000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["FIPLib: An Image Processing Library for FPGAs Using High-Level Synthesis"],"prefix":"10.1007","volume":"53","author":[{"given":"Paolo","family":"Palazzari","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Marco","family":"Faltelli","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Francesco","family":"Iannone","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2025,2,28]]},"reference":[{"key":"784_CR1","unstructured":"https:\/\/www.top500.org\/lists\/green500\/"},{"key":"784_CR2","unstructured":"Agosta, G., et. al.: Textarossa: towards extreme scale technologies and accelerators for Eurohpc hw\/SW supercomputing applications for Exascale. Microprocessor Microsyst. 95 (2022)"},{"key":"784_CR3","unstructured":"Amd: Ug 1399: vitis high-level synthesis user guide (2023)"},{"key":"784_CR4","doi-asserted-by":"crossref","unstructured":"Cooke, P., et. al.: A tradeoff analysis of FPGAS, GPUS, and multicores for sliding-window applications. ACM Trans. Reconfig. Technol. Syst. 8(1) (2015)","DOI":"10.1145\/2659000"},{"key":"784_CR5","doi-asserted-by":"crossref","unstructured":"Qasaimeh, M., Denolf, K., Lo, J., Vissers, K.A., Zambreno, J., Jones, P.H.: Comparing energy efficiency of CPU, GPU and FPGA implementations for vision kernels. In: 2019 IEEE Int. Conf. on Embedded Software and Systems (ICESS) (2019)","DOI":"10.1109\/ICESS.2019.8782524"},{"key":"784_CR6","doi-asserted-by":"crossref","unstructured":"Nane, R., et. al.: A survey and evaluation of FPGA high-level synthesis tools. In: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (2016)","DOI":"10.1109\/TCAD.2015.2513673"},{"key":"784_CR7","unstructured":"opencv library. https:\/\/opencv.org\/"},{"key":"784_CR8","unstructured":"Amd: Vitis vision library. https:\/\/www.xilinx.com\/products\/design-tools\/vitis\/vitis-libraries\/vitis-vision.html"},{"key":"784_CR9","unstructured":"Image processing using FPGAs. Special issue of the Journal of Imaging. Special Issue Editor Donald G. Bailey (2019)"},{"key":"784_CR10","doi-asserted-by":"crossref","unstructured":"Wang, Z., Tran, T.-H., Muthappa, P.K., Simon, S.: A jnd-based pixel-domain algorithm and hardware architecture for perceptual image coding. J. Imaging 5(5) (2019)","DOI":"10.3390\/jimaging5050050"},{"key":"784_CR11","doi-asserted-by":"crossref","unstructured":"Badawi, A., Bilal, M.: High-level synthesis of online k-means clustering hardware for a real-time image processing pipeline. J. Imaging 5(3) (2019)","DOI":"10.3390\/jimaging5030038"},{"key":"784_CR12","doi-asserted-by":"crossref","unstructured":"Siddiqui, F., et. al.: FPGA-based processor acceleration for image processing applications. J. Imaging 5(1) (2019)","DOI":"10.3390\/jimaging5010016"},{"key":"784_CR13","doi-asserted-by":"crossref","unstructured":"Kalms, L., Podlubne, A., G\u00f6hringer, D.: HiFlipVX: an open source high-level synthesis FPGA library for image processing. In: Applied Reconfigurable Computing. Springer, (2019)","DOI":"10.1007\/978-3-030-17227-5_12"},{"key":"784_CR14","doi-asserted-by":"crossref","unstructured":"Schmid, M., Apelt, N., Hannig, F., Teich, J.: An image processing library for c-based high-level synthesis. In: 2014 24th International Conference on Field Programmable Logic and Applications (FPL), pp. 1\u20134 (2014)","DOI":"10.1109\/FPL.2014.6927424"},{"key":"784_CR15","doi-asserted-by":"crossref","unstructured":"Li, J., Chi, Y., Cong, J.: Heterohalide: from image processing DSL to efficient FPGA acceleration. In: Proceedings of the 2020 ACM\/SIGDA International Symposium on Field-Programmable Gate Arrays, pp. 51\u201357 (2020)","DOI":"10.1145\/3373087.3375320"},{"key":"784_CR16","doi-asserted-by":"crossref","unstructured":"Batcher, K.E.: Sorting networks and their applications. In: Proc. AFIPS Spring Joint Comput. Conf. vol. 32 (1968)","DOI":"10.1145\/1468075.1468121"},{"key":"784_CR17","doi-asserted-by":"crossref","unstructured":"Hackenberg, D., Ilsche, T., Schone, R., Molka, D., Schmidt, M., Nagel, W.E.: Power measurement techniques on standard compute nodes: a quantitative comparison. In: ISPASS, pp. 194\u2013204 (2013)","DOI":"10.1109\/ISPASS.2013.6557170"},{"key":"784_CR18","unstructured":"Feng, X., Ge, R., Cameron, K.W.: Power and energy profiling of scientific applications on distributed systems. In: Proceedings. 19th IEEE International Parallel and Distributed Processing Symposium (2005)"},{"key":"784_CR19","unstructured":"Amd: Vitis Vision Library Functions. https:\/\/xilinx.github.io\/Vitis_Libraries\/vision\/2022.1\/api-reference.html#vitis-vision-library-functions"},{"key":"784_CR20","doi-asserted-by":"crossref","unstructured":"Iannone, F., Ambrosino, F., Bracco, G., De\u00a0Rosa, M., Funel, A., Guarnieri, G., Migliori, S., Palombi, F., Ponti, G., Santomauro, G.: Cresco ENEA HPC clusters: a working example of a multifabric GPFS spectrum scale layout. In: 2019 International Conference on High Performance Computing & Simulation (HPCS), pp. 1051\u20131052. IEEE (2019)","DOI":"10.1109\/HPCS48598.2019.9188135"},{"key":"784_CR21","doi-asserted-by":"crossref","first-page":"920","DOI":"10.1016\/j.future.2017.11.032","volume":"94","author":"A Mariano","year":"2019","unstructured":"Mariano, A., D\u2019Amato, G., Ambrosino, F., Aprea, G., Buonocore, F., Celino, M., Colavincenzo, A., Fina, M., Funel, A., Giusepponi, S.: Fast access to remote objects 2.0 a renewed gateway to eneagrid distributed computing resources. Futur. Gener. Comput. Syst. 94, 920\u2013928 (2019)","journal-title":"Futur. Gener. Comput. Syst."}],"container-title":["International Journal of Parallel Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10766-025-00784-5.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10766-025-00784-5\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10766-025-00784-5.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,4,5]],"date-time":"2025-04-05T20:50:32Z","timestamp":1743886232000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10766-025-00784-5"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,2,28]]},"references-count":21,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2025,4]]}},"alternative-id":["784"],"URL":"https:\/\/doi.org\/10.1007\/s10766-025-00784-5","relation":{},"ISSN":["0885-7458","1573-7640"],"issn-type":[{"type":"print","value":"0885-7458"},{"type":"electronic","value":"1573-7640"}],"subject":[],"published":{"date-parts":[[2025,2,28]]},"assertion":[{"value":"16 September 2024","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"11 February 2025","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"28 February 2025","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}],"article-number":"13"}}