Visualizzazione Stampabile
-
Citazione:
Originariamente scritto da Ronzino
SetMTMode(2,4)
ColorMatrix(Mode="Rec.601->Rec.709")
MT("Spline16Resize(1920, last.height)",4)
MT("Spline16Resize(last.width, 1080)", splitvertical=true,4)
MT("LimitedSharpenFaster(ss_x=1.2, ss_y=1.2, Smode=4, strength=50, wide=false, overshoot=10)",4)
ffdshow_setDAR(ffdshow_dar_x,ffdshow_dar_y)
Allora, per puntualizzare meglio. MT e SetMTMode è una cosa che devo rivedere, per di più non ho ancora molta esperienza a riguardo di situazioni multi-thread.
Indubbiamente la chiamata che stai tentando è bella pesantina, 1920 non è uno scherzo nè il ss 1.2. dopo.
La cosa che vorrei mettere in chiaro sono. La sintassi delle chiamata e l'uso di SetMTMode.
Partendo dalla sintassi chiamata di MT devo dire che hai inserito un pò di numeri a caso :D. La chiamata non rispetta l'ordine se vengono specificati i parametri a testo ma li rispetta se non ci sono!
Quindi, avendo per MT una sintassi del genere...
Codice:
MT(clip clip, string filter, int threads, int overlap, bool splitvertical)
... non mi puoi mettere a casaccio i numeri (anche se fa un controllo formale sui tipi). Questa tua stringa è sintatticamente scorretta:
Codice:
MT("Spline16Resize(last.width, 1080)", splitvertical=true,4)
Il modo migliore per non sbagliare, e che io ho dimenticato di segnalare nei precedenti posts di questo thread, è quello di nomenclare i parametri, così:
Codice:
MT("Spline16Resize(1920, last.height)", threads=4)
MT("Spline16Resize(last.width, 1080)", threads=4, splitvertical=true)
Naturalmente il numero da specificare corrisponde al numero di core a tua disposizione che, mi sembra di capire, hai.
La chiamata di SetMTMode invece funziona in maniera diversa. Una volta specificati, nella prima chiamata, il numero di core a disposizione tali rimarrano fino alla fine. Non serve quindi rispecificare SetMTMode a due parametri successivamente. Inoltre SetMTMode è thread sensitive. Se tu lo inizializzi così...
Citazione:
SetMTMode(2,0)
automaticamente sfrutterà tutti i core a sua disposizione, il che è più facile per te da gestire; a meno che tu non voglia usare meno core. Una chiamata corretta quindi è:
Codice:
SetMTMode(2, 0)
ColorMatrix(Mode="Rec.601->Rec.709")
MT("Spline16Resize(1920, last.height)", threads=4)
MT("Spline16Resize(last.width, 1080)", threads=4, splitvertical=true)
MT("LimitedSharpenFaster(ss_x=1.2, ss_y=1.2, Smode=4, strength=50, wide=false, overshoot=10)", threads=4)
ffdshow_setDAR(ffdshow_dar_x,ffdshow_dar_y)
Chiamare MT è un po' come fare una chiamata scorciatoia comparabile a questo tipo:
Codice:
SetMTMode(5)
Mie istruzioni
SetMTMode(0)
Naturalmente hai poi altri vantaggi, cmq tant'è ;)
-
Citazione:
Originariamente scritto da Ronzino
provando da avisynth a fare solo resize a 1920*1080 mi sembra come che questo se ne vada su un solo core che sta sul 50% gli altri 3 sono al 20%
Avendo tu un QuadCore sarai un ottimo banco di prova :D
-
Immagine fluida e spettacolare con occupazione CPU all'80% e perfetto equilibrio tra i due core ottenuta smanettando non poco fino ad arrivare ai seguenti parametri:
SetMTMode(2, 0)
SetMemoryMax(1024)
ColorMatrix(Mode="Rec.601->Rec.709",clamp=false)
MT("Spline16Resize(1280, last.height)")
MT("Spline16Resize(last.width, 720)", splitvertical=true)
#MT("hqdn3d(2)",2)
MT("LimitedSharpenFaster(ss_x=1.2, ss_y=1.2, Smode=4, strength=90, wide=false, overshoot=0, soft=10)",5)
ffdshow_setDAR(ffdshow_dar_x,ffdshow_dar_y)
Ho disabilitato il denoiser in quanto con lo spline mi sembrava alquanto inutile.
NB: se tolgo quel ,5 posto alla fine della riga del comado LSF, mi si squilibrano i core e mi va tutto a scattini/rallentatore.
commenti?
grazie,
ciao
-
Con questi altri parametri ottengo un leggero miglioramento della pur ottima fluidità (rispetto aalla prec. conf.) nei panning orizzzontali, immagine piu dettagliata e compatta (denoiser completamente inutile) con occupazione CPU al 75% ma con uno squilibrio di circa il 10% a sfavore del 2° core:
SetMTMode(2, 0)
SetMemoryMax(1024)
ColorMatrix(Mode="Rec.601->Rec.709",clamp=false)
MT("Spline16Resize(1920, last.height)")
MT("Spline16Resize(last.width, 1080)", splitvertical=true)
#MT("hqdn3d(2)",2)
MT("LimitedSharpenFaster(ss_x=1.0, ss_y=1.0, Smode=4, strength=90, wide=false, overshoot=0, soft=10)",5)
ffdshow_setDAR(ffdshow_dar_x,ffdshow_dar_y)
NB: anche per questi se tolgo quel ,5 posto alla fine della riga del comado LSF, mi si squilibrano i core e mi va tutto a scattini/rallentatore.
voce agli esperti.
ciao,
fil
-
Citazione:
SetMTMode(2, 0)
SetMemoryMax(1024)
ColorMatrix(Mode="Rec.601->Rec.709",clamp=false)
MT("Spline16Resize(1280, last.height)")
MT("Spline16Resize(last.width, 720)", splitvertical=true)
#MT("hqdn3d(2)",2)
MT("LimitedSharpenFaster(ss_x=1.2, ss_y=1.2, Smode=4, strength=90, wide=false, overshoot=0, soft=10)",5)
ffdshow_setDAR(ffdshow_dar_x,ffdshow_dar_y)
con un E6400 ho il secondo core saturo mentre il primo sta intorno al 75%.
Se non ho capito male l'efficacia di LSF dop il resize diminuisce....oltre che pompare a manetta l'utilizzo della cpu.
-
@ciaca
LSF dopo il resize lavora con maggiori informazioni quindi risulta meno invasivo ma pur sempre efficace a scapito di maggior occupazione di risorse.
ciao,
fil
-
Citazione:
Originariamente scritto da f_carone
Con questi altri parametri ottengo un leggero miglioramento della pur ottima fluidità (rispetto aalla prec. conf.) nei panning orizzzontali, immagine piu dettagliata e compatta (denoiser completamente inutile) con occupazione CPU al 75% ma con uno squilibrio di circa il 10% a sfavore del 2° core:
SetMTMode(2, 0)
SetMemoryMax(1024)
ColorMatrix(Mode="Rec.601->Rec.709",clamp=false)
MT("Spline16Resize(1920, last.height)")
MT("Spline16Resize(last.width, 1080)", splitvertical=true)
#MT("hqdn3d(2)",2)
MT("LimitedSharpenFaster(ss_x=1.0, ss_y=1.0, Smode=4, strength=90, wide=false, overshoot=0, soft=10)",5)
ffdshow_setDAR(ffdshow_dar_x,ffdshow_dar_y)
NB: anche per questi se tolgo quel ,5 posto alla fine della riga del comado LSF, mi si squilibrano i core e mi va tutto a scattini/rallentatore.
voce agli esperti.
ciao,
fil
per la fluidità io ho 1 unico consiglio.......TOGLI HQDN3D ;)
-
secondo me a meno che nn hai un monitor a 1080 è inutile riscalare a 1080.....io infatti preferisco la seconda opzione: aumentare il supersampler di LSF e fare il resize a 1280x720.
prova questa chiamata e fammi sapere :
SetMemoryMax(1024)
MT("LimitedSharpenFaster(ss_x=1.4, ss_y=1.4, Smode=3, strength=210, overshoot=0, soft=60)",3)
MT("Spline16Resize(1280, last.height)")
MT("Spline16Resize(last.width, 720)", splitvertical=true)
ffdshow_setDAR(ffdshow_dar_x,ffdshow_dar_y)
ColorMatrix(Mode="Rec.601->Rec.709",clamp=false,threads=2)
-
Citazione:
Originariamente scritto da f_carone
Con questi altri parametri ottengo un leggero miglioramento della pur ottima fluidità (rispetto aalla prec. conf.) nei panning orizzzontali, immagine piu dettagliata e compatta (denoiser completamente inutile) con occupazione CPU al 75% ma con uno squilibrio di circa il 10% a sfavore del 2° core:
Mi sembra che lo Spline, a differenza del Lanczos, sià più sbilanciato nella divisione del carico. Giusto per curiosità potresti provare a mettere il Lanczos e vedere che succede ;)
Citazione:
Originariamente scritto da f_carone
anche per questi se tolgo quel ,5 posto alla fine della riga del comado LSF, mi si squilibrano i core e mi va tutto a scattini/rallentatore.
Ecchehai... un pentacore, puoi darti che overthreadare le funzioni possa portare un reale beneficio di prestazione... perchè io non me lo spiego :D
-
Citazione:
Originariamente scritto da Neo85
secondo me a meno che nn hai un monitor a 1080 è inutile riscalare a 1080.....io infatti preferisco la seconda opzione: aumentare il supersampler di LSF e fare il resize a 1280x720.
Anche questo sarà oggetto di considerazione prossimamente.
-
Aggiornato ancora il mio pack con la versione ColorMatrix 2.3.
-
Ma per usare le seguenti istruzioni:
SetMTMode(2, 0)
SetMemoryMax(1024)
sono neccesari altri plugin?
Le ho provate, ma non funzionano.
-
una domanda agli esperti di avisynyh:
volendo utilizzare la funzione spline16resize di avisynth al posto del resizer di ffdshow, c'è un'istruzione per impedire che il resizing modifichi le proporzioni del frame originale?
Io col resizer di ffdshow imposto solo la dimensione verticale e faccio calcolare quella orizzontale all'algoritmo in modo che non modifichi le proporzioni originali dell'immagine, con una chiamata di avisynth si può fare la stessa cosa? :confused:
edit: ho approntato questa istruzione per scalare sempre a 720 in verticale lasciando immutato il rapporto prospettico (4:3, 16:9, ecc):
AR = last.width/last.height
MT("Spline16Resize(720*AR, last.height)")
MT("Spline16Resize(last.width, 720)", splitvertical=true)
sembra non funzionare, il rapporto è sballato....qualche esperto sa se c'è qualche altro modo "migliore" per fare la stessa cosa? :D
-
Sì, con astuzia, e con un poco di furbizia riesco sempre... ehm, mi è venuto un flash.
Ecco per voi un bel ar sensitive resize:
Codice:
w = 1280
ar = float(ffdshow_dar_x)/float(ffdshow_dar_y)
MT("Spline16Resize(w, last.height)")
MT("Spline16Resize(last.width, int(float(w) / ar))", splitvertical=true)
Naturalmente basta variare il valore della variabile w e siete a posto :D
Come mi diverto... mica tanto :p
-
Citazione:
Originariamente scritto da ciaca
AR = last.width/last.height
MT("Spline16Resize(720*AR, last.height)")
MT("Spline16Resize(last.width, 720)", splitvertical=true)
Sì, ma con l'anamorfico ti frega.