1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 13:17:36 +00:00
serenity/Userland/Libraries/LibGfx/ImageFormats
Nico Weber 1fc56e56c3 LibGfx: Make webp lossless decoder 6 times as fast
Reduces the time to run

    Build/lagom/image ~/src/libwebp/webp_js/test_webp_wasm.webp -o tmp.png

from 0.5s to 0.25s.

Before, 60% of the time was spent decoding webp and 40% writing png.
Now, 16% of the time was spent decoding webp and 84% writing png.

That means png writing takes 0.2s, and webp decoding time went from
0.3s to 0.05s.

A template expression without explicit return type deduces its return
type as if for a function whose return type is declared auto. That
does deduce return-by-value, while `decltype(auto)` would deduce
return-by-reference.  Explictly saying `decltype(auto)` would work
too, but writing out the type is maybe easier to understand.

No behavior change other than being much faster.
2023-04-08 18:57:37 +02:00
..
BMPLoader.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
BMPLoader.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
BMPWriter.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
BMPWriter.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
DDSLoader.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
DDSLoader.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
GIFLoader.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
GIFLoader.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
ICOLoader.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
ICOLoader.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
ImageDecoder.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
ImageDecoder.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
JPEGLoader.cpp LibGfx/JPEG: Use a smaller type to store coefficients 2023-04-06 12:00:08 +01:00
JPEGLoader.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PBMLoader.cpp LibGfx/PortableFormat: Propagate errors from read_image_data() 2023-03-24 10:56:58 +01:00
PBMLoader.h LibGfx/PortableFormat: Propagate errors from read_image_data() 2023-03-24 10:56:58 +01:00
PGMLoader.cpp LibGfx/PortableFormat: Use static_cast instead of C-style casts 2023-03-24 10:56:58 +01:00
PGMLoader.h LibGfx/PortableFormat: Propagate errors from read_image_data() 2023-03-24 10:56:58 +01:00
PNGLoader.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PNGLoader.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PNGShared.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PNGWriter.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PNGWriter.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PortableFormatWriter.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PortableFormatWriter.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
PortableImageLoaderCommon.h LibGfx/PortableFormat: Propagate errors from decode() 2023-03-24 10:56:58 +01:00
PortableImageMapLoader.h LibGfx/PortableFormat: Propagate errors from decode() 2023-03-24 10:56:58 +01:00
PPMLoader.cpp LibGfx/PortableFormat: Use static_cast instead of C-style casts 2023-03-24 10:56:58 +01:00
PPMLoader.h LibGfx/PortableFormat: Propagate errors from read_image_data() 2023-03-24 10:56:58 +01:00
QOILoader.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
QOILoader.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
QOIWriter.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
QOIWriter.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
TGALoader.cpp LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
TGALoader.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
WebPLoader.cpp LibGfx: Make webp lossless decoder 6 times as fast 2023-04-08 18:57:37 +02:00
WebPLoader.h LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00