← All Projects

HOBBY FPGA PROJECT

HDMI Video Interface and Image Processing

An HDMI video pipeline with selectable edge detection, motion detection, cartoon styling, and color corrections.

Cinematic concept illustration of HDMI video and image processing
Concept illustration of HDMI video and image processing.
HDMI Video Interface and Image Processing on PYNQ-Z2 implementation signal path
Implementation diagram based on project documentation. Personal setup photos and demonstration videos have not been added.

Project demonstration

Watch the yellow car scene cycle through the image-processing examples, with an automatic before-and-after comparison.

Browser demonstration with synthetic inputs; not a recording of FPGA hardware.

VHDL or HLS: Case Study →

Project overview

A hobby project exploring video processing directly in programmable logic. The documented design receives HDMI video, decodes it to a pixel stream, applies selectable filters, and transmits the processed result through HDMI OUT, without a software application.

Key features

  • Configured for 720p60 and 1080p30 with a 74.25 MHz pixel clock.
  • Sobel edges, temporal motion detection, and a cartoon filter selected using onboard controls.
  • Independent gamma correction, histogram equalization, and sepia stages.

IMAGE PROCESSING GUIDE

Conceptual examples showing how each technique changes the same scene. These illustrations explain the processing effects; they are not measured project results.

Compare the original scene with the second frame to see the car’s movement, then view the conceptual motion mask.

High-level architecture

HDMI inputTMDS decodeImage filtersTMDS / HDMI output

Notebook architecture

Notebook-style architecture illustration for HDMI image processing
Notebook-style illustration of the documented architecture. Open to view at full size.

Engineering challenges

Keeping pixels and sync signals aligned through filters with different delays is central to this pipeline. Sobel uses two line buffers; motion detection samples every eighth active line to fit its previous-frame data in on-chip memory. Histogram equalization uses the preceding frame’s statistics and switches lookup tables during blanking.

Validation & current status

The README documents the implemented pipeline, supported modes, and build/program procedure. It does not provide a completed hardware validation record or measured utilization and timing results, so those outcomes are not claimed here.

HDMI video processing and raw-camera processing

This project receives an existing video stream directly from an HDMI source, such as a computer’s HDMI output, and sends the processed video to a connected screen or monitor. The incoming stream is decoded into RGB pixels for filtering; the project does not acquire raw image data from a camera sensor.

A raw-camera system has different processing requirements. Its pipeline must account for the sensor’s output format and reconstruct and process the image as required by the application. For example, raw Bayer color data requires demosaicing to reconstruct full-color pixels. Other stages, such as black-level correction, defective-pixel correction, noise reduction, white balance, color correction, and tone mapping, are selected and arranged according to the sensor, image-quality targets, and the project’s latency, throughput, and resource requirements. There is no single fixed pipeline suitable for every camera application.

The filters demonstrated here operate on decoded HDMI video. They do not represent a complete raw-camera ISP pipeline. See AMD’s demosaicing overview and ISP pipeline documentation for the raw-sensor distinction.

Scope & limitations

Video only: HDMI audio, HDCP, 1080p60, and general format conversion are outside the documented implementation.