FPNG Java
FPNG-Java provides Java wrappers around two native, SIMD-optimised PNG encoders — FPNG (SSE2) and FPNGE (AVX2). Both produce fully compliant PNG files at significantly higher throughput than javax.imageio .
The JDK23+ version of the encoders uses Foreign Function & Memory API and is the fastest. Otherwise JNI is used via JNA, which comes with some overhead.
Latest stable release: fpng-java-1.6.10.jar
GitHub Repository: https://github.com/manticore-projects/fpng-java
Features
Two encoders with automatic runtime selection
FPNG — SSE2/SSE4.1/PCLMUL, works on any x86-64 CPU
FPNGE — AVX2, used automatically when the CPU supports it
FFM for JDK22+, JNI/JNA for older JDKs
Runtime hasAVX2() CPUID probe — no AVX2 library is loaded on unsupported hardware
Encodes BufferedImage directly — 3-channel (RGB) and 4-channel (RGBA)
Handles Java’s native TYPE_3BYTE_BGR / TYPE_4BYTE_ABGR channel order in C via SIMD byte shuffles
Interleaved Adler32 checksum — no redundant full-image pass
PCLMUL-accelerated CRC32
Supports Java 8 , Java 11 , Java 17 and Java 21
Platforms: Linux x86-64, Windows x86/x86-64, macOS x86-64
Benchmarks
Run the JMH benchmarks with:
Results are written to benchmark/build/results/jmh/results.json .
Speed
JMH PNG Encoder Benchmark Report
3 ch
example.png
Encoder
Score (ms/op)
Error
vs Winner
FPNG Encoder (Java 23)
1.291
±NaN
baseline
FPNG Encoder (JNI)
1.468
±NaN
+13.7%
FPNGE (Java 23 FFM)
1.476
±NaN
+14.3%
FPNGE (Java 23 FFM)
1.502
±NaN
+16.4%
FPNGE (JNI)
1.558
±NaN
+20.7%
FPNGE (JNI)
1.599
±NaN
+23.9%
FPNG Encoder (Java 23)
1.635
±NaN
+26.7%
FPNGE (Java 23 FFM)
1.718
±NaN
+33.1%
FPNGE (JNI)
1.807
±NaN
+40.0%
FPNGE (Java 23 FFM)
1.891
±NaN
+46.5%
FPNG Encoder (JNI)
1.899
±NaN
+47.1%
FPNGE (JNI)
1.977
±NaN
+53.2%
FPNGE (Java 23 FFM)
2.230
±NaN
+72.8%
FPNGE (JNI)
2.318
±NaN
+79.6%
FPNG Encoder (Java 23)
3.108
±NaN
+140.8%
FPNG Encoder (JNI)
3.912
±NaN
+203.1%
FPNG Encoder (JNI)
4.492
±NaN
+248.0%
FPNG Encoder (Java 23)
5.025
±NaN
+289.3%
FPNG Encoder (Java 23)
5.035
±NaN
+290.1%
FPNG Encoder (JNI)
5.120
±NaN
+296.7%
PNGEncoder (fastest)
18.713
±NaN
+1349.9%
PNGEncoder (fastest)
31.962
±NaN
+2376.5%
PNGEncoder (fastest)
33.427
±NaN
+2490.0%
PNGEncoder (fastest)
33.435
±NaN
+2490.6%
PNGEncoder (fastest)
35.085
±NaN
+2618.4%
PNGEncoder
42.974
±NaN
+3229.7%
ObjectPlanet PNG
47.853
±NaN
+3607.7%
ObjectPlanet PNG
48.001
±NaN
+3619.2%
ObjectPlanet PNG
48.042
±NaN
+3622.4%
ObjectPlanet PNG
48.073
±NaN
+3624.8%
ObjectPlanet PNG
48.266
±NaN
+3639.7%
ImageIO
52.772
±NaN
+3988.8%
ImageIO
52.878
±NaN
+3997.1%
ImageIO
52.892
±NaN
+3998.1%
ImageIO
52.934
±NaN
+4001.4%
ImageIO
52.960
±NaN
+4003.4%
PNGEncoder
55.342
±NaN
+4188.0%
PNGEncoder
55.839
±NaN
+4226.5%
PNGEncoder
57.150
±NaN
+4328.1%
PNGEncoder
58.383
±NaN
+4423.7%
3 ch
looklet-look-scale6.png
Encoder
Score (ms/op)
Error
vs Winner
FPNGE (Java 23 FFM)
55.129
±NaN
baseline
FPNGE (Java 23 FFM)
57.617
±NaN
+4.5%
FPNGE (Java 23 FFM)
67.137
±NaN
+21.8%
FPNGE (JNI)
71.876
±NaN
+30.4%
FPNGE (Java 23 FFM)
72.971
±NaN
+32.4%
FPNGE (JNI)
73.540
±NaN
+33.4%
FPNGE (JNI)
81.978
±NaN
+48.7%
FPNGE (Java 23 FFM)
88.685
±NaN
+60.9%
FPNGE (JNI)
88.883
±NaN
+61.2%
FPNGE (JNI)
104.489
±NaN
+89.5%
FPNG Encoder (Java 23)
132.261
±NaN
+139.9%
FPNG Encoder (Java 23)
137.870
±NaN
+150.1%
FPNG Encoder (JNI)
185.851
±NaN
+237.1%
FPNG Encoder (JNI)
192.518
±NaN
+249.2%
FPNG Encoder (Java 23)
208.851
±NaN
+278.8%
FPNG Encoder (JNI)
249.721
±NaN
+353.0%
PNGEncoder (fastest)
301.553
±NaN
+447.0%
FPNG Encoder (Java 23)
307.356
±NaN
+457.5%
FPNG Encoder (Java 23)
319.332
±NaN
+479.2%
FPNG Encoder (JNI)
366.217
±NaN
+564.3%
FPNG Encoder (JNI)
366.486
±NaN
+564.8%
PNGEncoder (fastest)
503.651
±NaN
+813.6%
PNGEncoder (fastest)
660.291
±NaN
+1097.7%
PNGEncoder (fastest)
829.792
±NaN
+1405.2%
PNGEncoder (fastest)
954.261
±NaN
+1631.0%
PNGEncoder
1125.140
±NaN
+1940.9%
ImageIO
1248.655
±NaN
+2165.0%
ImageIO
1248.867
±NaN
+2165.3%
ImageIO
1251.001
±NaN
+2169.2%
ImageIO
1251.095
±NaN
+2169.4%
ImageIO
1257.685
±NaN
+2181.3%
PNGEncoder
1307.763
±NaN
+2272.2%
PNGEncoder
1463.246
±NaN
+2554.2%
PNGEncoder
1631.563
±NaN
+2859.5%
PNGEncoder
1757.153
±NaN
+3087.3%
ObjectPlanet PNG
2239.176
±NaN
+3961.7%
ObjectPlanet PNG
2239.810
±NaN
+3962.8%
ObjectPlanet PNG
2240.248
±NaN
+3963.6%
ObjectPlanet PNG
2242.885
±NaN
+3968.4%
ObjectPlanet PNG
2243.183
±NaN
+3969.0%
4 ch
example.png
Encoder
Score (ms/op)
Error
vs Winner
FPNG Encoder (Java 23)
1.300
±NaN
baseline
FPNG Encoder (Java 23)
1.302
±NaN
+0.2%
FPNGE (Java 23 FFM)
1.780
±NaN
+36.9%
FPNGE (Java 23 FFM)
1.815
±NaN
+39.6%
FPNGE (JNI)
1.877
±NaN
+44.4%
FPNGE (JNI)
1.958
±NaN
+50.6%
FPNG Encoder (JNI)
2.000
±NaN
+53.8%
FPNG Encoder (JNI)
2.060
±NaN
+58.5%
FPNGE (Java 23 FFM)
2.078
±NaN
+59.8%
FPNGE (JNI)
2.212
±NaN
+70.2%
FPNGE (Java 23 FFM)
2.299
±NaN
+76.8%
FPNGE (JNI)
2.438
±NaN
+87.5%
FPNGE (Java 23 FFM)
2.729
±NaN
+109.9%
FPNGE (JNI)
2.884
±NaN
+121.8%
FPNG Encoder (Java 23)
3.739
±NaN
+187.6%
FPNG Encoder (JNI)
5.241
±NaN
+303.1%
FPNG Encoder (Java 23)
5.417
±NaN
+316.6%
FPNG Encoder (Java 23)
5.423
±NaN
+317.1%
FPNG Encoder (JNI)
6.179
±NaN
+375.2%
FPNG Encoder (JNI)
6.829
±NaN
+425.2%
PNGEncoder (fastest)
23.905
±NaN
+1738.6%
PNGEncoder (fastest)
40.121
±NaN
+2985.8%
PNGEncoder (fastest)
43.114
±NaN
+3216.0%
PNGEncoder (fastest)
43.735
±NaN
+3263.7%
PNGEncoder (fastest)
45.700
±NaN
+3414.9%
PNGEncoder
49.234
±NaN
+3686.7%
ObjectPlanet PNG
60.945
±NaN
+4587.4%
ObjectPlanet PNG
61.008
±NaN
+4592.2%
ObjectPlanet PNG
61.017
±NaN
+4593.0%
ObjectPlanet PNG
61.120
±NaN
+4600.8%
ObjectPlanet PNG
61.202
±NaN
+4607.2%
PNGEncoder
64.817
±NaN
+4885.2%
ImageIO
65.604
±NaN
+4945.7%
ImageIO
65.937
±NaN
+4971.3%
ImageIO
67.054
±NaN
+5057.2%
ImageIO
67.260
±NaN
+5073.1%
ImageIO
68.018
±NaN
+5131.4%
PNGEncoder
68.019
±NaN
+5131.5%
PNGEncoder
70.106
±NaN
+5292.0%
PNGEncoder
73.690
±NaN
+5567.6%
4 ch
looklet-look-scale6.png
Encoder
Score (ms/op)
Error
vs Winner
FPNGE (Java 23 FFM)
68.846
±NaN
baseline
FPNGE (Java 23 FFM)
72.568
±NaN
+5.4%
FPNGE (Java 23 FFM)
84.805
±NaN
+23.2%
FPNGE (JNI)
92.127
±NaN
+33.8%
FPNGE (Java 23 FFM)
93.988
±NaN
+36.5%
FPNGE (JNI)
95.676
±NaN
+39.0%
FPNGE (JNI)
107.711
±NaN
+56.5%
FPNGE (Java 23 FFM)
112.585
±NaN
+63.5%
FPNGE (JNI)
114.824
±NaN
+66.8%
FPNGE (JNI)
133.177
±NaN
+93.4%
FPNG Encoder (Java 23)
216.603
±NaN
+214.6%
FPNG Encoder (Java 23)
218.178
±NaN
+216.9%
FPNG Encoder (Java 23)
262.256
±NaN
+280.9%
FPNG Encoder (JNI)
309.579
±NaN
+349.7%
FPNG Encoder (JNI)
316.119
±NaN
+359.2%
FPNG Encoder (JNI)
330.406
±NaN
+379.9%
FPNG Encoder (Java 23)
411.250
±NaN
+497.3%
FPNG Encoder (Java 23)
430.383
±NaN
+525.1%
PNGEncoder (fastest)
434.307
±NaN
+530.8%
FPNG Encoder (JNI)
480.796
±NaN
+598.4%
FPNG Encoder (JNI)
487.523
±NaN
+608.1%
PNGEncoder (fastest)
622.864
±NaN
+804.7%
PNGEncoder (fastest)
820.126
±NaN
+1091.2%
PNGEncoder (fastest)
1007.278
±NaN
+1363.1%
PNGEncoder (fastest)
1145.369
±NaN
+1563.7%
PNGEncoder
1464.177
±NaN
+2026.7%
ImageIO
1527.645
±NaN
+2118.9%
ImageIO
1530.446
±NaN
+2123.0%
ImageIO
1532.689
±NaN
+2126.3%
ImageIO
1535.153
±NaN
+2129.8%
ImageIO
1535.580
±NaN
+2130.5%
PNGEncoder
1613.672
±NaN
+2243.9%
PNGEncoder
1849.022
±NaN
+2585.7%
PNGEncoder
2061.763
±NaN
+2894.7%
PNGEncoder
2224.811
±NaN
+3131.6%
ObjectPlanet PNG
2665.442
±NaN
+3771.6%
ObjectPlanet PNG
2670.048
±NaN
+3778.3%
ObjectPlanet PNG
2673.009
±NaN
+3782.6%
ObjectPlanet PNG
2673.295
±NaN
+3783.0%
ObjectPlanet PNG
2674.534
±NaN
+3784.8%
Manticore Projects © 2026 · JMH benchmark report ·
JDK 23 · Serial GC · 1×3 fork/iteration
Efficiency
JMH PNG Encoder Pareto Report
3 ch
example.png
Overall best
FPNGE (Java 23 FFM) at level 2
— 1.50 ms,
1383.4 KB
overall winner
per-encoder knee
pareto-optimal
dominated
FPNG Encoder (JNI)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
5.12 ±NaN
1444.6
70.9%
2
PARETO
1.47 ±NaN
2038.1
100.0%
3
dominated
1.90 ±NaN
2038.1
100.0%
4
KNEE
3.91 ±NaN
1511.0
74.1%
5
PARETO
4.49 ±NaN
1444.6
70.9%
FPNG Encoder (Java 23)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
5.03 ±NaN
1444.6
70.9%
2
dominated
1.63 ±NaN
2038.1
100.0%
3
PARETO
1.29 ±NaN
2038.1
100.0%
4
KNEE
3.11 ±NaN
1511.0
74.1%
5
PARETO
5.02 ±NaN
1444.6
70.9%
FPNGE (JNI)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
1.56 ±NaN
1516.6
100.0%
2
KNEE
1.60 ±NaN
1383.4
91.2%
3
PARETO
1.81 ±NaN
1377.4
90.8%
4
dominated
1.98 ±NaN
1378.3
90.9%
5
dominated
2.32 ±NaN
1378.0
90.9%
FPNGE (Java 23 FFM)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
1.48 ±NaN
1516.6
100.0%
2
WINNER
1.50 ±NaN
1383.4
91.2%
3
PARETO
1.72 ±NaN
1377.4
90.8%
4
dominated
1.89 ±NaN
1378.3
90.9%
5
dominated
2.23 ±NaN
1378.1
90.9%
ImageIO
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
52.96 ±NaN
1751.1
100.0%
2
dominated
52.93 ±NaN
1751.1
100.0%
3
PARETO
52.77 ±NaN
1751.1
100.0%
4
dominated
52.89 ±NaN
1751.1
100.0%
5
dominated
52.88 ±NaN
1751.1
100.0%
ObjectPlanet PNG
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
47.85 ±NaN
1750.3
100.0%
2
dominated
48.27 ±NaN
1750.3
100.0%
3
dominated
48.07 ±NaN
1750.3
100.0%
4
dominated
48.04 ±NaN
1750.3
100.0%
5
dominated
48.00 ±NaN
1750.3
100.0%
PNGEncoder
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
42.97 ±NaN
1995.5
100.0%
1
PARETO
18.71 ±NaN
1995.5
100.0%
2
dominated
55.34 ±NaN
1752.5
87.8%
2
KNEE
31.96 ±NaN
1752.5
87.8%
3
dominated
55.84 ±NaN
1751.3
87.8%
3
dominated
33.44 ±NaN
1751.3
87.8%
4
dominated
57.15 ±NaN
1751.1
87.8%
4
PARETO
33.43 ±NaN
1751.1
87.8%
5
dominated
58.38 ±NaN
1751.0
87.7%
5
PARETO
35.08 ±NaN
1751.0
87.7%
3 ch
looklet-look-scale6.png
Overall best
PNGEncoder at level 3
— 660.29 ms,
23386.5 KB
overall winner
per-encoder knee
pareto-optimal
dominated
FPNG Encoder (JNI)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
366.22 ±NaN
32160.1
37.3%
2
PARETO
185.85 ±NaN
86145.3
100.0%
3
dominated
192.52 ±NaN
86145.3
100.0%
4
KNEE
249.72 ±NaN
34974.3
40.6%
5
dominated
366.49 ±NaN
32160.1
37.3%
FPNG Encoder (Java 23)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
307.36 ±NaN
32160.1
37.3%
2
PARETO
132.26 ±NaN
86145.3
100.0%
3
dominated
137.87 ±NaN
86145.3
100.0%
4
KNEE
208.85 ±NaN
34974.3
40.6%
5
dominated
319.33 ±NaN
32160.1
37.3%
FPNGE (JNI)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
71.88 ±NaN
35755.4
100.0%
2
KNEE
73.54 ±NaN
34477.5
96.4%
3
PARETO
81.98 ±NaN
33046.1
92.4%
4
dominated
88.88 ±NaN
33193.3
92.8%
5
dominated
104.49 ±NaN
33115.0
92.6%
FPNGE (Java 23 FFM)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
55.13 ±NaN
35755.4
100.0%
2
KNEE
57.62 ±NaN
34477.5
96.4%
3
PARETO
67.14 ±NaN
33046.1
92.4%
4
dominated
72.97 ±NaN
33193.3
92.8%
5
dominated
88.68 ±NaN
33115.0
92.6%
ImageIO
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
1251.00 ±NaN
22729.3
100.0%
2
PARETO
1248.66 ±NaN
22729.3
100.0%
3
dominated
1257.68 ±NaN
22729.3
100.0%
4
dominated
1248.87 ±NaN
22729.3
100.0%
5
dominated
1251.10 ±NaN
22729.3
100.0%
ObjectPlanet PNG
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
2242.89 ±NaN
22058.8
100.0%
2
dominated
2240.25 ±NaN
22058.8
100.0%
3
PARETO
2239.18 ±NaN
22058.8
100.0%
4
dominated
2243.18 ±NaN
22058.8
100.0%
5
dominated
2239.81 ±NaN
22058.8
100.0%
PNGEncoder
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
1125.14 ±NaN
33877.9
100.0%
1
PARETO
301.55 ±NaN
33877.9
100.0%
2
dominated
1307.76 ±NaN
25338.1
74.8%
2
KNEE
503.65 ±NaN
25338.1
74.8%
3
dominated
1463.25 ±NaN
23386.5
69.0%
3
WINNER
660.29 ±NaN
23386.5
69.0%
4
dominated
1631.56 ±NaN
22729.3
67.1%
4
PARETO
829.79 ±NaN
22729.3
67.1%
5
dominated
1757.15 ±NaN
22595.9
66.7%
5
PARETO
954.26 ±NaN
22595.9
66.7%
4 ch
example.png
Overall best
FPNGE (Java 23 FFM) at level 2
— 1.81 ms,
1582.3 KB
overall winner
per-encoder knee
pareto-optimal
dominated
FPNG Encoder (JNI)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
6.83 ±NaN
1659.2
61.1%
2
PARETO
2.00 ±NaN
2717.1
100.0%
3
dominated
2.06 ±NaN
2717.1
100.0%
4
KNEE
5.24 ±NaN
1739.6
64.0%
5
PARETO
6.18 ±NaN
1659.2
61.1%
FPNG Encoder (Java 23)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
5.42 ±NaN
1659.2
61.1%
2
dominated
1.30 ±NaN
2717.1
100.0%
3
PARETO
1.30 ±NaN
2717.1
100.0%
4
KNEE
3.74 ±NaN
1739.6
64.0%
5
dominated
5.42 ±NaN
1659.2
61.1%
FPNGE (JNI)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
1.88 ±NaN
1716.4
100.0%
2
KNEE
1.96 ±NaN
1582.3
92.2%
3
PARETO
2.21 ±NaN
1575.0
91.8%
4
dominated
2.44 ±NaN
1575.5
91.8%
5
dominated
2.88 ±NaN
1577.2
91.9%
FPNGE (Java 23 FFM)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
1.78 ±NaN
1716.4
100.0%
2
WINNER
1.81 ±NaN
1582.3
92.2%
3
PARETO
2.08 ±NaN
1575.0
91.8%
4
dominated
2.30 ±NaN
1575.5
91.8%
5
dominated
2.73 ±NaN
1577.2
91.9%
ImageIO
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
67.26 ±NaN
1937.6
100.0%
2
dominated
65.94 ±NaN
1937.6
100.0%
3
dominated
68.02 ±NaN
1937.6
100.0%
4
PARETO
65.60 ±NaN
1937.6
100.0%
5
dominated
67.05 ±NaN
1937.6
100.0%
ObjectPlanet PNG
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
61.12 ±NaN
1936.1
100.0%
2
dominated
61.02 ±NaN
1936.1
100.0%
3
dominated
61.01 ±NaN
1936.1
100.0%
4
dominated
61.20 ±NaN
1936.1
100.0%
5
PARETO
60.94 ±NaN
1936.1
100.0%
PNGEncoder
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
49.23 ±NaN
2513.6
100.0%
1
PARETO
23.91 ±NaN
2513.6
100.0%
2
dominated
64.82 ±NaN
1950.7
77.6%
2
KNEE
40.12 ±NaN
1950.7
77.6%
3
dominated
68.02 ±NaN
1938.8
77.1%
3
PARETO
43.11 ±NaN
1938.8
77.1%
4
dominated
70.11 ±NaN
1937.6
77.1%
4
PARETO
43.73 ±NaN
1937.6
77.1%
5
dominated
73.69 ±NaN
1936.9
77.1%
5
PARETO
45.70 ±NaN
1936.9
77.1%
4 ch
looklet-look-scale6.png
Overall best
PNGEncoder at level 4
— 1007.28 ms,
24479.4 KB
overall winner
per-encoder knee
pareto-optimal
dominated
FPNG Encoder (JNI)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
480.80 ±NaN
36097.1
31.4%
2
dominated
316.12 ±NaN
114858.5
100.0%
3
PARETO
309.58 ±NaN
114858.5
100.0%
4
KNEE
330.41 ±NaN
40683.7
35.4%
5
dominated
487.52 ±NaN
36097.1
31.4%
FPNG Encoder (Java 23)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
411.25 ±NaN
36097.1
31.4%
2
PARETO
216.60 ±NaN
114858.5
100.0%
3
dominated
218.18 ±NaN
114858.5
100.0%
4
KNEE
262.26 ±NaN
40683.7
35.4%
5
dominated
430.38 ±NaN
36097.1
31.4%
FPNGE (JNI)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
92.13 ±NaN
39553.3
100.0%
2
KNEE
95.68 ±NaN
38040.0
96.2%
3
PARETO
107.71 ±NaN
37332.5
94.4%
4
PARETO
114.82 ±NaN
36753.7
92.9%
5
PARETO
133.18 ±NaN
36673.4
92.7%
FPNGE (Java 23 FFM)
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
PARETO
68.85 ±NaN
39553.3
100.0%
2
KNEE
72.57 ±NaN
38040.0
96.2%
3
PARETO
84.80 ±NaN
37332.5
94.4%
4
PARETO
93.99 ±NaN
36753.7
92.9%
5
PARETO
112.59 ±NaN
36673.4
92.7%
ImageIO
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
1532.69 ±NaN
24479.3
100.0%
2
dominated
1535.58 ±NaN
24479.3
100.0%
3
PARETO
1527.65 ±NaN
24479.3
100.0%
4
dominated
1530.45 ±NaN
24479.3
100.0%
5
dominated
1535.15 ±NaN
24479.3
100.0%
ObjectPlanet PNG
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
2674.53 ±NaN
23594.6
100.0%
2
PARETO
2665.44 ±NaN
23594.6
100.0%
3
dominated
2670.05 ±NaN
23594.6
100.0%
4
dominated
2673.30 ±NaN
23594.6
100.0%
5
dominated
2673.01 ±NaN
23594.6
100.0%
PNGEncoder
Lvl
Status
Time (ms)
Size (KB)
Ratio
1
dominated
1464.18 ±NaN
44351.3
100.0%
1
PARETO
434.31 ±NaN
44351.3
100.0%
2
dominated
1613.67 ±NaN
28362.7
64.0%
2
KNEE
622.86 ±NaN
28362.7
64.0%
3
dominated
1849.02 ±NaN
25759.2
58.1%
3
PARETO
820.13 ±NaN
25759.2
58.1%
4
dominated
2061.76 ±NaN
24479.4
55.2%
4
WINNER
1007.28 ±NaN
24479.4
55.2%
5
dominated
2224.81 ±NaN
24196.8
54.6%
5
PARETO
1145.37 ±NaN
24196.8
54.6%
Manticore Projects © 2026 ·
Pareto frontier marks non-dominated (encoder, level) combinations ·
knee = perpendicular-distance maximum on normalized axes