Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum DivX Video Ripp-it After Me Ri4m _ Vos contributions (Tutos, aide etc...) _ Eliminer les macroblocs

Écrit par : leon1789 24/06/2007 19:23

Mettons nous en situation (comme diraient certains humouristes...) : vous avez effectué un encodage divx, mais malheureusement des macroblocs gênants apparaîssent lors de la lecture de la vidéo encodée. Que faire ?
(juste une vérification : êtes-vous certains qu'il ne s'agit pas d'un problème d'entrelacement ? cela se résout autrement.)

1- Si les passages avec macroblocs sont très nombreux

Il est vraisemblable que vous avez encodé votre vidéo avec un (trop) bas débit vidéo. En haut débit les macroblocs sont assez rares, le mieux est sûrement que vous augmentiez fortement le débit vidéo : par exemple, passer de la capacité d'un CD à celle de deux CD... Cela va vous coûter du temps (un réencodage complet) mais vous gagnerez incontestablement en qualité !


...une autre stratégie (pas extraordinaire) consiste à réduire la résolution pour diminuer les macroblocs. Mais voilà :
-- il faut choisir un bon algorithme de réduction sinon le résultat sera mauvais à tout point de vue ;
-- diminuer un petit peu la résolution ne fera que diminuer un petit peu les macroblocs et ils seront toujours présents ;
-- diminuer fortement la résolution fera diminuer fortement les macroblocs, mais il apparaîtra alors un flou prononcé sur l'ensemble de la vidéo...
Conclusion : retour à la première solution !


2- Si les macroblocs apparaissent sur une séquence

Visiblement, pour le codec, cette séquence est difficile à encoder avec le débit vidéo global que vous lui imposer. Il va falloir aider le codec pour faire disparaître quasiment totalement les macroblocs de la séquence.

Je vous propose une solution un peu laborieuse la première fois, mais qui devient simple avec un peu d'habitude : il s'agit d'augmenter localement la qualité en indiquant au codec l'endroit où on veut réduire la quantification (quantizer plus petit = qualité plus élevée).

Note : cette méthode permet aussi de spécifier au codec d'encoder plus grossièrement certaines parties du film, par exemple les génériques si on veut.

Un autre gros intérêt de cette méthode est de ne pas modifier le débit vidéo moyen de la vidéo encodée : elle est donc très appréciable lorsque la taille de la vidéo est imposée. (Il va de soi que l'encodage se fait alors en plusieurs passes.)

Un troisième gros avantage est qu'il ne sera pas nécessaire de recommencer l'ensemble de la procédure d'encodage (pour laquelle au moins deux passes ont été nécessaires), mais seulement de réaliser une n-ième passe (à la suite des passes déjà réalisées) : cela permet de perdre un peu moins de temps par rapport à un réencodage complet ! C'est toujours ça de pas perdu...

Voici un exemple. Après un encodage bipasse, on arrive sur un passage délicat, fumées et dégradés de couleurs :

Pas vraiment belle l'image ! En fait, toute la séquence dont elle est tirée est moche, malgré deux passes d'encodage. On va donc faire en sorte que le codec mette le "paquet" sur la scène pour faire disparaître tous ces macroblocs.

L'utilitaire EKG livré avec le codec divx est là pour ça ! A la fin des deux passes, quand on constaste la mauvaise qualité d'un passage, on lance EKG : on clique sur Ouvrir de l'onglet Fichier. EKG demande un fichier journal divx : en clair il demande le fichier map.log créé lors de la compilation (regarder dans le répertoire de compilation du codec). Après lui avoir donné le fichier en question, EKG demande la vidéo divx que vous voulez améliorer.
(Si le fichier map.log ne correspond pas au fichier divx, EKG va pas être content et le signifier par un laconique << ?? >>)

Cliquer sur le bouton Permuter pour que l'image de retour prenne moins de place, et que cela rende plus lisible le reste. Ensuite, à l'aide du curseur et grâce au retour image, on repére le début et la fin de la séquence à améliorer et enfin on demande d'augmenter la qualité sur le passage en question en déplaçant la ligne orange vers la haut (vous avez compris que la déplacer vers le bas permet de diminuer la qualité d'encodage, pour les génériques par exemple...).

Sur l'exemple, j'ai demandé une augmentation de qualité entre les images 2400 et 2700, contenant évidemment l'image 2626 ci-dessus (les numéros d'images sont indiqués juste sous le graphe).

Si vous avez plusieurs séquences à améliorer, vous répétez les mêmes manip : ça va vite quand on a la souris "bien en main"...
Ensuite on enregistre les changements via Fichier/enregister (EKG va mettre à jour tout seul le fichier map.log) et on quitte EKG.

Enfin, dernière étape, on demande au logiciel d'encodage de faire une n-ième passe, en gardant bien sûr tous vos paramètres d'encodage (inutile de changer la résolution par exemple).

Constatons le résultat sur l'image 2626 (la comparaison est vite faite !) :


Pour mémoire, l'image originale :


Alors bien sûr, on peut se demander si l'augmentation de qualité sur cette séquence n'a pas un effet négatif sur le reste de la vidéo. La réponse va dans le bon sens, parce que la scène "boostée" n'est pas très longue, la perte de qualité est minime sur le reste de la vidéo. On pourrait même dire que le fait de faire une n-ième passe permet de maintenir la qualité sur l'ensemble de la vidéo...

Sur mon exemple, avec un test SSIM :

La ligne rouge correspond au niveau de qualité de l'encodage après les deux premières passes, et la ligne bleue à celui de l'encodage après la modification par EKG et une troisième passe finale.
On voit bien que :
-- sur l'ensemble de la vidéo, l'encodage modulé (la ligne bleue) est bien au niveau de l'encodage initial (la ligne rouge),
-- sur la scène images 2400-2700 (la région verte), l'encodage modulé est bien supérieur à l'encodage initiale : c'est normal, on a tout fait pour mrgreen2.gif

Écrit par : micjul 24/06/2007 19:27

Trés bien ton explication leon1789 , même moi j'ai compris, c'est pour dire yahoo.gif

En tout cas merci de t'impliquer ainsi pour le forum, c'est trés sympa !!! cling.gif

Écrit par : leon1789 24/06/2007 20:00

De rien : ça me fait plaisir de participer à un forum aussi vivant !

Écrit par : micjul 24/06/2007 20:08

Tant qu'il y aura des personnes comme toi pour y mettre de l'animation, je ne me fais pas de bile an_coucou.gif

Écrit par : sykes2477 24/06/2007 22:34

Oui c'est vrai!! aga.gif
C'est sympa Leon!!! cling1.gif
(oui mic te l'a déja dit, et je te l'ai déja dit sur un autre poste, mais bon!!!) gniark.gif

Écrit par : bd9 25/06/2007 00:17

(micjul @ dimanche 24 juin 2007 à 21:08) *
Tant qu'il y aura des personnes comme toi pour y mettre de l'animation, je ne me fais pas de bile an_coucou.gif

c'est à quel moment qu'on lui dit que de temps en temps faut faire le café? winche_2.gif











mrgreen2.gif

Écrit par : micjul 25/06/2007 05:44

J'espère que cela va venir de lui même yahoo.gif

Écrit par : rol 25/06/2007 18:23

Oui c'est important le café an_coucou.gif

Écrit par : leon1789 25/06/2007 19:21

(rol @ lundi 25 juin 2007 à 19:23) *
Oui c'est important le café an_coucou.gif

Vous voulez vraiment m'empêcher de dormir ? good.gif ..déjà qu'il ne me faut grand chose... an_kes.gif non, interdit pour moi le café bof.gif
...allez, hop, un petit coup de Gewurtz pour oublier ça... Tchin ! glass.gif

Écrit par : rol 25/06/2007 19:26

A la tienne aga.gif

Écrit par : bd9 25/06/2007 19:32

(leon1789 @ lundi 25 juin 2007 à 20:21) *
(rol @ lundi 25 juin 2007 à 19:23) *

Oui c'est important le café an_coucou.gif

Vous voulez vraiment m'empêcher de dormir ? good.gif ..déjà qu'il ne me faut grand chose... an_kes.gif non, interdit pour moi le café bof.gif
...allez, hop, un petit coup de Gewurtz pour oublier ça... Tchin ! glass.gif

euh..léon...on a dit que ce serait bien que tu le fasses de temps en temps, ça ne veux pas dire que tu es obligé d'en boire. yahoo.gif

Écrit par : leon1789 25/06/2007 19:41

(bd9 @ lundi 25 juin 2007 à 20:32) *
euh..léon...on a dit que ce serait bien que tu le fasses de temps en temps, ça ne veux pas dire que tu es obligé d'en boire. yahoo.gif

ha ben si c'est moi qui le fait, c'est clair que je ne le boirai pas ! ...si le coeur vous en dit, si votre estomac est bien accroché, bonne dégustation m'sieurs dames ! mrgreen2.gif (...éviter quand même de tout recracher d'un coup, c'est pas poli !)

Écrit par : rol 25/06/2007 19:52

Forcément, si tu n'utilises pas de filtre, c'est difficilement buvable euh.gif

Écrit par : bd9 25/06/2007 19:54

(...éviter quand même de tout recracher d'un coup, c'est pas poli !)

nan, ça fait mauvais genre, pas d'ça ici!

Écrit par : sykes2477 25/06/2007 20:00

on recrache par saccades???


guix_jesors.png

Écrit par : rol 25/06/2007 20:01

Oula ça part en vrille an_ouarf.gif

Écrit par : sykes2477 25/06/2007 20:13

Blague à part, ce serait bien de le post-it'er ce sujet non??

Écrit par : bd9 25/06/2007 20:22

ben ouais.

Écrit par : shudji 07/07/2007 14:56

sympa ce tuto Leon^^
EKG est-il compatible avec xvid et si oui le fichier map.log sous dvix porte le meme nom sous xvid et il a le meme chemin d'acces?

Écrit par : leon1789 07/07/2007 17:03

(shudji @ samedi 07 juillet 2007 à 15:56) *
sympa ce tuto Leon^^
EKG est-il compatible avec xvid et si oui le fichier map.log sous dvix porte le meme nom sous xvid et il a le meme chemin d'acces?

map.log pour divx <=> NEOCODEC.LOG pour XVID
(tous les deux dans les répertoires de calculs)

Avec xvid, le fichier NEOCODEC.LOG est créé lors de la première passe, mais je n'ai pas l'impression qu'il soit mis à jour après le seconde...

EKG est livré avec le codec divx, et il n'a pas l'air compatible avec xvid...

Écrit par : shudji 07/07/2007 20:27

ok tanpis snif, ct bien pratique tout de meme pour cibler soit-meme.
c'est toujours bon a savoir^^

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)