✦Upscaling neurale · in sviluppo

Upscaling neurale sul dispositivo, in sviluppo — pixel più nitidi da uno stream più leggero.

Stiamo costruendo un modello sul dispositivo che ricostruisce testo e bordi più nitidi da uno stream a bitrate più basso, in esecuzione interamente sulla NPU del tuo dispositivo, mai nel cloud. È in sviluppo e non è ancora nell'app. Ecco l'idea e cosa mantiene già oggi nitida una sessione Remio senza niente di tutto questo.

✦L'idea

Perché il testo in streaming diventa sfocato e come l'upscaling sul dispositivo è pensato per rimediare.

Gli encoder video classici sono ottimizzati per il movimento, non per i bordi fini e ad alto contrasto di cui sono fatti il testo e gli elementi dell'interfaccia. Quando la banda si restringe, quei bordi sono la prima cosa a sparire: è semplicemente il modo in cui funziona la compressione video, su qualsiasi desktop remoto, non solo su Remio.

Uno stream di desktop remoto subisce due compressioni prima di arrivare ai tuoi occhi. Prima, l'host riduce la risoluzione quando quella di origine supera ciò che il tuo client può mostrare: un MacBook Pro M4 da 14" che fa da host a 3024 per 1964 trasmesso a un iPad mini a 2266 per 1488 ha già rinunciato a circa un terzo dei suoi pixel prima che l'encoder veda il fotogramma. Poi, l'encoder stesso applica una compressione con perdita per rientrare nel bitrate che la rete può trasportare. Entrambi i passaggi eliminano il dettaglio ad alta frequenza, esattamente ciò che fa la differenza tra il glifo nitido di un carattere e una macchia sfocata.

L'idea che stiamo esplorando è un passaggio di recupero della qualità eseguito sul client dopo la decodifica: guardare il fotogramma decompresso e prevedere il contenuto ad alta frequenza che il fotogramma originale aveva prima di essere ridotto e spremuto attraverso l'encoder. A differenza dell'upscaling classico bilineare o bicubico — che può solo interpolare dai pixel già presenti — una rete neurale addestrata può imparare che aspetto hanno bordi, lettere e forme dell'interfaccia a piena risoluzione e ricostruire dettagli che una semplice interpolazione non recupera.

Se funziona come speriamo, l'effetto sarebbe più visibile proprio dove serve di più: il testo di corpo a 11 punti, il codice in un carattere a spaziatura fissa, le linee sottili in un file Figma, i contorni dei pulsanti in una barra laterale. Sono i casi in cui qualche pixel sbavato fa la differenza tra "leggibile" e "devo avvicinarmi". È un vero divario in ciò che può fare da solo qualsiasi encoder ottimizzato per il movimento, ed è proprio per questo che vale la pena dedicare tempo di ricerca a scoprire se un modello sul dispositivo può colmarlo.

Non ci siamo ancora. Oggi, la risposta onesta a "come mantengo nitida una sessione con una connessione scadente" è il motore di bitrate adattivo di Remio: legge già la tua rete e sceglie l'intervallo che mantiene l'immagine nitida quanto la connessione consente, senza picchi di lag. L'upscaling neurale sarebbe un livello aggiuntivo sopra di esso, non un sostituto.

✦Perché il nativo ci dà un vantaggio

Un vero client nativo, non una web view incapsulata.

Ogni client Remio è un'app nativa al 100% sulla sua piattaforma: niente Electron, nessuna sandbox del browser di mezzo. Per questo dialoga già direttamente con gli stessi framework hardware di cui avrebbe bisogno un modello di upscaling neurale: Core ML e il Neural Engine su Apple Silicon, NNAPI sui dispositivi Android con una NPU dedicata. Se lo costruiamo, si inserisce in un'architettura già presente per cattura, codifica e decodifica: nessun passaggio nel cloud, nessun runtime separato da aggiungere.

È l'unico motivo per cui la versione sul dispositivo è l'unica di questa idea che prenderemmo in considerazione. Un viaggio di andata e ritorno nel cloud aggiungerebbe una latenza che la filosofia zero-buffering di Remio non accetta: quindi qualsiasi modello che rilasciamo deve girare in locale, altrimenti non viene rilasciato affatto.

Il client iPhone nativo di Remio mentre trasmette il desktop di un Mac

Su Apple Silicon — ogni Mac della serie M, iPad Pro, iPad Air e iPhone Pro recente — Core ML può indirizzare un modello compilato sul Neural Engine, un coprocessore dedicato accanto a CPU e GPU sullo stesso die, costruito per le piccole moltiplicazioni di matrici ripetitive in cui le reti neurali passano la maggior parte del tempo, con una frazione della potenza che userebbe la GPU. È un obiettivo capace ed efficiente proprio per il tipo di modello che servirebbe a questa idea: solo che non è ancora collegato.

Su Android, NNAPI offre ai dispositivi supportati — Pixel con Google Tensor, telefoni Galaxy e OnePlus recenti — lo stesso tipo di indirizzamento verso una NPU hardware. Su entrambe le piattaforme, i dispositivi più vecchi senza una NPU abbastanza veloce ripiegherebbero semplicemente sulla decodifica 1:1, come Remio si comporta oggi ovunque: non blocca mai lo stream aspettando un hardware che non c'è.

Niente di tutto ciò è una promessa sulle date di rilascio. È il motivo per cui pensiamo valga la pena fare la ricerca: il prerequisito architetturale più difficile esiste già, ed è un punto di partenza davvero insolito per una funzione come questa.

✦La nostra soglia per rilasciarlo

Cosa dovremmo dimostrare prima che venga rilasciato.

Non aggiungeremo una funzione AI solo perché "AI" vende. Ecco le domande oneste a cui dovremmo prima dare buone risposte.

Batte chiaramente ciò che abbiamo già? Il motore di bitrate adattivo di Remio legge già la tua connessione e sceglie l'intervallo che mantiene l'immagine nitida quanto la rete consente. Un modello neurale si guadagna il posto solo se recupera dettaglio oltre quel livello di base con un margine che le persone notino davvero, non una vittoria in un benchmark che sparisce alla normale distanza di visione.

Costa una quantità significativa di batteria su un telefono o un tablet? Eseguire un modello su ogni fotogramma decodificato, per tutta la sessione, ha un costo energetico reale. Vorremmo che quel costo fosse abbastanza piccolo da non doverci pensare, oppure un chiaro e onesto comportamento "Auto" che consumi batteria solo quando c'è qualcosa che vale la pena recuperare, con un vero interruttore per disattivarlo per chi preferisce non pagarlo affatto.

Resta onesto su ciò che fa? Un modello che ricostruisce dettagli plausibili da pixel compressi fa qualcosa di diverso da un modello che inventa contenuti che non c'erano mai stati. Per un desktop remoto, dove ciò che vedi deve corrispondere a ciò che c'è davvero sull'host, quella distinzione non è un di più: è l'intero modello di fiducia. Qualsiasi cosa rilasciamo dovrebbe ricostruire, mai inventare.

Finché non potremo rispondere a tutte e tre con numeri reali, non proiezioni, questa resta un'idea di ricerca su questa pagina, non un interruttore nell'app.

✦Reale oggi

Ciò che già mantiene nitida l'immagine, senza bisogno di AI.

Non serve un progetto di ricerca per avere oggi una sessione Remio nitida. Quattro elementi di semplice ingegneria, già in uso, fanno il lavoro.

Codec
H.265 hardware, da un capo all'altrocodifica e decodifica girano entrambe su silicio dedicato, con H.264 come alternativa
Bitrate
Adattivo alla tua retelegge il tempo di andata e ritorno e sceglie l'intervallo che resta nitido senza picchi di lag
Display
Dimensionato sulla tua finestraun display virtuale che corrisponde all'area del tuo client, non una copia compressa del monitor dell'host
Rendering
Zero bufferingogni fotogramma mostrato è il più recente disponibile: un pacchetto perso viene rinviato se può ancora arrivare in tempo, altrimenti saltato per un fotogramma nuovo, mai la riproduzione di quelli vecchi

H.265 hardware da un capo all'altro significa che l'encoder sull'host e il decoder sul tuo client girano entrambi su silicio video dedicato, non sulla CPU: lo stesso motivo per cui un video 4K si riproduce fluido su un telefono che si bloccherebbe nel tentare di decodificarlo via software. Quel margine è ciò che permette a Remio di mantenere il dettaglio a un bitrate che un codec software non reggerebbe.

Il motore di bitrate adattivo è il pezzo che svolge il lavoro che l'upscaling neurale viene esplorato per aiutare a fare: misura la tua connessione all'inizio di una sessione e sceglie l'intervallo di bitrate più alto che quella connessione può sostenere senza picchi di lag, invece di affamare in silenzio lo stream. Scopri come funziona la qualità adattiva →

Il display virtuale e il renderer zero-buffering completano il quadro. Poiché il display trasmesso da Remio è dimensionato esattamente sulla tua finestra e non sull'intero monitor dell'host, non guardi mai una copia ridotta di qualcosa di più grande. E poiché il renderer mostra sempre il fotogramma decodificato più recente, scartando quelli vecchi invece di recuperarli, nulla di ciò che vedi è vecchio quando arriva sul tuo schermo. Con questi quattro elementi, la maggior parte delle sessioni non ha mai bisogno di un passaggio di recupero della qualità.

✦Cosa non rilasceremo

I principi che questo lavoro è pensato per rispettare.

Il marketing dell'AI generativa ha creato l'aspettativa che "miglioramento AI" significhi inventare dettagli. Prima di inserire un modello come questo in Remio, dovrebbe superare un breve elenco onesto.

Non inventerebbe parti di interfaccia mancanti. Se un pulsante è tagliato al bordo di uno stream perché l'encoder ha scartato una regione, un modello che inventa il resto del pulsante non ha posto in un desktop remoto. Devi poterti fidare che ciò che vedi sul tuo iPad corrisponda a ciò che c'è davvero sull'host: un modello generativo che riempisse contenuti che non c'erano mai stati romperebbe quella fiducia, quindi rilasceremmo solo un modello che ricostruisce da pixel realmente codificati, mai uno che inventa.

Non pretenderebbe di aumentare la frequenza dei fotogrammi. La frequenza dei fotogrammi su Remio è determinata dalla frequenza di cattura dell'host e dalla capacità della rete di consegnare i fotogrammi in tempo: è un compito per il renderer zero-buffering già in uso, non per un upscaler. Qualsiasi modello che costruiamo produrrebbe un fotogramma più nitido per ogni fotogramma decodificato, niente di più.

Non verrebbe presentato come una correzione della riproduzione video sull'host. Se guardi un film sul tuo Mac remoto, ciò che viene trasmesso è quello che il decoder video dell'host stesso ha reso, alla risoluzione dell'host. Un passaggio di recupero della qualità sullo stream non migliora una sorgente che l'host ha già prodotto; per una riproduzione dei film più nitida, il consiglio onesto resta quello di oggi: riproducilo sul tuo dispositivo client, non sull'host.

E non sarebbe mai venduto come sostituto di una buona rete. Una connessione LAN diretta sarà sempre più nitida di una connessione WAN limitata con qualsiasi quantità di upscaling sopra: il motore di bitrate adattivo che Remio offre oggi ti dà già la migliore immagine che la tua connessione reale può sostenere. Tutto ciò che costruiamo qui sarebbe un'assicurazione aggiuntiva per le reti scadenti, non un sostituto di una buona.

✦FAQ

Domande frequenti

Domande che emergono sull'upscaling neurale sul dispositivo, con risposte oneste qui sotto.

L'upscaling neurale sul dispositivo è disponibile oggi in Remio?
Non ancora. È una direzione di ricerca che stiamo esplorando, non una funzione che puoi attivare, e non promettiamo una data di rilascio. Ciò che mantiene già oggi nitida una sessione Remio è semplice ingegneria: H.265 hardware da un capo all'altro, un motore di bitrate adattivo che legge la tua rete e sceglie l'intervallo giusto, un display virtuale dimensionato esattamente sulla tua finestra e un renderer zero-buffering che mostra sempre il fotogramma più recente.
Se lo costruite, qualcosa di tutto questo uscirebbe dal mio dispositivo?
No. I client di Remio sono app native con accesso diretto ai framework hardware del dispositivo: Core ML e il Neural Engine sulle piattaforme Apple, NNAPI sulle NPU Android. Qualsiasi modello che rilasciamo girerebbe come tutto il resto in Remio gira già: in locale, sul tuo dispositivo, senza che nulla di aggiuntivo esca per essere elaborato nel cloud.
Perché esplorarlo invece di rilasciarlo e basta?
Perché deve battere chiaramente le leve che abbiamo già. Il motore di bitrate adattivo di Remio sceglie già l'intervallo più nitido che una connessione può sostenere, quindi un modello dovrebbe dimostrare di aggiungere nitidezza reale e visibile oltre quello, e farlo senza un costo significativo di batteria su telefoni e tablet, prima di guadagnarsi un posto nell'app.
Cosa mantiene nitidi testo e codice su Remio adesso?
Quattro cose già in uso. Codifica e decodifica H.265 hardware da un capo all'altro, con H.264 come alternativa. Un motore di bitrate adattivo che legge il tempo di andata e ritorno e sceglie l'intervallo che mantiene nitida l'immagine senza picchi di lag. Un display virtuale dimensionato esattamente sulla finestra del tuo client, non una copia compressa del monitor dell'host. E un renderer zero-buffering: ogni fotogramma mostrato è il più recente disponibile, quindi nulla si ammorbidisce aspettando in coda.
Direte quando verrà rilasciato?
Sì. Questa pagina e quella di panoramica sull'AI seguono lo stato reale di ogni funzione: in esplorazione o rilasciata. Nel momento in cui l'upscaling neurale sarà reale e verificabile, entrambe le pagine lo diranno, con la stessa onestà. Fino ad allora resta etichettato per quello che è: un'idea in fase di ricerca.
Icona dell'app Remio

Veloce e nitido oggi. L'upscaling neurale sta arrivando.

Installa Remio per lo streaming H.265 hardware da un capo all'altro, un motore di bitrate adattivo che legge la tua rete e un display virtuale dimensionato esattamente sulla tua finestra: tutto già disponibile. L'upscaling neurale sul dispositivo è ancora un'idea di ricerca su questa pagina; nessuna data promessa, e questa pagina lo dirà onestamente nel momento in cui cambierà.