El tone mapping comprime un rango de luminancia amplio en otro estrecho, conservando el detalle de las altas luces y las sombras. Hace falta cuando el archivo lleva HDR y la pantalla o la ruta de reproducción esperan SDR. Dónde lo hace tu servidor, y si debería hacerlo, decide lo que te cuesta una película en 4K.
1. Lo que el servidor lee como HDR
Dos señales, ambas tomadas del análisis del archivo y no de su nombre:
| Cuenta como | Cuándo |
|---|---|
| HDR10 | La función de transferencia es SMPTE ST.2084 (la curva PQ), o el archivo lleva metadatos adicionales de la pantalla de masterización o del nivel de luz del contenido, que siguen siendo fiables incluso cuando la característica de transferencia se ha perdido |
| HLG | La función de transferencia es ARIB STD-B67, la curva de la difusión televisiva |
Dolby Vision no tiene una rama propia en la decisión de streaming. El análisis lee su perfil y su nivel, y las estadísticas de tu biblioteca cuentan esos archivos bajo un rango dinámico propio en la pestaña Statistics. La mayoría de las copias en Dolby Vision llevan una base HDR10 que señala PQ, así que el archivo se convierte como HDR10 y los metadatos escena por escena quedan sin interpretar.
2. Cuándo convierte el servidor
| Cliente | Qué ocurre |
|---|---|
| Aplicaciones de escritorio y móviles | Le dicen al servidor que pueden abrir el archivo por sí mismas, así que la sesión toma la ruta del archivo directo y los bytes salen tal como están en el disco. Nunca se llega a la comprobación de HDR |
| Navegadores actuales | El perfil cubre de H.264 a AV1 hasta 4K y 25 Mbps. HDR10 se añade cuando la pantalla muestra HDR y el navegador decodifica HEVC de 10 bits; en cualquier otro caso, una película HDR pasa por el tone mapping salvo que quien ve pida otra cosa |
| Receptores AirPlay | Conservan HDR10 y aceptan HEVC, así que un Apple TV recibe el rango tal como se creó |
| Receptor predeterminado de Chromecast | Solo acepta H.264 y AAC, así que un título HDR enviado desde un teléfono se convierte por el códec y por el rango |
Cada conversión que te ahorras mantiene intacta la calidad y deja un núcleo libre para una sesión que no tiene alternativa.
3. Qué backend hace el tone mapping
| Backend | El tone mapping se ejecuta en |
|---|---|
| NVIDIA (NVENC o CUDA) | El hardware gráfico, mediante libplacebo sobre un dispositivo Vulkan elegido con independencia del codificador: primero los adaptadores dedicados, después los integrados, excluyendo los rasterizadores por software y los dispositivos virtuales |
| Intel Quick Sync | Su unidad de procesamiento de vídeo. En un título 4K HDR, treinta segundos tardaron allí 3,43 segundos, frente a 27,4 segundos mediante libplacebo en el mismo chip integrado |
| VAAPI en Linux (Intel y AMD) | La unidad de procesamiento de vídeo, mientras los fotogramas decodificados siguen en el dispositivo. Tras recurrir a la decodificación por software, se ejecuta la cadena del procesador y el resultado se envía al codificador |
| AMD AMF en Windows | El procesador, con la codificación en la tarjeta. La misma tarjeta en un host Linux convierte en la GPU mediante VAAPI |
| Apple VideoToolbox en macOS | El procesador, con la codificación en el hardware |
Auto toma el primer backend que supera la validación, en el orden NVENC, Quick Sync, VAAPI, VideoToolbox, AMF y, en Linux, un dispositivo V4L2 con códec.
Para comprobarlo o forzarlo, un administrador abre Settings, la pestaña Quality, Server transcoding. La pestaña Info & Diagnostics muestra como etiquetas, en Hardware acceleration backends, lo que tu máquina ha validado, y no se ofrece un backend que nunca ha superado su prueba de funcionamiento.
4. La imagen es la misma en todos los backends
El operador es Hable en todas partes. La cadena por software convierte a luz lineal con un pico nominal de cien nits, aplica el tone mapping de Hable sin desaturación y vuelve a BT.709, y libplacebo recibe el mismo operador Hable para que ambos coincidan. Por eso, pasar el servidor del procesador a la tarjeta gráfica no cambia la gradación, y una medición anterior al cambio sigue teniendo sentido después.
5. Cuando una tarjeta falla a mitad de sesión
- Una sesión por hardware que se detiene antes de su primer segmento se relanza con decodificación por software, con el codificador por hardware intacto y el tone mapping en el procesador.
- Si el segundo lanzamiento se detiene de la misma forma, el backend se marca como averiado (tainted). La sesión se reinicia por completo en software, y todas las sesiones posteriores de ese proceso van directamente a libx264.
El registro nombra cada paso, así que búscalo en él:
| Línea del registro | Significado |
|---|---|
Hardware decode failed at startup on {backend}; retrying with software decode |
El primer paso |
Hardware acceleration {backend} tainted |
El segundo paso. La marca vive en memoria, así que reiniciar el servidor la borra y el backend se vuelve a probar |
GPU HDR tonemap support detected: False |
El filtro libplacebo o el dispositivo Vulkan nunca llegaron a arrancar |
| Un aviso de que un dispositivo Vulkan concreto corrompe sus transferencias de fotogramas | Ese dispositivo no superó la comprobación que las verifica |
6. Mide con contenido real
La resolución, el códec de origen, la profundidad de bits, los subtítulos incrustados y la tasa de bits de salida cambian el coste de una transcodificación. El HDR con subtítulos incrustados es lo más pesado que hace el servidor, porque la superposición necesita el fotograma de vuelta en la memoria del sistema y solo NVIDIA y Quick Sync pueden mantener el codificador por hardware durante ese proceso. En cualquier otro backend, esa combinación pasa la sesión a software, y te la encontrarás en una biblioteca de copias de discos con subtítulos en imagen. La guía de discos explica el coste de elegir una de esas pistas.
- Elige un archivo 4K HDR representativo de tu biblioteca, una película que de verdad veas.
- Reprodúcelo con el cliente y por la red que de verdad vas a usar.
- Déjalo correr lo suficiente para que el codificador se estabilice, idealmente la película entera.
Una prueba de capacidad solo te dice que hay un dispositivo. La carga sostenida muestra si la reproducción aguanta.
Orden de preferencia: primero la reproducción HDR directa, después una ruta de tone mapping acelerada que haya superado una sesión real, y después el procesador, que funciona en todas partes y necesita un margen generoso a alta resolución.
Preguntas frecuentes
¿Por qué mi Radeon codifica sin tone mapping?
Estás en Windows, donde AMF hace la codificación en la tarjeta y deja la conversión HDR al procesador. En Linux, una tarjeta AMD se gestiona mediante VAAPI, cuya unidad de procesamiento de vídeo convierte los fotogramas allí mismo.
Ayer mi servidor usaba la tarjeta gráfica y hoy usa el procesador. ¿Qué ha cambiado?
Lo más probable es que una sesión fallara al arrancar y que el backend quedara descartado durante toda la vida del proceso. Busca tainted en el registro del servidor. Reiniciar el servidor borra ese estado y vuelve a probar el backend, y un segundo fallo es una avería real.
¿Puedo impedir que un navegador aplique tone mapping a una película HDR?
Sí. Abre Settings, la pestaña Quality, y mira HDR picture. Automatic, el valor predeterminado, mantiene la imagen HDR10 durante una transcodificación siempre que la pantalla muestre HDR y el navegador decodifique HEVC de 10 bits. Keep HDR la mantiene en todas las pantallas, y Convert to SDR hace que el servidor aplique el tone mapping. Elige Convert to SDR si el HDR no se ve bien en tu pantalla, ya que la imagen grisácea viene precisamente de un monitor SDR que recibe un flujo HDR. La aplicación de escritorio recibe el archivo entero.
¿Entiende el servidor Dolby Vision?
Lee la capa base HDR10 que lleva casi cualquier archivo Dolby Vision y convierte a partir de ella. Los metadatos escena por escena se registran durante el análisis y se cuentan en tus estadísticas, pero no se interpretan para un tone mapping. Reproducir el archivo sin modificar en una aplicación de escritorio o móvil deja intacto todo el flujo, esa capa incluida.