CAVU Aerospace UK

H.264 Video recording solutions; Trade-off between compression efficiency and robustness

These encoders are built on our OBC-Polar computing platform series (PolarFire SoC based), with an FPGA RTL-based video encoder pipeline integrated alongside the Linux control/software stack.

VREC supports two H.264 operating modes depending on the mission trade-off between compression efficiency and robustness / per-frame access:

  • H.264 I/P (Inter-frame) encoding
    Uses I + P frames to achieve higher compression efficiency (better quality per bitrate). The published capability supports up to 4K (3840×2160) @ 60 fps.
  • H.264 I-Frame (All-Intra) encoding
    Encodes I-frames only, meaning each frame is independent (useful for deterministic per-frame access and more localized error impact). The published capability is up to 1080p @ 60 fps.

Both modes generate an ITU-T H.264 Annex-B compliant NAL byte stream output

Chroma subsampling / pixel format

  • Encoder input (accepted): YCbCr 4:2:2, 8-bit per component (Y, Cb, Cr).
  • Encoded bitstream (output): H.264/AVC, YCbCr 4:2:0 video content.
  • Output stream framing: ITU-T H.264 Annex B compliant NAL byte stream.

Input support / pre-processing stage (before the encoder)

Many camera sources provide RAW Bayer, RGB, or alternative YUV layouts. Therefore, VREC includes an FPGA RTL-based input conditioning stage to convert common input formats into the encoder-acceptable format (YCbCr 4:2:2, 8-bit/component).

Supported input families (via configurable pre-processing/adapters):

  • RAW Bayer: RAW8 / RAW10 / RAW12
    Typical chain: RAW Bayer → debayer/demosaic → RGB → color-space conversion → YCbCr 4:2:2 (8-bit).
  • RGB: RGB888, RGB565, RGB8 (mono/greyscale)
    Typical chain: RGB → color-space conversion → YCbCr 4:2:2 (8-bit).
  • YUV / YCbCr formats (from bridges and camera interfaces):
    • YCbCr 4:2:2 packed (e.g., YUYV/UYVY) → direct feed (or light adapter) to encoder input
    • YCbCr 4:2:0 semi-planar (e.g., NV12/NV21) → converted to YCbCr 4:2:2 prior to encode. NV12 is defined as a two-plane YUV 4:2:0 format (Y plane + interleaved CbCr plane).

This approach keeps the external camera input flexible while maintaining a deterministic encoder-facing format.

Encoder operating envelope

  • Maximum encode capability: up to 4K (3840×2160) @ 60 fps per stream.
  • Low-latency behavior: designed for minimal latency; for example, a low-latency configuration ~252 µs at 1080p.
  • Bitrate range: Configurable 1 Mbps to 80 Mbps per stream.

Simultaneous streams

Simultaneous streams are achieved by deploying multiple parallel encoder pipelines in the FPGA logic. For the common operating point of 4K @ 30 fps:

  • CubeSat platform (OBC-Cube-Polar / MPFS250 class): up to 2 simultaneous streams
  • Larger platform (OBC-HYPR-Polar / MPFS460 class): up to 4 simultaneous streams

Video input and platform context

  • Video input (selectable front-end): CSI-2 / HDMI / CameraLink (Base/Medium/Full) / SDI / CoaXPress / SD / Composite / etc.
  • Networking: Dual 1G Ethernet
  • Storage: dual 256 GB eMMC configured in pSLC mode (80 GB + 80 GB)
  • Plus the rest of the general OBC-Cube-Polar / OBC-HYPR-Polar platform capabilities (SpaceWire, LVDS, CAN, UART variants, etc.).
H.264, Video Recording, Satellite, Satellite Systems, OBC, Onboard Computer, OBC-Polar, PolarFire SoC based, Satellite Camera, AVC, Advanced Video Coding

Encoder summary Specifications:


Item

H.264 Encoder (I/P – inter-frame)

H.264 I-Frame Encoder (All-Intra)

Encoder type

FPGA RTL-based H.264/AVC pipeline

Frame types

I + P frames (inter-frame prediction enabled)

I-frames only (each frame encoded independently)

Encode input requirement

YCbCr 4:2:2, 8-bit/component

Encoded video format

YCbCr 4:2:0 (H.264/AVC)

Output stream format

ITU-T H.264 Annex-B NAL byte stream

Max resolution / fps (per stream)

Up to 4K (3840×2160) @ 60 fps (config dependent)

Up to 1080p @ 60 fps

Latency (engineering note)

Low-latency capable

(configuration dependent)

Low-latency and robust

(no inter-frame dependencies)

Bitrate operating range (per stream)

1 Mbps to 80 Mbps (configurable)

Compression efficiency

Higher efficiency due to inter-frame prediction (better quality per bitrate)

Lower efficiency vs I/P (but simpler and more error-contained)

Robustness to link loss

If packets are lost, artifacts can persist until next I-frame (depends on GOP)

Loss impacts are more localized (no dependency chain between frames)

Best-fit use cases

Bandwidth/storage constrained recording; longer duration video

Deterministic per-frame access, simpler post-processing, robustness-focused links

Simultaneous streams @ 4K @ 30 fps

Up to 2 (CubeSat platform / OBC-Cube-Polar class) or up to 4 (larger / OBC-HYPR-Polar class)

Not applicable at 4K (I-Frame is 1080p-class); multi-stream counts depend on selected 1080p/720p operating point

Video inputs (front-end options)

CSI-2 / HDMI / CameraLink (Base/Med/Full) / SDI / CoaXPress / SD / Composite / etc.

Storage / host context

Dual eMMC in pSLC mode; Dual 1G Ethernet;

plus standard OBC-Polar I/O (SpaceWire, LVDS, CAN, UART variants, etc.)

Software

Linux BSP available for recorder control + custom application development