LimitedSharpen - Script d'importation AviSynth - Forum Divx Vidéo
Forum DivX de Ri4m - Encoder et réencoder les videos - DivX - XviD - RV10 - RV9 - VP6 - VP7
2 Pages V  1 2 >  
Reply to this topic Start new topic
shudji
samedi 14 juillet 2007 à 16:20
Message #1


Figurant
Icône du groupe

Groupe : Membres
Messages : 61
Inscrit : 05/06/2007

Ses messages

LimitedSharpen - Script d'importation AviSynth

===> Le script "LimitedSharpen"
# LimitedSharpen()
#
# A multi-purpose sharpener by Didée
#

function LimitedSharpen( clip clp,
\ float "ss_x", float "ss_y",
\ int "dest_x", int "dest_y",
\ int "Smode" , int "strength", int "radius",
\ int "Lmode", bool "wide", int "overshoot",
\ bool "soft", int "edgemode", bool "special",
\ int "exborder" )
{
ox = clp.width
oy = clp.height
ss_x = default( ss_x, 1.5 )
ss_y = default( ss_y, 1.5 )
dest_x = default( dest_x, ox )
dest_y = default( dest_y, oy )
Smode = default( Smode, 3 )
strength = Smode==1
\ ? default( strength, 160 )
\ : default( strength, 100 )
strength = Smode==2&&strength>100 ? 100 : strength
radius = default( radius, 2 )
Lmode = default( Lmode, 1 )
wide = default( wide, false )
overshoot= default( overshoot, 1)
overshoot= overshoot<0 ? 0 : overshoot
soft = default( soft, false )
edgemode = default( edgemode, 0 )
special = default( special, false )
exborder = default( exborder, 0)
#radius = round( radius*(ss_x ss_y)/2) # If it's you, Mug Funky - feel free to activate it again
xxs=round(ox*ss_x/8)*8
yys=round(oy*ss_y/8)*8
smx=exborder==0?dest_x:round(dest_x/Exborder/4)*4
smy=exborder==0?dest_y:round(dest_y/Exborder/4)*4

clp.isYV12() ? clp : clp.converttoyv12()

ss_x != 1.0 || ss_y != 1.0 ? last.lanczosresize(xxs,yys) : last
tmp = last

edge = logic( tmp.DEdgeMask(0,255,0,255,"5 10 5 0 0 0 -5 -10 -5", divisor=2)
\ ,tmp.DEdgeMask(0,255,0,255,"5 0 -5 10 0 -10 5 0 -5", divisor=2)
\ ,"max").levels(0,0.86,128,0,255,false)

bright_limit = (soft == true) ? tmp.blur(1.0) : tmp
dark_limit1 = bright_limit.inpand()
bright_limit1 = bright_limit.expand()
dark_limit = (wide==false) ? dark_limit1 : dark_limit1 .inflate.deflate.inpand()
bright_limit = (wide==false) ? bright_limit1 : bright_limit1.deflate.inflate.expand()
minmaxavg = special==false
\ ? yv12lutxy(dark_limit1,bright_limit1,yexpr="x y 2 /")
\ : maskedmerge(dark_limit,bright_limit,tmp,Y=3,U=-128,V=-128)

Str=string(float(strength)/100.0)
normsharp = Smode==1 ? unsharpmask(strength,radius,0)
\ : Smode==2 ? sharpen(float(strength)/100.0)
\ : yv12lutxy(tmp,minmaxavg,yexpr="x x y - " Str " * ")

OS = string(overshoot)
Lmode == 1 ? yv12lutxy( bright_limit, normsharp, yexpr="y x " OS " < y x " OS " ?")
\ : yv12lutxy( bright_limit, normsharp, yexpr="y x " OS " < y x y x - " OS " - 1 2 / ^ " OS " ?")
Lmode == 1 ? yv12lutxy( dark_limit, last, yexpr="y x " OS " - > y x " OS " - ?")
\ : yv12lutxy( dark_limit, last, yexpr="y x " OS " - > y x x y - " OS " - 1 2 / ^ - " OS " - ?")

edgemode==0 ? NOP
\ : edgemode==1 ? MaskedMerge(tmp,last,edge.inflate.inflate.blur(1.0),Y=3,U=1,V=1)
\ : MaskedMerge(last,tmp,edge.inflate.inflate.blur(1.0),Y=3,U=1,V=1)

(ss_x != 1.0 || ss_y != 1.0)
\ || (dest_x != ox || dest_y != oy) ? lanczosresize(dest_x,dest_y) : last

ex=blankclip(last,width=smx,height=smy,color=$FFFFFF).addborders(2,2,2,2).coloryuv(levels="TV->PC")
\.blur(1.3).inpand().blur(1.3).bicubicresize(dest_x,dest_y,1.0,.0)
tmp=clp.lanczosresize(dest_x,dest_y)

clp.isYV12() ? ( exborder==0 ? tmp.mergeluma(last)
\ : maskedmerge(tmp,last,ex,Y=3,U=1,V=1) )
\ : ( exborder==0 ? tmp.mergeluma(last.converttoyuy2())
\ : tmp.mergeluma( maskedmerge(tmp.converttoyv12(),last,ex,Y=3,U=1,V=1)
\ .converttoyuy2()) )

return last
}


===>Requiert
Une source video en YV12 soit la commande ConvertToYV12(true) doit etre appliquée avant si votre source video est en RGB
RemoveGrain v0.9 ou plus
Warpsharp packages
MaskTools
MT plugin
Et copier/ecraser ce Avisynth.dll dans votre repertoire C:\Windows\system32\ Tres Important

===>Examples
Normal

limitedsharpen denoiser3d


===>Exemples de ligne de commande
LimitedSharpen(ss_x=1.0, ss_y=1.0, Smode=3, strength=40)
#ou encore
LimitedSharpen(ss_x=1.0, ss_y=1.0, Smode=3, strength=40, overshoot=7, undershoot=3)


D'autres informations plus precises sont disponibles ici

Ce message a été modifié par shudji - samedi 14 juillet 2007 à 18:07.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
samedi 14 juillet 2007 à 16:31
Message #2


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

C'est marrant, aujourd'hui même je regardais de la doc sur ce même "filtre" !!! aga.gif

As-tu un avis sur le meilleur "sharper" (traduction en français svp ! wink.gif ) entre MSharpen et LimitedSharpen ?

Ce message a été modifié par leon1789 - samedi 14 juillet 2007 à 16:34.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
shudji
samedi 14 juillet 2007 à 18:06
Message #3


Figurant
Icône du groupe

Groupe : Membres
Messages : 61
Inscrit : 05/06/2007

Ses messages

LimitedSharpen utilise plusieurs plugins donc ne peut etre comparé avec MSharpen.

Ceci dit Limitedsharpen est tres performant accompagné d'un ou deux autres plugin suivant l'effet souhaité.
Personnellement je conseille de toujours lui joindre Colormatrix

Sinon pour MSharpen, j'ai toujours preferé Xsharpen mais une fois encore tout depends des autres plugins.
Montre-moi ton script, je pourrais peux etre t'en dire plus.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
samedi 14 juillet 2007 à 18:39
Message #4


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

Je ne sais pas si ma réponse à la place dans ton topic...

(shudji @ samedi 14 juillet 2007 à 19:06) *

LimitedSharpen utilise plusieurs plugins donc ne peut etre comparé avec MSharpen.

Ils ne sont peut-être pas du même type, mais ils visent quand même le sharpen (même si LimitedSharpen peut faire du redimensionnement en même temps).

(shudji @ samedi 14 juillet 2007 à 19:06) *

Ceci dit Limitedsharpen est tres performant accompagné d'un ou deux autres plugin suivant l'effet souhaité.
Personnellement je conseille de toujours lui joindre Colormatrix

pour des animations, ok, mais pour des films ?
En plus, je crois que je ne peux pas l'utiliser avec MPEG2Dec3.dll ....

(shudji @ samedi 14 juillet 2007 à 19:06) *

Sinon pour MSharpen, j'ai toujours preferé Xsharpen mais une fois encore tout depends des autres plugins.

Je pensais que Xsharpen faisait plein d'escaliers !? MSharpen en fait aussi je trouve...

(shudji @ samedi 14 juillet 2007 à 19:06) *

Montre-moi ton script, je pourrais peux etre t'en dire plus.


Ah ben, si tu veux ! C'est au niveau de la Netteté et du lissage que je me tate : MSharpen puis FluxSmooth... Est-ce que tout cela vaut le coup ???


#########################
# **** UTILISATEUR **** #
#########################

# SOURCE  <============
Source = "C:\riam\proj\VTS_01_1.d2v"
Source = "C:\riam\sw\VTS_01_1.d2v"
#Source = "C:\riam\sw3\VTS_01_1.d2v"
#Source = "C:\riam\vis\VTS_01_1.d2v"

# RESIZE  <============
# 0 pour largeur d'image origine
Largeur = 720

# ENCODAGE à ?? %  <------------
# 100 pour la video entière
Pourcent = 5

# FORMAT DVD  <------------
Format = 16/9.0  # ou bien 4/3.0  (plus rare)


##################################################
# **** Ripp-it , VirtualDub , AVIsynth 2.5x **** #
##################################################


# SOURCE  
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\MPEG2Dec3.dll")
Source = MPEG2Source(Source)


# EXTRACTION (cf. test de compressibilité)
Bande = 150   # 150 ou davantage pour éviter un nombre anormal d'images clés
NBImages = Framecount(Source)
Intervalle = Bande*100.0/Pourcent
Intervalle = Intervalle*30 > NBImages ? NBImages/30.0 : Intervalle
Intervalle = NBImages / Floor(NBImages/Intervalle)
Bande = Round(Intervalle*Pourcent/100.0)
Source = SelectRangeEvery(Source, Intervalle, Bande, (Intervalle-Bande)/2)


# AUTO-ROGNAGE
Video = AutoCrop(Source,0)


# REDUCTION DU BRUIT
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\unDot.dll")
Video = unDot(Video)


# REDIMENSIONNEMENT avec conservation de l'aspect de l'image
WV = Width(Video)
HV = Height(Video)
Largeur = Largeur == 0 ? WV : Largeur
Largeur = Largeur/4 *4
RatioY = Width(Source)/Format/Height(Source)
Hauteur = Round(RatioY*Largeur*HV/WV/2)*2
Video = Hauteur > HV ? BicubicResize(Video,Width(Video),Hauteur,0,0.5) : Video
Video = Largeur > WV ? BicubicResize(Video,Largeur,Height(Video),0,0.5) : Video
Video = Hauteur < HV ? BilinearResize(Video,Width(Video),Hauteur) : Video
Video = Largeur < WV ? BilinearResize(Video,Largeur,Height(Video)) : Video
# Largeur multiple de 4, Hauteur multiple de 2 --> compatibilité DivX 6


Video1 = Video

poids = float(WV)/Largeur + float(Largeur)/WV
poids = float(HV)/Hauteur + float(Hauteur)/HV + poids - 4
poids = 30*poids > 20 ? 20 : round( 30*poids )

# NETTETE
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\MSharpen.dll")
Video = MSharpen(Video,20-poids,55+10*poids)

# LISSEUR
LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\FluxSmooth.dll")
Video = FluxSmooth(Video, 5+2*poids, 5+poids)

# TESTS & COMPARAISONS
#Video = SubTract(Video1,Video)
Video = StackVertical(Video1,Video)

Return(Video)


Ce message a été modifié par leon1789 - dimanche 15 juillet 2007 à 00:51.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
YannBresil
samedi 14 juillet 2007 à 18:52
Message #5


RioModo
Icône du groupe

Groupe : Super Modérateurs
Messages : 6.346
Inscrit : 18/10/2003
Lieu : Manaus, au centre de l'Amazonie

Ses messages

épinglé
Utilisateur en ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
samedi 14 juillet 2007 à 18:59
Message #6


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

Je peux pas ajouter d'image !!! ... bof.gif

Ce message a été modifié par leon1789 - samedi 14 juillet 2007 à 19:34.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
sykes2477
samedi 14 juillet 2007 à 20:24
Message #7


Samurai Rédac
Icône du groupe

Groupe : Rédacteurs
Messages : 5.264
Inscrit : 01/10/2006
Lieu : Sud

Ses messages

(leon1789 @ samedi 14 juillet 2007 à 18:59) *

Je peux pas ajouter d'image !!! ... bof.gif

http://forum.ripp-it.com/sujet_t4242.htm
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
shudji
samedi 14 juillet 2007 à 20:49
Message #8


Figurant
Icône du groupe

Groupe : Membres
Messages : 61
Inscrit : 05/06/2007

Ses messages

Je voudrais effectivement bien voir une ou deux screens.
mais sinon d'apres ton script, j'ai impression que tu effectues deux redimenssionnement:
[...]Video = Hauteur > HV ? BicubicResize(Video,Width(Video),Hauteur,0,0.5) : Video
Video = Largeur > WV ? BicubicResize(Video,Largeur,Height(Video),0,0.5) : Video
Video = Hauteur < HV ? BilinearResize(Video,Width(Video),Hauteur) : Video
Video = Largeur < WV ? BilinearResize(Video,Largeur,Height(Video)) : Video[...]


tu devrais laisser qu'une des deux, Bicubicresize me semble un bon choix.

et aussi peux-etre tu devrais essayer de placer le debruitage juste apres le sharpener ou bien juste avant.

Sinon RI4M utilise decomb.dll de base comme source de redimenssionement?

Ce message a été modifié par shudji - samedi 14 juillet 2007 à 20:50.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
samedi 14 juillet 2007 à 21:30
Message #9


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

(shudji @ samedi 14 juillet 2007 à 21:49) *

Je voudrais effectivement bien voir une ou deux screens.

Voilà, par l'intermédiaire de http://imageshack.us/ (merci Sykes) (...c'est aussi du star wars cling1.gif...)


Ci-dessous, cela n'a plus grand chose à voir avec le sujet gloups.gif
(shudji @ samedi 14 juillet 2007 à 21:49) *

mais sinon d'apres ton script, j'ai impression que tu effectues deux redimenssionnement:
[...]
Video = Hauteur > HV ? BicubicResize(Video,Width(Video),Hauteur,0,0.5) : Video
Video = Largeur > WV ? BicubicResize(Video,Largeur,Height(Video),0,0.5) : Video
Video = Hauteur < HV ? BilinearResize(Video,Width(Video),Hauteur) : Video
Video = Largeur < WV ? BilinearResize(Video,Largeur,Height(Video)) : Video
[...]

tu devrais laisser qu'une des deux, Bicubicresize me semble un bon choix.

J'ai lu sur un truc officiel de avisynth que bicubic était meilleur que linear pour augmenter la résolution, et inversement quand il faut la descendre... Alors j'ai suivi... mais bon...

Quant au nombre de redimensionnements, oui j'en fait deux quand la hauteur et la largeur doivent changer. Mais cela revient exactement au même que du classique resize bilinear ou bicubic !

En effet, ces deux fonctions bilinear & bicubic changent la résolution en deux temps : un temps pour la hauteur, et un autre pour la largeur. De plus, si l'une des dimensions ne change pas, alors la fonction ne fait rien sur cette dimension (c'est logique !). Or c'est ce que je demande à chaque fois : ne changer qu'une seule dimension. En résumer, je crois que je demande deux fois de faire "la moitié" d'un redimensionnement, ce qui au final fait la même chose qu'un entier... non ?

Je ne sais pas si je suis limpide dans mes explications.

(shudji @ samedi 14 juillet 2007 à 21:49) *

et aussi peux-etre tu devrais essayer de placer le debruitage juste apres le sharpener ou bien juste avant.

Normalement, FluxSmooth débruite. J'ai mis "Lissage" dans mon script à cause de "smooth", mais c'est un peu faux...

Oui, j'ai essayé de mettre FluxSmooth avant ou après : je préfère largement après, car le bruit du MSharpen peut être important.

(shudji @ samedi 14 juillet 2007 à 21:49) *

Sinon RI4M utilise decomb.dll de base comme source de redimenssionement?

Je croyais que c'était linear/bicubic resize !? ou bien je ne comprends pas ta question...

Enfin, je voudrais ajouter que tout mon bazard avec la variable poids dans mon script, c'est pour gérer de manière automatique la netteté lors d'un changement de résolution (hausse ou baisse), comme cela (ici, j'ai redimensionné en 360 au lieu de 720)


Ce message a été modifié par leon1789 - samedi 14 juillet 2007 à 22:06.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
shudji
dimanche 15 juillet 2007 à 10:22
Message #10


Figurant
Icône du groupe

Groupe : Membres
Messages : 61
Inscrit : 05/06/2007

Ses messages

desolé je ne connais pas du tout les script de RI4M, tout ce que je connais viens de ce que j'ai testé.
d'apres ce que j'ai rencontré, l'effet en dents de scie provient du type de redimenssionnement (et/ou desentrelacement) avec un filtre sharpener.
(Il est peut-etre possible d'attenuer cette effet en augmentant la largeur, enfin je pense...)

_Colormatrix m'a permis d'enlever une sorte de voile blanc ceci est certainement causé par le travail des autres filtres. La aussi peux-etre RI4M recupère et utilise ces informations de lui-meme.

Pour tes paramettres de redimenssionnement je n'y connais rien une fois encore an_ouarf.gif ce type de script m'est totalement inconnu.

Donc pour tout dire, SangNom.dll en desentrelacement et hqdn3d.dll pour le denoiser fonctionnent bien ensembles. Enfin moi j'ai trouvé^^
Dis-moi ce que tu en penses euh.gif
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
dimanche 15 juillet 2007 à 11:16
Message #11


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

(shudji @ dimanche 15 juillet 2007 à 11:22) *

d'apres ce que j'ai rencontré, l'effet en dents de scie provient du type de redimenssionnement (et/ou desentrelacement) avec un filtre sharpener.
(Il est peut-etre possible d'attenuer cette effet en augmentant la largeur, enfin je pense...)

Je vais essayé de faire un truc perso dans ce genre là... mais c'est pas gagné ! rolleyes.gif

(shudji @ dimanche 15 juillet 2007 à 11:22) *

Donc pour tout dire, SangNom.dll en desentrelacement et hqdn3d.dll pour le denoiser fonctionnent bien ensembles. Enfin moi j'ai trouvé^^
Dis-moi ce que tu en penses euh.gif

Merci de les avoir mis à disposition !! c'est agréable de ne pas avoir à les chercher aga.gif J'ai testé très (trop) rapidement... Il faudrait que j'y passe du temps.
Le problème, c'est que je n'ai pas de vidéo intrelacée. Sangnom donne un effet assez prononcé d'un genre spécial :



Je n'ai pas encore d'avis sur hqdn3d.

Ce message a été modifié par leon1789 - dimanche 15 juillet 2007 à 11:25.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
shudji
dimanche 15 juillet 2007 à 11:41
Message #12


Figurant
Icône du groupe

Groupe : Membres
Messages : 61
Inscrit : 05/06/2007

Ses messages

Colormatrix("D:\files.d2v, interlaced=true") pourra peux-etre le faire
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
dimanche 15 juillet 2007 à 11:47
Message #13


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

(shudji @ dimanche 15 juillet 2007 à 12:41) *

Colormatrix("D:\files.d2v, interlaced=true") pourra peux-etre le faire

J'ai déjà essayé, mais je crois que je ne peux pas l'utiliser avec MPEG2Dec3.dll .... Je n'ai pas DGDecode. ColorMatrix fonctionne avec DGDecode ? je dis une grosse bêtise ?
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
shudji
dimanche 15 juillet 2007 à 13:22
Message #14


Figurant
Icône du groupe

Groupe : Membres
Messages : 61
Inscrit : 05/06/2007

Ses messages

Oui c'est ca.
Pour DGDecode l'important est d'utiliser la meme version du soft que tu as utilisé pour créer le .d2v que le .dll
Tu peux trouver toutes les versions ici

Sinon j'ai fait quelques tests, j'espere que ca pourra t'aider:


Image Seule.
LoadPlugin("C:\PROGRA~1\GORDIA~1\DGMPGDec\DGDecode.dll")
mpeg2source("C:\Ghost Of Mae Nak\VIDEO_TS\Sample.d2v", idct=0)




SangNom
LoadPlugin("C:\PROGRA~1\GORDIA~1\DGMPGDec\DGDecode.dll")
LoadPlugin("D:\Logiciels\Rip-it After me\Filtres AVS\SangNom.dll")

mpeg2source("C:\Ghost Of Mae Nak\VIDEO_TS\Sample.d2v", idct=0)
SangNom(order=3,aa=15)




SangNom + Hqn3d
LoadPlugin("C:\PROGRA~1\GORDIA~1\DGMPGDec\DGDecode.dll")
LoadPlugin("D:\Logiciels\Rip-it After me\Filtres AVS\SangNom.dll")
LoadPlugin("D:\Logiciels\Rip-it After me\Filtres AVS\hqdn3d\hqdn3d.dll")

mpeg2source("C:\Ghost Of Mae Nak\VIDEO_TS\Sample.d2v", idct=0)
SangNom(order=3,aa=15)
hqdn3d(6)




SangNom + MSharpen
LoadPlugin("C:\PROGRA~1\GORDIA~1\DGMPGDec\DGDecode.dll")
LoadPlugin("D:\Logiciels\Rip-it After me\Filtres AVS\SangNom.dll")
LoadPlugin("D:\Logiciels\Rip-it After me\Filtres AVS\MSharpen.dll")

mpeg2source("C:\Ghost Of Mae Nak\VIDEO_TS\Sample.d2v", idct=0)
SangNom(order=3,aa=15)
MSharpen(15,100,true,false,false)




ColorMatrix, SangNom + hqn3d
LoadPlugin("C:\PROGRA~1\GORDIA~1\DGMPGDec\DGDecode.dll")
Loadplugin("D:\Logiciels\Rip-it After me\Filtres AVS\Colormatrix\Release\ColorMatrix.dll")
LoadPlugin("D:\Logiciels\Rip-it After me\Filtres AVS\SangNom.dll")
LoadPlugin("D:\Logiciels\Rip-it After me\Filtres AVS\hqdn3d\hqdn3d.dll")

mpeg2source("C:\Ghost Of Mae Nak\VIDEO_TS\Sample.d2v", idct=0)
ColorMatrix(mode="Rec.601->Rec.709", interlaced=true)
SangNom(order=3,aa=15)
hqdn3d(6)

Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
dimanche 15 juillet 2007 à 14:50
Message #15


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

En fait, je me suis fait mon "petit lisseur après sharping"... Voilà comment il fonctionne, c'est très basique.

On se donne :
-- une video originale, nommée VideoOrig (c'est orignal comme nom de variable wink.gif )
-- une vidéo (très) sharpée, nommée VideoSharp

L'effet escalier est particulièrement visible dans les zones claires, donc je demande à repérer les lignes en zones claires dans la video sharpée :

En dessous de l'image, vous voyez des lignes brisées (l'effet du sharp) et des points plus ou moins noirs qui désignent les lignes en zones claires. On constate que l'aliasing au bas de la fenêtre est fortement repéré...

Ensuite, il suffit de remplacer (mixer) les parties ainsi répérées de la vidéo sharpée par celles de la vidéo originale.

En résumé, il suffit de placer ces quelques lignes dans le script avs :

# VideoOrig est la vidéo avant le sharping
# VideoSharp est la vidéo après le sharping

LoadPlugin("C:\PROGRA~1\RIPP-I~1\dlls\MaskTools.dll")    # si ce n'est déjà fait avant...
Mask = EdgeMask(Video,0,127,0,0,type="line").undot.expand
Video = MaskedMerge(VideoSharp, VideoOrig, Mask)

# Video est la vidéo sharpée lissée

Le code est assez rapide a l'exécution, et visuellement assez efficace pour moi !

Voici le résultat mrgreen2.gif

en haut video sharpée, et en bas video sharpée lissée.

Ce message a été modifié par leon1789 - mardi 17 juillet 2007 à 20:42.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
dimanche 15 juillet 2007 à 15:01
Message #16


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

Autre exemple :

Ci-dessus, la vidéo sharpée et le repérage des lignes problématiques... on voit bien que la table pose problème...


Ci-dessus, la vidéo originale (sans aucune retouche) et la vidéo sharpée lissée... Y a pas photo comme on dit cling1.gif
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
shudji
dimanche 15 juillet 2007 à 16:56
Message #17


Figurant
Icône du groupe

Groupe : Membres
Messages : 61
Inscrit : 05/06/2007

Ses messages

Bien vu^^ et sacrément bien appliqué
Source: Doom9 forum
Edgemask et maskedmerge, je me souviens l'avoir vu dans le script de limitedsharpen. c'est de la que t'es venu cette idée?

tu vas y ajouter Fluxsmooth ou bien undot?

Ce message a été modifié par shudji - dimanche 15 juillet 2007 à 17:11.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
dimanche 15 juillet 2007 à 17:40
Message #18


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

(shudji @ dimanche 15 juillet 2007 à 17:56) *

Edgemask et maskedmerge, je me souviens l'avoir vu dans le script de limitedsharpen. c'est de la que t'es venu cette idée?

Oui, j'ai vu cette page, cela m'a donné envie d'aller regarder dans les MaskTools. Du coup, j'ai vu comment filtrer la lumière en escalier, et j'ai essayé de mélanger toutes les idées : prendre le meilleur de chaque partie.

(shudji @ dimanche 15 juillet 2007 à 17:56) *

tu vas y ajouter Fluxsmooth ou bien undot?

Ben les deux mon capitaine ! mrgreen2.gif

Undot, c'est un débruiteur spacial qui ne mange pas de pain, rapide, qui ne dégrade rien, mais qui a une efficacité assez limitée... mais il est toujours bon à prendre. Je le place au début du traitement, mais on pourrait le placer plusieurs fois un peu partout !

Quant à FluxSmooth, débuiteur spatio-temporel, je le place en dernier pour essayer de regagner un peu dans le bitrate perdu avec le sharping si je peux dire... J'ai constaté que pour un rétrécissement suivi d'un sharping, il est obligatoire de mettre un debruiteur après le sharping (et non avant).

Ce message a été modifié par leon1789 - dimanche 15 juillet 2007 à 19:38.
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
shudji
dimanche 15 juillet 2007 à 21:34
Message #19


Figurant
Icône du groupe

Groupe : Membres
Messages : 61
Inscrit : 05/06/2007

Ses messages

voici ma nouvelle ligne de commande pour LimitedSharpen:
LimitedSharpen(ss_x=1.5,ss_y=1.5,Smode=3,strength=160, Lmode=2, overshoot=6, edgemode=1, special=true, exborder=1)

Strengh agit sur la puissance de sharpening
Overshout, edgemode et exborder sont, comme tu l'as bien expliqué, ce qui permet une decoupe moins incisive des pixels.
Et ce pourquoi je post, "Special" applique une tres belle effet de contrast. Je ne l'ai pas encore testé mais je suis persuadé que ca devrait avoir un tres bonne effet sur un film. J'aimerais bien que tu me dises ce que tu en penses?
Utilisateur hors ligne Profil Envoyer un message personnel
Aller en haut de la page
+ Citer le message
leon1789
lundi 16 juillet 2007 à 00:24
Message #20


Monteur
Icône du groupe

Groupe : Rédacteurs
Messages : 2.094
Inscrit : 04/05/2007
Lieu : Poitiers

Ses messages

(shudji @ dimanche 15 juillet 2007 à 22:34) *

J'aimerais bien que tu me dises ce que tu en penses?

Le problème est que je n'ai pas encore fait tout ça ...

===>Requiert
Une source video en YV12 soit la commande ConvertToYV12(true) doit etre appliquée avant si votre source video est en RGB
RemoveGrain v0.9 ou plus
Warpsharp packages
MaskTools
MT plugin
Et copier/ecraser ce Avisynth.dll dans votre repertoire C:\Windows\system32\ Tres Important