โก 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.
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();
}
}- Why FastImage?
- Key Features
- Real-World Use Cases
- Architecture & Pipeline
- Performance Benchmarks
- API Quick Reference
- Installation
- Documentation
- Platform Support
- License
- Related Projects
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.
- โก 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
FastImageinstances. - ๐ Interoperable Java Bridge โ Zero-copy converter to and from
java.awt.image.BufferedImage.
- ๐ฎ 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.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 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 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
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.
| 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 ๐ |
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>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'
}Download the required JARs directly to add them to your classpath:
- โก FastImage-0.1.2.jar (The Core Library)
- ๐ FastSIMD-0.1.3.jar (Hardware Vector Acceleration Engine)
- ๐พ FastMemory-0.1.2.jar (32-Byte Aligned Allocator)
- ๐ FastPointer-0.1.2.jar (Primitive Address Pointer)
- โ๏ธ 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.
- CHANGELOG.md: Version history and release notes.
- COMPILE.md: Full compilation guide (MSVC C++17 build chain + JNI Setup).
- REFERENCE.md: Full API contracts and routing logic.
- PHILOSOPHY.md: Off-heap zero-GC memory philosophy.
- ROADMAP.md: Future development goals.
| Platform | Status |
|---|---|
| Windows 10/11 (x64) | โ Fully Supported |
| Linux | ๐ Planned |
| macOS | ๐ Planned |
MIT License โ See LICENSE file for details.
- 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. โก
