From 5b216b38d27b768253109d5c14a59b9fadd24ab8 Mon Sep 17 00:00:00 2001 From: Erik White <26148654+Erik-White@users.noreply.github.com> Date: Sun, 17 May 2026 13:30:03 +0200 Subject: [PATCH 1/8] Build fixes and tidy up --- ImageSharp.Textures.sln | 18 +++++++++--------- src/Directory.Build.props | 3 +-- tests/Directory.Build.props | 2 +- tests/Directory.Build.targets | 4 ++-- .../ImageSharp.Textures.Tests.csproj | 1 - 5 files changed, 13 insertions(+), 15 deletions(-) diff --git a/ImageSharp.Textures.sln b/ImageSharp.Textures.sln index 636514f8..7568b07c 100644 --- a/ImageSharp.Textures.sln +++ b/ImageSharp.Textures.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29613.14 +# Visual Studio Version 18 +VisualStudioVersion = 18.5.11716.220 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageSharp.Textures", "src\ImageSharp.Textures\ImageSharp.Textures.csproj", "{1588F6C4-2186-4A35-9693-E9F296791393}" EndProject @@ -50,13 +50,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{ EndProjectSection EndProject Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{1588f6c4-2186-4a35-9693-e9f296791393}*SharedItemsImports = 5 - tests\Images\Images.projitems*{17fcbd4d-d232-45e8-876f-dfbc2fad52cf}*SharedItemsImports = 5 - tests\Images\Images.projitems*{18be79b6-6b95-4ed7-a963-ad75f6cb9f3c}*SharedItemsImports = 5 - tests\Images\Images.projitems*{68a8cc40-6aed-4e96-b524-31b1158fdeea}*SharedItemsImports = 13 - tests\Images\Images.projitems*{b159ffd1-e646-42d0-892c-4abf69103712}*SharedItemsImports = 5 - EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU @@ -94,4 +87,11 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {F1762A0D-74C4-454A-BCB7-C010BB067E58} EndGlobalSection + GlobalSection(SharedMSBuildProjectFiles) = preSolution + shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{1588f6c4-2186-4a35-9693-e9f296791393}*SharedItemsImports = 5 + tests\Images\Images.projitems*{17fcbd4d-d232-45e8-876f-dfbc2fad52cf}*SharedItemsImports = 5 + tests\Images\Images.projitems*{18be79b6-6b95-4ed7-a963-ad75f6cb9f3c}*SharedItemsImports = 5 + tests\Images\Images.projitems*{68a8cc40-6aed-4e96-b524-31b1158fdeea}*SharedItemsImports = 13 + tests\Images\Images.projitems*{b159ffd1-e646-42d0-892c-4abf69103712}*SharedItemsImports = 5 + EndGlobalSection EndGlobal diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 2813cc4b..aa98dc2e 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -11,7 +11,7 @@ --> - + @@ -22,7 +22,6 @@ - diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props index 775062ad..527225fe 100644 --- a/tests/Directory.Build.props +++ b/tests/Directory.Build.props @@ -11,7 +11,7 @@ --> - + diff --git a/tests/Directory.Build.targets b/tests/Directory.Build.targets index c88a39e7..8d0956c9 100644 --- a/tests/Directory.Build.targets +++ b/tests/Directory.Build.targets @@ -18,9 +18,9 @@ - + - + diff --git a/tests/ImageSharp.Textures.Tests/ImageSharp.Textures.Tests.csproj b/tests/ImageSharp.Textures.Tests/ImageSharp.Textures.Tests.csproj index ac9c7c4c..a7e6504d 100644 --- a/tests/ImageSharp.Textures.Tests/ImageSharp.Textures.Tests.csproj +++ b/tests/ImageSharp.Textures.Tests/ImageSharp.Textures.Tests.csproj @@ -3,7 +3,6 @@ net8.0 True - AnyCPU;x64;x86 SixLabors.ImageSharp.Textures.Tests SixLabors.ImageSharp.Textures.Tests true From e095e127266e4738db950186a562e3873d1d4b68 Mon Sep 17 00:00:00 2001 From: Erik White <26148654+Erik-White@users.noreply.github.com> Date: Sun, 17 May 2026 13:32:55 +0200 Subject: [PATCH 2/8] Fix race condition with file name collisions --- .../TextureProviders/TestTextureProvider.cs | 197 ++++++++++-------- 1 file changed, 105 insertions(+), 92 deletions(-) diff --git a/tests/ImageSharp.Textures.Tests/TestUtilities/TextureProviders/TestTextureProvider.cs b/tests/ImageSharp.Textures.Tests/TestUtilities/TextureProviders/TestTextureProvider.cs index 372164db..06faae91 100644 --- a/tests/ImageSharp.Textures.Tests/TestUtilities/TextureProviders/TestTextureProvider.cs +++ b/tests/ImageSharp.Textures.Tests/TestUtilities/TextureProviders/TestTextureProvider.cs @@ -1,129 +1,142 @@ // Copyright (c) Six Labors. // Licensed under the Six Labors Split License. -using System.IO; -using System.Text; using System.Globalization; +using System.Text; using SixLabors.ImageSharp.Textures.Formats; using SixLabors.ImageSharp.Textures.Tests.Enums; using SixLabors.ImageSharp.Textures.TextureFormats; -using Xunit; -namespace SixLabors.ImageSharp.Textures.Tests.TestUtilities.TextureProviders +namespace SixLabors.ImageSharp.Textures.Tests.TestUtilities.TextureProviders; + +public class TestTextureProvider : ITestTextureProvider { - public class TestTextureProvider : ITestTextureProvider - { - public string MethodName { get; } + public string MethodName { get; } - /// - public ImagingTestCaseUtility Utility { get; private set; } + /// + public ImagingTestCaseUtility Utility { get; private set; } - /// - public TestTextureFormat TextureFormat { get; } + /// + public TestTextureFormat TextureFormat { get; } - /// - public TestTextureType TextureType { get; } + /// + public TestTextureType TextureType { get; } - /// - public TestTextureTool TextureTool { get; } + /// + public TestTextureTool TextureTool { get; } - public string InputFile { get; } + public string InputFile { get; } - public bool IsRegex { get; } + public bool IsRegex { get; } - public virtual Texture GetTexture(ITextureDecoder decoder) - { - using FileStream fileStream = File.OpenRead(this.InputFile); + public virtual Texture GetTexture(ITextureDecoder decoder) + { + using FileStream fileStream = File.OpenRead(this.InputFile); - Texture result = decoder.DecodeTexture(Configuration.Default, fileStream); + Texture result = decoder.DecodeTexture(Configuration.Default, fileStream); - Assert.True(fileStream.Length == fileStream.Position, "The texture file stream was not read to the end"); + Assert.True(fileStream.Length == fileStream.Position, "The texture file stream was not read to the end"); - return result; - } + return result; + } - public TestTextureProvider( - string methodName, - TestTextureFormat textureFormat, - TestTextureType textureType, - TestTextureTool textureTool, - string inputFile, - bool isRegex) + public TestTextureProvider( + string methodName, + TestTextureFormat textureFormat, + TestTextureType textureType, + TestTextureTool textureTool, + string inputFile, + bool isRegex, + string testGroupName = "", + string outputSubfolderName = "") + { + this.MethodName = methodName; + this.TextureFormat = textureFormat; + this.TextureType = textureType; + this.TextureTool = textureTool; + this.InputFile = inputFile; + this.IsRegex = isRegex; + this.Utility = new ImagingTestCaseUtility { - this.MethodName = methodName; - this.TextureFormat = textureFormat; - this.TextureType = textureType; - this.TextureTool = textureTool; - this.InputFile = inputFile; - this.IsRegex = isRegex; - this.Utility = new ImagingTestCaseUtility - { - SourceFileOrDescription = inputFile, - TestName = methodName - }; - } + SourceFileOrDescription = inputFile, + }; + this.Utility.Init(testGroupName, methodName, outputSubfolderName); + } - private void SaveMipMaps(MipMap[] mipMaps, string name) + private void SaveMipMaps(MipMap[] mipMaps, string name) + { + // Include the input file's relative path under the format root in the output dir, not just its bare filename. + // Some test cases would otherwise collide on the same output path and either silently overwrite each other or race when run in parallel. + string formatRoot = Path.Combine(TestEnvironment.InputImagesDirectoryFullPath, this.TextureFormat.ToString()); + string relativeFromFormatRoot = Path.GetRelativePath(formatRoot, this.InputFile); + string inputSubpath = Path.Combine( + Path.GetDirectoryName(relativeFromFormatRoot) ?? string.Empty, + Path.GetFileNameWithoutExtension(relativeFromFormatRoot)); + + string path = Path.Combine( + TestEnvironment.ActualOutputDirectoryFullPath, + this.TextureFormat.ToString(), + this.TextureType.ToString(), + this.TextureTool.ToString(), + this.MethodName, + inputSubpath); + + Directory.CreateDirectory(path); + + for (int i = 0; i < mipMaps.Length; i++) { - string path = Path.Combine(TestEnvironment.ActualOutputDirectoryFullPath, this.TextureFormat.ToString(), this.TextureType.ToString(), this.TextureTool.ToString(), this.MethodName, Path.GetFileNameWithoutExtension(this.InputFile)); - - Directory.CreateDirectory(path); - - for (int i = 0; i < mipMaps.Length; i++) + string filename = string.Format(CultureInfo.InvariantCulture, "mipmap-{0}", i + 1); + if (!string.IsNullOrEmpty(name)) { - string filename = string.Format(CultureInfo.InvariantCulture, "mipmap-{0}", i + 1); - if (!string.IsNullOrEmpty(name)) - { - filename = string.Format(CultureInfo.InvariantCulture, "{0}-{1}", filename, name); - } - - using Image image = mipMaps[i].GetImage(); - image.Save(Path.Combine(path, string.Format(CultureInfo.InvariantCulture, "{0}.png", filename))); + filename = string.Format(CultureInfo.InvariantCulture, "{0}-{1}", filename, name); } + + using Image image = mipMaps[i].GetImage(); + image.Save(Path.Combine(path, string.Format(CultureInfo.InvariantCulture, "{0}.png", filename))); } + } - public void SaveTextures(Texture texture) + public void SaveTextures(Texture texture) + { + if (TestEnvironment.RunsOnCI) { - if (TestEnvironment.RunsOnCI) - { - return; - } + return; + } - if (texture is CubemapTexture cubemapTexture) - { - this.SaveMipMaps(cubemapTexture.PositiveX.MipMaps.ToArray(), "positive-x"); - this.SaveMipMaps(cubemapTexture.NegativeX.MipMaps.ToArray(), "negative-x"); - this.SaveMipMaps(cubemapTexture.PositiveY.MipMaps.ToArray(), "positive-y"); - this.SaveMipMaps(cubemapTexture.NegativeY.MipMaps.ToArray(), "negative-y"); - this.SaveMipMaps(cubemapTexture.PositiveZ.MipMaps.ToArray(), "positive-z"); - this.SaveMipMaps(cubemapTexture.NegativeZ.MipMaps.ToArray(), "negative-z"); - } + if (texture is CubemapTexture cubemapTexture) + { + this.SaveMipMaps(cubemapTexture.PositiveX.MipMaps.ToArray(), "positive-x"); + this.SaveMipMaps(cubemapTexture.NegativeX.MipMaps.ToArray(), "negative-x"); + this.SaveMipMaps(cubemapTexture.PositiveY.MipMaps.ToArray(), "positive-y"); + this.SaveMipMaps(cubemapTexture.NegativeY.MipMaps.ToArray(), "negative-y"); + this.SaveMipMaps(cubemapTexture.PositiveZ.MipMaps.ToArray(), "positive-z"); + this.SaveMipMaps(cubemapTexture.NegativeZ.MipMaps.ToArray(), "negative-z"); + } - if (texture is FlatTexture flatTexture) - { - this.SaveMipMaps(flatTexture.MipMaps.ToArray(), null); - } + if (texture is FlatTexture flatTexture) + { + this.SaveMipMaps(flatTexture.MipMaps.ToArray(), null); + } - if (texture is VolumeTexture volumeTexture) + if (texture is VolumeTexture volumeTexture) + { + for (int i = 0; i < volumeTexture.Slices.Count; i++) { - for (int i = 0; i < volumeTexture.Slices.Count; i++) - { - this.SaveMipMaps(volumeTexture.Slices[i].MipMaps.ToArray(), string.Format(CultureInfo.InvariantCulture, "slice{0}", i + 1)); - } + this.SaveMipMaps(volumeTexture.Slices[i].MipMaps.ToArray(), string.Format(CultureInfo.InvariantCulture, "slice{0}", i + 1)); } } + } - public override string ToString() - { - var stringBuilder = new StringBuilder(); - stringBuilder.AppendLine(); - stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Method Name: {0}", this.MethodName)); - stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Texture Format: {0}", this.TextureFormat)); - stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Texture Type: {0}", this.TextureType)); - stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Texture Tool: {0}", this.TextureTool)); - stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Input File: {0}", this.InputFile)); - stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Is Regex: {0}", this.IsRegex)); - return stringBuilder.ToString(); - } + public override string ToString() + { + var stringBuilder = new StringBuilder(); + stringBuilder.AppendLine(); + stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Method Name: {0}", this.MethodName)); + stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Texture Format: {0}", this.TextureFormat)); + stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Texture Type: {0}", this.TextureType)); + stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Texture Tool: {0}", this.TextureTool)); + stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Input File: {0}", this.InputFile)); + stringBuilder.AppendLine(string.Format(CultureInfo.InvariantCulture, "Is Regex: {0}", this.IsRegex)); + return stringBuilder.ToString(); } } From 7441ddf52e6a166d5fb3959ef5cc5ed97a0e0420 Mon Sep 17 00:00:00 2001 From: Erik White <26148654+Erik-White@users.noreply.github.com> Date: Sun, 17 May 2026 13:35:32 +0200 Subject: [PATCH 3/8] Convenience method for comparing cubemap faces --- .../TestUtilities/TestImageExtensions.cs | 451 ++++++++++-------- 1 file changed, 246 insertions(+), 205 deletions(-) diff --git a/tests/ImageSharp.Textures.Tests/TestUtilities/TestImageExtensions.cs b/tests/ImageSharp.Textures.Tests/TestUtilities/TestImageExtensions.cs index 5218853d..1b072ff5 100644 --- a/tests/ImageSharp.Textures.Tests/TestUtilities/TestImageExtensions.cs +++ b/tests/ImageSharp.Textures.Tests/TestUtilities/TestImageExtensions.cs @@ -1,229 +1,270 @@ // Copyright (c) Six Labors. // Licensed under the Six Labors Split License. -using System; -using System.IO; using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Textures.Tests.TestUtilities.ImageComparison; using SixLabors.ImageSharp.Textures.Tests.TestUtilities.TextureProviders; +using SixLabors.ImageSharp.Textures.TextureFormats; -namespace SixLabors.ImageSharp.Textures.Tests.TestUtilities +namespace SixLabors.ImageSharp.Textures.Tests.TestUtilities; + +public static class TestImageExtensions { - public static class TestImageExtensions + public static void DebugSave( + this Image image, + ITestTextureProvider provider, + FormattableString testOutputDetails, + string extension = "png", + bool appendPixelTypeToFileName = false, + bool appendSourceFileOrDescription = false, + IImageEncoder encoder = null) => image.DebugSave( + provider, + (object)testOutputDetails, + extension, + appendPixelTypeToFileName, + appendSourceFileOrDescription, + encoder); + + /// + /// Saves the image only when not running in the CI server. + /// + /// The image. + /// The image provider. + /// Details to be concatenated to the test output file, describing the parameters of the test. + /// The extension. + /// A boolean indicating whether to append the pixel type to the output file name. + /// A boolean indicating whether to append SourceFileOrDescription to the test output file name. + /// Custom encoder to use. + /// The input image. + public static Image DebugSave( + this Image image, + ITestTextureProvider provider, + object testOutputDetails = null, + string extension = "png", + bool appendPixelTypeToFileName = false, + bool appendSourceFileOrDescription = false, + IImageEncoder encoder = null) { - public static void DebugSave( - this Image image, - ITestTextureProvider provider, - FormattableString testOutputDetails, - string extension = "png", - bool appendPixelTypeToFileName = false, - bool appendSourceFileOrDescription = false, - IImageEncoder encoder = null) => image.DebugSave( - provider, - (object)testOutputDetails, - extension, - appendPixelTypeToFileName, - appendSourceFileOrDescription, - encoder); - - /// - /// Saves the image only when not running in the CI server. - /// - /// The image. - /// The image provider. - /// Details to be concatenated to the test output file, describing the parameters of the test. - /// The extension. - /// A boolean indicating whether to append the pixel type to the output file name. - /// A boolean indicating whether to append SourceFileOrDescription to the test output file name. - /// Custom encoder to use. - /// The input image. - public static Image DebugSave( - this Image image, - ITestTextureProvider provider, - object testOutputDetails = null, - string extension = "png", - bool appendPixelTypeToFileName = false, - bool appendSourceFileOrDescription = false, - IImageEncoder encoder = null) + if (TestEnvironment.RunsOnCI) { - if (TestEnvironment.RunsOnCI) - { - return image; - } - - // We are running locally then we want to save it out - provider.Utility.SaveTestOutputFile( - image, - extension, - testOutputDetails: testOutputDetails, - appendPixelTypeToFileName: appendPixelTypeToFileName, - appendSourceFileOrDescription: appendSourceFileOrDescription, - encoder: encoder); return image; } - public static void DebugSave( - this Image image, - ITestTextureProvider provider, - IImageEncoder encoder, - FormattableString testOutputDetails, - bool appendPixelTypeToFileName = false) => image.DebugSave(provider, encoder, (object)testOutputDetails, appendPixelTypeToFileName); - - /// - /// Saves the image only when not running in the CI server. - /// - /// The image - /// The image provider - /// The image encoder - /// Details to be concatenated to the test output file, describing the parameters of the test. - /// A boolean indicating whether to append the pixel type to the output file name. - public static void DebugSave( - this Image image, - ITestTextureProvider provider, - IImageEncoder encoder, - object testOutputDetails = null, - bool appendPixelTypeToFileName = false) + // We are running locally then we want to save it out + provider.Utility.SaveTestOutputFile( + image, + extension, + testOutputDetails: testOutputDetails, + appendPixelTypeToFileName: appendPixelTypeToFileName, + appendSourceFileOrDescription: appendSourceFileOrDescription, + encoder: encoder); + return image; + } + + public static void DebugSave( + this Image image, + ITestTextureProvider provider, + IImageEncoder encoder, + FormattableString testOutputDetails, + bool appendPixelTypeToFileName = false) => image.DebugSave(provider, encoder, (object)testOutputDetails, appendPixelTypeToFileName); + + /// + /// Saves the image only when not running in the CI server. + /// + /// The image + /// The image provider + /// The image encoder + /// Details to be concatenated to the test output file, describing the parameters of the test. + /// A boolean indicating whether to append the pixel type to the output file name. + public static void DebugSave( + this Image image, + ITestTextureProvider provider, + IImageEncoder encoder, + object testOutputDetails = null, + bool appendPixelTypeToFileName = false) + { + if (TestEnvironment.RunsOnCI) { - if (TestEnvironment.RunsOnCI) - { - return; - } - - // We are running locally then we want to save it out - provider.Utility.SaveTestOutputFile( - image, - encoder: encoder, - testOutputDetails: testOutputDetails, - appendPixelTypeToFileName: appendPixelTypeToFileName); + return; } - public static Image CompareToReferenceOutput( - this Image image, - ITestTextureProvider provider, - FormattableString testOutputDetails, - string extension = "png", - bool appendPixelTypeToFileName = false, - bool appendSourceFileOrDescription = false) - where TPixel : unmanaged, IPixel => image.CompareToReferenceOutput( - provider, - (object)testOutputDetails, - extension, - appendPixelTypeToFileName, - appendSourceFileOrDescription); - - /// - /// Compares the image against the expected Reference output, throws an exception if the images are not similar enough. - /// The output file should be named identically to the output produced by . - /// - /// The pixel format. - /// The image which should be compared to the reference image. - /// The image provider. - /// Details to be concatenated to the test output file, describing the parameters of the test. - /// The extension - /// A boolean indicating whether to append the pixel type to the output file name. - /// A boolean indicating whether to append to the test output file name. - /// The image. - public static Image CompareToReferenceOutput( - this Image image, - ITestTextureProvider provider, - object testOutputDetails = null, - string extension = "png", - bool appendPixelTypeToFileName = false, - bool appendSourceFileOrDescription = false) - where TPixel : unmanaged, IPixel => CompareToReferenceOutput( - image, - ImageComparer.Tolerant(), - provider, - testOutputDetails, - extension, - appendPixelTypeToFileName, - appendSourceFileOrDescription); - - public static Image CompareToReferenceOutput( - this Image image, - ImageComparer comparer, - ITestTextureProvider provider, - FormattableString testOutputDetails, - string extension = "png", - bool appendPixelTypeToFileName = false) - where TPixel : unmanaged, IPixel => image.CompareToReferenceOutput( - comparer, - provider, - (object)testOutputDetails, - extension, - appendPixelTypeToFileName); - - /// - /// Compares the image against the expected Reference output, throws an exception if the images are not similar enough. - /// The output file should be named identically to the output produced by . - /// - /// The pixel format. - /// The image which should be compared to the reference output. - /// The to use. - /// The image provider. - /// Details to be concatenated to the test output file, describing the parameters of the test. - /// The extension - /// A boolean indicating whether to append the pixel type to the output file name. - /// A boolean indicating whether to append SourceFileOrDescription to the test output file name. - /// A custom decoder. - /// The image. - public static Image CompareToReferenceOutput( - this Image image, - ImageComparer comparer, - ITestTextureProvider provider, - object testOutputDetails = null, - string extension = "png", - bool appendPixelTypeToFileName = false, - bool appendSourceFileOrDescription = false, - IImageDecoder decoder = null) - where TPixel : unmanaged, IPixel - { - using (Image referenceImage = GetReferenceOutputImage( - provider, - testOutputDetails, - extension, - appendPixelTypeToFileName, - appendSourceFileOrDescription, - decoder)) - { - comparer.VerifySimilarity(referenceImage, image); - } + // We are running locally then we want to save it out + provider.Utility.SaveTestOutputFile( + image, + encoder: encoder, + testOutputDetails: testOutputDetails, + appendPixelTypeToFileName: appendPixelTypeToFileName); + } - return image; + public static Image CompareToReferenceOutput( + this Image image, + ITestTextureProvider provider, + FormattableString testOutputDetails, + string extension = "png", + bool appendPixelTypeToFileName = false, + bool appendSourceFileOrDescription = false) + where TPixel : unmanaged, IPixel => image.CompareToReferenceOutput( + provider, + (object)testOutputDetails, + extension, + appendPixelTypeToFileName, + appendSourceFileOrDescription); + + /// + /// Compares the image against the expected Reference output, throws an exception if the images are not similar enough. + /// The output file should be named identically to the output produced by . + /// + /// The pixel format. + /// The image which should be compared to the reference image. + /// The image provider. + /// Details to be concatenated to the test output file, describing the parameters of the test. + /// The extension + /// A boolean indicating whether to append the pixel type to the output file name. + /// A boolean indicating whether to append to the test output file name. + /// The image. + public static Image CompareToReferenceOutput( + this Image image, + ITestTextureProvider provider, + object testOutputDetails = null, + string extension = "png", + bool appendPixelTypeToFileName = false, + bool appendSourceFileOrDescription = false) + where TPixel : unmanaged, IPixel => CompareToReferenceOutput( + image, + ImageComparer.Tolerant(), + provider, + testOutputDetails, + extension, + appendPixelTypeToFileName, + appendSourceFileOrDescription); + + public static Image CompareToReferenceOutput( + this Image image, + ImageComparer comparer, + ITestTextureProvider provider, + FormattableString testOutputDetails, + string extension = "png", + bool appendPixelTypeToFileName = false) + where TPixel : unmanaged, IPixel => image.CompareToReferenceOutput( + comparer, + provider, + (object)testOutputDetails, + extension, + appendPixelTypeToFileName); + + /// + /// Compares the image against the expected Reference output, throws an exception if the images are not similar enough. + /// The output file should be named identically to the output produced by . + /// + /// The pixel format. + /// The image which should be compared to the reference output. + /// The to use. + /// The image provider. + /// Details to be concatenated to the test output file, describing the parameters of the test. + /// The extension + /// A boolean indicating whether to append the pixel type to the output file name. + /// A boolean indicating whether to append SourceFileOrDescription to the test output file name. + /// A custom decoder. + /// The image. + public static Image CompareToReferenceOutput( + this Image image, + ImageComparer comparer, + ITestTextureProvider provider, + object testOutputDetails = null, + string extension = "png", + bool appendPixelTypeToFileName = false, + bool appendSourceFileOrDescription = false, + IImageDecoder decoder = null) + where TPixel : unmanaged, IPixel + { + using (Image referenceImage = GetReferenceOutputImage( + provider, + testOutputDetails, + extension, + appendPixelTypeToFileName, + appendSourceFileOrDescription, + decoder)) + { + comparer.VerifySimilarity(referenceImage, image); } - public static Image GetReferenceOutputImage( - this ITestTextureProvider provider, - object testOutputDetails = null, - string extension = "png", - bool appendPixelTypeToFileName = false, - bool appendSourceFileOrDescription = false, - IImageDecoder decoder = null) - where TPixel : unmanaged, IPixel + return image; + } + + /// + /// Compares all six faces of the cubemap's first mipmap against their individual reference images. + /// Reference files must be named "{testName}_{facePrefix}posX{faceSuffix}.png" etc., + /// matching the saved debug output. + /// + /// The pixel format. + /// The decoded cubemap. + /// The comparer to use for every face. + /// The test texture provider. + /// + /// Optional suffix appended after the face name in the reference filename. Useful for + /// parameterized cubemap tests that share a single test name across multiple inputs + /// (e.g. a block-size suffix). + /// + public static void CompareFacesToReferenceOutput( + this CubemapTexture cubemap, + ImageComparer comparer, + ITestTextureProvider provider, + string faceSuffix = null) + where TPixel : unmanaged, IPixel + { + CompareFace(cubemap.PositiveX, BuildDetails("posX", faceSuffix), comparer, provider); + CompareFace(cubemap.NegativeX, BuildDetails("negX", faceSuffix), comparer, provider); + CompareFace(cubemap.PositiveY, BuildDetails("posY", faceSuffix), comparer, provider); + CompareFace(cubemap.NegativeY, BuildDetails("negY", faceSuffix), comparer, provider); + CompareFace(cubemap.PositiveZ, BuildDetails("posZ", faceSuffix), comparer, provider); + CompareFace(cubemap.NegativeZ, BuildDetails("negZ", faceSuffix), comparer, provider); + } + + private static string BuildDetails(string faceName, string suffix) + => string.IsNullOrEmpty(suffix) ? faceName : $"{faceName}_{suffix}"; + + private static void CompareFace( + FlatTexture face, + string details, + ImageComparer comparer, + ITestTextureProvider provider) + where TPixel : unmanaged, IPixel + { + using Image faceImage = face.MipMaps[0].GetImage(); + (faceImage as Image).CompareToReferenceOutput(comparer, provider, testOutputDetails: details); + } + + public static Image GetReferenceOutputImage( + this ITestTextureProvider provider, + object testOutputDetails = null, + string extension = "png", + bool appendPixelTypeToFileName = false, + bool appendSourceFileOrDescription = false, + IImageDecoder decoder = null) + where TPixel : unmanaged, IPixel + { + string referenceOutputFile = provider.Utility.GetReferenceOutputFileName( + extension, + testOutputDetails, + appendPixelTypeToFileName, + appendSourceFileOrDescription); + + if (!File.Exists(referenceOutputFile)) { - string referenceOutputFile = provider.Utility.GetReferenceOutputFileName( - extension, - testOutputDetails, - appendPixelTypeToFileName, - appendSourceFileOrDescription); - - if (!File.Exists(referenceOutputFile)) - { - throw new FileNotFoundException($"Reference output file {referenceOutputFile} is missing", referenceOutputFile); - } - - IImageFormat format = TestEnvironment.GetImageFormat(referenceOutputFile); - decoder ??= TestEnvironment.GetReferenceDecoder(referenceOutputFile); - - ImageSharp.Configuration configuration = ImageSharp.Configuration.Default.Clone(); - configuration.ImageFormatsManager.SetDecoder(format, decoder); - DecoderOptions options = new() - { - Configuration = configuration - }; - - return Image.Load(options, referenceOutputFile); + throw new FileNotFoundException($"Reference output file {referenceOutputFile} is missing", referenceOutputFile); } + + IImageFormat format = TestEnvironment.GetImageFormat(referenceOutputFile); + decoder ??= TestEnvironment.GetReferenceDecoder(referenceOutputFile); + + ImageSharp.Configuration configuration = ImageSharp.Configuration.Default.Clone(); + configuration.ImageFormatsManager.SetDecoder(format, decoder); + DecoderOptions options = new() + { + Configuration = configuration + }; + + return Image.Load(options, referenceOutputFile); } } From 07793ba2b8d7dc66da3d470612d8c21f8cf0ca07 Mon Sep 17 00:00:00 2001 From: Erik White <26148654+Erik-White@users.noreply.github.com> Date: Sun, 17 May 2026 13:35:56 +0200 Subject: [PATCH 4/8] Support test data subdirectories --- .../Attributes/WithFileAttribute.cs | 88 +++++++++++-------- 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/tests/ImageSharp.Textures.Tests/TestUtilities/Attributes/WithFileAttribute.cs b/tests/ImageSharp.Textures.Tests/TestUtilities/Attributes/WithFileAttribute.cs index b8eed784..8fd3c6cb 100644 --- a/tests/ImageSharp.Textures.Tests/TestUtilities/Attributes/WithFileAttribute.cs +++ b/tests/ImageSharp.Textures.Tests/TestUtilities/Attributes/WithFileAttribute.cs @@ -1,57 +1,69 @@ // Copyright (c) Six Labors. // Licensed under the Six Labors Split License. -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; using System.Reflection; -using System.Text.RegularExpressions; using SixLabors.ImageSharp.Textures.Tests.Enums; using SixLabors.ImageSharp.Textures.Tests.TestUtilities.TextureProviders; using Xunit.Sdk; -namespace SixLabors.ImageSharp.Textures.Tests.TestUtilities.Attributes +namespace SixLabors.ImageSharp.Textures.Tests.TestUtilities.Attributes; + +public class WithFileAttribute : DataAttribute { - public class WithFileAttribute : DataAttribute + private readonly TestTextureFormat textureFormat; + private readonly TestTextureType textureType; + private readonly TestTextureTool textureTool; + private readonly string inputFile; + + public WithFileAttribute(TestTextureFormat textureFormat, TestTextureType textureType, TestTextureTool textureTool, string inputFile) { - private readonly TestTextureFormat textureFormat; - private readonly TestTextureType textureType; - private readonly TestTextureTool textureTool; - private readonly string inputFile; - private readonly bool isRegex; + this.textureFormat = textureFormat; + this.textureType = textureType; + this.textureTool = textureTool; + this.inputFile = inputFile; + } - public WithFileAttribute(TestTextureFormat textureFormat, TestTextureType textureType, TestTextureTool textureTool, string inputFile, bool isRegex = false) - { - this.textureFormat = textureFormat; - this.textureType = textureType; - this.textureTool = textureTool; - this.inputFile = inputFile; - this.isRegex = isRegex; - } + public override IEnumerable GetData(MethodInfo testMethod) + { + ArgumentNullException.ThrowIfNull(testMethod); + + string outputSubfolderName = testMethod.DeclaringType?.GetCustomAttribute()?.Subfolder ?? string.Empty; + string testGroupName = testMethod.DeclaringType?.Name ?? string.Empty; - public override IEnumerable GetData(MethodInfo testMethod) + string[] featureLevels = this.textureTool == TestTextureTool.TexConv ? new[] { "9.1", "9.2", "9.3", "10.0", "10.1", "11.0", "11.1", "12.0", "12.1" } : new[] { string.Empty }; + + foreach (string featureLevel in featureLevels) { - ArgumentNullException.ThrowIfNull(testMethod); + string basePath = Path.Combine(TestEnvironment.InputImagesDirectoryFullPath, this.textureFormat.ToString()); + + if (!string.IsNullOrEmpty(featureLevel)) + { + basePath = Path.Combine(basePath, featureLevel); + } + + if (!Directory.Exists(basePath)) + { + continue; + } + + // First try direct path construction (handles subdirectory paths like "Flat/Astc/file.ktx2"). + string file = Path.Combine(basePath, this.inputFile); + if (File.Exists(file)) + { + TestTextureProvider testTextureProvider = new(testMethod.Name, this.textureFormat, this.textureType, this.textureTool, file, false, testGroupName, outputSubfolderName); + yield return new object[] { testTextureProvider }; + continue; + } - string[] featureLevels = this.textureTool == TestTextureTool.TexConv ? new[] { "9.1", "9.2", "9.3", "10.0", "10.1", "11.0", "11.1", "12.0", "12.1" } : new[] { string.Empty }; + // Fall back to case-insensitive filename matching to handle + // cross-platform casing differences (e.g. ".DDS" vs ".dds"). + string match = Directory.GetFiles(basePath) + .FirstOrDefault(f => Path.GetFileName(f).Equals(this.inputFile, StringComparison.OrdinalIgnoreCase)); - foreach (string featureLevel in featureLevels) + if (match is not null) { - string path = Path.Combine(TestEnvironment.InputImagesDirectoryFullPath, this.textureFormat.ToString()); - - if (!string.IsNullOrEmpty(featureLevel)) - { - path = Path.Combine(path, featureLevel); - } - - string[] files = Directory.GetFiles(path); - string[] filteredFiles = files.Where(f => this.isRegex ? new Regex(this.inputFile).IsMatch(Path.GetFileName(f)) : Path.GetFileName(f).Equals(this.inputFile, StringComparison.OrdinalIgnoreCase)).ToArray(); - foreach (string file in filteredFiles) - { - var testTextureProvider = new TestTextureProvider(testMethod.Name, this.textureFormat, this.textureType, this.textureTool, file, false); - yield return new object[] { testTextureProvider }; - } + TestTextureProvider testTextureProvider = new(testMethod.Name, this.textureFormat, this.textureType, this.textureTool, match, false, testGroupName, outputSubfolderName); + yield return new object[] { testTextureProvider }; } } } From d2f9574b7a2c779773446fb3050ad3abc1843a50 Mon Sep 17 00:00:00 2001 From: Erik White <26148654+Erik-White@users.noreply.github.com> Date: Sun, 17 May 2026 13:53:09 +0200 Subject: [PATCH 5/8] Make sure to correctly dispose images in test --- .../Formats/Ktx2/Ktx2DecoderFlatTests.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/ImageSharp.Textures.Tests/Formats/Ktx2/Ktx2DecoderFlatTests.cs b/tests/ImageSharp.Textures.Tests/Formats/Ktx2/Ktx2DecoderFlatTests.cs index 05952bb2..32f42e04 100644 --- a/tests/ImageSharp.Textures.Tests/Formats/Ktx2/Ktx2DecoderFlatTests.cs +++ b/tests/ImageSharp.Textures.Tests/Formats/Ktx2/Ktx2DecoderFlatTests.cs @@ -26,7 +26,8 @@ public void Ktx2Decoder_LevelCountZero_DecodesBaseLevelMipMap(TestTextureProvide FlatTexture flatTexture = texture as FlatTexture; Assert.NotNull(flatTexture); Assert.Single(flatTexture.MipMaps); - Assert.Equal(256, flatTexture.MipMaps[0].GetImage().Width); - Assert.Equal(256, flatTexture.MipMaps[0].GetImage().Height); + using Image mipImage = flatTexture.MipMaps[0].GetImage(); + Assert.Equal(256, mipImage.Width); + Assert.Equal(256, mipImage.Height); } } From 5e0c597646549e2b3c487498c360c94330592fe8 Mon Sep 17 00:00:00 2001 From: Erik White <26148654+Erik-White@users.noreply.github.com> Date: Sun, 17 May 2026 14:05:24 +0200 Subject: [PATCH 6/8] Standarize existing KTX1 test --- .../Formats/Ktx/KtxDecoderFlatTests.cs | 44 ++++++++++++++++ .../Formats/Ktx/KtxDecoderTests.cs | 52 ------------------- tests/ImageSharp.Textures.Tests/TestImages.cs | 2 +- .../{rgba8888.ktx => rgba32-unorm-mipmap.ktx} | 0 .../CanDecode_Rgba32_MipMaps.png} | 0 5 files changed, 45 insertions(+), 53 deletions(-) create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Ktx/KtxDecoderFlatTests.cs delete mode 100644 tests/ImageSharp.Textures.Tests/Formats/Ktx/KtxDecoderTests.cs rename tests/Images/Input/Ktx/{rgba8888.ktx => rgba32-unorm-mipmap.ktx} (100%) rename tests/Images/ReferenceOutput/{KtxDecoder_CanDecode_Rgba8888.png => Ktx/KtxDecoderFlatTests/CanDecode_Rgba32_MipMaps.png} (100%) diff --git a/tests/ImageSharp.Textures.Tests/Formats/Ktx/KtxDecoderFlatTests.cs b/tests/ImageSharp.Textures.Tests/Formats/Ktx/KtxDecoderFlatTests.cs new file mode 100644 index 00000000..93fb4c62 --- /dev/null +++ b/tests/ImageSharp.Textures.Tests/Formats/Ktx/KtxDecoderFlatTests.cs @@ -0,0 +1,44 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Textures.Formats.Ktx; +using SixLabors.ImageSharp.Textures.Tests.Enums; +using SixLabors.ImageSharp.Textures.Tests.TestUtilities; +using SixLabors.ImageSharp.Textures.Tests.TestUtilities.Attributes; +using SixLabors.ImageSharp.Textures.Tests.TestUtilities.TextureProviders; +using SixLabors.ImageSharp.Textures.TextureFormats; + +namespace SixLabors.ImageSharp.Textures.Tests.Formats.Ktx; + +[GroupOutput("Ktx")] +[Trait("Format", "Ktx")] +public class KtxDecoderFlatTests +{ + private static readonly KtxDecoder KtxDecoder = new(); + + [Theory] + [WithFile(TestTextureFormat.Ktx, TestTextureType.Flat, TestTextureTool.PvrTexToolCli, TestImages.Ktx.Rgba32UnormMipMap)] + public void CanDecode_Rgba32_MipMaps(TestTextureProvider provider) + { + using Texture texture = provider.GetTexture(KtxDecoder); + provider.SaveTextures(texture); + FlatTexture flatTexture = texture as FlatTexture; + + Assert.NotNull(flatTexture?.MipMaps); + Assert.Equal(8, flatTexture.MipMaps.Count); + + int[] expectedSizes = [200, 100, 50, 25, 12, 6, 3, 1]; + for (int i = 0; i < expectedSizes.Length; i++) + { + using Image mipImage = flatTexture.MipMaps[i].GetImage(); + Assert.Equal(expectedSizes[i], mipImage.Height); + Assert.Equal(expectedSizes[i], mipImage.Width); + } + + using Image firstMipMap = flatTexture.MipMaps[0].GetImage(); + Assert.Equal(32, firstMipMap.PixelType.BitsPerPixel); + Image firstMipMapImage = firstMipMap as Image; + firstMipMapImage.CompareToReferenceOutput(provider, appendPixelTypeToFileName: false); + } +} diff --git a/tests/ImageSharp.Textures.Tests/Formats/Ktx/KtxDecoderTests.cs b/tests/ImageSharp.Textures.Tests/Formats/Ktx/KtxDecoderTests.cs deleted file mode 100644 index 1fbacc67..00000000 --- a/tests/ImageSharp.Textures.Tests/Formats/Ktx/KtxDecoderTests.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Six Labors. -// Licensed under the Six Labors Split License. - -using SixLabors.ImageSharp.PixelFormats; -using SixLabors.ImageSharp.Textures.Formats.Ktx; -using SixLabors.ImageSharp.Textures.Tests.Enums; -using SixLabors.ImageSharp.Textures.Tests.TestUtilities; -using SixLabors.ImageSharp.Textures.Tests.TestUtilities.Attributes; -using SixLabors.ImageSharp.Textures.Tests.TestUtilities.TextureProviders; -using SixLabors.ImageSharp.Textures.TextureFormats; -using Xunit; - -namespace SixLabors.ImageSharp.Textures.Tests.Formats.Ktx -{ - [Trait("Format", "Ktx")] - public class KtxDecoderTests - { - private static readonly KtxDecoder KtxDecoder = new KtxDecoder(); - - [Theory] - [WithFile(TestTextureFormat.Ktx, TestTextureType.Flat, TestTextureTool.PvrTexToolCli, TestImages.Ktx.Rgba)] - public void KtxDecoder_CanDecode_Rgba8888(TestTextureProvider provider) - { - using Texture texture = provider.GetTexture(KtxDecoder); - provider.SaveTextures(texture); - var flatTexture = texture as FlatTexture; - - Assert.NotNull(flatTexture?.MipMaps); - Assert.Equal(8, flatTexture.MipMaps.Count); - Assert.Equal(200, flatTexture.MipMaps[0].GetImage().Height); - Assert.Equal(200, flatTexture.MipMaps[0].GetImage().Width); - Assert.Equal(100, flatTexture.MipMaps[1].GetImage().Height); - Assert.Equal(100, flatTexture.MipMaps[1].GetImage().Width); - Assert.Equal(50, flatTexture.MipMaps[2].GetImage().Height); - Assert.Equal(50, flatTexture.MipMaps[2].GetImage().Width); - Assert.Equal(25, flatTexture.MipMaps[3].GetImage().Height); - Assert.Equal(25, flatTexture.MipMaps[3].GetImage().Width); - Assert.Equal(12, flatTexture.MipMaps[4].GetImage().Height); - Assert.Equal(12, flatTexture.MipMaps[4].GetImage().Width); - Assert.Equal(6, flatTexture.MipMaps[5].GetImage().Height); - Assert.Equal(6, flatTexture.MipMaps[5].GetImage().Width); - Assert.Equal(3, flatTexture.MipMaps[6].GetImage().Height); - Assert.Equal(3, flatTexture.MipMaps[6].GetImage().Width); - Assert.Equal(1, flatTexture.MipMaps[7].GetImage().Height); - Assert.Equal(1, flatTexture.MipMaps[7].GetImage().Width); - Image firstMipMap = flatTexture.MipMaps[0].GetImage(); - Assert.Equal(32, firstMipMap.PixelType.BitsPerPixel); - var firstMipMapImage = firstMipMap as Image; - firstMipMapImage.CompareToReferenceOutput(provider, appendPixelTypeToFileName: false); - } - } -} diff --git a/tests/ImageSharp.Textures.Tests/TestImages.cs b/tests/ImageSharp.Textures.Tests/TestImages.cs index 4280d5f2..f2460a53 100644 --- a/tests/ImageSharp.Textures.Tests/TestImages.cs +++ b/tests/ImageSharp.Textures.Tests/TestImages.cs @@ -10,7 +10,7 @@ public static class TestImages { public static class Ktx { - public const string Rgba = "rgba8888.ktx"; + public const string Rgba32UnormMipMap = "rgba32-unorm-mipmap.ktx"; } public static class Ktx2 diff --git a/tests/Images/Input/Ktx/rgba8888.ktx b/tests/Images/Input/Ktx/rgba32-unorm-mipmap.ktx similarity index 100% rename from tests/Images/Input/Ktx/rgba8888.ktx rename to tests/Images/Input/Ktx/rgba32-unorm-mipmap.ktx diff --git a/tests/Images/ReferenceOutput/KtxDecoder_CanDecode_Rgba8888.png b/tests/Images/ReferenceOutput/Ktx/KtxDecoderFlatTests/CanDecode_Rgba32_MipMaps.png similarity index 100% rename from tests/Images/ReferenceOutput/KtxDecoder_CanDecode_Rgba8888.png rename to tests/Images/ReferenceOutput/Ktx/KtxDecoderFlatTests/CanDecode_Rgba32_MipMaps.png From 4fffeda7334a0583f8590f02e90a2d3e45d0dc91 Mon Sep 17 00:00:00 2001 From: Erik White <26148654+Erik-White@users.noreply.github.com> Date: Sun, 17 May 2026 14:06:17 +0200 Subject: [PATCH 7/8] Suppress strong naming warning for interactive tests --- .../ImageSharp.Textures.InteractiveTest.csproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/ImageSharp.Textures.InteractiveTest/ImageSharp.Textures.InteractiveTest.csproj b/tests/ImageSharp.Textures.InteractiveTest/ImageSharp.Textures.InteractiveTest.csproj index 08d6c73a..891d5645 100644 --- a/tests/ImageSharp.Textures.InteractiveTest/ImageSharp.Textures.InteractiveTest.csproj +++ b/tests/ImageSharp.Textures.InteractiveTest/ImageSharp.Textures.InteractiveTest.csproj @@ -10,6 +10,8 @@ SixLabors.ImageSharp.Textures.InteractiveTest false + + $(NoWarn);CS8002 From 5f076556f4c19a047ebec1c36f08fa98ab25d9ce Mon Sep 17 00:00:00 2001 From: Erik White <26148654+Erik-White@users.noreply.github.com> Date: Sun, 17 May 2026 15:16:13 +0200 Subject: [PATCH 8/8] Low dynamic range ASTC decoding --- .gitattributes | 1 + .../Compression/Astc/AstcDecoder.cs | 399 +++++++++++++++++ .../Astc/BiseEncoding/BiseEncodingMode.cs | 18 + .../Astc/BiseEncoding/BitStream.cs | 168 +++++++ .../BoundedIntegerSequenceCodec.cs | 231 ++++++++++ .../BoundedIntegerSequenceDecoder.cs | 145 ++++++ .../Quantize/BitQuantizationMap.cs | 75 ++++ .../BiseEncoding/Quantize/Quantization.cs | 235 ++++++++++ .../BiseEncoding/Quantize/QuantizationMap.cs | 78 ++++ .../Quantize/QuintQuantizationMap.cs | 76 ++++ .../Quantize/TritQuantizationMap.cs | 85 ++++ .../Astc/BlockDecoding/BlockDestination.cs | 12 + .../Astc/BlockDecoding/BlockModeDecoder.cs | 396 ++++++++++++++++ .../Astc/BlockDecoding/FusedBlockDecoder.cs | 143 ++++++ .../BlockDecoding/FusedLdrBlockDecoder.cs | 140 ++++++ .../Astc/BlockDecoding/IBlockPipeline.cs | 94 ++++ .../Astc/BlockDecoding/IPixelWriter.cs | 43 ++ .../Astc/BlockDecoding/LdrPipeline.cs | 71 +++ .../Astc/BlockDecoding/LdrPixelWriter.cs | 52 +++ .../Astc/BlockDecoding/LogicalBlock.cs | 302 +++++++++++++ .../Astc/ColorEncoding/ColorEndpointMode.cs | 38 ++ .../ColorEndpointModeExtensions.cs | 31 ++ .../Astc/ColorEncoding/ColorEndpointPair.cs | 32 ++ .../Astc/ColorEncoding/EndpointCodec.cs | 174 +++++++ .../Astc/ColorEncoding/Rgba32Extensions.cs | 83 ++++ .../Compression/Astc/Core/BitOperations.cs | 48 ++ .../Compression/Astc/Core/BlockInfo.cs | 148 ++++++ .../Compression/Astc/Core/ColorEndpoints.cs | 10 + .../Compression/Astc/Core/DecimationInfo.cs | 39 ++ .../Compression/Astc/Core/DecimationTable.cs | 169 +++++++ .../Compression/Astc/Core/DualPlaneInfo.cs | 10 + .../Compression/Astc/Core/Footprint.cs | 58 +++ .../Compression/Astc/Core/FootprintType.cs | 52 +++ .../Compression/Astc/Core/Interpolation.cs | 57 +++ .../Compression/Astc/Core/Partition.cs | 215 +++++++++ .../Compression/Astc/Core/SimdHelpers.cs | 140 ++++++ .../Astc/Core/UInt128Extensions.cs | 55 +++ .../Compression/Astc/Core/WeightGrid.cs | 9 + .../Compression/Astc/IO/AstcFile.cs | 85 ++++ .../Compression/Astc/IO/AstcFileHeader.cs | 96 ++++ .../Compression/Astc/README.md | 135 ++++++ .../Compression/Astc/dataformat.1.3.pdf | Bin 0 -> 2956118 bytes .../Enums/TestTextureFormat.cs | 5 + .../Enums/TestTextureTool.cs | 7 +- .../Formats/Astc/AstcDecoderTests.cs | 423 ++++++++++++++++++ .../Formats/Astc/AstcFileHeaderTests.cs | 127 ++++++ .../Formats/Astc/AstcFileTests.cs | 89 ++++ .../Formats/Astc/BitOperationsTests.cs | 77 ++++ .../Formats/Astc/BitStreamTests.cs | 231 ++++++++++ .../Formats/Astc/BlockInfoTests.cs | 213 +++++++++ .../Formats/Astc/EndpointCodecLdrTests.cs | 194 ++++++++ .../Formats/Astc/EndpointCodecTests.cs | 142 ++++++ .../Formats/Astc/FootprintTests.cs | 82 ++++ .../Formats/Astc/IntegerSequenceCodecTests.cs | 232 ++++++++++ .../Formats/Astc/LogicalAstcBlockTests.cs | 140 ++++++ .../Formats/Astc/PartitionTests.cs | 37 ++ .../Formats/Astc/QuantizationTests.cs | 399 +++++++++++++++++ .../Formats/Astc/WeightInfillTests.cs | 88 ++++ tests/ImageSharp.Textures.Tests/TestData.cs | 52 +++ tests/Images/Input/Astc/checkerboard.astc | 3 + tests/Images/Input/Astc/checkered-10.astc | 3 + tests/Images/Input/Astc/checkered-11.astc | 3 + tests/Images/Input/Astc/checkered-12.astc | 3 + tests/Images/Input/Astc/checkered-4.astc | 3 + tests/Images/Input/Astc/checkered-5.astc | 3 + tests/Images/Input/Astc/checkered-6.astc | 3 + tests/Images/Input/Astc/checkered-7.astc | 3 + tests/Images/Input/Astc/checkered-8.astc | 3 + tests/Images/Input/Astc/checkered-9.astc | 3 + tests/Images/Input/Astc/footprint-10x10.astc | 3 + tests/Images/Input/Astc/footprint-10x5.astc | 3 + tests/Images/Input/Astc/footprint-10x6.astc | 3 + tests/Images/Input/Astc/footprint-10x8.astc | 3 + tests/Images/Input/Astc/footprint-12x10.astc | 3 + tests/Images/Input/Astc/footprint-12x12.astc | 3 + tests/Images/Input/Astc/footprint-4x4.astc | 3 + tests/Images/Input/Astc/footprint-5x4.astc | 3 + tests/Images/Input/Astc/footprint-5x5.astc | 3 + tests/Images/Input/Astc/footprint-6x5.astc | 3 + tests/Images/Input/Astc/footprint-6x6.astc | 3 + tests/Images/Input/Astc/footprint-8x5.astc | 3 + tests/Images/Input/Astc/footprint-8x6.astc | 3 + tests/Images/Input/Astc/footprint-8x8.astc | 3 + tests/Images/Input/Astc/rgb-12x12.astc | 3 + tests/Images/Input/Astc/rgb-4x4.astc | 3 + tests/Images/Input/Astc/rgb-5x4.astc | 3 + tests/Images/Input/Astc/rgb-6x6.astc | 3 + tests/Images/Input/Astc/rgb-8x8.astc | 3 + tests/Images/Input/Astc/rgba-4x4.astc | 3 + tests/Images/Input/Astc/rgba-5x5.astc | 3 + tests/Images/Input/Astc/rgba-6x6.astc | 3 + tests/Images/Input/Astc/rgba-8x8.astc | 3 + ...hAstcRgbFile_ShouldMatchExpected_12x12.png | 3 + ...ithAstcRgbFile_ShouldMatchExpected_4x4.png | 3 + ...ithAstcRgbFile_ShouldMatchExpected_5x4.png | 3 + ...ithAstcRgbFile_ShouldMatchExpected_6x6.png | 3 + ...ithAstcRgbFile_ShouldMatchExpected_8x8.png | 3 + ...thAstcRgbaFile_ShouldMatchExpected_4x4.png | 3 + ...thAstcRgbaFile_ShouldMatchExpected_5x5.png | 3 + ...thAstcRgbaFile_ShouldMatchExpected_6x6.png | 3 + ...thAstcRgbaFile_ShouldMatchExpected_8x8.png | 3 + ..._FromImage_ShouldDecodeCorrectly_10x10.png | 3 + ...k_FromImage_ShouldDecodeCorrectly_10x5.png | 3 + ...k_FromImage_ShouldDecodeCorrectly_10x6.png | 3 + ...k_FromImage_ShouldDecodeCorrectly_10x8.png | 3 + ..._FromImage_ShouldDecodeCorrectly_12x10.png | 3 + ..._FromImage_ShouldDecodeCorrectly_12x12.png | 3 + ...ck_FromImage_ShouldDecodeCorrectly_4x4.png | 3 + ...ck_FromImage_ShouldDecodeCorrectly_5x4.png | 3 + ...ck_FromImage_ShouldDecodeCorrectly_5x5.png | 3 + ...ck_FromImage_ShouldDecodeCorrectly_6x5.png | 3 + ...ck_FromImage_ShouldDecodeCorrectly_6x6.png | 3 + ...ck_FromImage_ShouldDecodeCorrectly_8x5.png | 3 + ...ck_FromImage_ShouldDecodeCorrectly_8x6.png | 3 + ...ck_FromImage_ShouldDecodeCorrectly_8x8.png | 3 + 115 files changed, 7153 insertions(+), 1 deletion(-) create mode 100644 src/ImageSharp.Textures/Compression/Astc/AstcDecoder.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BiseEncodingMode.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BitStream.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BoundedIntegerSequenceCodec.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BoundedIntegerSequenceDecoder.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/BitQuantizationMap.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/Quantization.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/QuantizationMap.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/QuintQuantizationMap.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/TritQuantizationMap.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BlockDecoding/BlockDestination.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BlockDecoding/BlockModeDecoder.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BlockDecoding/FusedBlockDecoder.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BlockDecoding/FusedLdrBlockDecoder.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BlockDecoding/IBlockPipeline.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BlockDecoding/IPixelWriter.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LdrPipeline.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LdrPixelWriter.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LogicalBlock.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointMode.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointModeExtensions.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointPair.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/ColorEncoding/EndpointCodec.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/ColorEncoding/Rgba32Extensions.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/BitOperations.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/BlockInfo.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/ColorEndpoints.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/DecimationInfo.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/DecimationTable.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/DualPlaneInfo.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/Footprint.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/FootprintType.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/Interpolation.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/Partition.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/SimdHelpers.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/UInt128Extensions.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/Core/WeightGrid.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/IO/AstcFile.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/IO/AstcFileHeader.cs create mode 100644 src/ImageSharp.Textures/Compression/Astc/README.md create mode 100644 src/ImageSharp.Textures/Compression/Astc/dataformat.1.3.pdf create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/AstcDecoderTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/AstcFileHeaderTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/AstcFileTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/BitOperationsTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/BitStreamTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/BlockInfoTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/EndpointCodecLdrTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/EndpointCodecTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/FootprintTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/IntegerSequenceCodecTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/LogicalAstcBlockTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/PartitionTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/QuantizationTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/Formats/Astc/WeightInfillTests.cs create mode 100644 tests/ImageSharp.Textures.Tests/TestData.cs create mode 100644 tests/Images/Input/Astc/checkerboard.astc create mode 100644 tests/Images/Input/Astc/checkered-10.astc create mode 100644 tests/Images/Input/Astc/checkered-11.astc create mode 100644 tests/Images/Input/Astc/checkered-12.astc create mode 100644 tests/Images/Input/Astc/checkered-4.astc create mode 100644 tests/Images/Input/Astc/checkered-5.astc create mode 100644 tests/Images/Input/Astc/checkered-6.astc create mode 100644 tests/Images/Input/Astc/checkered-7.astc create mode 100644 tests/Images/Input/Astc/checkered-8.astc create mode 100644 tests/Images/Input/Astc/checkered-9.astc create mode 100644 tests/Images/Input/Astc/footprint-10x10.astc create mode 100644 tests/Images/Input/Astc/footprint-10x5.astc create mode 100644 tests/Images/Input/Astc/footprint-10x6.astc create mode 100644 tests/Images/Input/Astc/footprint-10x8.astc create mode 100644 tests/Images/Input/Astc/footprint-12x10.astc create mode 100644 tests/Images/Input/Astc/footprint-12x12.astc create mode 100644 tests/Images/Input/Astc/footprint-4x4.astc create mode 100644 tests/Images/Input/Astc/footprint-5x4.astc create mode 100644 tests/Images/Input/Astc/footprint-5x5.astc create mode 100644 tests/Images/Input/Astc/footprint-6x5.astc create mode 100644 tests/Images/Input/Astc/footprint-6x6.astc create mode 100644 tests/Images/Input/Astc/footprint-8x5.astc create mode 100644 tests/Images/Input/Astc/footprint-8x6.astc create mode 100644 tests/Images/Input/Astc/footprint-8x8.astc create mode 100644 tests/Images/Input/Astc/rgb-12x12.astc create mode 100644 tests/Images/Input/Astc/rgb-4x4.astc create mode 100644 tests/Images/Input/Astc/rgb-5x4.astc create mode 100644 tests/Images/Input/Astc/rgb-6x6.astc create mode 100644 tests/Images/Input/Astc/rgb-8x8.astc create mode 100644 tests/Images/Input/Astc/rgba-4x4.astc create mode 100644 tests/Images/Input/Astc/rgba-5x5.astc create mode 100644 tests/Images/Input/Astc/rgba-6x6.astc create mode 100644 tests/Images/Input/Astc/rgba-8x8.astc create mode 100644 tests/Images/ReferenceOutput/Astc/AstcDecoderTests/DecompressImage_WithAstcRgbFile_ShouldMatchExpected_12x12.png create mode 100644 tests/Images/ReferenceOutput/Astc/AstcDecoderTests/DecompressImage_WithAstcRgbFile_ShouldMatchExpected_4x4.png create mode 100644 tests/Images/ReferenceOutput/Astc/AstcDecoderTests/DecompressImage_WithAstcRgbFile_ShouldMatchExpected_5x4.png create mode 100644 tests/Images/ReferenceOutput/Astc/AstcDecoderTests/DecompressImage_WithAstcRgbFile_ShouldMatchExpected_6x6.png create mode 100644 tests/Images/ReferenceOutput/Astc/AstcDecoderTests/DecompressImage_WithAstcRgbFile_ShouldMatchExpected_8x8.png create mode 100644 tests/Images/ReferenceOutput/Astc/AstcDecoderTests/DecompressImage_WithAstcRgbaFile_ShouldMatchExpected_4x4.png create mode 100644 tests/Images/ReferenceOutput/Astc/AstcDecoderTests/DecompressImage_WithAstcRgbaFile_ShouldMatchExpected_5x5.png create mode 100644 tests/Images/ReferenceOutput/Astc/AstcDecoderTests/DecompressImage_WithAstcRgbaFile_ShouldMatchExpected_6x6.png create mode 100644 tests/Images/ReferenceOutput/Astc/AstcDecoderTests/DecompressImage_WithAstcRgbaFile_ShouldMatchExpected_8x8.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_10x10.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_10x5.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_10x6.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_10x8.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_12x10.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_12x12.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_4x4.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_5x4.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_5x5.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_6x5.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_6x6.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_8x5.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_8x6.png create mode 100644 tests/Images/ReferenceOutput/Astc/LogicalAstcBlockTests/UnpackLogicalBlock_FromImage_ShouldDecodeCorrectly_8x8.png diff --git a/.gitattributes b/.gitattributes index f7bd4d06..80c19213 100644 --- a/.gitattributes +++ b/.gitattributes @@ -126,6 +126,7 @@ *.dds filter=lfs diff=lfs merge=lfs -text *.ktx filter=lfs diff=lfs merge=lfs -text *.ktx2 filter=lfs diff=lfs merge=lfs -text +*.astc filter=lfs diff=lfs merge=lfs -text *.pam filter=lfs diff=lfs merge=lfs -text *.pbm filter=lfs diff=lfs merge=lfs -text *.pgm filter=lfs diff=lfs merge=lfs -text diff --git a/src/ImageSharp.Textures/Compression/Astc/AstcDecoder.cs b/src/ImageSharp.Textures/Compression/Astc/AstcDecoder.cs new file mode 100644 index 00000000..dcf91ec7 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/AstcDecoder.cs @@ -0,0 +1,399 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Buffers; +using System.Buffers.Binary; +using System.Runtime.CompilerServices; +using SixLabors.ImageSharp.Memory; +using SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; +using SixLabors.ImageSharp.Textures.Compression.Astc.IO; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc; + +/// +/// Provides methods to decode ASTC-compressed texture data into uncompressed pixel formats. +/// +/// +/// The decoder returns raw decoded values and does not apply any gamma or color-space +/// transform. Callers loading ASTC data from an sRGB-tagged container (e.g. a KTX file +/// with an *_SRGB_BLOCK format) are responsible for applying sRGB-to-linear conversion +/// downstream if they need linear values. +/// +public static class AstcDecoder +{ + /// + /// Decompresses ASTC-compressed data to uncompressed RGBA32 format (4 bytes per pixel). + /// + /// The ASTC-compressed texture data + /// Image width in pixels + /// Image height in pixels + /// The ASTC block footprint (e.g., 4x4, 5x5) + /// + /// Array of bytes in RGBA32 format (width * height * 4 bytes total), or an empty span if the + /// input is structurally invalid. Individual malformed blocks are skipped and leave zeros in the output. + /// + public static Span DecompressImage(ReadOnlySpan astcData, int width, int height, Footprint footprint) + { + Guard.MustBeGreaterThan(width, 0, nameof(width)); + Guard.MustBeGreaterThan(height, 0, nameof(height)); + + long totalPixels = (long)width * height; + Guard.MustBeLessThanOrEqualTo(totalPixels, (long)int.MaxValue / BlockInfo.ChannelsPerPixel, nameof(totalPixels)); + + int totalBytes = (int)(totalPixels * BlockInfo.ChannelsPerPixel); + byte[] imageBuffer = new byte[totalBytes]; + + return DecompressImage(astcData, width, height, footprint, imageBuffer) + ? imageBuffer + : []; + } + + /// + /// Decompresses ASTC-compressed data to uncompressed RGBA32 format into a caller-provided buffer. + /// + /// The ASTC-compressed texture data + /// Image width in pixels + /// Image height in pixels + /// The ASTC block footprint (e.g., 4x4, 5x5) + /// Output buffer. Must be at least width * height * 4 bytes. + /// + /// True if the input was structurally valid and decoding ran, false if it was rejected + /// up front. Individual malformed blocks are skipped and leave zeros in the output. + /// + public static bool DecompressImage(ReadOnlySpan astcData, int width, int height, Footprint footprint, Span imageBuffer) + { + ValidateImageArgs(width, height, imageBuffer.Length, BlockInfo.ChannelsPerPixel); + + if (!TryGetBlockLayout(astcData, width, height, footprint, out int blocksWide, out int blocksHigh)) + { + return false; + } + + using IMemoryOwner decodedBlock = MemoryAllocator.Default.Allocate(footprint.PixelCount * BlockInfo.ChannelsPerPixel); + DecodeAllBlocks(astcData, width, height, footprint, blocksWide, blocksHigh, imageBuffer, decodedBlock.Memory.Span); + return true; + } + + /// + /// Decompresses ASTC-compressed data read from a stream to uncompressed RGBA32 format. + /// Reads exactly the bytes implied by , , + /// and . + /// + /// The stream containing ASTC-compressed block data. + /// Image width in pixels. + /// Image height in pixels. + /// The ASTC block footprint (e.g., 4x4, 5x5). + /// + /// Array of bytes in RGBA32 format (width * height * 4 bytes total). The stream's read + /// position advances by the consumed block bytes. + /// + /// + /// Thrown if the stream contains fewer bytes than the footprint requires. + /// + public static Span DecompressImage(Stream stream, int width, int height, Footprint footprint) + { + Guard.NotNull(stream); + Guard.MustBeGreaterThan(width, 0, nameof(width)); + Guard.MustBeGreaterThan(height, 0, nameof(height)); + + long totalPixels = (long)width * height; + Guard.MustBeLessThanOrEqualTo(totalPixels, (long)int.MaxValue / BlockInfo.ChannelsPerPixel, nameof(totalPixels)); + + byte[] imageBuffer = new byte[(int)(totalPixels * BlockInfo.ChannelsPerPixel)]; + return DecompressImage(stream, width, height, footprint, imageBuffer) + ? imageBuffer + : []; + } + + /// + /// Decompresses ASTC-compressed data read from a stream into a caller-provided buffer. + /// + /// The stream containing ASTC-compressed block data. + /// Image width in pixels. + /// Image height in pixels. + /// The ASTC block footprint. + /// Output buffer. Must be at least width * height * 4 bytes. + /// + /// True if the stream contained the expected block count and decoding ran. The stream's + /// read position advances by the consumed block bytes. + /// + /// + /// Thrown if the stream contains fewer bytes than the footprint requires. + /// + public static bool DecompressImage(Stream stream, int width, int height, Footprint footprint, Span imageBuffer) + { + Guard.NotNull(stream); + ValidateImageArgs(width, height, imageBuffer.Length, BlockInfo.ChannelsPerPixel); + + int expectedBytes = ComputeExpectedBlockStreamSize(width, height, footprint); + using IMemoryOwner blocks = MemoryAllocator.Default.Allocate(expectedBytes); + Span blockSpan = blocks.Memory.Span[..expectedBytes]; + stream.ReadExactly(blockSpan); + + return DecompressImage((ReadOnlySpan)blockSpan, width, height, footprint, imageBuffer); + } + + /// + /// Shared image-decode loop for both LDR and HDR profiles (ASTC spec §C.2.7 decode + /// procedure, §C.2.5 LDR/HDR modes). Iterates + /// the compressed block array in raster order, parses each block via + /// , runs the pipeline's profile check, and dispatches to + /// the appropriate per-block decoder. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void DecodeAllBlocks( + ReadOnlySpan astcData, + int width, + int height, + Footprint footprint, + int blocksWide, + int blocksHigh, + Span imageBuffer, + Span decodedPixels) + where TPipeline : struct, IBlockPipeline + where T : unmanaged + { + TPipeline pipeline = default; + int blockIndex = 0; + + for (int blockY = 0; blockY < blocksHigh; blockY++) + { + for (int blockX = 0; blockX < blocksWide; blockX++) + { + int index = blockIndex++; + UInt128 blockBits = ReadBlockBits(astcData, index); + + BlockInfo info = BlockModeDecoder.Decode(blockBits); + BlockDestination dest = ComputeBlockDestination(blockX, blockY, footprint, width, height); + + // Spec §C.2.19, §C.2.24, §C.2.25: illegal block encodings, and HDR endpoint modes + // in the LDR profile, must produce the error colour (magenta) for every texel. + if (!info.IsValid || !pipeline.IsBlockLegal(in info)) + { + pipeline.WriteErrorColorClipped( + footprint, dest.DstBaseX, dest.DstBaseY, dest.CopyWidth, dest.CopyHeight, width, imageBuffer); + continue; + } + + DecodeBlock(blockBits, in info, footprint, dest, width, imageBuffer, decodedPixels); + } + } + } + + /// + /// Routes a single block to the best available path. Single-partition, single-plane, + /// non-void-extent blocks (the common shape per ASTC spec §C.2.10, §C.2.20, §C.2.23) take + /// the fused fast path — directly to the image buffer when the block fits entirely inside + /// the image, or to a scratch buffer at image edges that need cropping. Everything else + /// (void-extent, multi-partition, dual-plane) falls through to the general + /// pipeline. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void DecodeBlock( + UInt128 blockBits, + in BlockInfo info, + Footprint footprint, + BlockDestination dest, + int imageWidth, + Span imageBuffer, + Span decodedPixels) + where TPipeline : struct, IBlockPipeline + where T : unmanaged + { + TPipeline pipeline = default; + + if (info.IsFusable && dest.IsFullInteriorBlock) + { + pipeline.FusedToImage(blockBits, in info, footprint, dest.DstBaseX, dest.DstBaseY, imageWidth, imageBuffer); + return; + } + + if (info.IsFusable) + { + pipeline.FusedToScratch(blockBits, in info, footprint, decodedPixels); + } + else + { + pipeline.LogicalWrite(blockBits, in info, footprint, decodedPixels); + } + + CopyBlockRect(decodedPixels, imageBuffer, footprint.Width, dest.CopyWidth, dest.CopyHeight, dest.DstBaseX, dest.DstBaseY, imageWidth); + } + + /// + /// Shared single-block decode path for the public DecompressBlock entry points. + /// Runs the pipeline's profile check (LDR rejects HDR content per ASTC spec §C.2.19), + /// then dispatches to the fused fast path for the common shape (single-partition, + /// single-plane, non-void-extent — spec §C.2.10, §C.2.20, §C.2.23) or the general + /// pipeline otherwise. The caller's + /// is sized for exactly one block, so there's no interior/edge distinction. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void DecodeSingleBlock(ReadOnlySpan blockData, Footprint footprint, Span buffer) + where TPipeline : struct, IBlockPipeline + where T : unmanaged + { + UInt128 blockBits = BinaryPrimitives.ReadUInt128LittleEndian(blockData); + BlockInfo info = BlockModeDecoder.Decode(blockBits); + TPipeline pipeline = default; + + // Spec §C.2.19, §C.2.24, §C.2.25: illegal blocks and HDR-in-LDR emit magenta. + if (!info.IsValid || !pipeline.IsBlockLegal(in info)) + { + pipeline.WriteErrorColor(footprint, buffer); + return; + } + + if (info.IsFusable) + { + pipeline.FusedToScratch(blockBits, in info, footprint, buffer); + return; + } + + pipeline.LogicalWrite(blockBits, in info, footprint, buffer); + } + + /// + /// Decompresses a single ASTC block to RGBA32 pixel data + /// + /// The data to decode + /// The type of ASTC block footprint e.g. 4x4, 5x5, etc. + /// The buffer to write the decoded pixels into + public static void DecompressBlock(ReadOnlySpan blockData, Footprint footprint, Span buffer) + { + Guard.MustBeSizedAtLeast(blockData, BlockInfo.SizeInBytes, nameof(blockData)); + Guard.MustBeSizedAtLeast(buffer, footprint.PixelCount * BlockInfo.ChannelsPerPixel, nameof(buffer)); + + DecodeSingleBlock(blockData, footprint, buffer); + } + + internal static Span DecompressImage(AstcFile file) + { + Guard.NotNull(file); + + return DecompressImage(file.Blocks, file.Width, file.Height, file.Footprint); + } + + internal static Span DecompressImage(ReadOnlySpan astcData, int width, int height, FootprintType footprint) + { + Footprint footPrint = Footprint.FromFootprintType(footprint); + + return DecompressImage(astcData, width, height, footPrint); + } + + private static bool TryGetBlockLayout( + ReadOnlySpan astcData, + int width, + int height, + Footprint footprint, + out int blocksWide, + out int blocksHigh) + { + int blockWidth = footprint.Width; + int blockHeight = footprint.Height; + blocksWide = 0; + blocksHigh = 0; + + if (blockWidth <= 0 || blockHeight <= 0 || width <= 0 || height <= 0) + { + return false; + } + + blocksWide = (width + blockWidth - 1) / blockWidth; + blocksHigh = (height + blockHeight - 1) / blockHeight; + + // Guard against integer overflow in block count calculation + long expectedBlockCount = (long)blocksWide * blocksHigh; + if (astcData.Length % BlockInfo.SizeInBytes != 0 || astcData.Length / BlockInfo.SizeInBytes != expectedBlockCount) + { + return false; + } + + return true; + } + + /// + /// Validates that and are positive, + /// that width × height × does not overflow + /// , and that has room for + /// the decoded output. + /// + private static void ValidateImageArgs(int width, int height, int bufferLength, int bytesPerPixel) + { + Guard.MustBeGreaterThan(width, 0, nameof(width)); + Guard.MustBeGreaterThan(height, 0, nameof(height)); + + long totalPixels = (long)width * height; + Guard.MustBeLessThanOrEqualTo(totalPixels, (long)int.MaxValue / bytesPerPixel, nameof(totalPixels)); + + long totalElements = totalPixels * bytesPerPixel; + Guard.MustBeGreaterThanOrEqualTo(bufferLength, totalElements, nameof(bufferLength)); + } + + /// + /// Returns the total ASTC block-stream byte size for the given image dimensions and + /// footprint: ceil(width / blockWidth) * ceil(height / blockHeight) * 16. + /// + private static int ComputeExpectedBlockStreamSize(int width, int height, Footprint footprint) + { + int blocksWide = (width + footprint.Width - 1) / footprint.Width; + int blocksHigh = (height + footprint.Height - 1) / footprint.Height; + return blocksWide * blocksHigh * BlockInfo.SizeInBytes; + } + + /// + /// Reads the 16 bytes of the ASTC block at into a + /// (little-endian). The caller is responsible for ensuring the + /// stream contains the requested block — verifies + /// astcData.Length matches the expected block count before iteration begins. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static UInt128 ReadBlockBits(ReadOnlySpan astcData, int blockIndex) + { + int offset = blockIndex * BlockInfo.SizeInBytes; + return BinaryPrimitives.ReadUInt128LittleEndian(astcData.Slice(offset, BlockInfo.SizeInBytes)); + } + + /// + /// Computes the destination rectangle for the block at (, + /// ) given the image bounds, clipping the footprint extents + /// to fit inside the image. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static BlockDestination ComputeBlockDestination(int blockX, int blockY, Footprint footprint, int width, int height) + { + int dstBaseX = blockX * footprint.Width; + int dstBaseY = blockY * footprint.Height; + int copyWidth = Math.Min(footprint.Width, width - dstBaseX); + int copyHeight = Math.Min(footprint.Height, height - dstBaseY); + bool isFullInterior = copyWidth == footprint.Width && copyHeight == footprint.Height; + return new BlockDestination(dstBaseX, dstBaseY, copyWidth, copyHeight, isFullInterior); + } + + /// + /// Copies a decoded block from its scratch buffer into the image at the block's pixel + /// offset, row by row, clamped to the image bounds on right/bottom edges. The + /// channels-per-pixel factor is fixed at + /// (RGBA) so the multiplies fold into constants at JIT time. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void CopyBlockRect( + ReadOnlySpan source, + Span destination, + int blockWidth, + int copyWidth, + int copyHeight, + int dstBaseX, + int dstBaseY, + int imageWidth) + { + int copyElements = copyWidth * BlockInfo.ChannelsPerPixel; + for (int pixelY = 0; pixelY < copyHeight; pixelY++) + { + int srcOffset = pixelY * blockWidth * BlockInfo.ChannelsPerPixel; + int dstOffset = (((dstBaseY + pixelY) * imageWidth) + dstBaseX) * BlockInfo.ChannelsPerPixel; + source.Slice(srcOffset, copyElements).CopyTo(destination.Slice(dstOffset, copyElements)); + } + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BiseEncodingMode.cs b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BiseEncodingMode.cs new file mode 100644 index 00000000..028efe0c --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BiseEncodingMode.cs @@ -0,0 +1,18 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding; + +/// +/// The encoding modes supported by BISE. +/// +/// +/// Note that the values correspond to the number of symbols in each alphabet. +/// +internal enum BiseEncodingMode +{ + Unknown = 0, + BitEncoding = 1, + TritEncoding = 3, + QuintEncoding = 5, +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BitStream.cs b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BitStream.cs new file mode 100644 index 00000000..bee45b9f --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BitStream.cs @@ -0,0 +1,168 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding; + +/// +/// A simple bit stream used for reading/writing arbitrary-sized chunks. +/// +internal struct BitStream +{ + private ulong low; + private ulong high; + private uint dataSize; // number of valid bits in the 128-bit buffer + + public BitStream(ulong data = 0, uint dataSize = 0) + { + this.low = data; + this.high = 0; + this.dataSize = dataSize; + } + + public BitStream(UInt128 data, uint dataSize) + { + this.low = data.Low(); + this.high = data.High(); + this.dataSize = dataSize; + } + + public readonly uint Bits => this.dataSize; + + public void PutBits(ulong value, int size) + { + if (this.dataSize + (uint)size > 128) + { + throw new InvalidOperationException("Not enough space in BitStream"); + } + + if (this.dataSize < 64) + { + int lowFree = (int)(64 - this.dataSize); + if (size <= lowFree) + { + this.low |= (value & MaskFor(size)) << (int)this.dataSize; + } + else + { + this.low |= (value & MaskFor(lowFree)) << (int)this.dataSize; + this.high |= (value >> lowFree) & MaskFor(size - lowFree); + } + } + else + { + int shift = (int)(this.dataSize - 64); + this.high |= (value & MaskFor(size)) << shift; + } + + this.dataSize += (uint)size; + } + + /// + /// Attempt to retrieve the specified number of bits from the buffer as a . + /// The buffer is shifted accordingly if successful. + /// + public bool TryGetBits(int count, out UInt128 bits) + { + UInt128? result = this.GetBitsUInt128(count); + bits = result ?? default; + return result is not null; + } + + public bool TryGetBits(int count, out ulong bits) + { + if (count > this.dataSize) + { + bits = 0; + return false; + } + + bits = count switch + { + 0 => 0, + <= 64 => this.low & MaskFor(count), + _ => this.low + }; + this.ShiftBuffer(count); + return true; + } + + public bool TryGetBits(int count, out uint bits) + { + if (count > this.dataSize) + { + bits = 0; + return false; + } + + bits = (uint)(count switch + { + 0 => 0UL, + <= 64 => this.low & MaskFor(count), + _ => this.low + }); + this.ShiftBuffer(count); + return true; + } + + private static ulong MaskFor(int bits) + => bits == 64 + ? ~0UL + : ((1UL << bits) - 1UL); + + private UInt128? GetBitsUInt128(int count) + { + if (count > this.dataSize) + { + return null; + } + + UInt128 result = count switch + { + 0 => UInt128.Zero, + <= 64 => (UInt128)(this.low & MaskFor(count)), + 128 => new UInt128(this.high, this.low), + _ => new UInt128( + (count - 64 == 64) ? this.high : (this.high & MaskFor(count - 64)), + this.low) + }; + + this.ShiftBuffer(count); + + return result; + } + + private void ShiftBuffer(int count) + { + // C# masks shift amounts to the width of the operand, so `ulong << 64` and `ulong >> 64` + // are identity, not zero. Special-case count == 0 and count >= 128 to avoid polluting + // the low/high halves on boundary shifts. + if (count == 0) + { + // Reading zero bits is a no-op. + } + else if (count < 64) + { + this.low = (this.low >> count) | (this.high << (64 - count)); + this.high >>= count; + } + else if (count == 64) + { + this.low = this.high; + this.high = 0; + } + else if (count < 128) + { + this.low = this.high >> (count - 64); + this.high = 0; + } + else + { + this.low = 0; + this.high = 0; + } + + this.dataSize -= (uint)count; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BoundedIntegerSequenceCodec.cs b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BoundedIntegerSequenceCodec.cs new file mode 100644 index 00000000..b7623a11 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BoundedIntegerSequenceCodec.cs @@ -0,0 +1,231 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding; + +/// +/// +/// The Bounded Integer Sequence Encoding (BISE) allows storage of character sequences using +/// arbitrary alphabets of up to 256 symbols. Each alphabet size is encoded in the most +/// space-efficient choice of bits, trits, and quints (ASTC spec §C.2.12). +/// +/// +/// The resulting bit pattern is a sequence of encoded blocks. All blocks in a sequence are +/// one of the following encodings: +/// +/// +/// Bit encoding: one encoded value of the form 2^k +/// Trit encoding: five encoded values of the form 3*2^k +/// Quint encoding: three encoded values of the form 5*2^k +/// +/// +/// The layouts of each block are designed such that the blocks can be truncated during +/// encoding in order to support variable length input sequences (i.e. a sequence of values +/// that are encoded using trit encoded blocks does not need to have a multiple-of-five +/// length). +/// +/// +internal static class BoundedIntegerSequenceCodec +{ + /// + /// The maximum number of bits needed to encode an ISE value. + /// + /// + /// The ASTC specification does not give a maximum number, however unquantized color + /// values have a maximum range of 255, meaning that we can't feasibly have more + /// than eight bits per value. + /// + private const int Log2MaxRangeForBits = 8; + + /// + /// Flat trit encodings for BISE blocks (256 rows × 5 trits, row-major). + /// + /// + /// Used to decode blocks of values encoded using the ASTC integer sequence encoding. + /// Five trits (values that can take any number in the range [0, 2]) can take on a + /// total of 3^5 = 243 total values, which can be stored in eight bits. These eight + /// bits are used to decode the five trits based on the ASTC specification §C.2.12. + /// For simplicity, we store a look-up table here so that we don't need to implement + /// the decoding logic. Similarly, seven bits are used to decode three quints. + /// + internal static readonly int[] FlatTritEncodings = + [ + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 2, 0, 0, 0, 2, 0, 0, 0, + 1, 2, 0, 0, 0, 2, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 2, 0, 0, 1, 2, 2, 0, 0, 2, 2, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, + 2, 0, 1, 0, 0, 0, 1, 2, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 2, 1, 1, 0, 0, 1, 1, 2, 0, 0, 0, 2, 1, 0, 0, 1, 2, 1, 0, 0, 2, 2, 1, 0, 0, + 2, 1, 2, 0, 0, 0, 0, 0, 2, 2, 1, 0, 0, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 2, 0, 0, 1, 0, 0, 0, 2, 1, 0, + 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 2, 1, 0, 1, 0, 1, 0, 2, 1, 0, 0, 2, 0, 1, 0, 1, 2, 0, 1, 0, 2, 2, 0, 1, 0, 2, 0, 2, 1, 0, 0, 2, 2, 1, 0, + 1, 2, 2, 1, 0, 2, 2, 2, 1, 0, 2, 0, 2, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 2, 0, 1, 1, 0, 0, 1, 2, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, + 2, 1, 1, 1, 0, 1, 1, 2, 1, 0, 0, 2, 1, 1, 0, 1, 2, 1, 1, 0, 2, 2, 1, 1, 0, 2, 1, 2, 1, 0, 0, 1, 0, 2, 2, 1, 1, 0, 2, 2, 2, 1, 0, 2, 2, + 1, 0, 2, 2, 2, 0, 0, 0, 2, 0, 1, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0, 1, 0, 2, 0, 1, 1, 0, 2, 0, 2, 1, 0, 2, 0, 1, 0, 2, 2, 0, + 0, 2, 0, 2, 0, 1, 2, 0, 2, 0, 2, 2, 0, 2, 0, 2, 0, 2, 2, 0, 0, 2, 2, 2, 0, 1, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 1, 2, 0, + 1, 0, 1, 2, 0, 2, 0, 1, 2, 0, 0, 1, 2, 2, 0, 0, 1, 1, 2, 0, 1, 1, 1, 2, 0, 2, 1, 1, 2, 0, 1, 1, 2, 2, 0, 0, 2, 1, 2, 0, 1, 2, 1, 2, 0, + 2, 2, 1, 2, 0, 2, 1, 2, 2, 0, 0, 2, 0, 2, 2, 1, 2, 0, 2, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 2, 1, 0, 0, 0, 2, 2, 0, 0, 0, 2, + 0, 0, 2, 0, 2, 0, 1, 0, 0, 2, 1, 1, 0, 0, 2, 2, 1, 0, 0, 2, 1, 0, 2, 0, 2, 0, 2, 0, 0, 2, 1, 2, 0, 0, 2, 2, 2, 0, 0, 2, 2, 0, 2, 0, 2, + 0, 2, 2, 0, 2, 1, 2, 2, 0, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 1, 0, 2, 1, 0, 1, 0, 2, 2, 0, 1, 0, 2, 0, 1, 2, 0, 2, 0, 1, 1, 0, 2, + 1, 1, 1, 0, 2, 2, 1, 1, 0, 2, 1, 1, 2, 0, 2, 0, 2, 1, 0, 2, 1, 2, 1, 0, 2, 2, 2, 1, 0, 2, 2, 1, 2, 0, 2, 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 2, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 2, 1, 0, 0, 1, + 1, 0, 2, 0, 1, 0, 2, 0, 0, 1, 1, 2, 0, 0, 1, 2, 2, 0, 0, 1, 2, 0, 2, 0, 1, 0, 2, 2, 0, 1, 1, 2, 2, 0, 1, 2, 2, 2, 0, 1, 2, 0, 2, 0, 1, + 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 2, 0, 1, 0, 1, 0, 1, 2, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 2, 1, 1, 0, 1, 1, 1, 2, 0, 1, 0, 2, 1, 0, 1, + 1, 2, 1, 0, 1, 2, 2, 1, 0, 1, 2, 1, 2, 0, 1, 0, 0, 1, 2, 2, 1, 0, 1, 2, 2, 2, 0, 1, 2, 2, 0, 1, 2, 2, 2, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, + 2, 0, 0, 1, 1, 0, 0, 2, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 2, 1, 0, 1, 1, 1, 0, 2, 1, 1, 0, 2, 0, 1, 1, 1, 2, 0, 1, 1, 2, 2, 0, 1, 1, + 2, 0, 2, 1, 1, 0, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 0, 2, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 0, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 0, 1, 1, 2, 2, + 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 0, 0, 0, 2, 1, 1, 0, 0, 2, 1, 2, 0, 0, 2, 1, 0, 0, 2, 2, 1, 0, 1, 0, 2, 1, 1, 1, 0, 2, 1, + 2, 1, 0, 2, 1, 1, 0, 2, 2, 1, 0, 2, 0, 2, 1, 1, 2, 0, 2, 1, 2, 2, 0, 2, 1, 2, 0, 2, 2, 1, 0, 2, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, + 2, 0, 2, 2, 1, 0, 0, 1, 2, 1, 1, 0, 1, 2, 1, 2, 0, 1, 2, 1, 0, 1, 2, 2, 1, 0, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, + 0, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 0, 2, 1, 2, 2, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 0, 0, 0, 1, 2, + 1, 0, 0, 1, 2, 2, 0, 0, 1, 2, 0, 0, 2, 1, 2, 0, 1, 0, 1, 2, 1, 1, 0, 1, 2, 2, 1, 0, 1, 2, 1, 0, 2, 1, 2, 0, 2, 0, 1, 2, 1, 2, 0, 1, 2, + 2, 2, 0, 1, 2, 2, 0, 2, 1, 2, 0, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 0, 2, 1, 2, 0, 0, 1, 1, 2, 1, 0, 1, 1, 2, 2, 0, 1, 1, 2, + 0, 1, 2, 1, 2, 0, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 0, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 1, 2, + 0, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2 + ]; + + /// + /// Flat quint encodings for BISE blocks (128 rows × 3 quints, row-major). + /// + /// + /// See for more details. + /// + internal static readonly int[] FlatQuintEncodings = + [ + 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 0, 4, 0, 4, 4, 0, 4, 4, 4, 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 1, 0, + 1, 4, 0, 4, 4, 1, 4, 4, 4, 0, 2, 0, 1, 2, 0, 2, 2, 0, 3, 2, 0, 4, 2, 0, 2, 4, 0, 4, 4, 2, 4, 4, 4, 0, 3, 0, 1, 3, 0, + 2, 3, 0, 3, 3, 0, 4, 3, 0, 3, 4, 0, 4, 4, 3, 4, 4, 4, 0, 0, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 4, 0, 1, 0, 4, 1, 4, 0, 4, + 0, 4, 4, 0, 1, 1, 1, 1, 1, 2, 1, 1, 3, 1, 1, 4, 1, 1, 1, 4, 1, 4, 1, 4, 1, 4, 4, 0, 2, 1, 1, 2, 1, 2, 2, 1, 3, 2, 1, + 4, 2, 1, 2, 4, 1, 4, 2, 4, 2, 4, 4, 0, 3, 1, 1, 3, 1, 2, 3, 1, 3, 3, 1, 4, 3, 1, 3, 4, 1, 4, 3, 4, 3, 4, 4, 0, 0, 2, + 1, 0, 2, 2, 0, 2, 3, 0, 2, 4, 0, 2, 0, 4, 2, 2, 0, 4, 3, 0, 4, 0, 1, 2, 1, 1, 2, 2, 1, 2, 3, 1, 2, 4, 1, 2, 1, 4, 2, + 2, 1, 4, 3, 1, 4, 0, 2, 2, 1, 2, 2, 2, 2, 2, 3, 2, 2, 4, 2, 2, 2, 4, 2, 2, 2, 4, 3, 2, 4, 0, 3, 2, 1, 3, 2, 2, 3, 2, + 3, 3, 2, 4, 3, 2, 3, 4, 2, 2, 3, 4, 3, 3, 4, 0, 0, 3, 1, 0, 3, 2, 0, 3, 3, 0, 3, 4, 0, 3, 0, 4, 3, 0, 0, 4, 1, 0, 4, + 0, 1, 3, 1, 1, 3, 2, 1, 3, 3, 1, 3, 4, 1, 3, 1, 4, 3, 0, 1, 4, 1, 1, 4, 0, 2, 3, 1, 2, 3, 2, 2, 3, 3, 2, 3, 4, 2, 3, + 2, 4, 3, 0, 2, 4, 1, 2, 4, 0, 3, 3, 1, 3, 3, 2, 3, 3, 3, 3, 3, 4, 3, 3, 3, 4, 3, 0, 3, 4, 1, 3, 4 + ]; + + /// + /// The maximum ranges for BISE encoding. + /// + /// + /// These are the numbers between 1 and + /// that can be represented exactly as a number in the ranges + /// [0, 2^k), [0, 3 * 2^k), and [0, 5 * 2^k). + /// + internal static readonly int[] MaxRanges = [1, 2, 3, 4, 5, 7, 9, 11, 15, 19, 23, 31, 39, 47, 63, 79, 95, 127, 159, 191, 255]; + + // Encoding modes tried in descending alphabet size when picking the most space-efficient + // BISE packing for a given range (see InitPackingModeCache). + private static readonly BiseEncodingMode[] EncodingModesDescending = + [ + BiseEncodingMode.QuintEncoding, + BiseEncodingMode.TritEncoding, + BiseEncodingMode.BitEncoding, + ]; + + private static readonly (BiseEncodingMode Mode, int BitCount)[] PackingModeCache = InitPackingModeCache(); + + /// + /// The number of bits needed to encode the given number of values with respect to the + /// number of trits, quints, and bits specified by . + /// + public static (BiseEncodingMode Mode, int BitCount) GetPackingModeBitCount(int range) + { + Guard.MustBeGreaterThan(range, 0, nameof(range)); + Guard.MustBeLessThan(range, 1 << Log2MaxRangeForBits, nameof(range)); + + return PackingModeCache[range]; + } + + /// + /// Unchecked variant of for hot-path use where + /// is known to be in [1, 255] (the ASTC spec-valid range). + /// Skips argument validation — about two branches per call, which add up on the ~500K + /// BISE-decode calls a typical image requires. + /// + internal static (BiseEncodingMode Mode, int BitCount) GetPackingModeBitCountUnchecked(int range) + => PackingModeCache[range]; + + /// + /// Returns the overall bit count for a range of values encoded + /// + public static int GetBitCount(BiseEncodingMode encodingMode, int valuesCount, int bitCount) + { + int encodingBitCount = encodingMode switch + { + BiseEncodingMode.TritEncoding => ((valuesCount * 8) + 4) / 5, + BiseEncodingMode.QuintEncoding => ((valuesCount * 7) + 2) / 3, + BiseEncodingMode.BitEncoding => 0, + _ => throw new ArgumentOutOfRangeException(nameof(encodingMode), "Invalid encoding mode"), + }; + int baseBitCount = valuesCount * bitCount; + + return encodingBitCount + baseBitCount; + } + + /// + /// The number of bits needed to encode a given number of values within the range [0, ] (inclusive). + /// + public static int GetBitCountForRange(int valuesCount, int range) + { + (BiseEncodingMode mode, int bitCount) = GetPackingModeBitCount(range); + + return GetBitCount(mode, valuesCount, bitCount); + } + + /// + /// The size of a single ISE block in bits — the inverse of the packing computed by . + /// + public static int GetEncodedBlockSize(BiseEncodingMode mode, int bitCount) + { + (int blockSize, int extraBlockSize) = mode switch + { + BiseEncodingMode.TritEncoding => (5, 8), + BiseEncodingMode.QuintEncoding => (3, 7), + BiseEncodingMode.BitEncoding => (1, 0), + _ => (0, 0), + }; + + return extraBlockSize + (blockSize * bitCount); + } + + private static (BiseEncodingMode, int)[] InitPackingModeCache() + { + (BiseEncodingMode, int)[] cache = new (BiseEncodingMode, int)[1 << Log2MaxRangeForBits]; + + // Precompute for all valid ranges [1, 255] + for (int range = 1; range < cache.Length; range++) + { + int index = -1; + for (int i = 0; i < MaxRanges.Length; i++) + { + if (MaxRanges[i] >= range) + { + index = i; + break; + } + } + + int maxValue = index < 0 + ? MaxRanges[^1] + 1 + : MaxRanges[index] + 1; + + // Check QuintEncoding (5), TritEncoding (3), BitEncoding (1) in descending order + BiseEncodingMode encodingMode = BiseEncodingMode.Unknown; + foreach (BiseEncodingMode em in EncodingModesDescending) + { + if (maxValue % (int)em == 0 && int.IsPow2(maxValue / (int)em)) + { + encodingMode = em; + break; + } + } + + if (encodingMode == BiseEncodingMode.Unknown) + { + throw new InvalidOperationException($"Invalid range for BISE encoding: {range}"); + } + + cache[range] = (encodingMode, int.Log2(maxValue / (int)encodingMode)); + } + + return cache; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BoundedIntegerSequenceDecoder.cs b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BoundedIntegerSequenceDecoder.cs new file mode 100644 index 00000000..04316360 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/BoundedIntegerSequenceDecoder.cs @@ -0,0 +1,145 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding; + +/// +/// BISE decoder (ASTC spec §C.2.12) for bounded integer sequences. Stateless: callers pass +/// the BISE encoding mode and mantissa bit count directly (both typically already on hand +/// from ). +/// +internal static class BoundedIntegerSequenceDecoder +{ + /// + /// Decodes a sequence of bounded integers into a caller-provided span. + /// + /// The BISE encoding mode (bits, trits, or quints). + /// The number of mantissa bits per value (from the BISE packing). + /// The number of values to decode. + /// The source of values to decode from. + /// The span to write decoded values into. + /// Thrown when the encoded block size is too large. + /// Thrown when there are not enough bits to decode. + public static void Decode(BiseEncodingMode encoding, int bitCount, int valuesCount, ref BitStream bitSource, Span result) + { + int totalBitCount = BoundedIntegerSequenceCodec.GetBitCount(encoding, valuesCount, bitCount); + int bitsPerBlock = BoundedIntegerSequenceCodec.GetEncodedBlockSize(encoding, bitCount); + Guard.MustBeLessThan(bitsPerBlock, 64, nameof(bitsPerBlock)); + + // Fixed 5 ints (20 bytes) — one BISE block holds at most 5 trits or 3 quints (spec §C.2.12). + Span blockResult = stackalloc int[5]; + int resultIndex = 0; + int bitsRemaining = totalBitCount; + + while (bitsRemaining > 0) + { + int bitsToRead = Math.Min(bitsRemaining, bitsPerBlock); + if (!bitSource.TryGetBits(bitsToRead, out ulong blockBits)) + { + throw new InvalidOperationException("Not enough bits in BitStream to decode BISE block"); + } + + if (encoding == BiseEncodingMode.BitEncoding) + { + if (resultIndex < valuesCount) + { + result[resultIndex++] = (int)blockBits; + } + } + else + { + int decoded = DecodeISEBlock(encoding, blockBits, bitCount, blockResult); + for (int i = 0; i < decoded && resultIndex < valuesCount; ++i) + { + result[resultIndex++] = blockResult[i]; + } + } + + bitsRemaining -= bitsPerBlock; + } + + if (resultIndex < valuesCount) + { + throw new InvalidOperationException("Decoded fewer values than expected from BISE block"); + } + } + + /// + /// Decodes one trit/quint BISE block (ASTC spec §C.2.12) into . + /// Returns the number of values written (5 for trits, 3 for quints). Uses direct bit + /// extraction (no BitStream) and flat encoding tables for speed. + /// + private static int DecodeISEBlock(BiseEncodingMode mode, ulong encodedBlock, int encodedBitCount, Span result) + { + ulong mantissaMask = (1UL << encodedBitCount) - 1; + return mode == BiseEncodingMode.TritEncoding + ? DecodeTritBlock(encodedBlock, encodedBitCount, mantissaMask, result) + : DecodeQuintBlock(encodedBlock, encodedBitCount, mantissaMask, result); + } + + /// + /// Decodes a five-value trit block. The ASTC spec §C.2.12 layout interleaves mantissas + /// and an 8-bit packed trit selector as [m0, t0(2), m1, t1(2), m2, t2(1), m3, t3(2), m4, t4(1)]. + /// The 8 selector bits look up a row in the pre-flattened trit encoding table. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static int DecodeTritBlock(ulong encodedBlock, int encodedBitCount, ulong mantissaMask, Span result) + { + int bitPosition = 0; + int mantissa0 = (int)((encodedBlock >> bitPosition) & mantissaMask); + bitPosition += encodedBitCount; + ulong encodedTrits = (encodedBlock >> bitPosition) & 0x3; + bitPosition += 2; + int mantissa1 = (int)((encodedBlock >> bitPosition) & mantissaMask); + bitPosition += encodedBitCount; + encodedTrits |= ((encodedBlock >> bitPosition) & 0x3) << 2; + bitPosition += 2; + int mantissa2 = (int)((encodedBlock >> bitPosition) & mantissaMask); + bitPosition += encodedBitCount; + encodedTrits |= ((encodedBlock >> bitPosition) & 0x1) << 4; + bitPosition += 1; + int mantissa3 = (int)((encodedBlock >> bitPosition) & mantissaMask); + bitPosition += encodedBitCount; + encodedTrits |= ((encodedBlock >> bitPosition) & 0x3) << 5; + bitPosition += 2; + int mantissa4 = (int)((encodedBlock >> bitPosition) & mantissaMask); + encodedTrits |= ((encodedBlock >> (bitPosition + encodedBitCount)) & 0x1) << 7; + + int tritTableBase = (int)encodedTrits * 5; + result[0] = (BoundedIntegerSequenceCodec.FlatTritEncodings[tritTableBase] << encodedBitCount) | mantissa0; + result[1] = (BoundedIntegerSequenceCodec.FlatTritEncodings[tritTableBase + 1] << encodedBitCount) | mantissa1; + result[2] = (BoundedIntegerSequenceCodec.FlatTritEncodings[tritTableBase + 2] << encodedBitCount) | mantissa2; + result[3] = (BoundedIntegerSequenceCodec.FlatTritEncodings[tritTableBase + 3] << encodedBitCount) | mantissa3; + result[4] = (BoundedIntegerSequenceCodec.FlatTritEncodings[tritTableBase + 4] << encodedBitCount) | mantissa4; + return 5; + } + + /// + /// Decodes a three-value quint block (ASTC spec §C.2.12). The 7-bit packed quint + /// selector is interleaved as [m0, q0(3), m1, q1(2), m2, q2(2)] and indexes a row in + /// the pre-flattened quint encoding table. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static int DecodeQuintBlock(ulong encodedBlock, int encodedBitCount, ulong mantissaMask, Span result) + { + int bitPosition = 0; + int mantissa0 = (int)((encodedBlock >> bitPosition) & mantissaMask); + bitPosition += encodedBitCount; + ulong encodedQuints = (encodedBlock >> bitPosition) & 0x7; + bitPosition += 3; + int mantissa1 = (int)((encodedBlock >> bitPosition) & mantissaMask); + bitPosition += encodedBitCount; + encodedQuints |= ((encodedBlock >> bitPosition) & 0x3) << 3; + bitPosition += 2; + int mantissa2 = (int)((encodedBlock >> bitPosition) & mantissaMask); + encodedQuints |= ((encodedBlock >> (bitPosition + encodedBitCount)) & 0x3) << 5; + + int quintTableBase = (int)encodedQuints * 3; + result[0] = (BoundedIntegerSequenceCodec.FlatQuintEncodings[quintTableBase] << encodedBitCount) | mantissa0; + result[1] = (BoundedIntegerSequenceCodec.FlatQuintEncodings[quintTableBase + 1] << encodedBitCount) | mantissa1; + result[2] = (BoundedIntegerSequenceCodec.FlatQuintEncodings[quintTableBase + 2] << encodedBitCount) | mantissa2; + return 3; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/BitQuantizationMap.cs b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/BitQuantizationMap.cs new file mode 100644 index 00000000..5b9ecb71 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/BitQuantizationMap.cs @@ -0,0 +1,75 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding.Quantize; + +/// +/// Builds instances for the pure-bit BISE encoding mode +/// (no trits/quints). Bit-replicates each quantized value up to totalUnquantizedBits +/// width to derive its unquantized form. Used for both endpoint colour unquantization +/// (ASTC spec §C.2.13) and weight unquantization (§C.2.17). +/// +internal static class BitQuantizationMap +{ + /// Inclusive upper bound of the quantized slot index. range + 1 + /// must be a power of two. + /// Bit width of the unquantized output: 8 for endpoint + /// values, 6 for weights. + public static QuantizationMap Create(int range, int totalUnquantizedBits) + { + Guard.IsTrue(CountOnes(range + 1) == 1, nameof(range), "range + 1 must be a power of two."); + + int bitCount = QuantizationMap.Log2Floor(range + 1); + List unquantization = []; + List quantization = []; + + for (int bits = 0; bits <= range; bits++) + { + int unquantized = bits; + int unquantizedBitCount = bitCount; + while (unquantizedBitCount < totalUnquantizedBits) + { + int destinationShiftUp = Math.Min(bitCount, totalUnquantizedBits - unquantizedBitCount); + int sourceShiftDown = bitCount - destinationShiftUp; + unquantized <<= destinationShiftUp; + unquantized |= bits >> sourceShiftDown; + unquantizedBitCount += destinationShiftUp; + } + + if (unquantizedBitCount != totalUnquantizedBits) + { + throw new InvalidOperationException(); + } + + unquantization.Add(unquantized); + + if (bits > 0) + { + int previousUnquantized = unquantization[bits - 1]; + while (quantization.Count <= (previousUnquantized + unquantized) / 2) + { + quantization.Add(bits - 1); + } + } + + while (quantization.Count <= unquantized) + { + quantization.Add(bits); + } + } + + return new QuantizationMap([.. quantization], [.. unquantization]); + } + + private static int CountOnes(int value) + { + int count = 0; + while (value != 0) + { + count += value & 1; + value >>= 1; + } + + return count; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/Quantization.cs b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/Quantization.cs new file mode 100644 index 00000000..ce56a22a --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/Quantization.cs @@ -0,0 +1,235 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding.Quantize; + +internal static class Quantization +{ + public const int EndpointRangeMinValue = 5; + public const int WeightRangeMaxValue = 31; + + private static readonly SortedDictionary EndpointMaps = InitEndpointMaps(); + private static readonly SortedDictionary WeightMaps = InitWeightMaps(); + + // Flat lookup tables indexed by range value for O(1) access. + // Each slot maps to the QuantizationMap for the greatest supported range <= that index. + private static readonly QuantizationMap?[] EndpointMapByRange = BuildFlatLookup(EndpointMaps, 256); + private static readonly QuantizationMap?[] WeightMapByRange = BuildFlatLookup(WeightMaps, 32); + + // Pre-computed flat tables for weight unquantization: entry[quantizedValue] = final unquantized weight. + // Includes the dq > 32 -> dq + 1 adjustment. Indexed by weight range. + // Valid ranges: 1, 2, 3, 4, 5, 7, 9, 11, 15, 19, 23, 31 + private static readonly int[]?[] UnquantizeWeightsFlat = InitializeUnquantizeWeightsFlat(); + + // Pre-computed flat tables for endpoint unquantization. + // Indexed by range value. Valid ranges: 5, 7, 9, 11, 15, 19, 23, 31, 39, 47, 63, 79, 95, 127, 159, 191, 255 + private static readonly int[]?[] UnquantizeEndpointsFlat = InitializeUnquantizeEndpointsFlat(); + + public static int QuantizeCEValueToRange(int value, int rangeMaxValue) + { + Guard.MustBeBetweenOrEqualTo(rangeMaxValue, EndpointRangeMinValue, byte.MaxValue, nameof(rangeMaxValue)); + Guard.MustBeBetweenOrEqualTo(value, 0, byte.MaxValue, nameof(value)); + + return GetQuantMapForValueRange(rangeMaxValue).Quantize(value); + } + + public static int UnquantizeCEValueFromRange(int value, int rangeMaxValue) + { + Guard.MustBeBetweenOrEqualTo(rangeMaxValue, EndpointRangeMinValue, byte.MaxValue, nameof(rangeMaxValue)); + Guard.MustBeBetweenOrEqualTo(value, 0, rangeMaxValue, nameof(value)); + + return GetQuantMapForValueRange(rangeMaxValue).Unquantize(value); + } + + public static int QuantizeWeightToRange(int weight, int rangeMaxValue) + { + Guard.MustBeBetweenOrEqualTo(rangeMaxValue, 1, WeightRangeMaxValue, nameof(rangeMaxValue)); + Guard.MustBeBetweenOrEqualTo(weight, 0, 64, nameof(weight)); + + // ASTC spec §C.2.17: weight slot 33 is unused; collapse 34..64 to 33..63 before + // table lookup. The inverse (dequantized > 32 = +1) lives in UnquantizeWeightsFlat. + if (weight > 33) + { + weight -= 1; + } + + return GetQuantMapForWeightRange(rangeMaxValue).Quantize(weight); + } + + public static int UnquantizeWeightFromRange(int weight, int rangeMaxValue) + { + Guard.MustBeBetweenOrEqualTo(rangeMaxValue, 1, WeightRangeMaxValue, nameof(rangeMaxValue)); + Guard.MustBeBetweenOrEqualTo(weight, 0, rangeMaxValue, nameof(weight)); + + int dequantized = GetQuantMapForWeightRange(rangeMaxValue).Unquantize(weight); + if (dequantized > 32) + { + dequantized += 1; + } + + return dequantized; + } + + /// + /// Batch unquantize: uses pre-computed flat table for O(1) lookup per value. + /// No per-call validation, no conditional branch per weight. + /// + /// + /// Thrown when has no associated unquantization table — would + /// only happen on a malformed block that escaped 's + /// spec-bound checks. + /// + internal static void UnquantizeWeightsBatch(Span weights, int range) + { + int[]? table = UnquantizeWeightsFlat[range]; + Guard.NotNull(table, nameof(range)); + + for (int i = 0; i < weights.Length; i++) + { + weights[i] = table[weights[i]]; + } + } + + /// + /// Batch unquantize color endpoint values: uses pre-computed flat table. + /// No per-call validation, single array lookup per value. + /// + /// + /// Thrown when has no associated unquantization table — + /// would only happen on a malformed block that escaped 's + /// spec-bound checks. + /// + internal static void UnquantizeCEValuesBatch(Span values, int rangeMaxValue) + { + int[]? table = UnquantizeEndpointsFlat[rangeMaxValue]; + Guard.NotNull(table, nameof(rangeMaxValue)); + + for (int i = 0; i < values.Length; i++) + { + values[i] = table[values[i]]; + } + } + + private static SortedDictionary InitEndpointMaps() + => new() + { + { 5, TritQuantizationMap.Create(5, TritQuantizationMap.GetUnquantizedValue) }, + { 7, BitQuantizationMap.Create(7, 8) }, + { 9, QuintQuantizationMap.Create(9, QuintQuantizationMap.GetUnquantizedValue) }, + { 11, TritQuantizationMap.Create(11, TritQuantizationMap.GetUnquantizedValue) }, + { 15, BitQuantizationMap.Create(15, 8) }, + { 19, QuintQuantizationMap.Create(19, QuintQuantizationMap.GetUnquantizedValue) }, + { 23, TritQuantizationMap.Create(23, TritQuantizationMap.GetUnquantizedValue) }, + { 31, BitQuantizationMap.Create(31, 8) }, + { 39, QuintQuantizationMap.Create(39, QuintQuantizationMap.GetUnquantizedValue) }, + { 47, TritQuantizationMap.Create(47, TritQuantizationMap.GetUnquantizedValue) }, + { 63, BitQuantizationMap.Create(63, 8) }, + { 79, QuintQuantizationMap.Create(79, QuintQuantizationMap.GetUnquantizedValue) }, + { 95, TritQuantizationMap.Create(95, TritQuantizationMap.GetUnquantizedValue) }, + { 127, BitQuantizationMap.Create(127, 8) }, + { 159, QuintQuantizationMap.Create(159, QuintQuantizationMap.GetUnquantizedValue) }, + { 191, TritQuantizationMap.Create(191, TritQuantizationMap.GetUnquantizedValue) }, + { 255, BitQuantizationMap.Create(255, 8) }, + }; + + private static SortedDictionary InitWeightMaps() + => new() + { + { 1, BitQuantizationMap.Create(1, 6) }, + { 2, TritQuantizationMap.Create(2, TritQuantizationMap.GetUnquantizedWeight) }, + { 3, BitQuantizationMap.Create(3, 6) }, + { 4, QuintQuantizationMap.Create(4, QuintQuantizationMap.GetUnquantizedWeight) }, + { 5, TritQuantizationMap.Create(5, TritQuantizationMap.GetUnquantizedWeight) }, + { 7, BitQuantizationMap.Create(7, 6) }, + { 9, QuintQuantizationMap.Create(9, QuintQuantizationMap.GetUnquantizedWeight) }, + { 11, TritQuantizationMap.Create(11, TritQuantizationMap.GetUnquantizedWeight) }, + { 15, BitQuantizationMap.Create(15, 6) }, + { 19, QuintQuantizationMap.Create(19, QuintQuantizationMap.GetUnquantizedWeight) }, + { 23, TritQuantizationMap.Create(23, TritQuantizationMap.GetUnquantizedWeight) }, + { 31, BitQuantizationMap.Create(31, 6) }, + }; + + private static QuantizationMap?[] BuildFlatLookup(SortedDictionary maps, int size) + { + QuantizationMap?[] flat = new QuantizationMap?[size]; + QuantizationMap? current = null; + for (int i = 0; i < size; i++) + { + if (maps.TryGetValue(i, out QuantizationMap? map)) + { + current = map; + } + + flat[i] = current; + } + + return flat; + } + + /// + /// Returns the endpoint for the given range. Callers must + /// have already validated that is within + /// [, byte.MaxValue]; the public methods on + /// do this. Throws if the slot has no associated map. + /// + /// + /// Thrown when is outside the valid endpoint range. + /// + private static QuantizationMap GetQuantMapForValueRange(int r) + => (uint)r < (uint)EndpointMapByRange.Length && EndpointMapByRange[r] is { } map + ? map + : throw new ArgumentOutOfRangeException(nameof(r), r, "No endpoint quantization map for this range"); + + /// + /// Returns the weight for the given range. Callers must + /// have already validated that is within + /// [1, ]; the public methods on + /// do this. Throws if the slot has no associated map. + /// + /// + /// Thrown when is outside the valid weight range. + /// + private static QuantizationMap GetQuantMapForWeightRange(int r) + => (uint)r < (uint)WeightMapByRange.Length && WeightMapByRange[r] is { } map + ? map + : throw new ArgumentOutOfRangeException(nameof(r), r, "No weight quantization map for this range"); + + private static int[]?[] InitializeUnquantizeWeightsFlat() + { + int[]?[] tables = new int[]?[WeightRangeMaxValue + 1]; + foreach (KeyValuePair kvp in WeightMaps) + { + int range = kvp.Key; + QuantizationMap map = kvp.Value; + int[] table = new int[range + 1]; + for (int i = 0; i <= range; i++) + { + int dequantized = map.Unquantize(i); + table[i] = dequantized > 32 ? dequantized + 1 : dequantized; + } + + tables[range] = table; + } + + return tables; + } + + private static int[]?[] InitializeUnquantizeEndpointsFlat() + { + int[]?[] tables = new int[]?[256]; + foreach (KeyValuePair kvp in EndpointMaps) + { + int range = kvp.Key; + QuantizationMap map = kvp.Value; + int[] table = new int[range + 1]; + for (int i = 0; i <= range; i++) + { + table[i] = map.Unquantize(i); + } + + tables[range] = table; + } + + return tables; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/QuantizationMap.cs b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/QuantizationMap.cs new file mode 100644 index 00000000..50a04607 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/QuantizationMap.cs @@ -0,0 +1,78 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding.Quantize; + +/// +/// Pre-computed quantize/unquantize lookup tables for a single ASTC quantization range. +/// Both arrays are constructed once and the instance is immutable thereafter, built via +/// , , or . +/// +internal sealed class QuantizationMap +{ + private readonly int[] quantizationMap; + private readonly int[] unquantizationMap; + + /// Length 256 (or shorter); maps an unquantized value to its + /// nearest quantized slot. + /// Length range + 1; maps a quantized slot back to + /// its unquantized value. + public QuantizationMap(int[] quantizationMap, int[] unquantizationMap) + { + this.quantizationMap = quantizationMap; + this.unquantizationMap = unquantizationMap; + } + + public int Quantize(int x) + => (uint)x < (uint)this.quantizationMap.Length + ? this.quantizationMap[x] + : 0; + + public int Unquantize(int x) + => (uint)x < (uint)this.unquantizationMap.Length + ? this.unquantizationMap[x] + : 0; + + internal static int Log2Floor(int value) + { + int result = 0; + while ((1 << (result + 1)) <= value) + { + result++; + } + + return result; + } + + /// + /// Builds a quantize-table from an already-populated unquantize-table by, for every + /// unquantized value in [0, 255], picking the index in + /// whose value is closest. Used by and + /// ; builds its + /// quantize table inline because the structure of bit-replication makes the closest + /// match analytically derivable without a search. + /// + internal static int[] BuildQuantizationMapFromUnquantized(int[] unquantized) + { + int[] quantization = new int[256]; + for (int i = 0; i < 256; ++i) + { + int bestIndex = 0; + int bestScore = int.MaxValue; + for (int index = 0; index < unquantized.Length; ++index) + { + int diff = i - unquantized[index]; + int score = diff * diff; + if (score < bestScore) + { + bestIndex = index; + bestScore = score; + } + } + + quantization[i] = bestIndex; + } + + return quantization; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/QuintQuantizationMap.cs b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/QuintQuantizationMap.cs new file mode 100644 index 00000000..5ce08b46 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/QuintQuantizationMap.cs @@ -0,0 +1,76 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding.Quantize; + +/// +/// Builds instances for the quint BISE encoding mode plus the +/// per-quint unquantization tables for endpoint colour values (ASTC spec §C.2.13) and +/// weights (§C.2.17). +/// +internal static class QuintQuantizationMap +{ + /// Inclusive upper bound of the quantized slot index. range + 1 + /// must be divisible by 5. + /// Per-quint unquantization function — typically + /// or . + public static QuantizationMap Create(int range, Func unquantFunc) + { + Guard.IsTrue((range + 1) % 5 == 0, nameof(range), "range + 1 must be a multiple of 5."); + + int bitsPowerOfTwo = (range + 1) / 5; + int bitCount = bitsPowerOfTwo == 0 ? 0 : QuantizationMap.Log2Floor(bitsPowerOfTwo); + + int[] unquantization = new int[5 * (1 << bitCount)]; + int idx = 0; + for (int quint = 0; quint < 5; ++quint) + { + for (int bits = 0; bits < (1 << bitCount); ++bits) + { + unquantization[idx++] = unquantFunc(quint, bits, range); + } + } + + int[] quantization = QuantizationMap.BuildQuantizationMapFromUnquantized(unquantization); + return new QuantizationMap(quantization, unquantization); + } + + internal static int GetUnquantizedValue(int quint, int bits, int range) + { + int a = (bits & 1) != 0 ? 0x1FF : 0; + (int b, int c) = range switch + { + 9 => (0, 113), + 19 => ((bits >> 1) & 0x1) is var x ? ((x << 2) | (x << 3) | (x << 8), 54) : default, + 39 => ((bits >> 1) & 0x3) is var x ? ((x >> 1) | (x << 1) | (x << 7), 26) : default, + 79 => ((bits >> 1) & 0x7) is var x ? ((x >> 1) | (x << 6), 13) : default, + 159 => ((bits >> 1) & 0xF) is var x ? ((x >> 3) | (x << 5), 6) : default, + _ => throw new ArgumentException("Illegal quint encoding") + }; + int t = (quint * c) + b; + t ^= a; + t = (a & 0x80) | (t >> 2); + return t; + } + + internal static int GetUnquantizedWeight(int quint, int bits, int range) + { + if (range == 4) + { + int[] weights = [0, 16, 32, 47, 63]; + return weights[quint]; + } + + int a = (bits & 1) != 0 ? 0x7F : 0; + (int b, int c) = range switch + { + 9 => (0, 28), + 19 => ((bits >> 1) & 0x1) is var x ? ((x << 1) | (x << 6), 13) : default, + _ => throw new ArgumentException("Illegal quint encoding") + }; + int t = (quint * c) + b; + t ^= a; + t = (a & 0x20) | (t >> 2); + return t; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/TritQuantizationMap.cs b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/TritQuantizationMap.cs new file mode 100644 index 00000000..d40ad9e2 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BiseEncoding/Quantize/TritQuantizationMap.cs @@ -0,0 +1,85 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding.Quantize; + +/// +/// Builds instances for the trit BISE encoding mode plus the +/// per-trit unquantization tables for endpoint colour values (ASTC spec §C.2.13) and +/// weights (§C.2.17). +/// +internal static class TritQuantizationMap +{ + /// Inclusive upper bound of the quantized slot index. range + 1 + /// must be divisible by 3. + /// Per-trit unquantization function — typically + /// or . + public static QuantizationMap Create(int range, Func unquantFunc) + { + Guard.IsTrue((range + 1) % 3 == 0, nameof(range), "range + 1 must be a multiple of 3."); + + int bitsPowerOfTwo = (range + 1) / 3; + int bitCount = bitsPowerOfTwo == 0 ? 0 : QuantizationMap.Log2Floor(bitsPowerOfTwo); + + int[] unquantization = new int[3 * (1 << bitCount)]; + int idx = 0; + for (int trit = 0; trit < 3; ++trit) + { + for (int bits = 0; bits < (1 << bitCount); ++bits) + { + unquantization[idx++] = unquantFunc(trit, bits, range); + } + } + + int[] quantization = QuantizationMap.BuildQuantizationMapFromUnquantized(unquantization); + return new QuantizationMap(quantization, unquantization); + } + + internal static int GetUnquantizedValue(int trit, int bits, int range) + { + int a = (bits & 1) != 0 ? 0x1FF : 0; + (int b, int c) = range switch + { + 5 => (0, 204), + 11 => ((bits >> 1) & 0x1) is var x ? ((x << 1) | (x << 2) | (x << 4) | (x << 8), 93) : default, + 23 => ((bits >> 1) & 0x3) is var x ? (x | (x << 2) | (x << 7), 44) : default, + 47 => ((bits >> 1) & 0x7) is var x ? (x | (x << 6), 22) : default, + 95 => ((bits >> 1) & 0xF) is var x ? ((x >> 2) | (x << 5), 11) : default, + 191 => ((bits >> 1) & 0x1F) is var x ? ((x >> 4) | (x << 4), 5) : default, + _ => throw new ArgumentException("Illegal trit encoding") + }; + int t = (trit * c) + b; + t ^= a; + t = (a & 0x80) | (t >> 2); + return t; + } + + internal static int GetUnquantizedWeight(int trit, int bits, int range) + { + if (range == 2) + { + return trit switch + { + 0 => 0, + 1 => 32, + _ => 63 + }; + } + + int a = (bits & 1) != 0 ? 0x7F : 0; + (int b, int c) = range switch + { + 5 => (0, 50), + 11 => ((bits >> 1) & 1) is var x + ? (x | (x << 2) | (x << 6), 23) + : default, + 23 => ((bits >> 1) & 0x3) is var x + ? (x | (x << 5), 11) + : default, + _ => throw new ArgumentException("Illegal trit encoding") + }; + int t = (trit * c) + b; + t ^= a; + return (a & 0x20) | (t >> 2); + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/BlockDestination.cs b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/BlockDestination.cs new file mode 100644 index 00000000..c3c16387 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/BlockDestination.cs @@ -0,0 +1,12 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; + +/// +/// Destination pixel rectangle for one ASTC block in the output image: the top-left pixel +/// offset, the clipped copy extents (equal to the footprint for interior blocks, smaller +/// for right/bottom edge blocks), and a flag set when the block's full footprint fits in +/// the image and the fused direct-to-image fast path is usable. +/// +internal readonly record struct BlockDestination(int DstBaseX, int DstBaseY, int CopyWidth, int CopyHeight, bool IsFullInteriorBlock); diff --git a/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/BlockModeDecoder.cs b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/BlockModeDecoder.cs new file mode 100644 index 00000000..2040f5cd --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/BlockModeDecoder.cs @@ -0,0 +1,396 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; +using SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding; +using SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; + +/// +/// Single-pass parser for the 128-bit ASTC block mode (spec §C.2.9–§C.2.11, §C.2.16). Produces a +/// populated record describing the block's weight grid, partition +/// count, colour endpoint modes, dual-plane flag, and the bit-range metadata the per-block +/// decoders need. Reserved and illegal encodings are rejected inline (IsValid = false). +/// +internal static class BlockModeDecoder +{ + // Spec §C.2.10 Table C.2.7: weight range table indexed by r[2:0] + h. Entries marked -1 + // are reserved and reject the block. Two six-entry groups (low precision, high precision). + private static ReadOnlySpan WeightRanges + => [-1, -1, 1, 2, 3, 4, 5, 7, -1, -1, 9, 11, 15, 19, 23, 31]; + + // Spec §C.2.11: extra-CEM bit count by partition count. Indexed [partitionCount - 1]. + private static ReadOnlySpan ExtraCemBitsForPartition => [0, 2, 5, 8]; + + // Spec §C.2.22: valid BISE endpoint ranges in descending order. The parser picks the + // largest that fits in the colour bit budget computed by the §C.2.22 remaining-bits + // procedure. + private static ReadOnlySpan ValidEndpointRanges + => [255, 191, 159, 127, 95, 79, 63, 47, 39, 31, 23, 19, 15, 11, 9, 7, 5]; + + /// + /// Decodes all block-mode info from raw 128-bit ASTC block data in a single pass. + /// Returns a with IsValid = false if the block is illegal or + /// reserved, or with IsVoidExtent = true for void-extent blocks (spec §C.2.23). + /// + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + public static BlockInfo Decode(UInt128 bits) + { + ulong lowBits = bits.Low(); + + // Void extent: bits[0:9] == 0x1FC (9 bits). See ASTC spec §C.2.23. + if ((lowBits & 0x1FF) == 0x1FC) + { + // Bit 9 is the dynamic-range flag: 1 = HDR (FP16), 0 = LDR (UNORM16). + bool voidExtentIsHdr = (lowBits & (1UL << 9)) != 0; + return IsVoidExtentWellFormed(bits, lowBits) + ? new BlockInfo( + isVoidExtent: true, + isHdr: voidExtentIsHdr, + weights: default, + partitionCount: 0, + dualPlane: default, + colors: default, + endpointModes: default) + : BlockInfo.MalformedVoidExtent; + } + + if (!TryDecodeWeightGrid(lowBits, out int gridWidth, out int gridHeight, out uint rBits, out bool isWidthA6HeightB6)) + { + return default; + } + + if (!TryResolveWeightRange(lowBits, rBits, isWidthA6HeightB6, out int weightRange)) + { + return default; + } + + // WidthA6HeightB6 mode never has dual plane; otherwise check bit 10. + bool isDualPlane = !isWidthA6HeightB6 && ((lowBits >> 10) & 1) != 0; + int partitionCount = 1 + (int)((lowBits >> 11) & 0x3); + + if (!TryComputeWeightBitCount(gridWidth, gridHeight, isDualPlane, partitionCount, weightRange, out int weightBitCount)) + { + return default; + } + + // Fixed 4 entries (max partition count per spec §C.2.10) + Span cems = stackalloc ColorEndpointMode[4]; + int colorValuesCount = DecodeEndpointModes(bits, lowBits, partitionCount, weightBitCount, cems, out int numExtraCEMBits); + if (colorValuesCount is < 0 or > 18) + { + return default; + } + + // Dual plane and color bit positions depend on weight + extra-CEM bit allocation. + int dualPlaneBitStartPos = 128 - weightBitCount - numExtraCEMBits; + if (isDualPlane) + { + dualPlaneBitStartPos -= 2; + } + + int dualPlaneChannel = isDualPlane + ? (int)BitOperations.GetBits(bits, dualPlaneBitStartPos, 2).Low() + : -1; + + int colorStartBit = (partitionCount == 1) ? 17 : 29; + int maxColorBits = dualPlaneBitStartPos - colorStartBit; + + if (!TryFitColorRange(colorValuesCount, maxColorBits, out int colorValuesRange, out int colorBitCount)) + { + return default; + } + + BlockInfo.EndpointModeBuffer modes = default; + modes[0] = cems[0]; + modes[1] = cems[1]; + modes[2] = cems[2]; + modes[3] = cems[3]; + + bool isHdr = false; + for (int i = 0; i < partitionCount; i++) + { + if (cems[i].IsHdr()) + { + isHdr = true; + break; + } + } + + return new BlockInfo( + isVoidExtent: false, + isHdr: isHdr, + weights: new WeightGrid(gridWidth, gridHeight, weightRange, weightBitCount), + partitionCount, + dualPlane: new DualPlaneInfo(isDualPlane, dualPlaneChannel), + colors: new ColorEndpoints(colorStartBit, colorBitCount, colorValuesRange, colorValuesCount), + endpointModes: modes); + } + + /// + /// Decodes the block-mode / weight-grid dimensions section of the block mode per ASTC spec + /// §C.2.8 Table 24. Returns false for reserved block-mode encodings. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool TryDecodeWeightGrid( + ulong lowBits, + out int gridWidth, + out int gridHeight, + out uint rBits, + out bool isWidthA6HeightB6) + { + isWidthA6HeightB6 = false; + + if ((lowBits & 0x3) != 0) + { + // bits[0..1] != 0 : layout A (modeBits = bits[2..3]). + ulong modeBits = (lowBits >> 2) & 0x3; + int a = (int)((lowBits >> 5) & 0x3); + + (gridWidth, gridHeight) = modeBits switch + { + 0 => ((int)((lowBits >> 7) & 0x3) + 4, a + 2), + 1 => ((int)((lowBits >> 7) & 0x3) + 8, a + 2), + 2 => (a + 2, (int)((lowBits >> 7) & 0x3) + 8), + 3 when ((lowBits >> 8) & 1) != 0 => ((int)((lowBits >> 7) & 0x1) + 2, a + 2), + 3 => (a + 2, (int)((lowBits >> 7) & 0x1) + 6), + _ => default // unreachable — modeBits is 2 bits wide. + }; + + // Layout A: R0 = bit 4, R1 = bit 0, R2 = bit 1; pack as rBits = R2*4 + R1*2 + R0. + rBits = (uint)(((lowBits >> 4) & 1) | ((lowBits & 0x3) << 1)); + return true; + } + + // bits[0..1] == 0 : layout B (modeBits = bits[5..8]). + ulong layoutBBits = (lowBits >> 5) & 0xF; + int aLow = (int)((lowBits >> 5) & 0x3); + + switch (layoutBBits) + { + case var _ when (layoutBBits & 0xC) == 0x0: + if ((lowBits & 0xF) == 0) + { + // Reserved: all of bits[0..4] are zero. + gridWidth = gridHeight = 0; + rBits = 0; + return false; + } + + gridWidth = 12; + gridHeight = aLow + 2; + break; + case var _ when (layoutBBits & 0xC) == 0x4: + gridWidth = aLow + 2; + gridHeight = 12; + break; + case 0xC: + gridWidth = 6; + gridHeight = 10; + break; + case 0xD: + gridWidth = 10; + gridHeight = 6; + break; + case var _ when (layoutBBits & 0xC) == 0x8: + gridWidth = aLow + 6; + gridHeight = (int)((lowBits >> 9) & 0x3) + 6; + isWidthA6HeightB6 = true; + break; + default: + // Reserved block mode. + gridWidth = gridHeight = 0; + rBits = 0; + return false; + } + + // Layout B: R0 = bit 4, R1 = bit 2, R2 = bit 3; pack as rBits = R2*4 + R1*2 + R0. + rBits = (uint)(((lowBits >> 4) & 1) | (((lowBits >> 2) & 0x3) << 1)); + return true; + } + + /// + /// Looks up the weight range from the 3-bit r selector plus the high-precision h bit per + /// ASTC spec §C.2.7 Table 23. Returns false if the resulting index points at a reserved slot. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool TryResolveWeightRange(ulong lowBits, uint rBits, bool isWidthA6HeightB6, out int weightRange) + { + uint hBit = isWidthA6HeightB6 ? 0u : (uint)((lowBits >> 9) & 1); + int rangeIdx = (int)((hBit << 3) | rBits); + if ((uint)rangeIdx >= (uint)WeightRanges.Length) + { + weightRange = 0; + return false; + } + + weightRange = WeightRanges[rangeIdx]; + return weightRange >= 0; + } + + /// + /// Validates weight count constraints and resolves the weight bit count per ASTC spec + /// §C.2.11. Rejects blocks with more than 64 weights, illegal 4-partition-with-dual-plane + /// combos, and weight bit totals outside the [24, 96] window. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool TryComputeWeightBitCount( + int gridWidth, + int gridHeight, + bool isDualPlane, + int partitionCount, + int weightRange, + out int weightBitCount) + { + int numWeights = gridWidth * gridHeight; + if (isDualPlane) + { + numWeights *= 2; + } + + // 4 partitions + dual plane is illegal per spec §C.2.11. + if (numWeights > 64 || (partitionCount == 4 && isDualPlane)) + { + weightBitCount = 0; + return false; + } + + weightBitCount = BoundedIntegerSequenceCodec.GetBitCountForRange(numWeights, weightRange); + return weightBitCount is >= 24 and <= 96; + } + + /// + /// Decodes per-partition colour endpoint modes per ASTC spec §C.2.11 and returns the total + /// colour-values count. The shared-CEM and non-shared-CEM paths both populate + /// (length 4) and tell the caller how many extra CEM bits were + /// consumed, which affects subsequent bit layout. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static int DecodeEndpointModes( + UInt128 bits, + ulong lowBits, + int partitionCount, + int weightBitCount, + Span cems, + out int numExtraCEMBits) + { + numExtraCEMBits = 0; + + if (partitionCount == 1) + { + ColorEndpointMode mode = (ColorEndpointMode)((lowBits >> 13) & 0xF); + cems[0] = mode; + return mode.GetColorValuesCount(); + } + + // Multi-partition: either shared CEM (marker 0) or per-partition (non-zero marker). + ulong sharedCemMarker = (lowBits >> 23) & 0x3; + if (sharedCemMarker == 0) + { + ColorEndpointMode sharedCem = (ColorEndpointMode)((lowBits >> 25) & 0xF); + int colorValuesCount = 0; + for (int i = 0; i < partitionCount; i++) + { + cems[i] = sharedCem; + colorValuesCount += sharedCem.GetColorValuesCount(); + } + + return colorValuesCount; + } + + numExtraCEMBits = ExtraCemBitsForPartition[partitionCount - 1]; + + int extraCemStartPos = 128 - numExtraCEMBits - weightBitCount; + UInt128 extraCem = BitOperations.GetBits(bits, extraCemStartPos, numExtraCEMBits); + + ulong cemval = (lowBits >> 23) & 0x3F; + int baseCem = (int)(((cemval & 0x3) - 1) * 4); + cemval >>= 2; + ulong cembits = cemval | (extraCem.Low() << 4); + + // 1 selector bit per partition (c[i]), then 2 mode bits per partition (m). + // Fixed 4 ints (16 bytes) — max partition count per spec §C.2.10. + Span c = stackalloc int[4]; + for (int i = 0; i < partitionCount; i++) + { + c[i] = (int)(cembits & 0x1); + cembits >>= 1; + } + + int total = 0; + for (int i = 0; i < partitionCount; i++) + { + int m = (int)(cembits & 0x3); + cembits >>= 2; + ColorEndpointMode mode = (ColorEndpointMode)(baseCem + (4 * c[i]) + m); + cems[i] = mode; + total += mode.GetColorValuesCount(); + } + + return total; + } + + /// + /// Finds the greatest valid BISE endpoint range whose encoding fits within + /// per ASTC spec §C.2.22. Returns false if the minimum + /// encoding already exceeds the budget. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool TryFitColorRange( + int colorValuesCount, + int maxColorBits, + out int colorValuesRange, + out int colorBitCount) + { + // Spec §C.2.22 minimum: 13 bits per 5 color values, rounded up — derived from + // the smallest valid BISE encoding (range 5 = 1 trit + 1 bit, i.e. 8/5 + 1 ≈ 13/5 + // bits per value). + int requiredColorBits = ((13 * colorValuesCount) + 4) / 5; + if (maxColorBits < requiredColorBits) + { + colorValuesRange = 0; + colorBitCount = 0; + return false; + } + + foreach (int rv in ValidEndpointRanges) + { + int bitCount = BoundedIntegerSequenceCodec.GetBitCountForRange(colorValuesCount, rv); + if (bitCount <= maxColorBits) + { + colorValuesRange = rv; + colorBitCount = bitCount; + return true; + } + } + + colorValuesRange = 0; + colorBitCount = 0; + return false; + } + + /// + /// Inline void-extent validation per ASTC spec §C.2.23: reserved bits 10..11 must be 0x3, + /// and either the texel coordinates are all-ones (sentinel for "no constraint") or they + /// form two valid [min, max] pairs with min < max. + /// + private static bool IsVoidExtentWellFormed(UInt128 bits, ulong lowBits) + { + if (BitOperations.GetBits(bits, 10, 2).Low() != 0x3UL) + { + return false; + } + + int c0 = (int)BitOperations.GetBits(lowBits, 12, 13); + int c1 = (int)BitOperations.GetBits(lowBits, 25, 13); + int c2 = (int)BitOperations.GetBits(lowBits, 38, 13); + int c3 = (int)BitOperations.GetBits(lowBits, 51, 13); + + const int all1s = (1 << 13) - 1; + bool coordsAll1s = c0 == all1s && c1 == all1s && c2 == all1s && c3 == all1s; + + return coordsAll1s || (c0 < c1 && c2 < c3); + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/FusedBlockDecoder.cs b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/FusedBlockDecoder.cs new file mode 100644 index 00000000..ecbae6f3 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/FusedBlockDecoder.cs @@ -0,0 +1,143 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; +using SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding; +using SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding.Quantize; +using SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; + +/// +/// Shared decode core for the fused (zero-allocation) ASTC block decode pipeline. +/// Contains BISE extraction and weight infill used by both LDR and HDR decoders. +/// +internal static class FusedBlockDecoder +{ + /// + /// Shared decode core for the fused fast paths. Performs the per-block stages described + /// in ASTC spec §C.2.7 (overall block decode procedure) in one inlined sweep: + /// BISE decode the colour values (§C.2.12) and unquantize them (§C.2.13), decode the + /// endpoint pair (§C.2.14), BISE decode the weights (§C.2.12), unquantize them (§C.2.17), + /// and infill from the weight grid to the texel grid (§C.2.18). Populates + /// and returns the decoded endpoint pair. + /// + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + internal static ColorEndpointPair DecodeFusedCore( + UInt128 bits, in BlockInfo info, Footprint footprint, Span texelWeights) + { + // 1. BISE decode color endpoint values. + // Single-partition fused path: up to 8 ints (32 bytes) — single-mode CEM caps values at 8. + int colorCount = info.EndpointMode0.GetColorValuesCount(); + Span colors = stackalloc int[colorCount]; + DecodeBiseValues(bits, info.Colors.StartBit, info.Colors.BitCount, info.Colors.Range, colorCount, colors); + + // 2. Batch unquantize color values, then decode endpoint pair + Quantization.UnquantizeCEValuesBatch(colors, info.Colors.Range); + ColorEndpointPair endpointPair = EndpointCodec.Decode(colors, info.EndpointMode0); + + // 3. BISE decode weights. + // Up to 64 ints (256 bytes) — spec §C.2.11 caps single-plane gridSize at 64. + int gridSize = info.Weights.Width * info.Weights.Height; + Span gridWeights = stackalloc int[gridSize]; + DecodeBiseWeights(bits, info.Weights.BitCount, info.Weights.Range, gridSize, gridWeights); + + // 4. Batch unquantize weights + Quantization.UnquantizeWeightsBatch(gridWeights, info.Weights.Range); + + // 5. Infill weights from grid to texels (or pass through if identity mapping) + if (info.Weights.Width == footprint.Width && info.Weights.Height == footprint.Height) + { + gridWeights[..footprint.PixelCount].CopyTo(texelWeights); + } + else + { + DecimationInfo decimationInfo = DecimationTable.Get(footprint, info.Weights.Width, info.Weights.Height); + DecimationTable.InfillWeights(gridWeights, decimationInfo, texelWeights); + } + + return endpointPair; + } + + /// + /// Decodes BISE-encoded (ASTC spec §C.2.12) colour endpoint values from the specified + /// bit region of the block. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void DecodeBiseValues(UInt128 bits, int startBit, int bitCount, int range, int valuesCount, Span result) + { + UInt128 source = (bits >> startBit) & UInt128Extensions.OnesMask(bitCount); + DecodeBiseSequence(source, range, valuesCount, result); + } + + /// + /// Decodes BISE-encoded (ASTC spec §C.2.12) weights from the reversed high-end of the + /// block. Weight data is stored MSB-first at the top of the 128-bit block, so the bits + /// are reversed before decode so the BISE reader can consume them in normal LSB-first + /// order. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void DecodeBiseWeights(UInt128 bits, int weightBitCount, int weightRange, int count, Span result) + { + UInt128 source = UInt128Extensions.ReverseBits(bits) & UInt128Extensions.OnesMask(weightBitCount); + DecodeBiseSequence(source, weightRange, count, result); + } + + /// + /// Decodes a BISE sequence from bits pre-normalised to start at bit 0. + /// For bit-only encoding, extracts values directly via shifts (no BitStream). + /// Trit/quint encodings fall back to the full BISE decoder. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void DecodeBiseSequence(UInt128 source, int range, int count, Span result) + { + // Range is in [1, 255] by construction — BlockInfo's ColorValuesRange/WeightRange come + // from BlockModeDecoder's spec-bound tables, so skip the redundant per-block bounds check. + (BiseEncodingMode encMode, int bitsPerValue) = BoundedIntegerSequenceCodec.GetPackingModeBitCountUnchecked(range); + + if (encMode != BiseEncodingMode.BitEncoding) + { + BitStream stream = new(source, 128); + BoundedIntegerSequenceDecoder.Decode(encMode, bitsPerValue, count, ref stream, result); + return; + } + + ulong mask = (1UL << bitsPerValue) - 1; + ulong lowBits = source.Low(); + int totalBits = count * bitsPerValue; + + if (totalBits <= 64) + { + for (int i = 0; i < count; i++) + { + result[i] = (int)(lowBits & mask); + lowBits >>= bitsPerValue; + } + + return; + } + + ulong highBits = source.High(); + int bitPos = 0; + for (int i = 0; i < count; i++) + { + if (bitPos < 64) + { + ulong val = (lowBits >> bitPos) & mask; + if (bitPos + bitsPerValue > 64) + { + val |= (highBits << (64 - bitPos)) & mask; + } + + result[i] = (int)val; + } + else + { + result[i] = (int)((highBits >> (bitPos - 64)) & mask); + } + + bitPos += bitsPerValue; + } + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/FusedLdrBlockDecoder.cs b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/FusedLdrBlockDecoder.cs new file mode 100644 index 00000000..1d283dbc --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/FusedLdrBlockDecoder.cs @@ -0,0 +1,140 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; +using System.Runtime.Intrinsics; +using SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; + +/// +/// LDR pixel writers and entry points for the fused decode pipeline. +/// All methods handle single-partition, non-dual-plane blocks. +/// +internal static class FusedLdrBlockDecoder +{ + /// + /// Fused LDR decode to a contiguous buffer. + /// Only handles single-partition, non-dual-plane, LDR blocks. + /// + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + internal static void DecompressBlockFusedLdr(UInt128 bits, in BlockInfo info, Footprint footprint, Span buffer) + => DecompressBlock( + bits, + in info, + footprint, + buffer, + dstBaseX: 0, + dstBaseY: 0, + dstRowStride: footprint.Width * BlockInfo.ChannelsPerPixel); + + /// + /// Fused LDR decode writing directly to image buffer at strided positions. + /// Only handles single-partition, non-dual-plane, LDR blocks. + /// + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + internal static void DecompressBlockFusedLdrToImage( + UInt128 bits, + in BlockInfo info, + Footprint footprint, + int dstBaseX, + int dstBaseY, + int imageWidth, + Span imageBuffer) + => DecompressBlock( + bits, + in info, + footprint, + imageBuffer, + dstBaseX, + dstBaseY, + dstRowStride: imageWidth * BlockInfo.ChannelsPerPixel); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void DecompressBlock( + UInt128 bits, + in BlockInfo info, + Footprint footprint, + Span buffer, + int dstBaseX, + int dstBaseY, + int dstRowStride) + { + // Up to 12×12 = 144 ints (576 bytes) for the largest 2D footprint per spec §C.2.4. + Span texelWeights = stackalloc int[footprint.PixelCount]; + ColorEndpointPair endpointPair = FusedBlockDecoder.DecodeFusedCore(bits, in info, footprint, texelWeights); + WriteLdrPixels(buffer, footprint, dstBaseX, dstBaseY, dstRowStride, in endpointPair, texelWeights); + } + + /// + /// Writes a footprint-sized block of LDR pixels into at position + /// (, ) with the given row stride. + /// Uses SIMD where hardware-accelerated; scalar otherwise. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static void WriteLdrPixels( + Span buffer, + Footprint footprint, + int dstBaseX, + int dstBaseY, + int dstRowStride, + in ColorEndpointPair endpointPair, + Span texelWeights) + { + int lowR = endpointPair.LdrLow.R, lowG = endpointPair.LdrLow.G, lowB = endpointPair.LdrLow.B, lowA = endpointPair.LdrLow.A; + int highR = endpointPair.LdrHigh.R, highG = endpointPair.LdrHigh.G, highB = endpointPair.LdrHigh.B, highA = endpointPair.LdrHigh.A; + + int footprintWidth = footprint.Width; + int footprintHeight = footprint.Height; + + for (int pixelY = 0; pixelY < footprintHeight; pixelY++) + { + int dstRowOffset = ((dstBaseY + pixelY) * dstRowStride) + (dstBaseX * BlockInfo.ChannelsPerPixel); + int srcRowBase = pixelY * footprintWidth; + int pixelX = 0; + + if (Vector128.IsHardwareAccelerated) + { + int limit = footprintWidth - 3; + for (; pixelX < limit; pixelX += 4) + { + int texelIndex = srcRowBase + pixelX; + Vector128 weights = Vector128.Create( + texelWeights[texelIndex], + texelWeights[texelIndex + 1], + texelWeights[texelIndex + 2], + texelWeights[texelIndex + 3]); + SimdHelpers.Write4PixelLdr( + buffer, + dstRowOffset + (pixelX * BlockInfo.ChannelsPerPixel), + lowR, + lowG, + lowB, + lowA, + highR, + highG, + highB, + highA, + weights); + } + } + + for (; pixelX < footprintWidth; pixelX++) + { + SimdHelpers.WriteSinglePixelLdr( + buffer, + dstRowOffset + (pixelX * BlockInfo.ChannelsPerPixel), + lowR, + lowG, + lowB, + lowA, + highR, + highG, + highB, + highA, + texelWeights[srcRowBase + pixelX]); + } + } + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/IBlockPipeline.cs b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/IBlockPipeline.cs new file mode 100644 index 00000000..824c4d98 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/IBlockPipeline.cs @@ -0,0 +1,94 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; + +/// +/// Pipeline strategy for the shared image-decode loop in . Each +/// ASTC decode profile (spec §C.2.5 — LDR or HDR mode) provides a concrete implementation. +/// +/// Pixel element type — for LDR, for HDR. +internal interface IBlockPipeline + where T : unmanaged +{ + /// + /// Returns true if is decodable under this profile. The LDR + /// pipeline returns false for HDR-mode blocks (spec §C.2.19, §C.2.25 — HDR endpoint + /// formats are reserved in the LDR profile and produce the error colour). The HDR + /// pipeline accepts every legal block. + /// + /// Decoded block info. + /// True if the block can be decoded by this pipeline. + public bool IsBlockLegal(in BlockInfo info); + + /// + /// Writes the spec-mandated error colour (ASTC spec §C.2.19, §C.2.24) into a + /// footprint-sized region of starting at offset 0. Magenta + /// (R=1, G=0, B=1, A=1) in both profiles. + /// + /// Block footprint. + /// Scratch or image buffer; the first footprint.PixelCount + /// pixels are overwritten. + public void WriteErrorColor(Footprint footprint, Span buffer); + + /// + /// Writes the spec-mandated error colour into the image buffer at + /// (, ) for a footprint-sized + /// region, clipped to × . + /// Used at edge blocks where the footprint extends beyond the image. + /// + /// Block footprint. + /// Destination x origin in pixels. + /// Destination y origin in pixels. + /// Clipped block width in pixels. + /// Clipped block height in pixels. + /// Image width in pixels (row stride in pixels). + /// Destination image buffer. + public void WriteErrorColorClipped( + Footprint footprint, + int dstBaseX, + int dstBaseY, + int copyWidth, + int copyHeight, + int imageWidth, + Span imageBuffer); + + /// + /// Fused fast path writing straight to the image buffer at + /// (, ). + /// Handles the common shape — single-partition, single-plane, + /// non-void-extent (spec §C.2.10–§C.2.20) — by fusing BISE + /// decode + unquantise + weight infill + pixel write. + /// + /// Raw 128-bit ASTC block. + /// Decoded block info. + /// Block footprint. + /// Destination x origin in pixels. + /// Destination y origin in pixels. + /// Image width in pixels (row stride in pixels). + /// Destination image buffer. + public void FusedToImage(UInt128 blockBits, in BlockInfo info, Footprint footprint, int dstBaseX, int dstBaseY, int imageWidth, Span imageBuffer); + + /// + /// Fused fast path writing to a per-block scratch buffer (used at + /// image edges that need cropping). Same decode shape as . + /// + /// Raw 128-bit ASTC block. + /// Decoded block info. + /// Block footprint. + /// Scratch buffer sized for one full block. + public void FusedToScratch(UInt128 blockBits, in BlockInfo info, Footprint footprint, Span decodedPixels); + + /// + /// General pipeline writer for blocks the fused path cannot handle: + /// void-extent (spec §C.2.23), multi-partition (spec §C.2.21), and dual-plane (spec §C.2.20). + /// Implementations forward to the appropriate decode entry. + /// + /// Raw 128-bit ASTC block. + /// Decoded block info. + /// Block footprint. + /// Scratch buffer sized for one full block. + public void LogicalWrite(UInt128 blockBits, in BlockInfo info, Footprint footprint, Span decodedPixels); +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/IPixelWriter.cs b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/IPixelWriter.cs new file mode 100644 index 00000000..61b56d58 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/IPixelWriter.cs @@ -0,0 +1,43 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; + +/// +/// Per-pixel writer strategy for the general (logical-block) decode loop in . +/// +/// Pixel element type — for LDR (UNORM8 RGBA), for HDR (float32 RGBA). +internal interface IPixelWriter + where T : unmanaged +{ + /// + /// Writes one pixel at buffer[offset..offset+4] using + /// for every channel. + /// + /// Destination pixel buffer. + /// Element offset of the pixel's first channel. + /// Per-partition endpoint pair for this texel. + /// Unquantised weight (0..64) for every channel. + void WritePixel(Span buffer, int offset, in ColorEndpointPair endpoint, int weight); + + /// + /// Writes one pixel where the channel identified by + /// uses instead of + /// (ASTC spec §C.2.20). + /// + /// Destination pixel buffer. + /// Element offset of the pixel's first channel. + /// Per-partition endpoint pair for this texel. + /// Unquantised weight (0..64) for the three primary-plane channels. + /// RGBA channel index (0..3) driven by the secondary plane. + /// Unquantised weight (0..64) for the dual-plane channel at this texel. + void WritePixelDualPlane( + Span buffer, + int offset, + in ColorEndpointPair endpoint, + int primaryWeight, + int dualPlaneChannel, + int dualPlaneWeight); +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LdrPipeline.cs b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LdrPipeline.cs new file mode 100644 index 00000000..459d2237 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LdrPipeline.cs @@ -0,0 +1,71 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; + +/// +/// implementation for the LDR (byte RGBA) decode profile +/// (ASTC spec §C.2.5 "LDR Mode"). HDR-mode blocks are reserved in the LDR profile per §C.2.25 +/// and produce the error colour (magenta) per §C.2.19, §C.2.24. +/// +internal readonly struct LdrPipeline : IBlockPipeline +{ + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IsBlockLegal(in BlockInfo info) => !info.IsHdr; + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void WriteErrorColor(Footprint footprint, Span buffer) + => FillMagenta(buffer[..(footprint.PixelCount * BlockInfo.ChannelsPerPixel)]); + + /// + public void WriteErrorColorClipped( + Footprint footprint, + int dstBaseX, + int dstBaseY, + int copyWidth, + int copyHeight, + int imageWidth, + Span imageBuffer) + { + int rowElements = copyWidth * BlockInfo.ChannelsPerPixel; + for (int pixelY = 0; pixelY < copyHeight; pixelY++) + { + int dstOffset = (((dstBaseY + pixelY) * imageWidth) + dstBaseX) * BlockInfo.ChannelsPerPixel; + FillMagenta(imageBuffer.Slice(dstOffset, rowElements)); + } + } + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void FusedToImage(UInt128 blockBits, in BlockInfo info, Footprint footprint, int dstBaseX, int dstBaseY, int imageWidth, Span imageBuffer) + => FusedLdrBlockDecoder.DecompressBlockFusedLdrToImage(blockBits, in info, footprint, dstBaseX, dstBaseY, imageWidth, imageBuffer); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void FusedToScratch(UInt128 blockBits, in BlockInfo info, Footprint footprint, Span decodedPixels) + => FusedLdrBlockDecoder.DecompressBlockFusedLdr(blockBits, in info, footprint, decodedPixels); + + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void LogicalWrite(UInt128 blockBits, in BlockInfo info, Footprint footprint, Span decodedPixels) + => LogicalBlock.DecodeToBytes(blockBits, in info, footprint, decodedPixels); + + /// + /// Spec §C.2.19 error colour: opaque magenta (0xFF, 0x00, 0xFF, 0xFF) as UNORM8 RGBA. + /// + private static void FillMagenta(Span buffer) + { + for (int i = 0; i < buffer.Length; i += BlockInfo.ChannelsPerPixel) + { + buffer[i] = 0xFF; + buffer[i + 1] = 0x00; + buffer[i + 2] = 0xFF; + buffer[i + 3] = 0xFF; + } + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LdrPixelWriter.cs b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LdrPixelWriter.cs new file mode 100644 index 00000000..434def5f --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LdrPixelWriter.cs @@ -0,0 +1,52 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; +using SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; + +/// +/// LDR — writes UNORM8 RGBA bytes via the scalar SIMD helpers. +/// +internal readonly struct LdrPixelWriter : IPixelWriter +{ + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void WritePixel(Span buffer, int offset, in ColorEndpointPair endpoint, int weight) + => SimdHelpers.WriteSinglePixelLdr( + buffer, + offset, + endpoint.LdrLow.R, + endpoint.LdrLow.G, + endpoint.LdrLow.B, + endpoint.LdrLow.A, + endpoint.LdrHigh.R, + endpoint.LdrHigh.G, + endpoint.LdrHigh.B, + endpoint.LdrHigh.A, + weight); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void WritePixelDualPlane( + Span buffer, + int offset, + in ColorEndpointPair endpoint, + int primaryWeight, + int dualPlaneChannel, + int dualPlaneWeight) + => SimdHelpers.WriteSinglePixelLdrDualPlane( + buffer, + offset, + endpoint.LdrLow.R, + endpoint.LdrLow.G, + endpoint.LdrLow.B, + endpoint.LdrLow.A, + endpoint.LdrHigh.R, + endpoint.LdrHigh.G, + endpoint.LdrHigh.B, + endpoint.LdrHigh.A, + primaryWeight, + dualPlaneChannel, + dualPlaneWeight); +} diff --git a/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LogicalBlock.cs b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LogicalBlock.cs new file mode 100644 index 00000000..52d6fdd8 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/BlockDecoding/LogicalBlock.cs @@ -0,0 +1,302 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; +using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding.Quantize; +using SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.BlockDecoding; + +/// +/// General-purpose ASTC block decoder for blocks the fused fast paths cannot handle — +/// void-extent (spec §C.2.23), multi-partition (spec §C.2.21), and dual-plane (spec §C.2.20). +/// +internal static class LogicalBlock +{ + /// + /// Decodes a block to its UNORM8 RGBA pixels. HDR-endpoint blocks must not reach this + /// method: the LDR entry points in reject HDR content per + /// ASTC spec §C.2.19, so every partition's endpoint here is LDR. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void DecodeToBytes(UInt128 bits, in BlockInfo info, Footprint footprint, Span pixels) + { + if (!info.IsValid) + { + return; + } + + // Conditional stackalloc isn't legal inside an expression; split the dual-plane case + // into a separate frame so the secondary-plane buffer is only stackalloc'd when needed. + if (info.DualPlane.Enabled && !info.IsVoidExtent) + { + DecodeToBytesDualPlane(bits, in info, footprint, pixels); + return; + } + + // Up to 12×12 = 144 ints (576 bytes) for the largest 2D footprint per spec §C.2.4. + Span weights = stackalloc int[footprint.PixelCount]; + DecodedBlockState state = DecodeSinglePlane(bits, in info, footprint, weights); + + WriteAllPixels(footprint, pixels, in state); + } + + [MethodImpl(MethodImplOptions.NoInlining)] + private static void DecodeToBytesDualPlane(UInt128 bits, in BlockInfo info, Footprint footprint, Span pixels) + { + // Two weight planes for dual-plane blocks (spec §C.2.20). Up to 2 × 144 = 288 ints + // (1152 bytes) at the largest 12×12 footprint. + Span weights = stackalloc int[footprint.PixelCount]; + Span secondaryWeights = stackalloc int[footprint.PixelCount]; + DecodedBlockState state = DecodeDualPlane(bits, in info, footprint, weights, secondaryWeights); + DualPlane dualPlane = new() { Weights = secondaryWeights, Channel = info.DualPlane.Channel }; + + WriteAllPixelsDualPlane(footprint, pixels, in state, in dualPlane); + } + + /// + /// Builds the for a single-plane or void-extent block. + /// + private static DecodedBlockState DecodeSinglePlane( + UInt128 bits, + in BlockInfo info, + Footprint footprint, + Span weights) + { + DecodedBlockState state = default; + state.Weights = weights; + + if (info.IsVoidExtent) + { + state.Endpoints[0] = DecodeVoidExtentEndpoint(bits, info.IsHdr); + weights.Clear(); + state.PartitionAssignment = Partition.GetSinglePartition(footprint).Assignment; + return state; + } + + DecodeEndpointsFromBits(bits, in info, ref state.Endpoints); + DecodeAndInfillWeights(bits, in info, footprint, weights, default); + state.PartitionAssignment = ResolvePartitionAssignment(bits, info.PartitionCount, footprint); + return state; + } + + /// + /// Builds the for a dual-plane block (spec §C.2.20), + /// filling with the second plane's per-texel weights. + /// + private static DecodedBlockState DecodeDualPlane( + UInt128 bits, + in BlockInfo info, + Footprint footprint, + Span weights, + Span secondaryWeights) + { + DecodedBlockState state = default; + state.Weights = weights; + DecodeEndpointsFromBits(bits, in info, ref state.Endpoints); + DecodeAndInfillWeights(bits, in info, footprint, weights, secondaryWeights); + state.PartitionAssignment = ResolvePartitionAssignment(bits, info.PartitionCount, footprint); + return state; + } + + /// + /// BISE-decodes (spec §C.2.12) + unquantises (spec §C.2.13) the per-partition color + /// endpoint values into (one entry per partition, colour + /// value count per mode from §C.2.14). + /// + private static void DecodeEndpointsFromBits(UInt128 bits, in BlockInfo info, ref EndpointBuffer endpoints) + { + // Up to 18 ints (72 bytes) — BlockModeDecoder rejects blocks with Colors.Count > 18. + Span colors = stackalloc int[info.Colors.Count]; + FusedBlockDecoder.DecodeBiseValues( + bits, + info.Colors.StartBit, + info.Colors.BitCount, + info.Colors.Range, + info.Colors.Count, + colors); + Quantization.UnquantizeCEValuesBatch(colors, info.Colors.Range); + + int colorIndex = 0; + for (int i = 0; i < info.PartitionCount; i++) + { + ColorEndpointMode mode = info.GetEndpointMode(i); + int colorCount = mode.GetColorValuesCount(); + ReadOnlySpan slice = colors.Slice(colorIndex, colorCount); + endpoints[i] = EndpointCodec.Decode(slice, mode); + colorIndex += colorCount; + } + } + + /// + /// Returns the cached partition-assignment map. Multi-partition blocks use the 10-bit + /// partition id from bits [13..22] (spec §C.2.10) and the partition hash function + /// (spec §C.2.21); single-partition blocks share an all-zero map per footprint. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static ReadOnlySpan ResolvePartitionAssignment(UInt128 bits, int partitionCount, Footprint footprint) + => partitionCount > 1 + ? Partition.GetASTCPartition( + footprint, + partitionCount, + (int)BitOperations.GetBits(bits.Low(), 13, 10)).Assignment + : Partition.GetSinglePartition(footprint).Assignment; + + /// + /// BISE-decodes (spec §C.2.12), unquantises (spec §C.2.17), and infills the weight grid + /// (spec §C.2.18) into . For dual-plane blocks + /// (spec §C.2.20) the secondary plane is decoded into ; + /// otherwise is ignored. + /// + private static void DecodeAndInfillWeights( + UInt128 bits, + in BlockInfo info, + Footprint footprint, + Span primaryWeights, + Span secondaryWeights) + { + int gridSize = info.Weights.Width * info.Weights.Height; + bool isDualPlane = info.DualPlane.Enabled; + int totalWeights = isDualPlane ? gridSize * 2 : gridSize; + + // Up to 128 ints (512 bytes) — spec §C.2.11 caps total weights (gridSize × planes) at 64 + // for single-plane and 128 (i.e. 64 × 2) for dual-plane. + Span rawWeights = stackalloc int[totalWeights]; + FusedBlockDecoder.DecodeBiseWeights( + bits, + info.Weights.BitCount, + info.Weights.Range, + totalWeights, + rawWeights); + + DecimationInfo decimationInfo = DecimationTable.Get(footprint, info.Weights.Width, info.Weights.Height); + + if (!isDualPlane) + { + Quantization.UnquantizeWeightsBatch(rawWeights, info.Weights.Range); + DecimationTable.InfillWeights(rawWeights[..gridSize], decimationInfo, primaryWeights); + return; + } + + // Spec §C.2.20: the two planes' weights are interleaved — even indices drive the + // main plane, odd the secondary plane. Each plane has up to 64 ints (256 bytes); spec + // §C.2.11 caps gridSize × 2 ≤ 128, so gridSize ≤ 64 for dual-plane. + Span plane0 = stackalloc int[gridSize]; + Span plane1 = stackalloc int[gridSize]; + for (int i = 0; i < gridSize; i++) + { + plane0[i] = rawWeights[i * 2]; + plane1[i] = rawWeights[(i * 2) + 1]; + } + + Quantization.UnquantizeWeightsBatch(plane0, info.Weights.Range); + Quantization.UnquantizeWeightsBatch(plane1, info.Weights.Range); + + DecimationTable.InfillWeights(plane0, decimationInfo, primaryWeights); + DecimationTable.InfillWeights(plane1, decimationInfo, secondaryWeights); + } + + /// + /// Reads the four 16-bit RGBA channels from the high half of a void-extent block + /// (ASTC spec §C.2.23) and wraps them in a . LDR void-extent + /// channels are UNORM16 (reduced to byte range for the LDR output path). HDR void-extent + /// blocks are rejected upstream by ; the HDR path + /// will land in a follow-up PR. + /// + private static ColorEndpointPair DecodeVoidExtentEndpoint(UInt128 bits, bool isHdr) + { + if (isHdr) + { + throw new NotSupportedException("HDR void-extent decoding is not yet implemented."); + } + + ulong high = bits.High(); + ushort r = (ushort)(high & 0xFFFF); + ushort g = (ushort)((high >> 16) & 0xFFFF); + ushort b = (ushort)((high >> 32) & 0xFFFF); + ushort a = (ushort)((high >> 48) & 0xFFFF); + + Rgba32 ldrColor = new((byte)(r >> 8), (byte)(g >> 8), (byte)(b >> 8), (byte)(a >> 8)); + return ColorEndpointPair.Ldr(ldrColor, ldrColor); + } + + /// + /// Generic single-plane pixel-write loop. Each iteration looks up the partition's + /// endpoint and dispatches to for the actual write. + /// Constraining to a struct allows the JIT to specialise + /// and inline the per-pixel call. + /// + private static void WriteAllPixels(Footprint footprint, Span buffer, in DecodedBlockState state) + where TWriter : struct, IPixelWriter + where T : unmanaged + { + TWriter writer = default; + int pixelCount = footprint.PixelCount; + for (int i = 0; i < pixelCount; i++) + { + ref readonly ColorEndpointPair endpoint = ref state.Endpoints[state.PartitionAssignment[i]]; + writer.WritePixel(buffer, i * BlockInfo.ChannelsPerPixel, in endpoint, state.Weights[i]); + } + } + + /// + /// Generic dual-plane pixel-write loop (ASTC spec §C.2.20). Same shape as + /// but the channel named by + /// uses the secondary plane's per-texel weight. + /// + private static void WriteAllPixelsDualPlane( + Footprint footprint, + Span buffer, + in DecodedBlockState state, + in DualPlane dualPlane) + where TWriter : struct, IPixelWriter + where T : unmanaged + { + TWriter writer = default; + int dpChannel = dualPlane.Channel; + int pixelCount = footprint.PixelCount; + for (int i = 0; i < pixelCount; i++) + { + ref readonly ColorEndpointPair endpoint = ref state.Endpoints[state.PartitionAssignment[i]]; + writer.WritePixelDualPlane(buffer, i * BlockInfo.ChannelsPerPixel, in endpoint, state.Weights[i], dpChannel, dualPlane.Weights[i]); + } + } + + /// + /// Inline storage for up to 4 per-partition values + /// (spec §C.2.10 caps partition count at 4). Used as a stack-local buffer to hold the + /// decoded endpoints during a single call. + /// + [InlineArray(4)] + private struct EndpointBuffer + { +#pragma warning disable CS0169, IDE0051, S1144 // Accessed by runtime via [InlineArray] + private ColorEndpointPair element0; +#pragma warning restore CS0169, IDE0051, S1144 + } + + /// + /// State common to single-plane and dual-plane blocks: per-partition endpoints, primary + /// per-texel weights, and the partition-assignment map. Stack-only — holds a stack-local + /// and a . + /// + private ref struct DecodedBlockState + { + public EndpointBuffer Endpoints; + public Span Weights; + public ReadOnlySpan PartitionAssignment; + } + + /// + /// Secondary weight plane for dual-plane blocks (ASTC spec §C.2.20). The channel + /// identified by uses these per-texel weights instead of the + /// primary plane's. + /// + private ref struct DualPlane + { + public Span Weights; + public int Channel; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointMode.cs b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointMode.cs new file mode 100644 index 00000000..d14e50dd --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointMode.cs @@ -0,0 +1,38 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; + +/// +/// ASTC supports 16 color endpoint encoding schemes, known as endpoint modes +/// +/// +/// The options for endpoint modes let you vary the following: +/// +/// The number of color channels. For example, luminance, luminance+alpha, rgb, or rgba +/// The encoding method. For example, direct, base+offset, base+scale, or quantization level +/// The data range. For example, low dynamic range or High Dynamic Range +/// +/// +internal enum ColorEndpointMode +{ + LdrLumaDirect = 0, + LdrLumaBaseOffset, + HdrLumaLargeRange, + HdrLumaSmallRange, + LdrLumaAlphaDirect, + LdrLumaAlphaBaseOffset, + LdrRgbBaseScale, + HdrRgbBaseScale, + LdrRgbDirect, + LdrRgbBaseOffset, + LdrRgbBaseScaleTwoA, + HdrRgbDirect, + LdrRgbaDirect, + LdrRgbaBaseOffset, + HdrRgbDirectLdrAlpha, + HdrRgbDirectHdrAlpha, + + // Number of endpoint modes defined by the ASTC specification. + ColorEndpointModeCount +} diff --git a/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointModeExtensions.cs b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointModeExtensions.cs new file mode 100644 index 00000000..7ceccf86 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointModeExtensions.cs @@ -0,0 +1,31 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; + +internal static class ColorEndpointModeExtensions +{ + public static int GetEndpointModeClass(this ColorEndpointMode mode) + => (int)mode / 4; + + public static int GetColorValuesCount(this ColorEndpointMode mode) + => (mode.GetEndpointModeClass() + 1) * 2; + + /// + /// Determines whether the specified endpoint mode uses HDR (High Dynamic Range) encoding. + /// + /// + /// True if the mode is one of the 6 HDR modes (2, 3, 7, 11, 14, 15), false otherwise. + /// + public static bool IsHdr(this ColorEndpointMode mode) + => mode switch + { + ColorEndpointMode.HdrLumaLargeRange => true, // Mode 2 + ColorEndpointMode.HdrLumaSmallRange => true, // Mode 3 + ColorEndpointMode.HdrRgbBaseScale => true, // Mode 7 + ColorEndpointMode.HdrRgbDirect => true, // Mode 11 + ColorEndpointMode.HdrRgbDirectLdrAlpha => true, // Mode 14 + ColorEndpointMode.HdrRgbDirectHdrAlpha => true, // Mode 15 + _ => false + }; +} diff --git a/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointPair.cs b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointPair.cs new file mode 100644 index 00000000..b4c11fd5 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/ColorEndpointPair.cs @@ -0,0 +1,32 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.InteropServices; +using SixLabors.ImageSharp.PixelFormats; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; + +/// +/// A value-type discriminated union representing either an LDR or HDR color endpoint pair. +/// +[StructLayout(LayoutKind.Auto)] +internal struct ColorEndpointPair +{ + public bool IsHdr; + + // LDR fields (used when IsHdr == false) + public Rgba32 LdrLow; + public Rgba32 LdrHigh; + + // HDR fields (used when IsHdr == true) + public Rgba64 HdrLow; + public Rgba64 HdrHigh; + public bool AlphaIsLdr; + public bool ValuesAreLns; + + public static ColorEndpointPair Ldr(Rgba32 low, Rgba32 high) + => new() { IsHdr = false, LdrLow = low, LdrHigh = high }; + + public static ColorEndpointPair Hdr(Rgba64 low, Rgba64 high, bool alphaIsLdr = false, bool valuesAreLns = true) + => new() { IsHdr = true, HdrLow = low, HdrHigh = high, AlphaIsLdr = alphaIsLdr, ValuesAreLns = valuesAreLns }; +} diff --git a/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/EndpointCodec.cs b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/EndpointCodec.cs new file mode 100644 index 00000000..32bd4875 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/EndpointCodec.cs @@ -0,0 +1,174 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Textures.Compression.Astc.BiseEncoding.Quantize; +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; +using static SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding.Rgba32Extensions; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; + +internal static class EndpointCodec +{ + /// + /// Decodes color endpoints for the specified mode from already-unquantized values. + /// Handles LDR endpoint modes (ASTC spec §C.2.14). HDR endpoint modes are rejected + /// upstream by and will land in + /// a follow-up PR. + /// + /// + /// Quantized input should be run through first. + /// + public static ColorEndpointPair Decode(ReadOnlySpan unquantizedValues, ColorEndpointMode mode) + { + if (mode.IsHdr()) + { + throw new NotSupportedException("HDR endpoint decoding is not yet implemented."); + } + + (Rgba32 low, Rgba32 high) = mode switch + { + ColorEndpointMode.LdrLumaDirect => DecodeLumaDirect(unquantizedValues), + ColorEndpointMode.LdrLumaBaseOffset => DecodeLumaBaseOffset(unquantizedValues), + ColorEndpointMode.LdrLumaAlphaDirect => DecodeLumaAlphaDirect(unquantizedValues), + ColorEndpointMode.LdrLumaAlphaBaseOffset => DecodeLumaAlphaBaseOffset(unquantizedValues), + ColorEndpointMode.LdrRgbBaseScale => DecodeRgbBaseScale(unquantizedValues), + ColorEndpointMode.LdrRgbDirect => DecodeRgbDirect(unquantizedValues), + ColorEndpointMode.LdrRgbBaseOffset => DecodeRgbBaseOffset(unquantizedValues), + ColorEndpointMode.LdrRgbBaseScaleTwoA => DecodeRgbBaseScaleTwoAlpha(unquantizedValues), + ColorEndpointMode.LdrRgbaDirect => DecodeRgbaDirect(unquantizedValues), + ColorEndpointMode.LdrRgbaBaseOffset => DecodeRgbaBaseOffset(unquantizedValues), + _ => throw new ArgumentOutOfRangeException(nameof(mode), mode, "Unknown endpoint mode"), + }; + + return ColorEndpointPair.Ldr(low, high); + } + + // Each decoder below implements one LDR endpoint mode per ASTC spec §C.2.14 + // (Color Endpoint Decoding). Inputs are the unquantized color values for that mode. + + // Mode 0 (§C.2.14 "LDR luminance, direct"): two 8-bit luma values. + private static (Rgba32 Low, Rgba32 High) DecodeLumaDirect(ReadOnlySpan v) + => (ClampedRgba32(v[0], v[0], v[0]), + ClampedRgba32(v[1], v[1], v[1])); + + // Mode 1 (§C.2.14 "LDR luminance, base+offset"): v0 plus the top bits of v1 form the low + // luma; the bottom six bits of v1 are a saturated offset added to form the high luma. + private static (Rgba32 Low, Rgba32 High) DecodeLumaBaseOffset(ReadOnlySpan v) + { + int l0 = (v[0] >> 2) | (v[1] & 0xC0); + int l1 = Math.Min(l0 + (v[1] & 0x3F), 0xFF); + return (ClampedRgba32(l0, l0, l0), + ClampedRgba32(l1, l1, l1)); + } + + // Mode 4 (§C.2.14 "LDR luminance+alpha, direct"): v0,v1 → luma; v2,v3 → alpha. + private static (Rgba32 Low, Rgba32 High) DecodeLumaAlphaDirect(ReadOnlySpan v) + => (ClampedRgba32(v[0], v[0], v[0], v[2]), + ClampedRgba32(v[1], v[1], v[1], v[3])); + + // Mode 5 (§C.2.14 "LDR luminance+alpha, base+offset"): TransferPrecision unpacks each + // (high,low) pair into a signed offset b and a base a. + private static (Rgba32 Low, Rgba32 High) DecodeLumaAlphaBaseOffset(ReadOnlySpan v) + { + (int bL, int aL) = BitOperations.TransferPrecision(v[1], v[0]); + (int bA, int aA) = BitOperations.TransferPrecision(v[3], v[2]); + int highLuma = aL + bL; + return (ClampedRgba32(aL, aL, aL, aA), + ClampedRgba32(highLuma, highLuma, highLuma, aA + bA)); + } + + // Mode 6 (§C.2.14 "LDR RGB, base+scale"): high = (v0,v1,v2); low = high * v3 >> 8. + private static (Rgba32 Low, Rgba32 High) DecodeRgbBaseScale(ReadOnlySpan v) + { + Rgba32 low = ClampedRgba32((v[0] * v[3]) >> 8, (v[1] * v[3]) >> 8, (v[2] * v[3]) >> 8); + Rgba32 high = ClampedRgba32(v[0], v[1], v[2]); + return (low, high); + } + + // Mode 8 (§C.2.14 "LDR RGB, direct"): if the high triple is dimmer than the low triple + // the endpoints are swapped and the R/G channels are averaged against the B channel + // ("blue contract" per §C.2.14). + private static (Rgba32 Low, Rgba32 High) DecodeRgbDirect(ReadOnlySpan v) + { + int sumLow = v[0] + v[2] + v[4]; + int sumHigh = v[1] + v[3] + v[5]; + + if (sumHigh < sumLow) + { + return (ClampedRgba32((v[1] + v[5]) >> 1, (v[3] + v[5]) >> 1, v[5]), + ClampedRgba32((v[0] + v[4]) >> 1, (v[2] + v[4]) >> 1, v[4])); + } + + return (ClampedRgba32(v[0], v[2], v[4]), + ClampedRgba32(v[1], v[3], v[5])); + } + + // Mode 9 (§C.2.14 "LDR RGB, base+offset"): per-channel (base, offset). When the sum of + // offsets is negative the blue-contract branch applies, otherwise low = base and + // high = base + offset. + private static (Rgba32 Low, Rgba32 High) DecodeRgbBaseOffset(ReadOnlySpan v) + { + (int bR, int aR) = BitOperations.TransferPrecision(v[1], v[0]); + (int bG, int aG) = BitOperations.TransferPrecision(v[3], v[2]); + (int bB, int aB) = BitOperations.TransferPrecision(v[5], v[4]); + + if (bR + bG + bB < 0) + { + return (ClampedRgba32((aR + bR + aB + bB) >> 1, (aG + bG + aB + bB) >> 1, aB + bB), + ClampedRgba32((aR + aB) >> 1, (aG + aB) >> 1, aB)); + } + + return (ClampedRgba32(aR, aG, aB), + ClampedRgba32(aR + bR, aG + bG, aB + bB)); + } + + // Mode 10 (§C.2.14 "LDR RGB, base+scale plus two alpha values"): same RGB scaling as + // mode 6, but v4 and v5 carry independent low/high alpha values. + private static (Rgba32 Low, Rgba32 High) DecodeRgbBaseScaleTwoAlpha(ReadOnlySpan v) + { + Rgba32 low = ClampedRgba32( + r: (v[0] * v[3]) >> 8, + g: (v[1] * v[3]) >> 8, + b: (v[2] * v[3]) >> 8, + a: v[4]); + Rgba32 high = ClampedRgba32(v[0], v[1], v[2], v[5]); + return (low, high); + } + + // Mode 12 (§C.2.14 "LDR RGBA, direct"): like RGB-direct plus alpha. When the high + // triple is dimmer the endpoints are swapped (RGB via blue-contract, alpha by + // index-swap). + private static (Rgba32 Low, Rgba32 High) DecodeRgbaDirect(ReadOnlySpan v) + { + int sumLow = v[0] + v[2] + v[4]; + int sumHigh = v[1] + v[3] + v[5]; + + if (sumHigh >= sumLow) + { + return (ClampedRgba32(v[0], v[2], v[4], v[6]), + ClampedRgba32(v[1], v[3], v[5], v[7])); + } + + return (ClampedRgba32((v[1] + v[5]) >> 1, (v[3] + v[5]) >> 1, v[5], v[7]), + ClampedRgba32((v[0] + v[4]) >> 1, (v[2] + v[4]) >> 1, v[4], v[6])); + } + + // Mode 13 (§C.2.14 "LDR RGBA, base+offset"): mode 9 extended with alpha. + private static (Rgba32 Low, Rgba32 High) DecodeRgbaBaseOffset(ReadOnlySpan v) + { + (int bR, int aR) = BitOperations.TransferPrecision(v[1], v[0]); + (int bG, int aG) = BitOperations.TransferPrecision(v[3], v[2]); + (int bB, int aB) = BitOperations.TransferPrecision(v[5], v[4]); + (int bA, int aA) = BitOperations.TransferPrecision(v[7], v[6]); + + if (bR + bG + bB < 0) + { + return (ClampedRgba32((aR + bR + aB + bB) >> 1, (aG + bG + aB + bB) >> 1, aB + bB, aA + bA), + ClampedRgba32((aR + aB) >> 1, (aG + aB) >> 1, aB, aA)); + } + + return (ClampedRgba32(aR, aG, aB, aA), + ClampedRgba32(aR + bR, aG + bG, aB + bB, aA + bA)); + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/Rgba32Extensions.cs b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/Rgba32Extensions.cs new file mode 100644 index 00000000..996b4976 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/ColorEncoding/Rgba32Extensions.cs @@ -0,0 +1,83 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; +using SixLabors.ImageSharp.PixelFormats; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; + +/// +/// ASTC-specific extension methods and helpers for . +/// +internal static class Rgba32Extensions +{ + /// + /// Creates an from integer values, clamping each channel to [0, 255]. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Rgba32 ClampedRgba32(int r, int g, int b, int a = byte.MaxValue) + => new( + (byte)Math.Clamp(r, byte.MinValue, byte.MaxValue), + (byte)Math.Clamp(g, byte.MinValue, byte.MaxValue), + (byte)Math.Clamp(b, byte.MinValue, byte.MaxValue), + (byte)Math.Clamp(a, byte.MinValue, byte.MaxValue)); + + /// + /// Gets the rounded arithmetic mean of the R, G, and B channels. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static byte GetAverage(this Rgba32 color) + { + int sum = color.R + color.G + color.B; + return (byte)(((sum * 256) + 384) / 768); + } + + /// + /// Gets the channel value at the specified index: 0=R, 1=G, 2=B, 3=A. + /// + /// + /// Reads the sequential [R, G, B, A] byte layout of directly. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int GetChannel(this in Rgba32 color, int i) + { + if ((uint)i >= 4) + { + throw new ArgumentOutOfRangeException(nameof(i), $"Index must be between 0 and 3. Actual value: {i}."); + } + + return Unsafe.Add(ref Unsafe.As(ref Unsafe.AsRef(in color)), i); + } + + /// + /// Computes the sum of squared per-channel differences across all four RGBA channels. + /// + public static int SquaredError(Rgba32 a, Rgba32 b) + { + int dr = a.R - b.R; + int dg = a.G - b.G; + int db = a.B - b.B; + int da = a.A - b.A; + return (dr * dr) + (dg * dg) + (db * db) + (da * da); + } + + /// + /// Computes the sum of squared per-channel differences for the RGB channels only, ignoring alpha. + /// + public static int SquaredErrorRgb(Rgba32 a, Rgba32 b) + { + int dr = a.R - b.R; + int dg = a.G - b.G; + int db = a.B - b.B; + return (dr * dr) + (dg * dg) + (db * db); + } + + /// + /// Returns true if all four channels are within the specified tolerance of the other color. + /// + public static bool IsCloseTo(this Rgba32 color, Rgba32 other, int tolerance) + => Math.Abs(color.R - other.R) <= tolerance && + Math.Abs(color.G - other.G) <= tolerance && + Math.Abs(color.B - other.B) <= tolerance && + Math.Abs(color.A - other.A) <= tolerance; +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/BitOperations.cs b/src/ImageSharp.Textures/Compression/Astc/Core/BitOperations.cs new file mode 100644 index 00000000..59ee712e --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/BitOperations.cs @@ -0,0 +1,48 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +internal static class BitOperations +{ + /// + /// Return the specified range as a (low bits in lower 64 bits) + /// + public static UInt128 GetBits(UInt128 value, int start, int length) => length switch + { + <= 0 => UInt128.Zero, + >= 128 => value >> start, + _ => (value >> start) & (UInt128.MaxValue >> (128 - length)) + }; + + /// + /// Return the specified range as a ulong + /// + public static ulong GetBits(ulong value, int start, int length) => length switch + { + <= 0 => 0UL, + >= 64 => value >> start, + _ => (value >> start) & (ulong.MaxValue >> (64 - length)) + }; + + /// + /// Transfers a few bits of precision from one value to another. + /// + /// + /// The 'bit_transfer_signed' function defined in Section C.2.14 of the ASTC specification + /// + public static (int A, int B) TransferPrecision(int a, int b) + { + b >>= 1; + b |= a & 0x80; + a >>= 1; + a &= 0x3F; + + if ((a & 0x20) != 0) + { + a -= 0x40; + } + + return (a, b); + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/BlockInfo.cs b/src/ImageSharp.Textures/Compression/Astc/Core/BlockInfo.cs new file mode 100644 index 00000000..d8b3f72e --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/BlockInfo.cs @@ -0,0 +1,148 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; +using SixLabors.ImageSharp.Textures.Compression.Astc.ColorEncoding; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +/// +/// Decoded block-mode metadata for a single 128-bit ASTC block. Populated by the block-mode +/// parser (produces an instance via BlockModeDecoder.Decode). +/// +internal readonly struct BlockInfo +{ + /// Every ASTC compressed block is exactly 128 bits (16 bytes) regardless of footprint (spec §C.2.4). + public const int SizeInBytes = 16; + + /// + /// Number of output channels per decoded pixel — RGBA in both the LDR (UNORM8) and HDR + /// (float32) profiles. Used as a multiplier on to size + /// scratch and image buffers. + /// + public const int ChannelsPerPixel = 4; + + public BlockInfo( + bool isVoidExtent, + bool isHdr, + WeightGrid weights, + int partitionCount, + DualPlaneInfo dualPlane, + ColorEndpoints colors, + EndpointModeBuffer endpointModes) + { + this.IsValid = true; + this.IsVoidExtent = isVoidExtent; + this.IsHdr = isHdr; + this.Weights = weights; + this.PartitionCount = partitionCount; + this.DualPlane = dualPlane; + this.Colors = colors; + this.EndpointModes = endpointModes; + } + + private BlockInfo(bool isMalformedVoidExtent) + { + this.IsValid = false; + this.IsVoidExtent = isMalformedVoidExtent; + } + + /// + /// Gets a malformed void-extent block (spec §C.2.23 — reserved bits or coordinates + /// invalid). is true, all other properties are default. + /// + public static BlockInfo MalformedVoidExtent { get; } = new(isMalformedVoidExtent: true); + + /// + /// Gets a value indicating whether the block is a legal ASTC encoding. False for reserved + /// block modes and malformed void-extent blocks (ASTC spec §C.2.10, §C.2.23); both fast and + /// general decode paths skip invalid blocks, leaving zeros in the output. + /// + public bool IsValid { get; } + + /// + /// Gets a value indicating whether the block is a void-extent (single-colour) block, per + /// ASTC spec §C.2.23. + /// + public bool IsVoidExtent { get; } + + /// + /// Gets a value indicating whether this block encodes HDR content. For void-extent blocks + /// this is the dynamic-range flag at bit 9 of the block mode (FP16 vs UNORM16, ASTC spec + /// §C.2.23); for normal blocks it's true if any partition uses an HDR endpoint mode (spec + /// §C.2.14: modes 2, 3, 7, 11, 14, 15). Used by the LDR decoder to reject HDR content + /// before dispatch per §C.2.19. + /// + public bool IsHdr { get; } + + /// + /// Gets the weight-grid metadata: dimensions, BISE range, and packed bit count + /// (ASTC spec §C.2.10, §C.2.16). + /// + public WeightGrid Weights { get; } + + /// + /// Gets the number of colour-endpoint partitions in the block (1..4, ASTC spec §C.2.10). + /// Zero for void-extent blocks, which carry no partitions. + /// + public int PartitionCount { get; } + + /// + /// Gets the dual-plane configuration: whether a second weight plane is present and which + /// channel it drives (ASTC spec §C.2.20). + /// + public DualPlaneInfo DualPlane { get; } + + /// + /// Gets the colour-endpoint bit region — start bit, bit count, BISE range, and value + /// count (ASTC spec §C.2.22). + /// + public ColorEndpoints Colors { get; } + + /// + /// Gets the per-partition colour endpoint modes (ASTC spec §C.2.11, §C.2.14). Only the + /// first slots are populated; access via + /// or . + /// + public EndpointModeBuffer EndpointModes { get; } + + /// + /// Gets the colour endpoint mode for partition 0 — the only partition for single-partition + /// blocks, and a convenience accessor for the fused fast path. + /// + public ColorEndpointMode EndpointMode0 => this.EndpointModes[0]; + + /// + /// Gets a value indicating whether the block can take the fused fast path: + /// single-partition, single-plane, non-void-extent (the common shape per ASTC spec + /// §C.2.10, §C.2.20, §C.2.23). Multi-partition, dual-plane, and void-extent blocks fall + /// through to the general logical-block pipeline. + /// + public bool IsFusable + => !this.IsVoidExtent && this.PartitionCount == 1 && !this.DualPlane.Enabled; + + /// + /// Gets the colour endpoint mode for the given partition index. Only the first + /// slots in are populated by + /// ; the trailing slots retain their + /// default(ColorEndpointMode) value and reading them would silently return + /// . + /// + /// + /// Thrown when is outside + /// [0, ). + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ColorEndpointMode GetEndpointMode(int partition) + => (uint)partition < (uint)this.PartitionCount + ? this.EndpointModes[partition] + : throw new ArgumentOutOfRangeException(nameof(partition), partition, $"Must be in [0, PartitionCount={this.PartitionCount})."); + + [InlineArray(4)] + public struct EndpointModeBuffer + { +#pragma warning disable CS0169, IDE0051, S1144 // Accessed by runtime via [InlineArray] + private ColorEndpointMode element0; +#pragma warning restore CS0169, IDE0051, S1144 + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/ColorEndpoints.cs b/src/ImageSharp.Textures/Compression/Astc/Core/ColorEndpoints.cs new file mode 100644 index 00000000..78c9202a --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/ColorEndpoints.cs @@ -0,0 +1,10 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +/// +/// Colour-endpoint bit-region metadata (ASTC spec §C.2.22 — colour endpoint range and bit +/// budget are derived from the remaining-bits computation). +/// +internal readonly record struct ColorEndpoints(int StartBit, int BitCount, int Range, int Count); diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/DecimationInfo.cs b/src/ImageSharp.Textures/Compression/Astc/Core/DecimationInfo.cs new file mode 100644 index 00000000..dc51355a --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/DecimationInfo.cs @@ -0,0 +1,39 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +/// +/// Pre-computed weight infill data for a specific (footprint, weightGridX, weightGridY) combination. +/// Stores bilinear interpolation indices and factors in a transposed layout. +/// +internal sealed class DecimationInfo +{ + private readonly int[] weightIndices; + private readonly int[] weightFactors; + + // Transposed layout: [contribution * TexelCount + texel] + // 4 contributions per texel (bilinear interpolation from weight grid). + // For edge texels where some grid points are out of bounds, factor is 0 and index is 0. + public DecimationInfo(int texelCount, int[] weightIndices, int[] weightFactors) + { + this.TexelCount = texelCount; + this.weightIndices = weightIndices; + this.weightFactors = weightFactors; + } + + public int TexelCount { get; } + + /// + /// Gets the per-texel grid-point indices (length 4 * ) in the + /// transposed [contribution * TexelCount + texel] layout. Cached and shared across blocks + /// that resolve to the same (footprint, weight-grid) pair. + /// + public ReadOnlySpan WeightIndices => this.weightIndices; + + /// + /// Gets the per-texel bilinear weight factors (length 4 * ) in + /// the same transposed layout as . + /// + public ReadOnlySpan WeightFactors => this.weightFactors; +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/DecimationTable.cs b/src/ImageSharp.Textures/Compression/Astc/Core/DecimationTable.cs new file mode 100644 index 00000000..c735f92c --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/DecimationTable.cs @@ -0,0 +1,169 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +/// +/// Caches pre-computed DecimationInfo tables and provides weight infill. +/// For each unique (footprint, gridX, gridY) combination, the bilinear interpolation +/// indices and factors are computed once and reused for every block with that configuration. +/// Uses a flat array indexed by (footprintType, gridX, gridY) for O(1) lookup. +/// +internal static class DecimationTable +{ + // Grid dimensions range from 2 to 12 inclusive + private const int GridMin = 2; + private const int GridRange = 11; // 12 - 2 + 1 + private const int FootprintCount = 14; + private static readonly DecimationInfo?[] Table = new DecimationInfo?[FootprintCount * GridRange * GridRange]; + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static DecimationInfo Get(Footprint footprint, int gridX, int gridY) + { + int index = ((int)footprint.Type * GridRange * GridRange) + ((gridX - GridMin) * GridRange) + (gridY - GridMin); + + // Volatile.Read pairs with the implicit release on CompareExchange to publish the + // fully-constructed DecimationInfo. Entries are immutable, so losing the CAS race + // is harmless — the caller discards its own instance and uses the winner. + DecimationInfo? decimationInfo = Volatile.Read(ref Table[index]); + if (decimationInfo is null) + { + DecimationInfo computed = Compute(footprint.Width, footprint.Height, gridX, gridY); + decimationInfo = Interlocked.CompareExchange(ref Table[index], computed, null) ?? computed; + } + + return decimationInfo; + } + + /// + /// Performs weight infill using pre-computed tables. + /// Maps unquantized grid weights to per-texel weights via bilinear interpolation + /// with pre-computed indices and factors. + /// + [MethodImpl(MethodImplOptions.AggressiveOptimization)] + public static void InfillWeights(ReadOnlySpan gridWeights, DecimationInfo decimationInfo, Span result) + { + int texelCount = decimationInfo.TexelCount; + ReadOnlySpan weightIndices = decimationInfo.WeightIndices; + ReadOnlySpan weightFactors = decimationInfo.WeightFactors; + int offset1 = texelCount, offset2 = texelCount * 2, offset3 = texelCount * 3; + + for (int i = 0; i < texelCount; i++) + { + result[i] = (8 + + (gridWeights[weightIndices[i]] * weightFactors[i]) + + (gridWeights[weightIndices[offset1 + i]] * weightFactors[offset1 + i]) + + (gridWeights[weightIndices[offset2 + i]] * weightFactors[offset2 + i]) + + (gridWeights[weightIndices[offset3 + i]] * weightFactors[offset3 + i])) >> 4; + } + } + + /// + /// Scale factor for mapping texel index to grid position (ASTC spec §C.2.18) + /// + private static int GetScaleFactorD(int blockDimensions) => (1024 + (blockDimensions >> 1)) / (blockDimensions - 1); + + /// + /// Builds the weight-infill lookup for one (footprint, weight-grid) combination. + /// For each texel, computes the four surrounding weight-grid indices and bilinear + /// interpolation factors (ASTC spec §C.2.18), storing them in parallel transposed + /// arrays so that decode can iterate by contribution slot. + /// + private static DecimationInfo Compute(int footprintWidth, int footprintHeight, int gridWidth, int gridHeight) + { + int texelCount = footprintWidth * footprintHeight; + int[] indices = new int[4 * texelCount]; + int[] factors = new int[4 * texelCount]; + + int scaleHorizontal = GetScaleFactorD(footprintWidth); + int scaleVertical = GetScaleFactorD(footprintHeight); + int gridLimit = gridWidth * gridHeight; + int maxGridX = gridWidth - 1; + int maxGridY = gridHeight - 1; + + int texelIndex = 0; + for (int texelY = 0; texelY < footprintHeight; ++texelY) + { + (int gridRowIndex, int fractionY) = MapTexelToGridAxis(texelY, scaleVertical, maxGridY); + for (int texelX = 0; texelX < footprintWidth; ++texelX) + { + (int gridColIndex, int fractionX) = MapTexelToGridAxis(texelX, scaleHorizontal, maxGridX); + StoreTexelContributions(texelIndex, texelCount, indices, factors, gridColIndex, gridRowIndex, fractionX, fractionY, gridWidth, gridLimit); + texelIndex++; + } + } + + return new DecimationInfo(texelCount, indices, factors); + } + + /// + /// Maps a texel coordinate along one axis to the (gridIndex, fraction) pair used for + /// bilinear interpolation. The grid index is in Q4 fixed-point (top bits) and the + /// fraction occupies the low four bits. + /// + private static (int GridIndex, int Fraction) MapTexelToGridAxis(int texel, int scale, int maxGrid) + { + int scaled = scale * texel; + int grid = ((scaled * maxGrid) + 32) >> 6; + return (grid >> 4, grid & 0xF); + } + + /// + /// Computes the four (gridPoint, factor) contributions for one texel and writes them + /// into the transposed output arrays. Each contribution slot has + /// entries so lookups at decode time touch contiguous memory per slot. + /// Out-of-bounds grid points collapse to index 0 with a zero factor. + /// + private static void StoreTexelContributions( + int texelIndex, + int texelCount, + int[] indices, + int[] factors, + int gridColIndex, + int gridRowIndex, + int fractionX, + int fractionY, + int gridWidth, + int gridLimit) + { + int gridPoint0 = gridColIndex + (gridWidth * gridRowIndex); + int gridPoint1 = gridPoint0 + 1; + int gridPoint2 = gridColIndex + (gridWidth * (gridRowIndex + 1)); + int gridPoint3 = gridPoint2 + 1; + + int factor3 = ((fractionX * fractionY) + 8) >> 4; + int factor2 = fractionY - factor3; + int factor1 = fractionX - factor3; + int factor0 = 16 - fractionX - fractionY + factor3; + + ClampGridPoint(ref gridPoint0, ref factor0, gridLimit); + ClampGridPoint(ref gridPoint1, ref factor1, gridLimit); + ClampGridPoint(ref gridPoint2, ref factor2, gridLimit); + ClampGridPoint(ref gridPoint3, ref factor3, gridLimit); + + indices[texelIndex] = gridPoint0; + indices[texelCount + texelIndex] = gridPoint1; + indices[(2 * texelCount) + texelIndex] = gridPoint2; + indices[(3 * texelCount) + texelIndex] = gridPoint3; + + factors[texelIndex] = factor0; + factors[texelCount + texelIndex] = factor1; + factors[(2 * texelCount) + texelIndex] = factor2; + factors[(3 * texelCount) + texelIndex] = factor3; + } + + /// + /// Replaces an out-of-bounds grid point with a safe dummy index (0) and zeros its + /// contribution factor so the corresponding term drops out of the bilinear blend. + /// + private static void ClampGridPoint(ref int gridPoint, ref int factor, int gridLimit) + { + if (gridPoint >= gridLimit) + { + factor = 0; + gridPoint = 0; + } + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/DualPlaneInfo.cs b/src/ImageSharp.Textures/Compression/Astc/Core/DualPlaneInfo.cs new file mode 100644 index 00000000..01732d84 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/DualPlaneInfo.cs @@ -0,0 +1,10 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +/// +/// Dual-plane configuration (ASTC spec §C.2.20). When is false, +/// is unused. +/// +internal readonly record struct DualPlaneInfo(bool Enabled, int Channel); diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/Footprint.cs b/src/ImageSharp.Textures/Compression/Astc/Core/Footprint.cs new file mode 100644 index 00000000..64d808b6 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/Footprint.cs @@ -0,0 +1,58 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +/// +/// Represents the dimensions of an ASTC block footprint. +/// +public readonly record struct Footprint +{ + private static readonly Footprint[] All = + [ + new(FootprintType.Footprint4x4, 4, 4), + new(FootprintType.Footprint5x4, 5, 4), + new(FootprintType.Footprint5x5, 5, 5), + new(FootprintType.Footprint6x5, 6, 5), + new(FootprintType.Footprint6x6, 6, 6), + new(FootprintType.Footprint8x5, 8, 5), + new(FootprintType.Footprint8x6, 8, 6), + new(FootprintType.Footprint8x8, 8, 8), + new(FootprintType.Footprint10x5, 10, 5), + new(FootprintType.Footprint10x6, 10, 6), + new(FootprintType.Footprint10x8, 10, 8), + new(FootprintType.Footprint10x10, 10, 10), + new(FootprintType.Footprint12x10, 12, 10), + new(FootprintType.Footprint12x12, 12, 12), + ]; + + private Footprint(FootprintType type, int width, int height) + { + this.Type = type; + this.Width = width; + this.Height = height; + this.PixelCount = width * height; + } + + /// Gets the block width in texels. + public int Width { get; } + + /// Gets the block height in texels. + public int Height { get; } + + /// Gets the footprint type enum value. + public FootprintType Type { get; } + + /// Gets the total number of texels in the block (Width * Height). + public int PixelCount { get; } + + /// + /// Creates a from the specified . + /// + /// The footprint type to create a footprint from. + /// A matching the specified type. + public static Footprint FromFootprintType(FootprintType type) + => (uint)type < (uint)All.Length + ? All[(int)type] + : throw new ArgumentOutOfRangeException(nameof(type), $"Invalid FootprintType: {type}"); +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/FootprintType.cs b/src/ImageSharp.Textures/Compression/Astc/Core/FootprintType.cs new file mode 100644 index 00000000..381d3510 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/FootprintType.cs @@ -0,0 +1,52 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +/// +/// The supported ASTC block footprint sizes. +/// +public enum FootprintType +{ + /// 4x4 texel block. + Footprint4x4, + + /// 5x4 texel block. + Footprint5x4, + + /// 5x5 texel block. + Footprint5x5, + + /// 6x5 texel block. + Footprint6x5, + + /// 6x6 texel block. + Footprint6x6, + + /// 8x5 texel block. + Footprint8x5, + + /// 8x6 texel block. + Footprint8x6, + + /// 8x8 texel block. + Footprint8x8, + + /// 10x5 texel block. + Footprint10x5, + + /// 10x6 texel block. + Footprint10x6, + + /// 10x8 texel block. + Footprint10x8, + + /// 10x10 texel block. + Footprint10x10, + + /// 12x10 texel block. + Footprint12x10, + + /// 12x12 texel block. + Footprint12x12, +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/Interpolation.cs b/src/ImageSharp.Textures/Compression/Astc/Core/Interpolation.cs new file mode 100644 index 00000000..8d9264dd --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/Interpolation.cs @@ -0,0 +1,57 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +/// +/// Scalar weighted-blend primitives from ASTC spec §C.2.19 (Weight Application), +/// shared by the fused fast paths and the general LogicalBlock pipeline. +/// The weight is in the 6-bit range [0, 64]; callers pre-unquantise per §C.2.17. +/// +internal static class Interpolation +{ + /// + /// Weighted blend of two values with the ASTC rounding convention from §C.2.19: + /// (p0 * (64 - weight) + p1 * weight + 32) / 64. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int BlendWeighted(int p0, int p1, int weight) + => ((p0 * (64 - weight)) + (p1 * weight) + 32) / 64; + + /// + /// LDR-to-UNORM16 blend: each 8-bit endpoint is bit-replicated to 16 bits + /// ((p << 8) | p) per §C.2.19 before the weighted blend. Every LDR decode + /// path that produces 16-bit intermediate values goes through this primitive. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int BlendLdrReplicated(int p0, int p1, int weight) + => BlendWeighted((p0 << 8) | p0, (p1 << 8) | p1, weight); + + /// + /// Normalises a UNORM16 value (clamped to [0, 0xFFFF]) to the [0.0, 1.0] float range. + /// Used by the HDR output path when an LDR endpoint or mode-14 LDR alpha (ASTC spec §C.2.14) + /// has already been interpolated as an integer. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float Unorm16ToFloat(int interpolated) + => Math.Clamp(interpolated, 0, 0xFFFF) / 65535.0f; + + /// + /// followed by clamp-to-UNORM16 — the LDR-channel + /// interpolation path used by the HDR output writer (ASTC spec §C.2.19). + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ushort BlendLdrReplicatedAsUnorm16(int p0, int p1, int weight) + => (ushort)Math.Clamp(BlendLdrReplicated(p0, p1, weight), 0, 0xFFFF); + + /// + /// followed by clamp-to-UNORM16 — the HDR-channel + /// interpolation path. HDR endpoints are already 16-bit values (FP16 bit patterns), so + /// no 8→16 expansion is needed. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ushort BlendWeightedAsUnorm16(int p0, int p1, int weight) + => (ushort)Math.Clamp(BlendWeighted(p0, p1, weight), 0, 0xFFFF); +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/Partition.cs b/src/ImageSharp.Textures/Compression/Astc/Core/Partition.cs new file mode 100644 index 00000000..a4231993 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/Partition.cs @@ -0,0 +1,215 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Collections.Concurrent; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +internal sealed class Partition +{ + private static readonly ConcurrentDictionary<(FootprintType, int, int), Partition> PartitionCache = new(); + private static readonly ConcurrentDictionary SinglePartitionCache = new(); + + private readonly int[] assignment; + + private Partition(int[] assignment) => this.assignment = assignment; + + /// + /// Gets the per-texel partition-subset map (length ). + /// Cached and shared across blocks that resolve to the same partition. + /// + public ReadOnlySpan Assignment => this.assignment; + + /// + /// Returns the shared single-partition assignment for the given footprint. Every texel is + /// assigned to subset 0, so one zero-filled array is reused across + /// all callers (void-extent blocks and single-partition logical-path blocks). + /// + public static Partition GetSinglePartition(Footprint footprint) + => SinglePartitionCache.GetOrAdd( + footprint.Type, + static (_, fp) => new Partition(new int[fp.PixelCount]), + footprint); + + public static Partition GetASTCPartition(Footprint footprint, int partitionCount, int partitionId) + => PartitionCache.GetOrAdd( + (footprint.Type, partitionCount, partitionId), + static (key, fp) => Build(fp, key.Item2, key.Item3), + footprint); + + private static Partition Build(Footprint footprint, int partitionCount, int partitionId) + { + int w = footprint.Width; + int h = footprint.Height; + int[] assignment = new int[w * h]; + int idx = 0; + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + assignment[idx++] = SelectASTCPartition(partitionId, x, y, 0, partitionCount, footprint.PixelCount); + } + } + + return new Partition(assignment); + } + + /// + /// Computes the partition index (0..-1) for a texel at + /// (, , ) given the block's + /// 10-bit partition . Implements ASTC spec §C.2.21's partition + /// selection hash: a PRNG scrambles the seed, then 12 small seeds weight the texel + /// coordinates into four candidate values whose largest wins. + /// + private static int SelectASTCPartition(int seed, int x, int y, int z, int partitionCount, int pixelCount) + { + if (partitionCount <= 1) + { + return 0; + } + + // Small footprints (< 31 texels) have all coordinates doubled so neighbouring texels + // spread further through the hash and avoid degenerate single-partition patterns. + if (pixelCount < 31) + { + x <<= 1; + y <<= 1; + z <<= 1; + } + + uint randomNumber = ScrambleSeed(seed, partitionCount); + + // Fixed 12 uints (48 bytes) — partition hash uses 12 4-bit sub-seeds per spec §C.2.21. + Span subseeds = stackalloc uint[12]; + ExtractSubSeeds(randomNumber, subseeds); + ShiftSubSeeds(subseeds, seed, partitionCount); + + (int a, int b, int c, int d) = MixSubSeedsWithCoords(subseeds, randomNumber, x, y, z); + return SelectPartitionFromCandidates(a, b, c, d, partitionCount); + } + + /// + /// Applies the 10-step PRNG scramble from ASTC spec §C.2.21 Listing 11 to the 10-bit + /// seed offset by . + /// + private static uint ScrambleSeed(int seed, int partitionCount) + { + uint random = (uint)(seed + ((partitionCount - 1) * 1024)); + random ^= random >> 15; + random -= random << 17; + random += random << 7; + random += random << 4; + random ^= random >> 5; + random += random << 16; + random ^= random >> 7; + random ^= random >> 3; + random ^= random << 6; + random ^= random >> 17; + return random; + } + + /// + /// Extracts the 12 4-bit sub-seeds from the scrambled number per ASTC spec §C.2.21 + /// and squares each. The squaring biases the distribution so small values stay small + /// and large values become dominant. + /// + private static void ExtractSubSeeds(uint random, Span subseeds) + { + subseeds[0] = random & 0xF; + subseeds[1] = (random >> 4) & 0xF; + subseeds[2] = (random >> 8) & 0xF; + subseeds[3] = (random >> 12) & 0xF; + subseeds[4] = (random >> 16) & 0xF; + subseeds[5] = (random >> 20) & 0xF; + subseeds[6] = (random >> 24) & 0xF; + subseeds[7] = (random >> 28) & 0xF; + subseeds[8] = (random >> 18) & 0xF; + subseeds[9] = (random >> 22) & 0xF; + subseeds[10] = (random >> 26) & 0xF; + subseeds[11] = ((random >> 30) | (random << 2)) & 0xF; + + for (int i = 0; i < 12; ++i) + { + subseeds[i] *= subseeds[i]; + } + } + + /// + /// Right-shifts each sub-seed by one of three mode-dependent shift amounts (sh1, sh2, sh3) + /// per ASTC spec §C.2.21. The shift choice is driven by low-order bits of the original + /// seed together with the partition count. + /// + private static void ShiftSubSeeds(Span subseeds, int seed, int partitionCount) + { + int sh1, sh2; + if ((seed & 1) != 0) + { + sh1 = (seed & 2) != 0 ? 4 : 5; + sh2 = partitionCount == 3 ? 6 : 5; + } + else + { + sh1 = partitionCount == 3 ? 6 : 5; + sh2 = (seed & 2) != 0 ? 4 : 5; + } + + int sh3 = (seed & 0x10) != 0 ? sh1 : sh2; + + subseeds[0] >>= sh1; + subseeds[1] >>= sh2; + subseeds[2] >>= sh1; + subseeds[3] >>= sh2; + subseeds[4] >>= sh1; + subseeds[5] >>= sh2; + subseeds[6] >>= sh1; + subseeds[7] >>= sh2; + subseeds[8] >>= sh3; + subseeds[9] >>= sh3; + subseeds[10] >>= sh3; + subseeds[11] >>= sh3; + } + + /// + /// Computes the four candidate values a, b, c, d as weighted combinations of the texel + /// coordinates with sub-seeds as weights, plus the scrambled-number shifted by a + /// candidate-specific amount. Low six bits are retained per ASTC spec §C.2.21. + /// + private static (int A, int B, int C, int D) MixSubSeedsWithCoords(ReadOnlySpan subseeds, uint random, int x, int y, int z) + { + int a = (int)((subseeds[0] * x) + (subseeds[1] * y) + (subseeds[10] * z) + (random >> 14)); + int b = (int)((subseeds[2] * x) + (subseeds[3] * y) + (subseeds[11] * z) + (random >> 10)); + int c = (int)((subseeds[4] * x) + (subseeds[5] * y) + (subseeds[8] * z) + (random >> 6)); + int d = (int)((subseeds[6] * x) + (subseeds[7] * y) + (subseeds[9] * z) + (random >> 2)); + return (a & 0x3F, b & 0x3F, c & 0x3F, d & 0x3F); + } + + /// + /// Returns the index of the largest of a, b, c, d after zeroing the unused ones based on + /// . Ties prefer the lower index (matches ASTC spec + /// §C.2.21's cascade of ≥ comparisons). + /// + private static int SelectPartitionFromCandidates(int a, int b, int c, int d, int partitionCount) + { + if (partitionCount <= 3) + { + d = 0; + } + + if (partitionCount <= 2) + { + c = 0; + } + + if (a >= b && a >= c && a >= d) + { + return 0; + } + + if (b >= c && b >= d) + { + return 1; + } + + return c >= d ? 2 : 3; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/SimdHelpers.cs b/src/ImageSharp.Textures/Compression/Astc/Core/SimdHelpers.cs new file mode 100644 index 00000000..f92b02b7 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/SimdHelpers.cs @@ -0,0 +1,140 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Runtime.CompilerServices; +using System.Runtime.Intrinsics; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +internal static class SimdHelpers +{ + private static readonly Vector128 Vec32 = Vector128.Create(32); + private static readonly Vector128 Vec64 = Vector128.Create(64); + private static readonly Vector128 Vec255 = Vector128.Create(255); + + /// + /// Interpolates one channel for 4 pixels simultaneously. + /// All 4 pixels share the same endpoint values but have different weights. + /// Returns 4 byte results packed into the lower bytes of a . + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Vector128 Interpolate4ChannelPixels(int p0, int p1, Vector128 weights) + { + // Bit-replicate endpoint bytes to 16-bit + Vector128 c0 = Vector128.Create((p0 << 8) | p0); + Vector128 c1 = Vector128.Create((p1 << 8) | p1); + + // c = (c0 * (64 - w) + c1 * w + 32) >> 6 + // NOTE: Using >> 6 instead of / 64 because Vector128 division + // has no hardware support and decomposes to scalar operations. + Vector128 w64 = Vec64 - weights; + Vector128 c = ((c0 * w64) + (c1 * weights) + Vec32) >> 6; + + // Spec §C.2.19 (Weight Application): for LDR-mode UNORM8 output the final + // 8-bit result is the top 8 bits of the UNORM16 interpolation. Mask + // to [0, 255] to defend against malformed endpoints producing c outside + // [0, 0xFFFF]; well-formed input is already in range. + return (c >>> 8) & Vec255; + } + + /// + /// Writes 4 LDR pixels directly to output buffer using SIMD. + /// Processes each channel across 4 pixels in parallel, then interleaves to RGBA output. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void Write4PixelLdr( + Span output, + int offset, + int lowR, + int lowG, + int lowB, + int lowA, + int highR, + int highG, + int highB, + int highA, + Vector128 weights) + { + Vector128 r = Interpolate4ChannelPixels(lowR, highR, weights); + Vector128 g = Interpolate4ChannelPixels(lowG, highG, weights); + Vector128 b = Interpolate4ChannelPixels(lowB, highB, weights); + Vector128 a = Interpolate4ChannelPixels(lowA, highA, weights); + + // Pack 4 RGBA pixels into 16 bytes via vector OR+shift. + // Each int element has its channel value in bits [0:7]. + // Combine: element[i] = R[i] | (G[i] << 8) | (B[i] << 16) | (A[i] << 24) + // On little-endian, storing this int32 writes bytes [R, G, B, A]. + Vector128 rgba = r | (g << 8) | (b << 16) | (a << 24); + rgba.AsByte().CopyTo(output.Slice(offset, 16)); + } + + /// + /// Scalar single-pixel LDR interpolation, writing directly to buffer. + /// No Rgba32 allocation. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void WriteSinglePixelLdr( + Span output, + int offset, + int lowR, + int lowG, + int lowB, + int lowA, + int highR, + int highG, + int highB, + int highA, + int weight) + { + output[offset + 0] = (byte)InterpolateChannelScalar(lowR, highR, weight); + output[offset + 1] = (byte)InterpolateChannelScalar(lowG, highG, weight); + output[offset + 2] = (byte)InterpolateChannelScalar(lowB, highB, weight); + output[offset + 3] = (byte)InterpolateChannelScalar(lowA, highA, weight); + } + + /// + /// Scalar single-pixel dual-plane LDR interpolation, writing directly to buffer. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static void WriteSinglePixelLdrDualPlane( + Span output, + int offset, + int lowR, + int lowG, + int lowB, + int lowA, + int highR, + int highG, + int highB, + int highA, + int weight, + int dpChannel, + int dpWeight) + { + output[offset + 0] = (byte)InterpolateChannelScalar( + lowR, + highR, + dpChannel == 0 ? dpWeight : weight); + output[offset + 1] = (byte)InterpolateChannelScalar( + lowG, + highG, + dpChannel == 1 ? dpWeight : weight); + output[offset + 2] = (byte)InterpolateChannelScalar( + lowB, + highB, + dpChannel == 2 ? dpWeight : weight); + output[offset + 3] = (byte)InterpolateChannelScalar( + lowA, + highA, + dpChannel == 3 ? dpWeight : weight); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static int InterpolateChannelScalar(int p0, int p1, int weight) + { + // Spec §C.2.19 (Weight Application): for LDR-mode UNORM8 output the final + // 8-bit result is the top 8 bits of the UNORM16 interpolation. + int c = Interpolation.BlendLdrReplicated(p0, p1, weight); + return (c >> 8) & 0xFF; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/UInt128Extensions.cs b/src/ImageSharp.Textures/Compression/Astc/Core/UInt128Extensions.cs new file mode 100644 index 00000000..64b39e7a --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/UInt128Extensions.cs @@ -0,0 +1,55 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +internal static class UInt128Extensions +{ + /// + /// The lower 64 bits of the value + /// + public static ulong Low(this UInt128 value) + => (ulong)(value & 0xFFFFFFFFFFFFFFFFUL); + + /// + /// The upper 64 bits of the value + /// + public static ulong High(this UInt128 value) + => (ulong)(value >> 64); + + /// + /// A mask with the lowest n bits set to 1 + /// + public static UInt128 OnesMask(int n) => n switch + { + <= 0 => UInt128.Zero, + >= 128 => UInt128.MaxValue, + _ => UInt128.MaxValue >> (128 - n) + }; + + /// + /// Reverses bits across the full 128-bit value. Used by the BISE weight decoder + /// (ASTC spec §C.2.12) — weight data is encoded most-significant-bit-first into the + /// high end of the block, so callers reverse the block before reading weights as + /// a normal little-endian sequence. + /// + public static UInt128 ReverseBits(this UInt128 value) + { + ulong revLow = ReverseBits(value.Low()); + ulong revHigh = ReverseBits(value.High()); + + return new UInt128(revLow, revHigh); + } + + private static ulong ReverseBits(ulong x) + { + x = ((x >> 1) & 0x5555555555555555UL) | ((x & 0x5555555555555555UL) << 1); + x = ((x >> 2) & 0x3333333333333333UL) | ((x & 0x3333333333333333UL) << 2); + x = ((x >> 4) & 0x0F0F0F0F0F0F0F0FUL) | ((x & 0x0F0F0F0F0F0F0F0FUL) << 4); + x = ((x >> 8) & 0x00FF00FF00FF00FFUL) | ((x & 0x00FF00FF00FF00FFUL) << 8); + x = ((x >> 16) & 0x0000FFFF0000FFFFUL) | ((x & 0x0000FFFF0000FFFFUL) << 16); + x = (x >> 32) | (x << 32); + + return x; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/Core/WeightGrid.cs b/src/ImageSharp.Textures/Compression/Astc/Core/WeightGrid.cs new file mode 100644 index 00000000..57f60220 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/Core/WeightGrid.cs @@ -0,0 +1,9 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +/// +/// Weight grid metadata for a single block (ASTC spec §C.2.7, §C.2.8). +/// +internal readonly record struct WeightGrid(int Width, int Height, int Range, int BitCount); diff --git a/src/ImageSharp.Textures/Compression/Astc/IO/AstcFile.cs b/src/ImageSharp.Textures/Compression/Astc/IO/AstcFile.cs new file mode 100644 index 00000000..307f913b --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/IO/AstcFile.cs @@ -0,0 +1,85 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using SixLabors.ImageSharp.Textures.Compression.Astc.Core; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.IO; + +/// +/// A very simple format consisting of a small header followed immediately +/// by the binary payload for a single image surface. +/// +/// +/// See https://github.com/ARM-software/astc-encoder/blob/main/Docs/FileFormat.md +/// +internal record AstcFile +{ + private readonly AstcFileHeader header; + private readonly byte[] blocks; + + internal AstcFile(AstcFileHeader header, byte[] blocks) + { + this.header = header; + this.blocks = blocks; + this.Footprint = this.GetFootprint(); + } + + public ReadOnlySpan Blocks => this.blocks; + + public Footprint Footprint { get; } + + public int Width => this.header.ImageWidth; + + public int Height => this.header.ImageHeight; + + public int Depth => this.header.ImageDepth; + + public static AstcFile FromMemory(byte[] data) + { + Guard.NotNull(data); + Guard.MustBeGreaterThanOrEqualTo(data.Length, AstcFileHeader.SizeInBytes, nameof(data)); + + AstcFileHeader header = AstcFileHeader.FromMemory(data.AsSpan(0, AstcFileHeader.SizeInBytes)); + + int blockDataLength = data.Length - AstcFileHeader.SizeInBytes; + Guard.IsTrue(blockDataLength % BlockInfo.SizeInBytes == 0, nameof(data), "ASTC block data length must be a multiple of the block size."); + + int blocksWide = (header.ImageWidth + header.BlockWidth - 1) / header.BlockWidth; + int blocksHigh = (header.ImageHeight + header.BlockHeight - 1) / header.BlockHeight; + long expectedBlockCount = (long)blocksWide * blocksHigh; + long actualBlockCount = blockDataLength / BlockInfo.SizeInBytes; + if (actualBlockCount != expectedBlockCount) + { + throw new ArgumentOutOfRangeException( + nameof(data), + $"ASTC payload contains {actualBlockCount} blocks but the header describes {expectedBlockCount}"); + } + + byte[] blocks = new byte[blockDataLength]; + Array.Copy(data, AstcFileHeader.SizeInBytes, blocks, 0, blocks.Length); + + return new AstcFile(header, blocks); + } + + /// + /// Map the block dimensions in the header to a Footprint, if possible. + /// + private Footprint GetFootprint() => (this.header.BlockWidth, this.header.BlockHeight) switch + { + (4, 4) => Footprint.FromFootprintType(FootprintType.Footprint4x4), + (5, 4) => Footprint.FromFootprintType(FootprintType.Footprint5x4), + (5, 5) => Footprint.FromFootprintType(FootprintType.Footprint5x5), + (6, 5) => Footprint.FromFootprintType(FootprintType.Footprint6x5), + (6, 6) => Footprint.FromFootprintType(FootprintType.Footprint6x6), + (8, 5) => Footprint.FromFootprintType(FootprintType.Footprint8x5), + (8, 6) => Footprint.FromFootprintType(FootprintType.Footprint8x6), + (8, 8) => Footprint.FromFootprintType(FootprintType.Footprint8x8), + (10, 5) => Footprint.FromFootprintType(FootprintType.Footprint10x5), + (10, 6) => Footprint.FromFootprintType(FootprintType.Footprint10x6), + (10, 8) => Footprint.FromFootprintType(FootprintType.Footprint10x8), + (10, 10) => Footprint.FromFootprintType(FootprintType.Footprint10x10), + (12, 10) => Footprint.FromFootprintType(FootprintType.Footprint12x10), + (12, 12) => Footprint.FromFootprintType(FootprintType.Footprint12x12), + _ => throw new NotSupportedException($"Unsupported block dimensions: {this.header.BlockWidth}x{this.header.BlockHeight}"), + }; +} diff --git a/src/ImageSharp.Textures/Compression/Astc/IO/AstcFileHeader.cs b/src/ImageSharp.Textures/Compression/Astc/IO/AstcFileHeader.cs new file mode 100644 index 00000000..f52dfbce --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/IO/AstcFileHeader.cs @@ -0,0 +1,96 @@ +// Copyright (c) Six Labors. +// Licensed under the Six Labors Split License. + +using System.Buffers.Binary; + +namespace SixLabors.ImageSharp.Textures.Compression.Astc.IO; + +/// +/// The 16 byte ASTC file header +/// +/// +/// ASTC block and decoded image dimensions in texels. +/// +/// For 2D images the Z dimension must be set to 1. +/// +/// Note that the image is not required to be an exact multiple of the compressed block +/// size; the compressed data may include padding that is discarded during decompression. +/// +internal readonly record struct AstcFileHeader(byte BlockWidth, byte BlockHeight, byte BlockDepth, int ImageWidth, int ImageHeight, int ImageDepth) +{ + public const uint Magic = 0x5CA1AB13; + public const int SizeInBytes = 16; + + // 2D footprints from the ASTC spec. 3D footprints are not supported. + private static readonly (byte Width, byte Height)[] Valid2DFootprints = + [ + (4, 4), (5, 4), (5, 5), (6, 5), (6, 6), + (8, 5), (8, 6), (8, 8), + (10, 5), (10, 6), (10, 8), (10, 10), + (12, 10), (12, 12) + ]; + + public static AstcFileHeader FromMemory(Span data) + { + Guard.MustBeSizedAtLeast(data, SizeInBytes, nameof(data)); + + // ASTC header is 16 bytes: + // - magic (4), + // - blockdim (3), + // - xsize,y,z (each 3 little-endian bytes) + uint magic = BinaryPrimitives.ReadUInt32LittleEndian(data); + Guard.IsTrue(magic == Magic, nameof(data), $"Invalid ASTC file magic: expected 0x{Magic:X8}."); + + byte blockWidth = data[4]; + byte blockHeight = data[5]; + byte blockDepth = data[6]; + + // Only 2D footprints are supported, so block depth must be 1. + if (blockDepth != 1) + { + throw new NotSupportedException($"ASTC 3D block footprints are not supported (block depth = {blockDepth})"); + } + + if (!IsValid2DFootprint(blockWidth, blockHeight)) + { + throw new NotSupportedException($"Unsupported ASTC block dimensions: {blockWidth}x{blockHeight}"); + } + + int imageWidth = data[7] | (data[8] << 8) | (data[9] << 16); + int imageHeight = data[10] | (data[11] << 8) | (data[12] << 16); + int imageDepth = data[13] | (data[14] << 8) | (data[15] << 16); + + Guard.MustBeGreaterThan(imageWidth, 0, nameof(imageWidth)); + Guard.MustBeGreaterThan(imageHeight, 0, nameof(imageHeight)); + Guard.MustBeGreaterThan(imageDepth, 0, nameof(imageDepth)); + + // Guard against callers that compute a 4-byte-per-pixel RGBA32 output buffer. + const int bytesPerPixel = 4; + long totalPixels = (long)imageWidth * imageHeight; + if (totalPixels > int.MaxValue / bytesPerPixel) + { + throw new ArgumentOutOfRangeException(nameof(data), "ASTC image dimensions exceed the maximum supported size"); + } + + return new AstcFileHeader( + BlockWidth: blockWidth, + BlockHeight: blockHeight, + BlockDepth: blockDepth, + ImageWidth: imageWidth, + ImageHeight: imageHeight, + ImageDepth: imageDepth); + } + + private static bool IsValid2DFootprint(byte width, byte height) + { + foreach ((byte w, byte h) in Valid2DFootprints) + { + if (w == width && h == height) + { + return true; + } + } + + return false; + } +} diff --git a/src/ImageSharp.Textures/Compression/Astc/README.md b/src/ImageSharp.Textures/Compression/Astc/README.md new file mode 100644 index 00000000..7adb83c6 --- /dev/null +++ b/src/ImageSharp.Textures/Compression/Astc/README.md @@ -0,0 +1,135 @@ +# ASTC decoder + +A managed C# decoder for [ASTC](https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.html#ASTC) (Adaptive Scalable Texture Compression) textures. Supports LDR and HDR content, all 14 two-dimensional block footprints from 4×4 to 12×12, and decodes to `Rgba32` (LDR) or `Rgba128Float` (HDR). + +Originally developed as the standalone [AstcSharp](https://github.com/Erik-White/AstcSharp) library. + +## Format overview + +ASTC was designed by ARM and standardised by Khronos as a single replacement for the patchwork of earlier GPU compression schemes (S3TC/DXT, ETC, PVRTC). A few properties that shape the decoder's structure: + +- **Fixed block size.** Every compressed block is 128 bits (16 bytes) regardless of the footprint. Larger footprints mean fewer bits per texel (bitrates range from 8 bpp at 4×4 down to 0.89 bpp at 12×12). +- **Variable footprint.** The 14 footprints share identical decoding logic — the footprint only affects weight grid sizing and texel-to-block mapping. +- **LDR / HDR content lives in the same container.** The container format (`VK_FORMAT_ASTC_*_UNORM_BLOCK`, `_SRGB_BLOCK`, `_SFLOAT_BLOCK`) declares the decode profile. HDR blocks use different endpoint encoding modes (2, 3, 7, 11, 14, 15) and emit UNORM16 rather than UNORM8 endpoints. +- **Up to four partitions.** A single block can contain up to four partitions, each with its own pair of colour endpoints. Partition assignment per texel is computed from a 10-bit seed via the spec's hash function (§C.2.21). +- **Dual plane.** Blocks can carry a second weight plane for one channel, useful when a channel varies independently (alpha, normal-map components). Spec §C.2.20. +- **Bounded Integer Sequence Encoding (BISE).** Weights and colour endpoint values are packed with a mixed-radix encoding that combines plain bits with trits (base 3) or quints (base 5), to fit more values in the 128-bit budget than plain binary encoding would allow. Spec §C.2.12. + +## Code organisation + +The code is organised by decoder concern rather than by spec chapter. `AstcDecoder` is the public entry point. Below it, `BlockDecoding` holds every per-block decode pipeline — the fused fast paths plus the general-purpose `LogicalBlock` pipeline — and the `IBlockPipeline` dispatch strategy that routes LDR and HDR blocks through a shared loop. `ColorEncoding` and `BiseEncoding` isolate the two tricky encodings the spec defines for endpoint and weight values respectively, and `BiseEncoding` also owns the `BitStream` primitive used by the BISE codecs. `Core` holds the shared block-structure primitives — `BlockInfo` (the single-pass block-mode parser), footprints, decimation tables, partition, `UInt128` helpers, SIMD primitives, and scalar blend/FP16 helpers. `IO` covers `.astc` file parsing only. + +This grouping makes it easier to change one decoder feature at a time: BISE changes stay inside `BiseEncoding`, endpoint-mode additions stay inside `ColorEncoding`, and the fused paths can be tuned without touching the general pipeline. + +## Decoding pipelines + +### Why three pipelines? + +A straightforward ASTC decoder can get away with a single pipeline: read the 128-bit block, parse the mode, decompose into an intermediate representation (endpoint pairs + weight grid + partition map), then iterate texels and interpolate. That's what the spec describes and what `LogicalBlock` implements. It's correct, readable, and handles every ASTC feature. + +It's also slow at scale. A 2048×2048 4×4 texture contains 262,144 blocks. Each block through the generic pipeline allocates a `LogicalBlock` (a reference type holding endpoint pairs, a weight array, and a partition map), plus intermediate arrays for the BISE-decoded values — all with GC pressure proportional to image size, and with memory traffic reading each intermediate back out on the pixel-write pass. So the decoder has fast paths for the cases that cover the overwhelming majority of real-world blocks. + +The split is gated on three flags from `BlockModeDecoder.Decode`: + +```csharp +!info.IsVoidExtent && info.PartitionCount == 1 && !info.IsDualPlane +``` + +Real-world ASTC content is overwhelmingly single-partition, single-plane, non-void-extent. The fast paths handle that; everything else falls through to the generic path. + +### 1. Fused LDR fast path — `BlockDecoding/FusedLdrBlockDecoder.cs` + +Used when all three gate conditions hold and the endpoint mode is LDR (modes 0, 1, 4, 5, 6, 8, 9, 10, 12, 13). + +Instead of building a `LogicalBlock`, the fused path does this in one sweep per block: + +1. **BISE-decode the colour endpoint values and weight values.** The shared helper `FusedBlockDecoder.DecodeBiseValues` / `DecodeBiseWeights` handles three BISE encoding modes (pure bits / trits / quints — spec §C.2.12) by extracting directly from the 128-bit block as a `UInt128`, bypassing the general `BitStream`. Pure-bit ranges that fit in 64 bits skip a `BitStream` entirely. +2. **Batch-unquantise both sequences.** Precomputed per-range maps (`BiseEncoding/Quantize/TritQuantizationMap.cs`, `QuintQuantizationMap.cs`, `BitQuantizationMap.cs`) convert the raw BISE values to endpoint/weight values in a single pass. These tables are built once at type-load time. +3. **Infill weights from the grid to the texel array** using the precomputed `DecimationTable.Get(footprint, gridW, gridH)` entry. For full-grid blocks (weight grid matches footprint), this is an identity pass. +4. **Write pixels directly into the destination image buffer.** No intermediate per-block scratch allocation. A `Vector128` SIMD path (`Core/SimdHelpers.cs`) interpolates and writes four pixels at a time when hardware acceleration is available; the scalar fallback produces byte-identical output. + +Two sub-entry-points exist: `DecompressBlockFusedLdrToImage` writes straight to image-buffer coordinates for full-footprint interior blocks; `DecompressBlockFusedLdr` writes to a small scratch span for edge blocks that need cropping before the copy-out. Both share `FusedBlockDecoder.DecodeFusedCore`. + +### 2. Fused HDR fast path — `BlockDecoding/FusedHdrBlockDecoder.cs` + +Same structural shape as the LDR fast path: same gate, same `DecodeFusedCore`, same no-allocation discipline. Differences: + +- Endpoint decoding goes through `ColorEncoding/HdrEndpointDecoder.cs` (spec §C.2.14) instead of the LDR decoder. HDR endpoint modes (2, 3, 7, 11, 14, 15) emit UNORM16 endpoints rather than UNORM8. +- Interpolation produces `float` RGBA rather than `byte` RGBA. +- Output target is `Rgba128Float` (4 × float32 per pixel) so the destination buffer stride differs. + +HDR mode 14 (`HdrRgbDirectLdrAlpha`) is a hybrid — RGB is HDR but alpha is LDR. `FusedHdrBlockDecoder` handles that by branching on `endpointPair.AlphaIsLdr` and doing an LDR-style alpha interpolation with an 8-bit-to-float conversion, alongside the HDR RGB interpolation. + +### 3. General (logical-block) path — `BlockDecoding/LogicalBlock.cs` + +Everything else goes here. That includes: + +- **Multi-partition blocks** (2, 3, or 4 partitions). The partition index for each texel is computed from a 10-bit seed plus the block position via the spec's hash function (`ColorEncoding/Partition.cs`, spec §C.2.21). Each partition has its own endpoint pair, so interpolation picks the endpoints based on the assigned partition per texel. +- **Dual-plane blocks.** A second weight grid drives one channel independently (spec §C.2.20). `LogicalBlock` stack-allocates a secondary-weight span and passes it (with the dual-plane channel index) to a dedicated dual-plane writer. Interpolation uses the dual-plane weight for the designated channel and the regular weight for the other three. +- **Void-extent blocks.** The entire block is a single constant colour (LDR UNORM16 or HDR FP16, distinguished by bit 9 — see design decisions below). Handled by a short-circuit branch in `LogicalBlock.DecodeSinglePlane` that reads the constant from the high half of the block and skips BISE decode entirely. +- **Mixed LDR/HDR blocks.** Any block where individual partitions use different LDR/HDR endpoint modes (legal per spec). + +This path still decodes BISE, unquantises, computes partition assignments, and upsamples weights — the same work the fast paths fuse. The difference is that every intermediate result materialises in a stack-local `DecodedBlockState` (per-partition endpoint pairs + weight span + partition-assignment map), and the pixel write is a separate iteration that reads back from that state. The generic `WriteAllPixels` / `WriteAllPixelsDualPlane` loops dispatch through an `IPixelWriter` (`LdrPixelWriter`/`HdrPixelWriter`) so the JIT specialises per output type, but per-pixel they still pay for partition lookup and (in the dual-plane variant) per-channel weight selection. More branches and more memory traffic than the fused paths; but it handles every ASTC feature the spec defines without hundreds of lines of specialised code per feature combination. + +### Dispatching + +`AstcDecoder.DecompressImage` and `DecompressBlock` read each 128-bit block, parse its mode via `BlockModeDecoder.Decode` (`BlockDecoding/BlockModeDecoder.cs`), check the fast-path gate, and route. The parser is a single pass over spec Tables 17–24: block mode classification, weight grid dimensions, partition count, CEM (colour endpoint mode) extraction, dual-plane flag, colour value count, reserved-configuration rejection — all in one pass with no allocations. It returns a `BlockInfo` (`Core/BlockInfo.cs`) struct the caller inspects for dispatch. + +`BlockInfo.IsValid == false` means the block is reserved or illegal per spec. The decoder writes the spec-mandated error colour (magenta) into the corresponding image region rather than throwing or leaving zeros. `BlockInfo.IsHdr` covers both HDR endpoint modes (§C.2.14) and HDR void-extent blocks (§C.2.23, dynamic-range flag set); `IBlockPipeline.IsBlockLegal` returns false for HDR-mode blocks in the LDR pipeline so they get the same magenta treatment per §C.2.25. + +## Design decisions + +### Illegal blocks emit the spec-mandated error colour + +Per spec §C.2.19, §C.2.24, §C.2.25 a decoder must emit the error colour (magenta `0xFFFF00FF` in LDR; `(1, 0, 1, 1)` floats in HDR) for every texel of: + +* a reserved or illegal block encoding (e.g. reserved block-mode bits, weight count > 64, weight bits outside [24, 96], malformed void-extent); +* an HDR endpoint-mode block when decoded under the LDR profile. + +This decoder emits magenta for both cases. ARM `astcenc` differs in two ways: it returns `ASTCENC_ERR_BAD_DECODE_MODE` from the API on the first HDR block in LDR mode (we don't — the spec describes per-texel behaviour, and a single bad block shouldn't fail the whole image), and its current build emits `(0, 0, 0, 1)` for some illegal-encoding cases. The spec text prescribes the error colour for both, which is what we do — so a real-world scenario like "one corrupt block in a 100MB texture" produces a mostly-correct image with visible magenta artefacts where the bad block lives, rather than a thrown exception or silent zeroes. Callers who need HDR values use `DecompressHdrImage` / `DecompressHdrBlock`; the same illegal-block rule applies, with the float error colour. + +### LDR UNORM8 reduction takes the top 8 bits + +Per spec §C.2.19 (Weight Application), the LDR-mode UNORM8 output for each channel is the **top 8 bits** of the UNORM16 interpolation result `C = floor((C0*(64-i) + C1*i + 32)/64)` — i.e. `byte = (C >> 8) & 0xFF`, not a "fair" UNORM16→UNORM8 round like `((C * 255) + 32767) / 65536`. The two formulas differ by 1 LSB at many `C` values, so the spec-mandated truncation is what `SimdHelpers.InterpolateChannelScalar` and `Interpolate4ChannelPixels` use. This matches ARM's `astcenc` (`lerp_color_int` in `astcenc_decompress_symbolic.cpp`) bit-exactly, which is what the comparison tests in `tests/.../Astc/Reference/` enforce. + +### sRGB is not applied at decode time + +Any `VK_FORMAT_ASTC_*_SRGB_BLOCK` container decodes to the raw UNORM8 values without an sRGB→linear transform. This matches the library-wide convention for `BC7` and friends — callers who need linear RGB apply the transform downstream. The sRGB *colour-space* tag is purely informational and passes through unchanged. + +### Void-extent HDR flag convention + +Bit 9 of the block-mode low bits distinguishes LDR (`= 1`, stored as UNORM16) from HDR (`= 0`, stored as FP16) for void-extent blocks. This matches ARM's reference decoder (`astcenc_symbolic_physical.cpp`: `if (block_mode & 0x200) SYM_BTYPE_CONST_F16`). A plausible inverse reading exists elsewhere online; we've verified this one against ARM. + +### Thread-safe lazy caches + +`DecimationTable.Table` (14 footprints × 11 × 11 grid cells) is lazy-initialised on first access and shared across threads. Publication uses `Volatile.Read` + `Interlocked.CompareExchange`. The cached objects are immutable, so a losing CAS race just drops the duplicate and returns the winner. No lock is held during `Compute`, so concurrent decoders don't serialise on first-use. + +### Scratch buffers via `MemoryAllocator` + +The image-level LDR and HDR entry points allocate their per-block scratch (and, for the `Stream` overloads, the staging buffer for the compressed payload) through `MemoryAllocator.Default.Allocate`, returned as `IMemoryOwner` and disposed with `using`. This routes through the same allocator ImageSharp uses elsewhere, gives us pool reuse without manual rent/return discipline, and removes the need for a `try`/`finally` to avoid leaking a rented buffer on exception. Inside individual block decoders, weight grids and per-partition endpoint buffers are `stackalloc`'d — the spec caps both at sizes (≤ 144 ints for weights, 4 endpoint pairs) that comfortably fit in a stack frame. + +### `BitStream` shift boundaries + +The 128-bit bit buffer (`BiseEncoding/BitStream.cs`) special-cases `count == 0` and `count >= 128` in `ShiftBuffer`. C# masks shift amounts to the operand width, so `ulong << 64` is `<< 0` (identity) rather than zero. Without the explicit guards, a zero-bit read would OR the high half into the low half, corrupting every subsequent read. + +### Single-pass block mode decode + +`BlockModeDecoder.Decode` parses the entire block mode, weight grid dimensions, partition count, CEM (colour endpoint mode) layout, dual-plane flag, and colour value count in one pass over the 128-bit block, rejecting reserved configurations inline. + +## Decimation + +A weight grid can be smaller than the texel grid (e.g. a 4×4 weight grid driving an 8×8 footprint). Each texel's weight is then a bilinear blend of up to four neighbouring grid weights. The precomputed index + factor tables live in `Core/DecimationTable.cs`, keyed by `(footprint, gridWidth, gridHeight)`. One table is shared across every block that uses that combination. + +## Known limitations + +- **2D only.** 3D ASTC footprints (`VK_FORMAT_ASTC_3x3x3_*_BLOCK` and relatives) are rejected at `AstcFileHeader.FromMemory`. The decoder's arithmetic and tables are 2D-only; adding 3D support would be a substantial rework of the decimation and partition paths. +- **Supercompressed KTX2 containers (ZSTD, ZLIB, BasisLZ).** Rejected at the KTX2 decoder level with `NotSupportedException` before reaching this decoder. + +## Useful links + +The `§C.2.X` spec citations throughout the source code (e.g. `§C.2.19` for Weight Application) are section numbers from the **OpenGL `KHR_texture_compression_astc_hdr` extension**. A copy of that document is kept alongside this README at [`KHR_texture_compression_astc_hdr.txt`](./KHR_texture_compression_astc_hdr.txt) for reference; the canonical source is at [registry.khronos.org](https://registry.khronos.org/OpenGL/extensions/KHR/KHR_texture_compression_astc_hdr.txt). + +A secondary reference is the **Khronos Data Format Specification** (chapter 23), which covers the same ASTC content with a different numbering system. The PDF is committed at [`dataformat.1.3.pdf`](./dataformat.1.3.pdf) the HTML version is at [registry.khronos.org/DataFormat/specs/1.3](https://registry.khronos.org/DataFormat/specs/1.3/dataformat.1.3.html#ASTC). Section numbers do **not** match between the two documents — `§C.2.X` references in the code map to the OpenGL extension only. + +- [ARM ASTC Encoder](https://github.com/ARM-software/astc-encoder) — the reference implementation; `astcenc_symbolic_physical.cpp` and `astcenc_decompress_symbolic.cpp` are the canonical read for decoder behaviour. +- [Google astc-codec](https://github.com/google/astc-codec) — a second reference; useful cross-check for bit-layout corner cases. diff --git a/src/ImageSharp.Textures/Compression/Astc/dataformat.1.3.pdf b/src/ImageSharp.Textures/Compression/Astc/dataformat.1.3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..85ca17751f36d59d708ec202199ebdd0c465057e GIT binary patch literal 2956118 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

v0FXJIF&_qn=v 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%0D2D7Bm~!_Ob^!Xj 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�+O2t3ZfEkd=_I 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�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

=}%<3EOHJ? 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≤31LqYwyLpJ0w2(bPahac6xF5 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