From a39e6abb9744a756950224ad7326f7d2b4820964 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 2 Sep 2025 03:52:35 +0100 Subject: [PATCH] Add ARC methods 5, 6 and 7, LZW with different hash tables, with and without non-repeat packing, aka crunch. --- CMakeLists.txt | 3 +- arc/crunch.c | 294 +++++++++++++++++++++++++++++++++++++ library.h | 15 +- tests/CMakeLists.txt | 3 +- tests/arc/crunch.cpp | 81 ++++++++++ tests/data/arccrunchnr.bin | Bin 0 -> 72537 bytes 6 files changed, 392 insertions(+), 4 deletions(-) create mode 100644 arc/crunch.c create mode 100644 tests/arc/crunch.cpp create mode 100755 tests/data/arccrunchnr.bin diff --git a/CMakeLists.txt b/CMakeLists.txt index 892a6cb..d56c4e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,7 +141,8 @@ add_library("Aaru.Compression.Native" SHARED library.c apple_rle.c apple_rle.h a zoo/ar.h zoo/maketbl.c arc/pack.c - arc/squeeze.c) + arc/squeeze.c + arc/crunch.c) include(3rdparty/bzip2.cmake) include(3rdparty/flac.cmake) diff --git a/arc/crunch.c b/arc/crunch.c new file mode 100644 index 0000000..3f1128b --- /dev/null +++ b/arc/crunch.c @@ -0,0 +1,294 @@ +/* + * This file is part of the Aaru Data Preservation Suite. + * Copyright (c) 2019-2025 Natalia Portillo. + * Copyright © 2018-2019 David Ryskalczyk + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#include +#include +#include +#include "../library.h" + +#define FALSE 0 +#define TRUE !FALSE +#define TABSIZE 4096 // Size of the string table. +#define NO_PRED 0xFFFF // Indicates no predecessor in the string table. +#define EMPTY 0xFFFF // Indicates an empty stack. + +typedef unsigned char u_char; +typedef unsigned short u_short; + +// Entry in the string table. +struct entry +{ + char used; // Is this entry in use? + u_char follower; // The character that follows the string. + u_short next; // Next entry in a collision chain. + u_short predecessor; // Code for the preceding string. +}; + +// Static variables for decompression state. +static struct entry *string_tab; +static u_char *stack; +static int sp; + +// Buffer management variables. +static const u_char *in_buf_ptr; +static size_t in_len_rem; +static int inflag; + +// Pointer to the hash function to use. +static u_short (*h)(u_short, u_char); + +// Original hash function from ARC. +static u_short oldh(u_short pred, u_char foll) +{ + long local; + local = ((pred + foll) | 0x0800) & 0xFFFF; + local *= local; + return (local >> 6) & 0x0FFF; +} + +// Newer, faster hash function. +static u_short newh(u_short pred, u_char foll) { return (((pred + foll) & 0xFFFF) * 15073) & 0xFFF; } + +// Finds the end of a collision list. +static u_short eolist(u_short index) +{ + int temp; + while((temp = string_tab[index].next)) index = temp; + return index; +} + +// Hashes a string to find its position in the table. +static u_short hash_it(u_short pred, u_char foll) +{ + u_short local, tempnext; + struct entry *ep; + + local = (*h)(pred, foll); + + if(!string_tab[local].used) + return local; + else + { + local = eolist(local); + tempnext = (local + 101) & 0x0FFF; + ep = &string_tab[tempnext]; + + while(ep->used) + { + if(++tempnext == TABSIZE) + { + tempnext = 0; + ep = string_tab; + } + else + ++ep; + } + string_tab[local].next = tempnext; + return tempnext; + } +} + +// Adds a new string to the table. +static void upd_tab(u_short pred, u_short foll) +{ + struct entry *ep; + ep = &string_tab[hash_it(pred, foll)]; + ep->used = TRUE; + ep->next = 0; + ep->predecessor = pred; + ep->follower = foll; +} + +// Initializes the string table. +static void init_tab() +{ + memset((char *)string_tab, 0, TABSIZE * sizeof(struct entry)); + for(unsigned int i = 0; i < 256; i++) upd_tab(NO_PRED, i); +} + +// Reads a 12-bit code from the input buffer. +static int get_code() +{ + int code; + if(in_len_rem < 2) return -1; + + if((inflag ^= 1)) + { + code = (*in_buf_ptr++ << 4); + code |= (*in_buf_ptr >> 4); + in_len_rem--; + } + else + { + code = (*in_buf_ptr++ & 0x0f) << 8; + code |= (*in_buf_ptr++); + in_len_rem -= 2; + } + return code; +} + +// Pushes a character onto the stack. +#define PUSH(c) \ + do { \ + stack[sp] = ((char)(c)); \ + if(++sp >= TABSIZE) return -1; \ + } while(0) + +// Pops a character from the stack. +#define POP() ((sp > 0) ? (int)stack[--sp] : EMPTY) + +// Internal crunch decompression logic. +static int arc_decompress_crunch_internal(const unsigned char *in_buf, size_t in_len, unsigned char *out_buf, + size_t *out_len, int new_hash) +{ + // Basic validation of pointers. + if(!in_buf || !out_buf || !out_len) { return -1; } + + // Allocate memory for tables. + string_tab = (struct entry *)malloc(TABSIZE * sizeof(struct entry)); + stack = (u_char *)malloc(TABSIZE * sizeof(u_char)); + if(!string_tab || !stack) + { + if(string_tab) free(string_tab); + if(stack) free(stack); + return -1; + } + + // Select the hash function. + if(new_hash) + h = newh; + else + h = oldh; + + // Initialize state. + sp = 0; + init_tab(); + int code_count = TABSIZE - 256; + in_buf_ptr = in_buf; + in_len_rem = in_len; + inflag = 0; + + // Main decompression loop. + int oldcode = get_code(); + if(oldcode == -1) + { + *out_len = 0; + free(string_tab); + free(stack); + return 0; + } + int finchar = string_tab[oldcode].follower; + + size_t out_pos = 0; + if(out_pos < *out_len) { out_buf[out_pos++] = finchar; } + + int newcode; + while((newcode = get_code()) != -1) + { + int code = newcode; + struct entry *ep = &string_tab[code]; + + // Handle unknown codes and KwKwK case. + if(!ep->used) + { + code = oldcode; + ep = &string_tab[code]; + PUSH(finchar); + } + // Decode the string by traversing the table. + while(ep->predecessor != NO_PRED) + { + PUSH(ep->follower); + code = ep->predecessor; + ep = &string_tab[code]; + } + PUSH(finchar = ep->follower); + + // Add the new string to the table if there's room. + if(code_count) + { + upd_tab(oldcode, finchar); + --code_count; + } + oldcode = newcode; + + // Write the decoded string to the output buffer. + while(sp > 0) + { + int c = POP(); + if(c == EMPTY) break; + if(out_pos < *out_len) { out_buf[out_pos++] = (unsigned char)c; } + } + } + + // Clean up and return. + *out_len = out_pos; + free(string_tab); + free(stack); + return 0; +} + +// Decompresses crunched data. +AARU_EXPORT int AARU_CALL arc_decompress_crunch(const unsigned char *in_buf, size_t in_len, unsigned char *out_buf, + size_t *out_len) +{ + return arc_decompress_crunch_internal(in_buf, in_len, out_buf, out_len, 0); +} + +// Decompresses crunched data with non-repeat packing. +AARU_EXPORT int AARU_CALL arc_decompress_crunch_nrpack(const unsigned char *in_buf, size_t in_len, + unsigned char *out_buf, size_t *out_len) +{ + // Allocate a temporary buffer for the intermediate decompressed data. + size_t temp_len = *out_len * 2; // Heuristic for temp buffer size. + unsigned char *temp_buf = malloc(temp_len); + if(!temp_buf) return -1; + + // First, decompress the crunched data. + int result = arc_decompress_crunch_internal(in_buf, in_len, temp_buf, &temp_len, 0); + if(result == 0) + { + // Then, decompress the non-repeat packing. + result = arc_decompress_pack(temp_buf, temp_len, out_buf, out_len); + } + + free(temp_buf); + return result; +} + +// Decompresses crunched data with non-repeat packing and the new hash function. +AARU_EXPORT int AARU_CALL arc_decompress_crunch_nrpack_new(const unsigned char *in_buf, size_t in_len, + unsigned char *out_buf, size_t *out_len) +{ + // Allocate a temporary buffer. + size_t temp_len = *out_len * 2; // Heuristic. + unsigned char *temp_buf = malloc(temp_len); + if(!temp_buf) return -1; + + // Decompress crunched data with the new hash. + int result = arc_decompress_crunch_internal(in_buf, in_len, temp_buf, &temp_len, 1); + if(result == 0) + { + // Decompress non-repeat packing. + result = arc_decompress_pack(temp_buf, temp_len, out_buf, out_len); + } + + free(temp_buf); + return result; +} diff --git a/library.h b/library.h index 1949018..c1e9058 100644 --- a/library.h +++ b/library.h @@ -119,8 +119,19 @@ AARU_EXPORT int AARU_CALL lh5_decompress(const uint8_t *in_buf, size_t in_len, u AARU_EXPORT uint64_t AARU_CALL AARU_get_acn_version(); // ARC method 3: Stored with non-repeat packing -AARU_EXPORT int AARU_CALL arc_decompress_pack(const unsigned char *in_buf, size_t in_len, unsigned char *out_buf, size_t *out_len); +AARU_EXPORT int AARU_CALL arc_decompress_pack(const unsigned char *in_buf, size_t in_len, unsigned char *out_buf, + size_t *out_len); // ARC method 4: Huffman squeezing -AARU_EXPORT int AARU_CALL arc_decompress_squeeze(const unsigned char *in_buf, size_t in_len, unsigned char *out_buf, size_t *out_len); +AARU_EXPORT int AARU_CALL arc_decompress_squeeze(const unsigned char *in_buf, size_t in_len, unsigned char *out_buf, + size_t *out_len); +// Method 5: LZW (crunching) +AARU_EXPORT int AARU_CALL arc_decompress_crunch(const unsigned char *in_buf, size_t in_len, unsigned char *out_buf, + size_t *out_len); +// Method 6: LZW with non-repeat packing (crunching) +AARU_EXPORT int AARU_CALL arc_decompress_crunch_nrpack(const unsigned char *in_buf, size_t in_len, + unsigned char *out_buf, size_t *out_len); +// Method 7: LZW with non-repeat packing and new hash (Crunching) +AARU_EXPORT int AARU_CALL arc_decompress_crunch_nrpack_new(const unsigned char *in_buf, size_t in_len, + unsigned char *out_buf, size_t *out_len); #endif // AARU_COMPRESSION_NATIVE_LIBRARY_H diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index af9b4d0..36cf7f6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -54,5 +54,6 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/data/arcsqueeze.bin # 'Google_Tests_run' is the target name # 'test1.cpp tests2.cpp' are source files with tests add_executable(tests_run apple_rle.cpp crc32.c crc32.h adc.cpp bzip2.cpp lzip.cpp lzfse.cpp zstd.cpp lzma.cpp flac.cpp - zoo/lzd.cpp arc/pack.cpp lh5.cpp arc/squeeze.cpp) + zoo/lzd.cpp arc/pack.cpp lh5.cpp arc/squeeze.cpp + arc/crunch.cpp) target_link_libraries(tests_run gtest gtest_main "Aaru.Compression.Native") diff --git a/tests/arc/crunch.cpp b/tests/arc/crunch.cpp new file mode 100644 index 0000000..de310f1 --- /dev/null +++ b/tests/arc/crunch.cpp @@ -0,0 +1,81 @@ +/* + * This file is part of the Aaru Data Preservation Suite. + * Copyright (c) 2019-2025 Natalia Portillo. + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#include +#include +#include + +#include "../../library.h" +#include "../crc32.h" +#include "gtest/gtest.h" + +#define EXPECTED_CRC32 0x66007dba + +static const uint8_t *buffer; + +class crunchFixture : public ::testing::Test +{ +public: + crunchFixture() + { + // initialization; + // can also be done in SetUp() + } + +protected: + void SetUp() + { + char path[PATH_MAX]; + char filename[PATH_MAX]; + + getcwd(path, PATH_MAX); + snprintf(filename, PATH_MAX, "%s/data/arccrunchnr.bin", path); + + FILE *file = fopen(filename, "rb"); + buffer = (const uint8_t *)malloc(72537); + fread((void *)buffer, 1, 72537, file); + fclose(file); + } + + void TearDown() { free((void *)buffer); } + + ~crunchFixture() + { + // resources cleanup, no exceptions allowed + } + + // shared user data +}; + +TEST_F(crunchFixture, crunch) +{ + size_t destLen = 152089; + size_t srcLen = 72537; + auto *outBuf = (uint8_t *)malloc(152089); + + auto err = arc_decompress_crunch_nrpack(buffer, srcLen, outBuf, &destLen); + + EXPECT_EQ(err, 0); + EXPECT_EQ(destLen, 152089); + + auto crc = crc32_data(outBuf, 152089); + + free(outBuf); + + EXPECT_EQ(crc, EXPECTED_CRC32); +} \ No newline at end of file diff --git a/tests/data/arccrunchnr.bin b/tests/data/arccrunchnr.bin new file mode 100755 index 0000000000000000000000000000000000000000..21f990110f4b583f2d49ca7d2589fc1a65f74925 GIT binary patch literal 72537 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 literal 0 HcmV?d00001