- support for new High Throughput JPEG 2000 (HTJ2K) standard
- fast random-access sub-image decoding using
TLM
andPLT
markers - full encode/decode support for
ICC
colour profiles - full encode/decode support for
XML
,IPTC
,XMP
andEXIF
meta-data - full encode/decode support for
monochrome
,sRGB
,palette
,YCC
,extended YCC
,CIELab
andCMYK
colour spaces - full encode/decode support for
JPEG
,PNG
,BMP
,TIFF
,RAW
,PNM
andPAM
image formats - full encode/decode support for 1-16 bit precision images
- supported platforms: Linux x86-64, Linux AArch64, Windows, macOS and WebAssembly
Below is a benchmark comparing time and memory performance for Grok 9.7.8 and Kakadu 8.05 on the following workflows:
- decompress large single-tiled image of Mars to TIF output
- decompress region
(1000,1000,5000,5000)
from large single-tiled image of Mars to TIF output - decompress large multi-tiled Pleiades image to TIF output.
- decompress large multi-tiled Pleiades image to PGM output.
- decompress 6 resolutions from
580000x825000
single-tiled image of Luxembourg - decompress 7 resolutions from
580000x825000
single-tiled image of Luxembourg - decompress 8 resolutions from
580000x825000
single-tiled image of Luxembourg - decompress region
(574200,816750,580000,825000)
from580000x825000
single-tiled image of Luxembourg
- test system : 24 core / 48 thread
AMD Threadripper
runningFedora 36
with5.17
Linux kernel andxfs
file system - codecs were configured to use all 48 threads
- file cache was cleared before each decompression using
$ sudo sysctl vm.drop_caches=3
- Grok was built in release mode using
GCC 10
Test | Grok | Kakadu |
---|---|---|
1 | 13.74 s / 16.6 GB | 9.02 s / 0.05 GB |
2 | 0.25 s / 0.4 GB | 0.12 s |
3 | 3.21 s / 3.65 GB | 4.94 s / 0.1 GB |
4 | 2.94 s / 4.0 GB | 3.90 s / 0.09 GB |
5 | 0.37 s / 0.7 GB | 2.72 s / 1.0 GB |
6 | 0.67 s / 1.0 GB | 3.02 s / 1.0 GB |
7 | 1.76 s / 1.8 GB | 3.72 s / 1.1 GB |
8 | 2.89 s / 6.0 GB | 7.39 s / 1.1 GB |