Skip to content

Commit 8752490

Browse files
committed
Auto Update
1 parent cc3f17d commit 8752490

1 file changed

Lines changed: 61 additions & 41 deletions

File tree

README.md

Lines changed: 61 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,23 @@
22

33
**Ultra-fast native image processing using AVX2/SSE4.1 kernels and zero-GC memory management.**
44

5-
FastImage ist eine ultra‑schnelle, native‑beschleunigte Image‑Processing‑Engine für Java, gebaut für das FastJava‑Ecosystem. Es kombiniert AVX/SSE SIMD, off‑heap Storage, zero‑copy Pipelines und eine fluent API, um typische BufferedImage‑Operationen **10–50× schneller** auszuführen — ohne GC‑Pressure, ohne Pixel‑Loops, ohne JVM‑Overhead.
5+
FastImage ist eine ultra‑schnelle, native‑beschleunigte Image‑Processing‑Engine für Java, gebaut für das
6+
FastJava‑Ecosystem. Es kombiniert AVX/SSE SIMD, off‑heap Storage, zero‑copy Pipelines und eine fluent API, um typische
7+
BufferedImage‑Operationen **10–50× schneller** auszuführen — ohne GC‑Pressure, ohne Pixel‑Loops, ohne JVM‑Overhead.
68

79
```java
810
// Quick Start — SIMD-Accelerated Filtering
11+
912
import fastimage.FastImage;
1013

1114
public class Demo {
1215
public static void main(String[] args) {
1316
FastImage img = FastImage.load("input.jpg");
14-
17+
1518
img.adjustContrast(1.2f)
16-
.blurStack(15.0f)
17-
.grayscale();
18-
19+
.blurStack(15.0f)
20+
.grayscale();
21+
1922
img.save("output.png");
2023
img.dispose(); // Free native memory
2124
}
@@ -31,6 +34,7 @@ public class Demo {
3134
---
3235

3336
## Table of Contents
37+
3438
- [Key Features](#key-features)
3539
- [Performance](#performance)
3640
- [Installation](#installation)
@@ -57,11 +61,11 @@ public class Demo {
5761

5862
FastImage utilizes the full power of your CPU, outperforming standard Java2D loops by orders of magnitude:
5963

60-
| Operation | Java2D (BufferedImage) | FastImage (SIMD) | Speedup |
61-
| :--- | :--- | :--- | :--- |
62-
| **Brightness** | ~48.6 ms/op | **~1.5 ms/op** | **32x** |
63-
| **Gaussian Blur (r10)** | ~1100.0 ms/op | **~170.4 ms/op** | **6.5x** |
64-
| **Grayscale** | ~20.0 ms/op | **~1.3 ms/op** | **15x** |
64+
| Operation | Java2D (BufferedImage) | FastImage (SIMD) | Speedup |
65+
|:------------------------|:-----------------------|:-----------------|:---------|
66+
| **Brightness** | ~48.6 ms/op | **~1.5 ms/op** | **32x** |
67+
| **Gaussian Blur (r10)** | ~1100.0 ms/op | **~170.4 ms/op** | **6.5x** |
68+
| **Grayscale** | ~20.0 ms/op | **~1.3 ms/op** | **15x** |
6569

6670
*Tested on: 1920x1080 (1080p) ARGB Image on Intel i7-12700K.*
6771

@@ -70,9 +74,11 @@ FastImage utilizes the full power of your CPU, outperforming standard Java2D loo
7074
## Installation
7175

7276
### Option 1: Maven (Recommended)
77+
7378
Add the JitPack repository and the dependencies to your `pom.xml`:
7479

7580
```xml
81+
7682
<repositories>
7783
<repository>
7884
<id>jitpack.io</id>
@@ -81,23 +87,24 @@ Add the JitPack repository and the dependencies to your `pom.xml`:
8187
</repositories>
8288

8389
<dependencies>
84-
<!-- FastImage Library -->
85-
<dependency>
86-
<groupId>com.github.andrestubbe</groupId>
87-
<artifactId>fastimage</artifactId>
88-
<version>v0.1.0</version>
89-
</dependency>
90-
91-
<!-- FastCore (Required Native Loader) -->
92-
<dependency>
93-
<groupId>com.github.andrestubbe</groupId>
94-
<artifactId>fastcore</artifactId>
95-
<version>v0.1.0</version>
96-
</dependency>
90+
<!-- FastImage Library -->
91+
<dependency>
92+
<groupId>com.github.andrestubbe</groupId>
93+
<artifactId>fastimage</artifactId>
94+
<version>v0.1.0</version>
95+
</dependency>
96+
97+
<!-- FastCore (Required Native Loader) -->
98+
<dependency>
99+
<groupId>com.github.andrestubbe</groupId>
100+
<artifactId>fastcore</artifactId>
101+
<version>v0.1.0</version>
102+
</dependency>
97103
</dependencies>
98104
```
99105

100106
### Option 2: Gradle (via JitPack)
107+
101108
```groovy
102109
repositories {
103110
maven { url 'https://jitpack.io' }
@@ -110,15 +117,17 @@ dependencies {
110117
```
111118

112119
### Option 3: Direct Download (No Build Tool)
120+
113121
Download the latest JARs directly to add them to your classpath:
114122

115-
1. 📦 **[fastimage-v0.1.0.jar](https://github.com/andrestubbe/FastImage/releases/download/v0.1.0/fastimage-v0.1.0.jar)** (The Core Library)
116-
2. ⚙️ **[fastcore-v0.1.0.jar](https://github.com/andrestubbe/FastCore/releases/download/v0.1.0/fastcore-v0.1.0.jar)** (The Mandatory Native Loader)
123+
1. 📦 **[fastimage-v0.1.0.jar](https://github.com/andrestubbe/FastImage/releases/download/v0.1.0/fastimage-v0.1.0.jar)
124+
** (The Core Library)
125+
2. ⚙️ **[fastcore-v0.1.0.jar](https://github.com/andrestubbe/FastCore/releases/download/v0.1.0/fastcore-v0.1.0.jar)** (
126+
The Mandatory Native Loader)
117127

118128
> [!IMPORTANT]
119129
> All JARs must be in your classpath for the native JNI calls to function correctly.
120130
121-
122131
## Try the Demo
123132

124133
1. Clone this repository: `git clone https://github.com/andrestubbe/FastImage.git`
@@ -130,38 +139,49 @@ Download the latest JARs directly to add them to your classpath:
130139

131140
## API Reference
132141

133-
| Method | Description |
134-
| :--- | :--- |
135-
| `void grayscale()` | Converts image to luminance-weighted grayscale via SIMD. |
136-
| `void adjustBrightness(f)`| Scales RGB values with saturation clamping. |
137-
| `void adjustContrast(f)` | Adjusts image contrast around the midpoint. |
138-
| `void blurGaussian(r)` | High-quality Gaussian blur approximation ($O(N)$). |
139-
| `void blurStack(r)` | Extremely fast separable weighted blur. |
140-
| `void resize(w, h)` | Bilinear resizing using native kernels. |
142+
| Method | Description |
143+
|:---------------------------|:---------------------------------------------------------|
144+
| `void grayscale()` | Converts image to luminance-weighted grayscale via SIMD. |
145+
| `void adjustBrightness(f)` | Scales RGB values with saturation clamping. |
146+
| `void adjustContrast(f)` | Adjusts image contrast around the midpoint. |
147+
| `void blurGaussian(r)` | High-quality Gaussian blur approximation ($O(N)$). |
148+
| `void blurStack(r)` | Extremely fast separable weighted blur. |
149+
| `void resize(w, h)` | Bilinear resizing using native kernels. |
141150

142151
---
143152

144-
## Platform Support
153+
## Documentation
145154

146-
| Architecture | Instruction Set | OS |
147-
| :--- | :--- | :--- |
148-
| x64 | **AVX2** (Runtime Dispatch) | Windows 10/11 |
149-
| x64 | **SSE4.1** (Fallback) | Windows 10/11 |
155+
* **[COMPILE.md](COMPILE.md)**: Full compilation guide (MSVC C++17 build chain + JNI Setup).
156+
* **[REFERENCE.md](REFERENCE.md)**: Full API descriptions, border configurations, and codepoint index.
157+
* **[PHILOSOPHIE.md](PHILOSOPHIE.md)**: The engineering rationale for zero-allocation performance.
158+
* **[ROADMAP.md](ROADMAP.md)**: Future milestones and planned features.
150159

151160
---
152161

153-
## Building from Source
162+
## Platform Support
154163

155-
For detailed instructions on compiling the C++ JNI code and building the Maven FatJAR, see [COMPILE.md](COMPILE.md).
164+
| Architecture | Instruction Set | OS |
165+
|:-------------|:----------------------------|:--------------|
166+
| x64 | **AVX2** (Runtime Dispatch) | Windows 10/11 |
167+
| x64 | **SSE4.1** (Fallback) | Windows 10/11 |
168+
169+
| Platform | Status |
170+
|---------------|-------------------|
171+
| Windows 10/11 | ✅ Fully Supported |
172+
| Linux | 🚧 Planned |
173+
| macOS | 🚧 Planned |
156174

157175
---
158176

159177
## License
178+
160179
MIT License — See [LICENSE](LICENSE) file for details.
161180

162181
---
163182

164183
## Related Projects
184+
165185
- [FastCore](https://github.com/andrestubbe/FastCore) — Native Library Loader
166186
- [FastTheme](https://github.com/andrestubbe/FastTheme) — Native Window Styling
167187
- [FastGraphics](https://github.com/andrestubbe/FastGraphics) — Hardware-accelerated 2D Rendering

0 commit comments

Comments
 (0)