From a921c57efc84a24b8d81843f61895b850a869077 Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Wed, 23 Feb 2022 18:33:52 +0100 Subject: [PATCH] Add benchmark file for average filter with 4bpp --- .../Codecs/Png/DecodeFilteredPng.cs | 20 ++++++++++++------- tests/ImageSharp.Tests/TestImages.cs | 6 ++++-- tests/Images/Input/Png/AverageFilter4Bpp.png | 3 +++ 3 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 tests/Images/Input/Png/AverageFilter4Bpp.png diff --git a/tests/ImageSharp.Benchmarks/Codecs/Png/DecodeFilteredPng.cs b/tests/ImageSharp.Benchmarks/Codecs/Png/DecodeFilteredPng.cs index 6517bf3c48..373b563c82 100644 --- a/tests/ImageSharp.Benchmarks/Codecs/Png/DecodeFilteredPng.cs +++ b/tests/ImageSharp.Benchmarks/Codecs/Png/DecodeFilteredPng.cs @@ -16,7 +16,8 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs private byte[] filter1; private byte[] filter2; private byte[] filter3; - private byte[] filter4; + private byte[] averageFilter3bpp; + private byte[] averageFilter4bpp; [GlobalSetup] public void ReadImages() @@ -24,8 +25,9 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs this.filter0 = File.ReadAllBytes(TestImageFullPath(TestImages.Png.Filter0)); this.filter1 = File.ReadAllBytes(TestImageFullPath(TestImages.Png.Filter1)); this.filter2 = File.ReadAllBytes(TestImageFullPath(TestImages.Png.Filter2)); - this.filter3 = File.ReadAllBytes(TestImageFullPath(TestImages.Png.Filter3)); - this.filter4 = File.ReadAllBytes(TestImageFullPath(TestImages.Png.Filter4)); + this.filter3 = File.ReadAllBytes(TestImageFullPath(TestImages.Png.Filter4)); + this.averageFilter3bpp = File.ReadAllBytes(TestImageFullPath(TestImages.Png.AverageFilter3bpp)); + this.averageFilter4bpp = File.ReadAllBytes(TestImageFullPath(TestImages.Png.AverageFilter4bpp)); } [Benchmark(Baseline = true, Description = "None-filtered PNG file")] @@ -40,13 +42,17 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs public Size PngFilter2() => LoadPng(this.filter2); - [Benchmark(Description = "Average-filtered PNG file")] - public Size PngFilter3() - => LoadPng(this.filter3); + [Benchmark(Description = "Average-filtered PNG file (3bpp)")] + public Size PngAvgFilter1() + => LoadPng(this.averageFilter3bpp); + + [Benchmark(Description = "Average-filtered PNG file (4bpp)")] + public Size PngAvgFilter2() + => LoadPng(this.averageFilter4bpp); [Benchmark(Description = "Paeth-filtered PNG file")] public Size PngFilter4() - => LoadPng(this.filter4); + => LoadPng(this.filter3); [MethodImpl(MethodImplOptions.AggressiveInlining)] private static Size LoadPng(byte[] bytes) diff --git a/tests/ImageSharp.Tests/TestImages.cs b/tests/ImageSharp.Tests/TestImages.cs index 5bce99ce12..2f3bb49f61 100644 --- a/tests/ImageSharp.Tests/TestImages.cs +++ b/tests/ImageSharp.Tests/TestImages.cs @@ -68,9 +68,11 @@ namespace SixLabors.ImageSharp.Tests public const string Filter0 = "Png/filter0.png"; public const string Filter1 = "Png/filter1.png"; public const string Filter2 = "Png/filter2.png"; - public const string Filter3 = "Png/filter3.png"; + public const string AverageFilter3bpp = "Png/filter3.png"; public const string Filter4 = "Png/filter4.png"; + public const string AverageFilter4bpp = "Png/AverageFilter4Bpp.png"; + // Paletted images also from http://www.schaik.com/pngsuite/pngsuite_fil_png.html public const string PalettedTwoColor = "Png/basn3p01.png"; public const string PalettedFourColor = "Png/basn3p02.png"; @@ -159,7 +161,7 @@ namespace SixLabors.ImageSharp.Tests { P1, Pd, Blur, Splash, Cross, Powerpoint, SplashInterlaced, Interlaced, - Filter0, Filter1, Filter2, Filter3, Filter4, + Filter0, Filter1, Filter2, AverageFilter3bpp, Filter4, FilterVar, VimImage1, VimImage2, VersioningImage1, VersioningImage2, Ratio4x1, Ratio1x4 }; diff --git a/tests/Images/Input/Png/AverageFilter4Bpp.png b/tests/Images/Input/Png/AverageFilter4Bpp.png new file mode 100644 index 0000000000..728b6cfaff --- /dev/null +++ b/tests/Images/Input/Png/AverageFilter4Bpp.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7add6fba794bc76ccea2ee3a311b4050cf17f4f78b69a50785f7739b8b35919e +size 181108