diff --git a/src/ImageSharp/Common/Helpers/Buffer2DUtils.cs b/src/ImageSharp/Common/Helpers/Buffer2DUtils.cs
deleted file mode 100644
index 02a5afff7..000000000
--- a/src/ImageSharp/Common/Helpers/Buffer2DUtils.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright (c) Six Labors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using System.Numerics;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-using SixLabors.ImageSharp.Memory;
-using SixLabors.ImageSharp.PixelFormats;
-
-namespace SixLabors.ImageSharp
-{
- ///
- /// Extension methods for .
- /// TODO: One day rewrite all this to use SIMD intrinsics. There's a lot of scope for improvement.
- ///
- internal static class Buffer2DUtils
- {
- ///
- /// Computes the sum of vectors in weighted by the kernel weight values.
- ///
- /// The pixel format.
- /// The 1D convolution kernel.
- /// The source frame.
- /// The target row.
- /// The current row.
- /// The current column.
- /// The minimum working area row.
- /// The maximum working area row.
- /// The minimum working area column.
- /// The maximum working area column.
- public static void Convolve4(
- Span kernel,
- Buffer2D sourcePixels,
- Span targetRow,
- int row,
- int column,
- int minRow,
- int maxRow,
- int minColumn,
- int maxColumn)
- where TPixel : unmanaged, IPixel
- {
- ComplexVector4 vector = default;
- int kernelLength = kernel.Length;
- int radiusY = kernelLength >> 1;
- int sourceOffsetColumnBase = column + minColumn;
- ref Complex64 baseRef = ref MemoryMarshal.GetReference(kernel);
-
- for (int i = 0; i < kernelLength; i++)
- {
- int offsetY = Numerics.Clamp(row + i - radiusY, minRow, maxRow);
- int offsetX = Numerics.Clamp(sourceOffsetColumnBase, minColumn, maxColumn);
- Span sourceRowSpan = sourcePixels.GetRowSpan(offsetY);
- var currentColor = sourceRowSpan[offsetX].ToVector4();
-
- vector.Sum(Unsafe.Add(ref baseRef, i) * currentColor);
- }
-
- targetRow[column] = vector;
- }
-
- ///
- /// Computes the sum of vectors in weighted by the kernel weight values and accumulates the partial results.
- ///
- /// The 1D convolution kernel.
- /// The source frame.
- /// The target row.
- /// The current row.
- /// The current column.
- /// The minimum working area row.
- /// The maximum working area row.
- /// The minimum working area column.
- /// The maximum working area column.
- /// The weight factor for the real component of the complex pixel values.
- /// The weight factor for the imaginary component of the complex pixel values.
- public static void Convolve4AndAccumulatePartials(
- Span kernel,
- Buffer2D sourceValues,
- Span targetRow,
- int row,
- int column,
- int minRow,
- int maxRow,
- int minColumn,
- int maxColumn,
- float z,
- float w)
- {
- ComplexVector4 vector = default;
- int kernelLength = kernel.Length;
- int radiusX = kernelLength >> 1;
- int sourceOffsetColumnBase = column + minColumn;
-
- int offsetY = Numerics.Clamp(row, minRow, maxRow);
- ref ComplexVector4 sourceRef = ref MemoryMarshal.GetReference(sourceValues.GetRowSpan(offsetY));
- ref Complex64 baseRef = ref MemoryMarshal.GetReference(kernel);
-
- for (int x = 0; x < kernelLength; x++)
- {
- int offsetX = Numerics.Clamp(sourceOffsetColumnBase + x - radiusX, minColumn, maxColumn);
- vector.Sum(Unsafe.Add(ref baseRef, x) * Unsafe.Add(ref sourceRef, offsetX));
- }
-
- targetRow[column] += vector.WeightedSum(z, w);
- }
- }
-}