La restitution des images sur ordinateur

Performances des cartes graphiques (V)

Eventail de cartes graphiques 3D accélératrices de dernière génération. On reconnaît en vert à l'avant-plan une NVidia GeForce 7900 GTX (550 €) posée sur différents modèles plus modestes Sapphire Atlantis Radeon d'ATI (~250 €).

L’apport le plus important réalisé sur les cartes graphiques a certainement été l’ajout de la précision de couleur dite en virgule flottante sur 64 et même 128 bits. De quoi s'agit-il ? Faisons un petit rappel, car effectivement l'ingénierie informatique use et abuse de termes techniques face auxquels même un technicien en informatique peut vite perdre pieds s'il ne reste pas au faîte de l'actualité.

Nous avons brièvement expliqué qu'un pixel est caractérisé par trois informations de couleur présentant généralement chacune (8 bits/couleur) une dynamique maximale de 256 nuances (0 à 255). Dans le monde de l'infographie, les utilisateurs exigent des rendus optimisés où le noir par exemple ne peut pas être gris et les différentes zones claires doivent pouvoir se différencier les unes des autres, sans parler des changements de gamma. 

Pour parvenir à ce résultat, la gamme des 256 nuances est insuffisante, car en cours de traitement il y aura des pertes d'information dans les hautes et les basses lumières, bref l'image perdra sa qualité. Pour caricaturer, un pixel ne peut pas être soit allumé soit éteint si on veut représenter toutes les nuances de l'espace chromatique. 

A partir du seul signal électrique standard de chaque canal RGB et éventuellement en tenant compte de bits supplémentaires, il faut donc trouver une méthode pour étendre ce nuancier.

Jamais à cours d'idée, pour améliorer la précision des calculs, les ingénieurs ont développé  la technologie dite "en virgule flottante" évoquée précédemment. Si elle est implémentée depuis des décennies (depuis 1941 dans le calculateur à relais Z3 de K.Zuse et ensuite dans tous les processeurs des cartes-mères), ce n'est qu'assez récemment qu'elle a été appliquée aux processeurs des cartes graphiques ainsi qu'aux logiciels d'imagerie.

Avantages d'un processeur 32 bits en virgule flottante

Que signifie "virgule flottante" ? C'est un terme barbare pour dire simplement que le nombre, entier ou décimal, est exprimé en puissance de 10. Ainsi 128000 = 1.28 x 105, qui s'écrit aussi 1.28E5. Dans le cas de petits nombres, l'intérêt de cette transcritpion est secondaire. Mais l'informatique manipulant des grands nombres ou des valeurs décimales dont le premier chiffre significatif est très loin derrière la virgule, cette méthode offre un gain important de place en mémoire. Elle facile également les calculs, notamment toutes les opérations qui combinent et manipulent les images. Cela concerne avant tout et essentiellement toutes les opérations graphiques complexes et souvent dynamiques (3D, animation, etc) mais également des domaines jusque là ignorés comme la retouche photo.

En effet, la correction des images est généralement un procédé statique qui se contente d'un ordinateur relativement lent équipé d'une carte graphique tout à fait ordinaire. Or nous allons voir que la virgule flottante peut aussi faciliter ce travail en élargissant l'espace mémoire et le nuancier accessibles à l'image.

Sans entrer dans les détails que vous trouverez dans tout manuel de programmation y compris sur Internet, un calcul en virgule flottante nécessite une reprogrammation des formules et des modifications hardware, notamment des registres et autres buffers mémoires (framebuffers, etc) à toutes les étapes du traitement graphique.

En utilisant une technologie en virgule flottante, la valeur d'une couleur n'est plus définie par un simple nombre entier compris entre 0 et 255 mais s'étend sur au moins 3 octets obéissant à la relation : x=m2e, où x est le nombre, m la mantisse et e l’exposant.

Ainsi, sur une carte 32 bits (4 octets), l'information d'un pixel est distribuée en virgule flottante simple précision en respectant le format IEEE suivant : le premier bit est réservé au signe, les 8 bits suivant gèrent l'exposant tandis que les 23 bits restant sont dédiés à la mantisse. Dans un format binaire 64 bits (8 octets) en double précision, 11 bits sont réservés à l'exposant et 52 bits à la mantisse.

La carte graphique 3D accélératrice NVIDIA GeForce 7800 GTX (510 €) et un gros-plan sur son processeur cadencé à 450 MHz caché sous le capot en aluminium et l'imposant radiateur. Caractéristiques : Technologie OpenEXR, 64 bits en virgule flottante, VRAM de 256 MB GDDR3 à 1.25 GHz, RAMDAC à 400 MHz,  bus PCI Express, 2 DVI, TV-out. C'est une carte élitiste pour les applications graphiques exigeantes (3D, vidéo, etc).

En utilisant cette méthode, dans le cas d'une précision de 10 bits/couleur en virgule flottante, un pixel peut présenter non plus 256 mais 230 états différents, y compris négatifs. Ces états distincts sont indépendants du fait que les bits soient interprétés comme entiers ou comme décimaux. En fait, le nombre d'états est inférieur lorsqu'il s'agit de nombres décimaux car certaines configurations de bits (patterns) représentent des états non réels ou trop proches de zéro (moins l'infini, plus l'infini, underflow, Not A Number, etc). Malgré ces états particuliers, il reste tout de même plusieurs centaines de millions de combinaisons ! On est quelques facteurs au-dessus des performances d'une carte 32 bits codant la couleur sur 8 malheureux bits fixes.

Ainsi que nous l'avons évoqué, l'avantage de la virgule flottante est d'utiliser moins de bits de mémoire lors de la manipulation des images. Mais plus intéressant encore, nous savons que la carte graphique doit générer un signal vidéo pour piloter le convertisseur digital/analogique afin de produire une intensité lumineuse qui sera affichée à l'écran

Avec une image représentée en mémoire sous forme d'une table en virgule flottante, on peut agrandir et corriger une petite zone de l'écran pour faire apparaître des détails qui étaient jusque là sur ou sous-exposés. Cela se fait simplement en changeant une table de correspondance. La modification est instantanée car elle se fait directement sur la carte vidéo.

Devant ces nouvelles performances, on comprend mieux l'intérêt d'utiliser une précision de couleur en virgule flottante. On constate de visu une amélioration sensible du rendu chromatique des images (les couleurs sont plus saturées), de la dynamique de la luminance (le contraste) et des options de zoom qui atteignent une qualité inégalée jusqu'à présent.

Bien sûr cette technologie se paye aussi au prix fort et seuls les stations graphiques ou les écrans haut de gamme en bénéficient.

Ce n'est donc pas sans raison que de plus en plus de cartes graphiques, notamment ATI, Nvidia et autre Radéon disposent de nuanciers intelligents (smartshader) présentant une précision de 64 à 128 bits en virgule flottante. Ces cartes offrent un support total des fonctions DirectX 9.0 de Microsoft et OpenGL, les interfaces de programmation standards de la nouvelle génération de jeux.

Leur rendu ne peut pas encore bleufer un photographe mais le réalisme de ces programmes nous permet de croire que les futurs simulateurs et logiciels 3D exploitant les textures se rapprocheront de très près de la réalité. Quant au domaine de la photo et de la retouche des images, ces nouvelles fonctions apportées par les "floats" rangent une bonne partie du travail assidu de correction en chambre noire aux oubliettes.

Parmi les autres systèmes exploitant la virgule flottante, citons les célèbre formats FITS, TIFF, RGBE et PFM qui travaillent en 16 ou 32 bits et le fameux HDR, le format hautement dynamique déjà évoqué, promu à un bel avenir. Quelques écrans TFT et le logiciel Adobe Photoshop depuis la version CS le supportent également.

Limites des cartes graphiques accélératrices

Revers de cette technologie sophistiquée, le travail d'un processeur 32 bits en virgule flottante requiert 4 fois plus de bande passante qu'une carte 32 bits ordinaire; on parle ici de débit d'informations (fillrate) qui se chiffre en gigapixels/sec plutôt qu'en mégapixels/sec ! Pour résoudre ce problème, il faut donc soit attendre un progrès technologique qui peut être très lent soit trouver une voie alternative plus économique. Radéon et les autres constructeurs ont choisi l'alternative. La carte Radéon 9700 par exemple est pilotée par un processeur cadencé à 325 MHz seulement, mais il utilise 8 pipelines fournissant en sortie un débit de 8x 325 MHz, soit un fillrate de 2.6 Gigapixels/sec, la bande passante dépassant 16 GB/sec !

Ce trafic en parallèle nécessite aussi plus de mémoire vidéo. C'est pourquoi la plupart des cartes graphiques très rapides disposent aujourd'hui de 512 MB de mémoire : 8 registres de 64 bits (je passe les détails de leur utilisation alternée ou sur deux floats de 32 bits), ce qui leur permet de réaliser des opérations sur 8 nombres flottants en parallèle, ce qui est 8 fois plus rapide qu'un simple calcul sur un nombre de 512 bits.

Les cartes graphiques étant spécialisées et constituants de véritables ordinateurs intégrés, leur cablage est effectué sur 128 bits et les procédures sont programmées de manière à occuper le processeur vidéo durant tous les cycles d'horloge.

Rayonnement thermique d'un CPU. Lorsqu'il fonctionne sa température peut dépasser 80°C sur un microprocesseur rapide ! Document Sierra Pacific Corp.

Mais autre inconvénient de cette technologie, plus l'électronique est rapide, plus les électrons se déplacent rapidement et plus ils dissipent de chaleur. 

Elaborer un processeur tirant avantage d'une architecture sur 256 bits présente aujourd'hui un défi technologique majeur. D'une part il présente un problème d'architecture et de surface sur lesquels se penchent actuellement Intel et consorts. D'une part trop de chaleur réduit sa durée de vie : on considère habituellement que toute augmentation de 10°C de la température d'un composants à semiconducteur réduit l'intervalle entre deux pannes de moitié (MTBF), autrement dit il tombera en panne deux fois plus vite.

C'est pourquoi on installe des ventilateurs à la fois sur le radiateur du processeur et à l'extérieur de l'ordinateur pour extraire l'excédant de chaleur. Il ne s'agit pas de simples accessoires; ils sont obligatoires et doivent rester opérationnels si vous désirez que votre système fonctionne dans de bonnes conditions. Certains systèmes, et pas uniquement les mainframes, sont même refroidis par eau ou par huile. Sans refroidissement, votre ordinateur à toute les chances de tomber en panne.

Enfin, un processeur très rapide peut présenter un problème d'hyperfréquence : plus les bus (canaux de transfert) sont larges plus le débit est susceptible de générer des ondes parasites; le processeur se met à bourdonner, sans parler du bruit déjà engendré par le ou les ventilateurs... Voilà quelques uns des défis que doivent résoudre les ingénieurs préparant les ordinateurs de demain.

Dans le domaine de l'animation, les performances d'une carte graphique sont également définies par son débit exprimé en images ou frames par seconde (fps). Généralement, on utilise un simulateur de vol tel que la dernière version de "Flight Simulator" pour apprécier ses performances. On peut également le vérifier avec un jeu de dernière génération.

En effet, étant très gourmand en ressources systèmes et faisant parfois appel à des rendus de paysage ou variables acquises en temps-réel par Internet (conditions météo, etc), pour être réaliste et exploitable par les utilisateurs, un simulateur doit afficher une cadence très élevée. Pour être visionné de manière fluide et sans saccade, un film doit défiler à raison de 24 images/sec afin que la persistence rétinienne donne l'impression d'un film continu. Dans le cas d'une carte graphique, ce débit est de 25 fps. Certains simulateurs requièrent des débits supérieurs, jusqu'à 60 fps !

Des cartes graphiques 3D accélératrices sont non seulement nécessaires pour certains jeux mais également pour exploiter les fonctions d'animations ou 3D des logiciels vectoriels et de rendering (Cinéma 4D, LightWave, Carrara, Terragen 2, etc).

Enfin, pour nous résumer, deux critères définissent la rapidité d'une carte graphique : la vitesse du processeur graphique (> 500 MHz) et la bande passante de la mémoire (> 900 MB/sec). Se greffe sur ces deux facteurs, la taille du cache processeur, la taille du bus mémoire (256 bits), la vitesse de la mémoire (1600 MHz DDR ou 800 MHz réels) et la taille de la mémoire vive (RAM > 256 MB). Tous ces facteurs ont un impact direct sur la vitesse d'affichage des images, notamment dans toutes les animations (simulations à 24 images/sec, etc).

A lire : Supercomputing Power Hits the Desktop, Minus the Software (Wired)

L'ère du teraflops graphique massive parallèle chez AMD (ATI) et NVidia

Marque

Modèle

Vitesse

CPU MHz

VRAM MB

Vitesse DDR

VRAM MHz

Bus VRAM

Bits

Pipeline

pixels

NVIDIA

GeForce

7800 GTX512

550 512 1700 256 24
ATI

Radeon

X1800 XT

625 512 1500 256 16
ATI

Radeon

X1600 XT

590 256 1380 128 12
NVIDIA

GeForce

6600 GT

500 128 1000 128 8
ATI

Radeon

X800 XL

400 512 1000 256 16
NVIDIA

GeForce

6800 Ultra

350 256 1000 256 16

Caractéristiques de quelques cartes graphiques courantes à prix modéré (100-180 € en 2006). Ce tableau est trié en fonction de leurs performances générales qui, dans ce cas ci, peuvent varier du simple au double en fonction des caractéristiques hardware (résolution choisie, overclocking ou non, ombres douces activées ou non, etc) et des applications utilisées. En considérant tout le marché des cartes graphiques, dans une même catégorie de produits (même vitesse CPU, bande passante et VRAM), il n'est pas rare que la carte la plus performante soit plus de dix fois plus rapide que sa "concurrente" ! Leur prix en revanche n'augmente pas dans les mêmes proportions (deux à cinq fois).

Nous verrons qu'en pratique, si une carte graphique est capable de gérer un espace chromatique très étendu, il est partiellement inaccessible aux périphériques d'entrée-sortie autre que l'écran, aucun d'eux ne pouvant à ce jour restituer la totalité de l'espace colorimétrique d'un moniteur haut de gamme.

Cela nous conduira à examiner de quelles manières les chercheurs ont représenté la gamme des couleurs sur le plan théorique et ont appliqué leurs modèles à la reproduction des couleurs sur ordinateur et d'autres supports. Ce sera l'objet de l'article consacré à la gestion des couleurs sur ordinateur, un sujet qui intéressa principalement les photographes et les infographistes.

Pour plus d'information

Articles

La gestion des couleurs sur ordinateur (sur ce site)

Le contraste (Les bases de la photographie, sur ce site)

La vision des couleurs (sur ce site)

The rendering time in Terragen (sur ce site)

Le Der des Der : comparatif CRT, Hardware.fr, Mars 2006

L'influence de l'électronique sur les couleurs des LCD, Hardware.fr, Jan. 2006

Ecrans LCD : la nouvelle méthode de test, Tom's Hardware, Oct. 2005

Comparatif écrans LCD, Color Academy, 2004

Multimission Image Processing Laboratory, NASA/JPL

Rendering spectra, Andrew T.Young

What Color is it ?, Andrew T.Young

Some paradoxes, errors, and resolutions about human vision, D.Lynch et al. (PDF de 127 KB)

Généralités, gamuts, revues de produit

Lexique d'infographie, Tout-Savoir.net

Commission Internationale de l'Éclairage (CIE)

Color & Vision, Institute of Ophthalmology, UCL

European Color Initiative (ECI)

Interactive Color Gamut Comparisons, Dry Creek Photo

Calculette CIE et Equations de conversions colorimétriques, Bruce Lindbloom.

Chromaticity (Simulateur de gamuts)

Power Retouche (plugin Photoshop)

Hardware.fr

M@t.be

Clubic

Let's go Digital PMA

Sur le format HDR

Bit-Tech

Démos de textures HDR

OpenEXR

Paul Debevec ITC Graphic Lab

The Future of Digital Imaging - HDR Photography

High Dynamic Range Imaging, P.Debevec et al., Morgan Kaufmann Publishers, 2005 (Amazon)

Cet ouvrage tente de couvrir tous les domaines potentiels d'application du HDR et décrit également ce format d'un point de vue théorique. C'est une brique de 500 pages proposée avec un DVD contenant 4 GB d'images HDR.

A lire : La gestion des couleurs sur ordinateur

Retour aux Rapports techniques

Page 1 - 2 - 3 - 4 - 5 -


Back to:

HOME

Copyright & FAQ