Articles Technology Blog News Company
Super Resolution for AviSynth
Download now!
free, 0.5 MB,
32 and 64 bits
Infognition Super Resolution plugin for AviSynth is a video resizer that uses technique known as Super Resolution: increasing resolution by using information from neighbor frames. This process makes upsized video look sharper and have more high frequency details. Internally this plugin uses quarter-pixel motion compensation and a fusion process to combine motion-compensated previously upsized frames with spatially resampled current frame. This plugin uses the same super resolution engine as our VirtualDub plugin and Video Enhancer.
With a recent CPU you can now watch movies on full screen upsized with Super Resolution in real time without having to save processed video to a file first!

Here are some examples of 4x upsizing with our Super Resolution:

(these samples were produced by an older version of our engine)

Installation

This is a plugin for AviSynth, a tool for video processing where user writes scripts involving different filters and plugins that manipulate video data and then AviSynth makes these scripts act like video files. You can find AviSynth and learn about it here: avisynth.nl.

Just download the archive, unpack it and place .dll files to any convenient location.

Usage

First you need to load the plugin by adding to your .avs script a line like this:
LoadPlugin("avssr.dll")
If you're using 64-bit version of AviSynth and a 64-bit player or other host, then use this line:
LoadPlugin("avssr64.dll")
Then load a video file by using AviSource or DirectShowSource:
clip = AviSource("myvideo.avi")
To resize video using this Super Resolution plugin, apply "SR" function:
clip.SR()
By default it will upsize to 200% of original resolution in the high quality mode using all cores. Full list of arguments looks like
clip.SR(width, height, numThreads, options)
"options" is a string. If it contains the word "fast" SR will work in fast mode (approx. 1.5-2 times faster but with lower quality). If options string contains "%" then "width" and "height" are in percent of original, otherwise they are expressed in pixels.

"numThreads" is a positive number telling SR how many parallel threads to use. If this argument is not given, SR will use by default number of threads N equal to number of logical CPUs on your machine (number of cores multiplied by number of hyperthreads). This number is usually optimal, although sometimes 2*N is slightly faster.

"width" and "height" are the new dimensions of video you want SR to produce. Either in pixels or in percent of original (if "%" is present in options string). If "height" value is not given, SR will calculate it automatically from "width" to keep original aspect ratio. So you can just write

clip.SR(1920)
and it will resize your video to 1920 width and some appropriate height that keeps the width/height ratio same as in original. If "width" is not given either, then SR will just double the resolution.

Examples:

    clip.SR()          # upsize to 200% in high quality mode using all cores
    clip.SR(1920)      # resize to 1920 pixels width and appropriate height
                       # keeping original width/height ratio
    clip.SR(1920,1080)      # resize to 1920x1080 in high quality mode
    clip.SR(1280,720,6)     # resize to 1280x720 using 6 parallel threads
    clip.SR(150, "%")       # upsize video to 150% of original resolution
    clip.SR(1280, "fast")   # resize to 1280 pixels width and proper height
                            # in the fast mode
    clip.SR(300, "% fast")  # upsize video 3x (300%) in the fast mode
    clip.SR("fast")         # upsize to 200% in the fast mode
    clip.SR(150, 150, 4, "%")  # upsize to 150% using 4 threads in HQ mode

Colorspaces

This plugin can work with progressive YV12, YUY2, RGB24 and RGB32 formats. Output format is the same as input format. YV12 works fastest, YUY2 close to YV12. RGB modes are much slower.
Do not feed it with interlaced video, you'll get garbage output.

Applying SR() without arguments and letting your player (like MPC) rescale the result to full screen using hardware resampling is a good way to watch DVD rips, for example. On a cheap laptop with i3-3110M it works in real time with 70% CPU load even in the high quality mode (default one).

The SR engine doubles the resolution, and if you tell the plugin to resize to resolution different from 200% of original it will first upsize to 200% and then resample to desired size. This means it works faster when you tell it to upsize exactly 200%.

Requirements

Windows XP SP2 or higher (Vista, 7, 8). CPU with SSE2 support (virtually any CPU since 2001). Recommended: 4 cores or more to get HD video in real time.

Quality

We've compared this technology with different plugins for VirtualDub, Adobe After Effects and AviSynth as well as several stand-alone applications like vReveal and CinemaHD. See Video Resize Shootout. This plugin shares the Super Resolution engine with Video Enhancer, so in the comparison see the results of Video Enhancer. In this comparison an older version of our SR engine was used, current version works even better on some of the files.

That comparison demonstrates strong advantage of our super resolution implementation over all available video resizing tools.

Frame order

The engine is suited for sequential processing, frame by frame. The more frames are processed sequentially the more details are accumulated. When saving result to a file video is processed from start to end in normal order and maximum quality is obtained. When seeking to random places in preview mode, there is no good history of processed frames and accumulated information, so the plugin takes 5 source frames (N-4 ... N) and processes them before showing you the result. Visual results in preview mode when jumping to random frames can be worse than when rendering to a file.

Trial limitations

Unregistered version draws some "watermarks" (stripes, actually) over the video. To use the plugin without the watermarks please register your copy and run register_avssr.exe to enter your registration code.
If you have our Super Resolution plugin for VirtualDub registered, than this AviSynth plugin is free for you and it's already registered too.

Download now