aboutsummaryrefslogtreecommitdiffhomepage
path: root/DOCS/tech/swscaler_methods.txt
blob: 24d2b11835c13649d556cdb9b660ab406444cf74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

artifact types:
---------------------------------------------------------------------
ringing
        wave or noise like patterns around sharp edges
        bad: sinc, lanczos (with high filter length)
        acceptable: lanczos (with low filter length), cubic, spline
        ok: area, (fast)blinear, gauss, point

blur
        loss of detail / high frequency
        bad: gauss with high variance
        acceptable: (fast)bilinear, area
        ok: others

aliasing (only downscale)
        straight lines look like staircases
        areas of high detail look worse
        regular patterns turn into a funny looking mess (moire patterns)
        bad: fast bilinear, point, gauss with low variance
        acceptable: area
        ok: others

blocky (upscale only)
        looks like the image is made of rectangular blocks like a mosaic
        bad: point
        ok: others

recommendations: (based upon my personal opinion many ppl might disagree ...)
---------------------------------------------------------------------

the recommended scalers for upscaling:
fast_bilinear, point if speed is important
cubic, spline, lanczos if quality is important

the recommended scalers for downscaling:
fast_bilinear, point if speed is important
gauss, bilinear if quality is important
cubic, spline, lanczos if a sharper picture is important

note: when encoding at a limited amount of bits (not constant quantizer)
then a slightly blurred input might look better after decoding than a slightly
sharpened one, especially for lower bitrates

sws numbers / names / artifact types
-------------------------------------------------------------------------
r ringing
b blurry
a aliasing (downscale only)
m mosaic (blocky) (upscale only)

-sws 0  fast bilinear                   bA
-sws 1  bilinear                        b
-sws 2  bicubic high sharpness          r
                low sharpness           b
-sws 3  experimental                    ????
-sws 4  nearest neighbour               AM
-sws 5  area                            ba
-sws 6  luma bicubic / chroma bilinear  r
-sws 7  gauss   low sharpness           B
                high sharpness          AM
-sws 8  sinc                            R
-sws 9  lanczos long filter             R
                short filter            b
-sws 10 bicubic spline                  r

Notes:
        area upscale is identical to bilinear