PDA

View Full Version : Filtri Avisynth per migliorare qualità video compressi


alonesnake
25-11-2011, 17:05
Salve a tutti :)
spero possiate aiutarmi ... iniziamo col dire che cerco filtri per avisynth che mi permettano di migliorare la qualità di un video (720p) che "pesa" solo 90 MB .... è il risultato di una conversione di un video originale di 350 MB con estensione mp4 fatto con megui e filtro tweak (avisynth) ... il risultato che ottengo per me è soddisfacente in base al rapporto MB/qualità (aggiungo che la conversione è stata fatta a 400 bitrate con encoder x264) ... quello che vi chiedo è questo: è possibile migliorare la qualità del video compresso mantenendo peso e risoluzione? o meglio, esistono filtri in avisynth in grado di farlo?
Non dico di togliere completamente i difetti perchè la perdita di qualità è qualcosa che non può essere eliminata ... vorrei solo migliorarlo il più possibile, se ce ne fosse l'opportunità...

Vi lascio 2 immagini, una del video originale e una del video compresso che spiegano in maniera eloquente il difetto che vorrei correggere:

video originale

http://img600.imageshack.us/img600/7430/videodipartenza.png (http://imageshack.us/photo/my-images/600/videodipartenza.png/)


video compresso

http://i44.tinypic.com/2gvo9lc.jpg


Ringrazio in anticipo :D

einstein1969
25-11-2011, 22:19
Interessa anche a me.

Ho un video compresso un po' troppo che vorrei recuperare un po'.

Io pero' non ho l'originale. :(

Non e' che puoi condividere un pezzo di video per poter fare dei test?

alonesnake
26-11-2011, 15:13
Posso mandarti il video per intero se preferisci, così se riesci ad ottenere dei risultati mi spieghi come hai fatto ... spero solo che qualcuno in grado di usare avisynth possa risponderci

Esavoc
26-11-2011, 16:50
Ciao.

Secondo me si può fare poco, quei quadrettoni che vedi nella seconda immagine sono dovuti alla mancanza di bitrate, un miglioramento a posteriori forse si può ottenere con qualche tipo di correzione che inserisca un pò di sfocatura o qualcosa di simile, andrebbe provato con un filmato.

Piuttosto non ho capito perchè hai aumentato i livelli con il filtro tweak, così ad occhio non mi sembra che ce ne sia motivo.
Se puoi allegare uno spezzone chi ne ha voglia può provare soluzioni alternativa, così a braccia si dice male...

einstein1969
26-11-2011, 22:36
Va bene anche solo un pezzo , se riesci a tagliarlo con la parte interessata, penso che un paio di minuti puo' andare. Originale + codificato sarebbe il massimo. Poi cominciamo a provare.

alonesnake
26-11-2011, 23:24
Ecco qui un pezzo di entrambi i video: originale e compresso :)

http://www.megaupload.com/?d=SP8NIM1A


Piuttosto non ho capito perchè hai aumentato i livelli con il filtro tweak, così ad occhio non mi sembra che ce ne sia motivo.

Con la compressione i colori sbiadivano un pò, ecco perchè ho usato il filtro tweak :)

einstein1969
29-11-2011, 14:45
Oggi problemi con megaupload... Speriamo si risolvano presto!

einstein1969
01-12-2011, 12:23
Ho aggiunto il filtro GradFun3(thr=0.9,thr_det=50)

video filtrato (seconda metà, a destra)

http://i42.tinypic.com/212gxw6.jpg

Provero' nel frattempo il deblock.

Aggiornamento:
Questa parte non e' messa bene. Secondo me qui e' meglio operare sulla codifica.

Video Compresso:

http://i41.tinypic.com/294otg1.jpg

Video Ricompresso (stessa dimensione del file, ma qualità migliore operando sui parametri del codec) + GradFun3(thr=0.9,thr_det=50)
(lato destro)

http://i42.tinypic.com/xd0f9.jpg

alonesnake
01-12-2011, 15:17
Ho aggiunto il filtro GradFun3(thr=0.9,thr_det=50)

video filtrato (seconda metà, a destra)

http://i42.tinypic.com/212gxw6.jpg

Provero' nel frattempo il deblock.

Gran bel lavoro :D proverò ad usarlo anch'io e vedere come il video cambia ... nel frattempo aspetto altri consigli :)
Questo filtro va applicato dopo la conversione oppure può essere messo nello script iniziale insieme agli altri (e quindi lavorare sul video originale)??
Potresti postarlo qui o darmi il link per scaricarlo? Ti ringrazio di cuore e scusa per le troppe domande :)

PS: L'immagine postata non si vede sempre ... se provo a seguire il link diretto, dopo qualche attimo scompare ... il problema è mio oppure è per tutti??

einstein1969
01-12-2011, 15:56
Ho aggiornato il post precedente.

Dal video originale ho ricodificato con x264 (vers. x264 0.119.2106)
(ma puoi anche saltare questo passo)

con questi parametri:

--preset medium --subme 10 --trellis 2 --rc-lookahead 60 --ref 6 --b-adapt 2 --bframes 5 --direct auto --open-gop --aq-mode 2 --partition all --no-fast-pskip --keyint 500 --crf 29.7

ottenendo 452Kbit. (La tua codifica e' di 453Kbit)

Poi dal video compresso/ricompresso ho applicato il filtro. Che puoi scaricare da qui (http://ldesoras.free.fr/src/dither-1.13.1.zip)

alonesnake
01-12-2011, 17:18
Bene, ho capito quello che hai fatto ma ho bisogno di chiederti alcune cose che mi sono sfuggite ... allora, ricapitolando:

1- Partendo dal video originale, creo un primo script con avisynth mettendo i filtri di base per caricare i plugin (LoadPlugin), il video (DirectShowSource), i sottotitoli (TextSub), e per regolare luminosità, saturazione e contrasto (Tweak)...

2- Converto il video con MeGui impostando le opzioni per la codifica ... muxo audio e video e ottengo il mio video compresso ...

3- Applico il filtro GradFun3 (rielaborando il video compresso di nuovo con megui??? )...

Quello che non mi è chiaro è questo: come devo agire sui parametri della codifica per migliorare la qualità e come faccio ad applicare il filtro GradFun3 al video compresso con MeGui (devo rielaborarlo di nuovo con gli stessi settaggi usati per il video originale?)?

Aggiornamento:
Quando provo ad aprire lo script di avisynth che ha il filtro GradFun3 con media player classic, mi compare questo errore:

http://img440.imageshack.us/img440/282/erroresm.jpg (http://imageshack.us/photo/my-images/440/erroresm.jpg/)

da cosa dipende?

einstein1969
01-12-2011, 21:53
Bene, ho capito quello che hai fatto ma ho bisogno di chiederti alcune cose che mi sono sfuggite ... allora, ricapitolando:

1- Partendo dal video originale, creo un primo script con avisynth mettendo i filtri di base per caricare i plugin (LoadPlugin), il video (DirectShowSource), i sottotitoli (TextSub), e per regolare luminosità, saturazione e contrasto (Tweak)...

2- Converto il video con MeGui impostando le opzioni per la codifica ... muxo audio e video e ottengo il mio video compresso ...

3- Applico il filtro GradFun3 (rielaborando il video compresso di nuovo con megui??? )...

Quello che non mi è chiaro è questo: come devo agire sui parametri della codifica per migliorare la qualità e come faccio ad applicare il filtro GradFun3 al video compresso con MeGui (devo rielaborarlo di nuovo con gli stessi settaggi usati per il video originale?)?

Aggiornamento:
Quando provo ad aprire lo script di avisynth che ha il filtro GradFun3 con media player classic, mi compare questo errore:

http://img440.imageshack.us/img440/282/erroresm.jpg (http://imageshack.us/photo/my-images/440/erroresm.jpg/)

da cosa dipende?

Per il problema con mt_expand risolvi installando anche i plugins richiesti da dither, RemoveGrain e Masktools2 (nell'help di dither trovi le versioni da installare)

I punti 1 e 2 sono opzionali. La ricodifica serve per risolvere la mancanza estrema di dettagli. Scegli tu. I passi sono quelli che hai gia' fatto , devi solo cambiare i parametri di megui. Calcola che puoi applicare anche filtri per aumentare ulteriormente la compressione e quindi la qualità, ma anche questo e' opzionale. Io sto provando ora con il filtro fft3dfilter.

Per il punto 3 , applichi il filtro in tempo reale e vedi il filmato. Se provi a ricomprimerlo, non sono sicuro, ma mi sa che perdi il lavoro fatto dal filtro. Ma puoi fare una prova tu stesso.

alonesnake
02-12-2011, 22:42
Calcola che puoi applicare anche filtri per aumentare ulteriormente la compressione e quindi la qualità, ma anche questo e' opzionale.

Quali sarebbero questi filtri? ... io vorrei lavorare principalmente nella fase di conversione in modo che il video compresso non abbia una perdita di qualità eccessiva... in pratica con avisynth vorrei creare uno script attraverso filtri vari da dare a MeGui in modo che il video che ottengo non sia proprio scarso e con difetti lampanti ... vorrei fare un lavoro decente sul rapporto dimensione/qualità :)

marksiena
03-12-2011, 11:56
Puoi provare anche McTemporalDenoise per migliorare il video: è molto potente e dovrebbe darti un risultato migliore nella compressione del video.

alonesnake
03-12-2011, 14:12
Puoi provare anche McTemporalDenoise per migliorare il video: è molto potente e dovrebbe darti un risultato migliore nella compressione del video.

Mi daresti cortesemente il link dal quale scaricarlo?
Per il suo utilizzo ci vogliono cpu e schede video adatte o può lavorare ovunque?

Ti ringrazio per il consiglio :)

Aggiornamento:
Sono riuscito a trovare il filtro con tutti i plugin ... ora resta da chiarire la seconda domanda :)

marksiena
03-12-2011, 16:37
Mi daresti cortesemente il link dal quale scaricarlo?
Per il suo utilizzo ci vogliono cpu e schede video adatte o può lavorare ovunque?

Ti ringrazio per il consiglio :)

Aggiornamento:
Sono riuscito a trovare il filtro con tutti i plugin ... ora resta da chiarire la seconda domanda :)

Puoi usarlo con qualunque cpu, la scheda video la usa solamente se abiliti esplicitamente (GPU=true), ma non ti serve una scheda di ultima generazione per funzionare bene.
I filtri sono potenti ma richiedono un sistema abbastanza potente, specialmente come processore, per codificare il video senza perdere una giornata...

alonesnake
03-12-2011, 20:20
I filtri sono potenti ma richiedono un sistema abbastanza potente, specialmente come processore, per codificare il video senza perdere una giornata...

Visto che il pc fisso di nuova generazione (cpu i7 2600k) lo prenderò a dicembre, tu dici che con un vecchio pentium 4 da 3.2 ghz possa testarlo questo filtro?
A dire la verità, ho provato a creare uno script e a vedere cosa ne usciva fuori con media player classic, ma non riusciva nemmeno a caricare il video ... è probabile che il mio vecchissimo pc non ne sia in grado?

marksiena
04-12-2011, 00:04
Visto che il pc fisso di nuova generazione (cpu i7 2600k) lo prenderò a dicembre, tu dici che con un vecchio pentium 4 da 3.2 ghz possa testarlo questo filtro?
A dire la verità, ho provato a creare uno script e a vedere cosa ne usciva fuori con media player classic, ma non riusciva nemmeno a caricare il video ... è probabile che il mio vecchissimo pc non ne sia in grado?

No...é troppo poco potente per farlo funzionare bene. Io avevo un amd x6 quasi al 100%,puoi provare a sfruttare anche la gpu, ma non credo che la cpu ti basti

alonesnake
05-12-2011, 10:19
No...é troppo poco potente per farlo funzionare bene. Io avevo un amd x6 quasi al 100%,puoi provare a sfruttare anche la gpu, ma non credo che la cpu ti basti

Purtroppo era quello che immaginavo ... cmq, vista l'impossibilità di usare McTemporalDenoise, ho provato a smanettare con altri filtri e devo dire che qualche risultato l'ho ottenuto e questa ne è la prova:

http://img443.imageshack.us/img443/3227/confronton.jpg (http://imageshack.us/photo/my-images/443/confronton.jpg/)

Lo script che ho usato sul video compresso è questo:

DirectShowSource ("C:\Documents and Settings\Giuseppe\Desktop\Video originale.mp4")
#Trim (1,0)
#Tweak (hue=0.0, sat=1.20, bright=-22, cont=1.18)
ConvertToYV12 ()
Hybridfupp (preset="anime2", deblock=true)
FrFun7 (1.1,8,4)
DeHalo_alpha ()
fft3dfilter (sigma=2.5, sigma2=4.5, sigma3=9, sigma4=18, bw=16, bh=16, ow=8, oh=8, sharpen=0.3, smin=20, smax=1000, wintype=2, kratio=1.0)
#Spresso()
#FadeOut (20)

ovviamente i filtri Trim, Tweak, Spresso e FadeOut sono inattivi e, di solito, li uso in fase di conversione ...

Ora non resta che testarlo in fase di encoding sul video originale, cosa che ho fatto e che sul mio giurassico pc è durata una vita (solo 2 minuti di video hanno richiesto 2 ore di codifica ... non oso immaginare quanto tempo necessita un video da 25 minuti :cry: :cry:) senza intervenire nei settaggi di MeGui (ho semplicemente aumentato le bitrate da 400 a 550) .... quando avrò un pò di tempo vi lascerò i link del video compresso filtrato (il lavora che è stato fatto nell'immagine sopra è stato apllicato al video compresso a 400 bitrate .... era giusto per precisare :D )

Che ne dite? Si può iniziare a ragionare?
Ovviamente se ci fossero altri script da provare o impostazioni per MeGui, io resto in attesa :D ... nel frattempo cerco qualcos'altro che il mio pc sia in grado di processare!!

alonesnake
13-12-2011, 21:44
Purtroppo a causa delle scarse possibilità che il mio pc offre, non ho potuto provare lo script in fase di conversione .... se qualcuno ne avesse la possibilità potrebbe postare qui qualche parere?

PS: Una domanda per il futuro: una volta creato uno script con avisynth, come si applica al video senza convertire? Si può fare oppure la conversione è obbligatoria?

Esavoc
14-12-2011, 19:10
Io uso AVSP (http://avisynth.org/qwerpoi/) col quale puoi creare direttamente lo script e testarlo ma ce ne sono anche altri...

alonesnake
14-12-2011, 20:02
Anch'io uso avsp per la creazione e l'anteprima dei filtri di avisynth ... non so come applicare permanentemente il filtro al video ottenendo così un video nuovo "migliorato" ... spero sia più chiaro adesso :D

Esavoc
14-12-2011, 20:42
I filtri prevedono per forza la ricompressione perchè siano permanenti, come alternativa momentanea puoi far leggere lo script ad un player come MPlayer Classic HC per riprodurre il video con i filtri attivati ma non saranno mai permanenti.

Avisynth come prima operazione decomprime il file in RGB quindi per essere salvato va anche ricompresso.

alonesnake
14-12-2011, 21:32
Capito, ti ringrazio :)
Non posso semplicemente copiare il video applicandone solo i filtri (uno stream copy, intendo)?

Esavoc
14-12-2011, 21:45
Beh, no a causa della prima decompressione in RGB il file non può essere salvato direttamente con il codec originario comunque questo accade con ogni programma che modifica le caratteristiche del video.