Skip to content

Latest commit

ย 

History

62 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

FastImage 0.1.3 [ALPHA-2026-09] โ€” High-Performance Off-Heap Image Processing for Java

Status License: MIT Java Platform JitPack


โšก 10โ€“50ร— faster than Java's BufferedImage. Off-heap zero-copy memory. SIMD AVX2 accelerated Bicubic spline, Area-Average Anti-Aliasing, and blur filters.

FastImage provides ultra-fast C++ native image processing for Java applications, replacing slow JVM BufferedImage rendering loops with SIMD-accelerated Catmull-Rom Bicubic scaling, Area-Average Anti-Aliasing, Dual-Kawase blur, and color transforms.

Showcase


Quick Start โ€” Example

import fastimage.FastImage;
import java.awt.image.BufferedImage;

public class Demo {
    public static void main(String[] args) {
        // 1. Create 1080p off-heap image buffer
        FastImage img = FastImage.create(1920, 1080);

        // 2. Apply SIMD-accelerated filters (Chaining API)
        FastImage processed = img
            .resize(1280, 720)
            .blurKawase(3.0f, 2)
            .grayscale()
            .adjustBrightness(1.2f);

        // 3. Export to BufferedImage or native handle
        BufferedImage result = processed.toBufferedImage();
    }
}

Table of Contents


Why FastImage?

Standard Java BufferedImage operations suffer from heavy heap allocation overhead, slow software rasterizers, and JVM GC stalls. FastImage addresses this by:

  • SIMD Vectorization โ€” Uses native C++ AVX2 vector instructions for multi-pixel parallel scaling and color manipulation.
  • Off-Heap Direct Memory โ€” Stores pixel buffers in native unmanaged memory to eliminate JVM GC pauses completely.
  • Kawase & Mipmapped Blur โ€” Implements modern GPU-grade blur algorithms running in native C++ for UI overlays.

Key Features

  • โšก Native AVX2 SIMD Acceleration โ€” Leverages 256-bit AVX2 vector registers for ultra-fast Bilinear scaling and color adjustments.
  • ๐Ÿ–ผ๏ธ Off-Heap Zero-GC Memory โ€” Allocates raw pixel buffers in direct native memory to prevent JVM Garbage Collection stalls.
  • ๐ŸŒ€ Dual Kawase & Stack Blur โ€” High-speed blur algorithms for modern UI translucent overlays and game HUDs.
  • ๐Ÿ”— Chainable Fluent API โ€” Functional transformation pipeline returning new immutable FastImage instances.
  • ๐Ÿ”„ Interoperable Java Bridge โ€” Zero-copy converter to and from java.awt.image.BufferedImage.

Real-World Use Cases

  • ๐ŸŽฎ Game Overlays & Translucent HUDs: Real-time Gaussian and Kawase blur filtering for high-FPS game HUD overlays.
  • ๐Ÿ“น Live Screen Capture Pipeline: Downscale and process 1080p/4K video frames from FastScreen without GC stutters.
  • ๐Ÿ–ผ๏ธ Thumbnail & Preview Generators: Batch-resize thousands of high-resolution images in web servers and media CMS platforms.
  • ๐Ÿค– Computer Vision Preprocessing: Normalize, crop, and convert image frames before feeding AI vision models.

Architecture & Pipeline

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚    Foreign Source (FastScreen / FastCamera / Raw Pointer)   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚ Zero-Copy wrap() / Direct Native Allocation
                               โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚          Off-Heap Unmanaged Memory Buffer (32-Bit ARGB)     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚ 256-Bit AVX2 SIMD Vector Kernels
                               โ”‚ (Dual-Kawase Blur / Bilinear / Area-Average)
                               โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚           Processed Off-Heap FastImage (0 Bytes GC)         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚ Instant Chaining or Zero-Copy Export
                               โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         Vision Models (ONNX/Vulkan) or BufferedImage        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Performance Benchmarks

In the official JMH Benchmark, FastImage measured throughput for full 1080p (1920x1080) frame processing:

Benchmark                              Mode  Cnt   Score   Error  Units
JMH_Image.benchmarkFastImageResize    thrpt    2  19.521          ops/s
JMH_Image.benchmarkFastImageKawaseBlur thrpt   2  17.942          ops/s

Note

Environment & Setup: Measured on an Intel Core i7 with Windows 11. FastImage resizes 1080p full HD uncompressed image buffers to 720p at 19.5+ full operations per second with zero JVM Garbage Collection allocations.


API Quick Reference

Method Description Path
create(width, height) Creates an off-heap FastImage instance. Reference ๐Ÿ“–
resize(newW, newH) AVX2 SIMD bilinear image scaling. Reference ๐Ÿ“–
resizeBicubic(newW, newH) Ultra-sharp Catmull-Rom Bicubic spline resampling. Reference ๐Ÿ“–
resizeAreaAverage(newW, newH) Area-Average Anti-Aliasing downsampler. Reference ๐Ÿ“–
blurKawase(radius, passes) High-speed Dual-Kawase blur filter. Reference ๐Ÿ“–

Installation

Option 1: Maven (Recommended)

Add the JitPack repository and the complete dependency stack to your pom.xml:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

<dependencies>
    <!-- FastImage Engine -->
    <dependency>
        <groupId>com.github.andrestubbe</groupId>
        <artifactId>FastImage</artifactId>
        <version>0.1.3</version>
    </dependency>

    <!-- FastSIMD Hardware Vector Acceleration Engine -->
    <dependency>
        <groupId>com.github.andrestubbe</groupId>
        <artifactId>FastSIMD</artifactId>
        <version>0.1.3</version>
    </dependency>

    <!-- FastMemory Aligned Allocator -->
    <dependency>
        <groupId>com.github.andrestubbe</groupId>
        <artifactId>FastMemory</artifactId>
        <version>0.1.2</version>
    </dependency>

    <!-- FastPointer Address Wrapper -->
    <dependency>
        <groupId>com.github.andrestubbe</groupId>
        <artifactId>FastPointer</artifactId>
        <version>0.1.2</version>
    </dependency>

    <!-- FastCore Native Loader -->
    <dependency>
        <groupId>com.github.andrestubbe</groupId>
        <artifactId>FastCore</artifactId>
        <version>0.1.0</version>
    </dependency>
</dependencies>

Option 2: Gradle (via JitPack)

repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    implementation 'com.github.andrestubbe:FastImage:0.1.2'
    implementation 'com.github.andrestubbe:FastSIMD:0.1.3'
    implementation 'com.github.andrestubbe:FastMemory:0.1.2'
    implementation 'com.github.andrestubbe:FastPointer:0.1.2'
    implementation 'com.github.andrestubbe:FastCore:0.1.0'
}

Option 3: Direct Download (No Build Tool)

Download the required JARs directly to add them to your classpath:

  1. โšก FastImage-0.1.2.jar (The Core Library)
  2. ๐Ÿš€ FastSIMD-0.1.3.jar (Hardware Vector Acceleration Engine)
  3. ๐Ÿ’พ FastMemory-0.1.2.jar (32-Byte Aligned Allocator)
  4. ๐Ÿ“ FastPointer-0.1.2.jar (Primitive Address Pointer)
  5. โš™๏ธ fastcore-0.1.0.jar (Mandatory Native Loader)

Important

All JARs must be included in your classpath for the native SIMD JNI bindings to function correctly.


Documentation


Platform Support

Platform Status
Windows 10/11 (x64) โœ… Fully Supported
Linux ๐Ÿ”„ Planned
macOS ๐Ÿ”„ Planned

License

MIT License โ€” See LICENSE file for details.


Related Projects

  • FastScreen โ€” DirectX zero-copy screen capture engine
  • FastGraphics โ€” Hardware-accelerated DirectX rendering
  • FastCore โ€” Native JNI loader for FastJava libraries

Part of the FastJava Ecosystem โ€” Making the JVM faster. Small package. Maximum speed. Zero bloat. โšก

About

๐Ÿ–ผ๏ธ SIMDโ€‘accelerated offโ€‘heap image processing for Java โ€” AVX2/SSE4.1 native kernels, zeroโ€‘GC pipelines, and 10โ€“50ร— faster blur, resize, and color operations than Java2D.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages