Página 4 de 5

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 30 Abr 2013 15:47
por professor keller
roisiano escribió:Esto debe ser tan sencillo (numéricamente) como hacer una prueba a crf 19.0 (por ejemplo), ver qué bitrate da, y hacer el 2 pass a dicho bitrate... y comparar "números" y "ojímetro".
Es que a esto me refería yo. Hace, no sé, ¿un año, dos? cuando estaba probando mis primeros ripeos CRF hice uno a 18 o 18.5. Como el resultado me pareció bueno, hice un ripeo Two Pass con el mismo bitrate y el resultado era prácticamente igual a nivel visual (cuadros y movimiento, yo no me fijo en los números a menos que haya problemas).

Igual estaría bueno hacer una prueba ahora y traer resultados, porque de aquello no guardé nada.

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 30 Abr 2013 17:21
por gilles
Entonces, parece que estan todos de acuerdo :

FrOnkY : El resultado no es idéntico, pero las diferencias son prácticamente inapreciables.

professor keller : el resultado era prácticamente igual a nivel visual

mewiki : When comparing a CRF encode to a 2pass encode at the same bitrate, the CRF encode will be marginally lower quality.

Aunque no idénticos, por lo meno diferencias tan mínimas que no permiten diferenciar visualmente un crf de un two pass a bitrate igual.

¿Este resumen os conviene?

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 30 Abr 2013 18:15
por professor keller
gilles escribió:¿Este resumen os conviene?
Me parece que resume nuestras propias experiencias. Lo ideal, si queremos compartir la investigación de esto, sería hacer un ripeo con --crf 19, por ejemplo, ver el bitrate, hacer un TwoPass con ese bitrate y compartir los resultados. Pero para eso tendríamos que definir primero los parámetros a usar en cada cada linea de los script CRF y Two Pass (al menos los que ripeamos desde la línea de comando)

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 30 Abr 2013 18:19
por roisiano
professor keller escribió:
gilles escribió:¿Este resumen os conviene?
Me parece que resume nuestras propias experiencias. Lo ideal, si queremos compartir la investigación de esto, sería hacer un ripeo con --crf 19, por ejemplo, ver el bitrate, hacer un TwoPass con ese bitrate y compartir los resultados. Pero para eso tendríamos que definir primero los parámetros a usar en cada cada linea de los script CRF y Two Pass (al menos los que ripeamos desde la línea de comando)
Por supuesto, sería mejor en línea de comando.

Yo estoy haciendo memoria y puede que ya hiciese esta prueba hace tiempo.

Si la hice, casi seguro que los números fueron idénticos (los quantizers). En caso contrario, habría tomado medidas.

Pero podéis hacerlo en casa:

--crf 19.0

vs

2 pass

con el bitrate obtenido

mismo preset, mismo level, mismo script, etc.

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 01 May 2013 08:24
por gilles
Los avisos de FrOnkY y professor keller me parecían suficientes (me fío fácilmente), pero si que se puede hacer nuevamente una prueba, no cuesta tanto.

En este caso, no creo que seria oportuno utilizar crf 19. Me explico:
Si entendí bien, queremos verificar si a un bitrate dado tenemos dos ripeos rigurosamente idénticos o no (segunda pasada hecha con crf).
Si las diferencias entre crf y two pass fueran grandes, ya se habría comentado eso en miles de foros.
Entonces si diferencias hay, buscaríamos algo ínfimo, por lo menos visualmente.
Si nuestra prueba empírica se hace con un crf 19, el resultado va a ser casi "transparente", muy cerca del original, limitando las posibilidades de ver diferencias de compresión, si las hay.

Me parece mas "riguroso", o mas demostrativo mejor dicho, utilizar parámetros de análisis altos como "slower" o "veryslow" para tener una base de "datos" precisa y cerca del original y aplicarle un crf de 23 por ejemplo, que es el valor por defecto, para ver lo que "desaparece" y compararlo al two pass con el bitrate obtenido.

No se si me explique bien... ni si os parece oportuno...

Voy intentar hacerlo así, utilizando el banda anuncio de "Les tontons flingueurs", un vob de 108.6 Mo (no colorisado, por supuesto). Después os dejo aquí las pruebas para compararlas, desgraciadamente mis ojos no se prestan a esos ensayos...

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 01 May 2013 10:47
por roisiano
gilles escribió:En este caso, no creo que seria oportuno utilizar crf 19. Me explico:
Si entendí bien, queremos verificar si a un bitrate dado tenemos dos ripeos rigurosamente idénticos o no (segunda pasada hecha con crf).
Si las diferencias entre crf y two pass fueran grandes, ya se habría comentado eso en miles de foros.
Entonces si diferencias hay, buscaríamos algo ínfimo, por lo menos visualmente.
Si nuestra prueba empírica se hace con un crf 19, el resultado va a ser casi "transparente", muy cerca del original, limitando las posibilidades de ver diferencias de compresión, si las hay.
Hombre, sí... pero esto para mí (a nivel personal) no tendría utilidad alguna.

El crf más alto que he empleado en mis ripeos ha sido 20 :mrgreen:.

Edito: estoy haciendo las pruebas a crf 19.0. Después haré el 2-pass.
Publicaré los resultados y subiré trozos de vídeo.

Edito de nuevo (hablando de editar, he editado las imágenes para que no aparezca "información personal" sobre mí que no quiero poner a disposición pública). Hice unas pruebas con "Best Seller" (básicamente, porque tenía aún los archivos en el disco duro).

Efectivamente, los ripeos tienen diferencias.

Script para ambos casos:
LoadPlugin("C:\ruta\MeGUI_2153_x86\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("C:\DVD\Best Seller (1987) (rip)\Best.d2v", info=3)
LoadPlugin("C:\PROGRA~2\GORDIA~1\AviSynthPlugins\TIVTC.dll")
tfm(order=1).tdecimate()
crop(2, 4, -2, -8)
SelectRangeEvery(10000, 239)

Números:
* crf 19.0:
Imagen

* 2-pass al bitrate que salió del ripeo con crf 19.0:
Imagen

Lo que veo en los números:
a) 2-pass selecciona más B-frames que crf 19.0 (que, por el contrario, usa más I-frames y B-frames).
b) Los quantizers son algo mejores (más bajos) con crf 19.0. Es lógico, porque, al mismo bitrate, utiliza más B-frames.

Trozos de vídeo de las pruebas: :arrow: http://www.putlocker.com/file/703B0A31398E2557


Personalmente, soy incapaz de apreciar diferencias visuales. ¿Alguno de vosotros sí?


Edito otra vez:

... y los MediaInfo, claro:

* crf 19.0:
Complete name : crf 19.0.mkv
Format : Matroska
Format version : Version 2
File size : 23.8 MiB
Duration : 2mn 19s
Overall bit rate : 1 428 Kbps
Writing application : x264 r2309 3b1f1f7
Writing library : Haali Matroska Writer b0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 16 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 2mn 19s
Bit rate : 1 399 Kbps
Width : 716 pixels
Height : 468 pixels
Display aspect ratio : 16:9
Original display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.174
Stream size : 23.3 MiB (98%)
Writing library : x264 core 132 r2309 3b1f1f7
Encoding settings : cabac=1 / ref=16 / deblock=1:-1:-1 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / psy_rd=1.00:0.15 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=1 / crf=19.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
Default : Yes
Forced : No
* 2-pass:
Complete name : 2-pass.mkv
Format : Matroska
Format version : Version 2
File size : 23.8 MiB
Duration : 2mn 19s
Overall bit rate : 1 428 Kbps
Writing application : x264 r2309 3b1f1f7
Writing library : Haali Matroska Writer b0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 16 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 2mn 19s
Bit rate : 1 426 Kbps
Width : 716 pixels
Height : 468 pixels
Display aspect ratio : 16:9
Original display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.177
Stream size : 23.3 MiB (98%)
Writing library : x264 core 132 r2309 3b1f1f7
Encoding settings : cabac=1 / ref=16 / deblock=1:-1:-1 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / psy_rd=1.00:0.15 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=2pass / mbtree=1 / bitrate=1426 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Language : English
Default : Yes
Forced : No
Exactamente iguales, aparte de que, obviamente, en uno se eligió crf 19.0 y en otro 2-pass a 1426 kbps.

Pero no hay ninguna "operación visible" distinta que haga el codec en un caso respecto al otro.

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 01 May 2013 11:12
por gilles
Hombre, sí... pero esto para mí (a nivel personal) no tendría utilidad alguna.
Entonces no entendí nada en lo que iba el tema...
Pensaba que era "hay, si o no, diferencias en la manera de codificar entre el crf y el two pass" y no "los dos métodos pueden llegar a ripeos equivalentes" (que sea por ser iguales o por ser eficientes).
Siento mucho haberme confundido.

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 01 May 2013 12:02
por roisiano
gilles escribió:
Hombre, sí... pero esto para mí (a nivel personal) no tendría utilidad alguna.
Entonces no entendí nada en lo que iba el tema...
Pensaba que era "hay, si o no, diferencias en la manera de codificar entre el crf y el two pass" y no "los dos métodos pueden llegar a ripeos equivalentes" (que sea por ser iguales o por ser eficientes).
Siento mucho haberme confundido.
Edité el mensaje anterior; igual te interesan las pruebas.

Me refería que las pruebas a crf 23.0 a mí no me dicen nada de nada a nivel práctico, porque yo nunca ripeo a ese crf ni nada que se le parezca.
A mí las pruebas a crf 23.0 me parecen interesantes como curiosidad técnica; pero como yo no ripeo (ni de lejos) a ese crf, a mí no me aportan información de utilidad sobre mis ripeos (que puedan ayudar a mejorarlos); a eso me refería.

Por lo demás, los datos de los ripeos (ver post anterior) indican que, efectivamente, los ripeos se hacen de modo distinto. No en cuanto a las opciones "visibles" del codec (más allá de que en una se utiliza "método crf" y en otra "método bitrate 2-pass), donde el MediaInfo es idéntico, pero sí en cuanto a los frames de cada tipo resultantes y a los quantizers logrados. Por lo que es una evidencia (en base a lo testado y posteado en mi comentario anterior) que hay diferencias en la manera de codificar entre el crf y el two pass.
En esa parte en concreto te doy la razón, porque hay evidencias que así lo demuestran.

Y las evidencias prevalecen sobre las opiniones.

Eso sí; en mi opinión, y según lo que dicen los números, el método crf no es necesariamente peor (utiliza más B-frames pero los quantizers son algo mejores -esto son también evidencias, en base a lo que he probado-; todo muy lógico), y, visualmente, al crf que yo utilizo habitualmente, no encuentro diferencia (esto es opinable, por supuesto).

Por otra parte, siendo puristas, aunque se demostrase (evidencia) que el método 2-pass es marginalmente superior al del crf (por el momento no es el caso; sólo hay evidencias de que los números son algo distintos), para asegurarnos (en ese hipotético caso) de hace el "ripeo perfecto" a idéntico bitrate, lo que habría que hacer sería:
a) El ripeo completo al crf elegido.
b) El ripeo completo al bitrate obtenido en el paso anterior.

Es decir; se ripearía 2 veces (la segunda con doble pasada), y se consideraría sólo el resultado del ripeo b).

¿Por qué el ripeo completo?
Porque si haces el 2-pass al bitrate que te sale, por ejemplo, de una prueba (SelectRangeEvery...), lo único que podrías garantizar sería, en todo caso, que, al bitrate elegido, ningún ripeo puede hacerse mejor (con el mismo script y los mismos "seteos", etc.)... pero es que ese bitrate no vas a saber a qué crf (exacto) sería comparable (sí, tendrás una estimación razonablemente buena con el ripeo de prueba, pero no exacta).
Tendrías indicios, no evidencias :mrgreen:.

La única forma de "asegurar" (en ese hipotético caso), por ejemplo, que tu 2-pass es mejor que el ripeo (completo) a crf 19.0 sería comprobar que el ripeo (completo) a crf 19.0 no da como resultado un bitrate mayor que el que tú has elegido (aunque sea un mísero KB).
Y para asegurar que esto es así, tienes que conocer exactamente el bitrate del ripeo completo a crf 19.0. Es decir; tienes que hacer primero el ripeo a crf 19.0.

Y apostaría doble contra sencillo a que casi nadie está dispuesto a hacer el ripeo completo a crf xy.z para después volver a hacer el ripeo completo al bitrate que le ha salido :mrgreen:.

Por supuesto, en caso de que 2-pass fuese "mejor" y no sólo "diferente" a crf, podrías "garantizar" que, a ese bitrate, ningún ripeo es mejor que el tuyo.
Pero... ¿es ese el bitrate adecuado :mrgreen:?

Una discusión bizantina muy entretenida, en todo caso.

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 01 May 2013 17:36
por gilles
Bueno roisiano,
no se, no se... no me queda eso muy claro todavía...
Leyendo los datos que dejaste aquí, puede ser que matemáticamente, en la secunda pasada el "process" sea igual que el de un crf, como lo habías leído tu, así que professor keller.
Lo que me hace dudar es esa linea en el medio de los datos de la primera pasada:

X264 [info]: final ratefactor: 18.29


¿Para que el codec indica y calcula eso si no lo va usar?
Por lo tanto, la primera pasada sacando una repartición de frame I, P, B diferente al crf, el ripeo final tendrá diferencias, eso si. pero sin ser la prueba que usa algoritmos diferentes.
Y aunque en tu ejemplo practico, el crf calculado sea "mejor" que 19, como no se trata de las mismas imágenes, para mi no se puede afirmar que el resultado es un poco superior, como lo decían en mewiki.

En todo caso, me quedo con esto: "no se puede apreciar visualmente diferencias" (parece ser consensual sobre este tema).

PD:
-queda un dato personal en una captura :fisch:
-no he podido abrir el archivo por ser un .exe, estoy con OS Linux. :evil:
-ojala un día alguien me ofrece un processor tan veloz como el tuyo... :up:

Re: Tutorial básico de ripeo MKV (AFR)

Publicado: 01 May 2013 17:52
por roisiano
gilles escribió:PD:
-queda un dato personal en una captura :fisch:
-no he podido abrir el archivo por ser un .exe, estoy con OS Linux. :evil:
-ojala un día alguien me ofrece un processor tan veloz como el tuyo... :up:
Lo primero está solucionado ya. Gracias por el aviso :fisch:.
El archivo está comprimido en .rar. No sé por qué te aparece como .exe.
Mi procesador tampoco diría que es gran cosa. Hoy en día los hay bastante mejores.

Respecto al:
X264 [info]: final ratefactor: 18.29
de la primera pasada, yo supongo que ese debe ser el "CRF medio", no que se haya empleado un CRF constante... que no es lo mismo.

Y sí; supongo que esa información será usada en la segunda pasada de alguna manera.

Más información:
http://doom10.org/index.php?topic=267.0
http://www.mundodivx.org/foro/index.php?topic=39680.0
http://forum.doom9.org/archive/index.php/t-163784.html

De este último:
LoRd_MuldeR

12th January 2012, 01:26

First of all: The difference between a "2-Pass" encode and a "CRF" encode of the same average bitrate (i.e. same final file size) is negligible. So none of the two is "better" per se! The biggest difference therefore is that with 2-Pass mode you can know the resulting (average) bitrate beforehand, while with CRF mode you can not know the resulting bitrate beforehand. However, with 2-Pass mode it will be difficult to predict which (average) bitrate will be required (at least) to hit the desired level of quality for a particular source. At the same time CRF mode hits a specific level of quality (roughly!) and uses "as many bits as needed" for the individual source. So once you have found out the (highest possible) CRF value that satisfies your personal quality needs, you can simply run all your future encodes with that CRF value - instead of having to re-adjust the target bitrate for every source again and again. In the special case, where you must hit a specific file size (i.e. specific average bitrate) and want to retain the best quality for that predetermined file size, 2-Pass mode is the way to go. For all the rest, I would prefer CRF mode, for the reasons mentioned before.