Télécharger la présentation
Publié parDominique Vincent Modifié depuis plus de 9 années
1
Etude et test des algorithmes d'estimation de mouvement en MPEG
2
PLAN Techniques de compression video MPEG.
Traitement des redondances temporelles: algorithmes d'estimation de Mouvement. Test des implémentations DivX Protocole Mise en oeuvre Résultats Interpretation
3
Introduction: Pourquoi la compression Video ?
Absence de compression inconcevable Exemple pour une qualité Télévision analogique: Image Images / sec. profondeur de pixels: 24 bits Total: 22 Mo/s Compression avec pertes nécessaire, utilisant les redondances spatiales et temporelles MPEG4 (dans la pratique: divx): 64 Ko/s ; facteur de compression = 350
4
Techniques de compression MPEG: Sous échantillonnage
Passage de la base RGB en YUV. Perception humaine moins sensible à la chrominance. Codage en 4:2:0 Compression: 2
5
Techniques de compression MPEG: exploitation de la redondance spatiale
Découpage de l'image en Macroblocs de 16*16 pixels, puis en blocs de 8*8 pixels Compression des blocs en DCT (Discrete Consine Transform) pour le MPEG1 et 2, ondelettes pour le MPEG4. But de ces transformées: sous échantillonnage des fréquences basses. Puis codage VLC et RLE.
6
Techniques de compression MPEG: exploitation de la redondance temporelle
3 types d'images: Intra frame (I) ou Key-frame: image entière Predictive Frame (P): codage en fonction d'une image précédente. Bidirectionnal frame (B): codage en fonction de deux images (I ou P). Images P et B générées grâce à l'estimation de mouvement.
7
Estimation de mouvement: Principe
Pour le codage des images P et B Recherche de blocs carrés de pixels les 'plus ressemblants' dans l'image précédente Critères de ressemblance à minimiser: SAD (Sum of absolute difference) sur la luminance.
8
Compensation de mouvement
Plutot qu'un bloc d'image 8*8, on transmet: le vecteur de mouvement du bloc Bloc 8*8 contenant l'erreur résiduelle entre les deux blocs, encodée en DCT. Décodage: on compense l'image précédente grâce aux vecteurs de mouvement et aux erreurs résiduelles. Comment trouver les blocs ?
9
Techniques pour la recherche de mouvement
Comment trouver les blocs ressemblants? Full Search: recherche exhaustive Optimal: on trouve forcément le meilleur bloc Mais: très lourd
10
Estimation de mouvement: Three Step Search
Recherche d'une direction: test sur 9 valeurs en partant du vecteur (0,0). Nouvelle recherche avec un rayon plus faible à partir du minimum précedent. 3e recherche avec un rayon encore plus faible. Rapide mais peu précis, possibilité de minimum locaux.
11
Estimation de mouvement: Méthode 2D-logarithmique
Recherche sur 5 points à partir du centre à une distance D. Déplacement selon le minimum. Réduction du rayon de recherche à log D quand le minimum tombe au centre ou sur un coté. Minimums locaux
12
Estimation de mouvement: diamond based algorithm
Recherche du déplacement médian en fonction des blocs connexes. Critère sur 9 points disposés en diamant. Déplacement selon le minimum. Utilisation d'un deuxième diamant plus petit si minimum au centre.
13
Techniques de block Matching: PMVFAST
Recherche du déplacement maximum des blocs connexes. Mouvement estimé petit, moyen ou grand. Petit: on utilise le petit diamant pour la recherche. Moyen: on utilise le grand diamant 1 seule itération. Grand: on utilise le grand diamant: Tant que le minimum n'est pas au centre, on se déplace en direction du minimum. Quand le minimum est trouvé au centre, deuxième recherche avec le petit diamant.
14
Estimation de mouvement en mpeg-4
MPEG-1 et 2: block matching sur des blocs réguliers MPEG-4: block matching sur des formes quelconques Segmentation de l'image Plus adapté aux images réelles Gain en compression: 10 % Gain en qualité visuelle: 100%
15
Comparaison avec/sans segmentation
Exemple: quadtree Moins de motion vector: gain en compression Plus de précision: gain en qualité visuelle
16
Test des implémentations
But des tests: relation algorithme de block matching - Qualité d'image 3 implémentations testées: Xvid: algorithme PMVFAST Ffmpeg: méthode 2Dlogarithmique DivX4: Diamond based algorithm
17
Protocole de test Comparaison des images issues des flux encodés, non encodés. Permet d'estimer les pertes engendrées par l'encodage.
18
Mise en oeuvre Outils de test:
Encodage: transcode, encodage en deux passes Calcul des différences: PIL (Python Image Library) Critère de différences d'images: Moindres carrés sur la luminance:
19
Exemple: Différence entre deux images
20
Moindres carrés: résultats
Critère des moindres carrés sommé pour toutes les images d'un flux Résultats peu pertinents pour les séquences lentes: valeurs proches, pas d'information sur la nature des erreurs. Solution: visualiser la répartition des erreurs
21
Répartition des erreurs
Répartition des erreurs: histogrammes des erreurs Somme pour toutes les images du flux
22
Répartition d'erreur: Résultats
Répartion interessante Comparaison difficile Solution: erreur relative entre les implémentations
23
Comparaison des répartitions d'erreur
Résultats pertinents Inversion petites/grosses erreurs Différences selon le type de séquence
24
Interpretation des résultats
Xvid et PMVFAST Performant, peu de grosses erreurs DivX4: 2Dlog + Quarter pixel Excellent pour les petites erreurs, mais... FFmpeg: Diamond based Compromis
25
Conclusion Beaucoup d'autres tests possibles sur les codecs divx:
Temps d'encodage CPU au décodage Étude MPEG très interessante par sa diversité. Développement du MPEG4 très rapide.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.