1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-18 08:50:59 +00:00
serenity/Tests/LibGfx/test-inputs
Nico Weber a2d8de180c WebP/Lossy: Add support for images with more than one partition
Each secondary partition has an independent BooleanDecoder.
Their bitstreams interleave per macroblock row, that is the first
macroblock row is read from the first decoder, the second from the
second, ..., until it wraps around again.

All partitions share a single prediction state though: The second
macroblock row (which reads coefficients off the second decoder) is
predicted using the result of decoding the frist macroblock row (which
reads coefficients off the first decoder).

So if I understand things right, in theory the coefficient reading could
be parallelized, but prediction can't be. (IDCT can also be
parallelized, but that's true with just a single partition too.)

I created the test image by running

    examples/cwebp -low_memory -partitions 3 -o foo.webp \
        ~/src/serenity/Tests/LibGfx/test-inputs/4.webp

using a cwebp hacked up as described in #19149. Since creating
multi-partition lossy webps requires hacking up `cwebp`, they're likely
very rare in practice. (But maybe other programs using the libwebp API
create them.)

Fixes #19149.

With this, webp lossy support is complete (*) :^)

And with that, webp support is complete: Lossless, lossy, lossy with
alpha, animated lossless, animated lossy, animated lossy with alpha all
work.

(*: Loop filtering isn't implemented yet, which has a minor visual
effect on the output. But it's only visible when carefully comparing
a webp decoded without loop filtering to the same decoded with it.
But it's technically a part of the spec that's still missing.

The upsampling of UV in the YUV->RGB code is also low-quality. This
produces somewhat visible banding in practice in some images (e.g.
in the fire breather's face in 5.webp), so we should probably improve
that at some point. Our JPG decoder has the same issue.)
2023-05-31 14:07:15 +02:00
..
4-with-8-partitions.webp WebP/Lossy: Add support for images with more than one partition 2023-05-31 14:07:15 +02:00
4.webp WebP/Lossy: Use correct test image for coefficient skipping 2023-05-30 18:56:03 +02:00
12-bit-progressive.jpg Tests: Add tests for 12 bits JPEGs 2023-05-09 07:00:15 +02:00
12-bit.jpg Tests: Add tests for 12 bits JPEGs 2023-05-09 07:00:15 +02:00
big_image.jpg Tests: Add benchmarks for JPEGLoader 2023-04-03 20:58:49 +01:00
buggie-bottom-left-compressed.tga LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
buggie-bottom-left-uncompressed.tga LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
buggie-raw.pbm LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
buggie-raw.pgm LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
buggie-raw.ppm LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
buggie-top-left-compressed.tga LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
buggie-top-left-uncompressed.tga LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
buggie.png LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
catdog-alert-2.webp Tests: Add webp lossless test with color index and < 16 colors 2023-04-08 19:24:13 +02:00
catdog-alert-3.webp Tests: Add webp lossless test with color index and < 16 colors 2023-04-08 19:24:13 +02:00
catdog-alert-8.webp Tests: Add webp lossless test with color index and < 16 colors 2023-04-08 19:24:13 +02:00
catdog-alert-13.webp Tests: Add webp lossless test with color index and < 16 colors 2023-04-08 19:24:13 +02:00
download-animation.gif LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
extended-lossless-animated.webp LibGfx: Implement WebPImageDecoderPlugin::loop_count() 2023-02-26 15:54:22 +01:00
extended-lossless.webp LibGfx+Tests: Add test for webp ICC loading and fix bug 2023-02-24 20:13:52 +01:00
extended-lossy-uncompressed-alpha.webp WebP/Lossy: Add test for lossy webp with uncompressed alpha 2023-05-30 06:14:56 +02:00
extended-lossy.webp LibGfx+Tests: Add test for webp ICC loading and fix bug 2023-02-24 20:13:52 +01:00
icc-v2.png Tests: Add a basic ICC profile test 2023-02-01 19:19:30 +01:00
icc-v4.jpg Tests: Add a basic ICC profile test 2023-02-01 19:19:30 +01:00
p3-v4.icc Tests: Add a test for Gfx::ICC::encode() 2023-02-19 08:12:04 +00:00
Qpalette.webp Tests: Add test for lossless webp file using a color indexing tranform 2023-04-08 16:50:40 +02:00
rgb24.jpg LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
rgb_components.jpg Tests: Add a test for JPEGs with RGB components 2023-03-10 22:22:36 +01:00
rgba32-1.bmp LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
serenity.ico LibGfx: Move TestImageDecoder over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
several_scans.jpg Tests: Replace test image with my own creation 2023-03-04 23:39:41 +00:00
several_scans_odd_number_mcu.jpg LibGfx/JPEG: More support for scans with a single component 2023-03-25 21:31:21 +01:00
simple-vp8.webp Tests: Add one more webp test file 2023-02-26 12:21:40 +01:00
simple-vp8l.webp Tests: Add one more webp test file 2023-02-26 12:21:40 +01:00
spectral_selection.jpg Tests: Add a test for SOF2 images with only spectral selection 2023-03-04 23:39:41 +00:00
successive_approximation.jpg Tests: Add a test for SOF2 JPEGs with successive approximations 2023-04-03 17:06:21 +01:00
TestFont.font LibGfx: Move TestFontHandling over to input file approach in 8cfabbcd93 2023-02-01 08:56:56 -05:00
width11-height11-colors2.webp LibGfx: Correctly decode webp lossless with small palette and odd width 2023-04-09 00:14:15 +02:00
width11-height11-colors3.webp LibGfx: Correctly decode webp lossless with small palette and odd width 2023-04-09 00:14:15 +02:00
width11-height11-colors15.webp LibGfx: Correctly decode webp lossless with small palette and odd width 2023-04-09 00:14:15 +02:00