Browse Source

Add benchmark file for average filter with 4bpp

pull/2028/head
Brian Popow 4 years ago
parent
commit
a921c57efc
  1. 20
      tests/ImageSharp.Benchmarks/Codecs/Png/DecodeFilteredPng.cs
  2. 6
      tests/ImageSharp.Tests/TestImages.cs
  3. 3
      tests/Images/Input/Png/AverageFilter4Bpp.png

20
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)

6
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
};

3
tests/Images/Input/Png/AverageFilter4Bpp.png

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7add6fba794bc76ccea2ee3a311b4050cf17f4f78b69a50785f7739b8b35919e
size 181108
Loading…
Cancel
Save