view DOCS/tech/swscaler_methods.txt @ 25065:54dba785e683

New media format negotiation code: loop through all available formats trying to establish connection between pins. Negotiation stops either when all formats are rejected (error reported in this case) or when connection is established (which can happen only when current media format is accepted by both of the pins).
author voroshil
date Sun, 18 Nov 2007 11:13:28 +0000
parents 567c3d5da0ca
children 0f1b5b68af32
line wrap: on
line source


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