MTF Improvements?
From
Harry Potter@21:1/5 to
All on Sat Feb 11 08:55:23 2023
Hi! I'm sad to say that some recent bug fixes to my main compression technique cost me a lot of ground. :( I'm still doing better than WinMount on most files, though. This post is not about that technique. Rather, it's about another technique that's
to be open-source. It uses MTF, LZ77, my Last16 technique and a way to compress from the last LZ77 block. I don't know what the last is called, but it's used by the ZX0 technique. This technique is doing pretty well but not well enough. I'm wondering
if I can do anything to better my version of MTF or the other methods I'm using. Following is my code for writing MTF literals:
---------------------
void mtfWriteVal (void)
{
unsigned char m=mtfGetVal (CPos[k]);
if (m<32) {
writeoutf_11 ();
writeoutf (m, 5);
} else if (m<64) {
writeoutf_x2 (2);
writeoutf (m-32, 5);
} else if (m<128) {
writeoutf_x3 (5);
writeoutf (m-64, 6);
} else {
writeoutf_x3 (6);
writeoutf (m-128, 7);
}
}
--------------------
where writoutf() writes the number of bits specified in Parameter 2 and writeoutf_xy() writes the number of bits specified by y. BTW, this code was written using cc65 C, a variant of C targeted for 8-bit computers.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)