Comparison
Quality comparisons are frequently used within the enthusiast community to compare the video quality offered by different sources/releases. It serves as a great way to distinguish the differences between good and bad sources, and can help you determine which one to download.
This guide goes through the process of setting up and effectively utilizing VSPreview, a previewer utility for VapourSynth, to produce useful quality comparisons that will allow you to ascertain which release offers the best visual experience.
Warning
The goal of this guide is to ensure the video is represented as accurately as possible. Do NOT use this guide as a reference for making encodes where the goal is to make the video look better.
VSPreview
VSPreview is a previewer application for scripts created in VapourSynth. It features a simple graphical interface to allow you to use VapourSynth's features (and create comparisons) with ease. This should already be installed in your environment if you followed the setup.
Dependencies
In order to create comparisons with VSPreview, you will need to install some necessary dependencies.
- A suitable source filter (
BestSource,LSMASHSource, orFFMS2). vivtcvs-placebolibdoviawsmfunc
See setup if you need guidance on installing any dependencies.
Usage
In order to create a comparison, you will need to create a VapourSynth script. This script outlines the parameters and files which VSPreview will use when generating your comparison.
Create a file called comp.py and open it in your favorite text editor.
Basic Script
Here's a simple comp.py script example that does nothing more than loading the videos and previewing them.
Common issues
Most of the time, the basic script will not be enough. Different sources may need various adjustments to make a fair comparison, some of which are covered below with small code snippets on how to deal with them.
Inverse Telecine
Quick inverse telecine filter for converting telecined clips to progressive.
FieldBased
Force the FieldBased flag to be progressive. This should be done to ensure the content is processed correctly.
Trimming
Removes the first n frames from the source. For example, [24:] will skip the first 24 frames and start the source at frame 25. This should be used on sources that are out of sync.
To get the frame difference, find a unique frame (e.g. scene changes) in the correct and incorrect source. Note the frame numbers each one begin at, then set the difference of the two for the incorrect source.
Note
For more advanced trimming such as chaining, splicing, and looping, see How do I? or Vapoursynth's docs.
Frame Rate
Sets the source frame rate (fps) based on fractional input (fpsnum/fpsden). For example, fpsnum=24000 and fpsden=1001 forces the clip frame rate to 23.976 fps. This should be used on sources that have different frame rates that don't automatically stay in sync.
FrameProps
Set the correct frame properties for your sources. This is most commonly used on sources you're upscaling or 4K SDR content. This should be used on sources with incorrect/missing metadata or colors that are off, particularly reds and greens.
Subsampling
Converts clips to 16-bit depth with 4:4:4 chroma subsampling. Required for filters such as cropping (with odd numbers), tonemapping, debanding (if matching mpv is desired) and furthur gamma-corrected scaling.
EwaLanczosSharpwith antiring is used here as it matches mpv'shigh-qualityprofile.
Cropping
Crops the source video by n pixels from the selected side. For example, left=20 will remove 20 horizontal pixels starting from the left side. This should be used on sources that use letterboxing or other form of borders.
Warning
If you are cropping with odd numbers, you will need to convert your clip to 4:4:4 chroma subsampling.
Note
Make sure to check for variable aspect ratios throughout the file and only crop the smallest border.
Double-Range Compression (DRC)
Fixes washed out colors on sources that have been converted to limited range twice.
Tonemapping
Converts the colorspace of the source (i.e. HDR/DV -> SDR).
- For converting HDR -> SDR, set
source_colorspace=ColorSpace.HDR10 - For converting DV -> SDR, set
source_colorspace=ColorSpace.DOVI
Note
Refer to the libplacebo and vs-placebo docs to gain a better understanding of what each parameter does.
"Fake HDR" / "SDR-in-HDR" sources
Sometimes the source will be SDR in an HDR container, often seen with anime on Netflix. In these cases you can clip the source to get an exact match to SDR, unlike with traditional tonemapping.
Depth
Converts clips to 32-bit depth. Required for gamma adjustment and final output scaling.
Gamma
Adjusts the gamma level of the video. This should only be used to fix the QuickTime gamma bug or similar where one source will appear much brighter than the rest.
Pixel format
The following steps require the input to be RGBS format for the best results, so add an additional conversion here if you're applying them.
Debanding
Applies a debanding filter to the selected clip(s). Otherwise competitive sources with obvious banding should be debanded to see how they'd fare with mpv's built-in deband filter. The debanded clip should never replace the original. Instead, it should be added as an additional node.
Scaling
Upscales the video. This should be used to match sources that have differing resolutions.
EwaLanczosSharpwith antiring is used here as it matches mpv'shigh-qualityprofile.
Note
If you're working with anamorphic sources (DVD), apply any aspect ratio correction needed during this resize. See Correcting the Aspect Ratio.
Running
To run your comparison script, launch a terminal window in your working directory and run the following:
First-time configuration
- Drag the Plugins menu from the right-side of the VSPreview window and open the SlowPics Comps tab. Alternatively, you can access the Plugins menu using Ctrl+P.
- Under Settings, set the following:
- Set Collection Name Template to
{tmdb_title} ({tmdb_year}) - S01E01 - {video_nodes}. - Set Compression Type to Slow.
- Enter your slow.pics username and password (optional).
- Tick the Public Flag.
- Set Collection Name Template to
- Click the Settings button on the bottom tab. Under Main, change Save Plugins Bar Position to Global.
- Click the Playback button on the bottom tab. Set the bottom-left value to an odd number (e.g 109).
Once complete, close and relaunch VSPreview to apply these changes.
Basic Keybinds
| Key | Action |
|---|---|
Left arrow (<-) |
Move back n frames (default: n = 1) |
Right arrow (->) |
Move forward n frames (default: n = 1) |
| Number keys | Switches to source n (e.g. 2 switches to clip2) |
Shift + S |
Take and save screenshot of the current frame |
Ctrl + Space |
Mark current frame number for [semi-automatic] comparisons |
Tips
- Label your sources clearly.
- Try to capture a large variety of scenes (e.g. low/high detail, bright/dark, low/high motion).
- Try to capture frames of the same picture type.
- Try to capture
PorBtype frames when possible. Although it's not always guaranteed that your source will have all the picture types (e.g. Crunchyroll doesn't haveBframes). - Ensure each source of identical type is beside each other in node order (e.g. BDs should be node 0, 1, WEB node 2, 3, encodes being node 4, 5, and so on).
- Include as many different source types as possible. This means including all available BD regions, WEB sources, DVD sources (if the source material is SD), all relevant encodes, and so on.
Process
VSPreview offers the ability to create automated, semi-automated and even manual comparisons:
-
In VSPreview, click the Plugins button in the bottom right corner and then click the SlowPics Comps tab.
-
Fill out these fields:
Key Description Random Number of frames to randomly capture. This should be set to a value higher or equal to 50 frames TMDB ID The TMDB ID for the show -
Manual adjustments (optional):
Semi-automatic comparisons are created with minor user input. VSPreview will automatically capture and upload frame manually marked by the user. This is the recommended method for creating comparisons.
-
Locate the frame(s) you want to compare.
- Use
Left arrowto go the previous frame andRight arrowto go to the next frame. - Use
Shift + Left arrowandShift + Right arrowto navigateNnumber of frames on either side.
- Use
-
Once you land on a frame you like, mark it with
Ctrl+Space.
-
-
Hit the Start Upload button to begin creating your comparison.