| |
ChristopherJam
Registered: Aug 2004 Posts: 1423 |
On the relative pros and cons of various RLE schemes
So over in Native crunch/decrunch code. I just suggested encoding
abbcdddeffffg as
abb{0}cdd{1}eff{2}g
Raistlin kindly liked the idea, Krill quite sensibly didn't want us to hijack the post and suggested a new post for the new topic. so... Have at it! |
|
... 38 posts hidden. Click here to view all posts.... |
| |
JackAsser
Registered: Jun 2002 Posts: 2038 |
Quote: That depends how expensive your encoding for a zero additional repeat counts is. But sure, every compression scheme is vulnerable to certain inputs getting bigger instead of smaller, otherwise you could just keep recrunching to get arbitrarily small outputs.
Like Dinosours? |
| |
Krill
Registered: Apr 2002 Posts: 3070 |
Quoting JackAsserLike Dinosours? Dinasours? Which magical infinite cruncher are you referring to? =) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11499 |
did someone mention packers.txt yet? |
| |
tlr
Registered: Sep 2003 Posts: 1802 |
Quoting RaistlinIsn’t it more common to use a bit to define “constant or not”?
$00-7F .. count of non-repeats ($01-$80)
$80-FF .. count of repeats ($04-$83) Do you have any other examples of packers implementing this? I haven't seen that many.
I think the reason it's uncommon (on the C64) because it doesn't pack as well, and size was probably the main driver for the development of packers/crunchers. Decompression speed came much later. |
| |
Krill
Registered: Apr 2002 Posts: 3070 |
Quoting tlrI think the reason it's uncommon (on the C64) because it doesn't pack as well, and size was probably the main driver for the development of packers/crunchers. Decompression speed came much later. I think it's uncommon because everybody just copied everybody else's approach. :)
RLE used to be LZ-crunched anyways, so RLE compression ratio wasn't much of a concern.
How are you so sure this approach (generally?) packs worse than the escape-byte approach? |
| |
tlr
Registered: Sep 2003 Posts: 1802 |
Quoting KrillRLE used to be LZ-crunched anyways, so RLE compression ratio wasn't much of a concern. Initially RLE seemed to have been used by itself.
Quoting KrillHow are you so sure this approach (generally?) packs worse than the escape-byte approach? I'm thinking because only 128-ish runs are allowed + only 128-ish literal blocks. For a typical C64 program (demo?) there would be longish runs of empty space, interweaved with longish runs of code and data.
But maybe I'm assuming too much? Would be interesting to seem some practical measurements. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11499 |
Quote:For a typical C64 program (demo?) there would be longish runs of empty space, interweaved with longish runs of code and data.
Thats why people used "linkers" before packing :) But even if not so, the difference shouldn't be more than a couple bytes on a typical program - and those bytes would form a nice sequence that can be crunched later. |
| |
Fungus
Registered: Sep 2002 Posts: 736 |
Probably the most interesting Super-Zipper V8 |
| |
WVL
Registered: Mar 2002 Posts: 923 |
Quote: Quoting RaistlinIsn’t it more common to use a bit to define “constant or not”?
$00-7F .. count of non-repeats ($01-$80)
$80-FF .. count of repeats ($04-$83) Do you have any other examples of packers implementing this? I haven't seen that many.
I think the reason it's uncommon (on the C64) because it doesn't pack as well, and size was probably the main driver for the development of packers/crunchers. Decompression speed came much later.
Here is an example : https://csdb.dk/release/?id=34685. |
| |
JackAsser
Registered: Jun 2002 Posts: 2038 |
Quote: Quoting JackAsserLike Dinosours? Dinasours? Which magical infinite cruncher are you referring to? =)
Check any Dinosours release and you'll get the point. :D |
Previous - 1 | 2 | 3 | 4 | 5 - Next |