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: 1381
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 19:33
tlr

Registered: Sep 2003
Posts: 1724
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: 2854
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: 1724
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: 11146
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.
2024-04-23 07:18
Fungus

Registered: Sep 2002
Posts: 629
Probably the most interesting Super-Zipper V8
2024-04-23 08:04
WVL

Registered: Mar 2002
Posts: 886
Quote: 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.


Here is an example : https://csdb.dk/release/?id=34685.
2024-04-23 08:49
JackAsser

Registered: Jun 2002
Posts: 1990
Quote: Quoting JackAsser
Like Dinosours?
Dinasours? Which magical infinite cruncher are you referring to? =)


Check any Dinosours release and you'll get the point. :D
2024-04-23 09:34
Bitbreaker

Registered: Oct 2002
Posts: 501
Quoting Krill

RLE used to be LZ-crunched anyways, so RLE compression ratio wasn't much of a concern.


What is kind of hard to understand, as LZ includes RLE by design (match with offset 1)
2024-04-23 09:34
Krill

Registered: Apr 2002
Posts: 2854
Quoting JackAsser
Check any Dinosours release and you'll get the point. :D
I was aware that Dinasours pack everything 10 times for comedic effect,
but i thought maybe they've released the Airwolf Fixer of crunchers or something and i've missed that. :)
2024-04-23 09:37
Krill

Registered: Apr 2002
Posts: 2854
Quoting Bitbreaker
Quoting Krill

RLE used to be LZ-crunched anyways, so RLE compression ratio wasn't much of a concern.
What is kind of hard to understand, as LZ includes RLE by design (match with offset 1)
Native LZ crunchers used to require quite a bit of working memory, so the maximum size of input programs was often smaller than entirely uncompressed programs.
Thus RLE first, then LZ. Also this two-pass approach can make for better overall compression ratio.
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
cba
Mike
trident
Ricky/Bonzai
Hok/Remember
Linus/MSL
DjS/Silicon Ltd
Courage
Ko-Ko
Guests online: 137
Top Demos
1 Next Level  (9.8)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.6)
6 Comaland 100%  (9.6)
7 Uncensored  (9.6)
8 No Bounds  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 Layers  (9.7)
2 It's More Fun to Com..  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Rainbow Connection  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Booze Design  (9.3)
3 Censor Design  (9.3)
4 Crest  (9.3)
5 Performers  (9.3)
Top Organizers
1 Burglar  (9.9)
2 Sixx  (9.8)
3 hedning  (9.7)
4 Irata  (9.7)
5 MWS  (9.6)

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