view DOCS/tech/swscaler_methods.txt @ 30811:50e0f6942e43

Implement Win32 mutexes. Implement Win32 mutexes; they used to just be mapped on top of events, which is not the same thing at all. The implementation is pretty much the obvious one, similar to the current critical section implementation and the semaphore implementation; a single lock count protected by a pthread mutex, and an event lockers can sleep on to know when the mutex is available. Also make CreateMutexA and ReleaseMutex available even if QuickTime codecs support is not configured.
author sesse
date Sat, 06 Mar 2010 10:13:37 +0000
parents 32725ca88fed
children 0ad2da052b2e
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