Cargando…

Implementation of a motion estimation algorithm for Intel FPGAs using OpenCL

Motion Estimation is one of the main tasks behind any video encoder. It is a computationally costly task; therefore, it is usually delegated to specific or reconfigurable hardware, such as FPGAs. Over the years, multiple FPGA implementations have been developed, mainly using hardware description lan...

Descripción completa

Detalles Bibliográficos
Autores principales: de Castro, Manuel, Osorio, Roberto R., Vilariño, David L., Gonzalez-Escribano, Arturo, Llanos, Diego R.
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Springer US 2023
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9860217/
https://www.ncbi.nlm.nih.gov/pubmed/36714810
http://dx.doi.org/10.1007/s11227-023-05051-3
_version_ 1784874531377119232
author de Castro, Manuel
Osorio, Roberto R.
Vilariño, David L.
Gonzalez-Escribano, Arturo
Llanos, Diego R.
author_facet de Castro, Manuel
Osorio, Roberto R.
Vilariño, David L.
Gonzalez-Escribano, Arturo
Llanos, Diego R.
author_sort de Castro, Manuel
collection PubMed
description Motion Estimation is one of the main tasks behind any video encoder. It is a computationally costly task; therefore, it is usually delegated to specific or reconfigurable hardware, such as FPGAs. Over the years, multiple FPGA implementations have been developed, mainly using hardware description languages such as Verilog or VHDL. Since programming using hardware description languages is a complex task, it is desirable to use higher-level languages to develop FPGA applications.The aim of this work is to evaluate OpenCL, in terms of expressiveness, as a tool for developing this kind of FPGA applications. To do so, we present and evaluate a parallel implementation of the Block Matching Motion Estimation process using OpenCL for Intel FPGAs, usable and tested on an Intel Stratix 10 FPGA. The implementation efficiently processes Full HD frames completely inside the FPGA. In this work, we show the resource utilization when synthesizing the code on an Intel Stratix 10 FPGA, as well as a performance comparison with multiple CPU implementations with varying levels of optimization and vectorization capabilities. We also compare the proposed OpenCL implementation, in terms of resource utilization and performance, with estimations obtained from an equivalent VHDL implementation.
format Online
Article
Text
id pubmed-9860217
institution National Center for Biotechnology Information
language English
publishDate 2023
publisher Springer US
record_format MEDLINE/PubMed
spelling pubmed-98602172023-01-23 Implementation of a motion estimation algorithm for Intel FPGAs using OpenCL de Castro, Manuel Osorio, Roberto R. Vilariño, David L. Gonzalez-Escribano, Arturo Llanos, Diego R. J Supercomput Article Motion Estimation is one of the main tasks behind any video encoder. It is a computationally costly task; therefore, it is usually delegated to specific or reconfigurable hardware, such as FPGAs. Over the years, multiple FPGA implementations have been developed, mainly using hardware description languages such as Verilog or VHDL. Since programming using hardware description languages is a complex task, it is desirable to use higher-level languages to develop FPGA applications.The aim of this work is to evaluate OpenCL, in terms of expressiveness, as a tool for developing this kind of FPGA applications. To do so, we present and evaluate a parallel implementation of the Block Matching Motion Estimation process using OpenCL for Intel FPGAs, usable and tested on an Intel Stratix 10 FPGA. The implementation efficiently processes Full HD frames completely inside the FPGA. In this work, we show the resource utilization when synthesizing the code on an Intel Stratix 10 FPGA, as well as a performance comparison with multiple CPU implementations with varying levels of optimization and vectorization capabilities. We also compare the proposed OpenCL implementation, in terms of resource utilization and performance, with estimations obtained from an equivalent VHDL implementation. Springer US 2023-01-21 2023 /pmc/articles/PMC9860217/ /pubmed/36714810 http://dx.doi.org/10.1007/s11227-023-05051-3 Text en © The Author(s) 2023 https://creativecommons.org/licenses/by/4.0/Open AccessThis article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/ (https://creativecommons.org/licenses/by/4.0/) .
spellingShingle Article
de Castro, Manuel
Osorio, Roberto R.
Vilariño, David L.
Gonzalez-Escribano, Arturo
Llanos, Diego R.
Implementation of a motion estimation algorithm for Intel FPGAs using OpenCL
title Implementation of a motion estimation algorithm for Intel FPGAs using OpenCL
title_full Implementation of a motion estimation algorithm for Intel FPGAs using OpenCL
title_fullStr Implementation of a motion estimation algorithm for Intel FPGAs using OpenCL
title_full_unstemmed Implementation of a motion estimation algorithm for Intel FPGAs using OpenCL
title_short Implementation of a motion estimation algorithm for Intel FPGAs using OpenCL
title_sort implementation of a motion estimation algorithm for intel fpgas using opencl
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9860217/
https://www.ncbi.nlm.nih.gov/pubmed/36714810
http://dx.doi.org/10.1007/s11227-023-05051-3
work_keys_str_mv AT decastromanuel implementationofamotionestimationalgorithmforintelfpgasusingopencl
AT osoriorobertor implementationofamotionestimationalgorithmforintelfpgasusingopencl
AT vilarinodavidl implementationofamotionestimationalgorithmforintelfpgasusingopencl
AT gonzalezescribanoarturo implementationofamotionestimationalgorithmforintelfpgasusingopencl
AT llanosdiegor implementationofamotionestimationalgorithmforintelfpgasusingopencl