¿Aumentar la velocidad de fotogramas sin cambiar el contenido afecta la calidad de la compresión?

Esta pregunta no tiene importancia práctica para una canalización de producción de video regular, pero es algo que encuentro fascinante porque implicaría que los códecs de video usan métodos de submuestreo temporal para reducir la tasa de bits, y esos métodos están controlados por la velocidad de fotogramas en el momento de la codificación. . Entonces, aquí va:

Supongamos que tengo un conjunto de imágenes sin pérdidas (como fotogramas escaneados en una tira de película) que quiero codificar con cierto algoritmo de compresión de video, como H.264. Suponiendo que los fotogramas dentro de la transmisión de video recién comprimida se descomprimirán más tarde y se reproducirán a la velocidad correcta extrayendo los fotogramas sin procesar y no reproduciéndolos en un reproductor normal , la velocidad de fotogramas especificada en la que codifico esas imágenes no debería importa en absoluto a la calidad general de cada cuadro individual, dada una configuración de calidad constante. ¿O es eso?

Tiene sentido pensar que los códecs modernos usarían alguna forma de estimación temporal más gruesa cuando las velocidades de fotogramas son más altas, debido al hecho de que el efecto de fluctuación de la compensación de movimiento podría suavizarse en varios fotogramas, a diferencia de un video de baja velocidad de fotogramas donde los artefactos de movimiento y cuantificación se volverían mucho más notorios.

Si esto fuera falso, también implicaría que, si quisiera transmitir más datos/mayor calidad en un medio con una tasa de bits restringida, como YouTube, simplemente podría volver a codificar mi video con la mitad de la tasa de cuadros y pedirles a los usuarios que lo reproduzcan. al doble de la velocidad, ya que el límite de tasa de bits se duplicaría sobre el video de velocidad normal (menos cualquier problema de audio).

Todavía no he realizado ninguna prueba científica, pero antes de profundizar en el análisis de datos (y tratar de encontrar un corpus de video sin pérdidas para hacerlo), me gustaría preguntarle a la comunidad si se han realizado experimentos al respecto.

Respuestas (1)

Esto depende del codificador específico y el estándar de compresión, por sí mismo, puede no tener nada que decir al respecto.

x264, que codifica en H.264, tiene en cuenta la duración del cuadro en su algoritmo de control de velocidad.

Desde el código fuente (mi énfasis):

Ratecontrol reduce la calidad relativa a velocidades de fotogramas más altas y lo contrario a velocidades de fotogramas más bajas; esto sirve como el centro de la curva.

donde thisse refiere a la duración del cuadro para los fps predeterminados de 25.

Esto se ve agravado por la configuración de los tamaños de búfer, importantes para la transmisión en red o los reproductores de hardware, y que se definen en términos de duración de los medios, no de recuento de fotogramas.

Por lo tanto, existe una correlación entre la velocidad de fotogramas y la calidad de los fotogramas individuales, al menos en el caso de x264. ¿El estándar H.264 no tiene nada que decir sobre el tema y esta decisión se deja totalmente en manos de las implementaciones del codificador, o incluso se prescribe en los estándares más antiguos (MPEG-2) o más nuevos (H.265, VP9)?
Los estándares H264/5 se ocupan principalmente de la sintaxis de flujo de bits, que es relevante para analizadores y decodificadores. No se abordan los algoritmos de codificación. Sospecho que lo mismo ocurre con los códecs VPx también.
@MVittiS Creo que x264 no reducirá mucho la calidad si todavía está dentro del rango de la tasa de bits especificada. Si ya estaba en el límite de tasa de bits, digamos 30 fps, y ahora desea generar 60 fps, entonces, de repente, debe colocar el doble de datos en la misma transmisión. La calidad probablemente se verá afectada visiblemente en este caso, ya que necesita comprimir cada cuadro a la mitad de su tamaño original. Así que el codificador no es el único culpable. Sin embargo, puede duplicar la tasa de bits cuando duplica la velocidad de fotogramas. Entonces debería permanecer cerca.