• Aucun résultat trouvé

5.4 Implantation des op´ erations sp´ ecifiques ` a H.264

5.4.1 Optimisation du raffinement subpix´ elique

H.264 am´eliore la pr´ecision de l’estimation de mouvement par rapport `a ses pr´ed´ecesseurs. La pr´ecision des vecteurs dans MPEG-2 est au demi-pixel. H.264 intro- duit le quart de pixel avec des filtres d’interpolation sp´ecifiques. Le coˆut de calcul dˆu au raffinement subpix´elique est important. Nous avons pr´esent´e diff´erentes strat´egies dans le paragraphe 2.4.2. Les techniques sans interpolation [HCBC06] ne donnent pas de bons r´esultats. Nous utilisons donc une technique `a deux pas (demi-pixel puis quart de pixel) avec interpolation des donn´ees `a la vol´ee, afin d’optimiser les acc`es m´emoire. Nous pr´esentons dans ce paragraphe les implantations de ces op´erations.

5.4.1.1 Filtres d’interpolation

L’interpolation des donn´ees demi et quart de pixel implique des calculs lourds. Le filtre demi-pixel `a six coefficients de la norme est complexe. L’estimation de mouvement peut utiliser n’importe quel filtre puisque seul le vecteur de mouvement est utilis´e. L’interpolation est refaite pour calculer le r´esidus dans l’op´eration de compensation. Nous pouvons donc ´evaluer l’int´erˆet de l’utilisation d’un filtre bilin´eaire, beaucoup plus simple `a implanter.

Filtres de la norme Les deux filtres demi-pixel et quart de pixel de la norme sont implant´es, puis optimis´es avec des fonctions intrins`eques. Pour le calcul de SAD demi-pixel, un ´echantillon sur deux en horizontal et en vertical doit ˆetre mis en corres- pondance avec les pixels du bloc courant. Cela n´ecessite l’arrangement des ´echantillons dans les registres afin d’utiliser des instructions SIMD.

L’interpolation quart de pixel est plus simple, l’application du filtre lin´eaire revient `

a faire une moyenne entre deux ´echantillons demi-pixels. Pour pouvoir calculer les huit SAD autour de la meilleure position demi-pixel, les ´echantillons sont arrang´es en huit blocs correspondant aux huit positions.

Filtre bilin´eaire Le filtre bilin´eaire est plus simple `a implanter que le pr´ec´edent. Sa vectorisation est rapide car chaque valeur de sortie correspond `a la moyenne entre deux ´echantillons d’entr´ee. Les ´echantillons demi-pixel et quart de pixel sont arrang´es de mani`ere `a faciliter la vectorisation du calcul de SAD. Les donn´ees correspondant `a une SAD sont contigu¨es.

Le raffinement subpix´elique `a la vol´ee permet de r´eduire consid´erablement les contraintes d’acc`es m´emoire en conservant les valeur interpol´ees dans les m´emoire de niveau inf´erieures, plus rapides que des m´emoires externes.

5.4.1.2 R´esultats

Plusieurs s´equences vid´eos ont ´et´e encod´ees pour ´evaluer les performances des filtres d’interpolation, et des chronom´etrages sur DSP ont ´et´e r´ealis´es.

Qualit´e Les encodages vid´eo de diff´erentes s´equences nous permettent de comparer la qualit´e des champs de vecteurs issus des diff´erentes implantations d’estimateurs de mouvement HDS (Tab. 5.5) : quart de pixel avec les filtres de la norme, avec des filtres bilin´eaire, et pixel entier.

Raffinement Variation de d´ebit `a qualit´e constante (%)

quart de S´equences SD S´equences HD

pixel Formula1 Raid1 maroc Raid2 maroc Seq1 Horses1 SpinCalendar

Filtre H.264 0 0 0 0 0 0

Filtre bilin´eaire 2,2 5,33 4,8 2,7 4,8 9,4

Pixel entier 9,7 45 30 11 27 60

Tab. 5.5 – Performances d’encodage pour des s´equences SD (576p) et HD (720p)

La perte de compression lorsque le raffinement subpix´elique n’est pas activ´e est consid´erable, pouvant aller jusqu’`a 60 %. Un exemple de courbe d´ebit/distorsion est donn´e figure 5.12. Les performances des estimateurs de mouvement au quart de pixel sont visiblement meilleures qu’au pixel entier. Les r´esidus sont r´eduits, donnant une image de meilleure qualit´e `a un d´ebit plus faible. L’utilisation d’un filtre bilin´eaire introduit une perte de performance r´eduite, jusqu’`a 9 %.

30 31 32 33 34 35 36 37 38 39 40 1000 2000 3000 4000 5000 6000 7000 8000 Bitrate (Kbits/sec) S N R Y ( dB ) Filtre H.264 Filtre bilinéaire Pixel entier

5.4 implantation des op´erations sp´ecifiques `a h.264 123

Chronom´etrages sur DSP Les temps d’ex´ecution de ces implantations ont ´et´e mesur´es sur DSP C6416 `a 1 GHz. Les r´esultats sont regroup´es dans le tableau 5.6.

Implantation Filtres H.264 Filtres H.264 Filtres bilin´eaire (non optimis´e) (optimis´e) (optimis´e)

Filtre demi-pixel 1600 ns 720 ns 150 ns

raffinement demi-pixel

SAD sur 8 candidats 820 ns 210 ns 190 ns

Filtre quart de pixel 940 ns 140 ns 150 ns

raffinement quart de pixel

SAD sur 8 candidats 560 ns 130 ns 140 ns

Total (bloc 8x8) 3900 ns 1200 ns 630 ns

Total image 720p 56 ms 17.3 ms 9 ms

Tab. 5.6 – Implantations du raffinement subpix´elique sur DSP pour un bloc 8x8 Comme pr´evu, le filtre bilin´eaire acc´el`ere le raffinement subpix´elique d’un facteur proche de deux. Le temps n´ecessaire `a l’estimation d’un champ de vecteur doit prendre en compte la recherche au pixel entier, soit pour une image 720p : 30 ms avec les filtres H.264 et 22 ms avec le filtre bilin´eaire. On peut noter que dans le cas du raffinement subpix´elique avec le filtre H.264, le raffinement demande plus de temps que l’estimation de mouvement pixel entier, alors que la fenˆetre de recherche est tr`es r´eduite (amplitude < 1 pixel).

L’augmentation de la pr´ecision des vecteurs de mouvement apporte un gain en per- formance de compression, mais aussi une charge de calcul suppl´ementaire cons´equente. L’utilisation d’un filtre bilin´eaire r´eduit de moiti´e la charge de calcul sur DSP, et limite la perte de performances de l’encodeur. Il peut ˆetre un bon candidat `a un estimateur de mouvement ´economique.