Accueil    FAQ    Rechercher    Liste des Membres    Groupes d'utilisateurs
Profil / Préférences    Se connecter pour vérifier ses messages privés
    Connexion     S'enregistrer
Logo par Super Pingu
La date/heure actuelle est Mar 09 Fév 2010, 07:26
Toutes les heures sont au format GMT + 1 Heure
Index du Forum » Formats vidéo et audio » Format Vidéo MPEG4 AVC
Documentation H264
Modérateurs:  Manao
Poster un nouveau sujet   Répondre au sujet

Page 1 sur 2 [18 messages]
Voir le sujet précédentSe connecter pour vérifier ses messages privésSurveiller les réponses de ce sujetAfficher une version imprimableVoir le sujet suivant

Marquer le sujet comme non lu  :: Aller à la page:  1, 2 Suivante

Auteur Message
d'Oursse
Ancien combattant


Inscrit le: 21 Mai 2003
Messages: 1948
Localisation: Mushromms of Paris Town

MessagePosté le: Lun 29 Mar 2004, 22:10   
Sujet du message: Documentation H264
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Voila un peu de documentation sur le H264. Il y a du technique et du moins technique. Je n'ai mis aucun lien concernant les éventuelles implémentations hard du codec (genre xbox).

1) Recommendations

JVT-100 (fichier word zippé)

2) Survols de la norme

Introduction to H264
The Emerging H264 Standard
Overview of H264/AVC Video Coding Standard
Overview of H264/AVC Video Coding Standard (un autre)
H264 Video Compression Tutorial

Survol de la norme (documentation Vcodex)

3) Codecs
Codec JM 9.4 (le standard)
Codec VSS (par Vanguard)
Codec x264 (par Laurant Aimar)
hdot264 (au point mort...)
Encodeur Mainconcept
Encodeur et player DSP
Encodeur Envivio
Player Moonlight
Mpegable Encoder
libavcodeccontient un décodeur h264. Donc de même que tous les logiciels l'utilisant (voir en bas de page)
AVC Alliance Un site ou on peut trouver un player (de Philips, semble-t-il)
Ateme (la boîte de Bobololo)

Une petite annonce de codec :
Une implémentation de Skal, je n'en connaît pas l'avancée

4) Technique
ICT et quantization (par Malvar, un mec pas bête, qui est à la base de l'ict et d'autres transformations)

Dernière édition par d'Oursse le Sam 26 Mar 2005, 09:37; édité 5 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Manao
Modérateur
Modérateur


Inscrit le: 05 Déc 2003
Messages: 743
Localisation: Paris (XIV)

MessagePosté le: Mar 30 Mar 2004, 10:45   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Encodage vidéo dans la norme H-264

Principales différences avec le MPEG-4

    * Codeur entropique amélioré ( CABAC )
    * Filtre de déblocage incorporé au processus de compression ( "in-loop filtering" )
    * Multi-référençage lors de la prédiction temporelle
    * Blocs de tailles 4x4 jusqu'à 16x16
    * Pseudo-DCT à coefficients entiers


Généralités sur le processus d'encodage

La couche vidéo de la norme H-264 utilise les mêmes concepts de compression que ceux de la norme MPEG-2, à savoir un mélange de prédictions spatiales et temporelles, couplé avec un codage par transformée.

L'image est découpée en blocs. La première image de la séquence (ainsi que celles servant de point de référence dans le flux vidéo) est codée de manière "Intra", c'est à dire sans utiliser d'autre information que celle contenue dans l'image elle-même. Chaque bloc de l'image "Intra" est prédit de manière spatiale grâce aux blocs de l'image déjà encodés. Le procédé d'encodage choisit quels sont les blocs voisins qui serviront de référence. Comme on ne prédit un bloc qu'à partir de blocs déjà encodés, le décodeur possède toute l'information nécessaire pour le décodage effectif du bloc.

Pour toutes les autres images de la séquence qui ne sont pas des points de référence, un codage de type "Inter" est utilisé. Le codage "Inter" utilise des images déjà décodées pour prédire l'image à décoder par compensation de mouvement. Le procédé d'encodage pour l'estimation de mouvement consiste à choisir une image de référence, et un vecteur de déplacement pointant vers le bloc (de l'image de référence) le plus semblable au bloc (de l'image courante) à encoder.

L'erreur résultant de la prédiction "Intra" ou "Inter" (celles-ci ne donnent généralement pas de prédiction parfaite), c'est à dire la différence entre le bloc original et le bloc résultant de la prédiction, est transformée. Les coefficients résultants de cette transformation sont quantifiés, puis codés par codage entropique en même temps que l'information de prédiction ("Intra" ou "Inter").

A l'encodage, l'image venant d'être encodée est alors immédiatement décodée pour servir de prédiction pour les images futures. Elle va alors être filtrée par un filtre de déblocage qui essayera d'éliminer les blocs qui sont inhérents au découpage de l'image en blocs lors de son traitement. Si la prédiction s'effectuait à partir de l'image originale, il y aurait un problème car au décodage, celle ci n'est pas exactement reproduite. Il s'ensuivrait alors un phénomène de dérive de plus en plus important au fur et à mesure de l'enchainement des prédictions temporelles.

Précisions sur certains aspects de la norme

Partitionnement de l'image
Une image est découpée en macroblocs de 16x16 (pour le plan luminance) et 8x8 (pour chacun des plans chromatiques). Chacun de ces macroblocs peut être découpés à loisir en blocs 16x8, 8x16, 8x8, 8x4, 4x8, 4x4. En fait, on regarde d'abord si on va découper le macrobloc en deux blocs 16x8 ou 8x16, ou en 4 blocs 8x8. Dans le dernier cas, on précisera pour chacun des blocs 8x8 de quel manière ils doivent être scindés (non scindés, 2 blocs 4x8 ou 8x4, 4 blocs 4x4)

Codage "Intra"

Dans une image de type "Intra" on n'aura que des blocs 16x16 ou 4x4. Ces blocs seront prédits spatialement à partir d'une prédiction effectuée grâce aux blocs encodés. Un bloc 4x4 possède 9 types de prédictions différentes (8 prédictions directionnelles, un prédicteur moyen), alors qu'un bloc 16x16 n'en possède que 4 (3 et 1). La distinction entre ces deux types de blocs permet de traiter efficacement à la fois les zônes relativement homogènes, grâce aux blocs 16x16, et les zones avec beaucoup de contraste grâce aux petits blocs.

Codage "Inter"

Dans une image de type "Inter", on peut retrouver tous les types de blocs. Pour chacun de ces blocs, on va rechercher le meilleur vecteur de mouvement lui correspondant, et on va l'encoder. On peut donc encoder jusqu'à 16 vecteurs de mouvement par macroblocs.

Précision des vecteurs de mouvement

Les vecteurs de mouvement sont précis au quart de pixel près. Quand un vecteur a des coordonnées non entières, on doit effectuer une interpolation pour placer les pixels du bloc sur ces coordonnées non entières. L'interpolation au demi-pixel est effectué par un filtre de type Lanczos, l'interpolation au quart de pixel près est bilinéaire (c'est à dire qu'elle moyenne les valeurs du pixel et du demi-pixel le plus proche). La norme H-264 prévoyait initialement de pouvoir aller jusqu'au huitième de pixel près, mais cela a été abandonné.

Multiréférençage

La prédiction temporelle peut s'effectuer à partir de plusieurs images de référence, alors que dans les normes précédentes ( MPEG-2, MPEG-4 ), seule l'image P ou I précédente pouvait être utilisée. Ce multiréférençage permet de tirer partie des animations cycliques (un oiseau battant des ailes par exemple), et permet en partie de résoudre les problèmes dus à l'occlusion / désocclusion des objets (quand un objet passe devant un autre, au moment ou l'objet caché redevient visible, les vecteurs de mouvement correspondant à l'objet caché sont incohérents, mais si on remonte suffisamment loin, on peut retrouver des vecteurs cohérents).

Images P / B

La différence entre images P et images B est maintenue, à savoir que les blocs des images de type P ne se servent que d'une seule référence passée (qui peut cependant varier d'un bloc à l'autre) alors que les blocs des images B peuvent utiliser deux références passées ou futures (potentiellement différentes pour chaque blocs). L'image B résultant de la prédiction est alors reconstruite en moyennant (avec pondération) les deux prédictions effectuée.

Prédiction des vecteurs de mouvement

Le codage des vecteurs de mouvement est amélioré en effectuant une prédiction des vecteurs d'un bloc à l'autre. En effet, dans une image, le champ de vecteurs a généralement tendance à être relativement régulier, ce qui permet une bonne efficacité, même pour une prédiction relativement simple. La prédiction ici est du même type que pour les blocs d'une image "Intra", à savoir 8 prédicteurs directionnels et un prédicteur médian.

Transformation

Avant de quantifier un bloc 4x4 résiduel (différence entre le bloc original et le bloc prédit), celui-ci va être transformé. On va le multiplier par une matrice à coefficients entiers qui est "presque" une matrice de DCT. Les coefficients entiers permettent d'effectuer la transformation inverse sans pertes, ce qui permet une reconstruction parfaite. Les plans chromatiques sont découpés en blocs 2x2 qui sont eux aussi transformés selon le même principe. Cette transformation sert à rendre la quantification qui suit quasi optimale (l'optimalité n'est atteinte que pour une certaine matrice, dont la DCT était une bonne approximation dans le cas général. Ici on approche la DCT, donc on perd théoriquement un peu plus en optimalité, mais la perte est plus que négligeable, et les simplifications de mise en oeuvre apportées par les coefficients entiers et la reconstruction parfaite sont beaucoup plus précieuses et beaucoup plus rapide).

Quantification

Une fois transformé, le bloc va subir une quantification. C'est le procédé qui crée les pertes dans un algorithme de compression avec pertes. Une quantification dans ce cas correspond à une division des coefficients résultant de la transformation par un nombre, puis à un arrondi à l'entier le plus proche du résultat de la division. Le nombre varie en fonction de la position du coefficient dans la matrice 4x4. C'est pour ça qu'on parle de matrice de quantification. Il existe 52 matrices de quantification, qui peuvent toutes se déduire d'une matrice unique par une multiplication par un nombre ( le quantificateur ). Il y a donc 52 quantificateurs différents. Plus le quantificateur est grand, plus les coefficients sont approximés grossièrement. Une différence de 6 entre deux quantificateurs (par exemple 2 et 8, ou 5 et 11) correspond à une approximation deux fois plus grossière.

Balayage des coefficients

Une fois quantifiée, on va lire les coefficients de la matrice dans un certain ordre. Cet ordre de balayage n'est pas si innocent qu'il peut paraître, car avec un bon balayage, on peut s'arranger pour que tous les coefficients non nuls soient parcourus en premier, et que tous les coefficients nuls restant le soient en dernier, ce qui permet d'améliorer l'efficacité du codage entropique qui va suivre. On indique donc quel type de balayage est utilisé.

Codage entropique

Deux codeurs entropiques peuvent être utilisés dans la norme H-264. Le codeur par défaut associe à chaque symbole résultant des étapes précédentes (un symbole est, par exemple, un vecteur de mouvement, ou le fait qu'un macrobloc soit scindé en 2 blocs 16x8, ou encore qu'une image soit de type P) un code unique, dont la longueur dépend de sa probabilité. Le code choisi est un code de Golomb, qui a l'avantage d'être rapide à décoder.

CAVLC

Les coefficients quantifiés ne sont pas codés par le codeur par défaut, mais par le codeur CAVLC (Context Adaptive Variable Length Coding). Ce codeur utilise aussi des codes de longueur variable, mais ceux-ci sont adaptés au contexte de l'élément à encoder. Par exemple, quand on code un zéro dans la série des coefficients quantifiés, on sait que le coefficient suivant à de fortes chances d'être zéro lui aussi, car l'ordre de balayage a été choisi de la sorte. Donc on va modifier la longueur de code correspondant à 0 pour tirer partie de cette probabilité plus élevée.

CABAC

Le deuxième codeur disponible est le CABAC (Context Adaptive Binary Arithmetic Coding). Arithmetic signifie que des codes de longueur non entière seront utilisés (ce qui permet un gain moyen pouvant aller jusqu'à près 1 bit par symbole si certains symboles ont des probabilités beaucoup plus grande que 0.5). La partie adaptation au contexte est elle aussi améliorée, les statistiques des symboles venant d'être encodés étant utilisées pour construire le modèle statistique du prochain symbole à encoder. Ce codeur est beaucoup plus lent que le précédent, mais il permet de gagner de 10 à 15 % par rapport au CAVLC.

Filtre de déblocage intégré

L'artefact de compression classique pour un schéma de compression utilisant une approche du type MPEG (découpage de l'image en blocs) est un effet de blocs. Cet artefact est généralement considéré comme le plus visible. C'est pourquoi il a été décidé qu'un filtre de déblocage allait être utilisé, lors de l'encodage, par la norme H-264. Ce filtre est appliqué sur les images servant de référence. La force du filtre est conditionnée par plusieurs éléments trouvés ou choisis lors de la compression (niveau de quantification, longueur des vecteurs de mouvement par exemple). Ce filtre permet une réduction du débit à qualité (objective, c'est à dire PSNR) égale de 5 à 10%, en améliorant en plus la qualité subjective. Il n'affecte pas trop la finesse de l'image, car il est appliqué avant rajout du résidu de prédiction.

Dernière édition par Manao le Mer 31 Mar 2004, 15:37; édité 2 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Manao
Modérateur
Modérateur


Inscrit le: 05 Déc 2003
Messages: 743
Localisation: Paris (XIV)

MessagePosté le: Mar 30 Mar 2004, 10:48   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Bon, il doit y avoir des tonnes d'imprécisions, des fautes de français, des oublis, donc si vous en voyez, n'hésitez pas à le faire savoir.

J'ai volontairement passé sous silence certains aspects de la norme ( slices, SI / SP frames, gestion de l'entrelacement, gestion de la chroma... ) car ils auraient trop compliqué la chose.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Drako'99
Ancien combattant


Inscrit le: 04 Nov 2002
Messages: 934

MessagePosté le: Mar 30 Mar 2004, 20:05   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Merci pour ce cours à la pointe de la techno Very Happy
C'est agréable à lire, enfin, je veux dire : pas trop lourd Wink

Vivement que l'équipe d'XviD s'y attaque !
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
horzaborza
Modérateur
Modérateur


Inscrit le: 31 Oct 2002
Messages: 1001

MessagePosté le: Mer 31 Mar 2004, 08:46   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Citation:

Filtre de déblocage incorporé au processus de compression


avec tes explication en plus... ça ressemble pas mal au inloop filtering, non? peut être un peu moins poussé...
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Manao
Modérateur
Modérateur


Inscrit le: 05 Déc 2003
Messages: 743
Localisation: Paris (XIV)

MessagePosté le: Mer 31 Mar 2004, 09:22   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

C'est exactement ça, mais il fallait bien en faire une traduction... Je pourrais changer la traduction en "Filtre de déblocage intégré à la boucle d'encodage", mais je sais pas si c'est plus clair.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
horzaborza
Modérateur
Modérateur


Inscrit le: 31 Oct 2002
Messages: 1001

MessagePosté le: Mer 31 Mar 2004, 10:46   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Citation:

C'est exactement ça, mais il fallait bien en faire une traduction... Je pourrais changer la traduction en "Filtre de déblocage intégré à la boucle d'encodage", mais je sais pas si c'est plus clair.

<= c très clair, justement. Ca fait du bien. merci Smile
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
d'Oursse
Ancien combattant


Inscrit le: 21 Mai 2003
Messages: 1948
Localisation: Mushromms of Paris Town

MessagePosté le: Jeu 08 Avr 2004, 18:19   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Faites vite, il y a une version d'evaluation du codec de vss ici. Je ne sais pas si ca restera longtemps.

Pour les info : c'est la
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Oglok l'horrib
Intéressé
Intéressé


Inscrit le: 08 Mai 2003
Messages: 469

MessagePosté le: Jeu 08 Avr 2004, 18:53   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Pas trop besoin de se presser, les beta de vanguard sont en libre téléchargement sur leur site officiel, c'est avec elles que j'avais fait mes tests.

Mais bon encoder à 0,5fps c la joie Yawn
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Sagittaire
Super membre
Super membre


Inscrit le: 06 Juil 2003
Messages: 1839

MessagePosté le: Jeu 08 Avr 2004, 19:23   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Non c'est une nouvelle version beaucoup plus rapide normaly
_________________
Parti voir ailleurs ...
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Sagittaire
Super membre
Super membre


Inscrit le: 06 Juil 2003
Messages: 1839

MessagePosté le: Jeu 08 Avr 2004, 19:46   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Je dirais même plus c'est le seul encodeur/decodeur H264 qui soit potable dans tout ceux que j'ai testé. Il n'y a que le mode "best quality" qui ne fonctionne pas chez moi au decodage ...
_________________
Parti voir ailleurs ...
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
kurtnoise
Sound Master
Sound Master


Inscrit le: 19 Oct 2002
Messages: 6012
Localisation: 06

MessagePosté le: Mer 14 Avr 2004, 17:18   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

La version 8.0 de JM est sortie.
_________________
J'ai douté des détails,
Jamais du don des nues...
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Oglok l'horrib
Intéressé
Intéressé


Inscrit le: 08 Mai 2003
Messages: 469

MessagePosté le: Mer 14 Avr 2004, 19:23   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

je retire ce que j'ai dit, videosoft a fini les beta et maintenant le codec est en vente, donc ça sent l'optimisation de vitesse Yawn
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Amenis
Intéressé
Intéressé


Inscrit le: 06 Avr 2004
Messages: 119

MessagePosté le: Jeu 15 Avr 2004, 21:03   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

Yop les gars Wink

Vous vous souvenez de moi Banana

Pour ceux qui s'en rappel pas , ce lien vous raffraichira la mémoire Hee hee
http://atlas2.tgv.net/~media-video/forum2/viewtopic.php?t=4450

Bon après avoir fait un tour on the oueb, il semble que ce new codec soit prometteur Shocked

Mais voila qui dit nouveau , dit pas encore de tutos pour les Boulet comme moi Me

Donc , j'ai chargé le tuto PDF de videosoft , et la je me suis dit super vdub, je connais Yawn

Par contre le fichier de configuration avancé Ultra Shocked

Vous voyez ou je veux en venir Hee hee

Ciao et a demain Wink
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Le retraité
V. I. P.
V. I. P.


Inscrit le: 19 Oct 2002
Messages: 4038
Localisation: France

MessagePosté le: Jeu 15 Avr 2004, 21:11   
Sujet du message:
Répondre en citant Télécharger ce message Marque ce message et les suivants dans ce sujet comme non lus

c pas un codec, c une norme.

videosoft nest qu'une implémentation (l'une des seul pour linstant je te laccorde Yawn) du h.264

il pourrait y avoir des codec h.264 100foi mieu comme 100foi plus pourri. (un peu comme divx et xvid sur le mpeg4 Hee hee )

ici c unpost qui decrit les algos et focntionnement du h.264, pas comment utiliser un codec en particulier (comme il nya pa de rubrique dedié a cela encor, meme si c un peu precoce je v y reflechir, puis je ferai le menage ici Yawn )
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Montrer les messages depuis:   
Page 1 sur 2 [18 messages]

Poster un nouveau sujet   Répondre au sujet   
Marquer le sujet comme non lu  :: Aller à la page:  1, 2 Suivante

Voir le sujet précédentSe connecter pour vérifier ses messages privésSurveiller les réponses de ce sujetAfficher une version imprimableRevenir en hautVoir le sujet suivant
Index du Forum » Formats vidéo et audio » Format Vidéo MPEG4 AVC
 Sauter vers:   

Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers
Vous pouvez télécharger des fichiers


Powered by phpBB © 2001, 2005 phpBB Group :: UltraViolet Theme based on FI Theme by daz :: Toutes les heures sont au format GMT + 1 Heure
Traduction par phpBB-fr.com :: Création et administration par M. W. I. Prod.
Classement de sites - Inscrivez le vôtre!
[ Temps: 0.5078s ][ Requêtes: 11 (0.0093s) ][ GZIP activé - Déboguage activé ]