Neural upscaling · exploring

An idea in the lab — sharper pixels, someday.

We're exploring whether an on-device model could rebuild sharper text and edges from a lower-bitrate stream, running entirely on your device's NPU — never in the cloud. Nothing ships yet, and we're not promising when. Here's the idea, and what already keeps a Remio session sharp today without any of it.

The idea

Why streamed text gets fuzzy, and why we think upscaling could help.

Classical video encoders are tuned for motion, not for the fine, high-contrast edges that text and UI chrome are made of. When bandwidth tightens, those edges are the first thing to go — that part is just how video compression works, on any remote desktop, not only Remio's.

A remote-desktop stream goes through two compression hits before it reaches your eyes. First, the host downscales when the source resolution exceeds what your client can display — an M4 MacBook Pro 14" hosting at 3024 by 1964 streamed to an iPad mini at 2266 by 1488 has already given up roughly a third of its pixels before the encoder sees the frame. Second, the encoder itself applies lossy compression to fit the bitrate the network can carry. Both steps throw away high-frequency detail — exactly what makes the difference between a crisp character glyph and a smudgy blob.

The idea we're exploring is a quality-recovery pass that would run on the client after decode: look at the decompressed frame and predict the high-frequency content the original frame had before it was downscaled and squeezed through the encoder. Unlike classical bilinear or bicubic upscaling — which can only interpolate from the pixels already there — a trained neural network can learn what edges, letterforms, and UI shapes look like at full resolution, and reconstruct detail a simple interpolation can't recover.

If it works the way we hope, the effect would be most visible exactly where you need it most: 11-point body text, code in a monospaced font, hairlines in a Figma file, button outlines in a sidebar. These are the cases where a few smudged pixels mean the difference between "readable" and "I have to lean in." That's a real gap in what any motion-tuned encoder can do on its own — which is precisely why it's worth the research time to find out whether an on-device model can close it.

We're not there yet. Today, the honest answer to "how do I keep a session sharp on a bad connection" is Remio's adaptive bitrate engine — it already reads your network and picks the envelope that keeps the picture as sharp as the connection allows, without spiking lag. Neural upscaling would be an additional layer on top of that, not a replacement for it.

Why native gives us a head start

A real native client, not a wrapped web view.

Every Remio client is a 100% native app on its platform — no Electron, no browser sandbox in between. That's why it already talks directly to the same hardware frameworks a neural upscaling model would need: Core ML and the Neural Engine on Apple Silicon, NNAPI on Android devices with a dedicated NPU. If we build this, it plugs into an architecture that's already there for capture, encode, and decode — no cloud hop, no separate runtime to bolt on.

That's the whole reason on-device is the only version of this idea we'd consider. A cloud round-trip would add latency Remio's zero-buffering philosophy doesn't accept — so any model we ship has to run locally, or it doesn't ship at all.

Remio's native iPhone client streaming a Mac desktop

On Apple Silicon — every M-series Mac, iPad Pro, iPad Air, and recent iPhone Pro — Core ML can route a compiled model onto the Neural Engine, a dedicated coprocessor sitting next to the CPU and GPU on the same die, built for the small, repetitive matrix multiplications neural networks spend most of their time on, at a fraction of the wattage the GPU would use. That's a capable, efficient target for exactly the kind of model this idea would need — it's just not wired up yet.

On Android, NNAPI gives supported devices — Pixel with Google Tensor, recent Galaxy and OnePlus phones — the same kind of routing onto a hardware NPU. On both platforms, older devices without a fast enough NPU would simply fall back to decoding 1:1, the same way Remio behaves everywhere today: it never blocks the stream waiting on hardware that isn't there.

None of that is a promise about ship dates. It's the reason we think the research is worth doing — the hard architectural prerequisite already exists, which is a genuinely unusual starting point for a feature like this.

Our bar for shipping it

What we'd need to prove before this ships.

We're not going to bolt on an AI feature just because "AI" sells. Here are the honest questions we'd need good answers to first.

Does it clearly beat what we already have? Remio's adaptive bitrate engine already reads your connection and picks the envelope that keeps the picture as sharp as the network allows. A neural model only earns its place if it recovers detail beyond that baseline by a margin people actually notice — not a benchmark win that disappears at normal viewing distance.

Does it cost meaningful battery on a phone or tablet? Running any model on every decoded frame, all session long, has a real power cost. We'd want that cost to be small enough that nobody has to think about it — or a clear, honest "Auto" behavior that only spends the battery when there's something worth recovering, with a real off switch for anyone who'd rather not pay it at all.

Does it stay honest about what it's doing? A model that reconstructs plausible-looking detail from compressed pixels is doing something different from a model that invents content that was never there. For a remote desktop, where what you see has to match what's actually on the host, that distinction isn't a nice-to-have — it's the whole trust model. Anything we ship would have to reconstruct, never hallucinate.

Until we can answer all three with real numbers, not projections, this stays a research idea on this page — not a toggle in the app.

Real today

What already keeps the picture sharp — no AI required.

You don't need a research project to get a sharp Remio session today. Four shipping pieces of plain engineering already do the work.

Codec
Hardware H.265, end to endencode and decode both run on dedicated silicon, with H.264 as fallback
Bitrate
Adaptive to your networkreads round-trip time and picks the envelope that stays sharp without spiking lag
Display
Sized to your windowa virtual display that matches your client canvas, not a squeezed copy of the host's monitor
Rendering
Zero bufferingevery frame drawn is the newest one available — lost frames trigger a fresh keyframe, never a replay of stale ones

Hardware H.265 end to end means the encoder on the host and the decoder on your client both run on dedicated video silicon, not the CPU — the same reason a 4K video plays smoothly on a phone that would choke trying to decode it in software. That headroom is what lets Remio hold detail at a bitrate a software codec couldn't sustain.

The adaptive bitrate engine is the piece doing the actual job neural upscaling is being explored to help with: it measures your connection at the start of a session and chooses the highest bitrate envelope that connection can sustain without lag spikes, instead of quietly starving the stream. Read how adaptive quality works →

The virtual display and the zero-buffering renderer round it out. Because the display Remio streams is sized exactly to your window rather than the host's full monitor, you're never looking at a downscaled copy of something bigger. And because the renderer always draws the newest decoded frame — dropping stale ones instead of catching up on them — nothing you see is old by the time it reaches your screen. Between the four, most sessions never need a quality-recovery pass at all.

What we won't ship

Principles we'd hold this to, if we ever ship it.

Generative AI marketing has set the expectation that "AI enhancement" means inventing detail. Before we'd put a model like this in Remio, it would have to clear a short, honest list.

It would not hallucinate missing UI. If a button is cut off at the edge of a stream because the encoder dropped a region, a model that invents the rest of the button doesn't belong in a remote desktop. You need to trust that what you see on your iPad matches what's actually on the host — a generative model that filled in content that was never there would break that trust, so we'd only ship a model that reconstructs from pixels that were genuinely encoded, never one that invents.

It would not claim to increase frame rate. Frame rate on Remio is set by the host's capture rate and the network's ability to deliver frames on time — that's a job for the zero-buffering renderer that already ships, not for an upscaler. Any model we build would produce one sharper frame per decoded frame, nothing more.

It would not be pitched as fixing video playback on the host. If you're watching a movie on your remote Mac, what streams is whatever the host's own video decoder rendered — at the host's resolution. A quality-recovery pass on the stream doesn't improve on a source the host already produced; for sharper movie playback, the honest advice stays the same as today: play it on your client device, not on the host.

And it would never be sold as a replacement for a good network. A direct LAN connection is always going to be sharper than a clamped WAN connection with any amount of upscaling on top — the adaptive bitrate engine Remio ships today already gets you the best picture your actual connection can sustain. Anything we build here would be additional insurance for bad networks, not a substitute for a good one.

FAQ

Common questions

Questions that come up about on-device neural upscaling — honest answers below.

Is on-device neural upscaling available in Remio today?
Not yet. It's a research direction we're exploring, not a feature you can turn on, and we're not promising a ship date. What already keeps a Remio session sharp today is plain engineering: hardware H.265 end to end, an adaptive bitrate engine that reads your network and picks the right envelope, a virtual display sized exactly to your window, and a zero-buffering renderer that always shows the newest frame.
If you build it, would any of this leave my device?
No. Remio's clients are native apps with direct access to on-device hardware frameworks — Core ML and the Neural Engine on Apple platforms, NNAPI on Android NPUs. Any model we ship would run the same way everything else in Remio already runs: locally, on your device, with nothing extra leaving for cloud processing.
Why explore this instead of just shipping it?
Because it has to clearly beat the levers we already have. Remio's adaptive bitrate engine already picks the sharpest envelope a connection can sustain, so a model would need to prove it adds real, visible sharpness beyond that — and do it without a meaningful battery cost on phones and tablets — before it earns a place in the app.
What keeps text and code sharp on Remio right now?
Four things that ship today. Hardware H.265 encode and decode end to end, with H.264 as fallback. An adaptive bitrate engine that reads round-trip time and picks the envelope that keeps the picture sharp without spiking lag. A virtual display sized exactly to your client window, not a squeezed copy of the host's monitor. And a zero-buffering renderer — every frame drawn is the newest one available, so nothing goes soft waiting in a queue.
Will you say when this ships?
Yes. This page and the AI overview page track every capability's real status — exploring, or shipped. The moment neural upscaling is real and verifiable, both pages flip to say so, with the same honesty. Until then it stays labelled as what it is: an idea in research.
Remio app icon

Fast and sharp today. Exploring ways to make it sharper.

Install Remio for hardware H.265 streaming end to end, an adaptive bitrate engine that reads your network, and a virtual display sized exactly to your window — all shipping now. On-device neural upscaling is still a research idea on this page; no dates promised, and this page will say so honestly the moment that changes.