From c2cc544793bfcf78694fa6811af37b43c78012c9 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 9 Sep 2026 11:19:22 +1000 Subject: [PATCH] Fix-ICC-decoder-reference-baselines-and-HEIF-test-grouping --- HEIF_IMPLEMENTATION_PLAN.md | 26 ++++++++++ .../Formats/Heif/HeifDecoderTests.cs | 49 ++++++++++++++----- ...ccProfile_Rgba32_ducky_romm_icc_alpha.png} | 0 ...nSrgbIccProfile_Rgba32_perceptual_icc.png} | 0 ...IccProfile_Rgba32_perceptual_icc_grid.png} | 0 .../00.png | 0 .../01.png | 0 ...bIccProfile_Rgba32_paris_icc_exif_xmp.png} | 0 ...ile_Alpha_Rgba32_ducky_romm_icc_alpha.png} | 0 ...ofile_Grid_Rgba32_perceptual_icc_grid.png} | 0 ...ApplyIccProfile_Rgba32_perceptual_icc.png} | 0 .../00.png | 0 .../01.png | 0 ...rofileBytes_Rgba32_paris_icc_exif_xmp.png} | 0 ...ccProfile_Rgba32_ducky_romm_icc_alpha.png} | 0 ...sIccProfile_Rgba32_paris_icc_exif_xmp.png} | 0 ...ervesIccProfile_Rgba32_perceptual_icc.png} | 0 ...IccProfile_Rgba32_perceptual_icc_grid.png} | 0 .../00.png | 0 .../01.png | 0 ...ccProfile_Rgba32_ducky_romm_icc_alpha.png} | 0 ...sIccProfile_Rgba32_paris_icc_exif_xmp.png} | 0 ...IccProfile_Rgba32_perceptual_icc_grid.png} | 0 .../00.png | 0 .../01.png | 0 .../Decode_CMYK_ICC_Jpeg_Rgba32_issue-129.png | 4 +- ...B_ICC_Jpeg_Rgba32_Perceptual-cLUT-only.png | 4 +- .../Decode_RGB_ICC_Jpeg_Rgba32_Perceptual.png | 4 +- ...Decode_YCCK_ICC_Jpeg_Rgba32_issue_2723.png | 4 +- ...IccProfile_Rgba32_Perceptual-cLUT-only.png | 4 +- ...vert_ApplyIccProfile_Rgba32_Perceptual.png | 4 +- ..._CanDecode_YccK_ICC_Rgba32_Issue2454_A.png | 4 +- ..._CanDecode_YccK_ICC_Rgba32_Issue2454_B.png | 4 +- ...IccProfile_Rgba32_Perceptual-cLUT-only.png | 2 +- ...vert_ApplyIccProfile_Rgba32_Perceptual.png | 2 +- 35 files changed, 80 insertions(+), 31 deletions(-) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{Decode_Rgba32_ducky_romm_icc_alpha.png => Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_ducky_romm_icc_alpha.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{Decode_Rgba32_perceptual_icc.png => Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{Decode_Rgba32_perceptual_icc_grid.png => Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc_grid.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{Decode_Rgba32_perceptual_icc_sequence.avif => Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc_sequence.avif}/00.png (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{Decode_Rgba32_perceptual_icc_sequence.avif => Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc_sequence.avif}/01.png (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{Decode_Rgba32_paris_icc_exif_xmp.png => Decode_WhenColorProfileHandlingIsCompact_RemovesSrgbIccProfile_Rgba32_paris_icc_exif_xmp.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccConvertAlpha_Rgba32_ducky_romm_icc_alpha.png => Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Alpha_Rgba32_ducky_romm_icc_alpha.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccConvertGrid_Rgba32_perceptual_icc_grid.png => Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Grid_Rgba32_perceptual_icc_grid.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccConvert_Rgba32_perceptual_icc.png => Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_perceptual_icc.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccConvertSequence_Rgba32_perceptual_icc_sequence.avif => Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Sequence_Rgba32_perceptual_icc_sequence.avif}/00.png (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccConvertSequence_Rgba32_perceptual_icc_sequence.avif => Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Sequence_Rgba32_perceptual_icc_sequence.avif}/01.png (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccCompactSrgb_Rgba32_paris_icc_exif_xmp.png => Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfileBytes_Rgba32_paris_icc_exif_xmp.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccCompactNonSrgb_Rgba32_ducky_romm_icc_alpha.png => Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_ducky_romm_icc_alpha.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccPreserve_Rgba32_paris_icc_exif_xmp.png => Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_paris_icc_exif_xmp.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccCompactNonSrgb_Rgba32_perceptual_icc.png => Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccCompactNonSrgb_Rgba32_perceptual_icc_grid.png => Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc_grid.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccCompactNonSrgb_Rgba32_perceptual_icc_sequence.avif => Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc_sequence.avif}/00.png (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccCompactNonSrgb_Rgba32_perceptual_icc_sequence.avif => Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc_sequence.avif}/01.png (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccSkipMetadata_Rgba32_ducky_romm_icc_alpha.png => Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_ducky_romm_icc_alpha.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccSkipMetadata_Rgba32_paris_icc_exif_xmp.png => Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_paris_icc_exif_xmp.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccSkipMetadata_Rgba32_perceptual_icc_grid.png => Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_perceptual_icc_grid.png} (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccSkipMetadata_Rgba32_perceptual_icc_sequence.avif => Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_perceptual_icc_sequence.avif}/00.png (100%) rename tests/Images/External/ReferenceOutput/HeifDecoderTests/{IccSkipMetadata_Rgba32_perceptual_icc_sequence.avif => Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_perceptual_icc_sequence.avif}/01.png (100%) diff --git a/HEIF_IMPLEMENTATION_PLAN.md b/HEIF_IMPLEMENTATION_PLAN.md index e18b03c21d..a70f11f04d 100644 --- a/HEIF_IMPLEMENTATION_PLAN.md +++ b/HEIF_IMPLEMENTATION_PLAN.md @@ -1,5 +1,31 @@ # AVIF and AV1 implementation plan +## ICC codec regression correction: 2026-09-09 + +The previous 10,487-case selection omitted JPEG, PNG, TIFF, and WebP ICC decoder tests. It was not +adequate verification of the shared ICC interpolation change. Ubuntu ARM64/net10 CI run 34293831444, +job 102286178786, exposed ten failures. The same ten failures reproduce on Windows/net11: +`icc-ci-local-baseline-r1` passed 15 of 25 selected cases and failed ten. + +With explicit user authorization, ten stale PNG references were replaced with fresh DebugSave outputs +from the current interpolation implementation. No comparer tolerance or production arithmetic was changed. +The PNG/WebP perceptual outputs had 2,342 RGB components differing by one from each old reference. +The old JPEG references differed by up to 29 and TIFF by up to seven. These are not Ubuntu-only differences. +Comparing the downloaded CI output with the fresh Windows output instead gives exact RGB for PNG/WebP; +JPEG has 4, 4, 6, and 6 one-unit component differences, and TIFF has 72 and 66. No component exceeds one. +Those small platform differences fit the existing comparer tolerances. The updated images are managed +regression baselines for the selected interpolation behavior, not independent native-decoder evidence. + +AVIF ICC inputs now have dedicated Decode_WhenColorProfileHandling methods instead of being included +in the general Decode corpus method. Existing profile, pixel, alpha, and sequence assertions are retained. +The corresponding 23 reference PNG paths were renamed without changing their pixel content. + +Roslynk reported zero errors. Both test projects built in Release/net11. After restoring 59 accidentally +overwritten references and removing 205 unintended reference copies, full-suite VSTest execution of +ImageSharp.Tests and ImageSharp.PublicApi.Tests with no filter passed 58,053 tests, skipped 11, and failed +zero (58,064 total; 3.1977 minutes). Only the ten authorized ICC reference updates and 23 HEIF reference +renames remain in the reference-folder diff. This result verifies the regression suite, not complete AV1 parity. + ## Managed checkpoint verification: 2026-09-09 ICC interpolation selection is committed as `9aeed10da`. The region conversion, container metadata, diff --git a/tests/ImageSharp.Tests/Formats/Heif/HeifDecoderTests.cs b/tests/ImageSharp.Tests/Formats/Heif/HeifDecoderTests.cs index da0f255696..8206e23fd6 100644 --- a/tests/ImageSharp.Tests/Formats/Heif/HeifDecoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Heif/HeifDecoderTests.cs @@ -27,11 +27,6 @@ public class HeifDecoderTests [WithFile(TestImages.Heif.IrvineAvif, PixelTypes.Rgba32)] [WithFile(TestImages.Heif.XnConvert, PixelTypes.Rgba32)] [WithFile(TestImages.Heif.Orange4x4, PixelTypes.Rgba32)] - [WithFile(TestImages.Heif.ParisIccExifXmpAvif, PixelTypes.Rgba32)] - [WithFile(TestImages.Heif.PerceptualIccAvif, PixelTypes.Rgba32)] - [WithFile(TestImages.Heif.PerceptualIccGridAvif, PixelTypes.Rgba32)] - [WithFile(TestImages.Heif.PerceptualIccSequenceAvif, PixelTypes.Rgba32)] - [WithFile(TestImages.Heif.DuckyRommIccAlphaAvif, PixelTypes.Rgba32)] [WithFile(TestImages.Heif.Animated8Bit, PixelTypes.Rgba32)] [WithFile(TestImages.Heif.Animated8BitWithAudio, PixelTypes.Rgba32)] [WithFile(TestImages.Heif.Animated8BitWithAlphaExifXmp, PixelTypes.Rgba32)] @@ -179,12 +174,40 @@ public class HeifDecoderTests Assert.Equal(expectedFrameCount, image.Frames.Count); } + /// + /// Verifies that preserving an embedded ICC profile leaves every decoded frame unconverted. + /// + [Theory] + [WithFile(TestImages.Heif.ParisIccExifXmpAvif, PixelTypes.Rgba32)] + [WithFile(TestImages.Heif.PerceptualIccAvif, PixelTypes.Rgba32)] + [WithFile(TestImages.Heif.PerceptualIccGridAvif, PixelTypes.Rgba32)] + [WithFile(TestImages.Heif.PerceptualIccSequenceAvif, PixelTypes.Rgba32)] + [WithFile(TestImages.Heif.DuckyRommIccAlphaAvif, PixelTypes.Rgba32)] + public void Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile(TestImageProvider provider) + where TPixel : unmanaged, IPixel + { + DecoderOptions options = new() { ColorProfileHandling = ColorProfileHandling.Preserve }; + using Image image = provider.GetImage(HeifDecoder.Instance, options); + + Assert.NotNull(image.Metadata.IccProfile); + if (image.Frames.Count == 1) + { + image.DebugSave(provider, extension: "png", encoder: new PngEncoder()); + image.CompareToReferenceOutput(ImageComparer.Exact, provider); + } + else + { + image.DebugSaveMultiFrame(provider, encoder: new PngEncoder()); + image.CompareToReferenceOutputMultiFrame(provider, ImageComparer.Exact); + } + } + /// /// Verifies that AVIF decoding preserves the exact embedded ICC profile bytes. /// [Theory] [WithFile(TestImages.Heif.ParisIccExifXmpAvif, PixelTypes.Rgba32)] - public void IccPreserve(TestImageProvider provider) + public void Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfileBytes(TestImageProvider provider) where TPixel : unmanaged, IPixel { DecoderOptions preserveOptions = new() { ColorProfileHandling = ColorProfileHandling.Preserve }; @@ -204,7 +227,7 @@ public class HeifDecoderTests /// [Theory] [WithFile(TestImages.Heif.PerceptualIccAvif, PixelTypes.Rgba32)] - public void IccConvert(TestImageProvider provider) + public void Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile(TestImageProvider provider) where TPixel : unmanaged, IPixel { DecoderOptions preserveOptions = new() { ColorProfileHandling = ColorProfileHandling.Preserve }; @@ -226,7 +249,7 @@ public class HeifDecoderTests /// [Theory] [WithFile(TestImages.Heif.PerceptualIccGridAvif, PixelTypes.Rgba32)] - public void IccConvertGrid(TestImageProvider provider) + public void Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Grid(TestImageProvider provider) where TPixel : unmanaged, IPixel { DecoderOptions preserveOptions = new() { ColorProfileHandling = ColorProfileHandling.Preserve }; @@ -250,7 +273,7 @@ public class HeifDecoderTests /// [Theory] [WithFile(TestImages.Heif.PerceptualIccSequenceAvif, PixelTypes.Rgba32)] - public void IccConvertSequence(TestImageProvider provider) + public void Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Sequence(TestImageProvider provider) where TPixel : unmanaged, IPixel { DecoderOptions preserveOptions = new() { ColorProfileHandling = ColorProfileHandling.Preserve }; @@ -276,7 +299,7 @@ public class HeifDecoderTests /// [Theory] [WithFile(TestImages.Heif.DuckyRommIccAlphaAvif, PixelTypes.Rgba32)] - public void IccConvertAlpha(TestImageProvider provider) + public void Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Alpha(TestImageProvider provider) { DecoderOptions convertOptions = new() { ColorProfileHandling = ColorProfileHandling.Convert }; using Image decoded = provider.GetImage(HeifDecoder.Instance, convertOptions); @@ -294,7 +317,7 @@ public class HeifDecoderTests [WithFile(TestImages.Heif.PerceptualIccGridAvif, PixelTypes.Rgba32)] [WithFile(TestImages.Heif.PerceptualIccSequenceAvif, PixelTypes.Rgba32)] [WithFile(TestImages.Heif.DuckyRommIccAlphaAvif, PixelTypes.Rgba32)] - public void IccCompactNonSrgb(TestImageProvider provider) + public void Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile(TestImageProvider provider) where TPixel : unmanaged, IPixel { DecoderOptions preserveOptions = new() { ColorProfileHandling = ColorProfileHandling.Preserve }; @@ -324,7 +347,7 @@ public class HeifDecoderTests /// [Theory] [WithFile(TestImages.Heif.ParisIccExifXmpAvif, PixelTypes.Rgba32)] - public void IccCompactSrgb(TestImageProvider provider) + public void Decode_WhenColorProfileHandlingIsCompact_RemovesSrgbIccProfile(TestImageProvider provider) where TPixel : unmanaged, IPixel { DecoderOptions preserveOptions = new() { ColorProfileHandling = ColorProfileHandling.Preserve }; @@ -348,7 +371,7 @@ public class HeifDecoderTests [WithFile(TestImages.Heif.PerceptualIccGridAvif, PixelTypes.Rgba32)] [WithFile(TestImages.Heif.PerceptualIccSequenceAvif, PixelTypes.Rgba32)] [WithFile(TestImages.Heif.DuckyRommIccAlphaAvif, PixelTypes.Rgba32)] - public void IccSkipMetadata(TestImageProvider provider) + public void Decode_WhenSkipMetadataIsTrue_OmitsIccProfile(TestImageProvider provider) where TPixel : unmanaged, IPixel { DecoderOptions options = new() diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_ducky_romm_icc_alpha.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_ducky_romm_icc_alpha.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_ducky_romm_icc_alpha.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_ducky_romm_icc_alpha.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_perceptual_icc.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_perceptual_icc.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_perceptual_icc_grid.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc_grid.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_perceptual_icc_grid.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc_grid.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_perceptual_icc_sequence.avif/00.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc_sequence.avif/00.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_perceptual_icc_sequence.avif/00.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc_sequence.avif/00.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_perceptual_icc_sequence.avif/01.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc_sequence.avif/01.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_perceptual_icc_sequence.avif/01.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_PreservesNonSrgbIccProfile_Rgba32_perceptual_icc_sequence.avif/01.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_paris_icc_exif_xmp.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_RemovesSrgbIccProfile_Rgba32_paris_icc_exif_xmp.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_Rgba32_paris_icc_exif_xmp.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsCompact_RemovesSrgbIccProfile_Rgba32_paris_icc_exif_xmp.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvertAlpha_Rgba32_ducky_romm_icc_alpha.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Alpha_Rgba32_ducky_romm_icc_alpha.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvertAlpha_Rgba32_ducky_romm_icc_alpha.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Alpha_Rgba32_ducky_romm_icc_alpha.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvertGrid_Rgba32_perceptual_icc_grid.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Grid_Rgba32_perceptual_icc_grid.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvertGrid_Rgba32_perceptual_icc_grid.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Grid_Rgba32_perceptual_icc_grid.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvert_Rgba32_perceptual_icc.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_perceptual_icc.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvert_Rgba32_perceptual_icc.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_perceptual_icc.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvertSequence_Rgba32_perceptual_icc_sequence.avif/00.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Sequence_Rgba32_perceptual_icc_sequence.avif/00.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvertSequence_Rgba32_perceptual_icc_sequence.avif/00.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Sequence_Rgba32_perceptual_icc_sequence.avif/00.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvertSequence_Rgba32_perceptual_icc_sequence.avif/01.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Sequence_Rgba32_perceptual_icc_sequence.avif/01.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccConvertSequence_Rgba32_perceptual_icc_sequence.avif/01.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Sequence_Rgba32_perceptual_icc_sequence.avif/01.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactSrgb_Rgba32_paris_icc_exif_xmp.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfileBytes_Rgba32_paris_icc_exif_xmp.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactSrgb_Rgba32_paris_icc_exif_xmp.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfileBytes_Rgba32_paris_icc_exif_xmp.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_ducky_romm_icc_alpha.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_ducky_romm_icc_alpha.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_ducky_romm_icc_alpha.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_ducky_romm_icc_alpha.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccPreserve_Rgba32_paris_icc_exif_xmp.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_paris_icc_exif_xmp.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccPreserve_Rgba32_paris_icc_exif_xmp.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_paris_icc_exif_xmp.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_perceptual_icc.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_perceptual_icc.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_perceptual_icc_grid.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc_grid.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_perceptual_icc_grid.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc_grid.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_perceptual_icc_sequence.avif/00.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc_sequence.avif/00.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_perceptual_icc_sequence.avif/00.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc_sequence.avif/00.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_perceptual_icc_sequence.avif/01.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc_sequence.avif/01.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccCompactNonSrgb_Rgba32_perceptual_icc_sequence.avif/01.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenColorProfileHandlingIsPreserve_PreservesIccProfile_Rgba32_perceptual_icc_sequence.avif/01.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_ducky_romm_icc_alpha.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_ducky_romm_icc_alpha.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_ducky_romm_icc_alpha.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_ducky_romm_icc_alpha.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_paris_icc_exif_xmp.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_paris_icc_exif_xmp.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_paris_icc_exif_xmp.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_paris_icc_exif_xmp.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_perceptual_icc_grid.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_perceptual_icc_grid.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_perceptual_icc_grid.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_perceptual_icc_grid.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_perceptual_icc_sequence.avif/00.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_perceptual_icc_sequence.avif/00.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_perceptual_icc_sequence.avif/00.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_perceptual_icc_sequence.avif/00.png diff --git a/tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_perceptual_icc_sequence.avif/01.png b/tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_perceptual_icc_sequence.avif/01.png similarity index 100% rename from tests/Images/External/ReferenceOutput/HeifDecoderTests/IccSkipMetadata_Rgba32_perceptual_icc_sequence.avif/01.png rename to tests/Images/External/ReferenceOutput/HeifDecoderTests/Decode_WhenSkipMetadataIsTrue_OmitsIccProfile_Rgba32_perceptual_icc_sequence.avif/01.png diff --git a/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_CMYK_ICC_Jpeg_Rgba32_issue-129.png b/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_CMYK_ICC_Jpeg_Rgba32_issue-129.png index 4e554a34d3..aac260b64a 100644 --- a/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_CMYK_ICC_Jpeg_Rgba32_issue-129.png +++ b/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_CMYK_ICC_Jpeg_Rgba32_issue-129.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9750b54f5220020e0c3f5ce22e4f108cb70290750c613c29beeb49473d5c80a6 -size 1349665 +oid sha256:3dc5fb0dd26274e5a7c7bbaba7a7b941c7073787ff4918ac20fa09299d214797 +size 2087077 diff --git a/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_RGB_ICC_Jpeg_Rgba32_Perceptual-cLUT-only.png b/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_RGB_ICC_Jpeg_Rgba32_Perceptual-cLUT-only.png index 8a27087f51..905a8ab52a 100644 --- a/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_RGB_ICC_Jpeg_Rgba32_Perceptual-cLUT-only.png +++ b/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_RGB_ICC_Jpeg_Rgba32_Perceptual-cLUT-only.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dbe96e449dfeadc71bbfb0b48d2f56e6357d5b64a225153eed60263ea3356e71 -size 119987 +oid sha256:1ffc1ab4fbd9f8e1be4651d7667730453f44bbc2545c640802184efc156b8482 +size 154199 diff --git a/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_RGB_ICC_Jpeg_Rgba32_Perceptual.png b/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_RGB_ICC_Jpeg_Rgba32_Perceptual.png index 586bc96479..80fe27d2f4 100644 --- a/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_RGB_ICC_Jpeg_Rgba32_Perceptual.png +++ b/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_RGB_ICC_Jpeg_Rgba32_Perceptual.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e9e4da17b7270565fd592f4ff710ff317e1054794d966d33f11748defc7c35b -size 124944 +oid sha256:ca494862073d4b6f14e2b03207919c2d81959eb7aeef733b131406e9757449a8 +size 160707 diff --git a/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_YCCK_ICC_Jpeg_Rgba32_issue_2723.png b/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_YCCK_ICC_Jpeg_Rgba32_issue_2723.png index a73e5f31ef..0d084d892f 100644 --- a/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_YCCK_ICC_Jpeg_Rgba32_issue_2723.png +++ b/tests/Images/External/ReferenceOutput/JpegDecoderTests/Decode_YCCK_ICC_Jpeg_Rgba32_issue_2723.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de73fa7a2cdd79763e40c51381f9a0cf5c7d43db2dcd7a86dad0a5b68377665f -size 421249 +oid sha256:500dcfabe3a8dc8b33434b4a662296f8df91b5172819010534c2c08f359a0e85 +size 738586 diff --git a/tests/Images/External/ReferenceOutput/PngDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual-cLUT-only.png b/tests/Images/External/ReferenceOutput/PngDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual-cLUT-only.png index ffc9839019..d42f580e59 100644 --- a/tests/Images/External/ReferenceOutput/PngDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual-cLUT-only.png +++ b/tests/Images/External/ReferenceOutput/PngDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual-cLUT-only.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b72c885278a066e63c013885c42b772275f25a5f0b2290aa38c87f3dbeac984b -size 81432 +oid sha256:29f01bc5a45d2a21acfcc47a3a899d6dcc8d5c0cbde8d4610db92a6ec5bb1158 +size 79768 diff --git a/tests/Images/External/ReferenceOutput/PngDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual.png b/tests/Images/External/ReferenceOutput/PngDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual.png index 25a97ca48d..0ec50615a6 100644 --- a/tests/Images/External/ReferenceOutput/PngDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual.png +++ b/tests/Images/External/ReferenceOutput/PngDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:936261278b1a9f5bf9a2bb4f8da09f2a82e1b5c693790e137c5f98fa4d885735 -size 81785 +oid sha256:819d6ef6ea44ab0ecbc6f9537add6c9f2431c83062143e2c698cab5de44d67ae +size 79651 diff --git a/tests/Images/External/ReferenceOutput/TiffDecoderTests/TiffDecoder_CanDecode_YccK_ICC_Rgba32_Issue2454_A.png b/tests/Images/External/ReferenceOutput/TiffDecoderTests/TiffDecoder_CanDecode_YccK_ICC_Rgba32_Issue2454_A.png index addaa27bfe..dc71fc1ca3 100644 --- a/tests/Images/External/ReferenceOutput/TiffDecoderTests/TiffDecoder_CanDecode_YccK_ICC_Rgba32_Issue2454_A.png +++ b/tests/Images/External/ReferenceOutput/TiffDecoderTests/TiffDecoder_CanDecode_YccK_ICC_Rgba32_Issue2454_A.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:13f51f69b061303d06b73fa7e626d7252a9fd14aa84c961ea894f6e7cd7218cc -size 7603818 +oid sha256:5c5f09e2f7837f46664c637a1da3514c4b816661dc4303803f9f90e80953f5d3 +size 12236433 diff --git a/tests/Images/External/ReferenceOutput/TiffDecoderTests/TiffDecoder_CanDecode_YccK_ICC_Rgba32_Issue2454_B.png b/tests/Images/External/ReferenceOutput/TiffDecoderTests/TiffDecoder_CanDecode_YccK_ICC_Rgba32_Issue2454_B.png index 445cad99c8..861fe85b8e 100644 --- a/tests/Images/External/ReferenceOutput/TiffDecoderTests/TiffDecoder_CanDecode_YccK_ICC_Rgba32_Issue2454_B.png +++ b/tests/Images/External/ReferenceOutput/TiffDecoderTests/TiffDecoder_CanDecode_YccK_ICC_Rgba32_Issue2454_B.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b6a35853e44d06a6f74e3aaf558e6a4b9c3209c6c3fa2c8f3ee650bf049ac0d3 -size 7624359 +oid sha256:e0a9e7f7a13f0581c2a0283682aab17d123ca9ca156777173801f197fa95cc26 +size 12859523 diff --git a/tests/Images/External/ReferenceOutput/WebpDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual-cLUT-only.png b/tests/Images/External/ReferenceOutput/WebpDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual-cLUT-only.png index 4a01423ee7..d42f580e59 100644 --- a/tests/Images/External/ReferenceOutput/WebpDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual-cLUT-only.png +++ b/tests/Images/External/ReferenceOutput/WebpDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual-cLUT-only.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9a2cbd483eed31cf7b410ef1ee45ae78e77b36e5b9c31f87764a1dfdb9c4e5c8 +oid sha256:29f01bc5a45d2a21acfcc47a3a899d6dcc8d5c0cbde8d4610db92a6ec5bb1158 size 79768 diff --git a/tests/Images/External/ReferenceOutput/WebpDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual.png b/tests/Images/External/ReferenceOutput/WebpDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual.png index c46b369eff..0ec50615a6 100644 --- a/tests/Images/External/ReferenceOutput/WebpDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual.png +++ b/tests/Images/External/ReferenceOutput/WebpDecoderTests/Decode_WhenColorProfileHandlingIsConvert_ApplyIccProfile_Rgba32_Perceptual.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:547f3ddb5bdb3a3cb5c87440b65728be295c2b5f3c10a1b0b44299bb3d80e8d7 +oid sha256:819d6ef6ea44ab0ecbc6f9537add6c9f2431c83062143e2c698cab5de44d67ae size 79651