Il tone mapping comprime un ampio intervallo di luminanza in uno stretto, mantenendo il dettaglio nelle alte luci e nelle ombre. Serve quando il file porta HDR e lo schermo o il percorso di riproduzione vuole SDR. Dove il tuo server lo fa, e se dovrebbe farlo, decide quanto ti costa un film 4K.
1. Cosa il server legge come HDR
Due segnali, entrambi presi dall’analisi del file e non dal nome:
| Conta come | Quando |
|---|---|
| HDR10 | La funzione di trasferimento è SMPTE ST.2084 (la curva PQ), oppure il file porta dati di contorno del display di masterizzazione o del livello di luce del contenuto, che restano affidabili anche dove la caratteristica di trasferimento è andata persa |
| HLG | La funzione di trasferimento è ARIB STD-B67, la curva broadcast |
Il Dolby Vision non ha un ramo tutto suo nella decisione di streaming. Lo scanner ne legge profilo e livello, e le statistiche della libreria contano quei file sotto una gamma dinamica loro, nella scheda Statistiche. La maggior parte dei riversamenti Dolby Vision porta una base HDR10 che segnala PQ, quindi il file viene convertito come HDR10 e i metadati per scena restano non interpretati.
2. Quando il server converte
| Client | Cosa succede |
|---|---|
| App desktop e mobile | Dicono al server che possono aprire il file da sole, quindi la sessione prende il percorso del file diretto e i byte escono com’è sul disco. Il test HDR non viene mai raggiunto |
| Browser moderni | Il profilo copre da H.264 ad AV1 fino a 4K e 25 Mbps. HDR10 si aggiunge dove lo schermo mostra l’HDR e il browser decodifica l’HEVC a 10 bit; altrove un film HDR viene sottoposto a tone mapping salvo diversa richiesta dello spettatore |
| Ricevitori AirPlay | Mantengono HDR10 e accettano HEVC, quindi un Apple TV riceve la gamma come è stata realizzata |
| Ricevitore predefinito di Chromecast | Accetta solo H.264 e AAC, quindi un titolo HDR trasmesso da un telefono viene convertito sia per il codec sia per la gamma |
Ogni conversione che salti mantiene intatta la qualità e lascia un core libero per una sessione che non ha scelta.
3. Quale backend esegue il tone mapping
| Backend | Il tone mapping gira su |
|---|---|
| NVIDIA (NVENC o CUDA) | L’hardware grafico, tramite libplacebo su un dispositivo Vulkan scelto indipendentemente dall’encoder: prima le schede discrete, poi quelle integrate, con rasterizzatori software e dispositivi virtuali esclusi |
| Intel Quick Sync | La sua unità di elaborazione video. Su un titolo 4K HDR, trenta secondi hanno richiesto 3,43 secondi lì contro 27,4 secondi con libplacebo sullo stesso chip integrato |
| VAAPI su Linux (Intel e AMD) | L’unità di elaborazione video, finché i fotogrammi decodificati sono ancora sul dispositivo. Dopo un ripiego sulla decodifica software gira la catena sul processore e il risultato viene caricato per l’encoder |
| AMD AMF su Windows | Il processore, con la codifica sulla scheda. La stessa scheda su un host Linux converte sulla GPU tramite VAAPI |
| Apple VideoToolbox su macOS | Il processore, con la codifica sull’hardware |
Auto prende il primo backend che si valida, nell’ordine NVENC, Quick Sync, VAAPI, VideoToolbox, AMF, e su Linux per ultimo un dispositivo V4L2 con codec.
Per controllare o forzare la scelta, un amministratore apre Impostazioni, scheda Qualità, voce Transcodifica sul server. La scheda Info e diagnostica elenca come chip ciò che la tua macchina ha validato sotto Backend di accelerazione hardware, e un backend che non ha mai superato la verifica a runtime non viene proposto.
4. L’immagine resta la stessa fra i backend
L’operatore è Hable ovunque. La catena software converte in luce lineare a un picco nominale di cento nit, applica il tone mapping con Hable senza desaturazione, poi torna a BT.709, e libplacebo riceve lo stesso operatore Hable così i due coincidono. Spostare il server dal processore alla scheda grafica non cambia quindi la resa, e una misura fatta prima dello spostamento significa ancora qualcosa dopo.
5. Quando una scheda cade a metà sessione
- Una sessione hardware che muore prima del primo segmento viene rilanciata con decodifica software, l’encoder hardware mantenuto e il tone mapping sul processore.
- Se il secondo avvio muore allo stesso modo, il backend viene segnato come compromesso. La sessione riparte interamente in software, e ogni sessione successiva in quel processo passa direttamente a libx264.
Il log racconta ogni passo, quindi cercalo:
| Riga del log | Significato |
|---|---|
Hardware decode failed at startup on {backend}; retrying with software decode |
Il primo passo |
Hardware acceleration {backend} tainted |
Il secondo passo. Il segnale vive in memoria, quindi riavviare il server lo azzera e il backend viene verificato di nuovo |
GPU HDR tonemap support detected: False |
Il filtro libplacebo o il dispositivo Vulkan non è mai partito |
| Un avviso che un dispositivo Vulkan indicato corrompe i trasferimenti dei fotogrammi | Quel dispositivo non ha superato il controllo che li verifica |
6. Misura con media reali
Risoluzione, codec sorgente, profondità di colore, sottotitoli incisi e bitrate in uscita spostano tutti il costo di una transcodifica. HDR con sottotitoli incisi è la cosa più pesante che il server faccia, perché la sovrapposizione richiede il fotogramma di nuovo nella memoria di sistema e solo NVIDIA e Quick Sync possono mantenere l’encoder hardware durante quel passaggio. Su qualsiasi altro backend quella combinazione porta la sessione in software, e una libreria di dischi riversati con sottotitoli bitmap è il posto in cui la incontrerai. La guida ai dischi tratta il costo di scegliere una di quelle tracce.
- Scegli un file 4K HDR rappresentativo della tua libreria, un film che guardi davvero.
- Riproducilo con il client e la rete che userai davvero.
- Lascialo andare abbastanza a lungo perché l’encoder si assesti, idealmente per tutto il film.
Un controllo delle capacità dice solo che un dispositivo c’è. Il carico prolungato mostra se la riproduzione regge.
Ordine di preferenza: prima la riproduzione HDR diretta, poi un percorso di tone mapping accelerato che ha superato una sessione reale, poi il processore, che funziona ovunque e richiede un buon margine ad alta risoluzione.
Domande frequenti
Perché la mia Radeon codifica senza tone mapping?
Sei su Windows, dove AMF fa la codifica sulla scheda e lascia la conversione HDR al processore. Su Linux una scheda AMD è pilotata tramite VAAPI, la cui unità di elaborazione video converte i fotogrammi sul posto.
Il mio server ieri usava la scheda grafica e oggi il processore. Cosa è cambiato?
Con ogni probabilità una sessione è fallita all’avvio e il backend è stato scartato per la durata del processo. Cerca tainted nel log del server. Riavviare il server azzera quello stato e verifica di nuovo il backend, e un secondo fallimento è un guasto vero.
Posso impedire a un browser di fare il tone mapping di un film HDR?
Sì. Apri Impostazioni, scheda Qualità, e guarda Immagine HDR. Automatico, il valore predefinito, tiene l’immagine HDR10 attraverso la transcodifica ovunque lo schermo mostri l’HDR e il browser decodifichi l’HEVC a 10 bit. Mantieni l’HDR la tiene su ogni schermo, e Converti in SDR affida il tone mapping al server. Scegli Converti in SDR se sullo schermo l’HDR non appare corretto, perché è proprio un monitor SDR a cui arriva un flusso HDR a dare l’immagine grigia. L’app desktop prende il file intero.
Il server capisce il Dolby Vision?
Legge lo strato base HDR10 che quasi ogni file Dolby Vision porta e converte su quello. I metadati dinamici per scena vengono registrati durante la scansione e contati nelle statistiche, non interpretati per un tone mapping. Riprodurre il file intatto su un’app desktop o mobile lascia intero il flusso, strato compreso.