Codage hiérarchique et multirésolution (JPEG 2000) Codage

Preview:

Citation preview

Codage hiérarchique et multirésolution (JPEG 2000)

Codage Vidéo

Représentation de la couleur

Codage canal et codes correcteurs d’erreur

Format vectoriel (SVG - Scalable Vector Graphics)

Organisation de journée

Codage hiérarchique et multirésolution (JPEG 2000)

Codage Vidéo

Représentation de la couleur

Codage canal et codes correcteurs d’erreur

Format vectoriel (SVG - Scalable Vector Graphics)

Codage hiérarchique et multirésolution

même fondement que la TF:

TF : projection sur une base sinusoïdale

TO : projection sur une base d’ondelettes

Fourier (et DCT) : comparaison du signal avec une sinusoïde pure

Ondelette : comparaison du signal avec une « petite onde » (fonction oscillante, à décroissance rapide).

⇒ permet de ne pas perdre l’information de localisation

On parle alors d’échelle plutôt que de fréquence

Transformée en ondelettes

Codage hiérarchique et multirésolution

Quelques exemples de fonctions analysantes (différentes positions/échelles)

(ondelettes continues)

Codage hiérarchique et multirésolution

JPEG 2000

• Une étape de traitement en plus• Utilisation de la DWT (Discrète Wavelet Transform) : transformation en

ondelette discrète.• Seul le décodeur est spécifié (la partie allocation de débit est un choix

technologique pour les industriels) • L’image origine peut être décomposée en blocs (tiles=tuiles) de taille

égale, ce qui permet de reduire la complexité de l ’algorithme (la DWT s ’effectue sur chaque bloc), de paralléliser les calculs….

• On retranche ensuite la composante continue de chaque composante

de l’image (luminance, chrominance)

Codage hiérarchique et multirésolution

JPEG 2000

Décomposition (Analyse) pyramidale de l’information ⇒ multirésolution :– deux filtres RIF

• un filtre Passe-Bas: LA(n)• un filtre Passe-Haut: HA(n)

Codage hiérarchique et multirésolution

JPEG 2000

Reconstruction (Synthèse):– deux filtres RIF

• un filtre Passe-Bas LS(n)• un filtre Passe-Haut HS(n)

Deux filtres utilisés dans JPEG-2000:

Filtre à reconstruction parfaite, coefficients rationnels (mode sans perte) 5 coeff pour LA(n) 3 coeff pour HA(n)

Filtres non réels de Daubechies:9 coeff pour LS(n) 7 coeff pour HS(n)

Codage hiérarchique et multirésolution

Exemple de décomposition dyadique en sous-bandes

Codage hiérarchique et multirésolution

Décomposition en ondelettes

Codage hiérarchique et multirésolution

Décomposition en ondelettes

Codage hiérarchique et multirésolution

Décomposition en ondelettes

Codage hiérarchique et multirésolution

Décomposition en ondelettes

Codage hiérarchique et multirésolution

Différents modes suivant l’information codée dans le code-stream

Codage hiérarchique et multirésolution

Organisation progressive du fichier selon la résolution

Codage hiérarchique et multirésolution

Organisation progressive du fichier selon la résolution

Codage hiérarchique et multirésolution

Organisation progressive du fichier selon la résolution

Codage hiérarchique et multirésolution

Organisation progressive du fichier selon la résolution

Codage hiérarchique et multirésolution

Organisation progressive du fichier selon le raffinement de la qualité

Codage hiérarchique et multirésolution

Organisation progressive du fichier selon le raffinement de la qualité

Codage hiérarchique et multirésolution

Organisation progressive du fichier selon le raffinement de la qualité

Codage hiérarchique et multirésolution

Codage de Région d’Intérêt (ROI)

Permet de coder certaines parties de l’image avec une meilleure qualité

Statique:

la ROI est choisie et codée une fois pour toute au niveau de l’encodeur

Dynamique:

la ROI est choisie et décodée « au vol » à partir du bit-stream

Codage hiérarchique et multirésolution

Codage de Région d’Intérêt (ROI)

Exemple : (Taux de compression: 69)

Codage hiérarchique et multirésolution

Codage de Région d’Intérêt (ROI)

Codage hiérarchique et multirésolution

Codage hiérarchique et multirésolution

Codage de Région d’Intérêt (ROI)

Méthode MaxShift

Codage hiérarchique et multirésolution

Codage de Région d’Intérêt (ROI)

Méthode MaxShift

supporte n’importe quelle forme de ROI avec une complexité algorithmique réduite

Pas besoin de transmettre la forme

Pas besoin de coder / décoder le contour de la forme

Pas besoin de gérer un masquage au niveau du décodeur

Décodeur aussi simple que s’il n’y a pas de ROI

Codage hiérarchique et multirésolution

Codage canal (error resilience)

Possibilite d’inclure - des données XML

- des infos specifiques sur le vendeur

- des infos sur la propriétés intellectuelle

- une URL

Multi-composante:

jusqu’à 256 composantes

profondeur et dimensions arbitraires de chaque composante

Codage hiérarchique et multirésolution

Illustration et intérêt de la décomposition

Psnr=20,6 dB

0.5bpp

Codage hiérarchique et multirésolution

Psnr=28,1 dB

0.5bpp

Illustration et intérêt de la décomposition

Organisation de journée

Codage hiérarchique et multirésolution (JPEG 2000)

Codage Vidéo

Représentation de la couleur

Codage canal et codes correcteurs d’erreur

Format vectoriel (SVG - Scalable Vector Graphics)

TypePage en noir et blanc (fax)Page en niveau de gris (photo)Page en couleur (photo)

Résolution (l x h)1000 x 20001000 x 20001000 x 2000

Nbpp1 bit8 bits8 x 3 = 24 bits

Taille du fichier2 Mbits= 250Ko16 Mbits= 2Mo48 Mbits= 6Mo

Taille des images brutes:

Séquences vidéo:

Type

Real Video

Bouquets Satellites MPEG2

Bouquets Satellites MPEG2

DVD

DV

Cinéma numérique

Résolution (l x h)

160 x 120 (exemple)

720 x 556

352 x 288

720 x 576

720 x 576

1920 x 1080

Nbpp

12 bits

16 bits

12 bits

12 bits

12 bits

16 bits

Débits bruts

5.5 Mbits/s = 0.6 Mo/s

166 Mbits/s = 20 Mo/s

29 Mbits/s = 4 Mo/s

125 Mbits/s = 15Mo/s

125 Mbits/s = 15Mo/s

800 Mbits/s = 100Mo/s

Débits utilisés en pratique

0.2 Mbits/s

4 Mbits/s

1 Mbits/s

moyen 4.5 Mbits/s, max 9.8 Mbits/s

25 Mbits/s

126 Mbits/s

Codage vidéo: enjeux de la compression

Codage vidéo

Historique–M-JPEG: 91(applications propriétaires)–MPEG: 93–MPEG-2: 95–MPEG-4: 00

0 1

2 10

Codage vidéo

Redondance temporelle

• Codage différentiel:– on transmet uniquement In et D=In+1 - In

– principe utilisé pour M-JPEG

• Compensation de mouvement:– on code l ’image In+1 comme étant la juxtaposition de translations de

l ’image In sur des blocs (macro-blocs)

Codage vidéo

Principe de base

• But: trouver, pour chaque bloc de l ’image In+1 , un bloc de l ’image In qui soit le plus « proche » possible

• Critères de sélection

• Avantages: permettre de coder un bloc uniquement par un vecteur de mouvement (translation)

• Inconvénients: Recherche exhaustive coûteuse en temps de calcul.– recherche dichotomique– recherche pyramidale

( ) ( ) ( )[ ]( )∑

∈+ ++−=

Bj,ijinnji dj,diIj,iIMNd,dMSE 2

11

Codage vidéo

Algorithme du block-matching

Image 121 Image 130 Image 130 obtenue après compensation

de mouvement

L’erreur peut être importante: on code ensuite la différence entre l’image prédite et l’image originale

Codage vidéo

Exemples de compensation de mouvements

• Trois types d ’images: I, P et B– I: Intra

• codées sans prédiction et sans compensation de mouvement par un algorithme de compression très proche de JPEG

– P: Prédites• prédites à partir des images I ou P précédentes par compensation

de mouvement. On code également la différence entre l ’image prédite et l ’image originale

– B: Bi-directionnelles• prédites par deux compensations de mouvement:

– l’une provenant d ’une image I ou P passée– l’autre d ’une image I ou P future.– On code également la différence entre l’image prédite et

l’image originale

Codage vidéo

Principes des codeurs MPEG

Le codeur choisit le séquençage des différents type d ’images dans la séquence (GOP)

Codage vidéo

Organisation en Groupes d’Images (GOP)

– images intra et images d’erreurs

– vecteurs mouvement

Codage vidéo

Entités codées

Codage vidéo

Diagramme du codeur

Extensions propriétaires du format JPEG.– Redondance temporelle pas ou très peu exploitée

(éventuellement codage prédictif temporel)– Utilisé en édition de séquence vidéo– Utilisé sur les appareils photos numériques

Codage vidéo

Codeur M-JPEG

• Objectif:– permettre le stockage de vidéo sur CD-ROM– fournir un équivalent du VHS - qualité TV– séquence de petites tailles (352x288)

• Techniques:– méthode de compensation de mouvement

• Futur:– de + en + remplacé par MPEG-2

Codage vidéo

Codeur MPEG1

• Codage de séquences diffusées par voie numérique• SDTV et HDTV• Basés sur les techniques de compensation de mouvement• Fonctionnalités:

– différents sous-échantillonnage de la chrominance– débit constant (Vidéo Conf) ou variable (DVD)– édition facile– lecture/avance/retour rapide, pause– résistance face aux erreurs de transmission– codage de séquences entrelacées– Scalabilité temporelle et spatiale en fonction de la qualité

• Usage:– câble, satellite, DVD, compression vidéo sur PC

Codage vidéo

Codeur MPEG2

Principe:– compression améliorée– séquence interactives– compositeur de scènes– Décomposition en objets vidéo

(VOP)– objet synthétiques (2D, 3D)

Codage vidéo

Codeur MPEG4

sequence MPEG-4 initiale Translation de l’objet vidéo

Changement d’échelle

Rotation

Codage vidéo

Codeur MPEG4

Codage vidéo

MPEG4: représente le contenu multimédia

MPEG7 : description du contenu (bas ou haut niveau)

complément de MPEG4 (utilise des objets vidéo MPEG4)

MPEG21: cadre multimédia complet

inclut tous les formats, codecs…

facilite l’intégration de nouveaux standards

comité incluant les représentants des majors du disque et du cinéma

Organisation de journée

Codage hiérarchique et multirésolution (JPEG 2000)

Codage Vidéo

Représentation de la couleur

Codage canal et codes correcteurs d’erreur

Format vectoriel (SVG - Scalable Vector Graphics)

Capteur linéaire: 1 ligne de pixels

Matrice de pixels

Matrice couleur

- mono-CCD

Acquisition: Capteur numérique

Capteur linéaire: 1 ligne de pixels

Matrice de pixels

Matrice couleur

- mono-CCD

- tri-CCD

Acquisition: Capteur numérique

Capteur linéaire: 1 ligne de pixels

Matrice de pixels

Matrice couleur

- mono-CCD

- tri-CCD

Multi / Hyper spectral

Acquisition: Capteur numérique

R V B

base Rouge-Vert-Bleu

Détection de contour :

Représentation de la couleur

T L S

base Teinte-Luminance-Saturation

Détection de contour (T) :

Représentation de la couleur

Problème d’effet de Moiré avec un capteur mono-CCD

Influence des conditions d’éclairage

choix de la base de représentation

Représentation de la couleur

Représentation sous la forme Yuv ou Y-Cb-C

Y = 0.587V + 0.299R + 0.114B : donne la luminanceCb = 0.564(B-Y) ou U = 0.493(B-Y) : chrominance bleue,Cr = 0.713(R-Y) ou V = 0.877(R-Y) : chrominance rouge.

Représentation de la couleur

Représentation de la couleur

Sous-Echantillonnage des composantes couleurs

Représentation de la couleur

Sous-Echantillonnage des composantes couleurs

Organisation de journée

Codage hiérarchique et multirésolution (JPEG 2000)

Codage Vidéo

Représentation de la couleur

Codage canal et codes correcteurs d’erreur

Format vectoriel (SVG - Scalable Vector Graphics)

Lors de la transmission, il peut subvenir des perturbations (perte de données)

Il est nécessaire de mettre en œuvre des mécanismes

de détection d’erreurs et de correction.

Stratégies de correction:

-détecter les erreurs et retransmettre les messages erronés (à la demande ou de manière automatique)

-Apporter de la redondance dans le message transmis afin que le décodeur régeère lui-même le signal original en cas d’erreur.

Codage canal et codes correcteurs d’erreurs

Détection d’erreurs par Vertical Redundancy Checker (VRC)

Ajout d’un bit de parité à chaque mot de code

- si le nombre de « 1 » dans un mot de code est impair, on ajoute « 1 »

- sinon, on ajoute « 0 » 

Cette méthode simple ne détecte pas 100% des erreurs.

Codage canal et codes correcteurs d’erreurs

Détection d’erreurs par Longitudinal Redundancy Checker (VRC)

à partir de blocs de caractères, munis de leur bit de parité,

rangés dans les lignes d’un tableau, on calcule la parité

des colonnes et on transmet le résultat avec le message.

Probabilité réduite de non détection.

Codage canal et codes correcteurs d’erreurs

Codage canal et codes correcteurs d’erreurs

Codage canal et codes correcteurs d’erreurs

Contrôle des transmissions orientées bits

les données sont découpées en blocs de traille fixe (trame)

on ajoute une clef de contrôle de taille prédéterminée

CRC (contrôle de redondance cyclique): clef de contrôle de 16 bits

FCS (frame sequence check): clef de contrôle de 32 bits

Codage canal et codes correcteurs d’erreurs

Détection d’erreurs par CRC

on utilise des polynômes générateurs ayant des propriétés particulières

pour engendrer des clefs.

Les bits bn-1 , bn-2 , … , b0 représentent le polynôme

B(x) = bn-1 . xn-1 + bn-2 . xn-2 + … + b0

si le polynôme générateur est de degré k, on multiplie B(x) par xk ,

puis on effectue la division du résultat par le polynôme générateur.

Le reste de la division donne les bits de contrôle.

Codage canal et codes correcteurs d’erreurs

Détection d’erreurs par CRC

Codage canal et codes correcteurs d’erreurs

Code correcteur d’erreur: code de Hamming (7,4)

mot de code: information codée sur 4 bits + 3 bits de parité

ex: i1i2i3i4p1p2p3

où:

p1: parité pour i1i2i3

p2: parité pour i2i3i4

p3: parité pour i1i3i4

Codage canal et codes correcteurs d’erreurs

Code correcteur d’erreur: code de Hamming (7,4): codage

Codage canal et codes correcteurs d’erreurs

Code correcteur d’erreur: code de Hamming (7,4): décodage

Codage canal et codes correcteurs d’erreurs

Code correcteur d’erreur: code de Hamming (7,4): décodage

Codage canal et codes correcteurs d’erreurs

Code correcteur d’erreur: code de Hamming (7,4): décodage

Codage canal et codes correcteurs d’erreurs

Code correcteur d’erreur: code de Hamming (7,4):

- chaque mot de code diffère des autres mots codes par au moins 3 bits

- le code permet de corriger les erreurs correspondant à un bit

de mot de code erroné

- le code permet de détecter les erreurs portant sur 2 bits du mot de code

Organisation de journée

Codage hiérarchique et multirésolution (JPEG 2000)

Codage Vidéo

Représentation de la couleur

Codage canal et codes correcteurs d’erreur

Format vectoriel (SVG - Scalable Vector Graphics)

Format vectoriel (SVG - Scalable Vector Graphics)

SVG Essentials

By J. David EisenbergFirst Edition February 2002  ISBN: 0-596-00223-8364 pages

Une formation ( + exemples + liens)

http://tecfa.unige.ch/staf/staf-g/sierra/staf2x/sitesvg.htm

Quantification des sous-bandes

• Les sous-bandes HF ont un contenu beaucoup plus faible que les sous-bandes BF

• Solution adoptée:– pas de quantification propre à chaque sous bande.– Le pas de quantification est plus faible pour les sous-bandes BF que

pour les sous-bandes HF– règle de quantification uniforme:

: pas de quantification: plus grand entier inférieur à x

( )

∆=b

yysignqb∆ x

0 +10 +20 +30-30 -20 -10

10=∆ b

0 1 2-1-2

Quantification inverse des sous-bandes

• Règle de quantification inverse: pour q # 0 pour q = 0

r représente le biais de reconstruction, il est choisi par le décodeur valeur classique: 0.375valeur du point milieu: 0.5

( )[ ] bysignrqz ∆+=0=z

Codage des coefficients: principes (1)

• Chaque plan de bit est codé séparément: codage par plan de bits.• On code les plans de bits de poids fort puis les plans de bits de poids

faibles• Chaque plan de bit est découpé en blocs de taille 64x64 qui sont ensuite

codés indépendamment• Le codage est un codage contextuel (on calcule la probabilité d ’apparition

d ’un bit en fonction de la valeur des bits voisins): cela permet de réduire l’entropie du code

Codage des coefficients: principes (2)

• Le codage de chaque plan de bit se décompose en trois parcours distincts ce qui permet de hiérarchiser le flux (information importante puis ensuite information secondaire):

– Parcours 1: codage des bits correspondant à des coefficients non

significatifs mais voisins de bits correspondant à des coefficients

significatifs

– Parcours 2: codage des bits correspondant à des coefficients

significatifs

– Parcours 3: codage des bits restants

– Un coefficient est significatif dès que le bit parcouru est égale à +1 ou -1

Exemple de découpage3

321

321

321

321

3

321

321

321

3

321

321

321

3

321

321

3

321

321

3

321

LL2

3

321

321

3

321

3

321

321

3

321

321

3

321

321

3

321

3

321

3

321

3

321

3

321

HL2 LH2 HH2 HL1 LH1 HH1

PB1

PB2

PB3

PB4

PB5

321 : Parcours 1

: Parcours 2

: Parcours 3

Qualité maximale et résolution minimale 3

321

321

321

321

3

321

321

321

3

321

321

321

3

321

321

3

321

321

3

321

LL2

3

321

321

3

321

3

321

321

3

321

321

3

321

321

3

321

3

321

3

321

3

321

3

321

HL2 LH2 HH2 HL1 LH1 HH1

PB1

PB2

PB3

PB4

PB5

Qualité maximale et résolution moyenne 3

321

321

321

321

3

321

321

321

3

321

321

321

3

321

321

3

321

321

3

321

LL2

3

321

321

3

321

3

321

321

3

321

321

3

321

321

3

321

3

321

3

321

3

321

3

321

HL2 LH2 HH2 HL1 LH1 HH1

PB1

PB2

PB3

PB4

PB5

Qualité fixée (PSNR) et résolution maximale3

321

321

321

321

3

321

321

321

3

321

321

321

3

321

321

3

321

321

3

321

LL2

3

321

321

3

321

3

321

321

3

321

321

3

321

321

3

321

3

321

3

321

3

321

3

321

HL2 LH2 HH2 HL1 LH1 HH1

PB1

PB2

PB3

PB4

PB5

Génération de fichier compressé

• Il existe plusieurs moyens d ’agencer les différents blocs codés. Notamment en fonction de:– la résolution désirée– la qualité désirée (en terme de PSNR)– la qualité désirée (de façon subjective)– décomposer le décodage de l ’image en plusieurs parties spatiales

Codage des zones d ’intérêts• Objectifs:

– permettre une distribution de la qualité qui soit non uniforme (mise en évidence d ’objets dans une scène)

– avoir une qualité maximale sur une zone de l ’image précise• utile dans des applications de tele-diagnostique par exemple

• Solutions utilisées:– Codage d ’un masque binaire qui code la zone d ’intérêt.– Multiplication des coefficients d ’intérêts par une puissance de deux.

Division au décodage. Ses coefficients seront codés en premier lieu: (bits de poids fort non-nulles).

– Décalage de bits (équivalent à la solution précédente).

Exemples de codagesBits de poids forts Bits de poids faibles

Exemples de codagesBasse résolution Haute résolution

Recommended