Recensubs HQ

Miniguida a YMC e YATTA, Stavo scazzato, se non ci capite peggio per voi

« Older   Newer »
  Share  
Nicky_i
view post Posted on 18/6/2011, 19:07     +1   -1




Una guida in più non fa mai male. Comunque anche se è in inglese non credo sia un problema, anche perché penso che tutti gli encoder sappiano un po' d'inglese visto che le migliori guide sull'encoding si trovano solo in english.
 
Top
view post Posted on 13/10/2011, 04:17     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


Da qualche mese c'è la beta5 (dal giorno seguente la beta4, in realtà):
http://ivtc.org/yatta/yatta_7-131-beta5.7z

Linko solo ora perché m'ero scordato e volevo aspettare un'occasione buona.
L'occasione buona s'è presentata avendo trovato l'esempio perfetto di perché dovreste passarvi l'episodio in yatta e fare postprocess a manina:

Frame dal ts dopo il field match: http://img64.imageshack.us/img64/562/mpeg2chiba.png
Frame dopo aver usato nnedi3(1): http://img207.imageshack.us/img207/5934/mp...hibannedi31.png

Lascio a voi decidere se fare un po' d'effort e passarsi l'episodio a mano vale la pena o no. Per chi volesse saperlo: frame unico in un cambio scena, non si poteva fare freezeframe, quindi nel caso in cui anche l'altro field fosse stato sporco si sarebbe dovuto nukare a basta.
 
Web  Top
view post Posted on 22/10/2011, 01:34     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


Technobabble varia su alcune cose copincollata senza alcun controllo da irc, che potrebbe tornare utile (in quest'ordine: mask, postprocess, telecinema, ivtc, interlacciamento, deinterlacciamento e ivtc_txt60mc). La parte iniziale fa riferimento a questo post e al seguente.
CITAZIONE
<mirkosp> hai poi fixato coi mask e fadefix?
<uriel[on]> notte
* Uriel[on] has quit (Quit: the cake is a lie)
<heartless4ngel> eh no, purtroppo quella roba non la capivo xD Non ho capito bene su come ti sei basato per fare quella mask
<heartless4ngel> in png
<mirkosp> allora
<mirkosp> il frame salvato
<mirkosp> lo apri in paint.net o qualsiasi programma preferisci
<mirkosp> fai un nuovo layer
<mirkosp> e lo riempi di bianco o di nero
<mirkosp> lo nascondi
<mirkosp> fai un nuovo layer
<mirkosp> ed evidenzi le parti da nukare con nlmeanscl da tenere dallo stesso frame
<mirkosp> con il colore opposto
<mirkosp> poi rimostri il layer dell'altro colore
<mirkosp> e salvi
<mirkosp> in mt_merge poi usi quest'immagine come mask
<mirkosp> mi raccomando convertirla in yv12 e poi fare l'mt_binarize
<mirkosp> e se serve anche blurrare
<mirkosp> a quel punto
<mirkosp> i primi due parametri di mt_merge
<mirkosp> sono i due clip
* HibariKyoya has quit (Quit: Kufufu~)
<mirkosp> se è nero ri prende il primo clip
<mirkosp> se è bianco il secondo clip
<mirkosp> in questo caso
<mirkosp> il primo clip era lo stesso frame nukato
<mirkosp> il secondo clip era il fadefix usando gli altri due frame
<mirkosp> questo perché quasi tutta l'immagine poteva essere aggiustata con l'overlay dei due frame
<mirkosp> tranne la parte sopra
<mirkosp> visto che c'era il robo che girava
<mirkosp> allora quel robo che gira lo teniamo fisso dal frame stesso
<mirkosp> e lo filtriamo un po' per pulirlo
<mirkosp> e il resto lo prendiamo con l'overlay
<lord_orion> notte, boys
<lord_orion> a domani
<mirkosp> notte lord
<mirkosp> l'ultimo parametro
* Lord_Orion has quit (Quit: ChatZilla 0.9.87 [Firefox 7.0.1/20110928134238])
<mirkosp> di mt_merge
<mirkosp> è quel true
<mirkosp> che dice a mt_merge
<mirkosp> di usare le info del luma come mask anche per il chroma
<mirkosp> che è ciò che vogliamo
<mirkosp> ovvero che mt_merge lavori su luma e chroma e non solo su luma
<heartless4ngel> ah ecco, comunque così in teoria ho capito, però per capire al 100% devo fare delle prove
<heartless4ngel> ti ringranzio comunque
<heartless4ngel> xD
<mirkosp> np
<heartless4ngel> il frame del video però
<heartless4ngel> come l'hai preso?
<mirkosp> ho chiesto a smx
<mirkosp> di passarmi i 2 frame precedenti e i 2 successivi
<mirkosp> volevo capire com'era la scena e se si poteva fare altro per aggiustare
<mirkosp> perché il nuke in quel frame era eccessivo
<mirkosp> per pulire ho dovuto fare h=6
<mirkosp> e anche a prendere i field presi meno peggio, era comunque brutto
<mirkosp> non si riusciva a levare tutta la merda e sfocava parecchio
<mirkosp> in questo caso c'era la fortuna che si poteva aggiustare così
<mirkosp> in altri casi con un sistema di mask multipli è possibile nukare solo quello che serve e recuperare altro
<mirkosp> in altri casi ancora, la merda c'è in un pan in cui usando altri due frame si può pulire almeno in parte spostandoli e facendo stack
<mirkosp> quindi puoi metterti a fare stackhorizontal e stackvertical e crop assortiti per ricomporre il frame usandone altri
<mirkosp> e così via
<heartless4ngel> comunque già che ci sono, c'era un altro punto della tua guida su ts che non capivo: quando parli di freezeframe(dei quali ho abusato molto nei cambi di scena) e postprocess. Questi ultimi cosa sono? Ho provato a vedere se era un plugin
<heartless4ngel> ma non lo trovavo
<[SSK]Terminator> ** Fueled by SSK & BFF Fansubs **
<[SSK]Terminator> ** XDCC List available on: http://orosaiwa.zettaimurri.de/[SSK]Terminator.txt **
<mirkosp> mmmh non so se l'ho spiegato
<mirkosp> ma con postprocess intendo usare nnedi3(1) o nnedi3(0) in base a quel field è pulito
<mirkosp> per stabilità
<mirkosp> si fa
<mirkosp> dopo il field math
<mirkosp> cn0 = nnedi3(0)
<mirkosp> cn1 = nnedi3(1)
<mirkosp> e poi
<mirkosp> per il frame da postprocessare
<mirkosp> se devi tenere il field 0
<mirkosp> range(9001,9001,cn0)
<mirkosp> se l'1
<mirkosp> range(9001,9001,cn1)
<mirkosp> questo torna utile
<mirkosp> nel caso in cui i cambi scena o che
<mirkosp> siano frame unici
<mirkosp> su fujitv soprattutto, uno dei due field tende ad essere pulito
<mirkosp> mentre solo l'altro è preso male
<mirkosp> quindi l'idea è di tenere il field preso bene ed interpolarlo
* GJ_Bado is now known as bado_holder
<mirkosp> così da avere una versione pulita del frame unico
<mirkosp> l'esempio l'ho postato in un altro topic credo
<mirkosp> quello della guida a yatta
<mirkosp> 'spè
<mirkosp> http://img64.imageshack.us/img64/562/mpeg2chiba.png il field match
<mirkosp> http://img207.imageshack.us/img207/5934/mp...hibannedi31.png nnedi3(1) su quel frame
<mirkosp> puoi scaricare tu stesso il frame sporco e provare nnedi3(1) se non ci credi
<kanjisub[Pazienza]> ** The Way Fansub Muuuust Be **
<kanjisub[Pazienza]> ** Per avere la lista delle release visitate questo link: www.kanjisub.com/xdcc **
<mirkosp> ovviamente fare postprocess ha senso solo se ti metti a fare ivtc con yatta
<mirkosp> altrimenti se lo fai a mano
<mirkosp> con gli ovr
<mirkosp> ha anche senso
<mirkosp> se invece stai a fare automatico lascia perdere
<mirkosp> perché bene o male tfm cercherà già di evitare 'ste robe
<mirkosp> anche se lo fa in modi più dumb
<mirkosp> e a volte ti tiene il field sporco
<mirkosp> o magari ti droppa frame unici e mette altri match
<mirkosp> dipende le metric cosa lo spingono a fare
<mirkosp> oltretutto ha il postprocess in automatico
<mirkosp> anche se non sempre lo fa bene, appunto
* Crabman has quit (Quit: Sto andando via)
<heartless4ngel> infatti non so se sia collegata questa cosa: avevo guardato l'altra tua guida su
<heartless4ngel> anime music
<mirkosp> nah
<mirkosp> quelle di amvit
<mirkosp> sono dumb
<mirkosp> perché agli amv editor non interessano 'ste cose
<mirkosp> se ti interessa la guida di yatta
<mirkosp> ho fatto il post su recensubs
<mirkosp> https://recensubshq.forumfree.it/?t=55069687
<mirkosp> questa dovresti seguire
<mirkosp> taglia corto su alcuni pezzi
<mirkosp> e altre robe sono un po' migliorabili
<mirkosp> soprattutto per cose che ho scoperto/imparato a mie spese più avanti da quando l'ho scritta
<heartless4ngel> ah ecco perché lì c'era scritto che se nel momento in cui facevi index usciva fuori in video type "NTS" di usare TDeint, però questo mi sporcava molti frame... Quindi alla fine ho guardato quella che hai scritto su recensub
<mirkosp> o per plugin nuovi che non c'erano
<heartless4ngel> NTSC*
<mirkosp> sì
<mirkosp> evita assolutamente la guida lì
<heartless4ngel> ok
<mirkosp> sostanzialmente
<mirkosp> mmmh
<heartless4ngel> comunque le tue guide, le ho lette praticamente tutte xD
<mirkosp> una cosa che devi imparare
<mirkosp> è a distinguere contenuto 60i da quello telecinato
<mirkosp> se è telecinato devi fare ivtc
<mirkosp> se è 60i bob oppure deinterlacciamento
<heartless4ngel> ecco bravo! Mi hai fatto venire in mente sta cosa
<heartless4ngel> del 60i
<mirkosp> il testo che passa?
<mirkosp> sul video telecinato
<mirkosp> suppongo
<heartless4ngel> perché fai conto che io non so molto, e non capivo
<heartless4ngel> a cosa ti riferivi
<heartless4ngel> con le scritte
<mirkosp> allora
<heartless4ngel> 60i
<mirkosp> dunque
<mirkosp> non ricordo l'ep di guilty crown quindi non so se passavano scritte
<mirkosp> però
<mirkosp> talvolta capita negli anime tvrip (ma anche in dvd e bd se sei sfigato)
<mirkosp> che mentre l'anime sotto è telecinato
<mirkosp> passano sopra delle scritte a 60i
<mirkosp> qui meglio spiegare
<mirkosp> la differenza tra telecinema e interlacciamento "puro"
<mirkosp> il telecinema è una tecnica che porta un video di un certo framerate ad un framerate superiore ripetendo alcuni field in un pattern
<mirkosp> facendo ivtc (inverse telecine, telecinema inverso), possiamo riportare il video come progressivo al framerate originale
<heartless4ngel> sì
<mirkosp> giovandone in compressione (meno frame) e tendenzialmente anche fluidità (perché non abbiamo ripetizioni sballate)
<mirkosp> il caso più frequente, e quello che ci riguarda dal tvrip giappo
<mirkosp> è il pattern 3:2 (anche se tecnicamente sarebbe 2:3, ma il nome comune è quello)
<mirkosp> http://upload.wikimedia.org/wikipedia/comm.../32pulldown.svg
<mirkosp> immagine da wikipedia
<mirkosp> che spiega bene
<mirkosp> dunque
<mirkosp> come vedi, la cosa funziona così
<mirkosp> frame A -> 2 field nello stream telecinato
<mirkosp> frame B -> 3 field nello stream telecinato
<mirkosp> frame C -> 2 field nello stream telecinato
<mirkosp> frame D -> 3 field nello stream telecinato
<mirkosp> da qui il pattern 2:3
<mirkosp> ora
<mirkosp> nello stream telecinato
<mirkosp> ci troviamo i frame così
<mirkosp> AA BB BC CD DD
<mirkosp> in visione se ci limitamo a fare un deinterlacciamento stupido con blend
<mirkosp> i frame BC e CD saranno blendati
<mirkosp> e scatteranno un poco
<mirkosp> la cosa non è molto bella
<mirkosp> noi però possiamo riportare all'ABCD con l'IVTC
<mirkosp> anzitutto appunto appaiamo i field
<mirkosp> in questo caso, in YATTA, si farebbe CCNNC
<mirkosp> ovvero
<mirkosp> current current next next current
<mirkosp> che in questo caso significa
<mirkosp> prendi il field inferiore e appaialo con quello superiore del frame ->
<mirkosp> C = current = stesso
<mirkosp> N = next = prossimo
<heartless4ngel> ok
<mirkosp> c'è anche P = previous = precedente
<mirkosp> quindi ci ritroviamo con AA BB CC DD DD
<mirkosp> ora
<mirkosp> abbiamo D doppio
<mirkosp> che in playback è brutto
<mirkosp> quindi bisogna scartarlo
<mirkosp> lo si fa con la decimazione
<mirkosp> seguendo l'esempio di yatta, avremmo
<mirkosp> KKKDK
<mirkosp> keep keep keep drop keep
<mirkosp> è buona norma droppare il secondo frame N (primo dei duplicati nel ccnnc) in quanto è quello più sporco
<mirkosp> quello c è più pulito
<mirkosp> a questo punto abbiamo portato lo stream a 23.976 progressivo come dovrebbe essere
<mirkosp> 60i invece
<mirkosp> significa che ogni singolo field è unico
<mirkosp> ovvero
<mirkosp> avremmo frame così:
<mirkosp> AB CD EF GH IL
<mirkosp> facendo bob
<mirkosp> ogni field diventa un frame
<mirkosp> avremmo AA BB CC DD etc
<mirkosp> facendo deinterlace o bob+selecteven o selectodd
<mirkosp> teniamo solo uno dei field e scartiamo l'altro
<mirkosp> AA CC EE etc
<mirkosp> capita inoltre di avere "finti" interlacciamenti
<mirkosp> in alcune trasmisioni tv
<mirkosp> ovvero, ci sono i field spostati
<mirkosp> in un modo del tipo
<mirkosp> AB BC CD DE e così via
<mirkosp> facendo tdeint possiamo riportare tutto alla norma
<mirkosp> questo in particolare lo noti perché se provi a fare fieldseparate() (comando che trasforma ogni field in un frame a sé)
<mirkosp> noterai che al posto di avere ogni field che rappresenta un momento nel tempo diverso
<mirkosp> hai coppie di field che rappresentano lo stesso momento, ma "spostate" nello spazio (una leggermente sopra, una leggermente sotto)
<mirkosp> che sarebbe come se fosse progressivo, ma di per sé lo vedi interlacciato, e allora sai che puoi andare di tdeint
<mirkosp> questo difficilmente ci interessa con gli anime
<mirkosp> è più capace che accada coi live action
<mirkosp> quello che ci capita con gli anime
<mirkosp> e che
<mirkosp> facciano telecinema
<mirkosp> e quindi abbiamo AA BB BC CD DD
<mirkosp> però
<mirkosp> sopra
<mirkosp> ci mettono del testo
<mirkosp> di informazione del canale
<mirkosp> o che ti dice quando escono i BD
<mirkosp> che passa a 60i
<mirkosp> ovver AB CD EF GH etc
<mirkosp> facendo ivtc automatico è quasi certo che farà tutto in postprocess + ti farà scattare il testo (perché deve droppare 1 frame ogni 5) + fa scattare l'anime sotto (perché vedendo movimento nel testo finisce col tenere i doppioni e droppa un frame unico)
<mirkosp> orribile a vedersi
<mirkosp> facendo ivtc manuale puoi tenere il pattern di ivtc corretto
<mirkosp> in compenso ti becchi il testo blendato, oppure puoi scegliere di postprocessare comunque, ma tenendo il pattern di decimazione corretto
<mirkosp> la soluzione ottimale è in realtà usare un filtro che si chiama ivtc_txt60mc
<mirkosp> questo filtro è tipo black magic, ma se rifletti sul codice è semplice
<mirkosp> anzitutto fa bob di alta qualità
<mirkosp> poi
<mirkosp> prende 2 frame dallo strem bobbato
<mirkosp> e fa interleave con 2 frame di uno stream interpolato
<mirkosp> interleave è un processo che prende un frame da un clip, poi un frame da un altro, uno da un altro ancora, fino a che non ci sono più clip, a quel punto riprende col frame successivo del primo clip e così via
<mirkosp> in questo caso, ci sono due clip
<mirkosp> ponendo caso che un clip abbia frame A1 A2 A3 e l'altro B1 B2 B3, interleave fa A1 B1 A2 B2 A3 B3
<mirkosp> per quanto riguarda i frame interpolati
<mirkosp> crea la posizione intermedia del testo che avrebbe in un frame se fosse stato progressivo
<mirkosp> spiegarlo a parole è complesso, se guardi il codice e l'output forse capisci
<mirkosp> ma anche se non capisci come funziona, ciò che conta è che passando il video interlacciato originale a questo filtro e dicendogli qual è il pattern del telecinema
<mirkosp> lui ti fa ivtc del video e contemporaneamente compensazione di moto sul testo portandoti il testo a 24p fluido
<mirkosp> soluzione ottimale

 
Web  Top
view post Posted on 22/10/2011, 02:24     +1   -1
Avatar

Snobbery Inside

Group:
Utente abilitato
Posts:
2,197
Reputation:
+1,005
Location:
Favolandia

Status:


In tutto questo mi sfugge una cosa, hai spiegato la prima parte di ivtc_txt60mc ma non sei arrivato alla conclusione XD
Ovvero che source->bob (60p)-> interleave clip mc (120) -> decimazione tenendo un frame su 5 24p.
Giusto per chi non vuol star lì a spulciarsi il codice.
 
Web  Top
view post Posted on 22/10/2011, 02:48     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


La decimazione è intrinseca già da quando prende i frame. Ne prende 1 ogni 5 nello stream bobbato e 1 ogni 2 nello stream interpolato formato da 2 frame ogni 5 dello stream bobbato.
 
Web  Top
view post Posted on 22/10/2011, 12:11     +1   -1
Avatar

Snobbery Inside

Group:
Utente abilitato
Posts:
2,197
Reputation:
+1,005
Location:
Favolandia

Status:


Mah, sinceramente non sarei nemmeno sceso troppo nei particolari, l'importante è capire che lo script prende lo script telecinato 30i (60 field al secondo), e attraverso Bob di qualità e motion compensation lo porta a 120 frame progressivi.
A quel punto decima a 24 progressivi (e serve ovviamente il parametro per dire quale frame tenere per conservare un moto uniforme).

Alla fine quando eri un novellino di avisynth facevi anche tu una certa fatica a capire cosa facevano gli script leggendoli riga per riga, star lì troppo a scendere nei particolari credo possa avere lo stesso effetto (also se uno vuole davvero capire come funzionano i vari script conviene che li prenda e si metta a guadare riga per riga cosa succede).
 
Web  Top
view post Posted on 22/10/2011, 12:27     +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


CITAZIONE (Tada no Snob @ 22/10/2011, 13:11) 
Mah, sinceramente non sarei nemmeno sceso troppo nei particolari, l'importante è capire che lo script prende lo script telecinato 30i (60 field al secondo), e attraverso Bob di qualità e motion compensation lo porta a 120 frame progressivi.
A quel punto decima a 24 progressivi (e serve ovviamente il parametro per dire quale frame tenere per conservare un moto uniforme).

Ma ti sto dicendo che non fa questo. Ha un approccio completamente diverso e a 120fps non ci arriva mai. Fa interleave di due clip a 11,988.
 
Web  Top
view post Posted on 4/11/2011, 18:40     +2   +1   -1
Avatar

Bimbosp

Group:
Administrator
Posts:
9,780
Reputation:
+929
Location:
Gallarate (VA)

Status:


Non sapendo bene dove postarlo e non volendo aprire un topic apposito (mi sembra inutile), linko qui:
http://hank315.nl/files/DGdecode/dgmpgdec158_SSE.zip
Come da topic su doom9, questa versione modificata di DGMPGDec è circa il 25% più veloce di quella normale, che sicuramente non dispiace.
 
Web  Top
view post Posted on 4/11/2011, 20:00     +1   -1
Avatar

- -- --- !!! Burning !!! --- -- -

Group:
Utente abilitato
Posts:
1,275
Reputation:
+43
Location:
@Dalle_fiamme_degli_inferi@

Status:


Niente male. Thanks.
 
Top
terrablu2003
view post Posted on 17/12/2011, 19:01     +1   -1




Altra lettura interessante anche se non ci ho capito molto essendo un newbie,ma leggere del materiale "eruditivo"non fa mai male. :xd:
 
Top
24 replies since 11/4/2011, 20:28   3363 views
  Share