Explicación de la sintonía x264

41

Ejecutando este comando:

ffmpeg -i xr.mp4 -tune ya zu.mp4

revela los posibles valores de sintonía para x264 y, a su vez, FFmpeg:

[libx264 @ 0000000002167100] Melodías posibles: animación de película grano imagen fija psnr ssim
                                             fastdecode zerolatency

Sin embargo, no pude encontrar una referencia que explique lo que realmente hacen estos valores.

Steven Penny
fuente

Respuestas:

63

Esto es lo que hacen los modos:

  • film - destinado a contenido de películas de alta velocidad de bits / alta calidad. Desbloqueo inferior se utiliza aquí.
  • animation- destinado a dibujos animados, etc., donde se desbloquea el desbloqueo para compensar áreas más grandes y planas. Se utilizan más marcos de referencia.
  • grain - esto debe usarse para material que ya es granulado. Aquí, el grano no se filtrará tanto.
  • stillimage - como dice su nombre, optimiza la codificación de imágenes fijas al reducir el filtro de desbloqueo.
  • psnry ssim- estos son modos de depuración para optimizar solo para buenos valores de PSNR y SSIM. Sin embargo, mejores métricas no necesariamente significan una mejor calidad.
  • fastdecode - desactiva CABAC y el filtro de desbloqueo en bucle para permitir una decodificación más rápida en dispositivos con menor potencia de cálculo.
  • zerolatency - optimización para codificación rápida y transmisión de baja latencia

Puede ver las opciones detalladas aplicadas con cada melodía con x264 --fullhelp:

--tune <string>         Tune the settings for a particular type of source
                          or situation
                              Overridden by user settings.
                              Multiple tunings are separated by commas.
                              Only one psy tuning can be used at a time.
                              - film (psy tuning):
                                --deblock -1:-1 --psy-rd <unset>:0.15
                              - animation (psy tuning):
                                --bframes {+2} --deblock 1:1
                                --psy-rd 0.4:<unset> --aq-strength 0.6
                                --ref {Double if >1 else 1}
                              - grain (psy tuning):
                                --aq-strength 0.5 --no-dct-decimate
                                --deadzone-inter 6 --deadzone-intra 6
                                --deblock -2:-2 --ipratio 1.1 
                                --pbratio 1.1 --psy-rd <unset>:0.25
                                --qcomp 0.8
                              - stillimage (psy tuning):
                                --aq-strength 1.2 --deblock -3:-3
                                --psy-rd 2.0:0.7
                              - psnr (psy tuning):
                                --aq-mode 0 --no-psy
                              - ssim (psy tuning):
                                --aq-mode 2 --no-psy
                              - fastdecode:
                                --no-cabac --no-deblock --no-weightb
                                --weightp 0
                              - zerolatency:
                                --bframes 0 --force-cfr --no-mbtree
                                --sync-lookahead 0 --sliced-threads
                                --rc-lookahead 0
lema
fuente
1
Tenía la impresión de que --tune film es para material granulado, pero por lo que dices es sinónimo de entrada de alta calidad; Básicamente, si mis fuentes son siempre de gran calidad, siempre debería usar esta melodía. Y luego, el grano de melodía debe usarse para cosas como material de película muy antiguo. ¿Es eso correcto?
Florin Andrei
66
@Florin Ambas son para fuentes de alta calidad, pero --tune filmfiltrarán parte del grano y --tune grainconservarán más. AIUI, este último solo debe usarse si el grano es una parte importante de las imágenes que aún se pueden notar en la configuración del objetivo.
Tobu
77
--tune filmes para contenido de acción en vivo: cualquier cosa filmada en una cámara, a diferencia de la animación celular o el texto / gráficos generados por computadora. Incluso es adecuado para una animación en 3D algo realista, así que no dejes que la "película" te alimente. Funciona para fuentes granuladas y no granuladas y equilibra la retención de granos con la calidad general por tasa de bits, mientras --tune grainque tratará de preservar el grano a cualquier costo; útil si mantener el grano es imprescindible por alguna razón. --tune filmhace no solamente ayuda para alta velocidad de bits (de hecho, afinaciones tienden a tener más de un efecto sobre tasas de bits más bajas en general).
thomasrutter
8
Nota: "imagen fija" es para personas que escriben herramientas que usan x264 para codificar un solo cuadro fijo, como alternativa a JPEG o JPEG2000. Sin embargo, aún podría ser útil para las personas que hacen un video que es esencialmente una presentación de diapositivas de imágenes fijas donde una imagen estática se muestra sin cambios durante muchos cuadros antes de cambiar a la siguiente imagen, siempre y cuando sea literalmente una presentación de diapositivas estática sin transiciones. El punto de la "imagen fija" es que aumenta ciertas optimizaciones psíquicas que mejorarían los fotogramas individuales a expensas de dañar el movimiento.
thomasrutter