Codage vidéo scalable

Scalable Video Coding (SVC) est le nom donné à une norme de compression vidéo développée conjointement par UIT-T et l'ISO. Les deux groupes ont créé le Joint Video Team (JVT) pour développer la norme H.264, ou MPEG-4 AVC (ITU-T Rec. H.264 | ISO/IEC 14496-10 AVC). L'objectif de SVC est d'offrir un contenu adaptable ou échelonnable (scalable), c'est-à-dire que le contenu peut être converti une fois et offrir ensuite différents débits avec différentes qualités.

En , le groupe Moving Picture Experts Group (MPEG) lance un appel à la communauté scientifique (« Call for Proposals on SVC Technology »). Quatorze projets, dont douze basés sur la compression par ondelettes, sont proposés, les deux propositions restantes étant des extensions de H.264/MPEG-4 AVC. L'une d'elles, proposée par l'équipe image du Heinrich-Hertz-Institut (HHI) est choisie par MPEG comme point de départ de son projet de standardisation de SVC.

En , les groupes MPEG et Video Coding Experts Group (VCEG) se sont entendus pour finaliser le projet SVC comme un amendement de leur standard H.264/MPEG-4 AVC.

En , Google a lancé son nouveau service Gmail Video Chat qui utilise un codec H.264/SVC. C'est probablement[réf. nécessaire] le premier service à utiliser cette norme pour des applications "grand public".

Principes de la scalabilitéModifier

PrésentationModifier

La scalabilité (évolutivité ou adaptabilité, en bon français) est la possibilité de représenter un signal à différents niveaux d'information. Le signal est codé dans un seul flux binaire de manière à offrir la possibilité de décoder un flux de base et des flux englobants dont la qualité augmente successivement.

Pour ce faire, trois types de scalabilité sont définis :

  • la scalabilité spatiale qui permet d'offrir plusieurs niveaux de résolution,
  • la scalabilité temporelle qui permet d'offrir plusieurs fréquences temporelles du signal,
  • la scalabilité en qualité qui permet d'offrir différentes qualités d'image.

Scalabilité spatialeModifier

La scalabilité spatiale correspond au choix de la résolution des images reconstruites (par exemple QCIF, CIF ou SD). La scalabilité spatiale est obtenue au moyen d'une décomposition pyramidale en différents niveaux spatiaux.

Scalabilité temporelleModifier

La scalabilité temporelle correspond à la fréquence des images du flux vidéo décodé. Les différentes fréquences sont obtenues à l'aide d'une structure hiérarchisée d'images.

Scalabilité en qualitéModifier

La scalabilité SNR (Signal to Noise Ratio, ou Rapport signal sur bruit), ou en qualité, consiste à augmenter le rapport signal sur bruit d'une couche, c'est-à-dire à réduire la distorsion de quantification entre l'image originale et l'image reconstruite. Deux approches sont proposées : FGS (Fine Grain Scalability) et CGS (Coarse Grain Scalability).

Scalabilité CGSModifier

Le schéma de SVC permet d'incorporer une scalabilité en qualité à travers une échelle de résolutions spatiales. Chaque résolution spatiale est codée à l'aide d'une nouvelle couche, ce qui entraîne des raffinements sur les données (texture, mouvement).

Pour une même résolution spatiale, la scalabilité en qualité est obtenue en encodant successivement plusieurs couches dites 'de qualité'. Les images de deux couches spatiales successives sont alors à la même résolution mais, codées avec plus ou moins de précision. La première couche ayant la qualité minimum, le pas de quantification est ensuite diminué pour les couches suivantes.

Scalabilité fineModifier

La scalabilité fine est obtenue par un raffinement progressif des coefficients transformés à l'intérieur d'une même couche spatiale. La couche de qualité de base correspond au codage des coefficients selon le standard AVC, avec un pas de quantification QP initial qui garantit une qualité minimale acceptable. Cette couche n'est pas scalable.

Les couches de raffinement en qualité suivantes sont obtenues en quantifiant les coefficients du résidu avec un coefficient QP diminué de six, ce qui correspond à une division par deux du pas de quantification.

Le flux comportant les informations de raffinement peut être tronqué en tout point, ce qui permet la scalabilité fine en qualité.

Liens externesModifier