QOI Image Compressor

Overview

This core implements the QOI lossless image compression algorithm producing a raw, header-less file. Simple, fully synchronous design with low gate count.

OL_QOIE is a fast, low complexity implementation of the compression algorithm that accepts one 24 bits RGB pixel per clock cycle and outputs compressed data packed in 32 bits words.

The QOI Lossless Image Compression Algorithm

QOI stands for Quite OK Image Format and it is a fast, simple lossless image compression algorithm.

As it can be seen in these benchmarks, the performance of the algorithm is usually somewhere in between two well known image compression libraries (like libpng and stb) but at a much lower computational cost.

QOI uses a combination of some well known image compression techniques and innovative ideas.

Pixels are compressed as:

  • runs of identical pixels
  • an index to a 64 pixel cache of previously encountered pixels
  • a difference to the previous pixel
  • a full RGB pixel

The QOI algorithm is an excellent compromise between compression performance and low algorithmic complexity.

Key Features

  • Implemented according to the QOI image format.
  • Processes one 24 bits pixel per clock cycle.
  • High throughput : up to 800 Mpixles/s in high end, 4K@30 in low end FPGAs.
  • Optional header processing available.
  • Fully synchronous design.
  • Available as fully functional and synthesizable VHDL or Verilog soft-core.
  • Test benches provided

Block Diagram

QOI Image Compressor Block Diagram

Applications

  • Bandwidth and storage reduction.
  • Lossless compressed frame store.
  • Space imaging applications.
  • SoC to SoC image transmission.

Technical Specifications

×
Semiconductor IP