Uno de los problemas más recurrentes y que más dudas suscitan en los foros sobre gestión del color son las diferencias que se producen al reproducir nuestros proyectos en diferentes dispositivos. Puede llegar a ser complicado reconocer el origen del problema dadas las posibles variables que entran en juego. Desde una incorrecta gestión de origen a un monitor mal calibrado.
Sobretodo cuando no podemos probar por nosotros mismos el dispositivo en el que se produce el problema, escapa de nuestras manos tener la certeza de que lo que ve el cliente es lo más aproximado al resultado que tratamos de representar.
HDR por su naturaleza adaptable, vendría a solucionar parte de estos problemas, pero su implantación generalizada todavía parece quedar lejana así que tenemos que continuar lidiando con la diversidad de normas y dispositivos que existen actualmente.
Como comentábamos, las posibles variables son muchas: el dispositivo, el sistema operativo (ColorSync en MacOS), el reproductor o los metadatos embebidos influirán en el resultado final de la imagen.
Por todo ello, entrar en detalles técnicos sobre todos estos elementos podría dar para un artículo muy extenso. De modo que nos centraremos en posibles soluciones (adelanto que no hay ninguna solución definitiva en la mayoría de casos).
Minimizar los riesgos
La primera opción y más obvia, es realizar el visionado con el cliente en nuestro equipo controlado y correctamente configurado. Idealmente esto implica procesar la señal a través de una salida limpia (las Decklink de BM) o clean feed en su defecto en Resolve junto a un monitor calibrado correctamente.
Por supuesto, esto no siempre es posible de modo que necesitaremos tener otras soluciones a mano.
Etiquetas de transferencia de color (color tags)
Una característica que nos ofrece Davinci Resolve es ajustar las etiquetas del espacio de color y gamma al llevar a cabo una exportación. Estas etiquetas por defecto deberían coincidir con las de nuestro timeline de trabajo. Pero podemos ajustarlas a nuestras necesidades si conocemos cómo funcionan. Lo que puede ser útil en algunos casos para indicar al software de reproducción cuales son las características del contenido y cómo debe ser representarlo.
Este ajuste podemos encontrarlo en el Delivery de Resolve, en Advanced Settings del panel:
Depende mucho del software con el que se vaya a reproducir ya que algunos programas entienden estos metadatos y otros harán un bypass de ellos. De modo que si alteramos estos parámetros, es imprescindible verificar el contenido procesado.
El caso de MacOS
El caso de Quicktime y Safari es probablemente el más perceptible. En muchas ocasiones el contenido que se ha exportado desde Resolve está muy alejado de lo que después se visualiza en estos programas, lo que parece a primera vista inexplicable pero tiene cierto sentido y algunas posibles soluciones.
Desde 2015, Apple comenzó a soportar su propia implementación del espacio P3, conocido como Display P3. Por ello, al utilizar nuevas versiones o monitores recientes que usan este espacio de color, cuando reproducimos contenido desde herramientas de MacOs como Quicktime o Safari se obtiene un resultado en la reproducción muy diferente a otras herramientas.
Sin embargo, el sistema de gestión de color en MacOs también tiene un punto fuerte y es que procesa los metadatos de transferencia de color (no todos los reproductores lo hacen). Gracias a esta característica tenemos más opciones a la hora de representar el color.
Si bien nunca será infalible y habrá que verificar, puesto que puede variar mucho según el perfil de color que tengamos seleccionado para el monitor, podremos aproximarnos a nuestro objetivo en la mayoría de casos.
A pesar de que el estándar Rec.709 usa la curva de gamma (EOTF) 2.4, para la mayoría de monitores de escritorio es preferible usar gamma 2.2 o sRGB. En el caso de MacOS, Resolve tiene una función de transferencia preparada para trabajar en equipos Mac. La Rec.709-A (A de Apple), mapea internamente a una curva Rec709 al reproducir el contenido con herramientas integradas en el Colorsync de MacOs. Este metadato, por lo general es obviado por otros programas por lo que en principio, no debería dar problemas al visualizar en otros reproductores.
Otras configuraciones que podemos probar para conseguir nuestro objetivo, dependiendo del perfil y el reproductor usado, es jugar con las etiquetas sRGB y P3.
Modificar las etiquetas mediante la línea de comandos
Y no sería un artículo de este blog si no pasamos por la terminal. Así que aquí va el camino alternativo haciendo uso del línea de comandos para conseguir el mismo objetivo.
Usaremos FFmpeg, por lo que esta solución nos servirá en cualquier sistema operativo. Para instalar en el caso de Ubuntu y derivadas sudo apt install ffmpeg
Primero de todo para obtener la información de un archivo y sus tags de transferencia de color:
ffprobe input.mov
Para modificar las etiquetas sin transcodificar el vídeo podemos hacer uso de la función copy. Según el codec que utilice el flujo de vídeo tendremos que usar unos parámetros diferentes. En el caso de h265 (HEVC), es necesario hacer uso de los parámetros bistream para poder modificar los metadatos de la cabecera. Podemos utilizar el siguiente comando:
ffmpeg -i input.mov -c copy -bsf:v hevc_metadata=colour_primaries=1:matrix_coefficients=1:transfer_characteristics=1 output.mov
Para convertir etiquetas en cabeceras Prores, tenemos esta herramienta de la BBC. Es necesario compilarla por uno mismo, pero tiene pocos requerimientos, por lo que no supondrá muchos problemas hacerlo.
En el ejemplo, estaríamos cambiando las etiquetas a Rec.709. Los parámetros que podemos utilizar para otras funciones de transferencia y rangos de color los podemos ver en la siguiente tabla:
No. | Transfer Function | Colour Primaries | Colour Matrix |
0 | Reserved | Reserved | GBR |
1 | ITU-R BT.709 | ITU-R BT.709 | BT709 |
2 | Unspecified | Unspecified | Unspecified |
3 | Reserved | Reserved | Reserved |
4 | Gamma 2.2 curve | ITU-R BT.470M | FCC |
5 | Gamma 2.8 curve | ITU-R BT.470BG | BT470BG |
6 | SMPTE 170M | SMPTE 170M | SMPTE 170M |
7 | SMPTE 240M | SMPTE 240M | SMPTE 240M |
8 | Linear | FILM | YCOCG |
9 | Log | ITU-R BT.2020 | BT2020 Non-constant Luminance |
10 | Log Sqrt | SMPTE ST 428-1 | BT2020 Constant Luminance |
11 | IEC 61966-2-4 | DCI P3 | |
12 | ITU-R BT.1361 Extended Colour Gamut | P3 D65 | |
13 | IEC 61966-2-1 | ||
14 | ITU-R BT.2020 10 bit | ||
15 | ITU-R BT.2020 12 bit | ||
16 | SMPTE ST 2084 (PQ) | ||
17 | SMPTE ST 428-1 | ||
18 | ARIB STD-B67 (HLG) |
Coordinador de postproducción y trainer oficial de Davinci Resolve por Blackmagic Design.