FMUSER Wirless transmet la vidéo et l'audio plus facilement!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
Préface
L'algorithme de compression vidéo H264 est désormais sans aucun doute la plus utilisée et la plus populaire de toutes les techniques de compression vidéo. Avec l'introduction de bibliothèques open source telles que x264 / openh264 et ffmpeg, la plupart des utilisateurs n'ont plus besoin de faire trop de recherches sur les détails de H264, ce qui réduit considérablement le coût des utilisateurs de H264.
Mais pour faire bon usage de H264, nous devons encore comprendre les principes de base de H264. Aujourd'hui, nous allons examiner les principes de base de H264.
Présentation du H264
La technologie de compression H264 utilise principalement les méthodes suivantes pour compresser les données vidéo. comprendre:
La compression de prédiction intra-image résout le problème de la redondance des données spatiales.
La compression de prédiction inter-trame (estimation et compensation de mouvement) résout le problème de la redondance des données dans le domaine temporel.
Integer Discrete Cosine Transform (DCT), qui transforme la corrélation spatiale en données non pertinentes dans le domaine fréquentiel, puis la quantifie.
Compression CABAC.
Le cadre compressé est divisé en: image I, image P et image B:
I frame: image clé, utilisant la technologie de compression intra-image.
Image P: image de référence avant, lors de la compression, se référer uniquement à l'image précédemment traitée. Utilisez la technologie de compression audio d'image.
Cadre B: Un cadre de référence bidirectionnel. Lors de la compression, il fait référence à l'image précédente et à l'image suivante. Utilisation de la technologie de compression inter-images.
En plus des trames I / P / B, il existe également des séquences d'images GOP.
GOP: Entre deux images I se trouve une séquence d'images, et il n'y a qu'une seule image I dans une séquence d'images. Comme indiqué ci-dessous:
Nous allons maintenant décrire en détail la technologie de compression H264.
Technologie de compression H264
Le principe de base de H264 est en fait très simple, décrivons brièvement le processus de compression des données H264. Les images vidéo capturées par la caméra (calculées à 30 images par seconde) sont envoyées au buffer de l'encodeur H264. L'encodeur doit d'abord diviser les macroblocs pour chaque image.
Prenons l'image suivante à titre d'exemple:
Macrobloc de partition
H264 utilise une zone 16X16 comme bloc macro par défaut, et il peut également être divisé en taille 8X8.
Après avoir divisé le bloc macro, calculez la valeur de pixel du bloc macro.
Par analogie, la valeur de pixel de chaque macrobloc dans une image est calculée, et tous les macroblocs sont traités comme suit.
Sous-bloc
H264 utilise des macroblocs 16X16 pour des images relativement plates. Cependant, afin d'obtenir un taux de compression plus élevé, des sous-blocs plus petits peuvent également être divisés en macroblocs 16X16. La taille du sous-bloc peut être 8X16, 16X8, 8X8, 4X8, 8X4, 4X4, ce qui est très flexible.
Dans l'image ci-dessus, la plupart des macroblocs 16X16 dans le cadre rouge ont un fond bleu et une partie de l'image des trois aigles est dessinée dans ce macrobloc. Afin de mieux traiter les images partielles des trois aigles, les sous-blocs multiples H264 sont divisés en macroblocs 16X16.
De cette manière, après une compression intra-trame, des données plus efficaces peuvent être obtenues. La figure ci-dessous est le résultat de la compression des macroblocs ci-dessus en utilisant respectivement mpeg-2 et H264. La moitié gauche est le résultat de la compression après la division de sous-blocs MPEG-2, et la moitié droite est le résultat de la compression de sous-blocs H264. On peut voir que la méthode de division H264 présente plus d'avantages.
Une fois le bloc macro divisé, toutes les images du tampon du codeur H264 peuvent être regroupées.
Regroupement de cadres
Pour les données vidéo, il existe principalement deux types de redondance de données, l'un est la redondance des données dans le temps et l'autre est la redondance des données dans l'espace. Parmi eux, la redondance des données dans le temps est la plus importante. Parlons d'abord du problème de redondance du temps des données vidéo.
Pourquoi la redondance horaire est-elle la plus grande? En supposant que la caméra capture 30 images par seconde, les données de ces 30 images sont principalement liées. Il est également possible que plus de 30 trames de données, des dizaines de trames ou des centaines de trames de données soient particulièrement étroitement liées.
Pour ces images très étroitement liées, en fait, nous n'avons besoin de sauvegarder qu'une seule image de données, et d'autres images peuvent être prédites à partir de cette image selon certaines règles, de sorte que les données vidéo ont le plus de redondance temporelle.
Afin d'obtenir que les images pertinentes compressent les données via la méthode de prédiction, il est nécessaire de regrouper les images vidéo. Alors, comment déterminer que certains cadres sont étroitement liés et peuvent être regroupés? Jetons un œil à un exemple. Ci-dessous, une image vidéo capturée d'un groupe de boules de billard en mouvement. Les boules de billard roulent du coin supérieur droit au coin inférieur gauche.
L'encodeur H264 prélèvera à chaque fois deux trames adjacentes pour comparer les macroblocs afin de calculer la similitude des deux trames. Comme indiqué ci-dessous:
Grâce au balayage de macro-bloc et à la recherche de macro-bloc, on peut constater que la corrélation entre les deux trames est très élevée. De plus, on constate que le degré de corrélation de ce groupe de trames est très élevé. Par conséquent, les cadres ci-dessus peuvent être divisés en un seul groupe. L'algorithme est le suivant: dans les images adjacentes, les pixels généralement différents ne sont que dans les 10%, la différence de luminosité ne dépasse pas 2% et la différence de chromaticité ne change que dans 1%. Nous pensons que les graphiques peuvent être regroupés.
Dans un tel groupe d'images, après encodage, on ne conserve que les données complètes du premier post, et les autres frames sont calculées en se référant à l'image précédente. Nous appelons la première trame IDR / I, et d'autres trames, nous appelons la trame P / B, nous appelons donc le groupe de trames de données codées GOP.
Estimation et compensation de mouvement
Une fois les images regroupées dans le codeur H264, il est nécessaire de calculer les vecteurs de mouvement des objets du groupe d'images. En prenant l'image vidéo de billard en mouvement ci-dessus comme exemple, voyons comment il calcule le vecteur de mouvement.
L'encodeur H264 prend d'abord deux images de données vidéo de l'en-tête de tampon en séquence, puis effectue un balayage de macro-bloc. Lorsqu'un objet est trouvé dans l'une des images, la recherche est effectuée à proximité de l'autre image (dans la fenêtre de recherche). Si l'objet se trouve dans une autre image à ce moment, le vecteur de mouvement de l'objet peut être calculé. L'image suivante montre la position de la boule de billard après la recherche.
Grâce à la différence entre les positions des boules de billard dans l'image ci-dessus, la direction et la distance de l'image de la table peuvent être calculées. H264 enregistre la distance et la direction du mouvement de la balle dans chaque image tour à tour, et cela devient le suivant.
Une fois le vecteur de mouvement calculé, la même partie (c'est-à-dire la partie verte) est soustraite pour obtenir les données de compensation. En fin de compte, il suffit de compresser et d'enregistrer les données de compensation, puis l'image d'origine peut être restaurée lors du décodage. Les données compressées doivent uniquement enregistrer une petite quantité de données. Comme suit:
Nous appelons le vecteur de mouvement et la compensation une technologie de compression inter-images, qui résout la redondance des données des images vidéo dans le temps. En plus de la compression inter-trame, la compression des données doit également être effectuée dans la trame. La compression de données intra-trame résout la redondance des données spatiales. Nous allons maintenant introduire la technologie de compression intra-image.
Prédiction intra
L'œil humain a un degré de reconnaissance de l'image, il est très sensible à la luminosité des basses fréquences, et n'est pas très sensible à la luminosité des hautes fréquences. Par conséquent, sur la base de certaines recherches, les données qui ne sont pas sensibles aux yeux humains peuvent être supprimées d'une image. De cette manière, la technologie de prédiction intra est proposée.
La compression intra-image de H264 est très similaire à JPEG. Une fois qu'une image est divisée en macroblocs, chaque macrobloc peut être prédit dans 9 modes. Trouvez le mode de prédiction le plus proche de l'image d'origine.
L'image suivante est le processus de prédiction de chaque bloc macro dans l'image entière.
La comparaison entre l'image après prédiction intra et l'image d'origine est la suivante:
Ensuite, l'image d'origine et l'image intra-prédite sont soustraites pour obtenir une valeur résiduelle.
Ensuite, enregistrez les informations de mode de prédiction que nous avons obtenues auparavant, afin que nous puissions restaurer l'image d'origine lors du décodage. L'effet est le suivant:
Après la compression intra-trame et inter-trame, bien que les données soient considérablement réduites, il reste encore de la place pour une optimisation.
Faire un DCT sur les données résiduelles
Les données résiduelles peuvent être soumises à une transformée cosinus discrète entière pour supprimer la corrélation des données et compresser davantage les données. Comme le montre la figure ci-dessous, le côté gauche est le bloc macro des données d'origine et le côté droit est le bloc macro des données résiduelles calculées.
Le macrobloc de données résiduelles est numérisé comme le montre la figure ci-dessous:
La conversion DCT est effectuée sur le macrobloc de données résiduelles.
Après avoir supprimé les données associées, nous pouvons voir que les données sont encore compressées.
Une fois le DCT terminé, ce n'est pas suffisant et CABAC est nécessaire pour une compression sans perte.
CABAC
La compression intra-image ci-dessus est une technique de compression avec perte. En d'autres termes, une fois l'image compressée, elle ne peut pas être complètement restaurée. CABAC est une technologie de compression sans perte.
La technologie de compression sans perte est peut-être la plus familière à tout le monde est le codage Huffman, un code court pour les mots haute fréquence, un code long pour les mots basse fréquence pour atteindre l'objectif de compression de données. VLC utilisé dans MPEG-2 est ce type d'algorithme, nous prenons AZ comme exemple, A appartient aux données haute fréquence et Z appartient aux données basse fréquence. Voyez comment cela se fait.
CABAC est également un code court pour les données haute fréquence et un code long pour les données basse fréquence. En même temps, il se compressera en fonction du contexte, ce qui est beaucoup plus efficace que VLC. L'effet est le suivant:
Maintenant, remplacez AZ par une image vidéo, et cela ressemblera à ce qui suit.
Il est évident d'après l'image ci-dessus que le schéma de compression sans perte utilisant CACBA est beaucoup plus efficace que VLC.
résumé
À ce stade, nous avons terminé le principe de codage H264. Cet article traite principalement des points suivants:
1. Jianyin a introduit quelques concepts de base dans H264. Tels que le cadre I / P / B, GOP.
2. Expliqué en détail les principes de base du codage H264, notamment:
Division de bloc de macro
Regroupement d'images
Principe de la technologie de compression intra-cadre
Le principe de la technologie de compression inter-trames.
DCT
Principe de compression CABAC.
|
Entrez l'email pour avoir une surprise
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanais
ar.fmuser.org -> arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaïdjanais
eu.fmuser.org -> basque
be.fmuser.org -> biélorusse
bg.fmuser.org -> Bulgare
ca.fmuser.org -> catalan
zh-CN.fmuser.org -> chinois (simplifié)
zh-TW.fmuser.org -> Chinois (traditionnel)
hr.fmuser.org -> croate
cs.fmuser.org -> tchèque
da.fmuser.org -> danois
nl.fmuser.org -> Néerlandais
et.fmuser.org -> estonien
tl.fmuser.org -> Philippin
fi.fmuser.org -> finnois
fr.fmuser.org -> Français
gl.fmuser.org -> Galicien
ka.fmuser.org -> géorgien
de.fmuser.org -> allemand
el.fmuser.org -> Grec
ht.fmuser.org -> Créole haïtien
iw.fmuser.org -> hébreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongrois
is.fmuser.org -> islandais
id.fmuser.org -> indonésien
ga.fmuser.org -> irlandais
it.fmuser.org -> Italien
ja.fmuser.org -> japonais
ko.fmuser.org -> coréen
lv.fmuser.org -> letton
lt.fmuser.org -> Lituanien
mk.fmuser.org -> macédonien
ms.fmuser.org -> malais
mt.fmuser.org -> maltais
no.fmuser.org -> Norwegian
fa.fmuser.org -> persan
pl.fmuser.org -> polonais
pt.fmuser.org -> portugais
ro.fmuser.org -> Roumain
ru.fmuser.org -> russe
sr.fmuser.org -> serbe
sk.fmuser.org -> slovaque
sl.fmuser.org -> Slovène
es.fmuser.org -> espagnol
sw.fmuser.org -> Swahili
sv.fmuser.org -> suédois
th.fmuser.org -> Thai
tr.fmuser.org -> turc
uk.fmuser.org -> ukrainien
ur.fmuser.org -> ourdou
vi.fmuser.org -> Vietnamienne
cy.fmuser.org -> Gallois
yi.fmuser.org -> Yiddish
FMUSER Wirless transmet la vidéo et l'audio plus facilement!
Contactez-Nous
Adresse :
No.305 Chambre HuiLan Building No.273 Huanpu Road Guangzhou Chine 510620
Catégories
Newsletter