¿Los formatos de video admiten perfiles de color?

7

Recientemente, estaba leyendo un wiki, dedicado a un popular programa de dibujos animados y me topé con un problema interesante :marcos de las diferentes tiendas regionales de iTunes

De izquierda a derecha: fotogramas de la versión de iTunes de EE. UU., ITunes de Australia e iTunes de EE. UU. Con CC en un reproductor de video

Como puede ver, es el mismo marco, pero los colores son diferentes. Entonces, me hace preguntarme: ¿el contenedor estándar H.264 / MP4 admite algún tipo de perfil de color (como ICC en JPEG) y, en caso afirmativo, ¿algún reproductor lo admite? ¿Y qué hay de los discos DVD / Blu-Ray? ¿O no hay forma de ver la misma versión de cualquier video, ya que fue filmado por sus creadores? Gracias. :)

Oleg Kuznetsov
fuente

Respuestas:

7

No la mayoría de los formatos de video (casi todos) no permiten la inserción de perfiles de color ICC personalizados. (Mejora / corrección: los MP4 pueden tener perfiles de color etiquetados en los metadatos de un archivo de video). La mayoría de los videos en el extremo del consumidor están destinados al espacio de color REC.709. sRGB es similar y usa las mismas primarias. La transcodificación (incluida la compresión) casi siempre dará como resultado un ligero cambio en la precisión del color, la saturación, la curva gamma o el cambio de nivel en blanco y negro. Esto empeora debido a la conversión entre espacios de color RGB e YCbCr.

Nick Spiropoulos
fuente
No estaba realmente satisfecho con la primera respuesta y gracias por señalar la Rec. 709, así que marqué esta como la respuesta "aceptada".
Oleg Kuznetsov
@OlegKuznetsov - por cierto, no sienta la necesidad de aceptar una respuesta si realmente no siente que la pregunta está completamente respondida. Está perfectamente bien que las preguntas permanezcan sin respuesta hasta que se pueda encontrar una respuesta. Me alegra que la respuesta de Nick haya sido más útil.
AJ Henderson
4

Como fue filmado por sus creadores es una especie de concepto nebuloso, particularmente cuando se trata de compresión. La reproducción del color varía mucho de un dispositivo a otro y sin una pantalla calibrada y una cadena completa de control de color que regrese a la fuente, no obtendrá la precisión. Incluso entonces, es muy probable que en algún punto de la línea los espacios de color no coincidan exactamente.

Se vuelve aún más difícil cuando ingresas a la compresión porque la compresión afecta el color. Los colores se generalizan sutilmente por compresión. Cuanto más área de una imagen pueda simplificar (particularmente para cosas como dibujos animados), más pequeña puede ser la imagen. Lo más probable es que la ligera banda de color que se ve en ese marco no exista en el original, sin embargo, debido a que H264 agrupa colores similares y los simplifica a uno, termina causando un efecto de banda.

En resumen, para un formato con pérdida, un perfil de color no va a resolver el problema ya que el color no se conserva exactamente de todos modos. Puede ayudar a mejorarlo un poco, pero aún va a haber una alteración del color de la compresión.

AJ Henderson
fuente
Obtiene bandas con códecs de video si su tasa de bits es demasiado baja, pero no producen nada como las diferencias sistemáticas que ve cuando RGB-> yuv usa una fórmula y yuv-> RGB usa una diferente. Puede ver en la pregunta original la diferencia muy obvia después de decodificar las imágenes comprimidas con pérdida de iTunes.
Peter Cordes
2

h.264 admite información de varios colores en el flujo de bits. De x264 --fullhelp:

--range <string>        Specify color range ["auto"]
                      - auto, tv, pc.
--colorprim <string>    Specify color primaries ["undef"]
                      - undef, bt709, bt470m, bt470bg, smpte170m,
                        smpte240m, film, bt2020.
--transfer <string>     Specify transfer characteristics ["undef"]
                      - undef, bt709, bt470m, bt470bg, smpte170m,
                        smpte240m, linear, log100, log316,
                        iec61966-2-4, bt1361e, iec61966-2-1,
                        bt2020-10, bt2020-12.
--colormatrix <string>  Specify color matrix setting ["???"]
                      - undef, bt709, fcc, bt470bg, smpte170m,
                        smpte240m, GBR, YCgCo, bt2020nc, bt2020c.
--chromaloc <integer>   Specify chroma sample location (0 to 5) [0].

Por lo tanto, no creo que pueda incrustar un perfil de color personalizado, pero puede indicar qué estándar debe usar el decodificador para producir valores de píxeles RGB.

Pensé que algunos formatos de contenedor también podrían contener información sobre espacios de colores, pero tal vez no.

Peter Cordes
fuente