Measured Notes on AI Upscaling

Eleven guides where every number came from ffmpeg and numpy on real files. No vendor benchmarks, no preset-name arguments, and every claim has a reproduction snippet. Where a measurement contradicted the hypothesis, the contradiction is what got published.

The measurement that organises the rest

Interpolation methods ranked by PSNR are ranked almost exactly backwards by detail retention. On a 4× upscale of a Siemens-star test pattern:

MethodPSNRHF detail retained
nearest24.60 dB25.4%
bilinear25.68 dB3.9%
bicubic26.27 dB2.1%
lanczos26.47 dB1.3%

At 2× instead of 4×, Lanczos retains 21.5% instead of 1.3%. Halving the scale factor gains roughly 16× more surviving detail — far more than any choice of kernel.

Guides

AI Upscaling Explained: What It Recovers and What It Invents

Interpolation versus reconstruction, why PSNR rewards blur, and the transcode-first myth tested against a lossless intermediate (bit-identical across three bitrates).

PSNR vs HF retention · 1.3% at 4×

Why Video Upscaling Is Not Image Upscaling

Per-frame upscaling on a 40-frame sub-pixel pan. The finding is the opposite of the folklore: per-frame interpolation is more temporally stable than reality, because it destroyed the detail that would have flickered.

CV 2.87% vs 5.99% ground truth

A Product Shot and a Face Fail in Opposite Directions

One unsharp mask, three content classes: halo gain ×1.63 on smooth skin, ×1.31 on hard product edges. Why one preset cannot serve a person holding a product.

p99 gradient gain ×1.63 vs ×1.31

2K or 4K: The Bits-Per-Pixel Trap

At equal bitrate, 4K gets 0.2237 bpp where 2K gets 0.4206. Plus a measured takedown of the "upscale in two steps" advice: the cascade is within 0.2% of a single step at every encoder setting, while a nearest-neighbour intermediate costs +14% in bytes.

0.4206 vs 0.2237 bpp · cascade +0%

Upscaling Line Art Without Destroying the Lines

At 2×, smooth filters lose 7% of ink coverage; sharpening then adds 18–21% back as halo. Why thin strokes disappear first and what to do instead.

ink −7% smoothed, +20% sharpened

Restoring Old Family Video Without a Workstation

Four independent failure layers — interlace, noise, resolution, codec damage. The deinterlace/denoise order matters almost not at all (0.8%); the scale factor matters enormously.

order difference 0.8%

Turning a 1080p Screen Recording Into a Usable 4K Asset

UI text is the highest-frequency content video carries. Measured: 4× upscaling loses 12% of ink pixels, and the loss comes off thin strokes first.

−12% ink at 4×

Making a 4K Thumbnail Master From a 720p Frame

A thumbnail is judged after an 8:1 downscale by the platform, which is a low-pass filter. The sharpening you see at 100% is the sharpening that evaporates in the feed.

8:1 display reduction

Cutout and Upscale in One Workflow

Unlike denoise order, this order is not negotiable: a matte computed at low resolution produces an alpha edge that upscaling widens into a fringe. Upscale first, matte second.

alpha band 1px → 2px

What rel=nofollow Actually Does, Measured

Five link variants clicked in a real browser: nofollow and nofollow ugc send exactly the same Referer as a plain link. Only noreferrer strips it — Referrer-Policy, not rel, decides what a third party sees.

same Referer for plain / nofollow / ugc

All Guides — Full Index With Metrics

The complete list of every measured note in this cluster, one card per guide with the headline number from each experiment and a one-line summary of the mechanism it demonstrates.

12 pages · every number reproducible

How to use these. Each page states a mechanism, a measurement, and a reproduction snippet. If a claim here contradicts what you measure on your own file, trust your measurement — the numbers come from specific test patterns, and your content is not one of them.

Try the tool behind the notes

These measurements exist because it is easy to be confidently wrong about upscaling. If you want to run the same comparisons on your own source without installing anything, UpgoLAB upscales photos and short video to 2K and 4K in the browser, with several modes over the same input so a two-way comparison takes seconds rather than a render queue.

Method notes