# AviSynth

AviSynth est un frameserver (serveur de frames) pour Windows développé par Ben Rudiak-Gould (Avisynth 1.0), puis amélioré par Edwin van Eggelen, Klaus Post et Richard Berg (Avisynth 2.*), entre autres. C'est un logiciel libre gratuit distribué selon les termes de la licence GNU GPL v2.

## Un frameserver

AviSynth est un éditeur vidéo non linéaire entièrement contrôlé par des scripts (il ne possède pas d'interface graphique). Il agit comme un intermédiaire entre une source vidéo, comme un fichier .avi ou .mpg, et une application VFW (Video For Windows), comme un lecteur multimédia ou un encodeur.
AviSynth peut communiquer avec n'importe quel programme qui supporte les .avi par le système VFW en lui transmettant un faux fichier avi. En effet le frameserving est un processus par lequel vous transférez directement les signaux vidéo d'un programme vers un autre, ainsi aucun fichier intermédiaire ou temporaire n'est créé.
Quelques exemples :

## Les fonctions d'AviSynth

AviSynth peut appliquer une grande variété de fonctions de traitement et d'édition — via des filtres — sur un flux vidéo, avant de retransmettre les résultats (vers une application tierce tel un lecteur multimédia ou un encodeur) comme s'il s'agissait réellement d'une source .avi. Ces filtres permettent d'exécuter des fonctions comme le trim, le crop, le désentrelacement, le téléciné inverse, des corrections de couleur, des redimensionnements, du denoising (débruitage)…
Pour utiliser ces filtres, on doit passer par des scripts (simple fichier texte portant l'extension .avs) écrits en langage AviSynth. Si certains filtres sont directement inclus dans AviSynth, pour étendre les capacités de ce programme on pourra y ajouter des plugins (fichier .dll). Une liste non exhaustive de ces plugins est disponible sur Avisynth.org (AviSynth Filter Collection). Aviyansh peut fonctionner dans de nombreux espaces couleurs incluant RVB, YUY2 et YU12 (ce qui est nécessaire pour assurer une compatibilité avec tout type d'entrée ou sortie vidéo). Cependant certains filtres ne fonctionnent que dans un espace couleur donné, ce qui implique une conversion de l'espace couleur.

## Exemple de script

Par exemple, prenons le script script.avs. Il s'agit d'un fichier texte portant l'extension .avs :
Ce script peut être ouvert par la majorité des lecteurs multimédia (comme Windows Media Player).
Ce lecteur multimédia jouera la vidéo source.avi recadrée à 320x240 (fonction Crop). AviSynth, par l'intermédiaire de la fonction Blur, appliquera également un très léger flou.
À noter que les opérations de traitement appliquées par les filtres s'exécutent de manière séquentielle (ainsi dans notre exemple, la fonction Crop interviendra avant la fonction Blur).

## Exemples de traitements par AviSynth

Le premier exemple est celui d'une source vidéo ancienne (The bond / Charlie Chaplin in a liberty loan appeal sorti en 1918). On peut remarquer que la couleur de cet extrait est dénaturée (teinte verdâtre). Quelques « macroblocks » légers sont également perceptibles autour des personnages.
Dans cet exemple, ont été appliqués à la source, un traitement Spatio-Temporel (convolution3D), un Sharp (msharpen) et une reconversion de l'espace couleur en noir et blanc (Greyscale).
Cette seconde image nous permet de mieux visualiser les changements effectués par AviSynth. Il s'agit d'une fusion par différence de l'image source et de l'image de sortie. Les zones les plus sombres sont identiques sur les deux images tandis que les zones plus claires indiquent une différence entre-elles.