STAHL: Compressing Data for Easy Random Access

Lead Author Major

Computer Science

Lead Author Status

Senior

Format

SOECS Senior Project Demonstration

Faculty Mentor Name

Shon Vick

Faculty Mentor Department

Computer Science Department

Abstract/Artist Statement

STAHL’s purpose is to both create and provide access to collections of compressed files, inspired by certain compression archive formats used in numerous Nintendo 3DS games. Compression, in this context, refers to lossless compression, where a given file’s binary data—the 0s and 1s that comprise all digital data—is analyzed, and used to construct a new file that contains the same information in a smaller space, but requires additional processing to restore it to its original, usable form. ZIP files are an example of a lossless compression format.

STAHL focuses on both creating and reading from its own compressed archives, which are similar to ZIP files in purpose, but very different in implementation and features. STAHL supports several common compression formats, such as Zstandard and Brotli, to allow for a wide range of possible decompression time/compression ratio balances—compression ratio being a compressed file’s size divided by its uncompressed size. STAHL also supports encryption of archives at creation time and decryption while a libstahl program is running, to prevent casual decompression and analyzing of contents.

The project consists of two separate parts: Armsthrift, which creates the compressed files, and libstahl, a software library that external programs can use to access STAHL format archives.

The name STAHL is a both a reference and a backronym. The original name, Stahl, is the name of a character from a video game, and a backronym—“STores A Heckuva Lot”—was applied to give it a purpose beyond that.

Location

School of Engineering & Computer Science

Start Date

5-5-2018 3:30 PM

End Date

5-5-2018 4:30 PM

This document is currently not available here.

Share

COinS
 
May 5th, 3:30 PM May 5th, 4:30 PM

STAHL: Compressing Data for Easy Random Access

School of Engineering & Computer Science

STAHL’s purpose is to both create and provide access to collections of compressed files, inspired by certain compression archive formats used in numerous Nintendo 3DS games. Compression, in this context, refers to lossless compression, where a given file’s binary data—the 0s and 1s that comprise all digital data—is analyzed, and used to construct a new file that contains the same information in a smaller space, but requires additional processing to restore it to its original, usable form. ZIP files are an example of a lossless compression format.

STAHL focuses on both creating and reading from its own compressed archives, which are similar to ZIP files in purpose, but very different in implementation and features. STAHL supports several common compression formats, such as Zstandard and Brotli, to allow for a wide range of possible decompression time/compression ratio balances—compression ratio being a compressed file’s size divided by its uncompressed size. STAHL also supports encryption of archives at creation time and decryption while a libstahl program is running, to prevent casual decompression and analyzing of contents.

The project consists of two separate parts: Armsthrift, which creates the compressed files, and libstahl, a software library that external programs can use to access STAHL format archives.

The name STAHL is a both a reference and a backronym. The original name, Stahl, is the name of a character from a video game, and a backronym—“STores A Heckuva Lot”—was applied to give it a purpose beyond that.