Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum TI-Nspire » Algorithmie et optimisation » Zoomer (10 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Onur Ecrit le: Dimanche 9 avril 2006 à 02:59 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


Voila.. l'idée c'est d'écrire des routines asm qui permettraient de zoomer en temps réel sur une image, et pas forcément en multiple de 2, genre pas que 25%,50%,100%,200% ... mais aussi du 150% etc..

Pensez-vous que c'est possible de le réaliser en un temps raisonnable? (je parle de l'éxecution pas du codage bien sur :))
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°1   Marquer comme non lu.
Sasume Ecrit le: Dimanche 9 avril 2006 à 10:32 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Bien sûr que c'est possible. ExtGraph le fait par exemple.
    
./Post n°2   Marquer comme non lu.
Pollux Ecrit le: Mardi 11 avril 2006 à 17:38 Déconnecté(e)    Voir le profil de Pollux Envoyer un email à Pollux Envoyer un message privé à Pollux  

"En un temps raisonnable" ? Ca a changé, parce que la dernière fois que j'ai regardé (y a lgtps :D) c'était affreusement lent ?

Hmm sinon y a plein de méthodes, que ce soit avec un zoom fixe ou variable...
    
./Post n°3   Marquer comme non lu.
Sasume Ecrit le: Mardi 11 avril 2006 à 21:08 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Hum, en fait, pour faire un tilemap, les fonctions d'ExtGraph ne sont pas ce qu'il y a de plus efficace.
    
./Post n°4   Marquer comme non lu.
Onur Ecrit le: Mercredi 12 avril 2006 à 02:36 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


C'est koi les méthodes??
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°5   Marquer comme non lu.
Pollux Ecrit le: Jeudi 13 avril 2006 à 15:28 Déconnecté(e)    Voir le profil de Pollux Envoyer un email à Pollux Envoyer un message privé à Pollux  

Zoom fixe :
- table précalculée de type 8 bits entrée -> N bits sortie
- table précalculée de type N bits entrée -> 8/16/32 bits sortie
- sans tables, zoom arrière :
      move.b (a0)+,d0
      add.w d0,d0
      add.w d0,d0
      add.b d0,d0
      add.w d0,d0
      add.b d0,d0
      add.w d0,d0
      add.w d0,d0
      add.b d0,d0
      move.b (a0)+,d0
      add.w d0,d0
      add.b d0,d0
      add.w d0,d0
      add.w d0,d0
      add.b d0,d0
      move.w d0,-(a7)
      move.b (a7)+,(a1)+
      ...

    (en gros add.w = on garde le pixel, add.b = on jette)

- etc...

Zoom variable :
- comme le zoom sans tables dont j'ai parlé, sauf qu'on utilise par exemple l'algorithme de Bresenham (add.w = déplacement en bas, add.b = déplacement à droite, hauteur de la ligne = taille de la sortie, largeur de la ligne = taille de l'entrée moins taille de la sortie)
- si on ne doit pas avoir une qualité d'image extraordinaire, utilisation de tables précalculées, avec un léger ajustement (e.g. si on veut faire un zoom 8 -> 13.5, on peut prendre une table précalculée 8 -> 13 et recopier un pixel en plus une fois sur 2)


Bon, et c'est juste des exemples vite fait, y en a évidemment plein d'autres :p (et y a plein d'ajustements possibles à ces algorithmes, par exemple on peut changer les tailles de l'algo avec des add.w/add.b pour utiliser des add.l/add.w, ça peut devenir rentable si le facteur de zoom est élevé, etc...)
    
./Post n°6   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 13 avril 2006 à 16:45 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Il est optimisable, ton truc...
 
  move.b (a0)+,d0
   lsl.w #2,d0
   add.b d0,d0
   add.w d0,d0
   add.b d0,d0
   lsl.w #2,d0
   add.b d0,d0
   move.b (a0)+,d0
   add.w d0,d0
   add.b d0,d0
   lsl.w #2,d0
   add.b d0,d0
   move.w d0,-(a7)
   move.b (a7)+,(a1)+
   ...
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°7   Marquer comme non lu.
Pollux Ecrit le: Samedi 15 avril 2006 à 21:05 Déconnecté(e)    Voir le profil de Pollux Envoyer un email à Pollux Envoyer un message privé à Pollux  

LOL :/ on parle d'optimisation vitesse, pas d'optimisation taille :| (Kevin propose [pour changer...] une optimisation taille au détriment la vitesse)

(surtout qu'a priori ce type de code sera généré dynamiquement au runtime, donc même si tu veux optimiser en taille, le plus efficace serait d'éviter les cas particuliers style add+add=lsl#2 :p #htkc#)
    
./Post n°8   Marquer comme non lu.
Onur Ecrit le: Dimanche 16 avril 2006 à 13:47 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


généré au runtime???? #eek#

mince alors :s

sinon oui, là on a besoin de la vitesse.
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°9   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 20 avril 2006 à 06:24 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Pollux :
(Kevin propose [pour changer...] une optimisation taille au détriment la vitesse)

Je pensais que c'était le même nombre de cycles, mais en fait non, tes deux add.w prennent 8 cycles et un lsl.w #2 prend 10 cycles. En revanche, pour les longs, le lsl.l #2 est déjà plus efficace que deux add.l (12 cycles contre 16).
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°10   Marquer comme non lu.
Onur Ecrit le: Vendredi 21 avril 2006 à 00:06 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


Ce qui prouve que tu devrais réviser ta table de opcode-cycle_machin-size :p

Merci Kevin ;)
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
  :: Index » Forum TI-Nspire » Algorithmie et optimisation » Zoomer (10 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 56.01ms avec 18 requetes