grtamayo
Co-developer (ZIP, pkzip, gzip, Info-ZIP): 1970s to 80s. Now I don't even read much the source code of deflate and gzip or any SIMD/SSE/AVX code. :)
Philippines
Pinned Repositories
Algorithm-FGK
D. Knuth's adaptive or dynamic Huffman Coding named Algorithm FGK. Compressor and decompressor are fgkc and fgkd, respectively. Fgkz is a single-file coder/decoder.
Algorithm-Vitter
Dynamic Huffman Coding II: Vitter's algorithm, also known as "Algorithm V". Vitc.c and vitd.c implement Vitter's algorithm. Vitz.c shows how you can have more than one "huffmodel" in one program. Vittz and vittzd use the simple functions encode_symbolVITTER() and decode_symbolVITTER() to encode and decode bytes respectively.
BWT
Sample code for the Burrows-Wheeler Transform (BWT).
Huffman-Coding
Sample program for static Huffman Coding.
lzhc
Lzhh rehashed without adaptive Huffman to output compression codes of lzuf2. Compiled with 128KB window. Uses an EOF_CODE, works on enwik10. :P
lzpgt
Fast LZP codec. Equivalent to "praq52 c1 infile outfile". Lzpgt decoder now faster! Compress output is more compact than ppp and lzp2. Output is a block of bits (1/0), then a block of mismatched bytes. Lzpgt6 now faster and lzpgt7 with optional guess table bitsize.
lzuf62
Lzuf62 works on bigger files > 4GB like enwik10. Optional bitsize for sliding window implemented, WBITS = 12..20, default=17. Lzuf621 with optional bitsize of hash bucket search list (far_list_bits = 1..12), default=9. Lzuf622 and lzuf624 single file coder/decoder.
LZW-Algorithm
C implementations of the Lempel-Ziv-Welch (LZW) algorithm. Lzwg features optional bitsize (default=16) of dictionary string table size (default=65536). Lzwhc is a single file codec, via faster hashing. Note: lzwg uses maximum 1.7GB+ RAM and lzwhc uses maximum 2.4GB+ RAM @ 28-bit dictionary!
Move-To-Front
Simple file compressors using the MTF algorithm (2021). Your first data compressors (VLC + MTF), mtfc2 and mtfc3. :)
RLE
Sample program of Run-Length Encoding (RLE).
grtamayo's Repositories
grtamayo/LZW-Algorithm
C implementations of the Lempel-Ziv-Welch (LZW) algorithm. Lzwg features optional bitsize (default=16) of dictionary string table size (default=65536). Lzwhc is a single file codec, via faster hashing. Note: lzwg uses maximum 1.7GB+ RAM and lzwhc uses maximum 2.4GB+ RAM @ 28-bit dictionary!
grtamayo/lzpgt
Fast LZP codec. Equivalent to "praq52 c1 infile outfile". Lzpgt decoder now faster! Compress output is more compact than ppp and lzp2. Output is a block of bits (1/0), then a block of mismatched bytes. Lzpgt6 now faster and lzpgt7 with optional guess table bitsize.
grtamayo/RLE
Sample program of Run-Length Encoding (RLE).
grtamayo/Algorithm-FGK
D. Knuth's adaptive or dynamic Huffman Coding named Algorithm FGK. Compressor and decompressor are fgkc and fgkd, respectively. Fgkz is a single-file coder/decoder.
grtamayo/Algorithm-Vitter
Dynamic Huffman Coding II: Vitter's algorithm, also known as "Algorithm V". Vitc.c and vitd.c implement Vitter's algorithm. Vitz.c shows how you can have more than one "huffmodel" in one program. Vittz and vittzd use the simple functions encode_symbolVITTER() and decode_symbolVITTER() to encode and decode bytes respectively.
grtamayo/BWT
Sample code for the Burrows-Wheeler Transform (BWT).
grtamayo/Huffman-Coding
Sample program for static Huffman Coding.
grtamayo/lzhc
Lzhh rehashed without adaptive Huffman to output compression codes of lzuf2. Compiled with 128KB window. Uses an EOF_CODE, works on enwik10. :P
grtamayo/lzhhf
Golomb codes on the match_lengths, dynamic Huffman codes on the literals/offsets. Lzhhf3 and lzhhf4 single file coder/decoder.
grtamayo/lzuf62
Lzuf62 works on bigger files > 4GB like enwik10. Optional bitsize for sliding window implemented, WBITS = 12..20, default=17. Lzuf621 with optional bitsize of hash bucket search list (far_list_bits = 1..12), default=9. Lzuf622 and lzuf624 single file coder/decoder.
grtamayo/Move-To-Front
Simple file compressors using the MTF algorithm (2021). Your first data compressors (VLC + MTF), mtfc2 and mtfc3. :)
grtamayo/lzuf22
Corrected the decoding algorithm of lzuf2, actually using a previous simple working decoding algorithm. Note: ZIP is still better than lzuf22. :P
grtamayo/lzuf55
Lzuf55 starts with a small sliding window size to limit offset bitsize, but compression is not better than lzuf22. So in LZ77, big window size is king.
grtamayo/PRAQ
Sample code for LZ Prediction (LZP) algorithms.
grtamayo/praq4
This is a modification of praq3 from 2010 without using the ftell() function.
grtamayo/praq52
"PPP mode" now writes mismatched bytes as true raw bytes like in ppp compressor. Output is more compact than ppp and lzp2. As fast as ppp.
grtamayo/praq6
Essentially praq52 but using Golomb codes instead of the put_vlcode() function.
grtamayo/praq716
With lzpgt, these are what should have been the earliest versions of praq. Versions of transmitting LZP match_len and/or mismatched_len not just 1 bit per matched byte or mismatched byte. Actually less compression on mismatched_len.
grtamayo/Shannon-Fano-Coding
Sample code for Shannon Coding. Precursor to Huffman Coding?