Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > On the relative pros and cons of various RLE schemes
2024-04-21 17:12
ChristopherJam

Registered: Aug 2004
Posts: 1380
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!
 
... 26 posts hidden. Click here to view all posts....
 
2024-04-22 04:43
Fungus

Registered: Sep 2002
Posts: 624
In the case of my packer I used esc,esc to represent a literal. It still caused expansion, but it also was a common sequence that would be crunched by whatever lz compressor I was using at the time, either byteboiler/level ab2, or level crusher.

The esc,esc worked for the other encoding way too.

Lightemizer and Oneway's packers would be interesting to look into these days. Back then I was trying to understand algos and make my own rather than using other peoples code. But you don't get accused of ripping anymore so looking at stuff is OK these days.
2024-04-22 07:57
Krill

Registered: Apr 2002
Posts: 2852
Quoting Fungus
But you don't get accused of ripping anymore so looking at stuff is OK these days.
Ripping and looking at other people's code are different things, though. =)
2024-04-22 09:25
The Human Code Machine

Registered: Sep 2005
Posts: 110
Here's an exmaple of a byte packer using different pack codes: https://codebase64.org/doku.php?id=base:mdg_bytesmasher_0.04&s[..
2024-04-22 13:54
JackAsser

Registered: Jun 2002
Posts: 1989
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?
2024-04-22 15:42
Krill

Registered: Apr 2002
Posts: 2852
Quoting JackAsser
Like Dinosours?
Dinasours? Which magical infinite cruncher are you referring to? =)
2024-04-22 15:48
chatGPZ

Registered: Dec 2001
Posts: 11135
did someone mention packers.txt yet?
2024-04-22 19:33
tlr

Registered: Sep 2003
Posts: 1721
Quoting Raistlin
Isn’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.
2024-04-22 20:28
Krill

Registered: Apr 2002
Posts: 2852
Quoting tlr
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.
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?
2024-04-22 20:41
tlr

Registered: Sep 2003
Posts: 1721
Quoting Krill
RLE 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 Krill
How 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.
2024-04-23 02:08
chatGPZ

Registered: Dec 2001
Posts: 11135
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.
Previous - 1 | 2 | 3 | 4 | 5 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Mike
Linus/MSL
iceout/Avatar/HF
Didi/Laxity
The Phantom
Guests online: 101
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Quadrants  (9.5)
9 Daah, Those Acid Pil..  (9.5)
10 Birth of a Flower  (9.5)
Top Groups
1 Nostalgia  (9.3)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Diskmag Editors
1 Jazzcat  (9.4)
2 Magic  (9.4)
3 hedning  (9.2)
4 Elwix  (9.1)
5 A Life in Hell  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.047 sec.