| Takeaway | Detail |
|---|---|
| At 2×, start with BasicVSR++-style bidirectional propagation. | For 1080p footage enlarged to 4K, propagation is the default because it usually produces more temporally stable detail than independent per-frame enhancement. |
| Switch to per-frame 2× only when alignment errors dominate. | At the shot level, switch if ghosting, trails, or edge doubling appear more often than visible frame-to-frame flicker. |
| Keep propagation when flicker is the stronger visible problem. | Retain bidirectional propagation unless the specified alignment errors occur more often than visible frame-to-frame flicker. |
| Use per-frame enhancement for alignment-hostile shots. | Independent per-frame processing is safer when motion, cuts, or corruption defeat alignment. |
This guide compares BasicVSR++-style bidirectional propagation with independent per-frame enhancement for 1080p footage enlarged to 4K at 2×.
It provides a shot-level rule: use propagation by default, but switch to per-frame 2× when ghosting, trails, or edge doubling occur more often than visible frame-to-frame flicker.

Choose Propagation by Motion Stability
The mechanism that separates these two paths is feature flow. BasicVSR++ does not upscale a frame and then glance at its neighbors; it propagates feature maps across the timeline and reconstructs from them. Each recurrent unit takes the current frame's features, pulls in features from the adjacent frames, and fuses them. Because the transported quantity is a feature tensor rather than a finished image, subpixel evidence — thin edges, fine texture, low-contrast grain — can accumulate across several 1080p frames instead of being guessed from one.
Features move between frames, so propagation must align before it fuses. The enhanced alignment in BasicVSR++ estimates motion against a neighboring frame and uses that estimate to guide deformable sampling of the neighbor's features, so the samples land on the same surface point rather than a few pixels away. That deformation is modulated, which lets the network shrink the contribution of a neighbor whose features look unreliable. A correct estimate makes fusion constructive. A wrong one makes the same mechanism drag one frame's edge across the next — which is exactly what ghosting, trailing, and edge doubling look like.
Bidirectional propagation is why the output holds steady rather than merely looking sharp. A forward pass carries earlier evidence into later frames; a backward pass carries later evidence into earlier ones. Combined, every output frame is reconstructed with past and future evidence available, so a fence line, fabric weave, or facial microtexture that flickers at 1080p gets reinforced across frames instead of being re-guessed.
A per-frame 2× model receives one frame, returns one frame, and never asks where anything moved. With no motion estimate and no borrowed neighbor features, it has nothing to misalign, so ghosting, trails, and doubled edges cannot originate in alignment. The cost is corroboration: detail it invents exists in that frame alone, and nothing constrains the next frame to agree. Independent high-frequency estimates are drawn fresh each frame, so they jitter.
Both paths write into the same target grid. Doubling 1920×1080 gives 3840×2160: the source is 2,073,600 pixels, the output is 8,294,400. The 2× factor applies to each axis, which quadruples the pixel count while leaving every output pixel's evidence source as the only real difference.
Use propagation as the default and let a shot-level test overrule it. Render the same shot both ways, step through it frame by frame at 200% on a moving edge, and count alignment failures — ghosting, trails, edge doubling — against visible flicker on static detail. When alignment errors clearly outnumber flicker, motion, cuts, or corruption has defeated propagation, and that shot switches to per-frame 2× enhancement. When flicker dominates instead, keep the propagated result.

Evidence Favors Temporal Coherence
The honest summary of the supplied evidence is narrower than most product copy implies. The BasicVSR++ paper record explicitly frames enhanced propagation and alignment as improvements for video super-resolution. That places propagation among the method-level advances for the task itself, not among post-hoc sharpening tricks: the published claim concerns how a clip is reconstructed, not how hard a single frame is pushed. Propagation therefore earns the role of default.
Treat that as a burden-of-proof rule. Begin the enlargement with propagation, then run a shot-level test before committing the export. Sample a pan, a talking head, and a hard cut; scrub each frame by frame at full size. Ghosting, trails, or edge doubling in every sample means alignment is losing, and that shot belongs in per-frame enhancement. Flicker without misalignment means propagation is still doing its job.
The low-resource VSR source is more elementary, and it still matters: it defines video super-resolution as reconstructing high-resolution video from low-resolution input. The deliverable is a video, so the acceptance test is a sequence test. Comparing before-and-after stills tells you about texture and sharpness; it cannot tell you whether detail holds its position. Instead, scrub one edge — a signpost, a hairline, a window frame — across consecutive frames.
Product evidence is weaker. Imagera's listing advertises one-click 4K enhancement, more than twenty AI tools, over a hundred thousand models, a commercial license, and pricing from $19.99. Those claims establish that enhancement is accessible and packaged. None of them is a temporal-stability benchmark, and a one-click workflow is not a quality claim.
The table below ranks what each source can actually carry.
| Source | What it supports | What it cannot support |
|---|---|---|
| BasicVSR++ paper record | Enhanced propagation and alignment as improvements for video super-resolution; propagation as the default | A quality gain for your footage, or a switch threshold |
| Low-resource VSR description | The task itself: reconstructing high-resolution video from low-resolution input | Whether a given shot aligns well enough to propagate cleanly |
| Imagera Super Resolution AI listing | Availability: one-click enhancement, commercial license, from $19.99 | Temporal stability or per-shot alignment |
Read that ranking as the rule. Peer-reviewed method claims outrank task definitions, and task definitions outrank product listings. Propagation is the evidence-supported default; per-frame processing is the fallback for shots where alignment demonstrably fails. Either way, verify on a sequence, because the evidence you are gathering is temporal and your test has to match.

Compare the Two 2× Paths
For a clean, continuous shot, BasicVSR++ propagation is the default winner: it is usually the better choice when details need to remain steady from frame to frame. That preference is not unconditional. Compare both outputs on the same representative shot, watching faces, lettering, and high-contrast edges during movement, then check cuts and fast or obstructed motion separately. Choose based on visible artifacts, not a single sharp-looking frame.
| Criterion | BasicVSR++ propagation | Per-frame 2× | Winner |
|---|---|---|---|
| Stable faces, text, and edges across motion | Usually stronger when alignment succeeds | May vary frame to frame | Propagation |
| Hard cuts and shot boundaries | Requires reset or cut detection | Naturally safe | Per-frame |
| Fast camera pans or occlusion | Can create trails or ghosting | Avoids cross-frame contamination | Per-frame |
| Repeated texture and low noise | Can accumulate useful evidence | Sees only the current frame | Propagation |
Give special attention to transitions and abrupt changes in direction. If a propagated result carries detail across a cut, or leaves a displaced edge behind during a pan or when an object is partly hidden, mark that shot for per-frame processing. If those problems are confined to a few shots, use the safer path there rather than rejecting propagation for the entire sequence. Recheck the transition itself after making the choice.
For a stable shot with repeated detail, such as fabric or foliage, check whether that detail stays consistent during playback rather than judging it from a paused frame. If propagation holds the detail together without visible alignment errors, favor it. If it produces trails or doubled contours, favor per-frame enhancement even if the still image appears sharper. The practical rule is to let temporal behavior in the actual shot decide.

Budget Pixels, Time, and Storage
The output-side resource burden quantified here is shared by propagation and independent per-frame enhancement. A 2× enlargement multiplies pixel count, not merely the frame’s width and height: if the source contains P pixels, each output frame contains 4P pixels. Use that output count when planning processing, memory, temporary files, and encoded deliverables.
For a concrete 1080p-to-4K check, 3840 × 2160 = 8,294,400 output pixels. RGB24 uses 3 bytes per pixel, so one uncompressed frame requires 8,294,400 × 3 = 24,883,200 bytes, or about 24.9 decimal MB. At 30 frames per second, 24,883,200 × 30 = 746,496,000 bytes per second, about 747 MB/s. Over 60 seconds, that becomes 44,789,760,000 bytes, or about 44.8 GB, before codec compression.
Use those figures as a bandwidth and scratch-space warning, not as a prediction of the final encoded file size. A codec can reduce storage substantially, while decoding, resizing, model inference, frame buffering, and writing can still require uncompressed or lightly compressed intermediates. Check whether the target disk can sustain the measured write rate, and check available RAM or VRAM while a full representative segment runs rather than relying on the final file’s size.
For a first-pass budget, multiply the source frame count by 4 output pixels, then add roughly 20% working-space headroom. In pixel terms, N source frames become 4N output-frame equivalents; budget about 1.2 × 4N worth of working capacity before accounting for the application’s own buffers. If estimating from RGB24 frame storage, use 24,883,200 bytes per 4K frame and apply the same 1.2 headroom factor to the temporary-space estimate.
Benchmark one representative minute from the actual material before committing to a long run. Record processing time, peak memory, temporary-disk growth, and sustained output rate, then multiply the measured per-minute results by the project duration. Include a difficult shot and an ordinary shot in the check if the footage varies substantially; a single easy segment can understate buffering and storage needs. If the measured budget exceeds the available resources, lower concurrency, process in shorter chunks, or use a compressed intermediate while preserving the source and final-output space.

Know What 4K Upscaling Cannot Prove
A visually sharp 4K file is not, by itself, scientific proof that the missing detail was recovered. The failure modes that make a 4K result inconclusive include information loss in the original footage, reconstruction errors, and temporal misalignment. Treat apparent sharpness as a hypothesis to test, not as evidence that every fine edge or texture existed in the 1080p source.
Upscaling cannot recover detail erased by severe motion or focus blur, clipped highlights, crushed shadows, or heavy compression. Inspect areas where evidence should survive: lettering, hair, thin cables, patterned fabric, and bright window details. If a highlight is a flat white patch in the input, a clean border in the output may be a plausible reconstruction. If block artifacts have destroyed a texture, newly visible grain or weave may be model-generated rather than recovered.
Propagation adds a separate risk when neighboring frames do not describe the same visible content. During an occlusion, a failed alignment, or a fast object crossing the frame, a wrong estimate can spread into adjacent frames. Check the output at half speed and frame advance: ghost edges around hands or vehicles, trails behind moving subjects, doubled contours, and texture that seems to move with the background are alignment warnings. These artifacts are more serious than ordinary per-frame flicker because they can look coherent while being wrong.
The supplied reference to the Real-world+ Chinese traditional opera video super-resolution dataset also shows why degradation-specific data matters: real footage can combine blur, compression, exposure loss, and difficult motion rather than one isolated defect. Such a dataset can support testing under those conditions, but it cannot prove that a particular crisp pixel in your restored file was present in the source. Use propagation by default, and override it only when the shot-level inspection finds alignment failures more often than visible flicker.

1080p to 4K
A 10-second restoration at 1920×1080 and 30 fps contains 300 frames. Each source frame has 2,073,600 pixels, so the clip contains 622,080,000 source pixels in total. A 2× enlargement produces frames of 3840×2160, or 8,294,400 pixels each, for 2,488,320,000 output pixels across the same 300 frames. This is the exact scale of the preview decision: preserve the clip, generate both candidates, and compare the same interval frame by frame rather than judging isolated still images.
Create two previews of the full clip. The first should use bidirectional propagation with a reset at every detected shot boundary. The second should enhance each frame independently at 2×. Keep the source playback, zoom level, color settings, and encoder consistent so that differences come from temporal handling rather than from the preview pipeline. Also verify that the frame rate remains 30 fps and that the output dimensions remain 3840×2160; an accidental resample or duplicate-frame conversion would invalidate the comparison.
Inspect frames 90–120, a 30-frame window covering one second at 30 fps. Include a moving face, thin text, and a high-contrast diagonal edge. Check the face for unstable contours around the eyes, jaw, and hair; check the text for broken strokes; and check the diagonal edge for flicker, stair-stepping, or doubled boundaries. Advance one frame at a time, then replay the interval at normal speed. A still that looks exceptionally sharp is not enough: count a frame as visibly defective if an ordinary viewer would notice a localized temporal error, not merely a slightly softer texture.
Choose propagation when it produces fewer than three visibly defective frames in frames 90–120 and shows no repeated ghosting, trails, or edge doubling. Log the frame number, the subject or edge affected, and the defect type so the decision can be checked. If one defect appears briefly but never repeats, review its duration before accepting the result; if the same boundary wobbles across several consecutive frames, that is a temporal failure rather than ordinary reconstruction softness.
Apply These Four If-Then Rules
This section alone converts the comparison into four operational switches for a production run. Treat the first preview as a shot-level decision, not a judgment about an entire title.
1. If a shot contains ordinary motion with persistent subjects, test propagation first. Look for shots in which people, vehicles, scenery, or other trackable subjects remain identifiable as they move. Run a short 2× test and inspect successive frames at normal playback speed and frame by frame around the fastest motion. Propagation remains the preferred starting point when edges stay attached to their subjects and the image remains stable over time.
2. If the shot contains a hard cut, reset propagation at the cut or use per-frame processing for the affected transition. Mark every cut on the timeline and process each side as a separate sequence. Check the first several frames after the cut for borrowed detail, doubled outlines, or remnants from the preceding shot. If the production system cannot reset its state reliably, restrict independent per-frame enhancement to the short transition region rather than applying it to the entire shot.
3. If a 10-second preview reveals ghosting, trails, or doubled contours on more than 10% of inspected frames, choose per-frame enhancement for that shot. Inspect enough representative frames to support the percentage, including the fastest movement and the most difficult focus. Count a frame as affected when any of those three alignment defects is plainly visible, not merely when it appears after extreme zoom. If more than one in ten inspected frames fails, avoid propagation for the shot and review the per-frame result for temporal flicker.
4. If per-frame output flickers on text or faces, prefer propagation when its alignment artifacts stay below that 10% threshold. Test captions, signs, close-ups, and profile views, since small changes in facial features or letter shapes are easy to notice across adjacent frames. Compare both outputs over the same 10-second span. Propagation is the stronger choice when its alignment defects affect no more than one in ten inspected frames and remain less objectionable than frame-to-frame changes in the independently enhanced version.
Record the shot ID, cut boundaries, inspected-frame count, number of frames with visible alignment defects, and the number showing objectionable flicker. Make the switch at shot level, then repeat the same preview under final delivery conditions. This creates an auditable production decision: use propagation by default, reset it at cuts, and move a shot to per-frame 2× enhancement only when visible alignment failures exceed the point at which temporal instability remains the larger problem.
What to do next
| Step | Action | Why it matters |
|---|---|---|
| 1 | Start with BasicVSR++-style bidirectional propagation for the 1080p-to-4K upscale. | Propagation is the default because it usually produces more temporally stable detail than enhancing each frame independently. |
| 2 | Review a representative shot for ghosting, trails, and edge doubling. | These are the alignment errors that can make propagated detail appear duplicated or detached from motion. |
| 3 | Check the same shot for visible frame-to-frame flicker. | Flicker is the key comparison because retaining bidirectional propagation is preferable when flicker is the stronger visible problem. |
| 4 | Keep bidirectional propagation unless the alignment errors occur more often than visible frame-to-frame flicker. | This shot-level rule preserves temporal stability while avoiding propagation when its alignment defects dominate. |
| 5 | Switch that shot to independent per-frame 2× enhancement when alignment errors are more frequent than flicker. | Per-frame processing is safer when motion, cuts, or corruption defeat alignment. |
| 6 | Apply the decision separately at the shot level rather than changing the workflow for the entire video. | Alignment-hostile shots may benefit from per-frame enhancement while other shots remain more stable with propagation. |
Frequently Asked Questions
At what resolution and scale should BasicVSR++-style propagation be the default for 4K upscaling?
For 1080p footage enlarged to 4K at 2×, start with BasicVSR++-style bidirectional propagation.
When should I switch a 2× upscale from propagation to per-frame enhancement?
Switch to per-frame 2× when ghosting, trails, or edge doubling appear more often than visible frame-to-frame flicker.
Should I disable bidirectional propagation if flicker is the main visible problem?
No; keep propagation when flicker is the stronger visible problem.
Which shots are safer to process with independent per-frame enhancement?
Independent per-frame processing is safer when motion, cuts, or corruption defeat alignment.
How does BasicVSR++ use neighboring frames during enhancement?
BasicVSR++ propagates feature maps across the timeline and reconstructs from them rather than upscaling a frame and then consulting its neighbors.
What is the default choice for an alignment-hostile shot when flickering is less common than ghosting or trails?
Use per-frame enhancement because alignment-hostile shots are safer to process without propagation when ghosting, trails, or edge doubling outweigh flicker.
Quick answers
| Which 2× upscaling method should be used by default for enlarging 1080p footage to 4K? | Start with BasicVSR++-style bidirectional propagation. |
| Why is propagation the default for enlarging 1080p footage to 4K at 2×? | Propagation usually produces more temporally stable detail than independent per-frame enhancement. |
| When should propagation be switched to per-frame 2× enhancement? | Switch to per-frame 2× when ghosting, trails, or edge doubling appear more often than visible frame-to-frame flicker. |
| When should propagation be retained instead of switching to per-frame enhancement? | Retain bidirectional propagation when visible frame-to-frame flicker is the stronger problem. |
| Why is independent per-frame processing safer for some shots? | Independent per-frame processing is safer when motion, cuts, or corruption defeat alignment. |
Also worth reading: Upscale blurry old video: video propagation (BasicVSR++) 39 dB vs hallucination: Upscale blurry old video: video · Upscale blurry compressed video: BasicVSR++ vs cleaning with 78% votes: Upscale blurry compressed video: BasicVSR++ · BasicVSR++ vs RealBasicVSR: Why BasicVSR++ Collapses on YouTube: BasicVSR++ vs RealBasicVSR: Why BasicVSR++