Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 30 Nov 2025, 13:50

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Compression LZ4 sur Amstrad CPC ?

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 14 message(s) ] 
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
genesis8
 Sujet du message : Compression LZ4 sur Amstrad CPC ?
Message Publié : 16 Juil 2013, 20:52 
Hors-ligne
Rulezz
Rulezz

Inscription : 27 Août 2009, 00:38
Message(s) : 83
Juste pour information, l'algo de compression LZ4 (https://code.google.com/p/lz4/) compresse rapidement et décompresse encore plus rapidement.

Il existe plusieurs implémentations dont une pour 6502 (162 octets) et 65C02 (156 octets) : http://pferrie.host22.com/misc/appleii.htm

Peut-être intéressant pour Amstrad CPC ?


LZ4 is a very fast compressor, based on well-known LZ77 (Lempel-Ziv) algorithm.
Originally a fork from LZP2, it provides better compression ratio for text files and reaches impressive decompression speed, in the range and beyond 1GB/s per core (!), especially for binary files. These speeds are scalable with multi-threading modes, quickly reaching RAM speed limits on multi-core systems.

_________________
http://www.genesis8bit.fr/indexf.php
News Amstrad CPC bilingue anglais-français


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 17 Juil 2013, 05:49 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
effectivement avec le source en c, ou l'adaptation asm en 8088/8086, cela serait facile à porter sur cpc...http://www.oldskool.org/pc/lz4_8088/LZ4_8088.ZIP

par contre, pas sur qu'avec nos 64kb de mémoire, on soit un peu juste pour ce type de compacteur/decompacteur moderne...


Haut
 Profil  
 
TotO
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 17 Juil 2013, 08:06 
Hors-ligne
VIP
VIP

Inscription : 13 Jan 2010, 14:25
Message(s) : 2282
Merci pour l'info.

Renseignements pris, il n'y a aucun intérêt à la chose.
Exomizer et appack (que l'on utilise déjà) sont plus performants sur notre CPC.

_________________
Cent Pour Cent


Haut
 Profil  
 
markerror
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 17 Juil 2013, 21:27 
Hors-ligne
VIP
VIP

Inscription : 04 Sep 2007, 19:43
Message(s) : 739
Hum, pas si sûr que cela soit sans intérêt. La vitesse de décompression est aussi un facteur intéressant (je pense par exemple à des images de jeux d'aventure).


Haut
 Profil  
 
TotO
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 18 Juil 2013, 10:09 
Hors-ligne
VIP
VIP

Inscription : 13 Jan 2010, 14:25
Message(s) : 2282
La fin de l'intro de R-Type utilise 3 frames de 16K compressées avec appack.
La décompression et l'affichage de chaque frame se fait en un dixième de seconde.

Mais si tu fais un jeu d'aventure en ROM avec des animations en plus de 12fps je dis pas non... :)

_________________
Cent Pour Cent


Haut
 Profil  
 
Titan49
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 20 Juil 2013, 16:12 
Hors-ligne

Inscription : 20 Juil 2013, 15:59
Message(s) : 4
C'est un peu réducteur.
La compression de frame n'est jamais qu'un exemple de compression possible, et pas nécessairement le meilleur pour comprendre l'intérêt de LZ4.

L'intérêt d'un algo comme LZ4, c'est qu'il est si rapide en décompression qu'on peut l'utiliser sur des ressources qu'on n'aurait jamais envisagées de garder compressées en mémoire auparavant.
Il suffit d'aller sur les forum anglophones ou russes pour voir des commentaires du genre "c'est si rapide que c'est compétitif avec memcpy()".

Du coup, on peut à peu prêt tout compresser (les sprites, les background, les maps, etc.) puis décompresser à la volée uniquement ce qui est nécessaire pour fabriquer la frame en cours.
30% par là, 50% par ici, et rapidement, on se retrouve avec 10-15Ko en plus à exploiter sur la machine. Ca peut faire la différence pour afficher plus d'objets et/ou créer des animations plus fluides dans le même budget mémoire.

Cette technique n'est pas limitée aux CPU "vintage", même les consoles modernes l'utilisent : LZ4 est cité sur XboX, sur PSP, et même sur PC (Guild Wars 2). Pourtant, ces machines sont sensiblement plus balaises, elles auraient pu passer direct à la compression LZMA par exemple ?
Et bien non, car le temps réel, c'est important. La décompression ultra-rapide, c'est bien ce que ces jeux sont venus chercher.


> Exomizer et appack (que l'on utilise déjà) sont plus performants sur notre CPC.

C'est bien possible, mais n'oubliez pas que pour des ressources "packagées" qu'on ne fait que lire, la comparaison se fait avec LZ4 HC (Haute Compression). C'est une variante qui compresse très sensiblement plus, tout en augmentant encore la vitesse de décompression !


Haut
 Profil  
 
Titan49
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 11 Oct 2013, 10:58 
Hors-ligne

Inscription : 20 Juil 2013, 15:59
Message(s) : 4
Une petite trouvaille, qui m'a fait penser à ce thread :



Atari 8bit LZ4 decompression


Haut
 Profil  
 
Titan49
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 21 Oct 2013, 14:21 
Hors-ligne

Inscription : 20 Juil 2013, 15:59
Message(s) : 4
Oooh, ben encore mieux,
on dirait une implémentation prête à l'emploi ... :

http://www.worldofspectrum.org/forums/s ... hp?t=45185 :eng:


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 21 Oct 2013, 22:05 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
J'ai fais un essai avec le compresseur lz4 en ligne de commande , avec le paramètre "-9" (High compression) : j'ai obtenu 13964 octets sur le binaire de boulder dash, pas terrible, c'est loin derrière exomizer

url: https://cpcrulez.fr/applications_tools_c ... ARATIF.htm


Haut
 Profil  
 
TotO
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 22 Oct 2013, 01:32 
Hors-ligne
VIP
VIP

Inscription : 13 Jan 2010, 14:25
Message(s) : 2282
Et comparé en temps de décompression ?

_________________
Cent Pour Cent


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 22 Oct 2013, 08:51 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
c'est une bonne idée, je vais l'inclure sur ces tableaux


Haut
 Profil  
 
TotO
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 22 Oct 2013, 09:39 
Hors-ligne
VIP
VIP

Inscription : 13 Jan 2010, 14:25
Message(s) : 2282
Merci.
Parfois, c'est plus le temps d'accès de mise à disposition des données qui importe, même si le taux de compression est moindre.
A chaque usage son algo ! :)

_________________
Cent Pour Cent


Haut
 Profil  
 
Titan49
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 24 Oct 2013, 13:22 
Hors-ligne

Inscription : 20 Juil 2013, 15:59
Message(s) : 4
On peut gagner quelques octets en extrayant le format "brut" (donc ça vire les entêtes et les checksums), mais bon, pas de quoi s'emballer, ça fera gagner 30 octets tout au plus.

D'après l'auteur, son algo de décompression LZ4 est environ 2x plus rapide que ZX7.
Alors OK, c'est plus gros, mais c'est aussi plus "réactif".
Au final, ça peut dépendre de l'usage qu'on veut.


Haut
 Profil  
 
TotO
 Sujet du message : Re: Compression LZ4 sur Amstrad CPC ?
Message Publié : 25 Oct 2013, 14:36 
Hors-ligne
VIP
VIP

Inscription : 13 Jan 2010, 14:25
Message(s) : 2282
Titan49 a écrit :
D'après l'auteur, son algo de décompression LZ4 est environ 2x plus rapide que ZX7.
Tout l'intérêt est là. Avoir un ratio taille/décompression avantageux.
Pour un usage classique, autant utiliser exomizer ou apack.

_________________
Cent Pour Cent


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 14 message(s) ] 

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 32 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.