• Aucun résultat trouvé

Une fois d´ecod´e, un flux MPEG-4 subit une op´eration de composition comme nous l’avons mentionn´e dans le chapitre3.2. Un compositeur d’images, comme celui d´evelopp´e

par la soci´et´e Philips [51], effectue cette op´eration. Nous pr´esentons ici les caract´eristiques de ce compositeur qui fut le point de d´epart de notre d´eveloppement que nous exposerons dans le chapitre suivant.

9.2.1

Caract´eristiques fonctionnelles

Ce compositeur 2,5D se pr´esente sous la forme d’un coprocesseur capable de g´en´erer une image `a partir d’une description de sc`ene et d’objets d´ecod´es. Avant d’ˆetre compos´es, les objets peuvent ˆetre soumis `a des transformations affines (rotations et zooms par exemple). Deux principales fonctionnalit´es sont mises en œuvre par ce coprocesseur. Composition La composition d’objet vid´eo s’accomplit par l’algorithme du peintre. En

affectant une valeur de transparence α `a chaque objet, la composition s’effectue `a partir de l’arri`ere plan, objet apr`es objet reg´en´erant un nouvel arri`ere plan pour la composition suivante. Coprocesseur orient´e composition vid´eo, les objets support´es sont des VOP de forme arbitraire. Ce compositeur supporte nativement diff´erents formats AYUV : A correspond `a une composante α de transparence, U et V sont, rappelons-le, des synonymes de Cr et Cb (cf. chapitre 6).

Transformation affine La transformation affine associ´ee `a un objet vid´eo est appliqu´ee par un parcours arri`ere : nous parcourons l’espace destination en appliquant la transformation inverse dont les coefficients sont fournis par le pilote du coproces- seur. Un filtre d’interpolation bilin´eaire est en charge de d´eterminer la couleur du fragment d’objet avant composition et r´e´ecriture du pixel en m´emoire image. Pour cela, les coordonn´ees sont calcul´ees avec une pr´ecision du 8e de pixel soit, pour une

repr´esentation enti`ere en virgule fixe des nombres, 3 bits de partie fractionnaire.

9.2.2

Caract´eristiques temporelles

Ce compositeur d’images effectue un rendu par tuile. Le macropipeline au niveau tuile que propose ce coprocesseur ne pr´esente en fait qu’une unit´e de traitement pipe- linant elle-mˆeme les traitements des pixels. En effet, ne traitant que de grands objets vid´eo, les coefficients des transformations affines sont calcul´es par le processeur hˆote ainsi que le secteur de texture n´ecessaire pour le rendu. La figure9.6 expose ce macropipeline pour deux objets vid´eo (TS0 et TS1) recouvrant une mˆeme tuile i.

Les traitements pixels sont micropipelin´es afin de traiter l’une des quatre com- posantes AYUV par cycle d’horloge. La figure 9.7 reproduit le diagramme en blocs des diff´erentes pi`eces mat´erielles qui composent ce coprocesseur. Les traitements sont r´epartis entre les sous-blocs de rendu d´enomm´es GT, FIF, IP et BL. Le bloc d´enomm´e GT (Geo- metric Transform) applique la transformation g´eom´etrique pour le pixel courant. Les coordonn´ees de texture adressent alors soit la m´emoire de forme BSM (Binary Shape Me- mory), pour traiter la composante A, soit la m´emoire objet OM (Object Memory) pour les composantes de luminance et de chrominances. Afin de permettre `a la fois les trans- ferts m´emoires en pr´elude des traitements concernant la prochaine surface et les lectures occasionn´ees par les traitements de la surface courante, ces m´emoires sont organis´ees en

TS1 Load TS0 Load Tilei−1 TSj Render Render Tilei TS0 Load TS0 Load TS1 MacroCycle n n+ 3 MacroCycle n+ 2 MacroCycle MacroCycle n+ 1 Save Save

Tilei−1 Tilei

Render

Tilei+1 TS0 Render

Tilei TS1

Fig. 9.6 – Macropipeline original du compositeur d’images.

m´emoire double dont l’usage s’inverse `a chaque macrocycle. Un r´eordonnancement des donn´ees est effectu´e par le formateur des entr´ees du filtre FIF (Filter Input Format) : les donn´ees provenant de la m´emoire globale sont en effet format´ees par BSF (Binary Shape Formatter) (respectivement OF (Object Formatter)) pour permettre l’acc`es aux quatre pixels n´ecessaires pour le filtre bilin´eaire. Le filtrage est effectu´e dans le bloc IP (Interpolation unit) apr`es lequel BL (Blending unit) prend en charge le fragment pour effectuer la composition avec le pixel pr´esent localement en m´emoire image BLM (Blen- ding Memory). Outre le contrˆoleur CTRL qui effectue l’analyse de la liste graphique, un DMA (Direct Memory Access) se consacre aux acc`es en lecture et en ´ecriture `a la m´emoire globale. DMA CTRL BSF GT FIF IP BL BLM OM OF BSM

DMA : Direct Memory Access BSF : Binary Shape Formatter OF : Object Formatter GT : Geometric Transform CTRL : Controller

BL : Blending unit BSM : Binary Shape Memory OM : Object Memory FIF : Filter Input Format IP : Interpolation unit BLM : Blending Memory

Fig. 9.7 – Diagramme en blocs du compositeur d’objet vid´eo. Les m´emoires internes apparaissent en gris´ee.

La taille de la tuile est fix´ee `a un carr´e de 16 × 16 pixels parcouru enti`erement pour chaque objet. En traitant une composante par cycle d’horloge, ce coprocesseur est capable de traiter 78 125 tuiles par seconde en format AYUV 4 :4 : 2 : 0 (une composante A par pixel, YUV en 4 : 2 : 0) `a 50 MHz. Le tableau9.2pr´esente un r´esum´e des performances possibles de cette architecture.

format Nb tuiles/image Performances AYUV 4 : 4 : 2 : 0 3 125 QVGA (320 × 240) 10 objets CIF (352 × 288) 7 objets AYUV 4 : 4 : 2 : 2 2 604 QVGA 8 objets CIF 6 objets AYUV 4 : 4 : 4 : 4 1 953 QVGA 6 objets CIF 4 objets

Tab. 9.2 – Extensibilit´e des performances de l’architecture du compositeur. Le nombre de tuiles par image est donn´e pour 25 images par seconde.