A part pour un écran de titre où il y a plein de blanc, les sprites sont très mal compressés en RLE, en tout cas si tu le fais octet par octet. D'ailleurs comme type de compression context-independent, à part RLE ou Huffman, je vois pas trop... Et Huffman est soit lent, soit compliqué à décompresser, et de toute façon il ne sera pas extraordinairement efficace (même s'il le sera plus que RLE

).
J'ai aussi une méthode qui pourrait booster pas mal la décompression XPak, mais j'ai vraiment la flemme de l'implémenter... (elle nécessiterait un changement assez important au niveau du format d'entrée).
Et de toute façon dans tout les cas ça reste dépendant du contexte. D'ailleurs (désolé si ce truc est un peu confus pour ceux qui ne connaissent pas bien LZ

) je me demande si ce serait pas possible d'implémenter un LZ (ou plus généralement, un PuCrunch-like comme TTPack ou XPak) à dépendance limitée (et non à distance de LZ limitée) : i.e. quand on décompresse une séquence LZ, il faut qu'elle soit à une distance
d du point d'insertion de moins de d_max et que les octets auxquels elle fait référence soient des littéraux ou bien des séquences LZ à une distance
d' de moins de d_max-
d, et qu'elle ne fasse elle-même référence qu'à des littéraux ou des séquences LZ à une distance de moins de d_max-
d-
d', et ainsi de suite... Je ne suis pas sûr que la pénalité de taux de compression soit complètement dissuasive (ça doit rester qd même assez supérieur à Huffman), et ça permet de pouvoir accéder à un endroit quelconque du fichier compressé en décompressant seulement d_max octets en trop (et accessoirement, on peut aussi se contenter d'un buffer de taille d_max). En limitant seulement la distance du LZ, on a l'avantage de la mémoire en O(d_max), mais on n'a pas le "temps d'accès" (comme sur les disques durs

) en O(d_max).