Filtri per eliminare il logo

1. Prefazione

Questa vuole essere solo una veloce spiegazione su come e quando applicare il filtro logo. Per la maggior parte delle volte, il filtro di logo non sarà necessario su tutto, basta fare il crop del logo nei film catturati in 16:9. Alcune persone preferiscono cancellare il logo sopra la parte del video sfocandola. Così di nuovo, sei sempre tu a decidere se usarlo. Comunque fai, non aspettarti un risultato perfetto.

La regola fondamentale è che devi inserire il filtro di logo il più presto possibile. Ogni filtro applicato prima e ogni modifica fatta (tranne il trimming) produrrà un risultato pessimo. Anche l'opinione generale nel forum di doom9 è questa, se tu catturi con qualsiasi formato, tranne che in Huffyuv o in MJPEG sopra i 18, non ha senso usare o l'uno o l'altro filtro.

2. Utilizzare Virtualdub

Per favore nota che questa è solo una guida in linea grossolana. Ci sono molte dettagliate guide scritte su questi filtri su Internet. Per descrizioni dettagliate e spiegazioni per favore fai riferimento ai links che sono stati messi sotto. Ci sono attualmente disponibili tre filtri per il logo: Logoaway, Delogo e Xlogo. Dopo aver scaricato i filtri (vedi i collegamenti nella tabella sotto) devi estrarli nella cartella plugins di  VirtualDub.

In Virtualdub puoi inserire il filtro giusto dopo il deinterlacciamento. Va di nuovo a Video > Filters > Add e scegli uno dei tre filtri sopra menzionati. nella finestra che comparirà, specificare la posizione e la dimensione del logo. Questo è più o meno una prova ed il processo è sbagliato. La cosa che puoi fare è creare un immagine di uno dei fotogrammi, importarlo nel programma di grafica preferito e (no il M$ Paint ecc per favore), e poi prendere le misure. Per raffinare la configurazione devi usare la finestra di preview! Alcuni punti importanti:

Fatto, questo è la base. Procedi con la guida al postprocessing di VirtualDub.

3. Utilizzare AviSynth v2.0x / AviSynth v2.5x / GordianKnot

Se usi AviSynth hai essenzialmente due possibili scelte: Xlogo (che è disponibile come un plugin per AviSynth v2.5x) o Dekafka (che è un filtro nativo e lo puoi trovare qui). Quest'ultimo è molto veloce, ma ha anche meno vantaggi. Xlogo è stato brevemente discusso, ma una discussione dettagliata è stata aggiunta sull'uso del filtro Dekafka.

3.1 Dekafka

E' possibile rimuovere il logo nativamente in AviSynth usando il (più veloce) filtro Dekafka. Copia la funzione (data nel link sopra) nel file testo e salvalo come dekafka.avsi. Se metti questo script nella tua cartella di auto caricamento (autoloading plugin directory), verrà automaticamente caricato. Altrimenti lo devi importare usando la linea

Import("e:\dekafka.avsi")

all'inizio del tuo script. Nota che questo filtro converte il clip e la maschera del clip in uno spazio colore RGB32, questo è solo un formato colore con un canale alfa (almeno in tutte le versioni fino alla AviSynth v2.52). Devi rimuovere il logo dopo il deinterlacciamento. Noi abbiamo scelto qui di farlo prima di ogni ridimensionamento. Ma se tu vuoi puoi farlo dopo il ridimensionamento, ricorda di rifare la maschera del logo dopo il ridimensionamento.

Creazione del file maschera (mask file)
Dopo il deinterlacciamento il tuo script avrà il seguente aspetto (per esempio):

Import("e:\dekafka.avsi")
AviSource("d:\capture.avi")
Trim(begin, end)
Telecide()

Apri questo script in VirtualdubMod, seleziona "video" e "copy source frame to clipboard" (scegli un un fotogramma dove il logo è chiaramente visibile). Importalo nel tuo programma di grafica preferito (per esempio usando Corel photo-paint: "File" -> "New From Clipboard"). Taglia il logo in un nuovo documento (per esempio usando Corel photo-paint: traccia un riquadro con "Rectangular Mask Tool" -> "Copy" -> "Paste As New Document"), in tale modo il logo è confinato (su tutti e quattro i lati) con almeno quattro pixels di clip (allarga il tuo clip se necessario):

Il risultato:

Assicurati che il logo sia circondato da un pixel bianco, mentre la parte circostante di pixels sia nera:

Hai due opzioni: creare un filmato avi da esso (per esempio usando Corel photo-paint: "Movie" -> "Create From Document") oppure salvarlo come un BMP/JPEG/PNG. Ritorna allo script editor di VirtualdubMod e carica la tua maschera:

1) Se hai fatto un filmato della tua maschera, il tuo script diventerà per esempio (il filtro Loop è usato qui per creare una maschera della stessa lunghezza del tuo clip):

Import("e:\pdwork\dekafka.avsi")
clip = AviSource("e:\pdwork\DO-Heaven.avi")
clip = Telecide(clip)
maskclip = AviSource("e:\pdwork\mask.avi")
Loop(maskclip, Framecount(clip))

2) Se hai fatto un'immagine della tua maschera, il tuo script diventerà per esempio (noi abbiamo usato il filtro ImageReader qui per leggere l'immagine, se stai usando AviSynth v2.0x devi usare il plugin "ImageWriter"). Il filtro Loop è stato usato qui per creare un maskclip della stessa lunghezza del tuo clip:

Import("e:\pdwork\dekafka.avsi")
clip = AviSource("e:\pdwork\DO-Heaven.avi")
clip = Telecide(clip)
maskclip = ImageReader("e:\pdwork\mask.jpg", 0, 0)
maskclip = FlipVertical(maskclip)  # Questo è necessario quando DevIL sta leggendo l'immagine invece del BMP-parser interno di AviSynth.
Loop(maskclip, Framecount(clip))

Adattamento del tuo script AviSynth
Ora, aggiungi il filtro per rimuovere il logo dekafka. La sintassi generale è data da:

dekafka(clip clip, clip maskclip, int Xstart, int Ystart, int X, int Y, int Amount)

(Xstart, Ystart) è l'angolo sinistro della maschera. Ricorda che l'asse X va da sinistra a destra e che l'asse Y va da sopra a sotto. "X" è la larghezza e "Y" l'altezza del masklogo. Infine, "Amount" è la quantità di blend tra il clip e la masklogo (con amount=0 tu vedrai la clip stessa, con amount=256 vedrai la masklogo e valori in mezzo il clip e la masklogo saranno blend). Fissa a 128 prima, altrimenti potresti non vedere la masklogo :) Il nostro logo è nell'angolo superiore destro, così noi partiamo alla posizione (Xstart, Ystart) = (500, 2):

Import("e:\pdwork\dekafka.avsi")
clip = AviSource("e:\pdwork\DO-Heaven.avi")
clip = Telecide(clip)
maskclip = ImageReader("e:\pdwork\mask.jpg", 0, 0)
maskclip = FlipVertical(maskclip)  # Questo è necessario quando DevIL sta leggendo l'immagine invece del BMP-parser interno di AviSynth .
maskclip = Loop(maskclip, Framecount(clip))
dekafka(clip, maskclip, 500, 2, maskclip.width, maskclip.height, 256)

Scorri lentamente attraverso i fotogrammi fino a che vedi la masklogo (questo può essere un  lavoro duro :)):

Se hai trovato la masklogo, cambia la posizione (Xstart, Ystart) fino a che le posizioni del masklogo e del logo coincidono:

Import("e:\pdwork\dekafka.avsi")
clip = AviSource("e:\pdwork\DO-Heaven.AVI")
clip = Telecide(clip)
maskclip = ImageReader("e:\pdwork\mask.jpg", 0, 0)
maskclip = FlipVertical(maskclip)  # Questo è necessario quando DevIL sta leggendo l'immagine invece del BMP-parser interno di AviSynth..
maskclip = Loop(maskclip, Framecount(clip))
dekafka(clip, maskclip, 550, 48, maskclip.width, maskclip.height, 256)

Per ultimo, cerca il il minimo di "Amount" per un risultato migliore (se il tuo logo è bianco, come nel nostro caso, potresti lasciarlo come "256").

3.2 Xlogo

C'è in AviSynth un filtro per rimuovere il logo chiamato Xlogo. In AviSynth o GordianKnot devi inserire i parametri manualmente (io consiglio di usare VirtualdubMod per editare lo script e calibrare i parametri di Xlogo). Nota che questo plugin converte internamente a RGB32, questo è solo un formato con il canale alfa (almeno in tutte le versione fino alla AviSynth v2.52). Anche, la maschera deve avere una larghezza/altezza pari.

Ma se decidi di usare AviSynth v2.5x e ti senti di specificare manualmente i parametri nello script di AviSynth, qui c'è quello che dovrai aggiungere nel tuo script:

Dove sono tutti gli altri plugins da caricare:
LoadPlugin("c:\yourplugindir\xlogo.dll")

Dopo il deinterlacciamento:
Xlogo(Clip, filename, X, Y, ALPHA, T1, T2, T3, B1, B2, B3, WHITE, SIDE, SCENE, FEATHER, NOISE)

Qui c'è come deve essere configurato Xlogo, il comando potrebbe apparire così:

AviSource("e:\pdwork\atomic.avi")
Telecide()  # o altri metodi di deinterllacciamento
Xlogo("e:\guides\000000.bmp", 530, 38, 0)  # Xlogo converte internamente a RGB32

Dopo di ché procedi come descritto nella guida al postprocessing di AviSynth.

4. Collegamenti al Download e alla Documentazione

Filtri Homepage VDub Download AviSynth Download Documentazione
Logoaway home VDub dl n/a Doc
Delogo home VDub dl n/a Doc
Xlogo home VDub dl dll Doc (Vdub only)

Qui ci sono i pochi link alle discussioni nel forum:
doom9.org forum discussion 1
doom9.org forum discussion 2
doom9.org forum discussion 3

Generalmente è sempre una buona idea dare uno sguardo al forum per ottenere le ultime novità.


Indietro al postprocessing VirtualDub: <BACK>

Indietro al postprocessing AviSynth: <BACK>

RITORNA all'Indice: <HOME>


Last edited on: 09/07/2003 | First release: n/a | Authors: SteVe (killingspree) & Wilbert | Content by doom9.org

Guida tradotta da *django* il 01/10/03