23Fermer25
GT TurboLe 03/07/2012 à 23:37
Zerosquare (./12) :
Mauvaise excuse : GT est pas ingénieur, il est garagiste grin


Zero a été plus rapide que moi smile Oui je suis mécanicien auto (Bac pro en maintenance 'zotto'). Donc cela n'empeche pas de pouvoir optimisé, quand on commence a programmé, on est emerveillé de voir ce que ce sont capables les autres, mais en fin de compte en prenant un peu de recul, on arrive a faire pareil, voila un exemple perso, une routine de filtrage pour image :
move.l a1,a2
move.l a1,a3

move.w Real_channel,d4
move.w d4,d3
subq.w #1,d4
Make_all_channels_filtre_1:
moveq #0,d0 ; Le premier a rien
move.l a2,a1

move.w Nb_repeat_filter,d7

Application_du_filtre_1:
add.b d0,(a1) ; 12+4
move.b (a1),d0
add.w d3,a1
dbra d7,Application_du_filtre_1
add.w #1,a2
dbra d4,Make_all_channels_filtre_1

move.l a3,a1
add.l Line_offset,a1 subq.l #1,a1


Et maintenant :

move.l a1,a2
move.l a1,a3

add.w Pix_size,a3

move.w Line_size,d7
sub.w Pix_size,d7 ; car on traite pas le premier pixel

Application_du_filtre_1:
move.b (a2)+,d0
add.b d0,(a3)+ ; 12+4
dbra d7,Application_du_filtre_1
add.w Line_offset_raw,a1


Plus court, plus rapide, plus propre, le gain ? 70% !!! Et les deux sont de l'assembleur !! Une technique est parfois de reecrire completement la routine, en 'oubliant' ce qu'on a ecrit avant. On se garde l'ancienne bien au chaud et on repart a zero, meme en preparant sur une feuille de papier.

GT Adore optimisé !!