Previously the fastest Oodle encode level was "SuperFast" (level 1). The new "HyperFast" levels are below that (level -1 to -4). The HyperFast levels sacrifice some compression ratio to maximize encode speed.
An example of the performance of the new levels (on lzt99, x64, Core i7-3770) :
In the loglog plot, up = higher compression ratio, right = faster encode.
lzt99 : Kraken-z-3 : 1.711 to 1 : 416.89 MB/s
lzt99 : Kraken-z-2 : 1.877 to 1 : 333.28 MB/s
lzt99 : Kraken-z-1 : 2.103 to 1 : 280.09 MB/s
lzt99 : Kraken-z1 : 2.268 to 1 : 167.01 MB/s
lzt99 : Kraken-z2 : 2.320 to 1 : 120.39 MB/s
lzt99 : Kraken-z3 : 2.390 to 1 : 38.85 MB/s
lzt99 : Kraken-z4 : 2.434 to 1 : 24.98 MB/s
lzt99 : Mermaid-z-3 : 1.660 to 1 : 438.89 MB/s
lzt99 : Mermaid-z-2 : 1.793 to 1 : 353.82 MB/s
lzt99 : Mermaid-z-1 : 2.011 to 1 : 277.35 MB/s
lzt99 : Mermaid-z1 : 2.041 to 1 : 261.38 MB/s
lzt99 : Mermaid-z2 : 2.118 to 1 : 172.77 MB/s
lzt99 : Mermaid-z3 : 2.194 to 1 : 97.11 MB/s
lzt99 : Mermaid-z4 : 2.207 to 1 : 40.88 MB/s
lzt99 : Selkie-z-3 : 1.447 to 1 : 627.76 MB/s
lzt99 : Selkie-z-2 : 1.526 to 1 : 466.57 MB/s
lzt99 : Selkie-z-1 : 1.678 to 1 : 370.34 MB/s
lzt99 : Selkie-z1 : 1.698 to 1 : 340.68 MB/s
lzt99 : Selkie-z2 : 1.748 to 1 : 204.76 MB/s
lzt99 : Selkie-z3 : 1.833 to 1 : 107.29 MB/s
lzt99 : Selkie-z4 : 1.863 to 1 : 43.65 MB/s
A quick guide to the Oodle CompressionLevels :
-4 to -1 : HyperFast levels
when you want maximum encode speed
these sacrifice compression ratio for encode time
0 : no compression (memcpy pass through)
1 to 4 : SuperFast, VeryFast, Fast, Normal
these are the "normal" compression levels
encode times are ballpark comparable to zlib
5 to 8 : optimal levels
increasing compression ratio & encode time
levels above 6 can be slow to encode
these are useful for distribution, when you want the best possible bitstream
Note that the CompressionLevel is a dial for encode speed vs. compression ratio. It does not have a
consistent correlation to decode speed. That is, all of these compression levels get roughly the same
excellent decode speed.
Comparing to Oodle 2.6.0 on Silesia :
Oodle 2.6.0 :
Kraken 1 "SuperFast" : 3.12:1 , 147.2 enc MB/s , 920.9 dec MB/s
Kraken 2 "VeryFast" : 3.26:1 , 107.8 enc MB/s , 945.0 dec MB/s
Kraken 3 "Fast" : 3.50:1 , 47.1 enc MB/s , 1043.3 dec MB/s
Oodle 2.6.3 :
Kraken -2 "HyperFast2" : 2.92:1 , 300.4 enc MB/s , 1092.5 dec MB/s
Kraken -1 "HyperFast1" : 3.08:1 , 231.3 enc MB/s , 996.2 dec MB/s
Kraken 1 "SuperFast" : 3.29:1 , 164.6 enc MB/s , 885.0 dec MB/s
Kraken 2 "VeryFast" : 3.40:1 , 109.5 enc MB/s , 967.3 dec MB/s
Kraken 3 "Fast" : 3.61:1 , 45.8 enc MB/s , 987.5 dec MB/s
Note that in Oodle 2.6.3 the normal levels (1-3) have also improved (much higher compression ratios).
2 comments:
FYI, this post is impossible to read on mobile. Well, the graphs are impossible. The way your mobile page HTML is coded blocks the user from zooming the page. And the graphs don't enlarge when you tap on them, so there's just no way to see the results clearly.
Also FYI, and somewhat ironically, those graphs are overly fat PNG files that have not been optimized. They're much larger than they need to be. Just putting them through a gauntlet of lossless PNG compressors provides a 30% reduction in the Encoding Speed graph image size and more than 60% for the Compression Ratio graph image.
The "PNG gauntlet" that I use is File Optimizer (on Windows): https://nikkhokkho.sourceforge.io/static.php?page=FileOptimizer
It includes tools like OptiPNG, PNGOUT, zopfliPNG, pingo, AdvanceCOMP, ECT, Leanify, and more, and it runs all of them in a smart sequence based on the strategies they use to losslessly reduce the file size.
Post a Comment