Defold: Update WebP to the latest 1.1.0 version

Created on 27 Jun 2020  路  4Comments  路  Source: defold/defold

Task (REQUIRED):
Currently, we use WebP 0.5.0 in the engine, would be nice to update it to the latest version. According to the changelog, there are many fixes related to speed (compression and decompression) and compression efficiency. Full changelog:
https://github.com/webmproject/libwebp/blob/master/ChangeLog

Some interesting points from the changelog:

067031ea Speedups for unused Huffman groups.
d61385db Speed-up: Make sure we only initialize histograms when needed.
f0abab92 Speedups for empty histograms.
a9ceda7f Speed-up chunk list operations.
b4cf5597 Merge "Upsampling SSE2/SSE4 speedup."
8c3f9a47 Speed-up LZ77.
b8821dbd Improve the box LZ77 speed.
5cfd4ebc LZ77 interval speedups. Faster, smaller, simpler.
71c53f1a NEON: speed-up strong filtering
a345068a ARM: speed up bitreader by avoiding tables
f79450ca Speedup ApplyMap.
30d43706 Speed-up Combined entropy for palettized histograms.
5f1caf29 Small LZ77 speedups.
a2fe9bf4 Speedup TrellisQuantizeBlock().
bfff0bf3 speed-up SSIM calculation
9e8e1b7b Inline GetResidual for speed.
7d58d1b7 Speed-up uniform-region processing.
a246b921 Speedup backward references.
0ba7fd70 Improve speed and compression in backward reference for lossless.
fdd29a3d speed-up MapToPalette() with binary search
2ec2de14 Merge "Speed-up BackwardReferencesHashChainDistanceOnly."
6e36b511 Small speedup in FTransform.
0d55f60c 40% faster ApplyAlphaMultiply_SSE2
48b1e85f SSE2: 15% faster alpha-processing functions
00b08c88 Merge "NEON: 5% faster conversion to RGB565 and RGBA4444"
b016cb91 NEON: faster fancy upsampling
9ae0b3f6 Merge "SSE2: slightly (~2%) faster Predictor #1"
ea664b89 SSE2: 10% faster Predictor #11
fe12330c 3-5% faster Predictor #5, #6, #7 and #10 for NEON
fbfb3bef ~2% faster predictor #10 for NEON
86a84b35 2x faster SSE2 implementation of SSIMGet
b3fb8bb6 slightly faster Predictor #11 in NEON

319e37be Improve lossless compression.
059aab4f Fix a compression regression for images with long uniform regions.
f2e1efbe Improve near lossless compression when a prediction filter is used. (This results in about 15% size decrease for the same quality.)
7d67a164 Lossy encoding: smoothen transparent areas to improve compression
75a9c3c4 Improve compression by better entropy analysis.
d9637758 Compute the hash chain once and for all for lossless compression.


Expected outcome (REQUIRED):
I think it will help to load collection with WebP textures faster.
I tested WebP decompression speed some time ago in this topic:
https://forum.defold.com/t/texture-management-in-defold/8921/10?u=agulev

engine pipeline task texture compression

Most helpful comment

wow! is it faster?

Basis Universal promises both higher compression ratio and speed, but we need to test for all platforms to know for sure.

All 4 comments

Webp is very slow in html build. We disable it, because it take much more time to load scene with webp then loading mb of assets :)

If update will increase load collection speed it will be awesome))

Our next big task, which we will start next week but primarily work on in January, is a move to Basis Universal for texture compression in Defold.

wow! is it faster?

wow! is it faster?

Basis Universal promises both higher compression ratio and speed, but we need to test for all platforms to know for sure.

Was this page helpful?
0 / 5 - 0 ratings