V4L2 FPGA/Introduction: Difference between revisions

From RidgeRun Developer Wiki
m (Add next link)
No edit summary
 
(15 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<noinclude>
<noinclude>
{{V4L2_PCIe/Head}}
{{V4L2_FPGA/Head|next=Introduction/Overview|previous=}}
</noinclude>
</noinclude>
<!-- If you want a custom title for the page, un-comment and edit this line:
<!-- If you want a custom title for the page, un-comment and edit this line:
Line 6: Line 6:
-->
-->


Modern systems require each day more complex algorithms, however the execution of these require more complex systems. Some systems such as GPUs allow for acceleration might be prohibiting in terms of power. FPGAs on the other hand allow for faster execution and more power efficient at the cost of a harder development cycle and a harder integration into existing multimedia systems. V4L2 PCIe is project from Ridgerun Engineering which allows for easy integration of FPGA-based systems into multimedia systems such as GStreamer.
{{message|title=Driver List Information|Refer to the [[RidgeRun_Linux_Camera_Drivers/Available_Camera_Drivers/List_of_Tested_Camera_Sensors|RidgeRun Linux Camera Drivers]] to meet all the list of Drivers available}}
 
=General concepts=
 
This project consists of three subsystems which allow for the acceleration of algorithms on custom hardware as shown in the following image:
 
[[File:V4l2 pcie software stack.png|frame|center|V4L2 Data Flow]]
 
'''Frame Sink''': which allows the sending of video frames into a PCIe device, this can either be a display or a hardware accelerator such as shown in one shown in the image.
 
'''Frame Grabber''': allows for the capture of frames from a PCIe device, this device can be either a camera or the result of a hardware accelerator.
 
'''HW accelerator''': this subsystem allows for the processing of frames by complex algorithms, algorithms implemented in hardware are less power intensive, faster and allow for parallelism.


In this section, you are going to learn more about the V4L2 FPGA and its main features. When you finish this section you are going to have a general knowledge about this project's key features, and the supported modules.


*[[V4L2_FPGA/Introduction/Overview|Overview]] section explains the project's general structure and technologies.
*[[V4L2_FPGA/Introduction/Frame_Grabber|Frame Grabber]] section explains how to use the FPGA as a frame grabber capable of consuming video content from an external source, process them through hardware-described accelerators, and finally, provide them to the system for further processing.
*[[V4L2_FPGA/Introduction/Sink|Sink]] section explains how to use the FPGA as a sink element capable of consuming video frames from your system. Some examples are accelerated video decoding and display with custom screens.
*[[V4L2_FPGA/Introduction/HW_Acceleration|Filter]] section explains the advantages of implementing image/video filter accelerators on the FPGA. This feature can be used to process video content in any required way and return it back to the system for further processing.
*[[V4L2_FPGA/Introduction/Budget_Estimator|Budget Estimator]] section contains an estimator of the framerate.


After RidgeRun created V4L2_FPGA, [https://github.com/NVIDIA/jetson-rdma-picoevb NVIDIA published a V4L2 driver] that uses RDMA, making it useful if the video frames are going to be processed by the CUDA hardware.  RidgeRun can support the NVIDIA driver or add RDMA support to the RidgeRun created V4L2_FPGA driver.


<noinclude>
<noinclude>
{{V4L2_PCIe/Foot||Introduction/Frame Grabber}}
{{V4L2_FPGA/Foot||Introduction/Overview}}
</noinclude>
</noinclude>

Latest revision as of 21:19, 18 September 2024



  Index Next: Introduction/Overview





Driver List Information
Refer to the RidgeRun Linux Camera Drivers to meet all the list of Drivers available


In this section, you are going to learn more about the V4L2 FPGA and its main features. When you finish this section you are going to have a general knowledge about this project's key features, and the supported modules.

  • Overview section explains the project's general structure and technologies.
  • Frame Grabber section explains how to use the FPGA as a frame grabber capable of consuming video content from an external source, process them through hardware-described accelerators, and finally, provide them to the system for further processing.
  • Sink section explains how to use the FPGA as a sink element capable of consuming video frames from your system. Some examples are accelerated video decoding and display with custom screens.
  • Filter section explains the advantages of implementing image/video filter accelerators on the FPGA. This feature can be used to process video content in any required way and return it back to the system for further processing.
  • Budget Estimator section contains an estimator of the framerate.

After RidgeRun created V4L2_FPGA, NVIDIA published a V4L2 driver that uses RDMA, making it useful if the video frames are going to be processed by the CUDA hardware. RidgeRun can support the NVIDIA driver or add RDMA support to the RidgeRun created V4L2_FPGA driver.


Index Next: Introduction/Overview