Aide - Recherche - Membres - Calendrier
Version complète : Correction des contours en escaliers sur un anime
Forum Ripp-it After Me > Les ressources > Filtres avisynth....
Darkshaka
Bonjour à tous,

comme le titre l'indique, j'ai des soucis au niveau des contours d'un anime : city hunter alias nicky larson.

Voici un aperçu...

En haut c'est un encodage de base avec hybridfupp en anime 2 et en bas la même chose avec 1 asharp et awarp léger, juste de quoi faire ressortir les traits.



Voici le script que j'ai utilisé :

#Anime 2 + asharp + awarp
V2=Telecide(V2, reverse=false, swap=false, firstlast=false, post=true, threshold=15, dthreshold=9, blend=true, chroma=false, y0=0, y1=0)
V2=Decimate(V2, cycle=5,mode=0,threshold=0)

V2=Undot(V2)
V2=HybridFupp ( V2, Largeur, Hauteur, preset="anime2")
V2=Crop(V2, crop_g, crop_h, crop_d, crop_b)
V2=ASharp(V2, 1.5, 4, 1.5, True)
V2=AWarpSharp(V2, 8, 1)


Certains me trouveront pointilleux, mais ça se voit vraiment sur la vidéo en mouvement...

Est-ce que vous avez une solution ?

Merci d'avance pour votre aide !

Winche
Tu ne désentrelaces pas ? cling1.gif
Darkshaka
Ben si justement, j'ai coché la case "désentrelacer" sous ripp-it

Ca n'a pas fonctionné ?

Ces filtres ne sont pas des désentrelaceurs ?

V2=Telecide(V2, reverse=false, swap=false, firstlast=false, post=true, threshold=15, dthreshold=9, blend=true, chroma=false, y0=0, y1=0)
V2=Decimate(V2, cycle=5,mode=0,threshold=0)
underground78
Si si, c'est bien ça ... C'est un autre problème, tu as combien de débit ?
Darkshaka
C'est bon, j'ai réussi à corriger un peu le problème en changeant quelques filtres de mon script...

Je suis au boulot donc de mémoire ça doit être quelque chose comme ça :

#Anime 2 + asharp + awarp
V2=Telecide(V2, reverse=false, swap=false, firstlast=false, post=true, threshold=15, dthreshold=9, blend=true, chroma=false, y0=0, y1=0)
V2=Decimate(V2, cycle=5,mode=0,threshold=0)
V2=Sangnom(V2)

V2=Undot(V2)
V2=BilinearResize ( V2, Largeur, Hauteur)
V2=Crop(V2, crop_g, crop_h, crop_d, crop_b)
V2=FrFun(V2, 2, 2, 2)
V2=ASharp(V2, 1.5, 4, 1.5, True)
V2=AWarpSharp(V2, 6, 1)


J'ai rajouté un sangnom, j'ai abandonné hybridfupp pour bilinear, et j'ai opté pour un Frfun pour le denoising... Par contre je ne suis pas sûr de l'ordre exact des filtres que j'ai employé, votre avis ?

Le résultat final est bien meilleur mais malheureusement, un nouveau problème apparait : comme des petits éclats de verre dans certaines parties de l'image, comme des pixels qui se seraient perdus en route...

J'ai pas d'image à dispo pour vous montrer, mais je pense que vous voyez de quoi je parle...

Comment est-ce que je peux nettoyer ces petits "pets" dans l'image ?

PS : attention aux jeux de mots foireux an_lof.gif
Winche
(Darkshaka @ lundi 14 août 2006 à 10:06) *

J'ai pas d'image à dispo pour vous montrer, mais je pense que vous voyez de quoi je parle...


Non euh.gif
underground78
Une image, une image ... yahoo1.gif euh.gif
Bon`Clay-Sama
Pour le problème de l'effet dents de scie sur les contours tu peux essayer fastlinedarken
underground78
Un filtre avisynth je suppose ? on le trouve où et on l'utilise comment ? cling1.gif
stryke
(Darkshaka @ lundi 14 août 2006 à 10:06) *

...

#Anime 2 + asharp + awarp
V2=Telecide(V2, reverse=false, swap=false, firstlast=false, post=true, threshold=15, dthreshold=9, blend=true, chroma=false, y0=0, y1=0)
V2=Decimate(V2, cycle=5,mode=0,threshold=0)
V2=Sangnom(V2)

V2=Undot(V2)
V2=BilinearResize ( V2, Largeur, Hauteur)
V2=Crop(V2, crop_g, crop_h, crop_d, crop_b)
V2=FrFun(V2, 2, 2, 2)
V2=ASharp(V2, 1.5, 4, 1.5, True)
V2=AWarpSharp(V2, 6, 1)

...


1) Mettre le filtre de désentrelacement en premier (sangnom)

2) Telecide + Decimate est ce vraiment nécessaire ?
Bon`Clay-Sama
(underground78 @ vendredi 18 août 2006 à 08:18) *

Un filtre avisynth je suppose ? on le trouve où et on l'utilise comment ? cling1.gif

Code:
######################
# FastLineDarken 1.3 #
######################
#
# Written by Vectrangle, last update 12 Sept 04
#
# * requires masktools 1.5.1 -- http://jourdan.madism.org/~manao/
# * requires yv12 input
#
# Usage is FastLineDarken(strength, luma_cap, threshold, thinning),
# named parameters are supported eg FastLineDarken(thinning=0)
#
# Note that you must import this avs into your script using import("...\FastLineDarken 1.3.avs")
#
# Parameters are:
# strength (integer) - Line darkening amount, 0-256. Default 48. Represents the _maximum_ amount
# that the luma will be reduced by, weaker lines will be reduced by
# proportionately less.
# luma_cap (integer) - value from 0 (black) to 255 (white), used to stop the darkening
# determination from being 'blinded' by bright pixels, and to stop grey
# lines on white backgrounds being darkened. Any pixels brighter than
# luma_cap are treated as only being as bright as luma_cap. Lowering
# luma_cap tends to reduce line darkening. 255 disables capping. Default 191.
# threshold (integer) - any pixels that were going to be darkened by an amount less than
# threshold will not be touched. setting this to 0 will disable it, setting
# it to 4 (default) is recommended, since often a lot of random pixels are
# marked for very slight darkening and a threshold of about 4 should fix
# them. Note if you set threshold too high, some lines will not be darkened
# thinning (integer) - optional line thinning amount, 0-256. Setting this to 0 will disable it,
# which is gives a _big_ speed increase. Note that thinning the lines will
# inherently darken the remaining pixels in each line a little. Default 24.
#
# Changelog:
# 1.3 - added ability to thin lines, now runs much slower unless thinning=0. Changed the defaults (again)
# 1.2 - huge speed increase using yv12lutxy =)
# - weird darkening issues gone (they were caused by yv12layer)
# - show option no longer available due to optimizations. Use subtract() instead
# 1.1 - added luma_cap option
# 1.0 - initial release
#


function FastLineDarken( clip c, int "strength", int "luma_cap", int "threshold", int "thinning") {
str = string(default(strength, 48) /128.)
lum = string(default(luma_cap, 191))
thr = string(default(threshold, 4))
thinning = default(thinning,24)
thn = string(thinning /16.)
exin=c.expand().inpand()
diff = yv12lutxy(c,exin,yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "\
+lum+" < y "+lum+" ? - 0 ? 127 +",uexpr="x",vexpr="x",u=2, v=2)
linemask = yv12lut(diff.inpand(),"x 127 - "+thn+" * 255 +")\
.yv12convolution("1 1 1","1 1 1",y=3,u=0,v=0)
thick = yv12lutxy(c, exin, yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "\
+lum+" < y "+lum+" ? - 0 ? "+str+" * x +",uexpr="x",vexpr="x",u=2, v=2)
thin = yv12lutxy(c.expand(),diff,yexpr="x y 127 - "+str+" 1 + * +",u=2, v=2)
return (thinning == 0) ? thick : maskedmerge(thin,thick,linemask,y=3,u=2,v=2)
}


Darkshaka
(stryke @ dimanche 20 août 2006 à 10:59) *

(Darkshaka @ lundi 14 août 2006 à 10:06) *

...

#Anime 2 + asharp + awarp
V2=Telecide(V2, reverse=false, swap=false, firstlast=false, post=true, threshold=15, dthreshold=9, blend=true, chroma=false, y0=0, y1=0)
V2=Decimate(V2, cycle=5,mode=0,threshold=0)
V2=Sangnom(V2)

V2=Undot(V2)
V2=BilinearResize ( V2, Largeur, Hauteur)
V2=Crop(V2, crop_g, crop_h, crop_d, crop_b)
V2=FrFun(V2, 2, 2, 2)
V2=ASharp(V2, 1.5, 4, 1.5, True)
V2=AWarpSharp(V2, 6, 1)

...


1) Mettre le filtre de désentrelacement en premier (sangnom)

2) Telecide + Decimate est ce vraiment nécessaire ?


Ben en fait je n'ai rien touché, j'ai juste coché l'option "désentrelacer" dans riam...

Je n'y connais vraiment pas grand chose en désentrelacement lol
stryke
L'option "désentrelacer" dans riam ajoute dans le script avs la ligne de filtre "SangNom" (+ la ligne de loadplugin)

Telecide est un filtre de désentrelacement et Decimate est un filtre pour faire du "téléciné" (ou IVTC je ne sais plus), donc est ce vraiment nécessaire ?

Plus d'infos sur Telecide et Decimate : -http://sygma21.free.fr/decomb_part02.html
underground78
Merci pour l'info Bon`Clay-Sama ! cling1.gif
Desty
@ Clay-Sama: Ca ne reglera pas le problème present à mon avis mais c'est un bon script (pour les animes): c'est basé sur masktools (V1) et ça sert a foncé les contours pour les faire ressortir... C'est plus fiable que le fonçage d'hybridfupp qui est simple et efficace mais qui a tendance a généré justement des problème du style pixelisation dans les contours coloré...

Sinon sangnom pour régler des problème de contour dans des animes bof: avec l'anti-aliasing fort ça bruite + que ça débruite, avec l'aa faible ça bruite pas trop mais comme c'est très precis comme désentrelaceur on voit bien les escalier... Perso j'ai déjà vu des entrelacement qui faisait de l'aliasing direct avec l'interpolation de sangnom et pas du tout avec un tdeint en "ela" ou un tfm en PP=7 (des interpolations qui floutent)

Essayer:

MPEG2Source(source,ipp=true,info=3)
orig=last
#colormatrix(hints=true,opt=0)# si colorimétrie variable ça fait pas de mal
TFM(d2v=source,order=1,mode=5,slow=2,PP=1)
tdeint(0,1,-1,type=3,full=false,clip2=orig,opt=3)
Tdecimate(exPP=true)

Need TVITC et TDeint (et de preference les nouvelles versions bcp plus rapide !)
Tdeint fait souvent la différence...

Si vraiment ça persiste, essayer des bourriner avec awarpsharp en cm 0, 1 ou deux c'est du kif
Si possible en le foutant dans hybrid fupp comme sharper ou deringueur ça reduit les effets negatif du awarpsharp...

Et dans le cas d'une utilisation du awarpsharp mettez derriere un truc style:

function RGDering(clip input, int _mode)
{
repmode = 1
average = RemoveGrain(input, mode=_mode)
return Repair(input, average, mode=repmode)
}

rgdering(24)

Need: removegrain 1.0 et repair (vendu ensemble)

Ca va balancer du flou spatial précisément dans les zones bien susceptibles de bruiter a la compression a cause du awarpsharp et ça preserve le reste ^^

Cela dit awarpsharp et asharp c'est un peu dépassé, si vous avez le temps de tester le magnifique limitedsharpen vous serez convaicu !
Il est devenu super rapide dans sa version "faster"... Il est dans le zip de masktools V2...
Il a besoin en plus d'avisynth 256 ou 257, removegrain 1.0 et warpsharppackage.zip
C'est la rolls des filtres de sharp ce truc !
underground78
Intéressant même si je n'encode pas d'animes ... cling1.gif
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 Correction des contours en escaliers sur un anime.
Invision Power Board © 2001-2008 Invision Power Services, Inc.