From 027c7997af8a3735e4b4706328c19e6805bc62b9 Mon Sep 17 00:00:00 2001 From: "Alex Xu (Hello71)" Date: Thu, 7 Oct 2021 14:07:35 -0400 Subject: [PATCH] Run RoundtripAnimationPatches only if gif enabled --- AUTHORS | 1 + lib/jxl/jxl_test.cc | 42 +++++++++++++++++++++--------------------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/AUTHORS b/AUTHORS index 03f8b40..d4aaef7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -28,3 +28,4 @@ Ziemowit Zabawa Andrius Lukas Narbutas Misaki Kasumi Samuel Leong +Alex Xu (Hello71) diff --git a/lib/jxl/jxl_test.cc b/lib/jxl/jxl_test.cc index d411492..0cb0988 100644 --- a/lib/jxl/jxl_test.cc +++ b/lib/jxl/jxl_test.cc @@ -1337,6 +1337,27 @@ TEST(JxlTest, RoundtripLosslessAnimation) { 5e-4); } +TEST(JxlTest, RoundtripAnimationPatches) { + ThreadPool* pool = nullptr; + const PaddedBytes orig = ReadTestData("jxl/animation_patches.gif"); + CodecInOut io; + ASSERT_TRUE(SetFromBytes(Span(orig), &io, pool)); + ASSERT_EQ(2u, io.frames.size()); + + CompressParams cparams; + cparams.patches = Override::kOn; + DecompressParams dparams; + CodecInOut io2; + // 40k with no patches, 27k with patch frames encoded multiple times. + EXPECT_LE(Roundtrip(&io, cparams, dparams, pool, &io2), 24000u); + + EXPECT_EQ(io2.frames.size(), io.frames.size()); + // >10 with broken patches + EXPECT_THAT(ButteraugliDistance(io, io2, cparams.ba_params, + /*distmap=*/nullptr, pool), + IsSlightlyBelow(1.5)); +} + #endif // JPEGXL_ENABLE_GIF #if JPEGXL_ENABLE_JPEG @@ -1630,26 +1651,5 @@ TEST(JxlTest, RoundtripProgressive) { IsSlightlyBelow(2.5f)); } -TEST(JxlTest, RoundtripAnimationPatches) { - ThreadPool* pool = nullptr; - const PaddedBytes orig = ReadTestData("jxl/animation_patches.gif"); - CodecInOut io; - ASSERT_TRUE(SetFromBytes(Span(orig), &io, pool)); - ASSERT_EQ(2u, io.frames.size()); - - CompressParams cparams; - cparams.patches = Override::kOn; - DecompressParams dparams; - CodecInOut io2; - // 40k with no patches, 27k with patch frames encoded multiple times. - EXPECT_LE(Roundtrip(&io, cparams, dparams, pool, &io2), 24000u); - - EXPECT_EQ(io2.frames.size(), io.frames.size()); - // >10 with broken patches - EXPECT_THAT(ButteraugliDistance(io, io2, cparams.ba_params, - /*distmap=*/nullptr, pool), - IsSlightlyBelow(1.5)); -} - } // namespace } // namespace jxl -- 2.33.0