Title: Prsentation vide
1Vendredi 16 Septembre 2005
Codeur Vidéo Nouvelle Génération
Damien Lepiller Nicolas Rousseau
Encadreurs Michel Barlaud Marc Antonini Thomas
André
2Sommaire
Introduction
Conclusion
2/35
3INTRODUCTION
3/35
4Introduction
Standard actuels de compression vidéo MPEG-x,
H.261, H.263
? Basés DCT
? Limitations compression et scalabilité
Comment les améliorer ?
? Les rendre scalables
? Assurer une meilleure qualité pour un débit
donné
Utiliser une Transformée en ondelettes (DWT)
4/35
5Partie Un
Le codeur CReATIVe
5/35
6Analyse temporelle
Appliquer des bancs de filtres
Exemple banc de filtres 5/3
Utilisation dun schéma lifting ? Algorithme
plus léger ? Compensation en mouvement
I. Le codeur CReATIVe
6/35
7Analyse temporelle
1er niveau
2ème niveau
3ème niveau
I. Codeur vidéo CReATIVe
7/35
8Compensation en mouvement
Nécessité de la compensation en mouvement ?
Décorréler limage ? Diminuer la HF
Le schéma lifting compensé en mouvement utilise
des vecteurs
Besoin dun algorithme destimation de mouvement
I. Le codeur CReATIVe
8/35
9Compensation en mouvement
Mise en correspondance de blocs block-matching
Recherche exhaustive trop coûteuse ? Diamond
Search
Image reconstruite éviter les trous par
prédiction backward
I. Le codeur CReATIVe
9/35
10Allocateur de débit
Le chef dorchestre du codeur ? Il décide du
poids relatifs des sous-bandes ? Il pourra
bientôt adapter les vecteurs
Allocateur de débit
Comment décider dallouer les débits ? ? Etablir
un critère ? Définir un algorithme doptimisation
I. Le codeur CReATIVe
10/35
11Allocateur de débit
Un critère doptimisation
Une contrainte
Un lagrangien
Se résoud par dérivée ? Nécessite le modèle
débit-distorsion ? Trop coûteux en temps de
calcul ? Approche basée modèle
1. Calcul de quelques points
2. Enveloppe convexe
3. Interpolation par spline
I. Le codeur CReATIVe
11/35
12Quantification et codage spatial
I. Codeur vidéo CReATIVe
12/35
13JPEG2000
a Excellent rapport débit-distorsion pour le
codage dimages a Codage avec ou sans pertes a
Possibilités de scalabilité en qualité (pSNR)
ou/et en résolution a Robustesse aux erreurs,
définition de régions dintérêt...
I. Codeur vidéo CReATIVe
13/35
14JPEG2000
COMPRESSION
Codeur Arithmétique
Sous bande temporelle
Headers
DWT 2D
Q
EBCOT
Image compressé JPEG2000
Décodeur Arithmétique EBCOT
Sous- bande temporelle reconstruite
DECOMPRESSION
Lecture Fichier (headers)
Q-1
DWT-1 2D
I. Codeur vidéo CReATIVe
14/35
15Scalabilité en pSNR
1 train binaire JPEG2000
Extrait de la séquence Erik image 1 (352x288)
8 BPP
0.05 BPP (compression 1601)
0.1 BPP (compression 801)
0.5 BPP (compression 161)
1 BPP (compression 81)
I. Codeur vidéo CReATIVe
15/35
16Encodage des sous-bandes temporelles
originale
encodée
Sous-bande Haute Fréquences (niveau 3)
Sous-bande Basses Fréquences
Sous-bande Haute Fréquences (niveau 1)
Sous-bande Haute Fréquences (niveau 2)
I. Codeur vidéo CReATIVe
16/35
17Partie Deux
Estimation de mouvement
17/35
18Estimation en quadtree
Passage du block-matching simple à lestimation
en quadtree Quest-ce quun quadtree ?
? Un arbre quaternaire
? De nombreuses racines
? Chaque nud contient un vecteur mouvement
II. Estimation de mouvement
18/35
19Estimation en quadtree
Quadtree structure récursive ? Algorithme
destimation récursif
1. Initialisation Block-matching sur père
? couple débit-distorsion
(R, D)
2. Division en 4 fils
3. Block-matching sur fils ? 4
débit-distorsion
(Ri, Di)i14
4. Critère de comparaison
si vrai ? retour en 2 pour 4 fils
sinon ? on garde le père
II. Estimation de mouvement
19/35
20Estimation en quadtree
Problème on descend presque toujours jusquau
bout ! ? On introduit une notion de coût des
vecteurs
Chaque vecteur prend une place de stockage ? on
lestime grâce à lentropie ? on lintroduit
dans le critère ? on la pondère par un
coefficient ajustable
Conséquences ? On ne descend que si cest
réellement intéressant ? On peut régler
manuellement la taille des vecteurs ? Mais on ne
sait pas ladapter au débit avec précision
II. Estimation de mouvement
20/35
21Méthodes délagage
Initialisations ? Pour chaque nud
Idée on construit le quadtree intégralement
? On calcule Rquadtree
- Puis, on élague lors dune seconde passe
- ? On a un débit cible
- On calcule le débit du quadtree par son entropie
- ? On coupe par petits bouts
Elagage
1. Recherche du nud avec le plus petit l
2. On coupe les fils du nud
3. On calcule Rquadtree
Où couper ?
si Rquadtree lt Rcible
, STOP
sinon, retour en 1
II. Estimation de mouvement
21/35
22Méthodes délagage
Problème les performances sont faibles ? On
aimerait retrouver les résultats de la première
méthode ? Tout en gardant la souplesse de la
seconde !
Fusion des méthodes
Récupération de lancien critère
Cas limite
On en déduit
quon enregistre dans le nud correspondant
On reprend le même algorithme délagage
mais dans lordre de la première méthode.
II. Estimation de mouvement
22/35
23Codage du mouvement
? Compression JPEG 2000 brute
? Codage différentiel
? On ne stocke pas les vecteurs mais la
différence des fils avec le père
? Puis codage par plage de zéros
? Nécessité de stocker tout le quadtree
? Mise en forme et codage arithmétique
En-tête
Structures
1
0
1
0
0
0
0
0
0
GOP
Coord. ligne
Vecteurs
Coord. colonne
II. Estimation de mouvement
23/35
24Résultats
II. Estimation de mouvement
24/35
25Résultats
II. Estimation de mouvement
25/35
26Partie Trois
Optimisation JPEG 2000
26/35
27Le problème des headers
JPEG2000 un format dimages gt contient un
header (en-tête)
Ce header contient des informations pour le
décodage
- Taille de limage
- Nombres de composantes
- Type de TO utilisée
- Informations de quantification
- Nombres de couches (scalabilité pSNR)
- .
Header
Datas
FFD9
- Sous-bandes HF, à bas débit plus de header que
de données!
III. Optimisation de la partie JPEG2000 du codeur
27/35
28Le problème des headers
Le train binaire compressé inclus les headers
JPEG2000 sous optimal
Le coût des headers est de 55kbps ? Gros
problème à bas débit (lt200kbps)
Suppression des headers lors de lencodage permet
- Allocation de débit plus juste - Gain à bas
débit
III. Optimisation de la partie JPEG2000 du codeur
28/35
29Suppression des headers. Etape 1 compression
- Comment compresser ?
- Modifier les valeurs de la norme JPEG2000
- Ne pas coder dinformations inutiles
- Coder une seule fois deux informations identiques
3) Composantes, informations de quantification
1) Coder les informations sur moins de bits
2) Taille de limage, type de DWT
Définition dun nouveau header 20-25 de la
taille de lancien
III. Optimisation de la partie JPEG2000 du codeur
29/35
30Etape 2 lookup table compression
index
index
Header
Header
Header
Datas
Datas
Datas
FFD9
FFD9
FFD9
JPG2K 1
JPG2K 2
JPG2K n
?
Header
Lookup table
Header
Remplacement par un index
OUI
Ajout dans la lookup table
NON
? Suppression quasi complète des headers (gt95)
III. Optimisation de la partie JPEG2000 du codeur
30/35
31Modification de lallocateur de débit
D
Nouvelle courbe débit-distorsion
Ancienne courbe débit-distorsion
d
dOLD
dNEW
rNEW
rOLD
r
Coût des headers
R
III. Optimisation de la partie JPEG2000 du codeur
31/35
32Résultats
Séquence Flower, CIF (352x288) vecteurs
précision pixelique, 3 niveaux de décomposition
III. Optimisation de la partie JPEG2000 du codeur
32/35
33Résultats visuels
Ancienne méthode
Nouvelle méthode
Séquence Flower, CIF (352x288) 150kbps,
vecteurs précision pixelique, 3 niveaux de
décomposition
III. Optimisation de la partie JPEG2000 du codeur
33/35
34CONCLUSION
34/35
35Conclusion
- Résultats
- Gain à bas débit (suppression des headers
estimation de mouvement scalable)
- Objectifs
- Rendre lestimation de mouvement pilotable par
lallocateur de débit - ? Faire un codeur totalement scalable
35/35
36(No Transcript)