Avisynth Multithread - quelques benchs de vitesse
Forum DivX de Ri4m - Encoder et réencoder les videos - DivX - XviD - RV10 - RV9 - VP6 - VP7

Bienvenue invité ( Connexion | Inscription )

> 

 
Reply to this topicStart new topic
leon1789
posté 17/08/2010 15:56
Message #1


Monteur
Icône de groupe

Groupe : Rédacteurs
Messages : 2.959
Inscrit : 04/05/2007
Lieu : Poitiers
Membre no 26.133



Bonjour

Quand nos travaillons une vidéo (avec avisynth, il va de soi !)
et stockons le résultat sur disque (avec le codec de notre choix),
il n'est pas rare de devoir attendre plusieurs dizaines de minutes (voire des heures)
que tous les calculs se fassent...

De nos jours, tout le monde possède un ordinateur dont le microprocesseur contient plusieurs coeurs
(tout le monde ou presque... je crains que SG1 utilise encore un pentium III ! (IMG:style_emoticons/default/rolleyes.gif) )
Ces processeurs multi coeurs offrent la possibilité de faire bcp de calculs en parallèle.
Contrairement aux codecs audios, les codecs vidéos que nous avons l'habitude d'utiliser (divx, xvid, x264,...)
ont pris depuis longtemps le virage du multi-threading.

Mais il faut savoir que les versions standard d'Avisynth (comme celle existante dans Ri4m) est mono-thread !
Or il existe des versions modernes multi-thread d'Avisynth (AviSynth MT), et je viens d'en tester une...

Alors j'ai fait quelques tests sur mon PC ( i7 720 QM) avec virtualdub.
La video traitée est créée par avisynth, puis compressée avec un codec
(divx en mode meilleure qualité , xvid en configuration par défaut ou x264 en configuration par défaut)
en mode 1 pass à 800 Kbps.

Pour créer la vidéo avec avisynth, j'ai utilisé ce code :
Code

  a = version.trim(0,100)
  a = a.ShowFrameNumber
  a = a.bicubicResize(480,160)
  b = a.fadeIO(50)
  c = merge(a, a.turn180.reverse)
  a = stackvertical(a.fadeIn0(20),b,c.fadeOut0(20))
  a = a + a.turnLeft + a.turn180 + a.turnright
  a.loop(3)
  SoftSharpen


C'est un source avisynth qui demande pas mal de calcul par la présence de softsharpen (dernière ligne),
si bien que l'exécution du code avisynth est comparable (en temps de calcul) à la
compression de la vidéo réalisée par le codec lui-même.
(attention : les scripts avisynth que ri4m crée par défaut sont très légers en calcul,
sauf si vous utilisez HybridFuPP, ou plusieurs filtres proposés...)

Pour utiliser ce code avec Avisynth MT, il faut juste ajouter simplement en toute première ligne
Code
setMTmode(2,0)


Voici ci-dessous un tableau présentant les résultats que j'ai obtenu :
-- à gauche, je présente le codec de compression et le nombre de CPU (coeurs) réservés
pour exécuter la tâche.
-- en colonne, on voit les temps de calcul pour fabriquer la vidéo (avisynth) et la compresser (codec),
ainsi que le pourcentage d'utilisation du microprocesseur...
La première colonne correspond à l'usage d'Avisynth classique (comme dans Ri4m),
la seconde colonne correspond à l'usage d'Avisynth MT (Multi-Thread).


(IMG:http://img706.imageshack.us/img706/8504/image2sm.png)

Que peut-on conclure ?

--) le pourcentage d'utilisation CPU ne reflète pas forcément la vitesse réelle de traitement (sur mon i7, cela est peut-être dû à l'hyperthreading, une caractéristique du processeur...)

--) vérification : on voit bien que Avisynth classique est mono tâche sur les calculs sans compression : le temps de calcul ne varie pas en fonction du nombre de CPU (disons coeurs) utilisés.

--) quand on a 2 CPU actifs et qu'on utilise xvid ou divx pour compresser, l'avantage d'avisynth MT est quasi nul sur l'avisynth classique !

--) très surprenant : le codec divx n'est pas du tout optimisé pour le calcul avec plus de 2 CPU. Pour obtenir les mêmes temps de calculs que x264 ou xvid, il faut limiter le process divx à 2 CPU ... ne pas lui donner les 4 existants sur ma machine, sinon le travail est ralenti !!!!

--) quel que soit le codec utilisé avec avisynth classique, l'avantage de 4 CPU sur 2 CPU est net mais pas si grand que ça.

--) En revanche, toujours avec 4 CPU, utiliser avisynth MT apporte un gain très important ! (ne pas oublier que le script utilisé est aussi gourmand en calcul que la compression par le codec...)
Le gain d'avisynth MT est tel que, si on utilise les codecs divx ou xvid, on divise par 2 le temps de calcul global quand on passe de 2 CPU à 4 CPU !

Ce message a été modifié par leon1789 - 19/08/2010 09:09.
Aller en haut de la page
 
+Citer le message
SG1
posté 17/08/2010 16:39
Message #2


Producteur
Icône de groupe

Groupe : Rédacteurs
Messages : 6.285
Inscrit : 08/10/2004
Lieu : Un coin perdu du Gers (32)
Membre no 4.657



Bonjour,

Bigre, le Léon, il a pas tout de cassé... Les neurones sont toujours là...

Citation
je crains que SG1 utilise encore à un pentium III !

(IMG:style_emoticons/default/yahoo3.gif) T'es pas tombé très loin... C'est un Céléron 2.2 !

Citation
Alors j'ai fait quelques tests sur mon PC ( i7 760) avec virtualdub.

Ben oui, de suite, là... un I7 !!!
Tu veux pas que je te donne DeepBlue (Encore que même lui, il est dépassé) ?

(IMG:style_emoticons/default/clapclap.gif)

@+
Aller en haut de la page
 
+Citer le message
rol
posté 17/08/2010 17:05
Message #3


Admin
Icône de groupe

Groupe : Admin
Messages : 32.192
Inscrit : 12/05/2003
Lieu : DivX ou XviD
Membre no 2



Waouh Leon, les résultats sont impressionnants (IMG:style_emoticons/default/yahoo1.gif)
Aller en haut de la page
 
+Citer le message
leon1789
posté 17/08/2010 17:29
Message #4


Monteur
Icône de groupe

Groupe : Rédacteurs
Messages : 2.959
Inscrit : 04/05/2007
Lieu : Poitiers
Membre no 26.133



(IMG:style_emoticons/default/yahoo1.gif)
Merci

Autant dire que je ne fais plus que du MT maintenant ! ...surtout quand je veux mettre au point un script avs.

Ce qui me choque le plus, c'est que le divx avec 4 coeurs est plus lent qu'avec 2 coeurs... (et ceci d'autant plus que le script avs est lourd)
Je ne comprends pas... mais c'est pourtant bien ce qu'il se produit sur mon binz !

Ce message a été modifié par leon1789 - 17/08/2010 17:49.
Aller en haut de la page
 
+Citer le message
leon1789
posté 18/08/2010 09:35
Message #5


Monteur
Icône de groupe

Groupe : Rédacteurs
Messages : 2.959
Inscrit : 04/05/2007
Lieu : Poitiers
Membre no 26.133



Petit problème que j'ai oublié de signaler :
sur mon pc (je ne sais pas si c'est général), avisynth MT n'est pas compatible avec un traitement audio...
Je ne l'utilise donc que pour des scripts 100% videos.

Ce message a été modifié par leon1789 - 18/08/2010 09:36.
Aller en haut de la page
 
+Citer le message
leon1789
posté 11/12/2010 15:01
Message #6


Monteur
Icône de groupe

Groupe : Rédacteurs
Messages : 2.959
Inscrit : 04/05/2007
Lieu : Poitiers
Membre no 26.133



Après plusieurs mois d'utilisation, j'ai constaté qu'il y a quelques problèmes de compatibilité avec Avisynth MT
(sur ma machine du moins, et en utilisant VirtualDub) :
problèmes avec les fonctions audios, ainsi que l'incrustation de sous-titres (causant des plantages durant le traitement),
et plus anecdotiquement, avec les options de debanding et deblocking de SoftSharpen (traitement vidéo incorrect) .

Ce message a été modifié par leon1789 - 11/12/2010 15:04.
Aller en haut de la page
 
+Citer le message

Avisynth Multithread


Reply to this topicStart new topic
2 utilisateur(s) sur ce sujet (2 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 

Modes d'affichage: Standard ·


Regrouper

> Discussions similaires à la discussion "Avisynth Multithread"

Sujet Réponses
avisynth et Windows 7 x64 3
Avisynth open failure 16
avisynth open fail 0
avisynth open failure 2
Avisynth 5
Avisynth error 3
Avisynth 0
Avisynth (encore) 15
Avisynth violation access 16
Avisynth open failure: Resize: Source image too small for resize method... 33

> Sujets récents

Sujets
Décalage audio
Assistante informatique
disparus de Mourmelon (site off.)
Protection DRM fichiers Divx de l'INA
Tous les codecs nécessaires pour ripper
Firmwares RFPlayer 1000 Domotique
EXTRAIRE PISTE AUDIO D'UN FICHIER VIDEO .MKV
Convertir WAV en MP3
Film à retrouver
Tuto Convertir un DVD en MP4 - DVD en MP4
Mkvmerge : Comment différencier les pistes audio anglaise / françaises ?
Ripper DVD en 50 FPS (simplement)
L'actu des logiciels pour la vidéo
test2
Why Ripp-it(ing) After Me and why Ripp-it(ing) For Me ? So then what's the third Ripp-it(ing) part ?

RSS Nous sommes le : 28/03/2024 17:39
Ripp-It - Le site - Glossaire Audio Vidéo - Versions Rippit - Présentation - Tutoriaux divx - Télécharger Ripp-It - Ripper DVD
Forum Vidéo DivX - Ripp-It - Plan du site
Forum PSP - Forum iPod - Forum Mobile - Forum cinéma - Ripit4ME - Contact

Foot
Forum Ri4m™ © 2019 Ri4m™ - Enregistré à la CNIL sous le numéro 1081457