Lionel DebrouxLe 28/12/2004 à 15:14
J'ai mis dans ExtGraph (en fait le source y était déjà depuis un certain temps, mais complètement oublié - dans ExtGraph 2.00 Beta 4, il n'est carrément pas utilisable) une routine dans l'autre sens (240 -> 160).
Elle utilise deux tables de 256 valeurs (8 bits) précalculées. Le résultat est visuellement extrêmement moche (quand il y aura ExtGraph 2.00 Beta 5, amusez-vous à appliquer une telle routine sur une sauvegarde de l'écran HOME...). Si j'ajoute ça, c'est parce que certains programmeurs semblent aimer, bien que ce soit moche, que ça ralentisse et que ça prenne une quantité pas négligeable de place (~600 octets). Le prix de la compatibilité...
Dans ce sens (160 -> 240), pour être plus rapide, il faut utiliser une table de 256 valeurs (16 bits) précalculées. Pour répéter les lignes, il faut une copie ASM, déroulée car son coût est négligeable: moins de 10 instructions, c'est à dire deux ou trois ordres de grandeur de moins que ce que coûte la compatibilité on-calc dans un programme...
Le but est de transformer des doublets en triplets (par blocs de 4 doublets). De façon évidente, 00 -> 000 et 11 -> 111; mais que choisiriez-vous entre 01 -> 001 et 10 -> 110, ou 011 et 10 -> 100 (cela a peu d'importance) ?