module inscription newsletter haut de page forum mobile

Ateliers et Formations

Compression en divx de mauvaise qualité

Discussion in 'Archives moteurs' started by floleriderdu13, Nov 14, 2006.

Tags:
  1. floleriderdu13

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    131
    Appréciations:
    +0 / 0 / -0
    Merci, je vais essayer sa.
     
  2. jabali

    Trophy Points:
    1,880
    Likes Received:
    28
    Messages:
    729
    Appréciations:
    +0 / 0 / -0
    l'utilisation d'avisynth est pas évidente au début et le script est loin d'être facile à mettre en oeuvre.
    c'est pourquoi j'ai réfléchi à une méthode la plus simple possible.

    1- ouverture de la video DV par virtualDub.
    On va se passer (pour une fois :) ) du sempiternel :love: codec Panasonic et utiliser ffdshow qui décode (et encode) également trés bien le DV, et qui va nous aider à désentrelacer.
    ffdshow.

    ffdshow est une compilation de filtres de décodage et d'encodage open source associés à un nbre important de filtres de traitement video qui peuvent être appliqués lors de la lecture.
    Par exemple le désentrelacement.
    avec ffdshow il est possible de lire du DV entrelacé directement sur PC .
    ffdshow le desentrelacera lors du décodage.
    Ici nous allons configurer ffdshow de façon à se qu'il désentrelace le DV lors de l'ouverture dans VirtualDub.


    - configuration de ffdshow
    aprés installation cliquer sur WFV configuration
    puis sur l'onglet Decoder , puis sur codecs dans la fenêtre de gauche
    [​IMG]
    et activer le décodage du DV.

    Toujours dans la fenêtre de gauche, cliquer et activer Deinterlacing
    et configurer comme suit
    [​IMG]
    les plus bidouilleurs verront la quantitée incroyable de filtres qui sont applicables mais on en restera là en ce qui nous concerne.
    ne pas oublier apply avant de quitter

    Il ne reste plus qu'a ouvrir la video avec virtualDub.
    La voilà qui apparait déja désentrelacée. ( et efficacement) :)


    2- filtrage avec virtualDub.
    Le premier filtre qui sera appliqué sera un débruiteur.Il n'existe pas beaucoup de filtres de débruitage pour Vdub.
    MSU denoiser est je pense le plus performant. (je connais assez peu les filtres pour Vdub).
    [​IMG]

    la video source est bruitée.
    on observe facilement ce bruit dans le ciel par exemple.
    tous ces petits points coûtent du bitrate et rendent la tâche de l'encodeur difficile.
    Si on arrive à les éliminer, on pourra encoder à bitrate plus faible sans apparition d'artefacts de compression.
    Mais éliminer le bruit va souvent de pair avec floutage ou perte de nettetée.
    Le filtre MSU denoiser n'échappe hélas pas à la règle.
    (le fitage via avisynth plus complexe est aussi plus performant)
    c'est une histoire de compromis .


    j'ai gardé la configuration par défaut.
    on peut augmenter la compressibilité en selectionnant le mode medium fast motion
    mais cela se fera au dépend de la netteté de l'image.
    il est possible de se faire une idée au moyen de la fenêtre de prévisualisation.

    Enfin pour finir le redimentionnement en 640 x 480
    J'ai garder le filtre resize de Vdub qui possède les algorythmes essentiels (bicubic ou lanczos).
    [​IMG]
    ici un resize bicubic précis.
    A=1.00 est encore plus précis
    Lanczos étant le plus précis.


    Plus le resize est précis, plus la video reste nette malgré le redimentionnement dans une résolution inférieure.
    En revanche la video est un peu moins compressible => plus de chance d'avoir du blocking à bitrate égal.


    Il ne reste plus qu'a encoder.
    le choix du bitrate reste personel et fonction de la taille finale que l'on souhaite, ou de la qualité finale, .
    en cas de diffusion sur internet il vaudra mieux à mon avis baisser encore la résolution à 544x 416 voire moins pour un bitrate au alentours de 1000.
    eh oui cette video est difficile à encoder car trés rapide.

    enfin pour finir:
    l'apparition de blocs lors de l'encodage (liés à un bitrate insufisant) n'est pas une chose catastrophique en divx/xvid car les décodeurs contiennent un système de déblocage qui rattrappe un peu (pas mal) les défauts de compression éventuel.

    bon c'est fini.
     
  3. floleriderdu13

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    131
    Appréciations:
    +0 / 0 / -0
    Merci pour votre aide
     
  4. Taiyo Yunden

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    31
    Appréciations:
    +0 / 0 / -0
    A titre de comparaison, le meme en Mpeg2 2500kb avec un script avs un peu plus simple avec un leger filtrage ( peu etre trop leger meme):

    (tres facile a mettre en oeuvre)

    LoadPlugin("C:\Perso\video\install\AviSynth 2.5\plugins\SangNom.dll")

    Video = avisource("C:\Perso\video\comparatif\terre06.avi",false)
    Video=ConvertToYV12(Video)
    Video =SangNom(video, order=1)
    Video = AssumeFPS(Video, 25.000000)
    video = Convolution3D(video, 1, 6, 10, 6, 8, 2.8, 0)
    #video = ConvertToRGB24(video)
    video = lanczosresize(video,640,480)
    Return (Video)


    MEGAUPLOAD - The leading online storage and file delivery service


    plugin sangnom : http://www.unite-video.com/phpbb/download.php?id=244
    plugin convolution3d : http://avisynth.org/warpenterprises/files/convolution3d_25_dll_20030422.zip
    ou convolution3dyv12 : http://avisynth.org/warpenterprises/files/convolution3dyv12_25_dll_20030329.zip


    [EDIT] je viens de reuploader le fichier, un poil meilleur
     
    #19 Taiyo Yunden, Nov 17, 2006
    Last edited: Nov 17, 2006
  5. floleriderdu13

    Trophy Points:
    1,000
    Likes Received:
    0
    Messages:
    131
    Appréciations:
    +0 / 0 / -0
    J'essaierai tous sa des que j'aurai 5 minutes merci pour votre aide
    ++
     
  6. THEMASTER

    Trophy Points:
    1,970
    Likes Received:
    11
    Messages:
    991
    Appréciations:
    +9 / 18 / -0
    j'avoue ne pas saisir l'utilité de la convertion en RGB

    de meme que le resize en 640x480 ... taille non standard
     
  7. Taiyo Yunden

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    31
    Appréciations:
    +0 / 0 / -0
    le converttorgb c'est uniquement pour pouvoir ouvrir le script dans virtualdub pour voir l'effet des filtres appliques (si desentrelacement ok). dans ce script il est desactive

    Pour la taille, c'est la meme que les encodages en xvid. Je n'ai pas cherche a faire du standard "DVD", uniquement un encodage mpeg2, donc pas de standard a suivre. D'ailleurs si la resolution est lisible sur un lecteur divx en 640x480 elle le sera en mpeg2.

    c'etait juste a titre de comparaison, pour voir les differences entre mpeg2 et xvid sur cette video.

    Mais je dois avouer que j'ai du mal a nettoyer le video correctement. Il faudra que j'essaie le fitre de jabali
     
  8. Taiyo Yunden

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    31
    Appréciations:
    +0 / 0 / -0
    tiens je viens de me rendre compte de 2 trucs : j'ai essaye un resize bicubic, c'est beaucoup mieux. la video semble plus stable, le sharp est trop important avec le lanczos.

    Le 2eme truc pour info l'encodage est a 2400kb, pas 2500kb, faut que je le refasse
     
  9. THEMASTER

    Trophy Points:
    1,970
    Likes Received:
    11
    Messages:
    991
    Appréciations:
    +9 / 18 / -0
  10. Taiyo Yunden

    Trophy Points:
    550
    Likes Received:
    0
    Messages:
    31
    Appréciations:
    +0 / 0 / -0

    c'est normal que cela soit aussi flou ?
    Je pense que cela vient du desentrelacement, il y a encore qqs soucis.ex frame 106, tous les spectateurs sont en double.

    ou alors du resize : 632 x380 peut etre.
    tu pourrais mettre ton script, merci d'avance.

    jabali, tu as une explication du flou ?
     
  11. THEMASTER

    Trophy Points:
    1,970
    Likes Received:
    11
    Messages:
    991
    Appréciations:
    +9 / 18 / -0
    j'ai testé le smart deinterlace en premier lieu mais ça m'a pas donné de bons résultats
    alors jai choisi un simple deinterlace,blending method donc forcément ya du flou mais bon en tout cas jai pas constaté de blocks ou autre,l'ensemble est plutot beau et cohérent
    sur mon écran plat ça passe bien en tt cas

    j'ai mis aussi un 2d cleaner, pametres par défaut, donc ça rajoutte légèrement du flou
     
    #26 THEMASTER, Nov 17, 2006
    Last edited: Nov 17, 2006
  12. THEMASTER

    Trophy Points:
    1,970
    Likes Received:
    11
    Messages:
    991
    Appréciations:
    +9 / 18 / -0
    l'image 106:
    DV:
    [​IMG]

    DIVX:
    [​IMG]
     
  13. jabali

    Trophy Points:
    1,880
    Likes Received:
    28
    Messages:
    729
    Appréciations:
    +0 / 0 / -0
    c'est le désentrelacement de type blend qui produit cet effet.
    il reproduit 2 images à partir des deux champs entrelacés et les superpose.
    Dans les zones en mouvement, ça crée ces effets de doublage.

    Les algos de désentrelacement qui interpolent une seule frame à partir de deux champs.
    (ils superposent ce qui est identique et interpolent les mouvements à partir d'un seul champ) ont un rendu trés proche du rendu 100% progressif du cinéma.
    [​IMG]
    tdeint pour avisynth est à essayer.
    il est trés bon et facile d'emploi.
    tdeint()

    je l'ai pas utilisé car je trouvais qu'il créait un peu d'aliasing sur les contours de la voiture alors j'ai utilisé mvbob.

    enfin le débruitage est important mais crée du flou.
    c''est tout l'interêt des fonctions (complexes) de débruitage comme RemoveNoiseMC qui sont capables de "nettoyer" en gardant un aspect visuel le plus précis possible.
    [​IMG]
    [​IMG]
    tirée de l'encode à 2500 kb/s
     
    #28 jabali, Nov 17, 2006
    Last edited: Nov 18, 2006
Loading...

Dernières occasions

 

Share This Page