Traitement graphiques

26

Les Courbes de Bezier #2 : collision

sept

Voici la suite de mes essais sur les courbes de Bézier ! Aujourd’hui on parle collisions !
Alors aucun doute possible, l’utilisation des Courbes de Bézier dans le cadre d’une application temps réelle (comme un jeu) doit se faire à dose homéopathique tellement les calculs qu’ils faut mettre en oeuvre sont complexes !

more...
 | Tags:
29

Les Courbes de Bézier #1

août

Un peu de géométrie aujourd’hui !
Je me suis mis à m’intéresser aux courbes de Bezier il y a quelques mois de cela ! Et je dois bien avouer que si leur utilisation est quelques peu consommatrice de ressources, j’ai un peu tendance a en abuser en ce moment, car ces courbes (comment dire) me fascinent !
Je dirai pour faire simple que la courbe de Bezier est au polygone ce que le potentiomètre est à l’interrupteur (c’est beau hein ?).

more...
 | Tags:
25

Réduction d’images avec NEON

nov

Ça fait un bout de temps que j’ai codé l’agrandissement bilinéaire d’une image. J’avais repoussé l’aspect réduction (qui utilise un algorithme assez différent en fait) à plus tard.
Nous y voilà !
L’algorithme est un peu plus complexe que pour l’agrandissement, mais d’un autre coté, j’ai capitalisé sur les expérimentations effectuée lors de l’agrandissement. Du coup la mise au point de ce code n’a pas pris trop de temps !
Repose-toi Mario, Ce coup-ci c’est Yoshi qui s’y colle…

more...
21

Réduction du nombre de couleurs avec NEON

sept

Aujourd’hui, je m’intéresse aux algorithmes de conversion d’une image RGB888 (16 million de couleurs) à une image RGB565 (65000 couleurs).
NEON n’a pas de prédispositions particulières pour traiter les pixels 16 bits (RGB565 sur Android) ce qui conduit souvent les développeurs à effectuer les opérations complexes sur des pixels 32 bits puis de convertir le résultat en 16 bits une fois le traitement terminé.
Contre toute attente, il existe des algorithmes très efficace et peu gourmand en temps CPU pour réaliser de façon correcte cette conversion…

more...
 | Tags: , ,
07

Performance du tracé de sprites sous Android

août

Je commence tout doucement à me faire à Android.
J’ai donc voulu tester la performance de ma Galaxy Tab. Et pour commencer avec un truc un peu ludique, j’ai testé l’affichage de sprites.
J’ai donc tester la méthode à base de Java et quelques variantes en Assembleur !!!

more...
 | Tags:
15

Agrandissement bilinéaire: Le retour

juil

Il y a quelques temps j’avais proposé un algorithme d’interpolation bilinéaire permettant l’agrandissement d’une image dont les performances quoique correctes m’avaient un peu déçues.

J’ai finalement trouvé une solution pour booster significativement la performance de l’algorithme.
Mais le plus intéressant est sans doute la technique en elle-même, qui permet de coupler les deux unités de calculs que sont l’ARM et NEON

more...
 | Tags: ,
25

Bilinear enlarge with NEON

mai

This post is a translation of “Agrandissement bilinéaire avec NEON

Between two versions of the cycle counter, I felt like a little fun with an exercise a little more playful.
So today, a small stop in the field of image processing … activity where normally, NEON is expected to excel.

more...
 | Tags: ,
25

Agrandissement bilinéaire avec NEON

mai

Entre deux version du compteur de cycles, j’ai eu envie de m’amuser un petit peu avec un exercice un peu plus ludique.
Donc aujourd’hui, petit halte dans le domaine du traitement d’images… domaine où normalement, NEON est supposé exceller.

more...
 | Tags: ,
15

Conversion YUVtoRGB avec NEON

déc

L’ARM c’est bien, mais NEON c’est mieux !!!

NEON est l’extension SIMD (Single Instruction Multiple Data) de l’ARM. En gros c’est l’équivalent du SSE d’intel. A ce petit détail que c’est évidement nettement plus puissant et nettement plus simple à utiliser:

  • La grosse partie des instructions SIMD s’exécutent en 1 cycle (Attention cycle et latence n’ont rien à voir !).
  • NEON traite aussi bien les entiers que les flottants.
  • NEON dispose de puissante fonction de lecture et d’écriture en mémoire.
  • Enfin dans une certain mesure NEON est superscalaire et permet l’exécution de 2 instructions par cycle
more...