Facebook Tweeter Tweeter

Tutoriel v2 : encoder en x264 avec Avidemux 2.5.2

Voilà quelques mois j’avais publié un tutoriel sur la configuration de l’encodeur x264 dans le logiciel gratuit et opensource Avidemux. Depuis, de l’eau a coulé sous les ponts et Avidemux est passé en version 2.5.2 et quelques modifications ont été apportées dans le panneau de configuration x264. Donc, je vous propose une nouvelle version de ce tutoriel que vous êtes nombreux à m’avoir demandé !

Je vous présente donc la nouvelle version du tutoriel de configuration de l’encodeur x264. Avidemux est un logiciel gratuit et opensource qui permet d’encoder en HD, compresser, multiplexer en MKV, AVI, TS, MP4, FLV, et autres. C’est sûrement le logiciel le plus utilisé pour créer des MKV HD avec des tailles raisonnables de 4 à 10 Go en 1080p. C’est un domaine assez complexe et j’ai essayé de rester le plus simple possible. Je me suis bien-sûr inspiré des documentations proposées par les développeurs de Avidemux et VideoLan (x264) en vous apportant quelques explications et astuces que j’ai pu apprendre durant ma petite expérience dans l’encodage et le décodage des vidéos HD. Bonne lecture et n’hésitez pas à me faire part de vos remarques, bugs ou difficultés.

Intro...

Avant propos…

Pour rappel, le x264 est un encodeur gratuit et opensource basé sur la norme H264 (ou Mpeg-4 Part 10 : AVC). C’est le plus performant des encodeurs H264 gratuit, il est très utilisé pour recompresser les rip de Blu-ray multiplexés en MKV. Ici, je ne reviendrais pas sur le logiciel et son interface (pour cela voir le tutoriel initial), ni sur la définition du H264 et du MKV (cliquez sur les liens pour en savoir plus). J’irais donc droit au but, à partir du moment où vous avez chargé la vidéo à encoder dans l’interface, puis sélectionné l’encodeur MPEG-4 AVC (x264).


La qualité étant le principal souci des utilisateurs du x264, il faut vous attendre à des encodages très longs, des fois plus de 20 heures ! Mais ceci est surtout lié à la puissance de votre ordinateur. Le x264 est un encodeur multithread, c’est-à-dire qu’il s’appuie sur le nombre de Core pour accélérer le processus, l’encodage sera donc beaucoup plus rapide sur un Quad que sur un Dual Core.

Si vous désirez encoder un vidéo de Blu-ray avec Avidemux en x264, je vous conseillerai d’analyser votre vidéo source dans un premier temps avec MediaInfo (gratuit) associé à DVDfab Passkey ou AnyDVD HD (deux softs similaires : le premier est gratuit, le second payant)pour décrypter les protections Blu-ray et pouvoir ainsi analyser le film. Vous pourrez ainsi noter plusieurs informations intéressantes qui vous serviront à mieux encoder votre vidéo en x264 comme le véritable framerate 24 im/s ou 23.976im/s ; le nombre d’images de référence utilisé, on verra plus bas pourquoi, le débit de votre vidéo source et surtout son codec, car Avidemux ne prend pas en charge le VC-1, un concurrent du H264. Un logiciel d’encodage doit d’abord décoder la vidéo source avant d’encoder, si le décodeur de la vidéo source n’est pas présent il ne pourra pas la traiter. Malheureusement, il existe plusieurs Blu-ray encodés en VC-1, pour cela je vous conseille MediaCoder qui décode tout et propose trois encodeurs H264 différents, le x264, le H264 CUDA (pour carte Nvidia) et JM Encoder (pas très connu). Avidemux reste cependant, le logiciel le plus performant pour exploiter le x264.

  • Note 1 : la première icône en forme de disquette sert à lancer l’encodage
  • Note 2 : Si vous indiquez « Copy » dans les onglets pour choisir l’encodeur vidéo ou audio, Avidemux n’appliquera aucune modification sur la source et conservera la piste telle qu’elle.
  • Note 3 : vous pouvez multiplexer votre piste vidéo finale en MKV de préférence (mais aussi en AVI, MP4, FLV, TS, ..)
  • Note 4 : Pour la piste audio, et conserver celle d’origine de la source, on choisira « Copy ». Mais vous pouvez aussi mixer, un 5.1 en 2.0 par exemple, et même un 2.0 en 5.1 via le procédé Prologic II dans les filtres audio de Avidemux, mais aussi rééchantillonner, appliquer un délai pour synchroniser audio/vidéo,appliquer un dynamique Range, etc, …

General

Onglet Général

Cet onglet est très important pour la suite des opérations. Ce qu’il faut avoir à l’esprit, c’est que plus vous décidez de compresser la vidéo en gardant une excellente qualité, plus l’encodage sera lourd (prendra du temps) et plus le décodage utilisera de ressources CPU. Bien-sûr, de nos jours, l’accélération matérielle sur le décodage vidéo permet une lecture plus fluide des vidéos HD mais cela sera au détriment de la qualité : toujours privilégier le décodage via CPU plutôt que GPU si vous voulez bénéficier de la meilleure qualité d’image possible. Le DXVA est à bannir !

Encoding Mode : une des grandes forces du x264 c’est de proposer le mode d’encodage en deux passes ce qui n’est pas le cas de certains encodeurs H264 comme le H264 CUDA de MediaCoder. En deux passes, l’encodeur analyse une première fois la vidéo pour adapter l’encodage lors du deuxième passage et offrir ainsi un meilleur rapport compression/qualité : compresser au maximum dans certaines scènes sans détails et moins dans des scènes plus détaillées. Mon conseil est évidemment de choisir un mode en 2 passes même si cela prend beaucoup plus de temps vous aurez des fichiers moins lourds pour une même qualité.

  • Note 1 : le x264 propose un mode lossless, Quantiser : 0 avec le mode « Constant Quantizer », il recompressera une vidéo sans perte de qualité. La force du H264 c’est de nécessiter moins de poids et de débit pour une même qualité que les autres encodeurs lossless (HuffYUV ou ffv1). Ce mode est plus utilisé en milieu professionnel.
  • Note 2 : la lecture du H.264 sans perte nécessite un décodeur capable de prendre en charge le mode »Predictive Lossless » comme les décodeurs H264 ffmpeg (ffdshow), Elecard ou encore le CoreAVC Pro.

Constant bitrate (single Pass) : débit constant sur tout le film (à proscrire, un film nécessite différents débits en fonction des images, de la luminosité, des couleurs et de la rapidité de la scène). Avec un débit constant, la qualité varie trop d’une scène à l’autre, mais c plus rapide à encoder.

  • Note : un MKV en 720p tourne à environ 4000/5000 kbps, un MKV 1080p à environ 7000/9000 voir 10 000. Un dessin animé nécessite 30 à 40% de débit en moins pour une même qualité.

Constant Quantiser (single Pass) : déjà mieux, cela défini la force de compression : plus le chiffre sera élevé, plus la vidéo sera compressée et sera légère (en Go), mais moins bonne sera la qualité. En clair, à 0 vous aurez la meilleure qualité, mais une vidéo lourde à l’arrivée. Avidemux conseille entre 16 et 32. Pour un film je vous conseille entre 16 et 20. Ce mode adapte le débit nécessaire à une scène et la taille du fichier final est assez imprévisible.

  • Note 1 : Il est important de garder à l’esprit que si vous diffusez votre vidéo sur HDTV, il sera plus important de garder une bonne qualité que sur simple moniteur de 23″ ou moins.
  • Note 2 : Pour un dessin animé, on peut augmenter le taux de compression sans perte visible
  • Note 3 : Quantification adaptative (AQ) sera désactivée dans ce mode
  • Note 4 : la compression est constante et ne s’adapte pas contrairement au mode « Constant Rate Factor » ci-dessous.

Constant Rate Factor : en simple passe, c’est le mode à privilégier, car il adapte la qualité et la compression en fonction des scènes. Il offre une qualité plus subjective en augmentant la compression dans les scènes où la perte ne sera pas trop visible. En clair, il offre une qualité similaire au « Constant Quantiser » ci-dessus, mais avec un fichier moins lourd à l’arrivée. Les valeurs à choisir dans ce mode pour de la qualité seront les mêmes : entre 16 et 20 sur un film et entre 25 et 28 pour un dessin animé.

  • Note 1 : ce mode bénéficie de la quantification adaptative contrairement au « Constant Quantiser »
  • Note 2 : c’est le meilleur mode en simple passe il offre le meilleur rapport compression/qualité.
  • Note 3 : Réduire la valeur de 6 va doubler la taille du fichier, l’abaissement de 1 augmentera la taille du fichier de ~ 12,5% !

Macroblock-Tree Rate Control : Cette option permet d’apporter plus de détail à un endroit de l’image sur un objet en mouvement en utilisant la prédiction et les vecteurs de mouvements. En clair, lorsque vous filmez un échange de tennis par exemple, seule la balle est en mouvement et sa trajectoire prévisible. L’encodeur x264 va se concentrer sur la balle en mouvement et un petit cercle qui l’entoure en apportant plus de précisions (encodage par macroblocks) que sur le court de tennis en arrière plan. Il va aussi mémoriser certaines scènes qui ne changent pas pour les rappeler et ainsi favoriser une meilleure compression pour la même qualité. Ce paramètre doit toujours être activé !

Frametype Lookahead : Cette valeur qui indique sur combien de frames va se baser le x264 pour la prédiction de B-Frame. Plus cette valeur sera élevée, meilleure sera la qualité, mais l’encodage prendra plus de temps. Cependant, il est recommandé de ne pas dépasser les 60, au-delà le gain de qualité n’est pas visible.

  • Note : beaucoup laissent par défaut : 40 et 50 c’est déjà très bien.

Multithreading : cette partie concerne la puissance de votre système. Comme je vous le précisais, le x264 tire son accélération du nombre de Core système. Pour Dual Core il faudra indiquer 2, un Quad : 4. Sachez que ceux qui réalisent beaucoup d’encodage utilisent souvent des systèmes 6 Cores et que le x264 peut supporter jusqu’à 16 Cores système ! De toute façon, il est conseillé de laisser « Auto-detect » et si vous décidez une configuration Custom, c’est que vous savez ce que vous faite et que vous avez de bonnes raisons de le faire. Mais sachez que la technologie Hyperthreading d’Intel utilisée par le Core i7 (Nehalem) par exemple n’est pas prise en charge, car il ya deux cœurs virtuels par cœur physique et le CPU ne sera donc utilisé qu’à 50%.

Motion Estimation

Onglet Motion Estimation

Le x264 fonctionne aussi sur la prédiction de P-Frame (image prédite) ou B-Frame (Bidirectionnelle et prédite). Dans le cas d’un P-Frame, elle est prédite à partir d’une image de référence comme une I-Frame (Intra) mais la force de cet encodeur est qu’il peut aussi se servir d’une image prédite comme image de référence et prédire aussi une image en fonction de l’image qui suit d’où le nom de B-Frame (bidirectionnelle). Alors en pratique cela permet d’éviter les informations redondantes entre les images consécutives. Les informations similaires entre deux images seront mémorisées et reproduites sans qu’il y ait besoin de les encoder deux fois. Résultat, on gagne beaucoup de compression sans perte de qualité. Les vecteurs de mouvements permettent de détecter les mêmes données qui se déplacent d’une image à l’autre comme une personne qui marche dans un champs.

La méthode Motion Estimation (ME)

indique l’algorithme que l’on va utiliser pour calculer cette estimation. En utilisant une méthode de recherche plus précise, cela se traduira par une meilleure qualité visuelle, mais aussi plus de temps pour l’encodage.

Diamond Search (DIA):
plus rapide, mais piètre qualité. Cette méthode est rarement utilisée.
Hexagonal Search (HEX): c’est la méthode par défaut, mais là aussi, ce n’est pas celle que je vous conseille. Mais si la vitesse d’encodage est plus votre souci que la qualité, prenez cette méthode. Qualité acceptable.
Uneven Multi-Hexagon Search (UMH): C’est la méthode la plus utilisée, car c’est un bon compromis. Elle offre une très bonne qualité sans être trop lente. Au-dessus on gagnera que très peu en qualité pour beaucoup plus de temps d’encodage.
Exhaustive Search (ESA): analyse complète et approfondie, mais très peu de gain de qualité par rapport à la UMH et beaucoup de lenteur..
Hadamard Exhaustive Search (TESA): Cette méthode est utilisée pour les transferts de haute qualité, elle est bien-sûr très lente et nécessite un ordinateur très puissant. Très rarement utilisée en encodage amateur, elle nécessite aussi un excellent afficheur pour voir la différence (vidéoprojecteur ou Plasma haut de gamme).

  • Note : Cette partie est la plus importante concernant la qualité et la lenteur du processus d’encodage. À vous de choisir celle qui vous conviendra le mieux même si je vous conseille la UMH.

Raffinement Subpixel (SubME): Ce paramètre est étroitement lié avec l’estimation de mouvement (ME) puisqu’il défini avec quelle précision va travailler ME. Et toujours la même contrainte, plus vous opterez pour de la précision, plus vous aurez de la qualité, mais du temps d’encodage. Il fortement déconseillé de ne pas descendre en dessous de la valeur 6. La valeur 7 étant la plus utilisée et celle recommandée.

  • Note : Sachez que la différence de qualité sera visible jusqu’à 9, mais nécessite trop de temps à mon goût, à moins de posséder un ordinateur très puissant.

Motion Vector (me_range)

Maximum Motion Vector Search Range : cela va définir le nombre de pixels analysés avec toujours le même principe : plus de pixels seront analysés, plus l’analyse sera précise, plus le temps d’encodage sera long et la vidéo de qualité. Cependant, le nombre à attribuer devra être en relation avec la méthode ME utilisée : »Diamond Search » et « Hexagonal Search » sont limitées à 16 même si vous indiquez une valeur plus haute, mais ces modes sont à proscrire pour de la vidéo HD. Je vous conseillerais donc la méthode « Uneven Multi-Hexagon Search »  en HD associée au nombre 24. Si vous avez du temps et de la puissance, vous pouvez monter jusqu’à 32 (pour un maximum de 64 en milieu professionnel)

  • Note 1: il est conseillé de ne pas activer  Maximum Motion Vector et Minimum Buffer Between Threads. Le x264 calcul lui-même ces valeurs en fonction de vos Cores Système.

Prediction :

Direct Prediction Mode : ce paramètre permet aux B-Frames l’utilisation des vecteurs de mouvements pour optimiser l’encodage comme nous venons de le voir au lieu de devoir encoder en temps réel chaque Frame. Cela économise le débit nécessaire et améliore la compression, il est donc hautement recommandé de toujours activer ce procédé. Sachant que le mode Spatial (prédiction à partir de blocs voisins) est plus prisé et plus efficace que le mode Temporel (Prévision à partir des cadres voisins). Le meilleur mode est « Auto » mais il est bien plus performant en 2 passes, c’est donc celui que je vous conseille et de loin !

  • Note : Pour le paramètre « Weighted Prediction for P-frames » mettre sur « Smart Analysis » et toujours laisser cocher « Weighted Prediction for B-frames » cela permet de bénéficier de B-frame plus précises qui pourront ensuite servir d’image de référence : gros gain de qualité visuelle !
  • Note 2 : « Constrained Intra Prediction » ne doit pas être activé. Il semblerait qu’il s’agisse d’un nouveau paramètre du x264 pour la diffusion en streaming. Je pens qu’il s’agit de l’activation de l’extension SVC (Scalable Video Coding) qui permet à une vidéo d’être décodée de diférentes qualité en fonction de la bande passante pour ^éviter les saccades ou les mises en mémoire tampo lors de lecture de vidéos HD en streaming.

Partition

Onglet Partition


Lors d’un encodage vidéo, l’encodeur divise l’image en bloc de pixels qui peuvent être plus ou moins gros en fonction des encodeurs : les macroblocs. On se souvient des premiers DivX qui affichaient de grosses pixelisations à l’écran assez horrible ! Le x264 est capable de subdiviser les macroblocs en petites partitions de en 16 × 8, 8 × 16, 8 × 8, 4 × 8, 8 × 4 et 4 × 4. Cependant, la recherche en 4×4, 4×8 et 8×4 P-frame offre une qualité supplémentaire très faible pour un temps d’encodage bien plus élevé. Ainsi, on recommande souvent de tout activer à part cette dernière (qui est d’ailleurs désactivée par défaut). Mais encore une fois, si vous avez du temps….

Cependant, il est important de savoir que les modes 8×8 DCT Spatial Transform (et donc 8×8 Intra-predicted Blocks) nécessitent un décodeur H264 High Profil pour que la vidéo compressée soit lue. Ce n’est pas tous les décodeurs qui supportent le High Profil du H264. Le décodeur H264 ffmpeg des ffdshow en est capable ainsi que tous les lecteurs spécialisés dans la lecture du Blu-ray car le Blu-ray utilise le profile HP@L4.1 (High Profil Level 4.1).

Frame

Onglet Frame

CABAC : (Context Adaptive Binary Arithmetic Coding), l’extension la plus connue du H264, celle-ci est à l’origine de la complexité de décodage des vidéos HD en H264. Cette option permet de compresser une vidéo encore plus (~15%) sans perte de données supplémentaires. Très utile, très souvent activée, elle permet d’avoir une vidéo avec moins de poids pour une même qualité. Là, aussi, activer cette option entraîne à la fois une vidéo lourde à décoder et à encoder et nécessite plus de ressource CPU, mais il est très recommandé de l’activer !

  • Note :Le paramètre CABAC n’est applicable qu’à partir du MainProfil (Profil de base) et supérieur comme le High Profil. Si vous désactivez ou que le profile que cous avez choisi ne prend pas en charge le CABAC, c’est alors CAVLC (Context Adaptive Variable Length Coding)  qui sera utilisé, plus rapide, mais moins efficace.

Pure Entrelaced Mode : entrelace une vidéo en 1080i par exemple. Sans intérêt de nos jours vu le grand nombre d’écrans 1080p !

Loop Filter : un autre des modes très importants du H264, le filtre Inloop Deblocking qui fait parti des paramètres les plus efficaces du H264. Ceci afin d’optimiser la vidéo plus de lissage ou plus de détails des contours. Ce filtre évite les effets de pixelisation et de blocs pixels. Dans les deux cas (paramètre « Strength » et « Threshold », plus vous montez dans le positif, plus vous aurez une vidéo lisse, mais vous perdrez en détail, plus vous entrerez une valeur négative plus vous aurez de détails, mais cela peut provoquer des Artefacts et des blocs visibles.

  • Note : la valeur « O » est donc un bon compromis, cependant si votre source est d’excellente qualité, on pourra baisser un peu à -1 voir -2, mais cela reste une question de goût, certains préfèrent les vidéos lisses, d’autres plus de relief et de piqué. Il est déconseillé d’aller au-delà de -3 à +2.


Maximum Reference Frames :
Le H264 utilise des images de référence à partir desquelles seront prédites les autres images, donc plus vous aurez d’images de référence, meilleure sera la qualité pour une même taille. Ceci est un point important de l’encodage H264 trop souvent négligé. Pour les films, on pourra aller jusqu’à 4 et 5, pour un dessin animé on pourra aller jusqu’à 8 voir plus, mais cela nécessite aussi du temps supplémentaire d’encodage.

  • Note : tous les Blu-ray possèdent un certain nombre d’images de références, il sera judicieux d’appliquer le même nombre que la source. Pour cela, il vous faut analyser votre Blu-ray avec MediaInfo. Un bon Blu-ray utilise souvent 4 images de référence.

B-frames : ce paramètre va indiquer le nombre de B-Frame que vous désirez appliquer à votre vidéo. La B-Frame est une image bidirectionnelle et prédicatrice, elle peut remplacer n’importe quelle image (I-Frame ou P-Frame) entre les images de référence. Une vidéo qui tourne à 24im/s et à laquelle vous décidez d’appliquer 4 images de référence sera donc composée de 20 autres images susceptibles d’être des B-Frames. L’avantage des B-Frames est qu’elles se compressent mieux que les autres pour une meilleure qualité et un poids de fichier plus léger.

Max consécutif : ce paramètre va indiquer le nombre consécutif de B-Frame maximum. Parce que le x264 choisit un peu lui même le chiffre optimal, je vous conseille d’y indiquer le maximum : 16.
B-Frame Bias : indice de probabilité qu’une B-Frame soit utilisée en lieu et place d’une P-Frame. La valeur recommandée et appliquée par défaut est « 0 » mais on pourra l’augmenter sensiblement pour forcer l’utilisation de B-Frame. L’encodeur ne dépassera pas la limité fixée consécutive.

Adaptive B-Frame décision : si votre principal souci est la qualité, je vous recommande très fortement d’utiliser le mode « Optimal » mais plus vous aurez indiqué de B-Frame consécutives, plus l’encodage sera long. Pour ceux qui privilégient la vitesse d’encodage, utilisez le mode « Fast ».

B-Frames as reference : anciennement appelé « B-Pyramid » ce mode stipule l’utilisation de B-Frame comme image de référence. Là aussi, une option qui démarque le H264 des autres encodeurs, il peut utiliser une B-Frame comme image de référence.

  1. Strictly Hierarchical Pyramid : Ce mode est entièrement compatible Blu-Ray.
  2. No-Strict : (mode normal B-Pyramid) donne de meilleurs résultats que le mode « strict » , mais ce n’est pas compatible Blu-Ray (dommage).
  3. Disabled :pour ne pas utiliser B-Frames comme des références. Non recommandée.

I-Frames :
Appelées aussi IDR, ces images sont des marqueurs de cycle d’image, connues aussi comme Key-Frame et se compressent très mal. La lecture d’une vidéo ne pouvant pas démarrer sur une image autre qu’une IDR, cela permet la navigation dans une vidéo. Si vous indiquez une IDR toutes les 24 images, alors lorsque vous ferez une avance image/image celle ci sautera 1 seconde de film à chaque fois (24im/s). En général on appliquera donc cette valeur, à savoir 1 IDR/seconde de film.

Minimum GOP Size : on indique ici, 24 pour un film en 24im/s (framerate du Blu-ray) ; 25 pour un film en 25im/s (framerate du DVD et des chaînes de TV au format NTSC ( USA)) et 30 pour un film en 30im/s (framerate de la diffusion des chaînes PAL (format européen)
Maximum GOP Size : ici le maximum qui peut y avoir entre 2 IDR. Plus vous indiquerez un chiffre petit plus la vidéo se compressera mal, mais offrira une recherche facile. Plus le nombre sera élevé, plus la vidéo se compressera, mais la recherche sera très espacée. En général on ne descend pas en dessous de 10 fois le framerate d’une vidéo. (250 pour 25im/s, 240 pour 24im/s et 300 pour 30im/s). Mais vous pouvez indiquer 20x ou 30 x ou 40 x fois si la recherche dans une vidéo ne vous intéresse pas…
I-Frame Threshold : ici, le x264 choisi un peu là où il va placer une IDR en fonction des changements de scène pour une recherche plus intuitive. il est recommandé d’appliquer 40 pour tous styles de vidéos

  • Note : ici, vous remarquerez l’importance d’avoir analysé votre vidéo source avec MediaInfo.

Analysis

Onglet « Analysis »


Tous les paramètres présents dans cet onglet influent grandement sur la vitesse d’encodage et la qualité, en clair si vous désactivez tous vous encoderez rapidement, mais la qualité s’en fera grandement ressentir. La quantification par Trellis va déterminer les détails de l’image, la netteté et le piqué, des valeurs importantes lorsque l’on utilise une HDTV ou un vidéoprojecteur de qualité pour visionner ses vidéos. Mon conseil est bien-sur de tout laisser activer, mais peut-être que vos préférences en jugeront autrement.

Mixed Références : activez le, ceci permet à chaque macroblock de choisir son image de référence optimale.
Chroma ME (estimation du mouvement): Si ce paramètre est activé, alors les informations de couleur (chroma) seront prises en compte pour la détection de mouvement. Très conseillé !
Treillis Quantization : pour de la qualité, je vous conseille de choisir « Always On », le gain de qualité sera visible, mais si vous aimez une image plus lisse vous pouvez choisir « Final Only ». Je vous déconseille de désactiver cette option !
Fast Skip Detection on P-Frames : cocher cette case permet un gain de vitesse d’encodage non négligeable contre une perte très légère de qualité. Malheureusement, dans de rares cas, il est la cause d’Artefacts donc à vous de voir…
DCT Decimate on P-Frame : ce paramètre améliore l’efficacité de compression et accélère le processus d’encodage contre une perte insignifiante de qualité. Hautement recommandé !
Psychovisual Rate Distortion Optimisation : ce mode va travailler sur la précision, la netteté, et le grain de l’image. Il contribue grandement à la qualité visuelle et n’est fonctionnel que si vous utilisez un chiffre de 6 ou plus dans l’onglet « Motion » à Raffinement Subpixel (SubME). Il est recommandé d’indiquer 0.4 pour du dessin animé et de laisser sur 1 pour du film. Au-dessus de 1, cela peut entraîner des artefacts et nécessite une source de très haute qualité.

Noise Reduction : ceci est un filtre postproccessing, il ne fait pas parti des paramètres du H264 et il est préférable de ne pas l’utiliser lors de l’encodage, mais plus un filtre de réduction de bruit lors de la lecture. Mon conseil est de laisser cette option à « 0 ».

Intra Luma et Inter Luma Quantisation Deadzone : si vous savez quelle est cette fonction merci de laisser un commentaire pour nous l’expliquer ;-) Même les développeurs de Avidemux en ont aucune idée.

Quantisation Matrix : des tests effectués sur cette partie ont démontré que la matrice JVT travaillait mal donc il sera recommandé de laisser sur Flat Matrix, à part si vous désirez tester cette partie de l’encodage vous pourrez éditer vos propres matrices dans le paramètre « Custom Marix ». Vous trouverez des exemples de matrices sur le forum de Doom9 : ici et .

Quantiser

Ongle « Quantiser »


Comme on l’a vue au départ plus la quantisation est élevée plus l’encodeur x264 va compresser la vidéo. Le x264 optimise la puissance de compression en cas de débit variable. Dans cet onglet on va optimiser la façon dont le x264 va gérer cette compression.

Quantiser Control

Quantizer minimum: ici on va indiquer au x264 quelle compression minimum il doit effectuer. La valeur de 10 est une bonne valeur même en haute définition. si le poids final n’est pas votre souci, vous pouvez indiquer moins.
Maximum Quantizer: inversement, ici on va indiquer au x264 quelle compression maximum il peut effectuer. Certaines scènes peuvent être plus compressées que d’autres sans perte de qualité, comme un fond uni par exemple. Le x264 adaptera automatiquement cette valeur sans dépasser celle que vous indiquerez ici. La valeur maximum par défaut, est préférable, car de toute façon le x264 n’atteindra jamais 51 et optimise très bien ce paramètre.
Maximum Quantizer Step : ici, on indique la différence de compression d’une scène à l’autre. Il ne faut pas une valeur trop grande, car on pourrait avoir trop de différence de qualité d’une scène à l’autre. Pour garder une certaine homogénéité, on indiquera entre 3 et 5 mais, 4 est une bonne valeur.
Average Bitrate Tolerance : ce paramètre n’est valable qu’en mode encodage 1 passe basé sur le débit. Cela indique la marge de variation de débit. En général, on met ici environ 25 à 40 %. Pour ma part je mets 35 %. 1 % serait assez semblable à un débit constant. De toute façon, le mode 1 passe sera pour ceux qui préfèrent un encodage rapide à la qualité.
I and P-frame Quantiser Ratio : comme on l’a vue, les i-Frame servent de référence aux P-Frame qui peuvent donc plus se compresser que les I-Frames. Ici on indique à quel pourcentage on attribue le surplus de compression d’une P-Frame par rapport à une I-Frames. La valeur 40% par défaut ne doit pas être changée (1.5=50%, 1.4 = 40% et 1.3 = 30%, etc..)
P and B-frame Quantiser Ratio : de même pour ce paramètre, les B-Frames sont donc les images qui se compressent le plus facilement de toutes, sans perte de qualité. Elles s’appuient sur les images d’avant et d’après (bidirectionnelle)  pour restituer certaines valeurs. Là aussi la valeur 1.3 (30%) par défaut ne doit pas être changée
Chroma to Luma Quantiser Offset : on laisse aussi par défaut « 0 ». C’est la différence de compression entre les données de couleur (chrominance) et de luminosité (luminance).

Quantiser Curve Compression

Quantiser Curve Compression (qcomp) : Il détermine dans quelle proportion le débit peut varier au cours de la vidéo dans son intégralité. La valeur par défaut est 60%, elle donne de bons résultats pour la plupart des vidéos. Donc, ne pas changer la valeur par défaut, sauf si vous avez une très bonne raison de le faire !

  • Note : l’utilisation d’un mode à débit constant avec un qcomp  de 100% est techniquement équivalente à un mode à débit variable sauf qu’il sera encore en mesure d’utiliser un Adaptive Quantiser.

Reduce Fluctuation Before Curve Compression : la valeur 20 est une bonne valeur. Applique un flou gaussien temporel avant la compression pour une qualité plus stable surtout pour les dessins animés.
Reduce Fluctuation After Curve Compression : inversement, cela applique un flou gaussien après la compression. La valeur 0.5 n’est pas a changer.

Adaptive Quantisation

L’encodeur x264 a intégré un nouvel algorithme qui permet de gérer plus force de compression dans la même image d’un macroblock de pixels à l’autre. Sans ce nouvel algorithme (AQ) on aurait une différence de traitement de l’image visible entre ces macroblocks sur des scènes qui comportent des zones lumineuses et d’autres sombres sur la même image. AQ est cependant plus efficace sur du dessin animé que sur du film. voir une petite comparaison entre un encodage avec VAQ et un sans avec une image en GIF.

Variance AQ : doit être activé surtout sur du dessin animé.
Strength : Pour un film on choisira 1.0 et pour un dessin animé 0.6

  • Note : ce mode ne fonctionne pas avec le débit constant CBR (mode Constant Bitrate Single Pass dans l’onglet « General »)

Advanced

Onglet « Advanced »

Pour ma part je n’utilise jammais cet onglet qui est réservé à la mise en mémoire tampon des lecteurs internet pour le streaming ou du lecteur local. Il est recommandé de ne jamais utiliser VBV donc je ne l’utilise pas.

Bitrate maximum VBV: Indique le débit maximum (en kbit / s) auquel les données entrent la mémoire tampon. Cela correspond à la bande passante du réseau (pour le streaming) ou la vitesse de lecture maximum pour le disque (pour la lecture locale). Une valeur de 0 indique que le VBV n’est pas utilisé (par défaut).

VBV Buffer Size : C’est la quantité maximale de données qui peuvent tenir à l’intérieur du tampon. Une valeur de 0 indique que le VBV n’est pas utilisé (par défaut).

Initial VBV Buffer Occupancy :Indique le niveau de remplissage du dispositif de la zone tampon au début de la lecture. 90 % est la valeur par défaut.

Slicing : le H264 permet de segmenter une image en plusieurs parties, ces fragments sont appelés « Slices ». L’avantage des Slices c’est qu’ils peuvent être décodés en parallèle par plusieurs Cores système ce qui facilite l’accélération multithread sur le décodage des vidéos HD. Le problème c’est que cette pratique obsolète n’optimise pas l’efficacité de compression, et de toute façon, la révision R607 de l’encodeur x264 a permis de tirer partie du multithreading sur les images elles-mêmes. C’est-à-dire que chaque Core système va décoder sa propre image en parallèle pour soulager l’utilisation du CPU. Donc là aussi, la valeur « 0 » est préférable, car elle désactive cette option.

Zones : Les zones peuvent être utilisées pour manuellement attribuer un débit supérieur ou inférieur à une certaine partie de la vidéo (par exemple, appliquer un débit inférieur pour le générique de fin).

Output

Onglet « Output »

Output

IDC Level : ici, on peut indiquer le Level du H264, mais attention, ce paramètre est complexe et le x264 sait le faire automatiquement. Si vous indiquez un lever et qu’il n’est pas conforme, vous pouvez créer un faux level IDC. Le level du H264 est divisé en plusieurs parties qui correspondent chacun à une résolution, un framerate, et un débit. Le Blu-ray par exemple utilise le level 4.1 qui prend en charge la résolution 1920 x 1080 px et le 24im/sec à des débits faramineux !
Mon conseil : laissez sur « Auto » et tout par défaut à moins que vous sachiez exactement ce que vous faites !

Pixel Aspect Ratio
Si vous voulez changer le ratio anamorphique de votre vidéo, c’est ici que cela se passe. Pour conserver le même aspect, on choisira « As Input ». Sinon vous pouvez transformer un 4:3 en 16:9 par exemple ou manuellement dans la partie « Custom ».

Video Usability Information

Toutes ces données sont optionnelles et rarement utilisées. Cependant, pour les puristes, elles sont intéressantes, car vous pouvez indiquer et respecter les caractéristiques de transfert, des coordonnées de chromaticité et des coefficients de la matrice de couleur. Les normes existantes pour la vidéo numérique sont UIT-R BT.709 pour la HDTV (1920×1080) et l’UIT-R BT.601 pour SDTV (720×480). Ainsi, si la source respecte ces norme de colorimétrique, et la vidéo à encoder est a distination d’une HDTV, on pourra indiquer le BT.709 dans les paramètres.

Même si je vous conseillerai de ne pas vous en préoccuper si vous débutez dans l’encodage, vous pouvez trouver toutes ces infos lorsque vous analysez un disque Blu-ray avec MediaInfo. Vous trouverez plus d’informations sur l’analyse de Blu-ray dans cet article.

Conclusion

Conclusion

Avant de terminer ce tutoriel, je voudrais vous faire part d’une petite astuce pour s’inspirer de réglages déjà effectués. Si vous possédez un MKV dont la qualité vous plait et que vous voulez encoder en x264 un Blu-ray du même style on poura s’inspirer des réglages de ce MKV. Il faudra tout de même veiller à choisir un MKV de film si vous encodez un film et qui propose le même style d’image, film sombre ou lumineux, animation ou film, piqué, couleurs, etc.

Pour ce faire, vous allez analyser votre MKV avec MediaInfo. Vous cliquez sur l’onglet « Debug » de MediaInfo après avoir lancé l’analyse, puis vous sélectionnez « Détails-5″ et relevez toutes les informations qui se trouvent en face de la ligne : Paramètres d’encodage. Vous allez alors relever les informations suivantes (qui peuvent être différentes d’un MKV à l’autre)  : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x113 / me=umh / subme=7 / psy=1 / psy_rd=1.00:0.20 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=6 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / wpredp=0 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=4866 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00 / pulldown=0

Ainsi vous allez pouvoir découvrir tous les paramètres d’encodage choisi pour créer ce MKV. Vous remarquez que l’on retrouve la plupart des abréviations que je vous ai mis entre parenthèse pour chaque méthode durant le tutoriel.  Mais n’oubliez pas que la plupart des gens ne savent pas bien encoder et que l’on peut trouver beaucoup d’erreurs.  Si vous désirez faire des essais prenez une vidéo très courte, d’à peine 5 minutes et testez plusieurs configurations pour voir celles qui vous plaisent le plus. J’espère que ce tutoriel vous aura aiguillé pour réaliser votre compression en x264. L’encodage vidéo est un domaine bien compliqué, mais vous verrez, tellement passionnant…  Bon film !

Nicolas.

____________________________________________________________________

256 commentaires

  1. avatar
    jmlfocal /

    C’est quoi un pchc?
    Edit: oup’s un pc home cinéma?!!!

  2. avatar
    sierramike /

    @tit64 – Oups j’avais pas vu ta réponse. Utilise Handbrake en appliquant les réglages issus de ce tuto et tu auras un résultat impeccable, sans décalage de son ni rien. Ca fait un peu plus d’un mois que j’applique ça à mes compressions et c’est nickel.
    Bonne idée pour le PCHC, d’ailleurs vu ce que tu veux faire je ne saurais que te conseiller de chercher sur google « Config KAZ », il a un site et des topics dédiés sur le forum de homecinema-fr ;-)

  3. avatar
    sierramike /

    @jmlfocal – Absolument !

  4. avatar
    tit64 /

    Salut,
    Merçi à vous deux pour les infos,je commençais à desesperer,j’ai trouvé deux tutos pas mal sur Avidemux et Handbrake sur le site Framasoft.net .
    Je vais tester HDconverttox aussi et vous donner mon avis de débutant.
    A+
    tit64

  5. avatar
    jmlfocal /

    @tit64

    Salut, si tu veux de l’aide pour HDconverttox fait le moi savoir.
    Car il est en anglais.

  6. avatar
    denrenso /

    Bonjour et bravo pour ce tuto qui m’as permis d’y voir plus un peu clair dans tous ces termes, toutes ces valeurs et toutes ces possibilités.

    Toutefois, si j’écris ici, c’est parce que j’ai un problème que je n’arrive pas à résoudre malgré les nombreuses recherches et tentatives que j’ai faites ces 2 derniers jours.

    dans la vidéo que j’obtiens après traitement, j’ai lors de certains mouvements (les « travelings de caméra », bien qu’il s’agisse d’un manga) des vibrations/saccades/tremblements (je ne sais pas vraiment comment appeler ça) de l’image à peu près toutes les secondes. Le reste du temps, aucun soucis, la qualité reste bonne.

    quelqu’un aurait-il une quelconque aide à m’apporter?

    pour info c’est la « dragon ball Z box 1″ que je suis entrain de transformer

  7. avatar
    Pascal /

    Peut-tu mettre ta ligne de commande sous Hanbrake merci
    @jmlfocal -

  8. avatar
    jmlfocal /

    @Pascal
    Désolé, je ne vois pas de quoi tu parles?!!!

  9. avatar
    coyotapoil /

    bonjour,
    J’ai encodé un film VC-1 en H264 avec tous les paramètres identiques et le résultat est ok sur la qualité d’image par contre le film passe en saccade image après image.
    Si vous avez une idée de la cause du pb, merci
    cdlt,

  10. avatar
    Khyra /

    Bonjour.
    D’abord je tiens à féliciter l’auteur de ce tuto car vraiment bien expliqué et très pratique.Sinon j’aurais voulu savoir quels filtres utilsés avec avidemux pour diminuer le grain (bruit) sur certains BR.Car j’ai remarqué qu’il y avait beacoup de grain sur les BR mais sur certains c’est vraiment trop et j’en suis pas trop fan ;)

    Merci d’avance et bonne journée

  11. avatar
    Rookie /

    Bonjour

    Merci pour ce tuto,

    Mon problème, c’est qu’avec les mkv sur ma tv le son des bruitage est trop fort par rapport au voix des personnage, on m’a dit de changer les canaux 5.1 en 2.1,

    dans filtre audio, j’ai Dolby Pro Logic II mais je trouve pas d’option pour mettre en 2.0

    Pouvez m’aider ?

    Merci

  12. avatar

    @Rookie – Bonjour,

    Tu lis les MKV avec quoi sur la TV ?

  13. avatar

    @Khyra – Bonjour,
    en général on utilise plutôt le filtre du lecteur pour réduire le bruit vidéo, avec le MPC HC c’est simple, mais avec un lecteur physique il faut qu’il dispose d’un bon réducteur de bruit.

  14. avatar

    salut

    merci beaucoup pour ce tuto! tres utile.
    j’ai fais qq essais avec avidemux, je suis plutot content.
    quoi que pour obtenir du tiny, c’est pas evident.
    peut etre pourrais-tu donner qq commentaires sur les « average bitrate » qui vont bien :)..

  15. avatar
    evan78 /

    Bonjour,
    j’ai intasllé avidmux 2.6.8 et lorsque j’ouvre un fichier m2v crée par DVD Decrypter, j’ai ce message:

    « cannot find a demuxer for filename.m2v »
    « could not open the file

    Vous avez une idée comment resoudre cela?
    Merci d’avance

  16. avatar

    Merci pour ce tuto vraiment très utile.

    Par contre, il y a une erreur pour le « Minimum GOP Size », 25i/s, c’est du PAL, et le 30, c’est pour le NTSC.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: