|
|
|
@ -10,6 +10,7 @@ using SixLabors.ImageSharp.PixelFormats; |
|
|
|
using SixLabors.ImageSharp.Tests; |
|
|
|
|
|
|
|
using SDImage = System.Drawing.Image; |
|
|
|
// ReSharper disable InconsistentNaming
|
|
|
|
|
|
|
|
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg |
|
|
|
{ |
|
|
|
@ -17,21 +18,29 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg |
|
|
|
/// An expensive Jpeg benchmark, running on a wide range of input images, showing aggregate results.
|
|
|
|
/// </summary>
|
|
|
|
[Config(typeof(MultiImageBenchmarkBase.Config))] |
|
|
|
public class DecodeJpegMultiple : MultiImageBenchmarkBase |
|
|
|
public class DecodeJpeg_Aggregate : MultiImageBenchmarkBase |
|
|
|
{ |
|
|
|
protected override IEnumerable<string> InputImageSubfoldersOrFiles => TestImages.Jpeg.BenchmarkSuite; |
|
|
|
protected override IEnumerable<string> InputImageSubfoldersOrFiles => |
|
|
|
new[] |
|
|
|
{ |
|
|
|
TestImages.Jpeg.BenchmarkSuite.Jpeg400_SmallMonochrome, |
|
|
|
TestImages.Jpeg.BenchmarkSuite.Jpeg420Exif_MidSizeYCbCr, |
|
|
|
TestImages.Jpeg.BenchmarkSuite.Lake_Small444YCbCr, |
|
|
|
TestImages.Jpeg.BenchmarkSuite.MissingFF00ProgressiveBedroom159_MidSize420YCbCr, |
|
|
|
TestImages.Jpeg.BenchmarkSuite.ExifGetString750Transform_Huge420YCbCr, |
|
|
|
}; |
|
|
|
|
|
|
|
[Params(InputImageCategory.AllImages)] |
|
|
|
public override InputImageCategory InputCategory { get; set; } |
|
|
|
|
|
|
|
[Benchmark(Description = "DecodeJpegMultiple - ImageSharp")] |
|
|
|
public void DecodeJpegImageSharp() |
|
|
|
[Benchmark] |
|
|
|
public void ImageSharp() |
|
|
|
{ |
|
|
|
this.ForEachStream(ms => Image.Load<Rgba32>(ms, new JpegDecoder())); |
|
|
|
} |
|
|
|
|
|
|
|
[Benchmark(Baseline = true, Description = "DecodeJpegMultiple - System.Drawing")] |
|
|
|
public void DecodeJpegSystemDrawing() |
|
|
|
[Benchmark(Baseline = true)] |
|
|
|
public void SystemDrawing() |
|
|
|
{ |
|
|
|
this.ForEachStream(SDImage.FromStream); |
|
|
|
} |