• LA COMPRESSION D'IMAGE INDUSTRIELLE
    Compression sans perte | Valeur probante | Traçabilité

Spécification pour integration des algorithmes Waaves et MM Waaves sur FPGA

1 - Intégration de l’Algorithme Waaves sur carte Stratix IV


 
L’ architecture actuelle du SoC pour Waaves mise en œuvre dans une carte FPGA stratix IV du constructeur ALTERA est décrite sur la figure 1. Cette architecure est composée d’IP matérielles de calcul représentées en vert sur le schéma, il s’agit des IP :
  • Conversion d’espace de Couleur : Bayer to RGB to YUV
  • Calcul de la transformée en ondelette et quantification : DWT & Quantization (IP d’une partie tierce)
  • Optimisation du codage et compression : Adaptive subband coding
A ces IP de calculs viennent s’ajouter des IP de manipulation et de contrôle des données en mémoire, représentées en bleu foncé sur la figure 1, il s’agit de :
  • les 2 IP d'acquisition des données images, qui émettent les images une fois décompressées : DMA write for input image et DMA read for output image
  • les 2 IP qui permettent d’accélérer l’accès aux données pour les IP de calcul : DMA R/W
  • l’IP qui gère l’accès aux données dans la mémoire DDR : DDR controller (IP d’une partie tierce)
Le dernier élément de ce système sur puce est le processeur System CPU qui pour l’instant est un softcore NiosII d’Altera mais qui pourrait être un processeur FP6 de la société Cortus ou un autre processeur embarqué.
 

2 - Spécifications

Les spécifications sont données ici en terme de besoins surface. Les estimations indiquent les ressources nécessaires pour intégrer les algorithmes Waaves et MM-Waaves dans un FPGA, il n’est pas indiqué ici de contraintes technologiques (noeuds technologique par exemple) ni de contraintes de packaging.

2.1 Besoins mémoire de stockage

Les différentes évaluations d’exécution ont permis de déterminer que les besoins en mémoire dynamique sont régis par les deux fonctions suivantes :
  • Pour la compression : Size = 3,8 x N - 0,05 Mo
  • Pour la decompression : Size = 3,76 x N + 0,16 Mo
Note : N représente la taille de l’image en octet, Mo dénote des Méga-octets.

2.2 Besoins en surface

L’estimation que nous donnons ici est faite à partir de l’architecture de la figure 1, et des avancées de nos travaux.
La partie Adaptive subband coding est encore en cours de développement, nous avons mentionné ici les besoins pour la partie codage (Henuc).
Les surfaces sont données en nombre de ressources Altera utilisées, ALUT, FlipFlop, blocs DSP et mémoire, internes au FPGA.
 
2.2.1 Version Nios Altera
 

Table 1: Ressources en surface

Légende :
  • IP1 : Bayer to RGB to YUV
  • IP2 : DWT & Quantization et DMA R/W
  • ADSW : Adaptive subband coding
  • HENUC: Hierarchical ENUmerative Coding
  • IP4 : DMA write for input image et DMA read for output image
A ces ressources, il faut ajouter :
3,8 Mo de mémoire flash pour stocker le code + 64 ko de mémoire cache 2.2.2 Version FP6 de Cortus
 
A ces ressources il faut ajouter :
40 K portes pour le FP6 de Cortus + 3,8 Mo de mémoire flash pour stocker le code + 64 ko de mémoire cache.
 

Tableau 2 : Ressources en surface

Légende :
  • IP1 : Bayer to RGB to YUV
  • IP2 : DWT & Quantization et DMA R/W
  • ADSW : Adaptive subband coding
  • HENUC : Hierarchical ENUmerative Coding
  • IP4 : DMA write for input image et DMA read for output image

3 - Fréquence de travail

Les évaluations ont été faites avec une fréquence de fonctionnement du système de 100 MHz.

Cette fréquence nous permet déjà un ordre de grandeur de gain, par rapport à une exécution sur un processeur mono-cœur, soit une compression/décompression de 10 Mo par seconde.

La fréquence visée est de 500 MHz pour obtenir un temps de traitement de 50 Mo par seconde.

4 - Entrées / Sorties

Dans le prototype, les entrées-sorties ont été réalisées sous forme d’interconnexion avec un bus de type GPIO 40 bits.
 
L'utilisation d’un bus standardisé parallèle ou série, par exemple un bus AXI ou SPI est possible, le comparatif n 'a pas été défini.
 

5 - Intégration Algorithme MM-Waaves sur carte Stratix I

Afin de réaliser une compression vidéo, l’algorithme MM-Waaves utilisant l’algorithme de compression d’image Waaves a été intégré sur une carte à base de Stratix I d'ALTERA. 
 
Les chiffres indiqués ici ne concernent que la partie à ajouter pour la partie vidéo.
 

5.1 Spécification MM-Waaves

Tableau 3 : Ressources nécessaires pour la partie vidéo de MM-Waaves
 

5.2 Global

Tableau 4 : Ressources nécessaires pour l’ensemble Waaves et MM-Waaves