Som lovat, här kommer det.
Jag valde att attackera problemet nästan fullt ut.
Jag har fortfarande inte använt half floats, men däremot så har jag komprimerat det så mycket jag kan på alla andra sätt jag kommit på.
Dessutom så valde jag att spara ned det hela på disk och läsa in det igen, så man får bevisat att det håller hela vägen.
När jag sparar ned på disk, så komprimerar jag dessutom extra med hjälp av zlib, så man får en uppfattning av både hur mycket minne det tar i systemet, och på disk. Båda sakerna är ju intressanta på var sitt sätt.
Och siffrorna?
Se och gråt:

Hela projektet kan tankas från:
http://www.hildenborg.com/leetdev/animCompression2.rarKnepen jag tog till var:
1. Filtrera ut närliggande värden, och bygga en indexerad lista över dom.
2. Run-length spara indexerade värden med variabel bitstorlek.
3. Skippa quaternioner och lagra istället med euler vinklar (skall bara användas som fasta vinklar, så det är helt OK).
Koden är som vanligt hastigt skriven, och jag börjar mer och mer skämmas för den dåliga strukturen...