Recensubs HQ

Votes given by Liquid Dr4k3

view post Posted: 17/4/2018, 17:39 by: mirkosp     +1Strange - Il ghetto dei fansubbers
Strange è una funzione che ho scritto ormai parecchi anni fa per aiutarmi nel filtraggio tramite CL di YATTA.
Nel tempo si è rivelata una delle funzioncine sceme più utili e che mi è capitato più spesso di andare a usare per un motivo o per l'altro, forse più per abitudine.
Recentemente mi sono reso conto di un bug di strange in cui finora non ero incorso per come usavo strange in YATTA, ma che può accadere in condizioni normali in base all'uso.

Per la precisione, non era gestita la situazione in cui il clip di edit fosse di durata diversa rispetto al clip base.
Questo mi torna sovente comodo quando devo apportare modifiche shiftando frame o pezzi di video, quindi non volevo gestire l'eccezione dando un errore, per cui ho corretto facendo sì che, se il video di edit è più lungo, questo viene trimmato alla durata del clip base, se invece è più corto, viene allungato ripetendo il frame finale del clip di edit.
Vi lascio quindi qui la versione aggiornata:
CODICE
#strange v1.5 by mirkosp
#Yet Another function similar to ApplyRange in purpose that works somewhat differently.
#Start and end work exactly like first_frame and last_frame work with trim(), for the
#sake of consistency, which means that you can use end as if it was -num_frames too.
#ofps parameter tells whether to keep the original fps (true) or not (false).
#For reference: http://avisynth.org/mediawiki/Trim

function strange (clip c, int "start", int "end", clip "edit", bool "ofps", bool "repeat") {
#This function only makes sense with filters that return clips to begin with, so no
#point in bothering with strings. It's both easier and better.
start = default(start,0)
end = default(end,0)
edit = default(edit,blankclip(c,length=c.framecount()))#everybody loves blankclip
amount = c.framecount()
ofps = default(ofps,false)
repeat = default(repeat,true)
amountedit = edit.framecount()
edit = amountedit >= amount ? edit.trim(0,amount-1) : repeat ? (edit+blankclip(edit,amount-amountedit)).freezeframe(amountedit,amount,amountedit-1) : edit+blankclip(edit,amount-amountedit)

#Brainfarts check ahead.
start = (start < 0) ? 0 : start
end = (-end > amount-start) ? 0 : end
start = (start > amount-1) ? amount-1 : start
end = (end > amount-1) ? 0 : end

#Match framerate in case user's custom filtering would change it
c = !ofps ? c.assumefps(edit) : c
edit = ofps ? edit.assumefps(c) : edit

#I'm not a good programmer, so I'm not sure if this is slower than it could be.
(start == 0) ? ((end == 0) || (end == amount-1)) ? edit :\
   (end < 0) ? edit.trim(0,end)+c.trim(start-end,0) :\
  edit.trim(0,end)+c.trim(end+1,0) :\
(start == 1) ? ((end == 0) || (end == amount-1)) ? c.trim(0,-1)+edit.trim(start,0) :\
   (end < 0) ? c.trim(0,-1)+edit.trim(start,end)+c.trim(start-end,0) :\
  c.trim(0,-1)+edit.trim(start,end)+c.trim(end+1,0) :\
((end == 0) || (end == amount-1)) ? c.trim(0,start-1)+edit.trim(start,0) :\
   (end < 0) ? c.trim(0,start-1)+edit.trim(start,end)+c.trim(start-end,0) :\
  c.trim(0,start-1)+edit.trim(start,end)+c.trim(end+1,0)
}


Già che stavo mettendo mano al codice, ho deciso di revisionare inoltre del tutto il funzionamento. Al posto di gestire le eccezioni, aggiungo dei frame in testa e in coda.
In questo modo, idealmente, si dovrebbe riuscire a rendere leggermente più rapido il codice di strange, perché ha molti meno if da gestire.
Tuttavia, non avendo usando estensivamente questa versione di strange (anzi, al momento è puramente codice teorico che non ho provato con mano), non ho modo di caldeggiarla senza test su strada.
La lascio qui sotto come funzione a parte, stranger:
CODICE
#strange v2.2 by mirkosp
#Yet Another function similar to ApplyRange in purpose that works somewhat differently.
#Start and end work exactly like first_frame and last_frame work with trim(), for the
#sake of consistency, which means that you can use end as if it was -num_frames too.
#ofps parameter tells whether to keep the original fps (true) or not (false).
#For reference: http://avisynth.org/mediawiki/Trim

function stranger (clip c, int "start", int "end", clip "edit", bool "ofps", bool "repeat") {
#This function only makes sense with filters that return clips to begin with, so no
#point in bothering with strings. It's both easier and better.
start = default(start,0)
end = default(end,0)
edit = default(edit,blankclip(c,length=c.framecount()))#everybody loves blankclip
amount = c.framecount()
ofps = default(ofps,false)
repeat = default(repeat,true)
amountedit = edit.framecount()
edit = amountedit >= amount ? edit.trim(0,amount-1) : repeat ? (edit+blankclip(edit,amount-amountedit)).freezeframe(amountedit,amount,amountedit-1) : edit+blankclip(edit,amount-amountedit)

#Brainfarts check ahead.
start = (start < 0) ? 0 : start
end = (-end > amount-start) ? 0 : end
start = (start > amount-1) ? amount-1 : start
end = (end > amount-1) ? 0 : end
start = start+3
end = (end == 0) ? amount+2 : (end < 0) ? end : end+3

#Match framerate in case user's custom filtering would change it
c = !ofps ? c.assumefps(edit) : c
edit = ofps ? edit.assumefps(c) : edit

#New approach that avoids special case checks and should be slightly faster
frames = blankclip(c,3)
c = frames+c+frames
edit = frames+edit+frames

eclip=edit.trim(start,end)

c.trim(0,start-1)+eclip+c.trim(start+eclip.framecount,0)
return trim(3,amount+2)


}


Se qualcuno di voi riuscisse a confermare che il risultato di stranger è bit exact a quello di strange, gliene sarei molto grato.
Anche eventuali test della velocità di esecuzione di codice tra strange e stranger potrebbero essere interessanti, anche se credo che la differenza di velocità, se realmente inesistente, sarebbe marginale, salvo un grande impiego di strange(r) nello script, che comunque è una situazione che può verificarsi.

Edited by mirkosp - 27/5/2018, 08:34
view post Posted: 23/8/2017, 17:11 by: Tadao Yokoshima     +1Il topic dei FAIL jap - Fun & Fail
Il miracolo della sparizione dell'aranciata (Hajimete no Gal 7)

arangallsun8

Sì, sono due inquadrature continue.
view post Posted: 20/4/2017, 18:52 by: CUSY     +1[Komorebi v2 - TNS - AMF] Eromanga-sensei - Episodio 01 - Recensubs
CITAZIONE (~Giò; @ 20/4/2017, 18:35) 
Forse lo farà anche il nostro typesetter, ma vorrei parlare un po' dei cartelli. Mi sento sinceramente in soggezione ad andare contro a mirkosp, perché da anni, nell'ombra(?), lo stimo e lo stalkero su twitter :ph34r:

Vabbè ormai è chiaro che il 2017 è l'anno di sp... Trova lavoro, va a vivere da solo, mo pure una gf...
view post Posted: 18/9/2016, 21:00 by: Anachronism     +1Recensubs vs TnS - Il caminetto del fansub
Per curiosità mi son scaricato il fantastico "The Empire of Corpses" TnS di 8.2GB!

Vediamo 'sti settaggi, va:

SPOILER (click to view)
Encoding settings : cabac=1 / ref=16 / deblock=1:-1:-2 / analyse=0x3:0x133 / me=umh / subme=11 / psy=1 / fade_compensate=0.45 / psy_rd=0.84:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / fgo=0 / bframes=16 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=400 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=90 / rc=crf / mbtree=1 / crf=15.0000/ qcomp=0.60 / qpmin=0:0:0 / qpmax=81:81:81 / qpstep=4 / ip_ratio=1.40 / aq=3:1.10 / aq-sensitivity=10.00 / aq-factor=1.00:1.00:1.00 / aq2=0 / aq3=0

Massì! Mettiamo crf 15 così non intacchiamo la qualità! Così c'è un bitrate più alto e non perdiamo dettaglio! Peccato che con tutto quel warpsharpening i dettagli scompaiano comunque completamente...
Bello anche il fatto che non abbian tolto l'aliasing, stavolta, quando ce n'era bisogno (o magari l'han fatto, ma male :v).
10k di bitrate e il grain è completamente andato! Utile!

Screen a caso:
1 2 3 4

Vedo che l'impressionismo è tornato di moda: http://screenshotcomparison.com/comparison/184967
Da un lato possiamo vedere che i TnS almeno si son impegnati a resizare per bene e mantenere l'AR... lo stesso non si può dire per il caro Monet.
I TnS han deciso di usare l'acquerello, si nota molto sulla superficie dell'acqua: è stato utilizzato minimalmente ma efficacemente.
(lo so che è proprio così, nell'anime, ma con quest'encode quority sembra ancora di più un dipinto :v)

Un paio di cose per l'encoder (so che stai leggendo):
1) Io voglio vedere l'AVS!
2) Da che fonte avete encodato? (che magari state riencodando una cosa tutta warpsharpata e neanche è colpa vostra) :hope:
3) Che encode di merda
4) Remuxate, piuttosto

tl;dr
Se proprio avete spazio da sprecare, scaricatevi direttamente il BD che nel rapporto qualità/peso ci guadagnate parecchio.

Edited by Anachronism - 9/18/2016, 10:24 PM
view post Posted: 5/10/2015, 14:41 by: Tadao Yokoshima     +1Stagione autunnale 2015 - La bacheca del fansub
CITAZIONE (Gipppi @ 5/10/2015, 15:36) 
ho bisogno di anime del genere per spegnere il cervello

CITAZIONE (Gipppi @ 5/10/2015, 15:36) 
Owarimonogatari

o7x1oEZ
view post Posted: 5/10/2015, 11:43 by: Tadao Yokoshima     +1Stagione autunnale 2015 - La bacheca del fansub
CITAZIONE
Dynit
Adesso ·
Nuovo Simulcast! MOBILE SUIT GUNDAM: IRON-BLOODED ORPHANS
Dal 13 Ottobre - ogni martedì alle 18:00 gratis su su VVVVID.it

mkla0004
view post Posted: 5/8/2015, 14:35 by: Byakko     +1T'amo, pio utonto! - Tutto il resto...
CITAZIONE
vedró da owari (soprattutto perché ho adorato owari no seraph XD

Credo sia uno degli insulti peggiori che uno possa lanciare al gruppo.
view post Posted: 26/2/2015, 11:35 by: Byakko     +1T'amo, pio utonto! - Tutto il resto...
DOVETE MORIRE!!1!ichi!
Simo l'ha brasato per idiozia molesta, però certe cose vanno tramandate.

http://abload.de/img/datnotconnor5uucg.png
view post Posted: 7/1/2015, 15:17 by: Byakko     +1T'amo, pio utonto! - Tutto il resto...
TDmWxXR

Smettete di percularlo, lui ha 15 anni di esperienza alle spalle per quanto concerne audio e affini!
È il messia che vuole farci aprire gli occhi sui secondi fini dell'opus!
view post Posted: 25/11/2014, 18:10 by: Tada no Snob     +1Portale streaming autonomo - Il salotto del fansub
Ora, io ai tempi non dissi niente, perché comunque non ero interessato e il mio massimo contributo è stato dire, attraverso ataru, se vi serviva un server dove hostare i file per testing (visto che ho un 2G kimsufi abbastanza sottoutilizzato).
Non dissi niente ma pensai una cosa, ovvero che far comprare dell'hardware quando il software ancora non c'è è da stronzi, farlo poi su un progetto senza certezze lo è doppiamente.
Non lo facciamo al lavoro per i progetti interni (i server di test si comprano quando serve testare in un ambiente simile a quello di produzione, fino a quel momento si va di virtual machine a costo zero), mi pareva assurdo che lo si facesse qui.

Fidarsi è bene, non fidarsi è meglio.
Perché un conto è lavorare su un progetto in cui la gente poi perde interesse, un altro buttare via anche dei soldi, che non credo faccia piacere a nessuno.

Edited by Tada no Snob - 25/11/2014, 22:38
101 replies since 18/7/2011