Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
Tinned Koalas   [2024]

Tinned Koalas Released by :

Release Date :
4 April 2024

Type :
C64 One-File Demo

Three in 17307 Bytes

User rating:awaiting 8 votes (2 left)   See votestatistics

Credits :
Code .... ChristopherJam of Fantastic 4 Cracking Group
Graphics .... Floris
  Karen Davies
  Mermaid of Genesis Project, Vision

Download :

Look for downloads on external sites:

User Comment
Submitted by Oswald on 6 April 2024
cool predicting pixels sounds like chatgpt's predicting words
User Comment
Submitted by ChristopherJam on 6 April 2024
tl;dr - the cruncher only stores the colours it needs for each character, then tries to predict each pixel value given

- the pixel above
- the pixel to the left
- the number of colours in this character

It compresses the data by outputting fewer bits whenever the original image has a pixel that matches the prediction.
User Comment
Submitted by ChristopherJam on 6 April 2024
The core of the decruncher is something that returns a two bit value in response to an eight bit "context," that consumes fewer bits from the input stream for bit pairs that have in the past been more likely outputs for that context value. For each character, it fetches a two bit "number of colours" value with a context of the count for the previous character, then fetches from zero to 3 colour nybbles to place in screen and colour RAM (each one using the preceding colour as context), then each of the 32 pixels contained in the character are fetched using a context of [previous pixel, four pixels in the past, count of colours] - so most of the time one pixel to the left and one above,

But yes, that does mean doing one arithmetic decoding plus probability adjustment step per output bit of the entire image (two per bitpair) - though it practically skips over any chars that are full of the background colour.

Jetboy: For full screen images It'd get you one or two more koalas per side compared to using spot+dali, at the cost of much longer decompression times. Is it actually full screen things you're after, or something a bit smaller?
User Comment
Submitted by Jetboy on 5 April 2024
So what magic are you doing to get such good compression? I'm working on a graphic collection right now, and such a tool would be handy for me as it would let me squeeze more images per diskside.
User Comment
Submitted by ChristopherJam on 5 April 2024
Ah, nice. Thanks for updating those.

So, spot-style 'otpimizing' for png2prg 1.7? :D
User Comment
Submitted by Burglar on 5 April 2024
thanks cjam :)
though, the comparison with png2prg is not that good, so I redid the benchmark a bit so we're comparing apples: pack pic generated by png2prg, just like you did with spot. png2prg contains fade code and a fast TSCrunch that does not compress well.
 |   spot+dali |png2prg+dali | koalacanner |
 |        7349 |        7546 |        6755 | (Untitled/Floris)
 |        5155 |        5464 |        4594 | (Song of the Sunset/Mermaid)
 |        5986 |        6155 |        5624 | (Short Circuit/Karen Davies)

and yes, sending multiple images to png2prg will not make a slideshow, it will attempt to create a bitmap anim.
User Comment
Submitted by ChristopherJam on 5 April 2024
Cheers all.

Yes, this is indeed a bit OT from the original "remap bitpairs to make koalas more compression friendly"

I didn't manage to convince png2prg 1.6 to combine all three images into a single slideshow ("bitpairColors differ between frames"), but here's a size comparison of generating one standalone prg for each image:
 | png2prg 1.6 | koalacanner |
 |        9234 |        7085 | (Untitled/Floris)
 |        7340 |        4924 | (Song of the Sunset/Mermaid)
 |        7769 |        5954 | (Short Circuit/Karen Davies)

And for spot+dali, compressed image data only:
 |   spot+dali | koalacanner |
 |        7349 |        6755 | (Untitled/Floris)
 |        5155 |        4594 | (Song of the Sunset/Mermaid)
 |        5986 |        5624 | (Short Circuit/Karen Davies)

This thing doesn't bother storing unused colours - each char comes with a count of additional colour attributes, which is used to determine how many colour nybbles to fetch, and also as an input into the bitpair prediction.

Quiss: Yes! As Krill mentioned, I didn't manage to get any wins from backreferences. Any common motifs were quickly recognised by the adaptive bitpair prediction. I must admit, it surprised me too.
User Comment
Submitted by Burglar on 4 April 2024
nice one cjam!

the pics appear to be loading from tape ;)

in essence this seems to be a koala cruncher and not so much a koala optimizer.
how does it compare to other tools like SPOT 1.2 or dare I say it, png2prg 1.6, if you'd use zx0/dali or exomizer on the optimized koalas?
User Comment
Submitted by Krill on 4 April 2024
"No backreferences?" - That surprised me as well. Apparently having a constantly updated pool of context-driven probability distributions is enough. =)
User Comment
Submitted by Quiss on 4 April 2024
That's quite the codec! The interleaving of bitmap/color is interesting. No backreferences?
User Comment
Submitted by ChristopherJam on 4 April 2024
Very crunchy, very slow.

Shout out if you'd find a tool for the codec useful and I'll consider writing one - it's basically just a proof of concept at the moment.
Search CSDb
Prev - Random - Next
Detailed Info
· Summaries (1)
· User Comments (11)
· Production Notes
Fun Stuff
· Goofs
· Hidden Parts
· Trivia (1)
· Discuss this release
Support CSDb
Help keep CSDb running:

Funding status:

About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.094 sec.