CPC Rulez
https://cpcrulez.fr/forum/

C'est l'heure de faire des économies....
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=5521
Page 1 sur 1

Auteur :  velus [ 08 Mai 2015, 15:00 ]
Sujet du message :  C'est l'heure de faire des économies....

Bonjour a tous,

J'ai pensé qu'il serait possible de créer un compacteur meilleur que exomizer je lance le défi a tous,
j'ai eu quelques idées les voici. J'espère qu'ils pourront vous donner d'autres inspirations...
Le premier fonctionne suivant le compactage RLE pour les initiés :)
J'ai assimilé une petite variante le rendant un peu plus compétitif afin d'éviter de rencontrer des octets seuls
et de perdre de la place au lieu d'en gagner. J'ai assimilé un code hexa qui n'existe pas dans l'image pour les
4 sortes d'octets a compacter 00 0f f0 ff ce qui correspond aux 4 couleurs seules. Les autres combinaisons sont
moins fréquentes ne sont pas compactées. Source dispo sous wincpc fichier RLE
load "image",&C000: call &2000 pour le compactage
L'image se sauve sous le nom image.com début &4000 a .... autorun &4000.

Le deuxième est un dictionnaire, il recherche les paquets de 4 octets les memes s'il en trouve au moins 2 les memes
il l'insere dans le dictionnaire en position 01 etc jusque 255. S'il est seul il portera le numero 00 et sera inséré
a la fin du dictionnaire. Le décompactage est un peu plus lent
call &2000 compactage: call &9000 décompactage Source dispo sous wincpc fichier dico

Quelqu'un connait-il le systeme de compactage d'exomizer et applib afin de pouvoir les amélirorer ?

Auteur :  markerror [ 08 Mai 2015, 19:28 ]
Sujet du message :  Re: C'est l'heure de faire des économies....

Bonsoir,

Pour moi, les compacteurs performants sont tous basés sur un algorithme de type LZW (en gros, génération d'un dictionnaire dynamique contenant des suites d'octets). La difficulté dans ce type d'exercice, c'est d'arriver à optimiser la génération de ce dictionnaire. Sur une vieille machine avec peu de mémoire, il faut forcément faire des compromis.

C'est probablement pour cela que sur les compacteurs "modernes" qu'on utilise avec nos bécanes, la partie compacteur est sur PC :-).

T&J/GPA

Auteur :  Xavier [ 13 Mai 2015, 07:12 ]
Sujet du message :  Re: C'est l'heure de faire des économies....

Salut,
L'adaptation du code de Markerror d'exomizer est pourtant bon!

Mais, bon dans quel sens: Au niveau temps ou au niveau taille?

Je l'ai adapté sur ZX81, et le temps de décompression est de quelques secondes pour 2k.
Mais, sur cette machine, la taille compte... pas la vitesse de décompression.
En plus, sur le CPC... ça va 4 fois plus vite!

Je suis tombé sur un mode de compression par changement de base sur Spectrum qui utilisait la base 64 pour coder deux octets... mais j'ai aucune idée de la conversion du petit programme basic en ASM! D'ailleurs, je dois le rechercher dans un des hebdogiciel...
Le taux de compression est de 50% mais est plutôt rapide, car sans buffer.
Sinon, avec un buffer, on peut appliquer la compression par redondance successive d'octets.

Auteur :  markerror [ 13 Mai 2015, 07:29 ]
Sujet du message :  Re: C'est l'heure de faire des économies....

Bonjour,

Personnellement, je n'utilise pas Exomizer pour mes petits projets, mais Bitbuster. Le taux de compression est moins bon (tout en restant excellent par rapport aux crunchers CPC), mais la routine de décompression est bien plus rapide. Je m'en sers par exemple pour compacter les images dans "Le mur de Berlin va sauter".

Auteur :  velus [ 13 Mai 2015, 14:50 ]
Sujet du message :  Re: C'est l'heure de faire des économies....

Le buffer d'exomizer n'est que 156 octets ! Si l'on fait un compacteur avec &1000 ou &4000
de buffer y'a moyen de faire mieux non ?

Auteur :  TotO [ 13 Mai 2015, 17:22 ]
Sujet du message :  Re: C'est l'heure de faire des économies....

A ce que je sache, Exomizer est hyper optimisé.
Si tu penses faire mieux, test déjà tes algo sur PC et compare les ratio.
En suite, penses à comment tu peux porter cela sur CPC...

Auteur :  velus [ 18 Mai 2015, 06:14 ]
Sujet du message :  Re: C'est l'heure de faire des économies....

Qui sait m'expliquer comment fonctionne le compacteur exomizer ?

Page 1 sur 1 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/