From bc2a7acea5be1a3427a5b70c132a4ab433ed8da7 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 17 Oct 2021 01:12:06 +0100 Subject: [PATCH] Change Apple RLE algorithm for a faster version. --- Aaru6.Compression/AppleRle.cs | 142 +++++++++--------- AaruBenchmark/Benchs.cs | 4 +- .../{Aaru6.cs => Aaru6Compressions.cs} | 12 +- Benchmarks.ods | Bin 85188 -> 85473 bytes 4 files changed, 77 insertions(+), 81 deletions(-) rename AaruBenchmark/Compression/{Aaru6.cs => Aaru6Compressions.cs} (83%) diff --git a/Aaru6.Compression/AppleRle.cs b/Aaru6.Compression/AppleRle.cs index d43e251..c4cf908 100644 --- a/Aaru6.Compression/AppleRle.cs +++ b/Aaru6.Compression/AppleRle.cs @@ -31,8 +31,6 @@ // Copyright © 2018-2019 David Ryskalczyk // ****************************************************************************/ -using System.IO; - namespace Aaru6.Compression { /// Implements the Apple version of RLE @@ -40,89 +38,87 @@ namespace Aaru6.Compression { const uint DART_CHUNK = 20960; - readonly Stream _inStream; - int _count; - bool _nextA; // true if A, false if B - byte _repeatedByteA, _repeatedByteB; - bool _repeatMode; // true if we're repeating, false if we're just copying - - /// Initializes a decompressor for the specified stream - /// Stream containing the compressed data - public AppleRle(Stream stream) + /// Decodes a buffer compressed with Apple RLE + /// Encoded buffer + /// Buffer where to write the decoded data + /// The number of decoded bytes + public static int DecodeBuffer(byte[] source, byte[] destination) { - _inStream = stream; - Reset(); - } + int count = 0; + bool nextA = true; // true if A, false if B + byte repeatedByteA = 0, repeatedByteB = 0; + bool repeatMode = false; // true if we're repeating, false if we're just copying + int inPosition = 0, outPosition = 0; - void Reset() - { - _repeatedByteA = _repeatedByteB = 0; - _count = 0; - _nextA = true; - _repeatMode = false; - } - - /// Decompresses a byte - /// Decompressed byte - public int ProduceByte() - { - if(_repeatMode && _count > 0) + while(inPosition <= source.Length && + outPosition <= destination.Length) { - _count--; - - if(_nextA) + switch(repeatMode) { - _nextA = false; + case true when count > 0: + { + count--; - return _repeatedByteA; + if(nextA) + { + nextA = false; + + destination[outPosition++] = repeatedByteA; + + continue; + } + + nextA = true; + + destination[outPosition++] = repeatedByteB; + + continue; + } + case false when count > 0: + count--; + + destination[outPosition++] = source[inPosition++]; + + continue; } - _nextA = true; + if(inPosition == source.Length) + break; - return _repeatedByteB; - } - - if(!_repeatMode && - _count > 0) - { - _count--; - - return _inStream.ReadByte(); - } - - if(_inStream.Position == _inStream.Length) - return -1; - - while(true) - { - byte b1 = (byte)_inStream.ReadByte(); - byte b2 = (byte)_inStream.ReadByte(); - short s = (short)((b1 << 8) | b2); - - if(s == 0 || - s >= DART_CHUNK || - s <= -DART_CHUNK) - continue; - - if(s < 0) + while(true) { - _repeatMode = true; - _repeatedByteA = (byte)_inStream.ReadByte(); - _repeatedByteB = (byte)_inStream.ReadByte(); - _count = (-s * 2) - 1; - _nextA = false; + byte b1 = source[inPosition++]; + byte b2 = source[inPosition++]; + short s = (short)((b1 << 8) | b2); - return _repeatedByteA; + if(s == 0 || + s >= DART_CHUNK || + s <= -DART_CHUNK) + continue; + + if(s < 0) + { + repeatMode = true; + repeatedByteA = source[inPosition++]; + repeatedByteB = source[inPosition++]; + count = (-s * 2) - 1; + nextA = false; + + destination[outPosition++] = repeatedByteA; + + break; + } + + repeatMode = false; + count = (s * 2) - 1; + + destination[outPosition++] = source[inPosition++]; + + break; } - - if(s <= 0) - continue; - - _repeatMode = false; - _count = (s * 2) - 1; - - return _inStream.ReadByte(); } + + return outPosition; } } } \ No newline at end of file diff --git a/AaruBenchmark/Benchs.cs b/AaruBenchmark/Benchs.cs index 8c90483..e477eba 100644 --- a/AaruBenchmark/Benchs.cs +++ b/AaruBenchmark/Benchs.cs @@ -12,7 +12,7 @@ namespace AaruBenchmark public void Aaru() => Compression.Aaru.AppleRle(); [Benchmark] - public void Aaru6() => Compression.Aaru6.AppleRle(); + public void Aaru6() => Aaru6Compressions.AppleRle(); } [SimpleJob(RuntimeMoniker.Net60)] @@ -22,7 +22,7 @@ namespace AaruBenchmark public void Aaru() => Compression.Aaru.TeleDiskLzh(); [Benchmark] - public void Aaru6() => Compression.Aaru6.TeleDiskLzh(); + public void Aaru6() => Aaru6Compressions.TeleDiskLzh(); } [SimpleJob(RuntimeMoniker.Net60)] diff --git a/AaruBenchmark/Compression/Aaru6.cs b/AaruBenchmark/Compression/Aaru6Compressions.cs similarity index 83% rename from AaruBenchmark/Compression/Aaru6.cs rename to AaruBenchmark/Compression/Aaru6Compressions.cs index a6b9750..d4c6f5e 100644 --- a/AaruBenchmark/Compression/Aaru6.cs +++ b/AaruBenchmark/Compression/Aaru6Compressions.cs @@ -4,11 +4,11 @@ using Aaru6.Compression; namespace AaruBenchmark.Compression { - public class Aaru6 + public class Aaru6Compressions { public static void AppleRle() { - const int bufferSize = 20960; + const int bufferSize = 32768; byte[] input = new byte[1102]; var fs = new FileStream(Path.Combine(Program.Folder, "apple_rle.bin"), FileMode.Open, FileAccess.Read); @@ -19,12 +19,12 @@ namespace AaruBenchmark.Compression byte[] output = new byte[bufferSize]; - var rle = new AppleRle(new MemoryStream(input)); + int realSize = Aaru6.Compression.AppleRle.DecodeBuffer(input, output); - for(int i = 0; i < bufferSize; i++) - output[i] = (byte)rle.ProduceByte(); + if(realSize != 20960) + throw new InvalidDataException("Incorrect decompressed size"); - string crc = Crc32Context.Data(output, out _); + string crc = Crc32Context.Data(output, (uint)realSize, out _); if(crc != "3525ef06") throw new InvalidDataException("Incorrect decompressed checksum"); diff --git a/Benchmarks.ods b/Benchmarks.ods index 6bd76e45320af16d5c4094ff9d6dab7bcb442cb8..7fa0b6358cbe450032914be16ef69fd0b22d8557 100644 GIT binary patch delta 26983 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 BjoSbK delta 25746 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 C5aDS6