Quand le DSP des Macintosh AV accélérait les filtres de Photoshop

Quand j’avais testé le Macintosh Centris 660 AV, j’avais montré que le DSP de ce Macintosh accélérait certains traitements. J’avais testé un programme générant des fractales, mais c’est tout. Et récemment, je suis retombé sur un papier expliquant que Photoshop pouvait accélérer certains traitements avec le DSP. Petit test, donc.

Quelques explications, d’abord. Apple a intégré un DSP (le DSP3210 d’AT&T) dans deux Mac, le Centris 660 AV et le Quadra 840 AV. L’implémentation est la même, mais pas la fréquence : 66 MHz dans le Quadra et 55 MHz dans le Centris. La société Spectral Innovations a aussi produit une carte NuBus avec la même puce, compatible avec les logiciels qui utilisent le DSP présent dans les Mac. Le fonctionnement est un peu compliqué : le DSP dispose de son propre OS (ARTA, Apple Real Time Architecture) et les logiciels envoient les commandes à l’OS en question. Comme Apple travaillait avec Spectral Innovations, les cartes de la marque utilisent l’OS en question, mais d’autres cartes avec le même DSP ne fonctionneront pas.

Il existe assez peu de programmes capables d’utiliser le DSP. J’avais utilisé ARTAbrot, qui calcule des fractales (il se trouve là). Mais le programme le plus courant compatible avec le DSP est Photoshop, en version 2.5.1. Cette version contient un plug-in compatible avec le DSP qui accélère certains traitements. Le plug-in passe assez mal avec Photoshop 3.0, de ce que j’ai vu. Adobe explique que l’accélération varie de 10 à 300 %, mais aussi que dans certains cas le DSP va moins vite que le CPU, spécialement avec le Quadra 840 AV et son 6040 à 40 MHz (contre 25 MHz sur le Centris). Le plug-in permet d’utiliser le DSP du Mac mais aussi les DSP externes. En réalité, il est même possible d’utiliser plusieurs DSP, mais je n’ai pas de cartes, donc je n’ai pas testé.

On peut utiliser plusieurs DSP

La liste des fonctions accélérées est assez longues. Les filtres Blur, Blur More, Gaussian Blur, Sharpen, Sharpen More, Unsharp Mask, High Pass, Custom, Sharpen Edges, Find Edges, Despeckle, Emboss et Fragment. En plus, certaines fonctions sont aussi plus rapides : Resize (Image Size, Scale et Rotate), Skew, Perspective et RGB vers CMYK.

Avant une petite vidéo, quelques comparaisons chiffrées.

Ouverture d’un fichier JPEG en 640 x 800 : ~10 secondes dans les deux cas.
Redimensionnement en 320 x 400 : ~6 secondes avec le CPU, ~4 secondes avec le DSP.
Passage en CMJN : ~17 secondes dans les deux cas.
Rotation de 90° : ~2 secondes dans les deux cas, ~7 secondes au total dans les deux cas.
Filtre Edge : ~6,5 secondes avec le DSP, ~11 secondes sans.
Filtre Emboss : ~2 secondes avec le DSP, ~10 secondes sans.
Filtre Gaussian Blur (2 pixels) : 7 secondes avec le DSP, ~30 secondes sans.
Filtre Fragment : ~2 secondes avec le DSP, ~11 secondes sans.
Les filtres de passage en couleurs NTSC et Lens Flare ne fonctionnent qu’avec le DSP (21 et 40 secondes respectivement).

Pas de conversion NTSC sans DSP


Pas de Lens Flare sans DSP


Le résultat du Lens Flare

Globalement, le redimensionnement est plus rapide (mais peu), les autres fonctions ne sont pas plus rapides (mon image n’est pas très grosse). Mais sur les filtres, le gain peut être vraiment conséquent.