8Fermer10
YmoxLe 13/08/2007 à 11:10
Merci tout le monde sauf peut-être Sasume pour son très constructif ./2 grin
Nil (./3) :
pour ça je pense qu'il doit y avoir une séquence d'échappement qui permet d'encoder une chaîne d'octets équivalente au flag mais n'était pas un flag.


Pollux (./4) :comme dit Nil il faut que tu aies une séquence commençant par "flag" qui te permette de représenter l'octet flag isolé ; une solution simple serait de prendre tout simplement "flag|1|flag"

Oui, effectivement, il y aurait eu cette possibilité, mais cela fait 3 octets au lieu d'un...
Pollux (./4) :
après tu peux faire qqch de plus fin, par exemple étant donné que "flag|1|" n'aurait aucun intérêt (prend 3 octets au lieu d'un) tu peux décréter que si la longueur de la séquence RLE vaut 1 alors l'octet à reproduire sera systématiquement flag : ça permet de ne prendre que 2 octets au lieu de 3 quand tu tombes sur un flag happy cela dit c'est pas forcément une bonne idée, parce que ça va rajouter au bas mot une dizaine d'octets dans ton décodeur alors que ça n'apportera au mieux qu'une amélioration de 1/256 = 0.4% du taux de compression... (et sur un fichier "normal" l'amélioration sera nettement plus faible)

Le fait que je n'aie pas compris tout de suite montre bien qu'une autre subtilité m'avait échappée.
Je pensais que les bytes "esseulés" seraient repris tel quels. On prendrait donc 3 bytes pour des séquences de 4 et plus, mais le même nombre de bytes et les mêmes pour des chaînes de 3 et moins. Et en cas de byte flag isolé, à bien y réfléchir, la solution "flag|1|flag" me conviendrait. Après vient le problème de quel byte prendre comme flag...

./5 : Je préférerais gagner de la place en compression et en perdre un peu sur l'algorithme de décodage, oui. Du moment que l'algorithme est une seule chose, il n'y aura pas qu'une seule chose à décoder, donc ce sont les données qu'il faut compresser le mieux possible.

./7 : Je pensais faire un flag qui soit immuable, mais pour la variable en question (voir en fin de post), mais comme je peux utiliser quelques bytes à côté des données réelles, c'est vrai que ta proposition est intéressante...

./8 : Ouais, c'est certainement une bonne idée et devine quoi : j'ai compris ! smile
Ce que je cherche à faire, c'est de grouper des informations d'images en 4 ou 8 niveaux de gris - de taille maximale 7020 et 10530 bytes respectivement - dans une seule variable. Sachant que je n'ai jamais réussi à avoir de variable de plus de 65520 bytes sur ma voyage 200, et qu'il me faudra encore utiliser 9 bytes sur toute la variable, je peux me permettre de choisir un flag variable pour chaque composant.
Au passage, quelqu'un pourrait me proposer un convertisseur d'images *.bmp et/ou *.jpeg en images TI 4 niveaux de gris avec tramage ? J'ai déjà essayé TI Paint Plus, mais les fichiers de sortie sont apparemment illisibles...

Fonctionnent plus, les balises [hide]test[/hide] ?