Thanks for that, I'll let byuu be the judge of quality plus my internet blows at the moment.
Yeah ios::binary fixed that up, I haven't had to deal with the sort of stuff since I was making shitty C apps with fopen. It works great now, with the extended compression with uint32 and all. I did quick tests in the decompressor / tilemolestor to see if anything was out of place. It takes its sweet time in compressing it though, must be a really involved algorithm. I compiled it with -O3 but with my pretty much nonexistant experience with the compiler, I'm not sure if there's anything else I could do to speed things up. I don't really mind though, I'm plenty patient.
I initially ran the conversion on the existing video using the compressor source just how it was originally (minus the extension on the size it can compress), but I was forgetting reading andreas' notes about the compression. It mentioned headers for different tile types and I compiled it using the original '00' setting. '01' is what I wanted for 8bpp tiles apparently so I ran it again using that. Just had to change the header parameter in the .cpp. It didn't appear to do anything though, I might have slipped up somewhere in copying or whatever, I will try again tomorrow.
Compressions statistics are:
original uncompressed: 81.6MB
00 header compression: 59.3MB (saved 22.3MB)
Code: Select all
compress(0, in_len, in_buf, out_len, out_buf);
01 header compression: 59.3MB?
Code: Select all
compress(1, in_len, in_buf, out_len, out_buf);
there were an awful lot of unfortunate packs of frames (I compressed 14 frames in a single pack, or 532KB) where it reported 520KB+ compressed size, even with 01 header. Most packs appeared to hover around the 400KB+ mark, I'd just occasionally look at my program's output in the console, stating what the compressed size / saved byte amount was at the time. Ofcourse the less busier frames were compressed quite nicely. It shaved off a decent chunk atleast.
e: I'll just make the header setting a command line parameter and have my program try all in succession and pick the smallest one, I'll do that next time around.