view DOCS/tech/swscaler_methods.txt @ 25661:293aeec83153

Replace the persistent CODECS_FLAG_SELECTED by a local "stringset" with an almost-trivial implementation. This allows making the builtin codec structs const, and it also makes clearer that this "selected" status is not used outside the init functions.
author reimar
date Sat, 12 Jan 2008 14:05:46 +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