Jump to content

V4L2 FPGA/Introduction: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 6: Line 6:
-->
-->


Modern systems require each day more complex algorithms,  with increasing complexity more powerful systems are needed.
On this section you are going to learn about the V4L2 PCIe and the modules it has to offer. When you finish this section you are going to have a general knowledge about this project's key features, and the modules to be developed.
Some systems such as GPUs allow for acceleration might be prohibiting in terms of power and cost. FPGAs on the other hand allow for faster execution and better power efficiency at the cost of a longer 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.


=General concepts=
*[[V4L2_PCIe/Introduction/Overview|Overview]] section explains the project general structure and the technologies to be used.
 
*[[V4L2_PCIe/Introduction/Frame_Grabber|Frame Grabber]] section explains the functions to be performed by the frame grabber element.
==Project Structure==
*[[V4L2_PCIe/Introduction/Sink|Sink]] section explains the functions to be performed by the video sink element.
This project consists of three subsystems which allow for the acceleration of algorithms on custom hardware as shown in the following image:
*[[V4L2_PCIe/Introduction/HW_Acceleration|HW Acceleration]] section explains the advantages of using HW acceleration and how it will be integrated into the other modules in this project.
 
[[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.
 
 
==PCIe==
PCI Express is a high-speed bus standard. PCIe slots can contain multiple lanes allowing for further speedup by transmitting information in each slot by parallel. It's the common interface for bandwidth for GPUs, Wi-Fi cards and SSDs.
 
{| class="wikitable"
|-
! Version !! Bandwidth (per lane) !! Bandwidth (per lane in a 16x slot)
|-
| PCIe 1.0 || 2 Gbit/s || 32 Gbit/s
|-
| PCIe 2.0 || 4 Gbit/s || 64 Gbit/s
|-
| PCIe 3.0 || 7.877 Gbit/s || 126.032 Gbit/s
|-
| PCIe 4.0 || 15.752 Gbit/s || 252.032 Gbit/s
|}
 
PCIe compatible cards also come in a Mini Card factor which has a a more flexible physical specification to connect to the PCIe bus, one example of these cards is the PicoEVB board
 
==V4L2==
Video4Linux is a collection of drivers and an common API for supporting realtime video capture  on Linux systems.
 
The V4L2 provides a video capture interface to get video data from a tuner or camera device, a video output interface which can provide video images outside of the device.
 
The API also implements code which enables applications to discover a given device's capabilities and to configure the device to operate in the desired manner. These include cropping, frame rates, video compression, image parameters, video formats, etc.
 
=Further Reading=
https://picoevb.com/


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

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.