21 de mayo de 2010

Uso de TIVTC (Actualizado).

Bueno, notarán que borré dos entradas que tenía sobre tivtc y decomb package, si no lo notaron pues qué mejor, las borré porque estaban muy desactualizadas (mal). Así que va de nuevo, una breve explicación del uso de tivtc.

Primero, qué carajo es un ivtc? Simple, un inverse telecine, revierte el proceso de telecine que hacen los estudios a los dvds, leed mi entrada de animeivtc (que después actualizaré mejor) para mayor entendimiento.

Las dos funciones que váis a usar para hacer un ivtc son "TFM" y "TDecimate". Explicado de una manera simple, tfm se encarga del alineado de campos de los frames y tdecimate se encarga de eliminar los dups (frames repetidos) cambiando una fuente de 30fsp a 24fps normalmente para dvds.

El uso de tfm primero: TFM(pp=7)
El post-processing es el encargado de desentrelazar frames con combing residual después del alineado de campos. Hay diferentes tipos de pp, 0 y 1 no hacen post procesado, 2, 3 y 5 si no mal recuerdo aplican un poco de blur al combing, o eso he notado yo, 4, 6 y 7 hacen un desentrelazado del combing, siendo 7 el más preciso en mi opinión.

tfm(clip2=tdeint(mode=2,type=3))
Un parámetro importante es "clip2", que le indica a tfm la función que ha de usar para ayudarse con el post-processing, mejorando la calidad del pp, ahí puedes insertar cualquier deinterlacer que gustes, yo recomiendo tdeint o nnedi2 en algunos casos donde tdeint llega a dejar aliasign que no había originalmente, aunque nnedi2 come más detalle. Sharp=false para que no aplique ningún sharp el pp y sea más rápido, aconsejado por el trolazo de koichi, el cual solo es aplicable cuando usas type=2. ò,ó

tfm(cthresh=x)
Otro parámetro importante que debéis conocer, ctrhesh controla a qué nivel de rastros de combing se debe usar el pp, siendo 9 el default. Es decir, si después de haber aplicado tfm con pp activado a una fuente y sigues viendo rastros de combing, puedes probar a bajar los valores de ctrhesh hasta que no veas combing en ningún frame, teniendo cuidado de hacerlo bien, por lo general 9 es un valor adecuado en casi todas las fuentes, pero hay casos donde se tiene que bajar o subir por si el pp está detectando frames progresivos como combed frames. Os aviso, nunca lo bajen a 0, aplicará pp a todos los frames, incluso los progresivos, los echará a perder, si tuvieran que bajar un valor demasiado, 1 es lo máximo que recomiendo lo bajen.

tdecimate()
Este ya es más simple y a la vez importante para no fregarse la fluidez del video, si cada 5 frames hay un dup (frame repetido), se deja con sus valores normales, si tu fuente es anime, que por lo general tiene varios frames repetidos en una misma secuencia, se le agrega "mode=1" y ya está, pasará tu fuente de 30fps, como queda después del alineado de campos, a 24fps. Si tienes una fuente híbrida, secciones sin dups (30fps) y secciones con dups (24fps), entonces tendrás que hacer un encode a dos pasadas donde la situación ya es más alargada de explicar. En la documentación de tivtc vienen ejemplos de cómo hacer un encode vfr (variable frame rate), les aconsejo que se lean la documentación.

Eso sería prácticamente todo, arriba expliqué los parámetros más eficientes de esas dos funciones, siendo que al final, su ivtc deberá quedar algo así, siendo el uso de cthresh alternativo dependiendo de la fuente:
No anime: tfm(pp=7,clip2=tdeint(mode=2,type=3)).tdecimate()
Anime: tfm(pp=7,clip2=tdeint(mode=2,type=3)).tdecimate(mode=1)
 
Espero que les haya servido la explicación, conforme vayan agarrando práctica aprenderán a detectar fallos y llegarán a configurar mejor su tivtc, hay muchos más parámetros que también son importantes pero requieren de práctica, así que lo mejor es que lean la documentación. Como siempre, si tienen preguntas, simplemente hacedlas.

Saludos. (づ。◕‿‿◕。)づ

25 comentarios:

SuTeki dijo...

Gracias por la actualizacion thesis... Guia de gran ayuda ;)

Koichi dijo...

ó,ò el sharp=false va dentro del tdeint, no en el tfm :c.

\o arréglalo bitchy :3

Frankwiin dijo...

Genial T-sis me ayudará mucho en encodes futuros... Saludos ;D

thesisidiot dijo...

SuTeki, Frankwiin, de nada. Y pues esa es la intención ayudar. =3

Koichi, corregido fea. ò,o

Unknown dijo...

Muy buena la info, sensei!!
Yo tengo un problema con el encode, pero es con filtros para remarcar los bordes, siempre me quedan delgados y con algo de blur... ni con el Toon me resulta, aplicando o no (antes y/o después) el GradFun2DBmod para corregir el banding me quedan igual de delgados y con blur o medios "borrosos", alguna sugerencia a los sensei del encode... Thesis, Koichi

PhillipDSX dijo...

Hola! Y muchas gracias por el tutorial... pero bueno, es que soy nuevo en todo esto de manejar TS y encodearlos, así que tengo unas preguntas que pueden parecer algo tontas:

1. Con una fuente 100% Film, si uno le hace "Force Film" desde el DGindex al TS, la parte de "tdecimate" no sería necesaria, o sí? porque lo único que haría sería dejar los FPS como en 19,6.

2. En esa misma línea, si uno NO le hiciera force film, y luego le aplicara el "tdecimate" al video con el Avisynth... ahora sería el audio el que se queda por cosa de milisegundos (porque el audio se extrae a la velocidad original)... Teniendo eso en cuenta, ¿no es mejor con ese tipo de fuente solo hacer "force film" y que tanto el audio como el video queden corriendo a la misma velocidad (y obviamente, luego no usar el tdecimate)?

Gracias de antemano por tu respuesta ;)!

thesisidiot dijo...

Eh! Las TS nunca son totalmente film, así que no tendrás que usar "force film" con ninguna ts.

Sobre tu pregunta, lo que hace force film es quitar el flag que hace que el video vaya a 29.970 fps cuando reproduces el dvd, y si quitas esa flag regresa a sus fps original, que sería 23.976fps. No hay más qué decir, es obvio que si usas force film ya no tienes que aplicar tdecimate.

Sobre la segunda pregunta, no hay desfases con el audio a menos que hagas mal el corte. Yo corto con trimings pre-ivtc, cuando la ts está a 29.970fps, se hace con la herramienta de thefluff, split_aud_0.21; la cual consigues en su blog. Hará el triming a 30fps del audio y después lo pasará a 23.976fps, no debe haber desfase para nada.

Saludos. ^-^

PhillipDSX dijo...

Muchas gracias por contestar =D!

Si, disculpa, puse "100% Film" cuando debí poner "100% video (NTSC)". Hasta ahora estoy metiéndome en todo esto del encode ^^u!

Ya como te dije, pude hacerle trim al audio con la herramienta que me recomendaste (excelente, por cierto)... cero desfases, todo muy bien.

Pero bueno, después de terminar el proyecto en DGindex (sin usar el "Force Film"), crear el AVS respectivo y encodear con x264, el video (que quedó a 23,976fps) perdió fluidez (it's jerky ;O;!).

Usé la línea del tivtc tal y como la pones:

tfm(pp=7,clip2=tdeint(mode=2,type=3)).tdecimate(mode=1)

¿Cuál podría ser la razón para que vaya como a tirones? Y lo otro... su subiera el resultado final, AVS y esas cosas, ¿te molestaría echarles un vistazo cuando tengas tiempo?

Gracias de nuevo ;)!

PS: Una entrada sobre YATTA sería genial \m/(>_<)\m/!

thesisidiot dijo...

Mmm, algo estás haciendo mal...
Bueno, súbeme tu avs y tu video resultado para que los revise.

Si me dices qué ts has usado y de qué serie también me ayudará a saber con qué fuente tratas. ^-^

PhillipDSX dijo...

¡Pues bueno! Entonces aquí están...

Resultado= http://www.megaupload.com/?d=2FGJDXBC
AVS= http://www.megaupload.com/?d=S6F2UVW9

La serie es Seitokai Yakuindomo, y pues trabajé con el TS del episodio 03 de Elitist Fags. Y lo que hice fue:

DGindex, solo miré el tipo de fuente (Video Type =NTSC sin porcentaje), usé el cropping filter y pues dejé el video con "Honor Pulldown Flags".

Avisynth, primero hice el script tal y como lo ves para los trims del audio con el Split_Aud, y luego lo terminé.

x264, hice el encode con esta línea: "x264.exe --crf 16.0 --preset veryslow --ref 9 --colormatrix bt470bg --output "SY03[RAW].mkv" "SY03[RAW][480p].avs" 2> log.txt" lo de colormatrix lo saqué de la web de TheFluff.

Y pues ese fue el resultado... Es mi primer encode, así que aparte de esto, cualquier recomendación tuya sería genial ^^!

Muchísimas gracias, Thesis.

thesisidiot dijo...

Este... ya lo descargo, perdón por la tardanza pero he andado muy ocupado últimamente. ;A;

Esta semana lo reviso. A menos que ya hayas encontrado el problema.

Sobre el avs, ya vi tu problema, es que estás haciendo el ivtc después del resize, eso está mal, debe de ir inmediatamente después de cargar el source. Otra cosa, es que no uses toon, ni tweak ni el parámetro de "cpu=0" en el mpeg2source().

Otra cosa, el crop hazlo con avisynth, antes del resize, no lo hagas con dgindex. Y el filtrado va antes o después del resize, ahí sí como gustes. De filtros yo sólo usaría el gradfunkmirror() si no tiene nada raro la ts.

Lo dejaría algo así:

MPEG2Source("C:\Users\PhillipDS\Documents\PhillipDS\Fansubbing\TS to RAW OVEN\SY-03.d2v")
Trim(0, 5527) ++ Trim(7328, 17426) ++ Trim(19226, 33100) ++ Trim(34900, 48518)
tfm(pp=7,clip2=tdeint(mode=2,type=3)).tdecimate(mode=1)
crop(x,x,x,x)
spline36resize(848,480)
gradfunkmirror()

Recuerda que el orden sí va a afectar el resultado. Al hacer resize antes del ivtc afectas enórmemente el alineado de campos.

En fin, igual bajo el video y lo reviso mañana, pero creo que ese es tu principal problema.

PhillipDSX dijo...

Ohhhh, voilá~!

Supongo que el problema estaba con lo que decias, el alineado de campos. Leeré un poco más sobre eso y el desentrelazado =)

Una vez que lo hice tal y como dijiste, el video final comenzó a correr de forma adecuada ^^!

Muchas gracias por toda la ayuda, y no te preocupes por el tiempo, que yo igual también estuve ocupado O_o! Seguiré practicando y pues espero no te moleste si me paso a molestar alguna otra vez ;)!

kthxbye!

thesisidiot dijo...

Ok, no hay problema, siempre puedo revisar una que otra cosa, siempre y cuando seais pacientes que no me paso todos los días por el blog. xD

Josengan dijo...

Hola, buena informacion, no se si puedas explicar mas sobre decimate()

KuchikiIchigo dijo...

Grandiosa explicación.

Justo me hacia falta que voy a decentrelazar una TS de un anime.

Espero puedas ayudarme con algún problema que tenga. Gracias.

KuchikiIchigo dijo...

Grandiosa explicación.

Justo me hacia falta ya que necesitaba decentrelezar una TS de un anime. Espero y no seas mucha molestia en ayudarme en alguna ocasión XD!

Pd: Muchas gracias.

thesisidiot dijo...

No hay problema, cualquier duda que haya me puedes encontrar por IRC en Rizon, ando prácticamente en todos los canales, #unanime #Shin #AnimeTeam entra a cualquiera de esos y me hablas y por ahí te respondo. :3

Leo dijo...

Muchisimas Gracias me ayudaste demasiado todas tus guias estan de Awesome

thesisidiot dijo...

De nada. ^-^

light105_62 dijo...

Genial la info, pero tengo un problema, he estado tratando de codificar un DVD de Ranma y pues, probé la configuración que decías y también algunas variables que mencionabas en el post pero nada funciona, me siguen quedando partes con ese molesto trabeo (algunas partes quedaron bien, el problem del trabeo mas que todo se da en las partes de mucho movimiento), ¿será por el mal telecinado por lo antigua de la serie (aunque este ISO es una versión hecha en el año 2000 en japón según lei la info de donde lo descargué), o estoy haciendo algo mal?

Aquí una captura de como me quedan con la config: http://img6.imageshack.us/img6/2795/ranmap.png

Y esto es lo que uso en mi avs:

MPEG2Source("D:\Downloads\VTS_01_1.d2v")
tfm(pp=7,clip2=tdeint(mode=2,type=3)).tdecimate(mode=1)
crop( 6, 0, -20, 0)
spline36resize(640,480)

thesisidiot dijo...

Uff, eso se llama ghosting, y es realmente imposible de remover sin dañar la fluidez del video, suponiendo que el ivtc está bien hecho. -3-

Puede ser por culpa de los que hicieron el authoring o tu ivtc, no alcanzo a ver qué mode pusiste en tdecimate, además puede que la sección sea a 30fps y al hacer el tdecimate tú mismo estés causando el ghosting. Haz un preview de tu fuente solo con el tfm cargado, sin el decimate para ver si es error de la fuente o tuyo.

También noto un poco de combing residual el el cabello de ranma, sugiero que añadas un vinverse() a tu script justo después del ivtc cuando ya estés seguro de que está bien.

light105_62 dijo...

La fuente es TFF, e intenté dejarlo a en sus fps originales y el ghosting sigue apareciendo usando la configuración que mencionas, hasta intenté cambiar tdeint por smoothdeinterlace pero es muuuy poco el cambio. T_T no sé que hacer, o a saber si es por el authoring como dices, bueno mira te dejo los archivos que genera el dgindex:

D2V:http://www.mediafire.com/?z88cy4osg3j841l

Parse:http://www.mediafire.com/?wg2wlkabbbw211p

Espero que me puedas ayudar XD

light105_62 dijo...

Ah y no se alcanza ver pero en el tdecimate usé mode=1

thesisidiot dijo...

Hmmm, súbeme una parte del .vob a ver si te puedo ayuda. Con que sea corta de unas tres escenas, con la escena del problema más feo por fa.

Para cortar el .vob lo haces con dgindex, con el field operation en "honor pulldown flag" y le pones a "save project and demux video".

Me será más fácil así ver qué se le puede hacer. xD

light105_62 dijo...

Bueno creo que son estos archivos:
http://www.megaupload.com/?d=7JFR67YT
http://www.megaupload.com/?d=ER6GKZVF
http://www.megaupload.com/?d=HXDG0HEW

Si no son esos me avisas.

Saludos y gracias de antemano.