From 9c0999e9db43f4adca0174d266d9eb49fb077aea Mon Sep 17 00:00:00 2001 From: Dmitry Pentin Date: Thu, 27 May 2021 23:54:50 +0300 Subject: [PATCH] Huffman lookup tables are now integers instead of unsigned integers --- .../Formats/Jpeg/Components/Encoder/HuffmanLut.cs | 10 +++++----- .../Jpeg/Components/Encoder/HuffmanScanEncoder.cs | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ImageSharp/Formats/Jpeg/Components/Encoder/HuffmanLut.cs b/src/ImageSharp/Formats/Jpeg/Components/Encoder/HuffmanLut.cs index bc2c7634b5..bc6c8c6cc7 100644 --- a/src/ImageSharp/Formats/Jpeg/Components/Encoder/HuffmanLut.cs +++ b/src/ImageSharp/Formats/Jpeg/Components/Encoder/HuffmanLut.cs @@ -1,4 +1,4 @@ -// Copyright (c) Six Labors. +// Copyright (c) Six Labors. // Licensed under the Apache License, Version 2.0. namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Encoder @@ -44,7 +44,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Encoder } } - this.Values = new uint[maxValue + 1]; + this.Values = new int[maxValue + 1]; int code = 0; int k = 0; @@ -54,7 +54,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Encoder int bits = (i + 1) << 24; for (int j = 0; j < spec.Count[i]; j++) { - this.Values[spec.Values[k]] = (uint)(bits | code); + this.Values[spec.Values[k]] = bits | code; code++; k++; } @@ -66,6 +66,6 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Encoder /// /// Gets the collection of huffman values. /// - public uint[] Values { get; } + public int[] Values { get; } } -} \ No newline at end of file +} diff --git a/src/ImageSharp/Formats/Jpeg/Components/Encoder/HuffmanScanEncoder.cs b/src/ImageSharp/Formats/Jpeg/Components/Encoder/HuffmanScanEncoder.cs index af8192749a..0320229a2b 100644 --- a/src/ImageSharp/Formats/Jpeg/Components/Encoder/HuffmanScanEncoder.cs +++ b/src/ImageSharp/Formats/Jpeg/Components/Encoder/HuffmanScanEncoder.cs @@ -344,7 +344,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Encoder [MethodImpl(InliningOptions.ShortMethod)] private void EmitHuff(int index, int value) { - int x = (int)HuffmanLut.TheHuffmanLut[index].Values[value]; + int x = HuffmanLut.TheHuffmanLut[index].Values[value]; this.Emit(x & ((1 << 24) - 1), x >> 24); }