Aide - Recherche - Membres - Calendrier
Version complète : Anti-aliasing - Script d'importation AviSynth
Forum Ripp-it After Me > Les ressources > Filtres avisynth....
shudji
Anti-aliasing - Script d'importation AviSynth


===> Le script " Antialiasing " :
function antialiasing( clip orig, int "th_luma", int "th_croma", string "type", int "order", int "aath", bool "HQedge")
{

# "th_luma" et "th_croma" affecte directement the edge detection: plus grandes valeurs = plus de edges filtrés
# mettre "order = 0" pour Top Field First; order = 1 --> Bottom Field First. cette information est disonible lors de la création de votre fichier.d2v
# aath = la puissance de l'anti-aliasing (la valeur par default sera certainement bonne, cependant tout depends une fois encore de votre source video ainsi que de vos previews)

#Valeurs par default soit Antialiasing() est egale à Antialiasing(20, 20, sobel, 1, 48, false)
th_luma = Default(th_luma, 20)
th_croma = Default(th_croma, 20)
type = Default(type, "sobel")
order = Default(order, 1)
aath = Default(aath, 48)
HQedge = Default(HQedge, false)
ox = orig.width
oy = orig.height
dx = orig.width * 2
dy = orig.height * 2

orig.convertToYV12()
a=last
b=lanczos4Resize(dx, dy).TurnLeft().SangNom(order,aath).TurnRight().SangNom(order,aath)

# native chroma edges:
#c=b.lanczosresize(ox,oy).EdgeMask(0, th_luma, 0, th_croma, type,Y=3,U=3,V=3)

# use luma edges for chroma:
c=b.lanczosresize(ox,oy).EdgeMask(0, th_luma, 0, th_croma, type,Y=3,U=1,V=1).FitY2UV()

d= logic( b.DEdgeMask(0,255,0,255,"5 10 5 0 0 0 -5 -10 -5", divisor=4,Y=3,U=1,V=1)
\ ,b.DEdgeMask(0,255,0,255,"5 0 -5 10 0 -10 5 0 -5", divisor=4,Y=3,U=1,V=1)
\ ,"max").greyscale.levels(0,0.8,128,0,255,false).FitY2UV().lanczosresize(ox,oy)
b=b.lanczosresize(ox,oy)

HQedge ? MaskedMerge(a,b,d,Y=3,U=3,V=3) : MaskedMerge(a,b,c,Y=3,U=3,V=3)
}



===> Fonctions:
Script d'importation qui applique un fort AAFiltre* (~anti-aliasing filtre), provenant du Filtre Avs "SangNom.dll" <==[Lien vers son post], juste la ou c'est necessaire sans produire les artefacts typiques de ce filtre.

===> Requiert:
Plugins:
MaskTools v2.xx
SangNom
et biensur l'importation du script AA Anti-aliasing


===> Examples:
Voici une rapide comparaison des differentes méthodes en images:


Example pour votre ligne de commande:
#parametres par default
Antialiasing() #tres bon resultat, peu varié suivant la video source
#ou encore
Antialiasing(th_luma=¤¤, th_croma=¤¤, type=Sobel, order¤¤, aath¤¤, HQedge=True)
# Les valeurs indiquaient par "¤¤" sont des information qui ne sont pas encore disponible, cela implique donc d'y mettre une valeurs le plus souvent comprise en 1 et 100, ou encore 1 et 250 suivant le filtre impliqué. A vous pour le moment de faire votre choix selon vos previews.
#HQedge=True est une commande qui devrait donner de bon resultat, a tester selon la source video.


Je vous invites a partager vos impressions, informations, conclusions, bref tout ces trucs en ions qui pourrais s'averer interessant pour les autres et l'utilisation de nos chers amis francophones qui visiteront ce Topic.

Updated: 07/07/07 - Correction faute de frappes.
Updated: 16/07/07 - Correction faute de frappes et explications inclu dans le script d'Antialiasing.
leon1789
J'imagine que le double.limitedsharpen() coûte un temps monstrueux ... non ?
micjul
A n'en pas douter Léon yahoo.gif ..

bravo shudji ..
YannBresil
épinglé
shudji
oui tres certainement pas loin de 8 heures pour la deuxieme passe.
je pense que la commande doit ressembler a ca:
ConvertToYV12(true) #presque obligatoire pour limitedsharpen
antialiasing()
LimitedSharpen(ss_x=1.5,ss_y=1.5,Smode=3,strength=40,overshoot=3,exborder=1)
LanczosResize(704,528) #ou autre, a vous de faire votre choix, enfin ya pas photo lanczos reste le meilleur.
LimitedSharpen(ss_x=1.5,ss_y=1.5,Smode=3,strength=40,overshoot=3,exborder=1)
#avec quelques parametres differents suivant que ce soit le premier ou le second limitedsharpen.


ou encore en indiquant le sens du premier puis du deuxieme:
ConvertToYV12(true) #obligatoire pour limitedsharpen
antialiasing()
TurnLeft(LimitedSharpen(ss_x=1.5,ss_y=1.5,Smode=3,strength=40,overshoot=3,exborder=1))
LanczosResize(704,528)
TurnRight(LimitedSharpen(ss_x=1.5,ss_y=1.5,Smode=3,strength=40,overshoot=3,exborder=1)

#Commandes totalement erronées ou peut-etre causés par un "LoadPlugin" manquant, je ne dispose pas plus d'information pour le moment

Mais ca reste à tester pour confirmer, mon englais est loin d'etre parfait.
Les precisions sont disponible ici "Doom9 thread's forum"

et une 3eme commande qui elle est plus que certaine mais applique les valeurs par default, ou bien en utilisant deux fois les memes valeurs pour l'execution du dble.limitedsharpen:
#Voici la commande toute simple
ConvertToYV12(true)
antialiasing()
LanczosResize(704,528)
dbleS
# sont equivalent = dble.
LimitedSharpen(ss_x=2.0,ss_y=1.0,Smode=3,strength=200,Lmode=2,overshoot=1)

#Commandes totalement erronées ou peut-etre causés par un "LoadPlugin" manquant, je ne dispose pas plus d'information pour le moment
Voilà ce que j'ai deduit de la page forum de Doom9, qu'est-ce que vous en pensez?

Update: 16/07/07_ Erreur les lignes de commandes barrées sont inutilisables
C'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez Anti-aliasing - Script d'importation AviSynth.
Invision Power Board © 2001-2008 Invision Power Services, Inc.