Real-Time Video Capture by PolarFire FPGA Case: Alvium1800 C-240 Cameras
Connecting two Alvium 1800 C-240 cameras to a PolarFire FPGA for real-time video capture at 1080p and 24 FPS is feasible, but the hardware development would face some challenges such as:Interfacing the two cameras with the PolarFire device at a specific lane-rate for 1080p@24 FPS.
Implementing the efficient video compression module on FPGA fabric.
Camera Output Requirements
Resolution & Frame Rate: The Alvium1800 C-240 outputs video at around 1080p resolution (1920×1080 pixels) at 24 FPS .
Data Format: This model supports multiple data formats, including RAW and RGB data types.
Data Bandwidth: For a video stream with 1080p@24 FPS RGB format the data rate would be:Resolution ×Frame Rate ×Color Depth. The calculation would be : 1080 ×1920 ×24 ×24bit=149.3MB.
PolarFireMaximum Transceiver Bandwidth: PolarFirelow-power transceivers can operate up to 12.7Gbps which is more than enough to handle 1080p@24 FPS video stream.
MIPI CSI-2 Protocol
Alvium 1800 C-240 Lane Configuration: The Alvium 1800 C-240 uses a MIPI CSI-2 interface, supporting configurations of 1, 2, 4, or 8 data lanes, with increased lane count allowing higher throughput.
PolarFire Lane Configuration: PolarFire’s MIPI CSI-2 RxDecoder IP supports up to 8 lanes per channel (supports resolution up to 3840×2160@60 FPS), enough for 1080p@24 FPS in RGB-888
Packet Structure: Alvium 1800 C-240 transmits data via long packets containing pixel data and short packets for synchronization. PolarFire’s CSI-2 RxDecoder IP supports both, which are essential for handling high-resolution video in real-time.
Data Processing in PolarFire
Overview: MIPI CSI-2 operates in two modes, High speed mode and low power mode. In the high-speed mode, MIPI CSI-2 supports the transport of image data using short packet and long packet formats. Short packets provide line and frame synchronization, and long packets provide pixel information.
- MIPI CSI-2 RxDecoder IP Compatibility: The PolarFire IP is compatible with Alvium cameras’ CSI-2 output, supporting high-speed modes necessary for video. It handles protocols and includes AXI interfaces compatible with video processing pipelines
- Parallel Clock Requirements: A PLL-based setup is required to synchronize video data capture. PolarFire’s configuration must match the input clock requirements, with the PLL generating a parallel pixel clock synchronized with the MIPI data rate and lane count
Hardware implementation
For implementing the MIPI CSI-2 Receiver on PolarFIre device, an MIPI CSI-2 RxDecoder can be used. This IP has to be used in conjugation with the PolarFire MIPI IOD generic interface block and PLL.
Compression Algorithm: Real-time compression is crucial to reduce the size of data being stored. PolarFire FPGAs support DSP blocks, which can handle compression algorithms like H.264 or H.265, but implementing real-time compression will require optimized HDL/VHDL coding.
- Second solution: Using the PolarFire FPGA H.264 Encoder IP would substantially decrease the implementation time and cost with efficient resource consumption.
- FPGA Resource Utilization: PolarFire has limited computational power and memory bandwidth, so compression must be balanced with real-time
264
264 typically compresses 1080p video at various bit rates depending on the quality, complexity, and efficiency of compression. The compression ratios for H.264 can decrease up to 1:2000, but a common range is 50:1 to 100:1 for high-quality video, depending on motion and detail. Since the uncompressed data rate for 1080p@24 RGB video stream is 1200Mbps, the data rate after H.264 compression using an average compression ratio of 50:1 would be 1200/50=24Mbps and with a 100:1 compression ratio (common for lower-motion video or reduced quality) the data rate would be 1200/100=12Mbps.me data throughput.
PolarFIre FPGA H.264 Encoder IP features
Expects the input in YCbCr:422 video format (8 bit for each component: Y, Cb, and Cr). The Alvium 1800 C-240 can be configured with an I2C interface to output its video stream with the same format.
- Standalone operation, CPU or processor assistance not required.
- User configurable quality factor during run time.
- Computation at the rate of one pixel per clock.
- Supports compression up to resolution of 1080p@60 FPS.
Storage Interface
Storage Bandwidth: eMMC storage devices with up to 400MBytes/s can be used for saving the compressed video stream. eMMC on-board memories would be a good choice if there is no need for very high-volume memory capacity.
A second eMMC memory can be used as a redundant memory to consider.
- Data Buffering: Incorporate memory buffering to handle temporary data surges if storage cannot keep pace. FIFO buffers on the PolarFire can help with short-term buffering needs during peak data rates. DDR4 memory is another high throughput memory that can be used as a temporary buffer.
- An imminent solution with two eMMC memories equal to 64GByte storage is available (2x32GByte. 32GByte main storage and 32GByte redundant storage).